llm-cli MCP 服务端

  • 项目概述
    • llm-cli 的 MCP 服务器模块实现了模型上下文协议(MCP)的服务器端能力,能够暴露工具、资源和 Prompt 等能力给 LLM 客户端。
    • 实现核心功能包括:接收和处理 MCP 的 JSON-RPC 请求(如初始化、列出工具、执行工具)、返回规范化的 JSON-RPC 响应,以及在服务器端进行会话管理与能力声明。
  • 主要功能点
    • MCP 核心协议支持:实现 initialize、tools/list、tools/call 等方法的请求/响应处理,支持 trace_id 传递以实现分布式追踪。
    • 工具注册与执行:支持本地工具注册并通过 MCP 服务器暴露,外部 MCP 客户端可调用这些工具并获取结果。
    • 安全与审计
      • 基于 RS256 的身份传递与工作负载标识绑定,自动生成与管理密钥对。
      • RBAC/ABAC 的策略引擎,按角色与作用域控制工具调用权限与参数范围。
      • 审计日志(JSONL,带链式哈希)以确保操作可追溯、不可篡改。
      • 入口 integrity 校验与远程协作的 SSH 传输优化,确保私钥不在网络上传输。
    • 实时追踪与 tracing:通过 trace_id 与 JSON-RPC 元数据实现分布式追踪。
    • 多传输协议支持:通过 MCP 服务器实现可切换的传输方式,并为远程服务器(如通过 SSH、Docker、StdIO)提供适配层。
    • 资源与上下文管理:支持对会话上下文的管理、模板化提示、以及附件/多模态数据在上下文中的注入。
  • 安装与运行
    • 安装前提:需要 Python 3.11+。
    • 安装步骤与运行方式请参考仓库中的 MCP 服务器入口与文档,运行时可通过启动 MCP 服务实现与客户端的对接。
  • 服务器配置示例(JSON 配置格式)
    • 服务器配置应包含以下字段:name(服务器名称)、command(启动服务器所用命令)、args(命令参数数组)、env(环境变量,若有)、roles(适用的角色集合,便于策略评估)。示例配置如下(以便你理解结构,实际配置请以你的环境为准): { "name": "github", "command": "docker", "args": [ "run", "-i", "--rm", "-e", "GITHUB_PERSONAL_ACCESS_TOKEN=YOUR_GITHUB_TOKEN", "-e", "GITHUB_LOCKDOWN_MODE=1", "ghcr.io/github/github-mcp-server" ], "env": { "GITHUB_TOKEN": "YOUR_GITHUB_TOKEN" }, "roles": ["admin", "user"] }
  • 基本使用方法
    • 启动 MCP 服务器端:在 llm-cli 的命令行中启用 MCP 服务模式,服务器即开始对外提供 MCP 能力。
    • 客户端连接方式:MCP 客户端通过启动时的配置(如 SSH/Docker/StdIO 等)连接服务器,服务器将提供工具列表、工具调用能力等。
    • 安全与治理:服务器端会对工具执行进行权限校验、审计与信任链验证,必要时可通过策略引擎阻断异常调用。
    • 运维与扩展:可以通过新增工具、扩展资源或调整策略来增强 MCP 服务器的能力,以支持更复杂的 LLM 交互场景。

服务器信息