CTX MCP 服务端实现

使用说明

  • 项目简介
    • 该仓库实现了一个完整的 MCP(模型上下文协议)服务器端框架,负责对资源(Resources)、工具(Tools)和提示模板(Prompts)的托管、访问和执行,以及对提示模板的渲染和扩展。通过 JSON-RPC 与 LLM 客户端进行交互,支持会话管理、能力声明和多传输协议。
  • 主要功能点
    • 资源管理:托管并访问资源,提供一致的数据读取能力。
    • 工具注册与执行:注册工具,LLM 可以通过标准接口调用外部功能。
    • 提示模板处理:定义、渲染与扩展模板,支持模板扩展、变量替换和模板解析。
    • JSON-RPC 通信与会话管理:前后端通过 JSON-RPC 进行请求/响应和通知,具备会话和能力管理。
    • 多传输协议支持:支持 STDIO、HTTP、Streamable HTTP、WebSocket 等传输方式以适配不同场景。
    • 路由与控制器:基于属性路由和自定义路由注册器实现 MCP 请求的分发。
  • 安装与运行
    • 通过常见的 PHP 应用部署流程(如 Composer 依赖安装、环境变量配置)将该服务部署为可运行的 MCP 服务器。
    • 根据目标操作系统与环境选择合适的传输方式(例如 STDIO 适合本地 CLI/LLM 集成,HTTP/Streamable 适合远程服务接入)。
  • 服务器配置(MCP 客户端需要的最小信息) 服务器提供给 MCP 客户端的配置需包含以下要素:
    • server name(服务器名,用于标识该 MCP 服务)
    • command(启动服务器的命令,例如在 Linux/macOS 下为 ctx;Windows 下为 ctx.exe)
    • args(启动命令的参数,例如 server、-c 路径等,具体会随传输和操作系统而变化)
    • env(必要的环境变量,如令牌、文件操作开关等,可选)
    • 注释:JSON 配置通常还包括服务器的描述、操作系统类型、以及运行时元数据等信息,用于客户端在不同环境下正确启动与连接。 说明中的示例配置将尽量贴合仓库内实现的默认行为与生成逻辑(例如客户端默认使用的命令和参数组合),确保 MCP 客户端能够用该配置正确启动并连接到服务器。
  • 服务器使用方法
    • 部署后根据实际需求选择传输模式(如 STDIO/HTTP)。
    • 客户端通过提供的配置(JSON 格式)启动并连接到 MCP 服务器,发送资源、工具、提示等相关请求,服务器按协议返回结果或推送通知。

服务器信息