返回市场
MCP客户端服务器

MCP客户端服务器

作者:willccbb123 星标更新:2025-03-10

项目介绍

MCP 测试客户端

一个作为服务器(面向Claude)和客户端(面向待测试服务器)的MCP中间件,用于在开发过程中测试MCP服务器。

架构

MCP测试客户端具有双重角色:

  • 它是一个注册到Claude的服务器,提供测试工具
  • 它是一个连接并测试其他MCP服务器的客户端
┌─────────────┐          ┌───────────────────┐          ┌────────────────┐
│             │  工具    │                   │  客户端  │                │
│   Claude    │─────────>│  MCP测试客户端    │─────────>│  待测试服务器  │
│             │          │                   │          │                │
└─────────────┘          └───────────────────┘          └────────────────┘

这种架构允许你在不直接将它们注册到Claude的情况下测试MCP服务器。

功能

  • 将MCP服务器部署到测试环境
  • 使用自定义参数调用单个工具
  • 运行自动化测试套件
  • 查看服务器日志
  • 在正式注册到Claude之前测试服务器

实现

MCP测试客户端实现包括:

  • 进程管理:启动和管理MCP服务器进程
  • MCP SDK客户端:使用官方MCP SDK与服务器通信
  • 自定义传输:实现用于标准输入输出通信的自定义传输
  • 测试执行:运行测试并验证响应
  • CLI接口:提供交互式测试界面

当前实现是设计计划的第一阶段,第二阶段和第三阶段的改进正在计划中。

安装

# 安装依赖
npm install

# 构建TypeScript项目
npm run build

使用

作为MCP服务器

MCP测试客户端通过claude-mcp-local脚本注册到Claude。你可以使用以下工具:

  1. 部署一个服务器:
mcp__mcp-test__mcp_test_deploy_server({
  name: "my-server",
  source_path: "/path/to/server",
  env_vars: {
    "API_KEY": "${API_KEY}"
  }
})
  1. 调用已部署服务器上的工具:
mcp__mmcp-test__mcp_test_call_tool({
  server_name: "my-server",
  tool_name: "tool_name",
  arguments: {
    // 工具特定参数
  }
})
  1. 对服务器进行测试:
mcp__mcp-test__mcp_test_run_tests({
  server_name: "my-server"
})
  1. 查看服务器日志:
mcp__mcp-test__mcp_test_get_logs({
  server_name: "my-server",
  lines: 100
})
  1. 列出已部署的服务器:
mcp__mcp-test__mcp_test_list_servers({})
  1. 停止一个服务器:
mcp__mcp-test__mcp_test_stop_server({
  server_name: "my-server"
})

作为CLI工具

运行CLI界面进行测试:

# 使用npm脚本
npm run test

# 或直接运行
node dist/test-runner.js

这提供了部署、测试和管理MCP服务器的交互式菜单。

开发工作流

MCP测试客户端支持以下工作流:

  1. 在playground目录中开发一个MCP服务器
  2. 使用MCP测试客户端将其部署到测试环境
  3. 测试功能,调用单个工具,并调试问题
  4. 修复并迭代直到服务器正常工作
  5. 准备就绪时将服务器迁移到mcp-servers/
  6. 通过claude-mcp-local注册到Claude

未来改进

计划中的改进包括:

  • 第二阶段:基于Docker的容器管理,全面的测试套件
  • 第三阶段:迁移工具,更高级的测试验证

参见notes/mcp_test_client_design.md以获取完整的设计文档。