使用说明
CERN ROOT MCP Server
An MCP server and CLI tool that allow LLMs to interact with CERN ROOT files.
存储库镜像:此存储库镜像到 CERN GitLab CERN用户。PyPI版本通过GitHub Actions使用基于证明的可信发布发布。
ROOT-MCP 使大型语言模型(LLM)能够以本机方式理解和分析CERN ROOT文件。
通过以下方式公开一组专用工具 模型上下文协议(MCP) 或令牌有效 CLI接口,它将克劳德(和其他符合MCP的代理人)转变为有能力的物理研究助理,可以:
- 检查 ROOT文件结构(树、RNtuple、分支、直方图)
- 分析 数据分布(计算直方图、统计)
- 计算 运动量(不变质量)
- 可视化 结果(直接绘制1D/2D直方图)
- 过滤器 使用物理切割(“选择”)的数据
为什么这很重要:与其要求LLM“编写一个必须调试和运行的脚本”,您可以要求LLM “检查此文件中的μon-pT分发” 它将会 只管去做.
两个接口:MCP服务器和CLI
ROOT-MCP提供 两种方式 与ROOT文件交互:
1.MCP服务器(用于克劳德桌面和MCP客户端)
- 完全支持JSON-RPC协议
- 用于编程的结构化输入/输出
- 最适合:符合MCP的LLM客户端、自动化工作流程
2.根CLI(root-cli)
- 默认情况下为人类可读输出
- 更简单的架构(无服务器进程)
- 最适合:直接LLM交互、调试、脚本编写
这两个接口共享相同的后端,并支持所有17个分析工具。
快速开始
1.安装
pip install root-mcp
可选:通过XRootD协议进行远程文件访问:
pip install "root-mcp[xrootd]"
2.配置
最快路径——无需配置文件:
# MCP Server
root-mcp --data-path /path/to/your/data
# CLI (token-efficient)
root-cli -d /path/to/your/data ls
或者设置一次环境变量:
export ROOT_MCP_DATA_PATH=/path/to/your/data
ROOT CLI(建议用于LLM交互)
CLI提供了 令牌高效,与MCP JSON协议相比,人类可读的界面提供了显著的令牌节省。
基本用法
# List files
root-cli ls
# Inspect a file
root-cli inspect /data/sample.root
# Create histogram with fit
root-cli histogram /data/sample.root events muon_pt --bins 100 --fit gaussian
# Read data with selection
root-cli read /data/sample.root events met muon_pt --selection "met > 50"
# Plot results
root-cli plot1d /tmp/root_mcp/muon_pt_hist.json -o plot.png --title "Muon pT"
LLM工作流示例
问你的法学硕士: “绘制μon-pT分布图”
LLM生成:
root-cli histogram /data/sample.root events muon_pt --bins 50 && \
root-cli plot1d /tmp/root_mcp/muon_pt_hist.json -o muon_pt.png --title "Muon pT Distribution"
文档
看 docs/skills/root-cli.md 完整的命令参考示例。
MCP服务器
零配置单行程序:
# Core mode (lightweight, no scipy/matplotlib needed)
root-mcp --data-path /data --mode core
# Explicit stdio transport (same runtime as the compatibility default)
root-mcp serve-stdio --data-path /data
# Extended mode with native ROOT, restricted to one directory
root-mcp --data-path /data --enable-root --allowed-root /data
# Remote XRootD resource, no YAML needed
root-mcp --resource cms=root://xrootd.cern.ch//store --allow-remote --mode extended
# Docker / container — fully env-var driven
ROOT_MCP_DATA_PATH=/data ROOT_MCP_MODE=extended ROOT_MCP_EXPORT_PATH=/exports root-mcp
# Quiet server (only warnings+) with a cache increase
root-mcp --data-path /data --log-level WARNING --cache-size 100
root-mcp serve-http 为中心的MCP Streamable HTTP端点提供服务
部署。它需要显式身份验证、源验证、限制性中心
在启动之前,请检查策略和安全绑定地址设置。
对于共享部署,请从操作员文档开始:
docs/operator/central_deployment.md
和 docs/operator/security_checklist.md.
限制性的启动器配置和Kubernetes清单
examples/central/.
操作员可以通过以下方式预览和应用导出保留
root-mcp cleanup-exports --config /etc/root-mcp/config.yaml --dry-run.
外部HTTP冒烟脚本位于
scripts/smoke_external_http_client.py
启动临时中央服务器,并使用MCP Streamable HTTP进行检查
客户。
生成启动器配置(可选):
root-mcp init --permissive # creates config.yaml pre-filled with current directory
手动配置文件 --对于持久设置、远程资源或本机ROOT:
server:
mode: "extended" # "core" or "extended"
resources:
- name: "my_analysis"
uri: "file:///path/to/data"
allowed_patterns: ["*.root"]
security:
allowed_roots: [] # empty = any local path is accessible (permissive)
本地使用警告:宽容
allowed_roots: []默认值是有意的 用于受信任的本地stdio会话。不要将该配置公开为共享 HTTP服务;限制根并要求经过身份验证的部署配置文件 在中央或多用户使用之前。
模式选择:
mode: "core"--轻量级:文件操作和基本统计mode: "extended"--全面分析:直方图、拟合、运动学、相关性
使用以下命令在运行时切换模式 switch_mode 工具--无需重新启动。
使用Claude Desktop运行
添加到您的 claude_desktop_config.json:
{
"mcpServers": {
"root-mcp": {
"command": "root-mcp",
"args": ["--data-path", "/path/to/your/data"]
}
}
}
或者使用持久配置文件:
{
"mcpServers": {
"root-mcp": {
"command": "root-mcp",
"env": {
"ROOT_MCP_CONFIG": "/path/to/config.yaml"
}
}
}
}
建筑
ROOT-MCP将分析功能组织为 分析层:
- 核心模式:文件I/O、数据读取和基本统计
- 扩展模式:全面的分析能力,包括拟合、运动学和相关性
该模式通过配置进行控制,服务器仅自动加载所需的组件。运行时模式切换也可用。
可选的本地ROOT支持
ROOT-MCP可以选择与本机集成 ROOT/PyROOT 安装以解锁超出范围的功能 uproot 提供:
run_root_code:执行任意PyROOT/Python代码并获得结构化结果run_rdataframe:使用ROOT的RDataFrame计算直方图(不需要样板)run_root_macro:通过执行C++ROOT宏gROOT.ProcessLine
此功能是 完全可选 --ROOT-MCP在没有安装ROOT的情况下完全工作。当ROOT可用并启用时,这些附加工具会自动出现。
需求:一个可用的ROOT安装(通过 康达锻造厂、系统包或二进制tarball)。此时无法安装ROOT。
启用它 通过设置 enable_root: true 在你的 config.yaml:
features:
enable_root: true
# Optional: tune execution settings
root_native:
execution_timeout: 60
working_directory: "/tmp/root_mcp_native"
使用 get_server_info 在运行时检查ROOT可用性:
{
"root_native_available": true,
"root_native_enabled": true,
"root_version": "6.32/02",
"root_features": {"rdataframe": true, "roofit": true, "tmva": false}
}
文档
完整的文档网站是用Sphinx构建的,涵盖了安装、, 配置、所有20个MCP工具、LLM集成模式和开发人员 带有自动生成API参考的指南。
在线阅读:文档托管在 根mcp文档
pip install "root-mcp[docs]"
./scripts/build_docs.sh
# open docs/_build/html/index.html
在编写文档时进行实时重新加载:
cd docs && make livehtml
亮点:
- 用户指南 --安装、快速启动、模式、配置、LLM集成
- 工具参考 --所有工具及其JSON有效载荷的完整目录
- CLI参考 --带示例的完整根cli命令参考
- 开发者指南 --架构、模块概述、开发设置、贡献
- API 参考 --从源文档字符串自动生成
引用
如果您在研究中使用ROOT-MCP,请引用:
@software{root_mcp,
title = {ROOT-MCP: Production-Grade MCP Server for CERN ROOT Files},
author = {Mohamed Elashri},
year = {2025},
url = {https://github.com/MohamedElashri/root-mcp}
}
许可证
MIT许可证-请参阅 许可证 了解详情。
