Skip to main content

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)

    Add project-local path to .gitignore:

    # Spec MCP
    .spec-mcp/
    

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 feature
  • create_spec(spec_id, feature_key, kind, statement, parent_id?) — create requirements/ACs/NFRs
  • record_verification(spec_id, outcome, source?, notes?) — append pass/fail and update roll-ups
  • update_spec(spec_id, fields…) — edit title/statement/metadata
  • search_specs(status?, kind?, feature?) — filter list
  • dashboard_status() — check if dashboard is running
  • start_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

spec_driven_mcp-0.0.2.tar.gz (19.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

spec_driven_mcp-0.0.2-py3-none-any.whl (21.9 kB view details)

Uploaded Python 3

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

Hashes for spec_driven_mcp-0.0.2.tar.gz
Algorithm Hash digest
SHA256 6a985e1fe0aff72e9c26af0a178e081d2d280f4124779f58847d24b0e8198ffa
MD5 0a22e6ae6c28aa8c2132317858400648
BLAKE2b-256 7f79802c61e28b9443ff227a1ad55a59dc5343a08879b129f9eba30f3d3fecb3

See more details on using hashes here.

File details

Details for the file spec_driven_mcp-0.0.2-py3-none-any.whl.

File metadata

File hashes

Hashes for spec_driven_mcp-0.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 e45a11d86193861ecf3d719727e51caadd653e11c48589198ebe864b794c1743
MD5 8ef5dc4ce1be42d1012b1d9598be362c
BLAKE2b-256 a5407de90feca3b9ad4a6fef53829b541428295966a59d9f116e697ec799e102

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page