使用说明(Markdown 格式)
一、项目简介
- 该仓库包含一个基于 MCP 协议的服务器实现示例,旨在展示如何用 Node.js 搭建一个可注册资源和提示的 MCP 服务器,并通过 HTTP 与 STDIO 两种传输方式与客户端通信。
- 服务器核心功能包括:注册资源、注册提示模板、提供数据内容、以及通过 MCP 客户端调用工具或获取提示进行交互。
- 实际在 devbcn-2025-mcp-server/src/index.js 中实现了 MCP 服务器的创建、资源和提示注册,以及对 HTTP 和 STDIO 传输的支持。
二、主要功能点
- MCP 服务器核心能力:解析并响应 MCP 请求,管理会话和能力声明,提供资源与提示的标准化访问入口。
- 资源与提示注册:支持注册多个资源(如 speakers、sessions、schedule)和对应的提示模板,便于客户端查询和使用。
- 多传输支持:同时提供 HTTP(自定义 /mcp 路径的接口)和 STDIO 传输,满足不同客户端的接入场景。
- 动态数据获取:示例中通过外部接口(如 Sessionize API)获取文本内容,演示如何在资源请求中返回动态数据。
三、安装与运行步骤
- 先决条件:Node.js 环境(推荐至少 Node.js 16+,仓库示例使用 ES 模块语法)。
- 步骤
- 克隆或下载仓库到本地。
- 进入 devbcn-2025-mcp-server 目录,安装依赖(如 npm install)。
- 启动服务器,运行 index.js(示例为 node devbcn-2025-mcp-server/src/index.js)。
- 查看控制台日志,服务器会同时启动 HTTP 服务器(绑定到一个随机端口,日志会给出端口信息)以及 STDIO 处理路径。
- 注意:HTTP 端口在运行时随机分配(端口由 Express 监听时确定),如需固定端口,请在代码中修改 HTTP_PORT 常量。
四、服务器配置(给 MCP 客户端使用的连接信息) 说明:MCP 客户端需要提供一个配置,用于启动服务器进程并通过命令行参数连接。以下为示例描述信息,请按实际环境替换为你的配置。该信息为 JSON 描述,包含服务器名称、启动命令及参数等,客户端本身无需包含服务器端实现代码。
{ "server_name": "devbcn-2025-mcp-server", "command": ["node", "devbcn-2025-mcp-server/src/index.js"], "args": [] }
说明
- server_name:服务器唯一标识符,与服务器端实现中的名称一致。
- command:启动服务器的命令数组,前两项通常为可执行程序及其入口脚本路径。
- args:运行时传递的参数(当前示例中未强制要求参数,若将来需要可在此添加,如端口设定等)。MCP 客户端通过该配置信息能够启动并连接到服务器。
五、基本使用方法
- 启动服务器后,客户端可以通过 MCP 协议标准接口向服务器请求资源、执行工具或获取提示模板。
- 客户端连接方式包括:
- HTTP 传输:通过 HTTP POST 请求到 /mcp 路径,与服务器进行 JSON-RPC 风格的交互。
- STDIO 传输:通过标准输入/输出与服务器进行交互(适用于将 MCP 服务器作为外部进程运行时的场景)。
- 调试与扩展:服务器示例演示了如何将外部数据源接入资源内容(如调用外部 API 获取文本),开发者可以据此扩展更多资源和提示。
六、注意事项
- 该示例是教学性服务器实现,用于展示 MCP 的注册、传输和响应流程,实际部署时需结合安全策略、认证、容量规划等考虑。
- 如果要把它用于生产环境,请根据实际需求对跨域、鉴权、日志、错误处理等方面进行加强。
七、运行示例要点
- 服务器同时提供 HTTP 与 STDIO 两种传输方式,HTTP 端口在运行时确定,STDIO 通过进程交互实现。
- 资源示例包含 speaker、sessions、schedule 等条目,提示示例展示了如何基于请求生成自然语言输出。
信息
分类
AI与计算