
MCP Server E2E Testing Example

2025.04.22
0
TypeScript测试工具开发模板开发效率
MCP Server E2E Testing Example 是一个最小化的示例仓库,展示了两种使用 Vitest 对 TypeScript MCP(Model Context Protocol)服务器进行端到端(E2E)测试的模式。
- **原始方法**:通过 `tsx` 生成 CLI 并通过 `stdio`(JSON-RPC)进行通信。
- **SDK 方法**:使用官方 MCP SDK 的 `Client` 和 `InMemoryTransport` 进行内存中的 RPC 通信。
该仓库旨在作为示例或模板,供开发者参考和扩展。
View on GitHub
Overview
基本能力
产品定位
MCP Server E2E Testing Example 是一个用于演示 MCP 服务器端到端测试的示例项目,适合开发者在实际项目中参考和使用。
核心功能
- 原始测试模式:通过生成 CLI 并使用
stdio
进行 JSON-RPC 通信。 - SDK 测试模式:使用 MCP SDK 的
Client
和InMemoryTransport
进行内存中的 RPC 通信。 - 测试脚本:提供多种测试脚本,支持单独运行原始测试或 SDK 测试,以及运行所有测试。
适用场景
- 开发测试:开发者可以在实际项目中参考该示例进行端到端测试。
- CI 集成:可以集成到 CI 管道中,自动化运行测试。
- 模板扩展:开发者可以基于该模板扩展自己的测试用例和服务器逻辑。
工具列表
- Vitest:用于运行端到端测试的测试框架。
- tsx:用于运行 TypeScript 文件的工具。
- MCP SDK:提供
Client
和InMemoryTransport
工具,支持内存中的 RPC 通信。
常见问题解答
- 如何运行测试?
- 原始测试:
pnpm vitest run tests/e2e/raw.spec.ts
- SDK 测试:
pnpm vitest run tests/e2e/sdk.spec.ts
- 所有测试:
pnpm run test
- 如何扩展测试用例?
- 可以修改
raw.spec.ts
和sdk.spec.ts
文件,添加更多测试用例。
使用教程
使用依赖
- Node.js ≥ 16:确保已安装 Node.js 16 或更高版本。
- pnpm:全局安装 pnpm。
bash npm install -g pnpm
- Git:确保已安装 Git。
安装教程
- 克隆仓库:
bash git clone https://github.com/mkusaka/mcp-server-e2e-testing-example.git cd mcp-server-e2e-testing-example
- 安装依赖:
bash pnpm install
调试方式
- 运行原始测试:
bash pnpm vitest run tests/e2e/raw.spec.ts
- 运行 SDK 测试:
bash pnpm vitest run tests/e2e/sdk.spec.ts
- 运行所有测试:
bash pnpm run test