Featured

Deploy OpenClaw in 60 seconds — 20% off logoDeploy OpenClaw in 60 seconds — 20% off

Launch OpenClaw on Hostinger in about 60 seconds and keep your agent live 24/7. Our referral link gives you 20% off, no coupon code needed.

Launch on Hostinger
Run your Hermes agent on Hostinger, fully managed logoRun your Hermes agent on Hostinger, fully managed

Launch Hermes on Hostinger in one click, fully managed, no VPS knowledge needed. Use code ZACAARON10 for 10% off.

Launch on Hostinger
Crawl and scrape any site into clean data, 10% off logoCrawl and scrape any site into clean data, 10% off

Firecrawl crawls and scrapes any site into clean markdown for your agent. Get 1,000 free credits, and new users get 10% off their first purchase.

Try Firecrawl free
6,000+ web scrapers for your AI agent, start free logo6,000+ web scrapers for your AI agent, start free

Apify gives your agent live web data: 6,000+ prebuilt scrapers and actors, MCP-ready. Sign up free with $5 in usage credits.

Try Apify free
One API to scrape, enrich, and extract the internet. logoOne API to scrape, enrich, and extract the internet.

Context.dev gives your agents a single API to scrape, enrich, and extract live web data — no proxies, no parsers, no maintenance.

Start building free
SetupClaw: done-for-you OpenClaw for founders & exec teams logoSetupClaw: done-for-you OpenClaw for founders & exec teams

White-glove OpenClaw for founders and exec teams (4–50+ employees): we install, harden, integrate your tools, and maintain it — secured from day one.

Get it set up for you
SEO data APIs for your agent, $1 free credit logoSEO data APIs for your agent, $1 free credit

DataForSEO gives your agent live access to SERP results, keyword data, backlinks, and on-page SEO data through one API. New accounts get a $1 credit, good for up to 20,000 keyword or backlink lookups.

Try DataForSEO free
Reach 48,000+ AI builders

A flat monthly placement in front of developers actively installing AI tools. No lock-in, cancel anytime.

Advertise here

Works with

Claude CodeClaude DesktopCursorVS CodeClineCodex CLIOpenClaw+ any MCP client

Install to Claude Code

This server doesn't publish a one-line install command. Follow the setup in the source repository.

Summary

A contract linter for AI agents that uses structured YAML contracts to define dependencies, business rules, and exports, enabling agents to work without breaking project conventions.

README.md

<p align="center"> <img src="https://img.shields.io/badge/MCP-Contract%20Linter-58a6ff?style=for-the-badge&logo=data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBzdHJva2Utd2lkdGg9IjIiPjxwYXRoIGQ9Ik0xNCAySDZhMiAyIDAgMCAwLTIgMnYxNmEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJWOFoiLz48cGF0aCBkPSJNMTQgMnY2aDYiLz48cGF0aCBkPSJtOSAxNSAyIDIgNC00Ii8+PC9zdmc+" alt="MCP Contractor" /> <br/> <img src="https://img.shields.io/badge/runtime-Bun-f9f1e1?style=flat-square&logo=bun" alt="Bun" /> <img src="https://img.shields.io/badge/lang-TypeScript-3178c6?style=flat-square&logo=typescript&logoColor=white" alt="TypeScript" /> <img src="https://img.shields.io/badge/protocol-MCP-8b5cf6?style=flat-square" alt="MCP" /> <img src="https://img.shields.io/badge/contracts-YAML-cb171e?style=flat-square&logo=yaml" alt="YAML" /> <img src="https://img.shields.io/badge/output-XML-f48024?style=flat-square" alt="XML" /> <img src="https://img.shields.io/badge/tools-10-3fb950?style=flat-square" alt="9 Tools" /> </p>

MCP Contractor

AI agents shouldn't guess. They should read the contract.

MCP Contractor is a Model Context Protocol server that acts as a contract linter for AI. Instead of relying on ls, find, or scanning raw files, AI agents call MCP Contractor to understand a project through structured YAML contracts.

Each contract defines a feature's dependencies, exports, business rules, file structure, and types -- giving the AI everything it needs to work without breaking things.

---

Why

AI agents working on large codebases often:

  • Break dependencies they didn't know existed
  • Forget business rules buried in code comments
  • Produce code that doesn't follow project conventions
  • Lose context across feature boundaries

MCP Contractor solves this by making contracts the source of truth. The AI reads the contract before touching the code.

---

How It Works

   Developer                    AI Agent (Claude Code)
       |                              |
       |  writes contracts (.yaml)    |
       |----------------------------->|
       |                              |  calls MCP tools
       |                              |---------------->  MCP Contractor
       |                              |                      |
       |                              |  <-- XML response    |
       |                              |     (deps, rules,    |
       |                              |      exports, types) |
       |                              |                      |
       |       writes code that       |                      |
       |    <-- respects contracts    |                      |
       |                              |                      |
       |   opens dashboard (browser)  |                      |
       |----------------------------->|  http://localhost:8000

---

MCP Tools

9 tools available, organized by workflow:

Discovery

| Tool | Description | |------|-------------| | search | Search contracts with filters (query, status, dependsOn, dependedBy, owner, hasRules, hasViolations) | | get_feature | Get the full contract of a feature as optimized XML | | get_dependencies | Get dependency graph (direct + transitive + circular detection) |

Analysis

| Tool | Description | |------|-------------| | compile | Compile all contracts, return XML diagnostic report | | validate | Verify implementation code matches contract declarations | | drift | Detect drift between the index and actual contract files | | index | Generate or update the contracts YAML index |

Mutation

