AI代码助手规范开发工具

Spec-Kit MCP Server是一个基于Rust开发的高性能服务器,通过MCP协议为AI代码助手提供完整的规范驱动开发工具集,支持10种规范开发工具,适用于团队协作和自动化开发流程。

  • by lsendel
  • Rust
  • 本地部署
  • 32 星标
  • 更新于
在 GitHub 查看 lsendel/spec-kit-mcp

使用说明

Spec-Kit MCP 服务器

MCP服务器,它使AI编码助手能够通过(该服务器)采用规格驱动的开发实践 GitHub Spec-Kit(可译为“GitHub规范工具包”或根据具体语境调整为更贴切的名称) 工具包。

特性/特点

  • 🎯 100% 规格套件覆盖全部10种工具,助力实现完全基于规范的开发
  • 🚀 MCP协议为AI代理提供完整的JSON-RPC 2.0实现
  • ⚡ 高性能使用Rust和Tokio构建,支持异步I/O
  • 🔧 双重安装通过以下方式安装 cargo 或者 npx
  • 🛡️ 类型安全带有验证功能的综合类型系统
  • 📚 完整文档教程、示例和配置指南
  • 🌐 支持多编辑器克劳德代码(此处可能为特定语境下的名称,直译可能不准确,若指具体软件或项目需具体情境判断)、Cursor、风帆冲浪(此处“Windsurf”若指软件或工具则应译为相应名称,若指运动则为风帆冲浪)、VS Code 及更多
  • 🧪 准备就绪,可投入生产测试、记录并部署

快速入门

安装

(推荐使用)Via Cargo(货运渠道)

快速、可靠,支持离线工作:

cargo install spec-kit-mcp

优点:

  • ✅ 启动速度最快
  • ✅ 离线工作
  • ✅ 最可靠
  • ✅ 全平台支持(macOS Intel/ARM,Linux)

通过 npm/npx

对于Node.js用户:

# Global installation
npm install -g @lsendel/spec-kit-mcp

# Or use with npx (downloads on first use)
npx @lsendel/spec-kit-mcp

优点:

  • ✅ Node.js 用户熟悉
  • ✅ 自动下载预编译的二进制文件
  • ✅ npx 总是使用最新版本

