项目简介
'MCP服务器测试管理工具' (mcp-client-server) 是一个独特的项目,它既是 MCP 服务器 又是 MCP 客户端。其核心功能并非提供传统应用后端的上下文服务,而是作为一个 管理和测试平台,帮助开发者便捷地部署、管理和测试 其他 基于 Model Context Protocol (MCP) 构建的服务器。
简单来说,你可以使用这个工具 启动一个“管理服务器”,然后通过这个“管理服务器” 部署和控制你自己的 MCP 服务器,并进行测试。这对于 MCP 服务器的开发和调试过程非常有用。
主要功能点
- MCP 服务器功能 (管理端):
- 工具注册: 自身作为一个 MCP 服务器,注册了一系列用于管理和测试其他 MCP 服务器的工具,例如:部署服务器、调用工具、获取日志、列出服务器、停止服务器、运行测试等。
- JSON-RPC 通信: 使用 JSON-RPC 协议通过 Stdio 与 MCP 客户端(如命令行客户端 'test-runner.ts' 或其他 MCP 客户端)进行通信。
- MCP 客户端功能 (控制端):
- 操作管理服务器: 作为 MCP 客户端,可以调用自身服务器提供的管理工具,例如部署新的 MCP 服务器实例、获取服务器日志、停止服务器等。
- 操作被管理的服务器: 可以连接到被部署和管理的 MCP 服务器,并调用这些服务器提供的工具进行测试。
- 服务器部署与管理:
- 本地进程部署: 在本地将 MCP 服务器作为子进程启动和管理(非Docker容器,但使用了Docker术语)。
- 服务器生命周期管理: 提供启动、停止、列出服务器等管理功能。
- 日志查看: 方便查看被管理服务器的运行日志。
- MCP 服务器测试:
- 工具调用测试: 可以调用被管理服务器提供的工具进行功能测试。
- 自动化测试: 支持运行预定义的测试套件(目前实现较为基础)。
- 命令行界面 (CLI): 提供 'test-runner.ts' 命令行工具,方便用户与管理服务器进行交互。
安装步骤
- 克隆仓库: 将 'mcp-client-server' 仓库克隆到本地。
git clone https://github.com/kaioobrabo/mcp-client-server.git cd mcp-client-server - 安装依赖: 使用 'npm' 或 'yarn' 安装项目依赖。
npm install # 或 yarn install - 构建项目: 编译 TypeScript 代码。
npm run build # 或 yarn build - 运行管理服务器: 启动 'src/index.ts' 作为 MCP 管理服务器。
或者直接运行编译后的 JavaScript 文件:npm start # 或 yarn start
启动后,管理服务器将监听标准输入 (stdio) 等待 MCP 客户端的请求。node dist/index.js
服务器配置
MCP 客户端 (例如 'test-runner.ts' 或自定义客户端) 需要配置与 MCP 服务器建立连接的信息。
对于 'mcp-client-server' 项目,其管理服务器 ('src/index.ts') 默认通过 Stdio 传输协议 与客户端通信。因此,MCP 客户端无需配置服务器地址或端口,只需 直接运行 'dist/index.js' 或 'npm start' 命令 即可启动管理服务器。
对于要 被管理和测试 的 MCP 服务器 (即你自己的 MCP 服务器实现),你需要提供以下信息给 'mcp-client-server' 管理工具,以便它可以部署和控制你的服务器:
以下配置信息是用于 'test-runner.ts' 命令行客户端 与 'mcp-client-server' 管理服务器 交互,部署和管理 你的 MCP 服务器 的示例配置。 MCP 客户端自身 不需要 配置这些信息。
当你使用 'test-runner.ts' 命令行工具选择 "1. Deploy server" 选项时,会被要求输入以下信息:
{ "server name": "my-test-server", // 你要部署的MCP服务器的名称,自定义 "source path": "/path/to/your/mcp-server-source-code", // 你自己的MCP服务器源代码的绝对路径,例如 '/Users/user/my-mcp-server' "environment variables (JSON, empty for none)": { // (可选) 你要传递给你的MCP服务器的环境变量,JSON格式,如果不需要则留空 "PORT": "8080", "DATABASE_URL": "...", // ... 其他环境变量 } }
配置说明:
- 'server name': 为你部署的 MCP 服务器指定一个唯一的名称,用于后续的管理操作,例如查看日志、停止服务器、调用工具等。
- 'source path': 非常重要! 指向你自己的 MCP 服务器源代码的 绝对路径。 'mcp-client-server' 管理工具会从这个路径启动你的 MCP 服务器进程。请确保该路径下包含 'package.json' 文件,并且你的服务器可以通过 'npm start' 或 'node dist/index.js' 等命令启动。
- 'environment variables': (可选) 以 JSON 格式提供的环境变量。这些变量将被传递到你部署的 MCP 服务器进程中。如果你的服务器需要特定的环境变量才能运行(例如端口号、数据库连接信息等),请在此处配置。如果不需要环境变量,可以输入空 JSON '{}' 或直接回车表示无环境变量。
重要提示:
- 'mcp-client-server' 不是一个传统的 MCP 应用后端服务器,它是一个 MCP 服务器管理和测试工具。
- 你需要提供 你自己的 MCP 服务器源代码路径 给 'mcp-client-server' 管理工具,才能部署和测试你的服务器。
- 配置信息是在使用 'test-runner.ts' 命令行客户端时输入的,用于指示 'mcp-client-server' 管理工具如何部署和管理你的 MCP 服务器。 MCP 客户端自身不需要这些配置信息。
基本使用方法
-
启动管理服务器: 按照安装步骤启动 'dist/index.js' 或使用 'npm start'。
-
运行命令行客户端: 打开新的终端窗口,进入项目根目录,运行 'src/test-runner.ts' 命令行客户端。
npm run test-runner # 或 yarn test-runner # 或 node dist/test-runner.js -
使用命令行菜单: 'test-runner.ts' 提供了交互式命令行菜单,你可以根据菜单提示选择不同的操作,例如:
- 1. Deploy server: 部署一个新的 MCP 服务器实例 (你需要提供服务器名称、源代码路径和环境变量)。
- 2. List servers: 列出当前正在运行的 MCP 服务器实例。
- 3. Get server logs: 获取指定 MCP 服务器的运行日志。
- 4. Stop server: 停止指定 MCP 服务器实例。
- 5. Call tool: 调用指定 MCP 服务器提供的工具 (你需要提供服务器名称、工具名称和参数)。
- 6. Run tests: 运行针对指定 MCP 服务器的测试 (目前测试功能较为基础)。
- 7. Exit: 退出命令行客户端。
-
根据提示操作: 根据命令行菜单的提示,输入相应的选项和参数,即可管理和测试你的 MCP 服务器。
示例使用场景:
- 开发 MCP 服务器: 在你开发自己的 MCP 服务器时,可以使用 'mcp-client-server' 快速部署和测试你的服务器,查看日志,调用工具,验证功能是否正常。
- 测试 MCP 服务器集成: 如果你需要测试多个 MCP 服务器之间的集成,可以使用 'mcp-client-server' 管理多个服务器实例,并进行集成测试。
- 自动化测试 MCP 服务器: 虽然目前的测试功能较为基础,但可以作为自动化测试的起点,逐步完善测试套件,提高 MCP 服务器的质量。
信息
分类
开发者工具