Chakravarti 模型上下文后端服务 (MCP)

使用说明(Markdown 格式)

  • 项目简介

    • Chakravarti MCP 是一个基于 MCP(Model Context Protocol)的后端服务器实现,核心职责是对外提供可访问的 Resources、Tools、Prompts,并通过 JSON-RPC 与 LLM 客户端交互。服务器端负责会话管理、能力声明,以及在标准输入/输出(stdio)等传输通道上的消息收发,便于将资源与外部工具暴露给不同的 AI 助手。
  • 主要功能点

    • JSON-RPC 处理能力:实现 MCP 的核心方法集合,如 initialize、initialized、tools/list、tools/call、ping 等的请求/响应逻辑。
    • Tool 注册与执行:通过工具发现机制(从 CLI 元数据生成 MCP Tool 列表),并实现 tools/list、tools/call 的执行流程,将 CLI 命令包装成 MCP Tool,供 LLM 客户端远程调用。
    • 资源与提示模板:提供对 Prompts 的渲染与模板管理能力,支持将提示模板渲染成实际的输入数据,供 LLM 客户端获取并使用。
    • 多传输协议支持(设计思路):当前实现以 stdio 传输为核心,也具备扩展到 SSE/WebSocket 等传输方式的设计基础,方便未来扩展。
    • 会话与能力声明:服务器维护会话信息、能力(如可用工具列表、提示模板等)的声明,确保客户端能够知道当前服务器提供的能力边界。
    • 安全与扩展性:模块化的工具发现、命令执行与错误处理设计,便于在需要时接入沙箱执行、权限校验、以及对外部工具的沙箱化调用。
  • 安装步骤

    • 使用 Rust 工具链构建该 MCP 服务器组件(仓库中包含 ckrv-mcp 相关 crate)。
    • 一般做法:
      • 进入项目根目录,执行 cargo build --workspace
      • 进入 crates/ckrv-mcp 目录,执行 cargo build --release
    • 运行二进制后,可以通过标准输入输出通道与 MCP 客户端进行通信(stdio 传输为默认实现)。
  • 服务器配置(给 MCP 客户端的连接信息,JSON 格式) 注意:MCP 客户端通常需要了解服务器的启动命令及参数,但实际连接是在运行时通过指定的传输通道建立。以下为示例配置描述(仅作参考,实际使用时客户端不需要此处的代码,仅用于理解配置语义): { "server_name": "chakravarti-mcp", "command": "ckrv-mcp", "args": [] } 注释:

    • server_name:服务器的标识名称,便于客户端在多服务器环境中识别。
    • command:启动 MCP 服务器的可执行命令(本实现对应的二进制为 ckrv-mcp)。
    • args:启动参数数组,当前实现以 stdio 传输为核心,通常可以为空,若后续扩展传输协议可在此扩展参数。
  • 基本使用方法(对开发者友好)

    • 启动服务器后,客户端通过 JSON-RPC 与之通信,服务器按 MCP 规范处理请求并返回 JSON-RPC 响应。
    • 客户端可以请求 toolbox(tools/list)以获取可用工具,然后通过 tools/call 向 MCP 服务器执行具体工具。
    • 通过 initialize/initialized 等方法完成会话初始化,获取服务器的 protocolVersion 与 capabilities(如工具集合)。
    • 使用 prompts 相关能力查询/渲染可用的 Prompt 模板,并在 LLM 场景中结合资源进行对话式上下文管理。

服务器信息