Catalog: MCP servers and AI infrastructure in the EIC ecosystem
Last updated on 2026-07-16 | Edit this page
Estimated time: 15 minutes
Overview
Questions
- Which MCP servers does EIC/ePIC provide, and which work today?
- How can you use the collaboration’s AI tools with zero setup?
Objectives
- Decide when to run the servers yourself and when the hosted bot is enough.
- Ask DISpatcher a tool-grounded question about data, software, or production.
- Reuse tiered tool exposure and fabrication checks in your own harness.
One protocol, many tools
MCP is a standard (Episode 3), so the collaboration exposes each piece of its infrastructure as a small server. The three you used in this lesson are one corner of a fast-growing stack, built mostly in BNL’s NPPS group (this episode is based on Torre Wenaus’s June 2026 talk to the ePIC user-learning WG).
%%{init: {'theme':'base', 'themeVariables': {'fontSize':'15px','lineColor':'#94a3b8','edgeLabelBackground':'#e2e8f0','clusterBkg':'#1f293720','clusterBorder':'#94a3b8','titleColor':'#94a3b8'}}}%%
flowchart TB
accTitle: {EIC MCP server catalog}
accDescr: {EIC MCP server catalog}
A(["your AI assistant"]):::core
A --> DATA
A --> REC
A --> CODE
A --> PROD
subgraph DATA["analysis & data"]
direction LR
UP["uproot-mcp"]:::tool
XR["xrootd-mcp"]:::tool
RU["rucio-mcp"]:::tool
end
subgraph REC["records & meetings"]
direction LR
ZE["zenodo-mcp"]:::rec
IN["indico-mcp"]:::rec
end
subgraph CODE["code knowledge"]
direction LR
LX["LXR-mcp · BNL-hosted"]:::code
GH["GitHub-mcp · standard"]:::code
end
subgraph PROD["production · via the bot"]
direction LR
PB["PanDA · PCS · streaming"]:::pkg
end
classDef core fill:#e7efff,stroke:#4c6ef5,stroke-width:1.5px,color:#10204a;
classDef tool fill:#e6f7ed,stroke:#2f9e44,stroke-width:1.5px,color:#0b3d1f;
classDef rec fill:#f3e8ff,stroke:#7048e8,stroke-width:1.5px,color:#2e1065;
classDef code fill:#fff4e0,stroke:#f08c00,stroke-width:1.5px,color:#5c3b00;
classDef pkg fill:#ffe3e3,stroke:#e03131,stroke-width:1.5px,color:#5c0a0a;
click UP "https://github.com/eic/uproot-mcp-server" _blank
click XR "https://github.com/eic/xrootd-mcp-server" _blank
click RU "https://github.com/eic/rucio-eic-mcp-server" _blank
click ZE "https://github.com/eic/zenodo-mcp-server" _blank
click IN "https://github.com/cohm/indico-mcp" _blank
click LX "https://eic-code-browser.sdcc.bnl.gov/lxr/source" _blank
click GH "https://github.com/github/github-mcp-server" _blank
click PB "https://chat.epic-eic.org/main/channels/dispatcher" _blank
The boxes above are links — click a server to open its repository or page.
Current status
uproot/xrootd/rucio/zenodo work today and you ran three of them
yourself; the LXR MCP server exists but is deployed inside the
BNL-hosted services rather than as a package you run locally; indico is
maintained by an individual, not the eic org; the
production tools are reachable through the bot. See the eic GitHub organization and the ePIC dev-cloud for the current
set.
Analysis and data
uproot-mcp — read ROOT/EDM4eic files · available · used in this lesson
eic/uproot-mcp-server
reads ROOT/EDM4eic files with uproot, returning compact
JSON: file structure, branch statistics, histograms, sandboxed
NumPy/awkward kernels. The analysis backend from Episodes 3 and 5.
xrootd-mcp — discover files on the data store · available · used in this lesson

eic/xrootd-mcp-server
(docs) browses
the ePIC XRootD stores (BNL disk by default; the older JLab store via
configuration): list directories, read metadata, search, monitor
production campaigns.
rucio-mcp — query the data-management system · available · used in this lesson

eic/rucio-eic-mcp-server
exposes Rucio through ~13 tools
(dataset discovery, file listing, replicas, rules). Deliberately
read-only — an assistant gets no write access to the
catalog.
Records and meetings
zenodo-mcp — search the open-data repository · available