| Tool | Description | |------|-------------| | scaffold | Generate a YAML contract template for a new feature (configurable basePath) | | update | Modify an existing contract (metadata, deps, rules, files) |

Onboarding

| Tool | Description | |------|-------------| | reference | Get contract-driven development guide. Sections: workflow, tools, rules, claude-md |

All responses are token-optimized XML -- compact, action-oriented, no redundancy.

Example Workflows

AI exploring a new codebase: `` search({ status: "active" }) -> overview of active features get_feature({ feature: "auth" }) -> full contract details get_dependencies({ feature: "auth" }) -> what auth depends on ``

AI before modifying code: `` search({ dependsOn: "database" }) -> who depends on database? validate({ feature: "database" }) -> is database currently valid? get_feature({ feature: "database" }) -> read the rules before changing ``

AI creating a new feature: `` scaffold({ feature: "payments", basePath: "src/modules", deps: "auth,database" }) update({ feature: "payments", addRules: "idempotent-charges", status: "draft" }) validate({ feature: "payments" }) ``

AI checking health: `` compile() -> any broken contracts? drift() -> index up to date? search({ hasViolations: true }) -> which features have problems? ``

---

Search Filters

The search tool supports combining multiple filters for precise queries:

| Filter | Type | Description | |--------|------|-------------| | query | string | Text search across all fields (name, description, deps, exports, rules, files) | | status | string | Filter by draft, active, or deprecated | | dependsOn | string | Find features that depend on this feature | | dependedBy | string | Find features that this feature depends on | | owner | string | Filter by contract owner | | hasRules | string | Find features with rules matching this ID | | hasViolations | boolean | true = only broken features, false = only clean |

All filters are combinable: search({ dependsOn: "compiler", status: "active" })

---

Web Dashboard (for Humans)

A live dashboard auto-starts on localhost:8000 (auto-fallback to next port if busy):

| View | URL | Description | |------|-----|-------------| | Summary | / | Status bar, metric cards, features table with inline violations | | Project | /project | Tree view of contracts + humanized contract detail cards | | Brain Link | /graph | Interactive force-directed dependency graph (Canvas 2D, drag & hover) |

API endpoints for integration:

  • GET /api/data -- Dashboard summary (JSON)
  • GET /api/contracts -- All compiled contracts (JSON)
  • GET /api/graph -- Dependency graph nodes + edges (JSON)

---

Contract Validation

The validator checks your code against its contracts:

  • exports-match -- Barrel exports must match what the contract declares
  • deps-declared -- Imports from other features must be declared in dependencies
  • no-circular-deps -- Circular dependencies between features are detected
  • files-exist -- Declared files must exist in the filesystem

Feature discovery is dynamic -- the validator searches src//features/{name}/ and src//{name}/ to find feature directories, supporting any project structure.

---

Contract Discovery

Contracts are scanned from two locations:

  • contracts/ -- Centralized project-wide contracts (flat scan)
  • src// -- Feature-local contracts colocated with code (recursive /*.contract.yaml)

Ignored directories: node_modules, dist, build, .git, .next, .nuxt, .svelte-kit, coverage, .turbo, .cache

---

Quick Start

Install

bun install

Connect to Claude Code

Create .mcp.json in your project root:

{
  "mcpServers": {
    "contract-mcp": {
      "command": "bun",
      "args": ["run", "src/app/index.ts"],
      "cwd": "/path/to/contract-mcp"
    }
  }
}

Restart Claude Code. You'll see 10 new tools available. The dashboard opens automatically at http://localhost:8000.

Run Standalone

bun run dev    # Start MCP server (stdio)

---

Contract Anatomy

Every feature has a .contract.yaml that follows this structure:

contract:
  version: "1.0.0"
  feature: auth
  description: "Authentication and authorization"
  owner: backend-team
  status: active              # draft | active | deprecated

dependencies:
  internal:
    - feature: database
      reason: "Stores user sessions and credentials"
  external:
    - package: bcrypt
      version: "^5.1.0"
      reason: "Password hashing"

exports:
  functions:
    - name: authenticate
      signature: "(credentials: Credentials) => Result<AuthToken, AuthError>"
      description: "Validates credentials and returns a token"
      pure: true
  types:
    - name: AuthToken
      description: "JWT token wrapper with expiry"

rules:
  - id: token-expiry
    description: "Tokens must expire within 24 hours"
    severity: error           # error | warning | info
    testable: true
  - id: rate-limit
    description: "Max 5 failed attempts per minute per IP"
    severity: error
    testable: true

files:
  - path: src/features/auth/index.ts
    purpose: "Barrel export"
  - path: src/features/auth/auth.ts
    purpose: "Core authentication logic"

The scaffold tool generates this template automatically: `` scaffold({ feature: "auth", basePath: "src/modules", deps: "database,crypto", owner: "backend-team" }) ``

---

XML Output (for AI)

Responses are optimized for token efficiency:

<?xml version="1.0" encoding="UTF-8"?>
<contract-mcp tool="search" status="success">
<results dependsOn="compiler" count="4">
<match feature="validator" status="draft" owner="adam" deps="compiler,contract-entity,dependency-graph" exports="validate,validateAll" rules="5">Verifica se o codigo corresponde aos contratos</match>
<match feature="dashboard" status="draft" owner="adam" deps="compiler,validator,indexer" exports="startDashboard,renderDashboard,renderHtml" rules="4">Web dashboard humanizado</match>
</results>
</contract-mcp>

One line per result. Attributes for data, text content for descriptions. Maximum information, minimum tokens.

---

License

MIT

See related servers & alternatives →

Related MCP servers

Browse all →

Related guides

Hand-picked reading to help you choose and use Developer Tools servers.