Unify Claude Code, Codex, Cursor, and Gemini CLI with persistent context, governance, and multi-model debate.
Project description
Delimit MCP Server
Unify Claude Code, Codex, Cursor, and Gemini CLI with persistent context, governance, and multi-model debate.
API governance, persistent ledger, multi-model deliberation, security audit, and test verification — all shared across AI coding assistants.
Quick Install (10 seconds)
- uses: delimit-ai/delimit-action@v0
What Delimit Catches
Breaking Change Detected in Pull Request
+-------------+----------------------------------------+-----------------+
| Severity | Change | Location |
+-------------+----------------------------------------+-----------------+
| HIGH | Field removed: email | User schema |
| HIGH | Type changed: age (integer -> string) | User.age |
| HIGH | Endpoint removed | GET /users/{id} |
+-------------+----------------------------------------+-----------------+
Why Delimit
APIs evolve, but your consumers depend on stability. One accidental breaking change can cascade into hours of debugging and frustrated users. Delimit catches these changes before they reach production.
Installation
GitHub Action (CI)
Add this workflow to .github/workflows/api-check.yml:
name: API Contract Check
on: pull_request
jobs:
delimit:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: delimit-ai/delimit-action@v0
Zero configuration required. Delimit auto-detects your OpenAPI specs.
No broken builds on day one -- Delimit never fails on existing issues, only new violations in pull requests.
CLI
npm install -g delimit-cli
delimit lint openapi.yaml
MCP Server (for AI Assistants)
Install from PyPI:
pip install delimit-mcp
Claude Code / Claude Desktop
Add to your MCP config (.mcp.json or Claude Desktop settings):
{
"mcpServers": {
"delimit": {
"command": "delimit-mcp"
}
}
}
Cursor
Add to .cursor/mcp.json in your project root:
{
"mcpServers": {
"delimit": {
"command": "delimit-mcp"
}
}
}
Codex CLI
Add to your MCP configuration:
{
"mcpServers": {
"delimit": {
"command": "delimit-mcp"
}
}
}
The server communicates over stdio. No API keys or external services required.
MCP Tools
| Tool | Description |
|---|---|
delimit_lint |
Diff + policy evaluation in one call. Returns pass/fail with violations. |
delimit_diff |
Structural diff between two OpenAPI specs. 23 change types detected. |
delimit_policy |
Evaluate changes against configurable rule sets. |
delimit_impact |
Business and technical impact assessment of detected changes. |
delimit_ledger |
Audit trail of governance decisions. |
Example agent usage:
> delimit_lint(old_spec="api/v1.yaml", new_spec="api/v2.yaml")
{
"passed": false,
"violations": [
{"type": "endpoint_removed", "severity": "error", "path": "GET /users/{id}"},
{"type": "field_removed", "severity": "error", "path": "User.email"}
],
"summary": "2 breaking changes detected"
}
Detected Breaking Changes
Delimit identifies 23 change types across these categories:
- Removed endpoints -- Endpoints that existed but are now gone
- Type changes -- Fields that changed type (string -> integer)
- Removed required fields -- Required response fields that were removed
- New required parameters -- Request parameters that became required
- Method removals -- HTTP methods removed from endpoints
- Schema changes -- Incompatible modifications to request/response schemas
The action automatically compares your PR API spec against the base branch.
What Happens on First Run
- Auto-detection (2 seconds): Scans for OpenAPI/Swagger files
- Baseline creation (3 seconds): Establishes current state without failing
- Analysis (5 seconds): Compares changes and evaluates policies
- Feedback: Posts clear, actionable comments on your PR
First run output:
Auto-detected: api/openapi.yaml
Baseline established
Running in advisory mode (non-blocking)
Supports
- OpenAPI 3.0, 3.1
- Swagger 2.0
- Multiple specs in monorepos
- JSON and YAML formats
Advanced Usage
Configure Detection
If auto-detection does not work for your setup:
- uses: delimit-ai/delimit-action@v1
with:
old_spec: api/v1/openapi.yaml
new_spec: api/v2/openapi.yaml
mode: enforce # Fail CI on breaking changes
Custom Policies
Create .delimit/policies.yml to define custom governance rules:
rules:
- id: no_endpoint_removal
change_types: [endpoint_removed]
severity: error
message: "Endpoints cannot be removed without deprecation"
Policy Presets
Three built-in presets:
| Preset | Behavior |
|---|---|
strict |
All detected changes are errors |
default |
Breaking changes are errors, others are warnings |
relaxed |
All changes are warnings only |
delimit lint --policy strict openapi.yaml
Examples
| Example | Description | Key Learning |
|---|---|---|
| breaking-change-demo | How Delimit catches breaking changes | Endpoint removal, field deletion |
| safe-change-demo | Backward-compatible changes | Adding fields, new endpoints |
| monorepo-demo | Multi-service API validation | Matrix builds, service isolation |
Support
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file delimit_mcp-3.2.1.tar.gz.
File metadata
- Download URL: delimit_mcp-3.2.1.tar.gz
- Upload date:
- Size: 334.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
30a2870ca51da5bb98e2f6596443f7126a5dac76de9972db7e0d20597a798ec2
|
|
| MD5 |
ab65050685d9cc9c2ac76049e85ea823
|
|
| BLAKE2b-256 |
4524d34d1694551098f5b58b3e54156b4fbe5351e4f88cac1ff2d1c3937c2c73
|
File details
Details for the file delimit_mcp-3.2.1-py3-none-any.whl.
File metadata
- Download URL: delimit_mcp-3.2.1-py3-none-any.whl
- Upload date:
- Size: 238.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6f246d426f0acceb8e52e30372c8fb5c8c03b128b85606f91f77925328b61017
|
|
| MD5 |
8b82cb40474c4415debd2cfeb6325e8b
|
|
| BLAKE2b-256 |
8081bb2eb1b568c6b8bd265c80cee7e7cef20fd78fad2a4e5ccecbf2f69a2cd5
|