使用说明(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 模块语法)。
  • 步骤
    1. 克隆或下载仓库到本地。
    2. 进入 devbcn-2025-mcp-server 目录,安装依赖(如 npm install)。
    3. 启动服务器,运行 index.js(示例为 node devbcn-2025-mcp-server/src/index.js)。
    4. 查看控制台日志,服务器会同时启动 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与计算