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.

Callout

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


Callout

uproot-mcp — read ROOT/EDM4eic files · available · used in this lesson

uproot logo

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.

Callout

xrootd-mcp — discover files on the data store · available · used in this lesson

XRootD logo

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.

Callout

rucio-mcp — query the data-management system · available · used in this lesson

Rucio logo

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


Callout

zenodo-mcp — search the open-data repository · available

Zenodo logo

eic/zenodo-mcp-server queries Zenodo over its REST API: search records, read public datasets and DOIs — ePIC document access.

Callout

indico-mcp — search meetings and agendas · available (community)

Indico logo

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


Callout

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?
Callout

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.
Callout

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.

Key Points
  • 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.