Skip to main content
Glama
spec-driver-mcp

spec-driver-mcp

Spec Driver MCP

English | 中文 | Русский

A Model Context Protocol server that brings Kiro-style spec-driven development to any AI coding tool (Claude Code, Cursor, opencode, Codex CLI, Reasonix, Gemini CLI, and more).

What it does

Replaces unstructured chat with a 3-phase workflow when you ask AI to build, plan, or refactor a project:

Phase 1: Requirements  →  requirements.md (EARS format: WHEN...THE SYSTEM SHALL...)
Phase 2: Design         →  design.md (architecture, components, data flow)
Phase 3: Tasks          →  tasks.md (trackable [x] checkboxes)

Each phase requires your approval before advancing. Hooks auto-maintain consistency.

Related MCP server: Pathfinder MCP Server

Quick Start

1. Install

npx github:linanwanttodo/spec-driver-mcp

Or install globally:

npm install -g github:linanwanttodo/spec-driver-mcp

2. Add to your AI tool

opencode

Add to ~/.config/opencode/opencode.json:

{
  "mcp": {
    "spec-driver": {
      "type": "local",
      "command": ["npx", "github:linanwanttodo/spec-driver-mcp"]
    }
  }
}

Claude Code

Add to ~/.claude/settings.json:

{
  "mcpServers": {
    "spec-driver": {
      "command": "npx",
      "args": ["github:linanwanttodo/spec-driver-mcp"]
    }
  }
}

Then copy instructions/CLAUDE.md to your project root as CLAUDE.md.

Cursor

Create .cursor/mcp.json in your project:

{
  "mcpServers": {
    "spec-driver": {
      "command": "npx",
      "args": ["github:linanwanttodo/spec-driver-mcp"]
    }
  }
}

Then copy instructions/cursor-rules.md to your project root as .cursorrules.

Codex CLI

Add to ~/.codex/config.toml:

[mcp_servers.spec-driver]
command = "npx"
args = ["github:linanwanttodo/spec-driver-mcp"]

Reasonix

Add to ~/.reasonix/config.json mcp array:

"spec-driver=npx github:linanwanttodo/spec-driver-mcp"

Gemini CLI

Add to ~/.gemini/config/mcp_config.json:

{
  "mcpServers": {
    "spec-driver": {
      "command": "npx",
      "args": ["github:linanwanttodo/spec-driver-mcp"]
    }
  }
}

Usage

Once configured, just tell your AI:

"帮我开发一个博客系统" or "帮我分析这个项目" or "我们来重构这个"

The AI will automatically:

  1. Read your codebase to understand context

  2. Ask you clarifying questions (requirements-first or design-first? specific details?)

  3. Write requirements.md using EARS notation

  4. Wait for your approval before proceeding

  5. Write design.md with architecture and component design

  6. Wait for your approval

  7. Write tasks.md with - [ ] checkboxes

  8. Wait for your approval, then implement

Marking tasks done

During implementation:

- [x] Task completed via update-task
- [ ] Still pending

The AI auto-runs hooks at each event:

  • on-task-completed → auto-mark task [x], check acceptance criteria

  • on-spec-phase-change → validate document completeness

  • on-user-request-change → sync all documents

Tools

Tool

Description

init-spec

Initialize .spec/ with config + 3 default hooks

write-spec-file

Write requirements.md / design.md / tasks.md

read-spec-file

Read any spec file

list-spec-files

Show file status + hooks

update-task

Toggle task [x] or [ ]

get-task-summary

Task completion stats

create-hook

Create automation rules

list-hooks

List all hooks

delete-hook

Remove a hook

run-hooks

Execute hooks for an event

Spec File Location

All files are created in .spec/ at your project root:

your-project/
├── .spec/
│   ├── .config              # Project metadata
│   ├── requirements.md       # Phase 1: Requirements
│   ├── design.md             # Phase 2: Design
│   ├── tasks.md              # Phase 3: Tasks
│   └── hooks/                # Automation rules
│       ├── auto-mark-completed.md
│       ├── validate-before-phase.md
│       └── notify-on-change.md
├── ...your code...

Default Hooks

Hook

Event

What it does

auto-mark-completed

on-task-completed

Auto update-task after implementation

validate-before-phase

on-spec-phase-change

Validate doc completeness before advancing

notify-on-change

on-user-request-change

Sync all docs when requirements change

One-Click AI Install Prompt

If you're asking an AI to set this up for you, copy this:

Install spec-driver-mcp from GitHub and configure it:
1. Run: npm install -g github:linanwanttodo/spec-driver-mcp
2. Add "spec-driver" to the MCP servers config of my AI tool
   (the config format depends on which tool I use)
3. Done - no server needed, no API keys, no registration

License

MIT

Available Tools

10 tools
create-hookA

Register an automation hook for the spec workflow. Hooks define actions the AI should automatically perform when specific events occur. Events: on-requirements-confirmed, on-design-confirmed, on-tasks-confirmed, on-task-completed, on-implementation-done, on-spec-phase-change, on-user-request-change, manual

Example: when a task is completed (on-task-completed), auto-run update-task to mark it [x].

Inputs: name (required), event (required), description (required), instructions (required).

delete-hookB

Remove a hook by name.

Inputs: name (required).

get-task-summaryA

Get a summary of task completion status from tasks.md.

Inputs: no named parameters.

init-specA

Initialize a spec-driven development workspace for the current project. Creates a .spec/ directory that will hold three files:

  • requirements.md: User stories, acceptance criteria (EARS format)

  • design.md: Architecture, diagrams, implementation approach

  • tasks.md: Trackable checkbox tasks

  • hooks/: Event-driven automation rules

Call this FIRST when user expresses intent to build, plan, design, analyze, or refactor.

Inputs: projectName (required), specType, workflowType.

list-hooksA

List all registered hooks with their event type and description. Use this to review what automations are active.

Inputs: no named parameters.

list-spec-filesB

List all spec files with their status (exists, size, task count).

Inputs: no named parameters.

read-spec-fileA

Read the content of one of the three spec files. Use this to review requirements, check design decisions, or see task status.

Inputs: file (required).

run-hooksA

Get all hooks matching a specific event type. The AI should call this when an event occurs and execute the matching hooks' instructions. For example, after completing implementation of a task, call run-hooks with event "on-task-completed" to find and execute all relevant hooks.

Inputs: event (required).

update-taskA

Mark a task as done or pending in tasks.md. Use this during implementation to track progress. The task is identified by matching its text content (case-insensitive partial match).

Inputs: done (required), match, line.

write-spec-fileA

Write content to one of the three spec files. Use this to create or update requirements.md, design.md, or tasks.md.

Inputs: file (required), content (required).

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A4/5.0

    Scored across 10 tools

    Disambiguation5/5

    Each tool has a clearly distinct purpose: hooks management (create/delete/list/run), spec file operations (init/read/write/list), and task tracking (get-task-summary/update-task). No overlap or ambiguity.

    Naming Consistency5/5

    All tool names follow a consistent pattern of verb-noun (or verb-object) using lowercase with hyphens, e.g., 'create-hook', 'init-spec', 'update-task'. No mixing of conventions.

    Tool Count5/5

    With 10 tools, the set is well-scoped for a spec-driven development workflow. It covers every necessary operation without being excessive or insufficient.

    Completeness5/5

    The tool surface covers the full lifecycle: initialization, file management, task tracking, and automation hooks. No obvious missing operations for the stated purpose.

    Related MCP Connectors

    Related MCP Servers