先决条件

  • **Python 3.11+(或 Python 3.11及以上版本)**由GitHub规范工具包(spec-kit)要求
  • UV包管理器需要运行 spec-kit(请从 https://docs.astral.sh/uv/ 安装)
  • **GitHub Spec-Kit(可译为“GitHub规范工具包”或“GitHub规格工具集”,具体译名可根据上下文或产品特性微调)**无需单独安装——MCP服务器使用 uvx 直接运行spec-kit
  • Node.js 18及以上版本仅当使用npx安装方法时
  • **Git(一种分布式版本控制系统)**用于版本控制操作

注spec-kit CLI 在 PyPI 上不可用。MCP 服务器会自动通过……运行它 uvx --from git+https://github.com/github/spec-kit.git

使用Claude代码进行配置

Claude Code 支持两种配置 MCP 服务器的方式:

方法1:使用Cargo二进制文件(推荐)

首先通过cargo进行安装:

cargo install spec-kit-mcp

然后进行配置 ~/.config/claude-code/mcp.json:

{
  "mcpServers": {
    "spec-kit": {
      "command": "spec-kit-mcp",
      "args": [],
      "env": {}
    }
  }
}

优点:

  • ✅ 启动速度最快(<100毫秒)
  • ✅ 离线工作
  • ✅ 最可靠
  • ✅ 支持所有平台(macOS Intel/ARM,Linux)

方法2:使用npx(无需安装)

创建或编辑 ~/.config/claude-code/mcp.json:

{
  "mcpServers": {
    "spec-kit": {
      "command": "npx",
      "args": ["-y", "@lsendel/spec-kit-mcp"],
      "env": {}
    }
  }
}

优点:

  • ✅ 无需安装
  • ✅ 始终使用最新版本
  • ✅ 适合尝试一下

注首次运行可能会较慢,因为它需要下载二进制文件。

验证配置

  1. 重启Claude代码 编辑配置文件后

  2. 测试MCP工具 在克劳德代码中:

List all available MCP tools

你应该看到列出了10个规格套件工具:

  • speckit_init 翻译为中文是“speckit 初始化”。
  • speckit_check 翻译为中文是“检查speckit(或特定功能/设置)”。不过,具体翻译可能需要根据上下文来确定“speckit”在这里的具体含义,因为“speckit”本身不是一个通用的英文单词,可能是某个特定软件、系统或功能的名称。如果“speckit”是某个特定领域的术语或专有名词,那么翻译时可能需要保留其原样或根据具体情况进行适当调整
  • “speckit_constitution” 可以翻译为“Speckit 宪章”或“Speckit 宪法”,具体取决于上下文和该词在特定语境中的含义。如果“Speckit”是一个特定组织、项目或系统的名称,那么“speckit_constitution”很可能指的是该组织、项目或系统的指导原则或基本规则
  • speckit_specify 翻译为中文是“指定speckit(的参数或选项)”。不过,这里的“speckit”可能是一个特定领域或软件中的术语,没有具体的上下文可能难以给出更准确的翻译。如果“speckit”是某个特定软件或工具的名称,那么“speckit_specify”可能指的是在该软件或工具中指定某些参数、选项或配置的功能。在没有具体上下文的情况下,这个翻译是一个较为通用的解释
  • speckit_plan 可以翻译为“规格计划”或“配置计划”,具体取决于上下文中的使用场景。如果是指对产品或项目的规格进行规划,那么“规格计划”更为贴切;如果是指对配置或设置进行规划,则“配置计划”更为合适
  • speckit_tasks(可译为“Speckit任务”或根据具体上下文意译为更贴切的名称,如“小斑点任务”等,但通常保留原样以指代特定系统或框架中的任务集)
  • speckit_implement(可译为“speckit的实现”或根据具体上下文调整为更贴切的表述)
  • speckit_clarify 可以翻译为“澄清speckit(或具体指某事物/情况)”。不过,这个翻译比较直译,具体翻译可能需要根据上下文来调整,以更准确地表达原句的含义。如果“speckit”是一个特定的术语或品牌名,那么可能需要保留原样或根据具体情况做适当调整
  • speckit_analyze 翻译为中文是“speckit分析”。不过,具体翻译可能需要根据“speckit”在上下文中的具体含义来调整,因为“speckit”本身可能是一个特定领域或应用中的术语。如果“speckit”没有特定含义,那么“speckit分析”就是较为通用的翻译
  • speckit检查清单
  1. 尝试一个简单的命令:
Use speckit_check to verify my development environment

故障排除配置

问题重启后工具未出现

解决方案:

  1. 检查配置文件位置: cat ~/.config/claude-code/mcp.json
  2. 验证JSON语法: cat ~/.config/claude-code/mcp.json | jq
  3. 检查Claude Code日志: ~/.config/claude-code/logs/
  4. 对于 npx 方法,请确保已安装 Node.js: node --version
  5. 对于二进制方法,验证安装: which spec-kit-mcp

问题: spec-kit-mcp: command not found (方法2)

解决方案:

  • 使用方法1(npx)代替,或者
  • 将npm全局二进制目录添加到PATH中: export PATH="$PATH:$(npm config get prefix)/bin"

需要帮助其他编辑吗? 查看 完整配置指南 适用于Cursor、Windsurf、VS Code等更多工具。

📚 文档

快速链接

学习资源

刚接触Spec-Kit吗? 从这里开始:

  1. 教程1:你的第一个Spec-Kit项目 (20分钟)
  2. 完整的CLI示例 - 完全初学者示例
  3. 您编辑器的配置

构建API吗? 退房:

与团队合作吗?

可用工具

MCP服务器为完整工作流提供了10个规范套件工具:

1. speckit_init

初始化一个具有适当结构的新spec-kit项目。

{
  "project_name": "my-project",
  "project_path": "."
}

2. speckit_constitution

制定项目管理原则和开发标准。

{
  "principles": "Simplicity, Performance, Security",
  "constraints": "Must support Python 3.11+",
  "output_path": "./speckit.constitution"
}

3. speckit_specify

定义需求和用户故事(即“要做什么”)。

{
  "requirements": "User authentication system with OAuth2 support",
  "user_stories": "As a user, I want to login with Google...",
  "output_path": "./speckit.specify"
}

4. speckit_plan

制定技术实施方案(即“如何做”)。

{
  "spec_file": "./speckit.specify",
  "tech_stack": "Rust + Tokio",
  "output_path": "./speckit.plan"
}

5. speckit_tasks

根据计划生成可执行的任务清单。

{
  "plan_file": "./speckit.plan",
  "breakdown_level": "medium",
  "output_path": "./speckit.tasks"
}

6. speckit_implement

根据任务清单执行实施。

{
  "task_file": "./speckit.tasks",
  "context": "Using Rust with async/await",
  "output_dir": "./src"
}

7. speckit_clarify

请求对模糊不清的要求或规范进行澄清。

{
  "spec_file": "./speckit.specify",
  "questions": "How should we handle edge cases?"
}

8. speckit_analyze

分析代码的质量、合规性以及技术债务。

{
  "target_path": "./src",
  "check_constitution": true,
  "output_format": "markdown"
}

9. speckit_check

验证是否已安装进行spec-kit开发所需的工具。

{
  "check_speckit": true,
  "check_git": true,
  "check_ai_tools": true
}

10. speckit_checklist

生成审查核对清单以验证实施的完整性。

{
  "spec_file": "./speckit.specify",
  "task_file": "./speckit.tasks",
  "output_path": "./checklist.md"
}

查看所有工具的实际应用查看一下 示例 完整工作流的目录

使用示例

以下是使用Claude Code的完整工作流程:

User: Initialize a new spec-kit project called "user-auth"

Claude: [Uses speckit_init tool]
✓ Project initialized at ./user-auth

User: Create a constitution focusing on security and simplicity

Claude: [Uses speckit_constitution tool]
✓ Constitution created at ./speckit.constitution

User: Specify requirements for OAuth2 authentication

Claude: [Uses speckit_specify tool]
✓ Specification created at ./speckit.specify

User: Create a technical plan using Rust and OAuth2 libraries

Claude: [Uses speckit_plan tool]
✓ Technical plan created at ./speckit.plan

User: Generate detailed tasks

Claude: [Uses speckit_tasks tool]
✓ Task list created at ./speckit.tasks
  Found 15 actionable tasks

建筑

AI Agent (Claude Code, Cursor, etc.)
    ↓
MCP Protocol (JSON-RPC 2.0 over stdio)
    ↓
Spec-Kit MCP Server (Rust/Tokio)
    ↓
Tool Registry & Dispatcher
    ↓
Spec-Kit CLI Integration Layer
    ↓
Spec-Kit Python CLI (subprocess)
    ↓
File System (speckit.* artifacts)

发展

从源代码构建

git clone https://github.com/yourusername/spec-kit-mcp.git
cd spec-kit-mcp
cargo build --release

运行测试

cargo test

运行服务器

# With default settings
cargo run

# With custom log level
cargo run -- --log-level debug

# With custom CLI path
cargo run -- --cli-path /path/to/specify

# With custom timeout
cargo run -- --timeout 600

项目结构

spec-kit-mcp/
├── src/
│   ├── main.rs              # Binary entry point
│   ├── lib.rs               # Library root
│   ├── mcp/                 # MCP protocol implementation
│   │   ├── types.rs         # JSON-RPC types
│   │   ├── protocol.rs      # Protocol handler
│   │   ├── transport.rs     # Stdio transport
│   │   └── server.rs        # MCP server
│   ├── speckit/             # Spec-kit CLI integration
│   │   ├── cli.rs           # Command execution
│   │   └── errors.rs        # Error types
│   └── tools/               # MCP tools
│       ├── mod.rs           # Tool registry
│       ├── init.rs          # speckit_init tool
│       ├── constitution.rs  # speckit_constitution tool
│       ├── specify.rs       # speckit_specify tool
│       ├── plan.rs          # speckit_plan tool
│       └── tasks.rs         # speckit_tasks tool
├── Cargo.toml               # Rust package manifest
└── README.md                # This file

贡献;做出贡献

欢迎投稿!请参阅 CONTRIBUTING.md 翻译为中文是:“贡献指南.md” 或 “贡献规范.md”。这个文件通常用于说明如何向某个项目或组织做出贡献,包括提交代码、报告问题、参与讨论等相关的指南或规范 作为指南。

开发工作流程

  1. 为仓库创建分支
  2. 创建一个特性分支: git checkout -b feature/my-feature
  3. 做出你的更改
  4. 运行测试: cargo test
  5. 运行 clippy: cargo clippy
  6. 格式代码: cargo fmt
  7. 使用规范提交进行提交: git commit -m "feat: add new feature"
  8. 推送并创建一个拉取请求

路线图

当前版本(0.1.0)

  • ✅ 所有10个规格套件工具均已实现(100%覆盖率)
  • ✅ 支持MCP协议(JSON-RPC 2.0)
  • ✅ 双重分发(cargo + npx)
  • ✅ 全面的错误处理
  • ✅ 完整的教程和示例
  • ✅ 主要编辑器的配置指南
  • ✅ 已发布到 crates.io 和 npm

未来版本

v0.2.0

  • [ ] 增强的工具参数和验证
  • [ ] 配置文件支持(.speckit-mcp.toml)
  • [ ] 常见项目类型的模板系统
  • [ ] 性能优化和缓存
  • [ ] Windows平台支持
  • [ ] 基于网络的工具输出可视化

版本0.3.0

  • [ ] 通过服务器发送事件(SSE)远程管理控制协议(MCP)
  • [ ] 用于项目可视化的Web用户界面仪表板
  • [ ] 模板市场集成
  • [ ] 团队协作功能(共享章程)
  • [ ] 指标与分析仪表板
  • [ ] 自定义工具的插件系统

演出

  • 冷启动小于500毫秒
  • 工具调用<200毫秒(不包括spec-kit CLI执行时间)
  • 内存使用量<50MB 基线
  • 并发请求10多个

兼容性

AI编码助手

  • ✅ 克劳德代码
  • ✅ 光标
  • ✅ GitHub Copilot(支持MCP)
  • ✅ 任何兼容MCP的客户端

平台

  • ✅ macOS(Intel和ARM架构)
  • ✅ Linux(x86_64架构)
  • ⏳ Windows(计划中)

故障排除

未找到Spec-Kit CLI

Error: spec-kit CLI not found!

解决方案确保已安装uv包管理器:

# Check if uv is installed
uv --version

# If not installed, install uv (macOS/Linux)
curl -LsSf https://astral.sh/uv/install.sh | sh

# Or using pip
pip install uv

# Test spec-kit access
uvx --from git+https://github.com/github/spec-kit.git specify check

注规范套件CLI(spec-kit CLI)不作为一个独立包提供。MCP服务器使用 uvx 直接从GitHub运行它。

Python版本过旧

解决方案升级到 Python 3.11 或更高版本:

# Check version
python3 --version

# Install Python 3.11+ (macOS with Homebrew)
brew install python@3.11

权限被拒绝

解决方案确保二进制文件可执行:

chmod +x $(which spec-kit-mcp)

常见问题解答(FAQ)

问:我需要单独安装spec-kit吗? A: 是的,MCP服务器需要安装spec-kit Python CLI。

问:我可以不用Claude Code就使用这个吗? A: 是的!它与任何兼容MCP的人工智能编码助手都能配合使用。

问:这个功能在离线状态下能使用吗? A: 是的,如果是通过包管理器安装的话。npx 版本需要网络来进行初始下载。

问:这与直接使用规格套件相比如何? A: 这台MCP服务器使AI代理能够自动使用规范套件,从而简化了工作流程。

许可证

该项目采用双重许可,具体如下:

您可以选择任一许可用于您的使用。

致谢

链接

  • **Crates.io(注:这通常指的是一个用于发布和管理Rust语言包的网站,直接翻译为“Rust包仓库.io”或保持原名以体现其特定含义)**https://crates.io/crates/spec-kit-mcp 的中文翻译可以是:“https://crates.io 上的 spec-kit-mcp 库页面”。不过,通常我们直接保留网址的原样,因为网址本身在中文语境下也是通用的,只是在解释或说明时可能会加上一些描述性文字。所以,如果只是单纯翻译这个网址,可以保持原样;如果是在说明中提及,可以加上“(库页面)”之类的描述
  • **Docs.rs(注:这通常是一个用于托管Rust语言文档的平台名称,直接翻译可能无法完全传达其特定含义,但在此处按字面意思翻译为“文档点R点S”并不合适,实际使用时可保持原样或根据上下文解释为“Rust文档托管平台Docs.rs”)**https://docs.rs/spec-kit-mcp(该网址可译为:“Rust文档库中的spec-kit-mcp页面”,但通常网址本身不直接翻译,这里仅描述其内容)
  • GitHubhttps://github.com/yourusername/spec-kit-mcp(注:此网址为示例,实际用户名和项目名可能不同,翻译时保持网址原样)
  • 问题https://github.com/yourusername/spec-kit-mcp/issues 的中文翻译可以是:“https://github.com/你的用户名/spec-kit-mcp/issues(问题页面)”。不过,为了更自然地表达,我们通常会说:“这是 GitHub 上你的用户名(替换为实际用户名)的 spec-kit-mcp 项目的 Issues 页面。” 但直接翻译链接部分,保持原样加上中文解释即可,如上所示
  • **Spec-Kit 翻译成中文是“规格套件”或“配置工具包”**https://github.com/github/spec-kit(译文:https://github.com/github/spec-kit,注:该网址本身为英文,无需翻译,但在此上下文中,若需说明其内容或用途,可译为“GitHub上的spec-kit仓库”)

用Rust构建 | 已准备好投入生产 | 开源