用于EIC/ePIC的Rucio MCP服务器
MCP服务器提供 鲁西奥 电子离子对撞机(EIC)ePIC实验的数据管理工具。基于 Belle II rucio mcp服务器 Cedric Serfon和Wouter Verkerke。
工具
| 工具 | 说明 |
|---|---|
list_scopes | 列出可用的Rucio作用域(发现服务器上的内容) |
list_dids | 在范围内搜索数据集/容器(名称模式+元数据过滤器) |
list_files | 列出数据集或容器中的文件 |
get_did_metadata | 获取DID详细信息(类型、大小、文件数、自定义字段) |
get_account_limits | 获取帐户的存储配额限制 |
get_account_usage | 获取特定RSE帐户的存储使用情况 |
list_rses | 列出所有Rucio存储元件 |
get_rse_usage | 获取RSE的存储使用统计信息 |
list_rules | 列出带有可选筛选器或特定DID的复制规则 |
get_rule_locks | 获取复制规则的副本锁详细信息 |
list_file_replicas | 查找文件副本在RSE中的位置 |
extract_scope | 将EIC DID字符串解析为作用域和名称 |
ePIC活动范围
JLab ePIC生产活动数据集通常在 epic 使用类似DID名称的路径作用域,例如:
epic:/RECO/26.04.1/epic_craterlake/SINGLE/mu-/10GeV/etaScan对于活动查询,请在 epic 范围:
list_dids(scope="epic", name="*26.04.1*", type="DATASET")对于托管数据放置,查询DID的复制规则:
list_rules(did="epic:/RECO/26.04.1/epic_craterlake/SINGLE/gamma/100MeV/etaScan")直接XRootD路径 /volatile/eic/EPIC/... 对应相同 Rucio在剥离后的DID名称 /volatile/eic/EPIC例如 /volatile/eic/EPIC/RECO/26.04.1 地图到 epic:/RECO/26.04.1.
需求
- Python 3.10+
- Rucio实例的网络访问(BNL或JLab)
认证
支持两种方法,通过以下方式选择 RUCIO_AUTH_TYPE:
X509(默认值,适用于BNL Rucio)
export RUCIO_AUTH_TYPE=x509 # default
export X509_USER_PROXY=/tmp/x509 # path to proxy cert
export RUCIO_ACCOUNT=rucioddm
export RUCIO_URL=https://nprucio01.sdcc.bnl.gov:443
# Account 'panda' has X509 identities for IDDS/PanDA service certs用户名/密码(适用于JLab Rucio)
export RUCIO_AUTH_TYPE=userpass
export RUCIO_USERNAME=myuser
export RUCIO_PASSWORD=mypass
export RUCIO_ACCOUNT=myaccount
export RUCIO_URL=https://rucio.jlab.org:443环境变量
| 变量 | 默认值 | 描述 |
|---|---|---|
RUCIO_URL | https://nprucio01.sdcc.bnl.gov:443 | rucio服务器URL |
RUCIO_AUTH_TYPE | x509 | 认证方法: x509 或 userpass |
RUCIO_ACCOUNT | rucioddm | Rucio帐户名 |
X509_USER_PROXY | /tmp/x509 | X509代理证书的路径(X509身份验证) |
RUCIO_USERNAME | Rucio用户名(用户通行证身份验证) | |
RUCIO_PASSWORD | Rucio密码(用户通行证身份验证) | |
TOKEN_FILE_PATH | /tmp/rucio_eic_token.txt | 缓存的身份验证令牌路径 |
RUCIO_CA_BUNDLE | 系统默认 | TLS的CA捆绑包; false 禁用 |
用法
stdio(用于pandabot/Claude代码)
python rucio_eic_mcp_server.py
# or with argparse:
python rucio_eic_mcp_server.py --transport stdioSSE(端口8000上的独立HTTP服务器)
python rucio_eic_mcp_server.py --transport sse安装包
pip install .
rucio-eic-mcp # stdio
rucio-eic-mcp --transport sse # SSE系统管理员设置
对于BNL(nprucio01.sdcc.bnl.gov):
- X509服务证书或自动续订代理
- 具有EIC作用域读取权限的Rucio帐户(
group.EIC,group.daq,user.*) - 网络访问
nprucio01.sdcc.bnl.gov:443
JLab(rucio.jlab.org):
- Rucio用户名/密码凭据
- 网络访问
rucio.jlab.org:443
