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 客户端,确保统计的一致性与可用性。
- 运行环境要求网络可达性以及对分析器数据的读取权限,服务器在启动时将加载并聚合可用分析器的数据。