项目简介
DinCoder是一个基于Model Context Protocol (MCP) 构建的服务器,旨在为AI编码代理提供一个结构化的、规范驱动的开发框架。它实现了GitHub的Spec Kit方法论,将软件开发流程从传统的“提示-代码堆砌”模式转变为系统化的“规范-计划-任务-实现”流程。通过DinCoder,AI能够根据明确的规范生成代码,确保项目的一致性、可维护性和高质量。
主要功能点
- 项目宪章 (Constitution):定义项目级的原则、技术约束和偏好,为所有AI生成的代码提供指导。
- 规范描述 (Specify):将高层级的想法和产品需求转化为结构化的、详细的软件规范(如用户故事、验收标准)。
- 技术规划 (Plan):根据规范和技术约束,自动生成详细的技术实现计划,包括架构、数据模型、API合同和测试场景。
- 任务生成 (Tasks):将技术计划分解为可执行的、按依赖排序的粒度化任务列表,支持并行化工作,指导AI逐步实现。
- 质量保障 (Quality):集成代码格式化(Prettier)、静态代码分析(ESLint)、测试套件运行、安全审计、依赖更新检查和许可证合规性检查工具,确保代码质量。
- 澄清跟踪 (Clarification Tracking):系统地管理规范中的歧义和问题,通过唯一ID跟踪澄清过程,并记录解决方案及理由。
- Git 分支管理 (Git Branching):协助创建新的Git工作分支,确保开发流程的整洁和隔离。
- 研究文档 (Research Append):记录技术决策、权衡和研究发现,维护项目知识库。
- 构件读取 (Artifacts Read):读取和返回项目生成的规范、计划、任务等JSON格式构件。
安装步骤
DinCoder需要Node.js (版本 >= 20.0.0) 和 npm 或 pnpm。
- 通过 Smithery 安装 (推荐):
打开您的终端,运行以下命令自动安装和配置DinCoder:
npx -y @smithery/cli install @flight505/mcp_dincoder - 通过 Claude Code / VS Code 安装:
如果您使用Claude Code或VS Code,可以通过其内置的MCP客户端添加DinCoder:
claude mcp add dincoder -- npx -y mcp-dincoder@latest - 全局安装 (适用于其他MCP客户端):
安装后,您的MCP客户端需要能够自动绑定当前项目目录,或者您需要在每次调用时手动提供 'workspacePath' 参数。npm install -g mcp-dincoder@latest
服务器配置(MCP客户端使用)
为了让MCP客户端能够连接到DinCoder服务器,您需要提供服务器的启动信息。通常,这包括服务器的名称、启动命令、参数,以及连接方式(传输协议)。以下是两种常见传输协议的配置示例说明:
1. Stdio (标准输入输出) 传输模式 这是最简单的连接方式,尤其适用于本地运行或集成到CLI工具中。
- 服务器名称 ('name'): 'dincoder-stdio' (建议名称,可自定义)
- 启动命令 ('command'): 'npx' (执行Node.js包的命令)
- 命令参数 ('args'): '["mcp-dincoder@latest"]' (指示npx运行最新版本的mcp-dincoder包)
- 传输协议 ('transport'): 'stdio' (指定使用标准输入输出进行通信)
- 说明: 此配置用于通过标准输入输出(Stdio)连接DinCoder服务器。'npx mcp-dincoder@latest' 命令将下载并运行最新版本的DinCoder服务器。
2. HTTP (超文本传输协议) 传输模式 这种模式适用于通过网络连接服务器,通常需要指定服务器的URL。
- 服务器名称 ('name'): 'dincoder-http' (建议名称,可自定义)
- 启动命令 ('command'): 'node' (执行Node.js脚本的命令)
- 命令参数 ('args'): '["dist/index.js"]' (指定运行DinCoder服务器的编译后入口文件)
- 环境变量 ('env' - 可选):
- 'PORT: "8123"' (设置服务器监听的端口号)
- 'TRANSPORT_MODE: "stateless"' (设置传输模式为无状态,也可以设置为'stateful'以支持会话管理和SSE)
- 传输协议 ('transport'): 'http' (指定使用HTTP协议进行通信)
- 服务器URL ('url'): 'http://localhost:8123/mcp' (服务器的完整地址,需与'PORT'配置一致)
- 说明: 此配置用于通过HTTP连接DinCoder服务器。'node dist/index.js' 命令会启动一个HTTP服务器。'env' 字段用于设置环境变量,例如服务器监听的端口和传输模式。'url' 字段指定服务器的HTTP地址。
重要提示:
- 工作空间路径 ('workspacePath'):DinCoder服务器在运行时,通常会期望在MCP客户端调用的当前工作目录(或由客户端自动绑定的目录)中创建和管理文件(例如'specs/'目录、'plan.md'等)。请确保您的MCP客户端从项目根目录启动,或通过客户端的设置确保'workspacePath'参数能正确传递给DinCoder工具。
- 配置格式:上述仅为配置说明,实际MCP客户端通常会要求您在JSON或YAML文件中提供这些信息。
基本使用方法
与任何MCP兼容的AI代理(如Claude Code, Cursor等)交互,您可以通过调用以下工具来驱动开发流程:
- 'constitution_create' (可选): 首先定义项目原则和约束。
Use constitution_create to define principles for 'my-app' with these principles: 'Prefer functional programming', 'Write tests before implementation' - 'specify_start': 启动一个新项目。
Use specify_start to initialize a new project called 'my-app' with claude agent - 'specify_describe': 描述您的项目需求。
Use specify_describe with this description: 'Build a task management system with user accounts and due dates' - 'clarify_add' / 'clarify_resolve' / 'clarify_list' (可选): 遇到不确定性时,进行澄清和追踪。
Use clarify_add with this question: 'Should task due dates support time zones or just dates?' - 'plan_create': 生成技术实现计划。
Use plan_create with these constraints: 'Next.js 14 with App Router', 'PostgreSQL with Prisma ORM' - 'tasks_generate': 创建详细的实现任务列表。
Use tasks_generate with scope 'MVP - core task management' - 'tasks_tick': 完成任务后更新状态。
Use tasks_tick with taskId 'T001' - 'quality_format' / 'quality_lint' / 'quality_test' 等: 持续运行质量检查。
Use quality_format to format the code - 'artifacts_read': 随时查看生成的文档和构件。
Use artifacts_read with artifactType 'all'
每个工具的调用都将生成结构化的输出,指导AI代理和开发者进行下一步操作。
信息
分类
开发者工具