Splitrail MCP Server

使用说明(Markdown 格式)

  • 项目简介

    • Splitrail MCP 服务器是一个后端服务,提供标准化的 MCP JSON-RPC 接口,向 LLM 客户端暴露关于使用统计、模型使用、成本分解、文件操作等信息的读取能力,并注册、聚合多种分析器的数据。
    • 服务器侧通过统一的分析器注册与缓存机制,将各分析器(Claude Code、Codex CLI、Gemini CLI、OpenCode、Piebald 等等)的统计数据汇总,提供可查询的统计快照。
  • 主要功能点

    • 资源与工具暴露
      • 提供资源列表,例如日总结(splitrail://summary) 与模型分布(splitrail://models) 等,便于客户端获取全局上下文信息。
    • MCP API 接口(核心能力)
      • get_daily_stats:按日期、分析器筛选的每日统计信息,包含用户与 AI 交互、会话数、token/成本等,以及按日期聚合的文件操作数据。
      • get_model_usage:按模型使用情况分布统计,返回各模型的消息数量等。
      • get_cost_breakdown:按日期区间的成本分解,返回日成本总览及日均成本等。
      • get_file_operations:按日期筛选的文件操作统计(读取、编辑、新增、命令等)。
      • compare_tools:在给定日期区间内比较各工具的成本与活动。
      • list_analyzers:列出所有可用的分析器名称。
    • 服务器实现要点
      • 支持通过一个统一的分析器注册中心加载统计数据,支持并行处理以提升吞吐量。
      • 通过缓存与增量更新机制对数据进行高效维护,确保 MCP 客户端可获取最新数据。
      • 采用 rmcp 库实现 MCP 服务端,提供标准的 JSON-RPC 风格响应。
    • 运行方式与部署
      • 运行命令(示例): splitrail mcp
      • 服务端实现已在源码中提供,包含路由、资源读取、聚合计算与服务器启动逻辑。
  • 安装与运行

    • 使用 Rust/Cargo 构建运行环境,无需额外依赖。
    • 构建并启动:
      • cargo build --release
      • cargo run -- mcp
    • 运行后,客户端通过 MCP 协议向服务器发送请求,获取所需的统计与资源信息。
  • MCP 客户端配置(示例,供参考) JSON 配置用于 MCP 客户端连接服务器的最小信息(不包含客户端实现,仅用于描述如何配置服务器端在客户端的连接信息): { "server_name": "Splitrail MCP Server", "command": "splitrail", "args": ["mcp"] } 注:

    • 上述配置用于描述 MCP 服务器的启动方式,即以 Splitrail 的可执行文件 splitrail 启动并带上子命令 mcp 启动 MCP 服务。
    • MCP 客户端本身通常不需要在服务器端代码中进行修改配置;此处仅作为客户端连接示意,帮助理解如何与服务器入口对接。
  • 基本使用方法

    • 客户端通过 JSON-RPC 向服务器发起请求,例如获取每日统计、模型分布、成本分解等。
    • 通过 get_daily_stats、get_model_usage、get_cost_breakdown、get_file_operations、compare_tools、list_analyzers 等接口实现对 Splitrail 统计数据的查询与比较。
    • 服务器端将返回 JSON-RPC 响应,包含请求的结果数据或错误信息。
  • 注意事项

    • MCP 服务器核心在于将分散的分析器数据统一暴露给 LLM 客户端,确保统计的一致性与可用性。
    • 运行环境要求网络可达性以及对分析器数据的读取权限,服务器在启动时将加载并聚合可用分析器的数据。

服务器信息