ChatML MCP 服务端实现

使用说明(Markdown 格式)

  • 项目简介

    • 该项目在 ChatML 框架中实现了一个 MCP 服务器,负责以标准化的 JSON-RPC 方式向 LLM 客户端提供资源数据、可执行工具,以及可渲染的提示模板等上下文信息。服务器以 Go 后端为资源源,通过 MCP 工具箱对外暴露能力,支持在 STDIO、Server-Sent Events (SSE) 与 HTTP 等传输模式下工作,并能够管理会话、能力声明及多工作区环境。
  • 主要功能点

    • 内置 MCP 服务器:采用 Claude Agent SDK 构建,提供名称为 chatml 的 MCP 服务,版本 1.0.0。
    • 资源、工具、Prompts 的托管与执行:通过 MCP 工具注册和实现,LLM 可以读取资源、调用外部工具、获取或渲染提示模板。
    • 会话与工作区上下文管理:结合本地工作区上下文、后端 REST API、以及可选的 .mcp.json/.mcp-servers.json 配置实现多会话、多工作区管理。
    • 多传输协议支持:内置对 stdio、SSE、HTTP 的支持,便于在不同部署环境中暴露 MCP 服务。
    • 配置可扩展性:支持通过 mcp-servers-file 与 dotfile 配置灵活注入外部 MCP 服务,及程序化的代理/代理工具定义。
    • 安全性与可观测性:通过后端鉴权、日志与错误处理,以及对工具调用、事件流的详细记录,便于监控与调试。
  • 安装步骤

      1. 安装依赖
      • 在仓库根目录执行依赖安装命令,确保所有 MCP 相关依赖正确安装。
      1. 构建/启动 MCP 服务器
      • 使用项目提供的构建流程将 TypeScript 源码编译为可执行的服务器组件,或使用现成的运行环境直接启动 MCP 服务。
      1. 配置 MCP 服务器
      • 该仓库允许以下方式配置 MCP 服务器:
        • 内置 chatml MCP 服务器:直接在后端加载并运行,无需额外外部进程。
        • 外部 MCP 服务器:通过一个 JSON 配置文件(.mcp.json 或后端提供的 mcp-servers.json)来注入外部服务器。
      1. 启动后端服务
      • 确保后端 Go 服务(ChatML 后端)已启动并可访问,MCP 服务器将通过后端暴露的 API 与前端/LLM 通信。
  • 服务器配置(给 MCP 客户端的配置示例,务必以 JSON 形式提供给客户端)

    • 名称(server name): chatml
    • 启动方式(type): stdio
    • 启动命令(command): node
    • 启动参数(args): 包含 MCP 服务器入口的可执行脚本路径及必要参数,例如:
      • ["path/to/chatml-mcp-entry.js", "--backend-url=http://127.0.0.1:9876"]
    • 环境变量(env): 如需要,请在 env 中注入后端地址、鉴权令牌等
    • 启用标志(enabled): true 注:以上示例用于描述性说明,实际路径和参数需结合实际部署环境配置。此 MCP 服务器在仓库内以 TypeScript/Node 形式实现,内置 chatml 服务器并可通过后端配置注入外部 MCP 服务器。
  • 基本使用方法

    1. 启动后端服务:确保 ChatML 后端启动并可访问。
    2. 配置 MCP 服务器并启动:将上述 MCP 服务器配置提供给后端,后端将按配置启动相应的 MCP 服务。
    3. 客户端接入:LLM 客户端通过 JSON-RPC 调用 MCP 的资源读取、工具调用、Prompts 获取等能力,完成任务上下文的读取与执行。
    4. 监控与日志:关注 MCP 服务的日志输出、工具调用记录、以及可能的鉴权错误,确保服务正常工作。

服务器信息