使用说明
规范编码MCP服务器
基于FastMCP的服务器,用于规范驱动的编码工作流程。提供工具、资源和提示,以帮助LLM执行结构化、规范驱动的开发。
特性
- FastMCP框架:基于FastMCP 2.x构建的现代Python MCP服务器
- JSON存储:所有数据都存储在简单的JSON文件中
- 完成工作流程:规格→ 规划→ 任务→ 回顾→ 完成
- MCP协议:完全支持工具、资源和提示
- TOON压缩:令牌减少30-60%,以实现高效的上下文窗口使用
令牌压缩
默认情况下,所有工具输出都使用 TOON格式 (面向令牌的对象表示法),与JSON相比,令牌使用量减少了30-60%。这有助于在处理大型规范时防止上下文窗口拥塞。
示例比较:
JSON(630个字符,~157个标记):
{
"id": "001-user-auth",
"title": "User Authentication",
"requirements": [
{"id": "REQ-001", "title": "Login", "priority": "high"}
]
}
TOON(310个字符,约77个令牌):
id: 001-user-auth
title: User Authentication
[1,]{id,title,priority}:
REQ-001,Login,high
使用 format: "json" 如果需要,可以在任何工具中使用参数来获取标准JSON输出。
安装
pip install -e .
或者直接安装依赖项:
pip install fastmcp
使用Claude Desktop
添加到您的Claude桌面配置(~/.claude/config.json 或 %APPDATA%\Claude\claude_desktop_config.json):
{
"mcpServers": {
"spec-coding": {
"command": "uvx",
"args": ["spec-coding-mcp"],
"cwd": "/path/to/your/project"
}
}
}
或者直接使用Python:
{
"mcpServers": {
"spec-coding": {
"command": "python",
"args": ["-m", "spec_coding.server"],
"cwd": "/path/to/your/project"
}
}
}
作为Claude Code插件安装
这个仓库也是一个Claude Code插件+市场。一步完成安装:
/plugin marketplace add hamishfromatech/spec-coding-mcp
/plugin install spec-coding@spec-coding-marketplace
或者直接添加本地结账:
/plugin marketplace add /path/to/spec-coding-mcp
/plugin install spec-coding@spec-coding-marketplace
安装插件会捆绑MCP服务器(通过 .mcp.json,与
uv run --project ${CLAUDE_PLUGIN_ROOT} spec-coding-mcp) 和 一套技能
编排工作流:
| 技能 | 加载时 |
|---|---|
spec-workflow |
完整规格→ Plan → 任务→ 回顾→ 完整流程 |
spec-create |
定义特征规范及其要求 |
spec-plan |
规划实施、架构和风险 |
spec-tasks |
将计划分解为任务并跟踪进度 |
spec-review |
审查已完成的工作并归档功能 |
当作为插件安装时, SPECS_DIR 默认情况下未设置,因此读取规格
并写在 ./specs 相对于项目的工作目录。点
其他地方的服务器 spec_set_project(path) 或 SPECS_DIR 有人是。
瞄准一个项目
默认情况下,服务器读取/写入以下规范 ./specs 相对于其工作
目录。您可以通过三种方式覆盖它(最高优先级优先):
spec_set_project(path)--从会话(如果缺少则创建)中将服务器指向项目的specs目录。- 这个
SPECS_DIR环境变量。 ./specs(默认),或通过path到spec_init.
可用工具
项目管理
| 工具 | 说明 |
|---|---|
spec_init |
初始化新的规范驱动项目(可选 path 以目录为目标) |
spec_set_project |
将服务器指向项目的规范目录 |
spec_list |
列出项目中的所有功能 |
spec_current |
获取当前活动的功能 |
功能管理
| 工具 | 说明 |
|---|---|
spec_create |
创建新的功能规范 |
spec_get |
获取完整的功能详细信息 |
spec_update |
更新功能字段 |
spec_delete |
删除功能(仅草稿) |
需求
| 工具 | 说明 |
|---|---|
spec_add_requirement |
添加带有验收标准的要求 |
spec_update_requirement |
更新特定要求 |
规划
| 工具 | 说明 |
|---|---|
spec_plan |
制定实施计划 |
spec_get_plan |
获取实施计划 |
任务
| 工具 | 说明 |
|---|---|
spec_tasks |
根据计划创建任务列表(如果放弃进度,则拒绝;通过 overwrite=True 替换) |
spec_get_tasks |
获取某个功能的所有任务 |
spec_update_task |
更新任务的状态 |
spec_add_task |
添加新任务 |
审核并完成
| 工具 | 说明 |
|---|---|
spec_review |
创建具有批准状态的审核(将状态设置为 review;不存档) |
spec_get_review |
获取某个功能的评论 |
spec_set_status |
手动设置功能状态(不 completed --使用 spec_complete) |
spec_complete |
将功能标记为完整并存档 |
导入/导出
| 工具 | 说明 |
|---|---|
spec_export |
将功能导出为JSON |
spec_import |
从JSON导入功能(如果ID存在,则拒绝;通过 overwrite=True 替换) |
spec_analyze |
分析TOON和JSON格式之间的令牌节省 |
输出格式
所有工具均支持 format 参数:
format: "toon"(默认)-压缩TOON格式,令牌减少30-60%format: "json"-兼容标准JSON格式
# Get feature in TOON format (default, more efficient)
spec_get(feature_id="001-auth")
# Get feature in JSON format (when needed for parsing)
spec_get(feature_id="001-auth", format="json")
工作流
1.初始化项目
Use spec_init to create the specs directory structure
2.创建规范
spec_create(
feature_id="001-user-auth",
title="User Authentication",
description="Implement secure user authentication with login, logout, and session management",
tech_stack=["Python", "FastAPI", "JWT"],
constraints=["Must be GDPR compliant", "Support 2FA"]
)
3.添加要求
spec_add_requirement(
feature_id="001-user-auth",
req_id="REQ-001",
title="User Login",
description="Users can log in with email and password",
priority="high",
acceptance_criteria=[
"User can enter email and password",
"Invalid credentials show appropriate error",
"Successful login creates session",
"Session persists for 24 hours"
]
)
4.制定计划
spec_plan(
feature_id="001-user-auth",
overview="Implement JWT-based authentication with FastAPI",
architecture="API Gateway -> Auth Service -> User Database",
components=[
{"name": "Auth Service", "purpose": "Handle authentication logic", "files": ["auth/service.py"]},
{"name": "Session Manager", "purpose": "Manage user sessions", "files": ["auth/session.py"]}
],
risks=[
{"risk": "Token theft", "likelihood": "Medium", "impact": "High", "mitigation": "Use short-lived tokens with refresh"}
]
)
5.创建任务
spec_tasks(
feature_id="001-user-auth",
tasks=[
{"id": "TASK-001", "title": "Create auth module", "dependencies": []},
{"id": "TASK-002", "title": "Implement login endpoint", "dependencies": ["TASK-001"]},
{"id": "TASK-003", "title": "Add session management", "dependencies": ["TASK-001"]}
]
)
6.跟踪进度
spec_update_task(feature_id="001-user-auth", task_id="TASK-001", status="in_progress")
spec_update_task(feature_id="001-user-auth", task_id="TASK-001", status="completed")
7.审查并完成
spec_review(
feature_id="001-user-auth",
approved=True,
feedback=["Clean implementation", "Good test coverage"],
recommendations=["Consider adding rate limiting"]
)
spec_complete(feature_id="001-user-auth")
目录结构
specs/
├── project.json # Project metadata
├── templates/ # Template files
│ ├── spec_template.json
│ ├── plan_template.json
│ └── tasks_template.json
├── active/ # Active features
│ └── <feature-id>/
│ ├── spec.json # Feature specification
│ ├── plan.json # Implementation plan
│ ├── tasks.json # Task list
│ └── review.json # Review (optional)
└── completed/ # Completed features
└── <feature-id>/
└── ...
提示词
服务器提供提示以指导规范驱动的工作流程:
| 提示 | 描述 |
|---|---|
spec_workflow_start |
启动新的规范驱动工作流 |
spec_create_from_idea |
根据想法描述创建规范 |
spec_plan_feature |
为功能生成实施计划 |
spec_breakdown_tasks |
将计划分解为可操作的任务 |
spec_review_checklist |
为功能生成审查清单 |
资源
通过MCP资源访问特征数据:
spec://features/{feature_id}/spec-功能规格spec://features/{feature_id}/plan-实施计划spec://features/{feature_id}/tasks-任务列表
发展
直接运行服务器:
python -m spec_coding.server
运行测试:
python -m pytest tests/
建筑学
内置于 FastMCP,它提供:
- 声明式装饰器:
@mcp.tool,@mcp.resource,@mcp.prompt - 类型安全参数:使用
Annotated[type, "description"]用于自动模式生成 - 清洁代码:比原始MCP SDK减少约60%的样板
- 自动stdio处理:简单
mcp.run()入口点
关于
由以下人员制造和维护 A-Tech私人有限公司.
在YouTube上关注: @哈米什弗拉梅塔什
许可证
麻省理工学院
作者
由以下人员制造和维护 A-Tech私人有限公司.
在YouTube上关注: @哈米什弗拉梅塔什
反馈与社区
发现这个MCP服务器真的有用吗?我很想收到你的来信。
- 电子邮件: hamish@atech.industries
- 加入我们免费的开源AI建设者俱乐部Skool: https://www.skool.com/open-source-ai-builders-club/about?ref=da946a67c5c646e991b96ea9ce7ad9e4