该仓库包含多个基于Model Context Protocol (MCP) 实现的测试服务器示例。每个示例都专注于展示MCP协议或相关SDK的特定功能,帮助开发者理解和测试MCP客户端及服务器的交互。
主要功能点
- 丰富的服务器类型: 提供了超过二十种不同的服务器实现,涵盖了工具调用、资源托管、不同参数类型(字符串、数字、布尔、数组、对象、枚举、带模式)、大型响应、错误处理、环境变量交互、文件操作、数学计算、认证等多种场景。
- 多种传输协议支持: 示例中包含了使用标准输入/输出 (Stdio)、HTTP Streamable、Server-Sent Events (SSE) 等不同传输协议的服务器实现,方便测试不同连接方式。
- 完整的MCP能力声明: 每个服务器都遵循MCP协议规范,向客户端声明其支持的工具、资源、认证策略等信息,客户端可以发现并利用这些能力。
- 错误及特殊场景模拟: 包含故意模拟的错误(如启动崩溃、工具调用失败、参数格式错误)以及特殊场景(如大量工具/资源、大响应),帮助测试客户端处理异常情况的健壮性。
安装步骤
- 确保您的系统已安装Node.js(建议使用最新LTS版本)和npm或yarn包管理器。
- 通过Git克隆该仓库到您的本地机器:
git clone https://github.com/msfeldstein/mcp-test-servers.git - 进入克隆下来的仓库目录:
cd mcp-test-servers - 安装项目依赖:
npm install # 或者如果您使用yarn: # yarn install - (可选)如果需要运行Python实现的服务器示例(例如 'optional_params_server.py'),请确保已安装Python环境,并安装Python MCP SDK:
pip install mcp-protocol-python
服务器配置(供MCP客户端参考)
MCP服务器通常作为独立的进程启动,并通过 StdIO、HTTP 或 WebSocket 等传输通道与MCP客户端通信。MCP客户端在连接服务器时,需要知道如何启动或连接到服务器。以下是基于该仓库 StdIO 服务器示例的客户端配置结构参考(请根据实际使用的服务器类型和功能进行调整):
{ "name": "(必填)服务器的唯一名称,例如 'ping-server' 或 'file-ops-server'", "command": "(必填,StdIO传输时)启动服务器的可执行命令,例如 'npx'", "args": [ "(必填,StdIO传输时)命令的参数列表", "@msfeldstein/mcp-test-servers", "要启动的特定服务器类型名称,例如 'ping', 'resource', 'combined', 'file-ops'" ], "transport": "(必填)使用的传输协议,例如 'stdio', 'http', 'sse'" // 如果 transport 是 'http' 或 'sse',可能需要额外的连接信息,例如 'url' // "url": "http://localhost:3000/mcp" // 某些服务器可能依赖环境变量,客户端配置也可能需要提供设置环境变量的方式 }
重要提示: 上述是一个供MCP客户端开发者参考的配置结构示例,并非直接在该仓库中运行的代码。您需要根据您正在开发的MCP客户端的配置方式来填写这些信息,以便客户端能够正确启动并连接到这个测试服务器。
基本使用方法
该仓库的设计是通过一个主脚本 ('cli.js') 来启动不同的测试服务器。启动后,大多数StdIO服务器会在命令行等待MCP客户端的JSON-RPC请求。
启动一个特定的服务器示例,例如启动 'ping-server':
npx @msfeldstein/mcp-test-servers ping
启动一个需要特定环境变量的服务器,例如 'env-check':
SHOULD_RUN=true npx @msfeldstein/mcp-test-servers env-check
启动一个允许自定义名称的服务器,例如 'named':
MCP_SERVER_NAME="MyCoolServer" npx @msfeldstein/mcp-test-servers named
启动后,该命令行窗口将运行选定的MCP服务器。您可以使用兼容的MCP客户端连接到这个运行中的服务器,并测试其提供的工具和资源。
信息
分类
开发者工具