MCP TDD服务器
一个全面的MCP服务器,用于结构化的测试驱动开发工作流程和人工智能指导的TDD实践
   
概述
MCP TDD是一个模型上下文协议服务器,为健壮的测试驱动开发提供结构化工具和工作流。它以清晰、精确和内置状态管理的方式引导AI推理模型通过经典的红绿重构TDD循环。
主要特点
- 🔴 红相 -编写定义所需功能的失败测试
- 🟢 绿色阶段 -实现最少的代码以使测试通过
- 🔄 REFACTOR阶段 -在保持通过测试的同时提高代码质量
- 📊 状态管理 -跟踪TDD周期进度和历史
- ✅ 多框架 -支持Jest、Vitest、Mocha和Pytest(Python)
- 💾 检查点系统 -保存并回滚到以前的状态
- 📈 覆盖率分析 -监控测试覆盖率指标
- 🎯 引导式工作流程 -人工智能代理的TDD分步指导
安装
# Clone the repository
git clone https://github.com/Atomic-Germ/mcp-tdd.git
cd mcp-tdd
# Install dependencies
npm install
# Build the project
npm run build快速开始
作为MCP服务器
添加到您的MCP客户端配置中(例如,Claude Desktop):
{
"mcpServers": {
"tdd": {
"command": "node",
"args": ["/path/to/mcp-tdd/dist/index.js"],
"env": {}
}
}
}复制并继续
有关使用此工具包的GitHub Copilot和Continue runner的指导,请参阅 复制并继续.
TDD基本工作流程
# Initialize a new TDD cycle
tdd_init_cycle --feature "calculator" --description "Basic calculator operations"
# Write a failing test (RED)
tdd_write_test --file "test/calculator.test.ts" --test "should add two numbers"
# Run tests (should fail)
tdd_run_tests --expectation "fail"
# Implement code (GREEN)
tdd_implement --file "src/calculator.ts" --code "export const add = (a, b) => a + b"
# Run tests (should pass)
tdd_run_tests --expectation "pass"
# Refactor if needed
tdd_refactor --file "src/calculator.ts" --rationale "Add type safety"TDD核心方法
服务器实现了经典的TDD循环:
- 红 -编写一个定义所需功能的失败测试
- 绿色 -实现最少的代码以使测试通过
- 重构 -在保持通过测试的同时提高代码质量
使用示例
初始化TDD周期
// Request via MCP
{
"tool": "tdd_init_cycle",
"arguments": {
"feature": "user-authentication",
"description": "Implement user login and registration system",
"testFramework": "vitest",
"language": "typescript"
}
}编写失败测试(红色阶段)
{
"tool": "tdd_write_test",
"arguments": {
"testFile": "test/auth.test.ts",
"testName": "should authenticate user with valid credentials",
"testCode": "expect(authenticate('user', 'pass')).toBe(true)",
"expectedToFail": true
}
}实施代码(绿色阶段)
{
"tool": "tdd_implement",
"arguments": {
"file": "src/auth.ts",
"code": "export const authenticate = (user: string, pass: string) => user === 'user' && pass === 'pass'"
}
}重构代码(重构阶段)
{
"tool": "tdd_refactor",
"arguments": {
"file": "src/auth.ts",
"code": "// Improved implementation with proper validation",
"rationale": "Add input validation and security improvements"
}
}工具参考
TDD基本工具
tdd_init_cycle
为功能或错误修复初始化新的TDD周期。
参数:
feature(必填):功能名称或标识符description(必填):详细说明testFramework(可选):jest,vitest,mocha,或pytest(默认值:vitest)language(可选):typescript,javascript,或python(默认值:typescript)
tdd_write_test
编写或更新测试用例(RED阶段)。
参数:
testFile(必填):测试文件的路径testName(必填):测试用例的名称testCode(必填):要编写的测试代码expectedToFail(可选):测试最初是否应失败(默认值:true)
tdd_run_tests
执行测试并报告结果。
参数:
testPattern(可选):匹配测试文件的模式expectation(可选):pass或fail-预期测试结果
tdd执行器
实现代码以使测试通过(绿色阶段)。
参数:
file(必填):实现文件的路径code(必填):实施代码
tdd_重构
在维护测试的同时重构代码(Refactor阶段)。
参数:
file(必需):要重构的文件路径code(必填):重构代码rationale(可选):重构原因
tdd状态
获取当前TDD周期状态和建议的下一步行动。
参数: 无
tdd_complete_cycle
将TDD周期标记为完成并生成摘要。
参数:
notes(可选):完成注释
高级功能
tdd检查点
保存当前状态以备回滚。
参数:
description(必填):检查点描述
tdd_rollback
回滚到上一个检查点。
参数:
checkpointId(必填):要回滚到的检查点的ID
tdd覆盖范围
分析测试覆盖率指标。
参数:
path(可选):分析覆盖率的路径
发展
项目结构
mcp-tdd/
├── src/
│ ├── index.ts # Main entry point
│ ├── server.ts # TDD server implementation
│ ├── types/
│ │ └── index.ts # Type definitions
│ ├── config/
│ │ └── index.ts # Configuration management
│ ├── services/
│ │ ├── TDDStateManager.ts # State management
│ │ └── TestRunner.ts # Test execution
│ ├── handlers/
│ │ └── TDDToolHandlers.ts # Tool request handlers
│ └── utils/
│ └── fileUtils.ts # File utilities
└── test/ # Test suites
├── TDDStateManager.test.ts
├── TDDServer.test.ts
└── ConfigManager.test.ts运行测试
# Run all tests
npm test
# Run with coverage
npm run test:coverage
# Watch mode
npm run test:watch
# Type checking
npm run typecheck建筑
# Development build
npm run build
# Watch mode
npm run build:watch
# Clean build
npm run clean && npm run build与其他MCP工具集成
MCP TDD与其他MCP服务器无缝协作:
- mcp咨询 -就测试策略和实施方法获得人工智能咨询
- mcp乐观主义者 -REFACTOR阶段的代码优化和重构指导
- 测试框架 -与Jest、Vitest和Mocha直接集成
- 代码覆盖工具 -内置覆盖范围分析和报告
- CI/CD系统 -将TDD工作流集成到自动化管道中
支持的测试框架
- 维测试 (默认)-快速、现代的测试框架,支持TypeScript
- 玩笑 -流行、成熟的测试框架,具有广泛的生态系统
- 摩卡 -具有可定制断言库的灵活测试框架
- Pytest -Python测试框架;
TestRunner将检测常见的虚拟环境布局,并在虚拟环境内运行测试(例如。,.venv,venv,或env目录,或VIRTUAL_ENV环境变量)
贡献
我们欢迎捐款!请看 贡献.md 详细指南。
开发指南
- 遵循测试驱动开发实践(狗粮我们自己的工具!)
- 保持高测试覆盖率(>90%)
- 使用TypeScript严格模式
- 记录所有公共API
- 编写清晰、描述性的提交消息
建筑
有关详细的技术架构和设计决策,请参阅 建筑.md.
许可证
MIT许可证-请参阅 许可证 文件以获取详细信息。
需求
- Node.js 18+
- npm或pnpm用于包管理
- 其中之一:Jest、Vitest、Mocha或Pytest(用于测试执行)
支持
链接
______________________________________________________________________
内置于❤️ 使用测试驱动开发和模型上下文协议
