项目简介
本项目 'sse-mcp-server' 是一个 Model Context Protocol (MCP) 服务器的示例实现,它使用 Server-Sent Events (SSE) 技术与客户端进行实时通信。该服务器设计用于部署在 Netlify Edge Functions 环境中,展示了如何构建一个符合 MCP 协议规范的后端服务,为 LLM 应用提供上下文支持。
主要功能点
- MCP 服务器核心功能: 实现了 MCP 协议中定义的核心功能,包括资源管理、工具注册和执行、Prompt 模板定义和渲染。
- Server-Sent Events (SSE): 使用 SSE 技术实现服务器与客户端之间的实时、双向通信,高效推送数据更新和事件通知。
- Netlify Edge Functions 部署: 特别针对 Netlify Edge Functions 平台设计,方便快捷地部署到边缘网络,提供低延迟、高可用的服务。
- 示例资源、工具和 Prompt: 内置了示例资源、工具和 Prompt 模板,方便用户快速理解和测试 MCP 服务器的功能。
- 开发和部署脚本: 提供了完整的开发环境搭建和 Netlify 部署脚本,简化了开发和部署流程。
安装步骤
-
克隆仓库
git clone https://github.com/champierre/sse-mcp-server.git cd sse-mcp-server -
安装依赖
npm install -
启动开发服务器
npm run dev开发服务器将在 'http://localhost:3001' 启动。
-
部署到 Netlify (可选)
- 确保已安装 Netlify CLI: 'npm install -g netlify-cli'
- 登录 Netlify: 'netlify login'
- 初始化 Netlify 站点 (首次部署): 'netlify init'
- 部署到 Netlify: 'npm run deploy'
- 部署成功后,会输出站点 URL,例如 'https://your-site-name.netlify.app'。
服务器配置
对于 MCP 客户端,你需要配置连接到此 MCP 服务器的信息。以下是一个 JSON 格式的配置示例,你可以将其添加到 MCP 客户端的服务器配置中。
{ "serverName": "sse-mcp-server", "command": "node", "args": [ "sse.js" ], "transport": "sse", "transportOptions": { "url": "http://localhost:3001/sse" <!-- 如果部署到 Netlify,则需要将 url 修改为 Netlify 部署后的站点 URL,例如 "https://your-site-name.netlify.app/sse" --> } }
配置参数说明:
- 'serverName': 服务器名称,可以自定义,用于在客户端标识该服务器。
- 'command': 启动服务器的命令,这里使用 'node' 运行 'sse.js' 文件。
- 'args': 启动命令的参数,这里指定运行 'sse.js' 文件。
- 'transport': 传输协议,这里使用 'sse' (Server-Sent Events)。
- 'transportOptions': 传输协议的配置选项。
- 'url': SSE 连接的 URL。在开发环境中使用 'http://localhost:3001/sse',部署到 Netlify 后需要更改为 Netlify 站点的 '/sse' 路径。
注意: 'command' 和 'args' 配置适用于直接运行 'sse.js' 的情况。如果你使用 'npm run dev' 启动开发服务器,实际执行的命令可能有所不同,但对于 MCP 客户端配置而言,指定 'node sse.js' 或者直接使用部署后的 Netlify URL 即可。 关键是客户端需要能够通过 SSE 协议连接到 '/sse' 端点。
基本使用方法
-
启动服务器: 按照上述安装步骤启动开发服务器或部署到 Netlify。
-
配置 MCP 客户端: 在你的 MCP 客户端中,添加上述提供的服务器配置信息。确保 'transportOptions.url' 指向正确的服务器地址。
-
连接服务器: 在 MCP 客户端中连接到配置的服务器。客户端应该能够通过 SSE 协议与服务器建立连接。
-
测试功能: 使用 MCP 客户端的功能,例如:
- 请求资源列表 ('ListResources')
- 读取资源内容 ('ReadResource')
- 获取 Prompt 列表 ('ListPrompts')
- 获取 Prompt 内容 ('GetPrompt')
- 调用工具 ('CallTool')
- 订阅资源更新 ('Subscribe')
你可以参考仓库中的 'index.html' 文件,这是一个简单的客户端示例,用于测试 SSE 连接和消息发送。
通过以上步骤,你就可以使用 'sse-mcp-server' 作为 MCP 服务器,为你的 LLM 应用提供上下文服务。
信息
分类
开发者工具