项目简介

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。

  1. 通过 Smithery 安装 (推荐): 打开您的终端,运行以下命令自动安装和配置DinCoder:
    npx -y @smithery/cli install @flight505/mcp_dincoder
  2. 通过 Claude Code / VS Code 安装: 如果您使用Claude Code或VS Code,可以通过其内置的MCP客户端添加DinCoder:
    claude mcp add dincoder -- npx -y mcp-dincoder@latest
  3. 全局安装 (适用于其他MCP客户端):
    npm install -g mcp-dincoder@latest
    安装后,您的MCP客户端需要能够自动绑定当前项目目录,或者您需要在每次调用时手动提供 'workspacePath' 参数。

服务器配置(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等)交互,您可以通过调用以下工具来驱动开发流程:

  1. 'constitution_create' (可选): 首先定义项目原则和约束。
    Use constitution_create to define principles for 'my-app' with these principles: 'Prefer functional programming', 'Write tests before implementation'
  2. 'specify_start': 启动一个新项目。
    Use specify_start to initialize a new project called 'my-app' with claude agent
  3. 'specify_describe': 描述您的项目需求。
    Use specify_describe with this description: 'Build a task management system with user accounts and due dates'
  4. 'clarify_add' / 'clarify_resolve' / 'clarify_list' (可选): 遇到不确定性时,进行澄清和追踪。
    Use clarify_add with this question: 'Should task due dates support time zones or just dates?'
  5. 'plan_create': 生成技术实现计划。
    Use plan_create with these constraints: 'Next.js 14 with App Router', 'PostgreSQL with Prisma ORM'
  6. 'tasks_generate': 创建详细的实现任务列表。
    Use tasks_generate with scope 'MVP - core task management'
  7. 'tasks_tick': 完成任务后更新状态。
    Use tasks_tick with taskId 'T001'
  8. 'quality_format' / 'quality_lint' / 'quality_test' 等: 持续运行质量检查。
    Use quality_format to format the code
  9. 'artifacts_read': 随时查看生成的文档和构件。
    Use artifacts_read with artifactType 'all'

每个工具的调用都将生成结构化的输出,指导AI代理和开发者进行下一步操作。

信息

分类

开发者工具