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 服务器,发送资源、工具、提示等相关请求,服务器按协议返回结果或推送通知。