rucio mcp v0.3.0
 
](https://pypi.org/project/rucio-mcp/)  
](https://github.com/kratsg/rucio-mcp/discussions)

一个MCP服务器,它公开 鲁西奥 分布式数据 将管理操作作为LLM的工具。专为ATLAS物理学家设计 分析工具上有网格数据,但可用于任何Rucio实例。
它做什么
rucio-mcp 允许Claude(或任何兼容MCP的LLM)查询和管理您的Rucio 数据直接:
- 查找数据:按模式搜索数据集/容器,列出文件,浏览
DID层次结构
- 检查副本:查看数据的物理存储位置,哪些网站有
数据集,生成访问URL
- 管理规则:列出、创建、更新、移动、批准和删除复制
规则
- 监视器:检查RSE存储使用情况、帐户配额、代理证书
有效性
所有工具描述都包括ATLAS数据集命名约定,因此LLM 无需额外提示即可理解作用域格式、AMI标签和DID结构。
安装
pip install rucio-mcp或者使用pixi(建议用于ATLAS设施):
pixi add rucio-mcp需求
- Python 3.10+
- 已配置的Rucio环境(
rucio.cfg以及有效的身份验证) - 对于x509代理身份验证:有效的VOMS代理(
voms-proxy-init -voms atlas)
快速启动
1.设置身份验证
x509代理(在ATLAS站点最常见):
voms-proxy-init -voms atlas
export RUCIO_ACCOUNT=
export RUCIO_AUTH_TYPE=x509_proxy
export RUCIO_HOME=/path/to/rucio-clients # directory containing etc/rucio.cfg通过pixi安装时(推荐):
ca-policy-lcg 作为依赖项包含并设置 X509_CERT_DIR 自动添加到conda环境中捆绑的证书。无手册 需要配置。
如果您遇到关于过期CRL的错误
Error: Certificate verification failed.
sslutils.c:1911:error:40000405:lib(128)::outdated CRL found, revoking all certs till you get new CRL
sslutils.c:2106:error:40000411:lib(128)::certificate validation error: CRL has expired那么您需要运行以下命令来刷新CRL:
pixi run sh -c '$X509_CERT_DIR/refresh_crls.sh'或
bash
pixi exec --with rucio-mcp sh -c '$X509_CERT_DIR/refresh_crls.sh'在没有pixi的基于CVMFS的设施上(例如芝加哥大学分析设施):
voms-proxy-init -voms atlas
export RUCIO_ACCOUNT=
export RUCIO_AUTH_TYPE=x509_proxy
export X509_CERT_DIR=/cvmfs/atlas.cern.ch/repo/ATLASLocalRootBase/etc/grid-security-emi/certificates
export RUCIO_HOME=/cvmfs/atlas.cern.ch/repo/ATLASLocalRootBase/x86_64/rucio-clients/35.6.02.测试服务器
rucio-mcp serve服务器通过stdio与MCP通信。配置您的MCP客户端以启动它。
3.配置克劳德代码
添加到您的 .mcp.json (项目)或 ~/.claude.json (全球)。
名称 atlas 让你告诉Claude“使用atlas rucio服务器”——在以下情况下很有用 您已配置多个Rucio实例。
与pixi (X509_CERT_DIR 自动设置 ca-policy-lcg):
{
"mcpServers": {
"atlas": {
"type": "stdio",
"command": "pixi",
"args": [
"run",
"--manifest-path",
"/path/to/rucio-mcp",
"rucio-mcp",
"serve"
],
"env": {
"RUCIO_AUTH_TYPE": "x509_proxy",
"RUCIO_ACCOUNT": "youraccount",
"RUCIO_HOME": "/cvmfs/atlas.cern.ch/repo/ATLASLocalRootBase/x86_64/rucio-clients/35.6.0"
}
}
}
}没有pixi (如果您有CVMFS+ATLAS,请使用下面的路径;否则请指向 X509_CERT_DIR 在您当地的CA捆绑包中):
{
"mcpServers": {
"atlas": {
"type": "stdio",
"command": "rucio-mcp",
"args": ["serve"],
"env": {
"RUCIO_AUTH_TYPE": "x509_proxy",
"RUCIO_ACCOUNT": "youraccount",
"X509_CERT_DIR": "/cvmfs/atlas.cern.ch/repo/ATLASLocalRootBase/etc/grid-security-emi/certificates",
"RUCIO_HOME": "/cvmfs/atlas.cern.ch/repo/ATLASLocalRootBase/x86_64/rucio-clients/35.6.0"
}
}
}
}4.配置克劳德桌面
增添 ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) 或 %APPDATA%\Claude\claude_desktop_config.json (Windows)。
与pixi:
{
"mcpServers": {
"atlas": {
"type": "stdio",
"command": "pixi",
"args": [
"run",
"--manifest-path",
"/path/to/rucio-mcp",
"rucio-mcp",
"serve"
],
"env": {
"RUCIO_AUTH_TYPE": "x509_proxy",
"RUCIO_ACCOUNT": "youraccount",
"RUCIO_HOME": "/path/to/rucio-clients"
}
}
}
}没有pixi (如果您有CVMFS+ATLAS,请使用下面的路径;否则请指向 X509_CERT_DIR 在您当地的CA捆绑包中):
{
"mcpServers": {
"atlas": {
"type": "stdio",
"command": "rucio-mcp",
"args": ["serve"],
"env": {
"RUCIO_AUTH_TYPE": "x509_proxy",
"RUCIO_ACCOUNT": "youraccount",
"X509_CERT_DIR": "/cvmfs/atlas.cern.ch/repo/ATLASLocalRootBase/etc/grid-security-emi/certificates",
"RUCIO_HOME": "/path/to/rucio-clients"
}
}
}
}只读模式
使用启动服务器 --read-only 以阻止所有写入操作。工具 创建、修改或删除复制规则将返回错误,而不是 执行。
rucio-mcp serve --read-only或者在MCP配置中:
{
"mcpServers": {
"atlas": {
"command": "rucio-mcp",
"args": ["serve", "--read-only"],
"env": { "...": "..." }
}
}
}当您希望LLM帮助探索数据而无法 意外创建规则或修改现有规则。
可用工具
连接性
| 工具 | 说明 |
|---|---|
rucio_ping | 检查服务器连接和版本 |
rucio_whoami | 显示经过身份验证的帐户信息 |
rucio_voms_proxy_info | 显示VOMS代理证书状态和到期时间 |
DID发现
| 工具 | 说明 |
|---|---|
rucio_list_dids | 按通配符模式搜索数据集/容器 |
rucio_stat | 获取DID的类型、大小和时间戳 |
rucio_list_content | 列出容器或数据集的即时内容 |
rucio_list_files | 列出DID中的所有文件 |
rucio_get_metadata | 检索DID的元数据键值对 |
rucio_list_parent_dids | 查找包含给定DID的容器 |
复制品
| 工具 | 说明 |
|---|---|
rucio_list_file_replicas | 文件的物理副本位置(PFN) |
rucio_list_dataset_replicas | RSE数据集可用性摘要 |
复制规则
| 工具 | 写? | 描述 |
|---|---|---|
rucio_list_rules | -- | 列出DID的所有规则 |
rucio_list_replication_rules | -- | 全局列出规则,按范围/帐户筛选 |
rucio_rule_info | -- | 特定规则的详细信息 |
rucio_list_rule_history | -- | DID规则的完整状态历史记录 |
rucio_add_rule | ✓ | 创建新的复制规则 |
rucio_delete_rule | ✓ | 删除规则(可选择清除副本) |
rucio_update_rule | ✓ | 更新生命周期、锁定标志、评论、活动 |
rucio_reduce_rule | ✓ | 减少规则中的副本数量 |
rucio_move_rule | ✓ | 将规则移动到其他RSE表达式 |
rucio_approve_rule | ✓ | 批准等待批准的规则 |
rucio_deny_rule | ✓ | 拒绝等待批准的规则 |
RSE和存储
| 工具 | 说明 |
|---|---|
rucio_list_rses | 列出与表达式匹配的RSE |
rucio_list_rse_attributes | RSE的键值属性 |
rucio_list_rse_usage | RSE的总存储空间、已用存储空间和可用存储空间 |
账户
| 工具 | 说明 |
|---|---|
rucio_list_scopes | 列出所有可用范围 |
rucio_list_account_usage | 每个RSE为帐户使用的存储 |
rucio_list_account_limits | 帐户的存储配额限制 |
示例提示
配置后,您可以向Claude询问以下问题:
- _“查找mc20_13TeV DSID 700320的所有DAOD_PHYS容器”_
- _“哪些站点有可用的数据集X,每个副本的完整程度如何?”_
- _“创建一个规则,将此数据集复制到美国Tier-1磁盘站点30
天”_
- _“我的代理仍然有效吗?我还有多长时间?”_
- _“显示此容器的复制规则及其当前状态”_
- _“我在CERN-PROD_DATADISK的存储配额是多少?”_
