使用说明
项目简介
本项目 'mcp_sse_sample' 是一个基于 Model Context Protocol (MCP) 协议的服务器端示例,使用 Server-Sent Events (SSE) 作为传输协议。它旨在演示如何构建一个符合 MCP 规范的服务器,并提供了一系列预定义的工具和日志功能,方便开发者理解和测试 MCP 服务器的运作方式。虽然仓库名称包含 "sse",但同时也支持标准IO模式。
主要功能点
- 工具 (Tools) 执行: 提供了多个示例工具,如 'echo' (回显消息), 'add' (加法运算), 'longRunningOperation' (模拟耗时操作并发送进度通知), 'sampleLLM' (模拟调用LLM进行采样), 'getTinyImage' (返回示例图片), 'printEnv' (打印环境变量), 'annotatedMessage' (演示带注释的消息)。这些工具展示了 MCP 服务器如何注册和执行工具,并与客户端进行交互。
- 日志 (Logging) 通知: 服务器会定期发送随机级别的日志消息,演示 MCP 服务器的日志通知功能。
- 资源 (Resources): 代码中包含了资源相关的定义,但 capabilities 中 'resources' 被注释掉了,可能资源功能在示例中没有被完全启用,但代码结构表明服务器具备资源管理的能力。
- Prompt 模板 (Prompts): capabilities 中 'prompts' 被注释掉了,示例中没有明确的 Prompt 模板功能展示。
- SSE 和 STDIO 传输: 支持 SSE 和 STDIO 两种传输协议,可以通过不同的启动命令选择运行模式。
安装步骤
- 安装 Node.js 和 npm: 确保你的系统已安装 Node.js 和 npm 包管理器。
- 克隆仓库: 将 'mcp_sse_sample' 仓库克隆到本地。
git clone https://github.com/iuill/mcp_sse_sample.git cd mcp_sse_sample - 安装依赖: 在仓库根目录下运行 npm install 命令安装项目依赖。
npm install - 构建项目: 运行 npm run build 命令构建项目。
npm run build
服务器配置
MCP 客户端 (例如 Claude Desktop) 需要配置 MCP 服务器的启动命令才能连接。以下是针对 'mcp_sse_sample' 服务器在 Claude Desktop 'claude_desktop_config.json' 文件中 'mcpServers' 字段的配置示例:
{ "mcpServers": { "sse-sample": { // 服务器名称,客户端配置中引用 "command": "npx", // 启动命令,这里使用 npx 执行 npm 包 "args": [ // 命令参数 "-y", // 自动确认执行 npm 包 "mcp_sse_sample" // package.json 中定义的 'mcp_sse_sample' 执行入口,默认启动 SSE 模式 ] }, "stdio-sample": { // 可以配置另一个 STDIO 模式的服务器 "command": "npx", "args": [ "-y", "mcp_sse_sample", "--stdio" // 使用 --stdio 参数启动 STDIO 模式 (虽然仓库中没有直接体现,但通常可以通过参数控制模式) ] } } }
参数注释:
- 'server name': 为服务器配置的名称,在 Claude Desktop 客户端中用于标识和选择该服务器。例如 "sse-sample" 或 "stdio-sample"。
- 'command': 启动服务器的命令,通常是 Node.js 环境下的 'node' 或 'npx'。 'npx' 可以方便地执行项目本地安装的 npm 包。
- 'args': 传递给启动命令的参数列表。
- '"-y"': 'npx' 的参数,用于自动确认执行 npm 包,避免交互式提示。
- '"mcp_sse_sample"': 执行 'package.json' 中 'bin' 字段定义的 'mcp_sse_sample' 命令,对应 'src/sse.ts' 或 'src/index.ts' (如果配置了stdio)。
- '"--stdio"' (可选): 假设服务器支持通过参数 '--stdio' 切换到 STDIO 模式 (实际代码中 'src/index.ts' 被注释,需要查看具体实现是否支持)。如果仓库支持 STDIO 模式,可以添加此参数来配置 STDIO 服务器。
注意: 上述 'stdio-sample' 的配置仅为示例,实际是否支持 STDIO 模式以及如何配置,请参考仓库的详细文档或代码实现。如果 'src/index.ts' 的代码被启用,则可能需要修改 'package.json' 中的 'bin' 字段或启动脚本来正确运行 STDIO 模式。
基本使用方法
-
启动服务器: 根据需要选择 SSE 或 STDIO 模式启动服务器。
- SSE 模式: 运行 'npm run start:sse' 命令。服务器默认在 'http://localhost:3001/sse' 提供 SSE 连接。
- STDIO 模式: 如果仓库支持 STDIO (需要启用 'src/index.ts' 并配置相关启动脚本),可以运行 'npm run start' 命令 (或者根据 'package.json' 中 'scripts' 字段的定义)。
-
配置 MCP 客户端: 在 MCP 客户端 (如 Claude Desktop) 中,根据上述 "服务器配置" 部分的说明,配置连接到 'mcp_sse_sample' 服务器。确保客户端配置的服务器名称、命令和参数与你的实际运行环境和需求相符。
-
使用 MCP 客户端: 启动 MCP 客户端,客户端应该能够自动连接到配置的 MCP 服务器。之后,你就可以在客户端中体验 MCP 服务器提供的工具和功能。例如,在 Claude Desktop 中,你可以尝试调用 'echo' 工具来测试服务器的连通性,或者使用其他提供的工具来探索服务器的功能。
预期效果
成功启动并配置客户端连接后,客户端应能:
- 列出服务器提供的工具 (通过 MCP 协议的 'listTools' 请求)。
- 调用服务器提供的工具 (通过 MCP 协议的 'callTool' 请求),并接收工具执行结果。
- 接收服务器发送的日志消息 (通过 MCP 协议的 'notifications/message' 通知)。
请注意,这只是一个示例服务器,主要用于演示 MCP 协议的基本功能。在实际应用中,你需要根据具体需求扩展和定制 MCP 服务器的功能。
信息
分类
开发者工具