MCPBench 是一个开放标准,用于测试各种模型上下文协议(MCP https://github.com/modelcontextprotocol)客户端和服务器SDK实现之间的兼容性。随着MCP生态系统的发展,不是每个服务器或客户端都会用同一种编程语言编写,这形成了一个N×N的兼容性矩阵,其中N代表可用的语言SDK的数量。
我们的目标是确保不同MCP实现之间无缝互操作,无论使用的编程语言是什么。
初始SDK支持:
未来扩展: 随着MCP生态系统的发展,将添加更多语言的SDK。
我们已经成功展示了关键的基础能力:
mcpbench/
├── README.md # 本文件
├── matrix/ # 核心兼容性测试框架
│ ├── templates/ # 不同场景的测试模板
│ │ ├── python/ # Python客户端/服务器模板
│ │ │ ├── client/
│ │ │ │ ├── e2e/ # 端到端客户端测试
│ │ │ │ ├── connection/ # 连接测试
│ │ │ │ └── ... # 其他测试类别
│ │ │ └── server/
│ │ │ ├── e2e/ # 端到端服务器实现
│ │ │ └── ... # 其他服务器模板
│ │ ├── typescript/ # TypeScript客户端/服务器模板
│ │ │ ├── client/
│ │ │ └── server/
│ │ │ └── e2e/ # TypeScript服务器实现
│ │ └── rust/ # Rust客户端/服务器模板
│ │ ├── client/
│ │ └── server/
│ ├── driver/ # 测试编排和自动化
│ │ ├── update_sdk_info.py # SDK信息提取
│ │ ├── setup.py # 环境设置
│ │ └── docker_generator.py # Docker compose生成
│ └── requirements.txt # Python依赖项
└── docs/ # 文档和指南
matrix/templates/:按语言和测试类型组织的测试模板。每个模板都提供了特定测试场景下MCP客户端/服务器实现的工作示例。
matrix/driver/:核心自动化脚本,包括:
matrix/templates/*/e2e/:展示使用MCP协议进行完整客户端-服务器通信的端到端测试实现。
安装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
你应该看到:
可以按照类似的模式测试其他语言组合:
每种组合在 matrix/templates/ 目录中都有自己的模板。
我们欢迎来自MCP社区的贡献!以下是你可以帮助的方式:
git checkout -b feature/your-feature-name该项目采用MIT许可证 - 详情见LICENSE文件。
MCPBench - 确保MCP跨所有语言和实现的兼容性。