MCP server for specification-driven development: manage feature specs, requirements, acceptance criteria, test linkage and status.
Project description
Spec-Driven MCP Server
Your living source-of-truth for product & engineering specs — built for VS Code + AI agents.
Markdown specs → SQLite → dashboard → MCP tools.
Why use this?
- Centralize requirements, acceptance criteria, and non-functional specs in one place.
- Track verification with pass/fail events; roll-ups show what’s VERIFIED / FAILING / PARTIAL / UNTESTED.
- Give AI agents safe MCP access to read, search, edit, and record verification.
- Lightweight HTML dashboard (Tailwind + htmx/Alpine) for quick browsing and edits.
Quick start
1) Install the tool
We recommend pipx so the CLI is on your PATH without virtualenv chores:
pipx install spec-driven-mcp
2) Add this to .vscode/mcp.json:
{
"servers": {
"specs-mcp": {
"type": "stdio",
"command": "spec-mcp"
}
}
}
Open Copilot Chat → Agent mode, start the server from MCP Servers and use the tools/resources.
Defaults that "just work"
-
Database location:
- Project-local:
<workspace-root>/.spec-mcp/specs.db(when VS Code workspace detected) - Platform-native fallback: Uses system user data directory when no workspace
- Windows:
%LOCALAPPDATA%\SpecMCP\spec-mcp\specs.db - macOS:
~/Library/Application Support/SpecMCP/spec-mcp/specs.db - Linux:
~/.local/state/spec-mcp/specs.db(follows XDG spec)
- Windows:
Add project-local path to
.gitignore:# Spec MCP .spec-mcp/ - Project-local:
You can manage the server from VS Code’s MCP view (start/stop/restart).
- Zero configuration: Works in any directory without setup files or environment variables.o** and includes a one-click install link. It also bakes in the DB path defaults you asked for.
Running outside a VS Code workspace?
If no workspace root is available, the server uses a per-user application data directory for specs.db.
What you can do (MCP tools & resources)
Tools
create_feature(feature_key, name)— create a new featurecreate_spec(spec_id, feature_key, kind, statement, parent_id?)— create requirements/ACs/NFRsrecord_verification(spec_id, outcome, source?, notes?)— append pass/fail and update roll-upsupdate_spec(spec_id, fields…)— edit title/statement/metadatasearch_specs(status?, kind?, feature?)— filter listdashboard_status()— check if dashboard is runningstart_dashboard(host?, port?)— start/restart web dashboard
Resources
spec://{id}— full spec (current status + recent events)feature://{key}— feature summary with roll-ups
Accessing the Dashboard
The web dashboard starts automatically when you run the MCP server! It's available at: http://localhost:8765
You can also:
- Check status: Ask Copilot "What's the dashboard status?" or use
dashboard_status() - Restart it: Use
start_dashboard()if needed
Status (how we compute it)
- VERIFIED — all leaves passed
- FAILING — at least one failing leaf
- PARTIAL — some passed, some untested
- UNTESTED — no verification yet
Leaves = ACs and NFRs; requirements roll up from their children.
Integrating tests
From your test runner (or CI), call the MCP tool after a check:
# Pseudocode with your MCP client
call_tool("record_verification", {
"spec_id": "AC-LOGIN-001",
"outcome": "PASSED",
"source": "pytest::test_login"
})
Where data lives
- Project-local (default):
./.spec-mcp/specs.db - User-level fallback (no workspace): a platform-native per-user data directory
Notes for VS Code users
- You can add servers per-workspace (
.vscode/mcp.json) or globally in your user profile. - VS Code supports stdio, streamable HTTP, and SSE transports. This server uses stdio by default.
License
MIT
Project details
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 spec_driven_mcp-0.0.2.tar.gz.
File metadata
- Download URL: spec_driven_mcp-0.0.2.tar.gz
- Upload date:
- Size: 19.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6a985e1fe0aff72e9c26af0a178e081d2d280f4124779f58847d24b0e8198ffa
|
|
| MD5 |
0a22e6ae6c28aa8c2132317858400648
|
|
| BLAKE2b-256 |
7f79802c61e28b9443ff227a1ad55a59dc5343a08879b129f9eba30f3d3fecb3
|
File details
Details for the file spec_driven_mcp-0.0.2-py3-none-any.whl.
File metadata
- Download URL: spec_driven_mcp-0.0.2-py3-none-any.whl
- Upload date:
- Size: 21.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e45a11d86193861ecf3d719727e51caadd653e11c48589198ebe864b794c1743
|
|
| MD5 |
8ef5dc4ce1be42d1012b1d9598be362c
|
|
| BLAKE2b-256 |
a5407de90feca3b9ad4a6fef53829b541428295966a59d9f116e697ec799e102
|