mcpField
M
MCP Server E2E Testing Example

MCP Server E2E Testing Example

本地服务
github.com/mkusaka开发工具018 周前更新

关于 MCP Server E2E Testing Example

面向开发者的 TypeScript 示例仓库,演示如何用 Vitest 对 MCP 服务进行端到端测试,涵盖子进程 stdio 测试和 MCP SDK 内存测试。

主要功能

  1. 01原始 stdio JSON-RPC 测试
  2. 02MCP SDK 内存测试
  3. 03基于 Vitest 的测试套件
  4. 04可复用的服务工厂示例

适用场景

  1. 01通过 CLI 和 stdio 测试服务
  2. 02不启动子进程测试服务逻辑

MCP 相关

演示两种测试 TypeScript MCP 服务的方式:通过 stdio 发送 JSON-RPC,以及使用 MCP SDK 的 Client 和 InMemoryTransport 进行内存 RPC。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

MCP 服务 E2E 测试示例

这是一个最小示例仓库,展示了如何使用 Vitest 对 TypeScript MCP(Model Context Protocol)服务进行端到端(E2E)测试的两种模式:

  • 原始方式:使用 tsx 启动 CLI,并通过 stdio(JSON-RPC)通信。
  • SDK 方式:使用官方 MCP SDK 的 Client 和 InMemoryTransport 进行内存 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. 原始方式(spawn + stdio)测试

此测试套件通过 npx tsx 启动 CLI(src/cli.ts),并通过 stdin/stdout 发送 JSON-RPC。

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 – 运行所有测试

📦 发布与使用

此仓库旨在作为示例/模板。你可以:

  • 根据自己的 MCP 服务调整 src/server.ts 工厂函数
  • 在 raw.spec.ts 和 sdk.spec.ts 中添加更多测试用例
  • 集成到 CI 流水线中

📄 许可证

基于 MIT License 发布。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。