关于 mcp-jest
mcp-jest 是用于自动测试 MCP 服务的命令行工具和 JavaScript 库,面向服务开发者及负责集成和 CI 的团队。它支持多种传输方式,并提供协议验证、自动发现和快照测试。
主要功能
- 01测试工具、资源与提示词
- 02支持 stdio、HTTP 和 SSE
- 03验证 MCP 协议并评分
- 04自动发现服务能力
- 05快照测试与 HTML 报告
适用场景
- 01部署前测试 MCP 服务能力
- 02将 MCP 测试加入 CI/CD 流水线
- 03比较服务输出在版本间的变化
MCP 相关
该工具连接并测试 MCP 服务,可验证其工具、资源、提示词及协议兼容性;支持 stdio、HTTP Streaming 和 SSE。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
mcp-jest
用于 Model Context Protocol(MCP)服务的自动化测试。 使用类似 Jest 的语法测试 AI Agent 工具、验证协议合规性,并集成到 CI/CD 中。
- 🧪 测试工具、资源和提示词 — 自动验证 MCP 服务的功能
- 📦 零配置 — 开箱即用,适用于任何 MCP 服务(stdio、HTTP、SSE)
- ✅ 协议验证 — 检查 MCP 合规性并提供详细评分
- 🚀 适用于 CI/CD — 集成 GitHub Actions、Jenkins、CircleCI
- 📸 快照测试 — 捕获并比较随时间变化的输出
安装
npm install mcp-jest # Project dependency
npm install -g mcp-jest # Or globally for CLI
使用方法
在 30 秒内测试你的 MCP 服务:
mcp-jest node ./server.js --tools search,email
也可以使用 JavaScript API:
import { mcpTest } from 'mcp-jest';
const results = await mcpTest(
{ command: 'node', args: ['./server.js'] },
{ tools: ['search', 'email'] }
);
console.log(`${results.passed}/${results.total} tests passed`);
什么是 MCP?
Model Context Protocol(MCP) 是 Anthropic 推出的开放标准,可让 AI 助手(Claude、ChatGPT、Gemini)连接到外部工具、数据库和 API。MCP-Jest 可测试这些连接。
为什么选择 MCP-Jest?
你构建了一个 MCP 服务,但如何确认它能正常工作?
- 手动测试既耗时又容易出错
- 静默故障会破坏 AI 工作流
- MCP 没有原生的 CI/CD 集成
- 难以调试生产环境中的故障
MCP-Jest 通过自动化、可重复的测试解决这些问题。
功能
核心测试
- 自动化测试 - 编写一次测试,即可在任何地方运行
- 全面覆盖 - 测试连接、工具、资源和提示词
- 灵活的预期条件 - 使用简单字符串或自定义验证函数
- 适用于 CI/CD - 支持 GitHub Actions、Jenkins、CircleCI 等
高级功能
- 快照测试 - 捕获并比较随时间变化的 MCP 输出
- 测试筛选 - 使用
--filter和--skip运行指定测试 - 监视模式 - 文件变更时自动重新运行测试
- HTML 报告 - 生成美观、易于分享的测试报告
传输方式支持
- stdio - 本地服务的默认传输方式
- HTTP Streaming - 测试远程 HTTP 服务
- SSE - 支持服务器发送事件
开发者工具
- 自动发现 - 自动发现所有功能并为其生成测试
- 协议验证器 - 检查 MCP 合规性并提供详细评分
- GitHub Action - 原生 CI/CD 集成
CLI 快速参考
| 命令 | 描述 |
|---|---|
mcp-jest node ./server.js --tools search | 测试指定工具 |
mcp-jest --config test.json | 使用配置文件 |
mcp-jest discover node ./server.js | 自动发现功能 |
mcp-jest validate node ./server.js | 检查协议合规性 |
mcp-jest watch node ./server.js --tools search | 监视模式 |
常用选项
| 选项 | 描述 |
|---|---|
-t, --tools <tools> | 要测试的工具,以逗号分隔 |
-c, --config <file> | 配置文件路径 |
--timeout <ms> | 测试超时时间(默认:30000) |
-u, --update-snapshots | 更新快照文件 |
--reporter html | 生成 HTML 报告 |
所有选项请参阅 CLI 参考。
示例:CI/CD 集成
# .github/workflows/test.yml
- name: Test MCP Server
run: |
npm install -g mcp-jest
mcp-jest node ./dist/server.js --tools "search,analyze"
示例:配置文件
{
"server": {
"command": "node",
"args": ["./server.js"]
},
"tests": {
"tools": {
"search": {
"args": { "query": "test" },
"expect": "content.length > 0"
}
},
"timeout": 30000
}
}
文档
| 指南 | 描述 |
|---|---|
| 入门指南 | 分步设置指南 |
| CLI 参考 | 完整的 CLI 文档 |
| API 参考 | 库 API 文档 |
| 示例 | 真实场景示例 |
| 架构 | MCP-Jest 的工作原理 |
| 故障排除 | 常见问题及解决方案 |
功能指南
要求
- Node.js 18+
- 实现 Model Context Protocol 的 MCP 服务
参与贡献
欢迎参与贡献!请参阅 CONTRIBUTING.md 了解指南。
git clone https://github.com/josharsh/mcp-jest.git
cd mcp-jest
npm install
npm run dev
npm test
安全
请参阅 SECURITY.md 了解我们的安全政策和漏洞报告方式。
使用场景
MCP-Jest 非常适合:
- MCP 服务开发者 - 在部署前测试你的工具、资源和提示词
- AI 应用团队 - 确保 MCP 集成正常运行
- DevOps/SRE - 将 MCP 服务测试添加到 CI/CD 流水线
- 开源 MCP 项目 - 为社区贡献提供可靠的测试
与其他工具的比较
| 功能 | MCP-Jest | 手动测试 | 通用测试框架 |
|---|---|---|---|
| MCP 协议支持 | 原生支持 | 手动 | 需要自定义设置 |
| 自动发现 | 是 | 否 | 否 |
| 快照测试 | 是 | 否 | 不定 |
| 协议验证 | 是 | 否 | 否 |
| CI/CD 集成 | 内置 | 手动 | 不定 |
支持
- GitHub Issues - 错误报告和功能请求
- GitHub Discussions - 问题和想法
- Model Context Protocol - MCP 官方文档
相关技术
- Model Context Protocol (MCP) - 协议标准
- @modelcontextprotocol/sdk - MCP 官方 SDK
- Claude - 支持 MCP 的 Anthropic AI 助手
- Jest - JavaScript 测试框架(MCP-Jest 的灵感来源)
许可证
MIT 许可证 - 可自由用于商业和开源项目。
项目状态
关键词:mcp 测试、model context protocol 测试、mcp 服务测试、ai agent 测试、llm 测试、claude mcp、chatgpt mcp、mcp 工具测试、mcp 验证器、anthropic mcp、测试 mcp 服务、mcp ci cd、自动化 mcp 测试
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。