eic/zenodo-mcp-server
queries Zenodo over its REST API:
search records, read public datasets and DOIs — ePIC document
access.
indico-mcp — search meetings and agendas · available (community)

cohm/indico-mcp
searches an Indico instance: find
events, browse agendas, extract contributions and attachments.
Maintained by an individual; works with any Indico server.
Code knowledge
LXR-mcp — source cross-reference for the assistant · available (BNL-hosted)
The EIC runs an LXR source cross-reference browser over 55+ ePIC and related repositories, re-indexed nightly against the head of every repository. Its MCP server lets an assistant find where any symbol is defined and used, search the whole code base, and read source — so software answers are grounded in current code, not the model’s training data (the same schema-hallucination cure you saw in Episode 3, applied to source). Paired with the standard GitHub MCP for PRs, commits, and issues.
Zero setup: the DISpatcher bot
In Episode 3 you configured your own client. The collaboration also
provides a hosted alternative: DISpatcher, a Mattermost
bot in an open channel — chat.epic-eic.org
→ dispatcher — that anyone in ePIC can use, in the
channel or by DM. All the complexity you just learned about lives in its
back end; you need nothing but your Mattermost account. It is wired to
roughly 100 MCP tools: production diagnostics (PanDA —
why did my jobs fail?), the physics samples in production (PCS), the
data tools you used in this lesson (rucio, xrootd, uproot), software
knowledge (LXR + GitHub), and documents (Zenodo, plus a documentation
RAG).
Post this in the dispatcher channel (or DM the bot) —
not in your own assistant, which has no PCS tool and would have to
invent the answer:
Summarize the physics tags in the PCS — which processes are covered, and which tags are still draft?
Two reusable harness patterns
The bot runs a small, cheap model, so it hits the failure modes this lesson warned about — at scale. Two of its countermeasures apply to any harness:
- Tiered tool exposure. Tool use degrades past roughly 30–50 tools, and the bot has ~100. So its system prompt carries only a compact list of everything; a harness loads full descriptions for just the tools each request needs; the bot can still reach the rest on demand. The same context-economy principle as skills’ progressive loading in Episode 4.
- The fabrication check. The bot’s biggest problem is making answers up instead of calling a tool — cheerfully reporting “this is fine” when nothing was actually checked. The harness hands the model a secret token only when a tool is actually called and requires it in the response; no token, and the user is warned the answer was probably fabricated. Verification over confidence (Episode 1), enforced mechanically.
AI smart search on eic.github.io
The EIC software portal has an AI smart search — the “Ask anything about EIC…” box in the header. Type a question and get search results plus an AI overview built from the public EIC docs.
Beyond the bot: corun-ai
The bot answers in seconds from a small model, and its answers scroll
away in the chat history. BNLNPPS/corun-ai
is the complement: runs that take minutes on high-level
models, with the results preserved, browsable, and open to expert
commentary. Its first application, codoc-ai (epic-devcloud.org/doc),
generates software documents grounded in LXR + GitHub. Typical uses:
- “I’ve been away from ePIC software development for 6 months — give me an overview of simu, reco and framework developments” — run across several models and compared;
- documentation pages re-runnable against current code;
- one-click review of any open ePIC pull request.
Anyone can submit runs and comment — ask Torre for an account. (eic/corun-mcp-server
wraps it as an MCP server, so your own assistant can browse and submit
too.) The services are at an early stage, currently hosted on the open
internet; a move to lab hosting is planned.
Where this is going
The direction is what this lesson taught in miniature: centrally hosted MCP services over HTTP (the transport from Episode 3) that plug equally into the bot, corun-ai, and your own assistant — from one free assistant and one tool server up to a collaboration-wide ecosystem.
- The EIC exposes its infrastructure through MCP: analysis (uproot), data (xrootd, rucio), records (zenodo, indico), code (LXR + GitHub), and production (PanDA, PCS) — three of which you ran yourself.
- The DISpatcher bot is the zero-setup path: ~100 MCP tools behind a Mattermost account, no client configuration at all.
- corun-ai/codoc-ai is the long-latency complement: high-level models, preserved and expert-curated outputs, grounded in nightly-indexed code knowledge.
- Patterns to reuse: tiered tool exposure (context economy at scale) and the secret-token fabrication check (verification over confidence, enforced).
- This catalog dates quickly — check the eic GitHub organization and the ePIC dev-cloud for the current list.