MCP服务器端到端测试示例

一个展示如何使用Vitest对TypeScript MCP服务器进行端到端测试的示例仓库,包含原始方法和SDK方法两种测试模式。

  • by mkusaka
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 mkusaka/mcp-server-e2e-testing-example

使用说明

MCP服务器E2E测试示例

一个最小的示例存储库,演示了使用以下两种模式对TypeScript MCP(模型上下文协议)服务器进行端到端(E2E)测试的两种模式 速度:

  • 原始方法:生成CLI tsx 并通过 stdio (JSON‑RPC).
  • SDK方法:使用官方MCP SDK Client 和 InMemoryTransport for 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
  • pnpm 全球安装
  • 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.ts

2.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许可证.