Skip to content

Install the EIC MCP stack and opencode via spack packages#357

Draft
aprozo wants to merge 5 commits into
masterfrom
feat/eic-mcp-spack
Draft

Install the EIC MCP stack and opencode via spack packages#357
aprozo wants to merge 5 commits into
masterfrom
feat/eic-mcp-spack

Conversation

@aprozo

@aprozo aprozo commented Jul 17, 2026

Copy link
Copy Markdown

Supersedes #328 (per review there: no bundled script, no runtime clone/build — everything installed properly via packages) and replaces #356 (same change from a fork, where CI has no secrets).

Three commits:

  1. feat: install the EIC MCP server stack via spack packages — xl/spack.yaml adds eic-mcp, rucio-eic-mcp-server, supergateway, uproot-mcp-server (xrootd/zenodo were already in); packages.yaml version requires + py-mcp +cli.
  2. feat: opencode — AI coding agent CLI for headless use (farm nodes, CI reproducers).
  3. chore: TESTING pineic-spack.sh points at the recipes branch (EIC MCP servers, supergateway, eic-mcp, opencode, py-mcp (+deps) eic-spack#986 head, i.e. develop@dd8a73e + the new recipes). This commit is dropped/reverted to the merge SHA before undrafting.

Why the current image ships a broken xrootd-mcp-server, test evidence (all recipe installs verified in eicweb/eic_xl:nightly, 22/22 end-to-end launcher tests, MCP served on 9101–9104): see the eic-spack PR and eic/eic-mcp#1.

Draft until the eic-spack PR merges and the pin is finalized.

aprozo added 3 commits July 17, 2026 12:01
The eic-mcp launcher and every MCP server now come from eic-spack recipes
and land in /opt/local/bin via the environment view (supersedes #328: no
bundled script, no runtime clone/build).

- xl/spack.yaml: add eic-mcp, rucio-eic-mcp-server, supergateway,
  uproot-mcp-server (xrootd-/zenodo-mcp-server were already in)
- packages.yaml: version requires for the servers and bridge; py-mcp +cli
For headless LLM-client use inside eic-shell (farm nodes, CI reproducers).
Installed from the per-platform GitHub release binary.
Points at aprozo/eic-spack feat/mcp-servers (develop@dd8a73e + the new
recipes). Revert to eic/eic-spack at the merge SHA before undrafting.
aprozo added 2 commits July 17, 2026 14:20
py-typer (newest builtin: 0.23.2) pins py-click@:8.1.8, which cannot unify
with the environment's click 8.3+ (flask via pyrobird). The MCP servers
only need mcp core, so the eic-spack recipes default the cli variant off.
The previous pin predated py-mcp defaulting ~cli, so the typer/click
conflict was still in the DAG. Also picks up the py-pyjwt import-test
path fix, and drops the fork indirection now that the branch lives on
eic/eic-spack.
@aprozo
aprozo force-pushed the feat/eic-mcp-spack branch from de3b9cd to 3d658cc Compare July 17, 2026 16:40
@github-actions

Copy link
Copy Markdown

Capybara summary for PR 357

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant