SpecPilot MCP Server
dev.specpilot/specpilot
Generate and validate a .specs/ bundle for spec-driven development with your AI coding agent.
What is the SpecPilot MCP server?
SpecPilot is a spec-driven development (SDD) CLI and MCP server for AI coding agents like Claude, Cursor, and ChatGPT. It initializes, validates, and syncs a `.specs/` directory to keep AI-assisted coding grounded in living requirements, architecture, and task specs. It runs as a remote MCP server so AI agents can onboard projects and manage specifications directly from your editor.
SpecPilot helps you organize project specifications into a standardized `.specs/` folder structure covering requirements, architecture, planning, development context, quality, and security. You can initialize new projects, add specs to existing ones, validate specifications, and serve a local web UI for task management. It integrates with Claude Code, Cursor, ChatGPT, and other AI agents via MCP, allowing them to understand and maintain your project's living documentation.
How to install SpecPilot
Copy-paste configuration for popular MCP clients.
Tools & capabilities
Tools this server exposes to the agent.
init— Initialize a new spec-driven development project with language and framework selectionadd-specs— Add specs to an existing project with optional code analysisvalidate— Validate specification files with optional auto-fixarchive— Archive oversized prompts.md and tasks.md entriesbackfill— Backfill missing mandates and slash commands into existing project fileslist— Show available templates by language and frameworkmigrate— Convert legacy .project-spec folder to new structurerefine— Refine project specifications with AI assistanceserve— Serve a local web UI for viewing and managing .specs/ and tasks
Use cases
- Initialize a new TypeScript/React project with pre-structured specifications and AI onboarding prompts
- Add comprehensive specs to an existing codebase with automated code analysis and AI-guided requirements gathering
- Validate and auto-fix specification files to ensure consistency across requirements, architecture, and planning documents
- Manage sprint tasks and backlog through a local web UI with drag-and-drop task movement between sprints
- Generate IDE-specific AI context files (for Cursor, Claude Code, GitHub Copilot, Windsurf) that keep AI agents aligned with project specifications
SpecPilot MCP server FAQ
SpecPilot is a CLI and MCP server that creates and maintains a `.specs/` folder structure for specification-driven development. It organizes requirements, architecture, planning, development context, quality, and security specs, then integrates with AI coding agents so they stay grounded in your project's living documentation instead of drifting from the codebase.
Yes, SpecPilot is open-source under the MIT License with no cost or API key required.
For Cursor or VS Code, add it as an HTTP server in your settings: `{"mcpServers": {"specpilot": {"type": "http", "url": "https://init.specpilot.dev/mcp"}}}`. For Claude Code, run `claude mcp add --transport http specpilot https://init.specpilot.dev/mcp`. No local installation needed—it runs as a remote server.
SpecPilot supports TypeScript (React, Express, Next.js, Nest.js, Vue, Angular), JavaScript (React, Express), Python (FastAPI, Django, Flask, Streamlit), Kotlin (Android, Spring, Ktor, Compose), and Swift (iOS, SwiftUI, Vapor).
No, SpecPilot requires no API key or authentication. It runs locally or as a remote HTTP server with no external dependencies.
Yes, run `specpilot add-specs` in your existing project directory to add a `.specs/` structure with optional code analysis. You can also run `specpilot serve` to manage tasks via a local web UI.
README (reference)
Source of truth, from the repository.
SpecPilot
SpecPilot is a spec-driven development (SDD) CLI for AI coding agents like Claude Code, Cursor, and ChatGPT. It initializes, validates, and syncs a .specs/ directory so AI-assisted coding stays grounded in living requirements, architecture, and task specs instead of drifting from the codebase.

MCP server
Prefer to stay inside your editor? SpecPilot also runs as a remote MCP server, so Claude Code, Cursor or Copilot can run the whole onboarding itself - answering what it can infer from your repo and asking you only the rest.
claude mcp add --transport http specpilot https://init.specpilot.dev/mcp
Then ask your agent: "Onboard this project with SpecPilot".
For Cursor, VS Code and other clients, add it as an HTTP (streamable) server:
{
"mcpServers": {
"specpilot": {
"type": "http",
"url": "https://init.specpilot.dev/mcp"
}
}
}
No install, no API key. Full setup notes: https://specpilot.dev/mcp-setup
Quick Start
# Install globally
npm install -g specpilot
# Create a new project
specpilot init my-project --lang typescript --framework react
# Add specs to existing project
cd existing-project
specpilot add-specs
# Validate specifications
specpilot validate
🚀 Next Steps to Populate Your Specs with AI
After creating a project, follow these steps to populate your specifications using AI:
- Open the generated guide: Check
.specs/README.mdfor full guidance - Copy the onboarding prompt: Use the prompt from
.specs/development/onboarding.md - Paste into your AI agent: ChatGPT, Claude, or other AI assistants
- Review generated spec files: Examine the AI-generated requirements and architecture
This AI-assisted approach ensures comprehensive, high-quality specifications tailored to your project needs.
Commands
| Command | Description |
|---|---|
init <name> | Initialize new SDD project |
init <name> --dry-run | Preview files that would be created without writing |
add-specs | Add specs to existing project |
validate | Validate specification files |
archive | Archive oversized prompts.md / tasks.md entries |
backfill | Backfill missing mandates & slash commands into existing project files |
list | Show available templates |
migrate | Convert legacy .project-spec folder (rarely needed) |
refine [desc] | Refine project specifications |
serve | Serve a local web UI over the current project's .specs/ (task moves unless --read-only) |
Tip — command aliases: All commands have a short alias you can use instead of the full name.
init→i·validate→v·migrate→m·list→ls·refine→ref·archive→ar·add-specs→add·backfill→bfExample:specpilot i my-appis identical tospecpilot init my-app.
Per-Command Options
| Command | Options |
|---|---|
init | --lang · --framework · --dir · --specs-name · --no-prompts · --dry-run |
validate | --fix · --verbose |
migrate | --from · --to · --backup |
list | --lang · --verbose |
refine | --update · --no-prompts |
archive | --dry-run · --force |
add-specs | --no-analysis · --deep-analysis · --no-prompts |
backfill | --dir · --specs-name · --dry-run · --no-prompts |
serve | --port · --poll · --read-only · --open |
Run
specpilot <command> --helpfor full flag descriptions and default values.
Examples
# Initialize with specific language/framework
specpilot init api --lang python --framework fastapi
# Preview files that would be created without writing anything
specpilot init api --dry-run
# Refine specifications
specpilot refine "REST API for user management" --update
# Validate with auto-fix
specpilot validate --fix
specpilot serve
Serve a local web UI over the current project's .specs/, where you can also move tasks between Backlog and Current Sprint. Run it from the project root (the folder that contains .specs/); press Ctrl+C to stop.
specpilot serve # http://127.0.0.1:4321
specpilot serve --port 5000 --open
| Option | Default | Description |
|---|---|---|
--port <n> | 4321 | Port to listen on (127.0.0.1 only) |
--poll <ms> | 1000 | Change-detection interval in ms (minimum 250); polling runs only while a page is open |
--read-only | No task moves: the UI only reads, with no drag handles and no write route | |
--open | Open the UI in the default browser |
- Task moves: drag a row, or use
Alt+Up/Downto reorder andAlt+Left/Rightto move between Backlog and Current Sprint. A move changes exactly one line of.specs/planning/tasks.mdand nothing else, and offers Undo; Completed rows do not move. If the file changed on disk since the page loaded, the move is refused and the page redraws. Start with--read-onlyto turn moves off. - Nothing else is written:
.specs/planning/tasks.mdis the only file the server can change; everything else is read on every request. - Loopback only: binds 127.0.0.1 only; rejects any Host header other than
127.0.0.1:<port>orlocalhost:<port>(403). - Live reload: polls allowlisted files with
stat()every--pollms while a page is open, and pushes changed paths on/api/events; open pages update in place. - What it shows:
.specs/,CLAUDE.md,AGENTS.md,.github/copilot-instructions.md,.claude/commands/,.claude/skills/and.github/prompts/, as the files' own text. - Limits: paths through symlinked folders, hidden files and
node_modulesare not shown. Task moves are refused, not approximated, when they cannot change exactly one line: a section with no table yet (a fresh project's[TODO]), a move involving the file's last line when it has no trailing newline, and atasks.mdthat is not valid UTF-8. If an editor savestasks.mdin the same instant the server writes it, that save can be overwritten; git keeps it recoverable.
Supported Languages & Frameworks
TypeScript
- React: SPA applications
- Express: REST APIs
- Next.js: Full-stack apps
- Nest.js: Scalable server-side apps
- Vue: Progressive UI framework
- Angular: Enterprise SPA framework
JavaScript
- React: SPA applications
- Express: REST APIs
Note: no framework prompt is shown for JavaScript — pass
--frameworkexplicitly if needed.
Python
- FastAPI: Modern REST APIs
- Django: Full-stack applications
- Flask: Lightweight REST APIs
- Streamlit: Data Science / ML apps
Kotlin
- Android: Native Android apps
- Spring: Server-side REST APIs
- Ktor: Async Kotlin web framework
- Compose: Jetpack Compose UI
Swift
- iOS: Native iOS apps
- SwiftUI: Declarative Apple UI
- Vapor: Swift server-side framework
Project Structure
SpecPilot generates a .specs/ folder with organized subdirectories:
.specs/
├── architecture/
│ ├── api.yaml # CLI / REST API / GraphQL interface spec
│ └── architecture.md # System design decisions and patterns
├── development/
│ ├── context.md # Development memory, decisions, learnings
│ ├── onboarding.md # One-time AI bootstrap prompt — delete after first use
│ └── prompts.md # AI interaction log — MANDATED, update every session
├── planning/
│ ├── roadmap.md # Release milestones and objectives
│ └── tasks.md # Sprint tracker (backlog / current / completed)
├── project/
│ ├── project.yaml # Project config, rules, and AI context (MANDATED)
│ └── requirements.md # Functional & non-functional requirements
├── quality/
│ └── tests.md # Test strategy, coverage targets, acceptance criteria
└── security/
├── security-decisions.md # ADR-style security design decisions
└── threat-model.md # Threat inventory with impact/likelihood/mitigation
Also generated at project root: an AI context file (
.github/copilot-instructions.md,CLAUDE.md,.cursor/rules/specpilot.mdc,.windsurfrules,.antigravity/rules.mdetc.) based on your selected IDE/Agent
Configuration
SpecPilot requires no global configuration. Each project is self-contained with settings in project.yaml.
IDE & Agent Support
SpecPilot generates AI agent configuration files during project initialization. When you run specpilot init, you'll be prompted to select your AI IDE/Agent:
Desktop IDEs (Workspace Settings):
- GitHub Copilot - Industry standard with Copilot integration
- Cursor - AI-first code editor with enhanced AI context
- Windsurf - Advanced AI coding assistant
- Antigravity - AI-powered IDE with context awareness
Cloud-Based AI Agents (Instruction Files):
- Claude Code - Anthropic Claude Code CLI agent (
CLAUDE.md) - Codex - OpenAI Codex agent with instruction context
Generated Configuration Files:
Each IDE/Agent selection generates one AI context file at the project root:
| IDE/Agent | Generated file |
|---|---|
| GitHub Copilot | .github/copilot-instructions.md |
| Codex | .github/copilot-instructions.md |
| Cursor | .cursor/rules/specpilot.mdc |
| Windsurf | .windsurfrules |
| Antigravity | .antigravity/rules.md |
| Claude Code | CLAUDE.md |
All context files contain: project name/stack, critical mandates, Code Philosophy, Code Rules, and a Re-Anchor Prompt.
For desktop IDEs: .vscode/settings.json (or .cursor/, .windsurf/, etc.)
- IDE-specific workspace folder setup for code + .specs
- Extensions recommendations for development
- AI context configuration for better spec integration
Generated Slash Commands
Each IDE/Agent selection also generates 8 specpilot-* slash/workflow commands (status, reanchor, report, sync, refine, validate, archive, backfill) that mirror key CLI operations as in-editor commands — e.g. .claude/commands/specpilot-status.md for Claude Code, .cursor/commands/ for Cursor, .github/prompts/ for GitHub Copilot. Running backfill on an existing project fills in any commands missing for your already-configured IDE(s). See the Full Guide for the complete list and per-IDE paths.
The generated settings/instructions automatically configure your AI agent to:
- Include
.specs/folder in AI context - Understand project structure and requirements
- Follow specification-driven development principles
- Access development guidelines and onboarding prompts
Example:
# During init, you'll be prompted to select your IDE/Agent
specpilot init my-project --lang typescript --framework react
# Respond with your preferred IDE/Agent:
# - vscode, cursor, windsurf, antigravity (desktop)
# - claude-code, codex (cloud agents)
Troubleshooting
Common Issues
Permission Errors
sudo chown -R $USER ~/.npm-global
npm config set prefix '~/.npm-global'
Template Not Found
specpilot list --verbose
Validation Failures
specpilot validate --verbose --fix
Migration Issues
Error: "Source structure 'complex' not found"
# For NEW projects, use:
specpilot init my-project
# For EXISTING projects without specs:
specpilot add-specs
# Only use migrate if you have an old .project-spec folder
specpilot migrate --from complex --to simple --backup
Debug Mode
DEBUG=specpilot specpilot <command>
Why SpecPilot?
SpecPilot implements Specification-Driven Development (SDD) where specifications come first:
Specifications → Architecture → Code → Tests → Deployment
Benefits:
- Clarity: Everyone understands what needs to be built
- Consistency: Standardized structure across projects
- Quality: Built-in validation and testing
- AI-Ready: Clear context for AI assistants
- Maintainable: Comprehensive documentation
Contributing
This project follows SDD principles. See .specs/ for contribution guidelines.
Development Setup
git clone https://github.com/girishr/SpecPilot.git
cd SpecPilot
npm install
npm run build
npm link # For local testing
Quick Contribution Guide
- Review
.specs/project/requirements.md - Check
.specs/planning/tasks.md - Update specs when making changes
- Run
specpilot validatebefore committing
Documentation
- Full Guide: Comprehensive documentation
- SpecPilot vs GitHub Spec Kit: Side-by-side comparison to help you choose the right tool
- CHANGELOG: Version history
- Issues: Bug reports & feature requests
License
MIT License - see LICENSE file for details.
Built with specification-driven development principles for serious production projects.
Related MCP servers

Sprites MCP Server
Manage Sprites: sandboxed compute environments with exec, services, and checkpoints.

StackFiesta
Discover AI tools for game development — 100+ tools indexed by engine, task, and pricing.

StackResolve
Find, compare, and audit software for AI agents. Scored registry of tools and MCP servers.
What new websites are built with. Track adopters of your product, export with published contacts.
Statistics from 28 agencies: FRED, Eurostat, ECB, World Bank, OECD. Cited values, computed answers.
Shared task layer for AI coding agents. One MCP surface: task_search, task_get, task_mutate.
View repository →
