使用说明

  • 项目简介

    • 该仓库实现了一个 MCP 服务器,按照 MCP 协议规范处理请求与响应,通过 SSE 进行通信,提供以下核心能力:托管资源与资源模板、注册并执行工具、以及提供可渲染的 Prompt/Widget 内容。服务器对外提供 SSE 流端点、消息请求端点和健康检查,便于与 ChatGPT 的 MCP 客户端对接。
  • 主要功能点

    • MCP 服务器核心:实现基于 MCP 协议的请求处理、工具调用、资源查询与读取等能力,提供标准化的 JSON-RPC 风格响应。
    • 资源与模板管理:暴露资源和资源模板信息,支持读取 Widget HTML 内容作为输出模板。
    • 工具注册与执行:定义并注册工具(如 get_items、create_item 等),对输入进行校验,并返回文本内容、结构化内容和元数据,支持后续在模型中渲染与使用。
    • Widget 构建与嵌入:包含 Widget 代码、打包脚本和嵌入 HTML,支持将打包后的 Widget 注入到 MCP 的资源中,以实现 UI 渲染。
    • 安全与稳定性考虑:实现了跨域资源共享(CORS)支持、SSE 会话管理、工具输入校验、以及基础的错误处理与日志输出。
  • 安装步骤

    • 安装依赖:在项目根目录执行依赖安装(如 npm install / yarn install)。
    • 构建 Widget:执行打包脚本将前端 Widget 打包为 dist/widget/bundle.js 与 bundle.css。
    • 构建并启动服务器:按照项目的构建与启动流程,将 TypeScript 代码编译为可执行的 JS(dist/server/index.js),然后启动 Node.js 进程运行 MCP 服务器。
    • 运行前置条件:确保环境变量或配置文件中设置了 APP 名称、版本、以及后端 API 的基础地址等信息(如 APP_NAME、APP_VERSION、API_BASE_URL 等)。
  • 服务器配置(MCP 客户端所需,MCP 客户端不需要额外信息,但用于连接示例)

    • 服务器名称(server_name):ChatGPT-App-{{APP_NAME}},用于唯一标识你的 MCP 服务器实例。
    • 启动命令(command):node
    • 启动参数(args):["dist/server/index.js"]
    • 其他可选参数(环境变量示例,客户端可参考):{ "APP_NAME": "{{APP_NAME}}", "APP_VERSION": "1.0.0", "API_BASE_URL": "https://api.{{APP_DOMAIN}}" }
    • 客户端需要的连接端点(供参考,具体由客户端实现时确定):
      • SSE 流:GET http://<host>:<port>/mcp
      • 消息处理:POST http://<host>:<port>/mcp/messages?sessionId=...
      • 健康检查:GET http://<host>:<port>/health
  • 基本使用方法

    • 启动后,MCP 客户端通过 SSE 连接到 /mcp,建立会话并交互读取资源、调用工具、获取提示模板等。
    • 调用工具时,客户端会提供工具名与参数,服务器返回文本内容、结构化内容以及元数据,供 LLM 解析和应用。
    • 客户端可通过读取 Widget 资源来渲染前端界面,Widget 已打包并可以嵌入到对话上下文中以提升交互体验。

信息

分类

AI与计算