MCP服务器E2E测试示例
一个最小的示例存储库,演示了使用以下两种模式对TypeScript MCP(模型上下文协议)服务器进行端到端(E2E)测试的两种模式 速度:
- 原始方法:生成CLI
tsx并通过stdio(JSON‑RPC). - SDK方法:使用官方MCP SDK
Client和InMemoryTransportfor in‑memory RPC.
存储库:https://github.com/mkusaka/mcp-server-e2e-testing-example
______________________________________________________________________
📁 仓库的规划
.
├── LICENSE
├── README.md
├── package.json
├── pnpm-lock.yaml
├── src
│ ├── cli.ts # CLI entrypoint (tsx + stdio transport)
│ └── server.ts # createServer() factory (resources, prompts, tools)
├── tests
│ └── e2e
│ ├── raw.spec.ts # spawn‑based E2E tests
│ └── sdk.spec.ts # SDK/InMemoryTransport‑based E2E tests
└── tsconfig.json______________________________________________________________________
🚀 入门指南
先决条件
- Node.js≥16
- 全球安装
- Git
安装
# Clone the repo
git clone https://github.com/mkusaka/mcp-server-e2e-testing-example.git
cd mcp-server-e2e-testing-example
# Install dependencies
pnpm install______________________________________________________________________
🧪 运行 E2E 测试
1.原始(spang+stdio)测试
此套件启动CLI(src/cli.ts)via npx tsx and sends JSON‑RPC over stdin/stdout.
pnpm vitest run tests/e2e/raw.spec.ts2.SDK(内存)测试
该套件使用MCP SDK Client + InMemoryTransport 调用相同的服务器逻辑而不生成子进程。
pnpm vitest run tests/e2e/sdk.spec.ts______________________________________________________________________
🛠️ 脚本
将这些添加到 package.json 如果需要:
{
"scripts": {
"test:raw": "vitest run tests/e2e/raw.spec.ts",
"test:sdk": "vitest run tests/e2e/sdk.spec.ts",
"test": "vitest run"
}
}pnpm run test:raw–仅运行原始/stdio测试pnpm run test:sdk–只运行内存中的SDK测试pnpm run test–运行所有测试
______________________________________________________________________
📦 发布和使用
此存储库旨在作为示例/模板。请随意:
- 调整
src/server.ts您自己的MCP服务器的工厂 - 扩展
raw.spec.ts和sdk.spec.ts附加测试用例 - 集成到您的CI管道中
______________________________________________________________________
📄 许可证
根据 MIT许可证.
