Multi-CLI MCP 服务器
使用说明
- 项目简介
- 该仓库实现了一个 MCP 服务器端,使用 Model Context Protocol (MCP) 标准与 JSON-RPC 机制,向 LLM 客户端提供对工具、提示和潜在资源的统一访问与管理。服务器会在启动时检测系统中可用的 AI CLIs(Gemini、Codex、Claude),并据此注册相应的工具与提示定义,确保跨模型协作和安全的上下文服务。
- 主要功能点
- 提供 MCP 服务器端核心接口:列出工具、执行工具、列出提示、获取提示等操作,遵循 MCP 的 ListTools、CallTool、ListPrompts、GetPrompt 等请求模式。
- 动态注册与过滤工具:根据检测到的可用 CLIs,服务器会注册对外暴露的工具集合,并对请求客户端进行工具过滤,避免自我调用等情形。
- 工具执行与进度通知:支持在工具执行过程中的进度通知,客户端可通过进度消息获取状态更新。
- Prompts 定义渲染:渲染并提供对话式提示模板,支持通过工具注册信息生成 MCP Prompt 定义。
- 会话管理与能力声明:通过 MCP Server 实现会话信息获取、能力声明与基于客户端版本的兼容性处理。
- 传输适配:当前默认 STDIO 传输,理论上可扩展为 SSE/WebSocket 等传输协议。
- 安装步骤
- 安装依赖
- 在包含本仓库的目录中执行依赖安装(推荐使用 Node.js 20 及以上版本)。
- 构建与启动
- 运行构建命令将 TypeScript 编译为可执行代码。
- 启动 MCP 服务器以供 MCP 客户端连接(默认通过 STDIO 提供服务)。
- 运行方式示例(开发环境)
- 克隆仓库后,安装依赖、构建、再启动服务器即可工作。也可以直接使用 npm 脚本完成同样的流程。
- 安装依赖
- 服务器配置(MCP 客户端需要的启动信息)
说明:MCP 客户端需要提供一个 JSON 配置,告知服务器的启动命令与参数,以便通过 MCP 建立连接。以下信息基于仓库中的实现与默认元信息整理:
- serverName: Multi-CLI
- command: npx
- args: ["-y", "@osanoai/multicli@latest"] 注释说明:
- serverName 指定 MCP 服务的名称,便于客户端在日志和界面中识别。
- command 与 args 指定如何启动 MCP 服务器进程;若使用其他运行方式,请按实际环境替换。
- MCP 客户端通过该命令启动服务器并通过标准输入输出(stdio)进行 JSON-RPC 通信。
- 基本使用方法
- 客户端连接:使用 MCP 客户端连接服务器(标准 stdio 传输),启动后客户端即可发起 ListTools、CallTool、ListPrompts、GetPrompt 等请求。
- 调用流程示例(简要描述,不涉及具体实现细节):客户端请求列出可用工具 → 服务器返回工具定义 → 选择工具调用并传入参数 → 服务器执行并返回结果或错误信息 → 如需上下文或提示,客户端可请求相应的提示信息或执行结果。