使用说明
MCPBench-模型上下文协议兼容性测试框架
概述
MCPBench是各种模型上下文协议(MCP)兼容性测试的开放标准https://github.com/modelcontextprotocol)客户端和服务器SDK实现。随着MCP生态系统的发展,并非每个服务器或客户端都将使用相同的语言编写,从而创建了一个N×N兼容性矩阵,其中N表示可用语言SDK的数量。
我们的目标是确保不同MCP实现之间的无缝互操作性,无论使用何种编程语言。
当前状态
初始SDK支持:
- Python SDK(官方)
- TypeScript SDK(官方)
- Rust SDK(官方)
未来扩张: 随着MCP生态系统的发展,将添加其他语言SDK。
里程碑M0-基础
我们已经成功展示了关键的基础能力:
1.Git包信息提取
- 从官方MCP SDK存储库自动获取和解析git包信息
- 构建特定语言的兼容性矩阵
- 跨SDK跟踪版本信息和依赖关系
2.Docker编写一代
- 生成docker compose配置,以跨语言矩阵运行客户端-服务器组合
- 支持跨语言测试场景
- 自动化环境设置以进行兼容性测试
3.端到端(E2E)测试框架
- 工作Python客户端↔ TypeScript服务器通信
- 流式HTTP传输验证
- 工具调用和响应验证
- 会话管理和协议合规性测试
项目结构
mcpbench/
├── README.md # This file
├── matrix/ # Core compatibility testing framework
│ ├── templates/ # Test templates for different scenarios
│ │ ├── python/ # Python client/server templates
│ │ │ ├── client/
│ │ │ │ ├── e2e/ # End-to-end client tests
│ │ │ │ ├── connection/ # Connection tests
│ │ │ │ └── ... # Other test categories
│ │ │ └── server/
│ │ │ ├── e2e/ # End-to-end server implementations
│ │ │ └── ... # Other server templates
│ │ ├── typescript/ # TypeScript client/server templates
│ │ │ ├── client/
│ │ │ └── server/
│ │ │ └── e2e/ # TypeScript server implementations
│ │ └── rust/ # Rust client/server templates
│ │ ├── client/
│ │ └── server/
│ ├── driver/ # Test orchestration and automation
│ │ ├── update_sdk_info.py # SDK information extraction
│ │ ├── setup.py # Environment setup
│ │ └── docker_generator.py # Docker compose generation
│ └── requirements.txt # Python dependencies
└── docs/ # Documentation and guides
关键组件
matrix/templates/:包含按语言和测试类型组织的测试模板。每个模板都为特定的测试场景提供了MCP客户端/服务器实现的工作示例。
matrix/driver/:核心自动化脚本:
- 从git仓库中提取SDK信息
- 生成兼容性矩阵
- 创建docker组合配置
- 协调跨语言测试
matrix/templates/*/e2e/:端到端测试实现,演示了使用MCP协议的完整客户端-服务器通信。
如何运行E2E测试
先决条件
- Python 3.8+ 使用pip
- Node.js 18+ 使用npm
- 码头工人 (用于集装箱测试)
快速入门:Python客户端↔ TypeScript服务器
-
安装Python依赖项
cd mcpbench/matrix/templates/python/server pip install -r requirements.txt -
启动TypeScript服务器
cd mcpbench/matrix/templates/typescript/server/e2e npm install npm run dev服务器将于启动
http://localhost:8000 -
运行Python客户端测试
cd mcpbench/matrix/templates/python/client/e2e python3 test_connection.py
期望输出
您应该看到:
- 成功建立连接
- 工具发现和列表
- 工具调用和响应验证
- 清理会话终止
测试其他语言组合
其他语言组合也可以遵循类似的模式:
- Python客户端↔ Rust服务器
- TypeScript客户端↔ Python服务器
- Rust客户端↔ TypeScript服务器
每个组合在 matrix/templates/ 目录。
路线图
里程碑M1-矩阵扩展
- 目标:完整的Python、TypeScript和Rust的N×N兼容性矩阵
- 交付物:
- 所有客户端-服务器组合均正常工作
- 自动化矩阵测试
- 性能基准测试
- 协议合规性验证
里程碑M2-高级测试
- 目标:全面的测试覆盖和边缘案例处理
- 交付物:
- 认证测试
- 错误处理场景
- 资源管理测试
- 通知和流媒体测试
- 负载测试和压力测试
里程碑M3——生态系统整合
- 目标:与CI/CD和开发人员工作流程集成
- 交付物:
- GitHub操作集成
- 自动兼容性报告
- SDK版本兼容性跟踪
- 性能回归检测
里程碑M4-扩展语言支持
- 目标:支持其他语言SDK
- 交付物:
- Go SDK支持
- Java SDK支持
- C#SDK支持
- 社区SDK集成
里程碑M5-生产准备就绪
- 目标:企业级兼容性测试
- 交付物:
- 全面的文件
- 性能SLA
- 安全性测试
- 合规性验证
贡献
我们欢迎MCP社区的贡献!以下是您可以提供帮助的方式:
入门指南
- 分叉存储库
- 创建要素分支:
git checkout -b feature/your-feature-name - 进行更改
- 添加测试 对于新功能
- 更新文档 根据需要
- 提交拉取请求
贡献领域
- 新语言SDK支持:为其他MCP SDK添加模板和测试
- 测试改进:增强现有测试或添加新的测试场景
- 文档:改进指南、示例和API文档
- 自动化:加强测试框架和CI/CD集成
- 演出:优化测试执行并添加性能基准
开发指南
- 代码的风格:遵循每种语言的现有代码样式
- 测试:确保所有新功能都包括适当的测试
- 文档:更新新功能的相关文档
- 兼容性:验证更改不会破坏现有功能
报告问题
- 使用GitHub Issues报告错误或请求功能
- 包括详细的复制步骤
- 提供相关日志和错误消息
- 指定受影响的语言组合
社区
- 加入我们在GitHub上的讨论
- 参与MCP社区活动
- 分享您的用例和需求
- 帮助其他贡献者
许可证
此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。
致谢
- 规范和官方SDK的模型上下文协议团队
- MCP社区提供反馈和贡献
- 帮助构建和测试此框架的贡献者
MCPBench -确保MCP在所有语言和实现中的兼容性。
