─── 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-compose for MCP it is not. Use the parts that help you.

— joe@jibeworks.com


# EOF
─── EOF ─── UTF-8 YAML v0.1.0-draft
← /collection