Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Description from the maker (original English)
Turn your team's rules into checks your AI agent can't skip. Deterministic, no AI inside.
These three are never merged into one score: opinions, measurements and popularity are different things.
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
Pick the AI app you use, then copy the settings.
Which app do you use?
Pick your app above. We remember it, so next time the button says “Install in …”.
Download the maker’s .mcpb file
The link goes to the maker’s own file; we do not host or repackage it. Open the file and Claude Desktop installs it.
Run this in your terminal
Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
This one runs on your computer, and ChatGPT can only connect to servers on the internet. Pick another app.
Your choice stays on this device in a cookie; no account needed.
These settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
Runs on your computer; the tool list appears in your AI app after you install it.
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 7, 2026
The registry name was verified with the GitHub account leaderiop, which owns the repo
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
This one runs on your computer; there is no internet endpoint
Runs on your computer and uses local settings instead
Runs on your computer; we can only read tool lists from internet endpoints
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
The registry does not list a required key, though some servers ask you to sign in on first use.
It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).
The GitHub repo last changed –, and the latest version (0.1.0-rc1) reached the registry 16 days ago.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need MCPB on your computer.
In the same category: Spec Driven Development, Remote Desktop Commander, Rystic
Servers in the same category from other makers, sorted by stars.
Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Start, seed, clock, inspect and diff Rystic API simulators from your agent.
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
See it in 60 seconds · How it works · What you can build · Docs
SpecForge turns what your organisation knows into rules your AI can't skip.
You write down your things, how they link, and the rules they must obey. SpecForge compiles that into one typed, checked graph. People and AI agents read it and change it through standard protocols (CLI, MCP, LSP), and a change that breaks a rule is refused, whoever made it.
It works for software specs, product plans, quality procedures, or any field with rules worth checking. SpecForge doesn't know your field until you install an extension that teaches it.
AI can now do real work: write code, draft a launch plan, prepare a batch record. What it works from is the weak part.
The knowledge that should guide it sits in places nothing enforces:
The more work you give to AI, the worse this gets. It produces faster than anyone can review.
This isn't a problem with the model. It's a problem with where your rules live.
There are two ways to teach an AI how your organisation works.
A soft skill is advice placed in the AI's context: a prompt, a Markdown spec, a policy PDF, a skill file. It helps, but it's prose. The AI may follow it, or not.
A hard skill is a rule a program enforces. The AI can't skip it, because the check fails and says why.
| | Soft skill prompt, Markdown spec, policy, skill file | Hard skill SpecForge extension | |---|---|---| | Lives in | The AI's context window, as prose | A compiler, as code | | Can the AI ignore it? | Yes, silently | No: the check fails | | Same verdict twice? | Not always | Always. There's no AI inside | | Knows what's missing? | No | Yes: broken links, unenforced rules, unproven promises | | Shared how? | Copied between files | Versioned and installed, like a library |
SpecForge is an engine for hard skills. Think of it as a type checker for what your organisation means.
| Part | What it is | In plain words |
|---|---|---|
| Extensions | WASM packages that declare entity kinds, their fields and links, the rules that judge them, and commands | The "apps": they teach SpecForge a domain |
| The graph | Every entity and link, compiled from small .spec files in your repository | The "memory": one source of truth |
| Validation | The extensions' rules plus structural checks, on every compile and every edit | The "referee": a change that breaks a rule is refused, whoever made it |
| Surfaces | CLI, MCP, LSP with a VS Code extension, and a package registry | The "doors" people and agents come in through |
| AI models | Claude or any other agent, driving SpecForge from outside, mostly over MCP | The "brain": bring your own |
The core grammar knows five structural words: spec, ref, use, define, defaults. Every other word in a spec (behavior, persona, invariant, campaign, procedure) and every rule ("an invariant must be enforced by a behavior", "a journey's persona must exist") exists only because an extension declares it.
These extensions ship inside the binary, as a starter set:
| Extension | What it declares |
|---|---|
@specforge/software | Behaviors, events, types, and interfaces (ports) |
@specforge/product | Features, personas, channels, journeys, deliverables, milestones, releases, modules, and your team's vocabulary (terms) |
@specforge/governance | Rules that must always hold (invariants), decisions, constraints, and failure modes |
@specforge/formal | Properties and axioms that an SMT solver proves or refutes |
@specforge/testing, @specforge/cargo-test, @specforge/vitest | Which of your tests prove which entities |
@specforge/rust, @specforge/typescript | Source analysis that helps an agent write a spec from existing code |
Turn one on with specforge add @specforge/product. The full list is in the extension inventory. To teach SpecForge your own field, see Extending SpecForge and the extension SDK.
@gsd/*) is being designed; the others are not started.The use cases say what works today and what is roadmap for each, and examples has projects you can run.
No agent needed. Install, create a product plan, then try to break it:
curl -fsSL https://raw.githubusercontent.com/leaderiop/SpecForge/main/install.sh | sh
mkdir launch-plan && cd launch-plan specforge init --extensions @specforge/product # a persona, a channel, a journey, a milestone specforge link onboarding channels email # point the journey at a channel that doesn't exist
error[E080]: the edit would leave the project with 1 error it does not have; nothing was written
error[E003]: unresolved reference 'email' in entity 'onboarding'
The edit is refused and nothing is written. Declare the channel first, and the same edit goes through:
specforge new channel email "Email newsletter" --in spec/hello.spec --description "The monthly newsletter" --status active
specforge link onboarding channels email specforge product persona-channels developer # cli, email
An agent makes the same edits over MCP, and gets the same refusals. Hand-written files get the same check:
mkdir ../sf-demo && cd ../sf-demo
specforge init --extensions @specforge/software # spec/hello.spec, which checks clean sed -i.bak 's/\[user_logged_in\]/[user_loged_in]/' spec/hello.spec # drop one letter specforge check
[E003] Error: unresolved reference 'user_loged_in' in entity 'authenticate_user'
20 │ produces [user_loged_in] │ Help: did you mean 'user_logged_in'?
[W007] Warning: event 'user_logged_in' is not produced by any behavior
1 error, 1 warning, 0 infos
A reviewer reads. A check resolves. Errors always fail the check; warnings fail it too with specforge check --strict, which is what you run in CI.
1. Install. SpecForge is a single binary with no dependencies.
curl -fsSL https://raw.githubusercontent.com/leaderiop/SpecForge/main/install.sh | sh
Other ways to install
# Homebrew (once the tap is published)
brew install leaderiop/tap/specforge
cargo binstall --git https://github.com/leaderiop/SpecForge specforge-cli
git clone https://github.com/leaderiop/SpecForge && cd SpecForge cargo install --path crates/surfaces/cli
Prebuilt archives for macOS, Linux and Windows are on the Releases page. Formal proofs (@specforge/formal) also need the z3 solver on your PATH; everything else works without it.
2. Create a project with the extensions your work needs:
specforge init --extensions @specforge/software,@specforge/product
This writes a specforge.json and a first file in spec/. In a Cargo or vitest project, it also turns on the matching test runner.
3. Connect your agent. SpecForge speaks MCP, so any MCP client can read, query and edit the graph. Use an absolute path:
claude mcp add specforge -- specforge mcp /path/to/your/project
In Cursor, one click adds it for the open project (${workspaceFolder}):
Other MCP clients
{
"mcpServers": { "specforge": { "command": "specforge", "args": ["mcp", "/path/to/your/project"] } } }
4. Ask your agent. For example:
Write a spec in
spec/for the feature I described: the behavior, the rules it must never break, the events it
emits, and what proves each one. Validate it with the SpecForge tools and fix every error before you show it to me.
5. Read the result yourself.
specforge check # is the graph consistent?
specforge review # what is still unproven?
6. Link your proof. For software, each test names the entity and obligation it proves. Follow the Rust or vitest guide, then run specforge collect. It asks once before running your test command, and records what each test proves.
You'll want to read it, because the graph is what you approve. You rarely need to write it: your agent writes and fixes the files, or edits them through specforge new, set and link, and the check tells it when it's wrong.
It's built to be easy to read. Each block is one thing, with a kind, a name, a title, and fields, like a filled-in form:
channel email "Email newsletter" {
description "The monthly newsletter" status active }
To write specs by hand, start with the authoring tutorial, the worked example and product getting started.
| Surface | Status | What it's for |
|---|---|---|
CLI (specforge) | Shipped | Check, query, export, typed edits, CI |
| MCP server (specforge mcp) | Shipped
Only the beginning is shown; read the rest in the repo