─── BOF ───
# mcp-contract.manifest.yaml # a project-structure spec for claude extensions # that have outgrown a single file version: "0.1.0-draft" # in active revision; not pinned status: "shipped" # spec is real, adopters are not (yet) price: "free" # MIT # claude is a compiler. everything else is portable. # prompts compile to outputs the way C compiles to a binary — # the source travels, the compiler stays where it is. layers:
prompts: "source code" # operational reasoning, portable
tools: "runtime libraries" # state + execution, portable
apps: "UI framework" # interactive views, portable
skills: "compiler flags" # thin per-platform wrapper
compiler: "the model itself" # Claude / ChatGPT / Gemini / Llama
# graph: providers and consumers, resolved by the compiler. graph: - capability: doc.contract_pdf provided_by: tools.contract_parser consumed_by: prompts.draft_review state: satisfied - capability: analysis.risk_report provided_by: prompts.draft_review consumed_by: apps.summary_panel state: satisfied - capability: fn.execute_script provided_by: tools.script_runner consumed_by: skills.claude_dispatch state: satisfied - capability: ui.export_handler provided_by: ~ # no provider consumed_by: apps.export_handler state: unsatisfied # 1 unsatisfied. mcpc validate, below, names it.
# the contract. every component declares what it provides; # every component declares what it consumes. the compiler # checks that the graph is satisfied. example_manifest: provides: ["analysis.risk_report"] consumes: ["doc.contract_pdf"] # run this against your repo. it will tell you exactly # which capabilities are unsatisfied and which are orphaned. cli:
~/synth-ops — zsh
$ pip install mcpc-cli Successfully installed mcpc-cli-0.1.0-draft $ mcpc validate reading ./mcp-contract.manifest.yaml found 4 layers · 7 components · 12 arcs ✓ prompts.draft_review provides analysis.risk_report ✓ tools.contract_parser provides doc.contract_pdf ✓ apps.summary_panel consumes analysis.risk_report ! apps.export_handler consumes ui.export_handler — unsatisfied result 1 unsatisfied capability — see graph above exit 1 $ █
# reference implementation. the first claude extension # built against this contract. it works; it's also still # in active build. honest framing on its own page. reference_implementation: slug: "synth-ops" role: "first deployed extension built against this contract" href: "/sku/synth-ops" # source. the repo is the artifact. the readme tells the # story better than this page can. source: github: "jmfullerton96/mcp-contract" readme: "README.md" # notes from the author. notes: |
The repo is public. The readme tells the story better than I can. I might've invented the problem — that's fine. Accuracy over prizes.
What this is: a project template for MCP extensions past the single-file stage. Layers, manifest, contracts, a reference impl.
What this isn't: a framework anyone needs to adopt.
docker-composefor MCP it is not. Use the parts that help you.— joe@jibeworks.com
# EOF
─── EOF ───
← /collection