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 等请求。
    • 调用流程示例(简要描述,不涉及具体实现细节):客户端请求列出可用工具 → 服务器返回工具定义 → 选择工具调用并传入参数 → 服务器执行并返回结果或错误信息 → 如需上下文或提示,客户端可请求相应的提示信息或执行结果。

服务器信息