From c71ac440a1e7358b55891daea46d5520f62eb56d Mon Sep 17 00:00:00 2001 From: aprozo Date: Fri, 17 Jul 2026 12:01:16 +0100 Subject: [PATCH 1/3] feat: install the EIC MCP server stack via spack packages 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 --- spack-environment/packages.yaml | 22 ++++++++++++++++++++++ spack-environment/xl/spack.yaml | 4 ++++ 2 files changed, 26 insertions(+) diff --git a/spack-environment/packages.yaml b/spack-environment/packages.yaml index c309dc421..84686aea7 100644 --- a/spack-environment/packages.yaml +++ b/spack-environment/packages.yaml @@ -158,6 +158,9 @@ packages: externals: - spec: egl@1.5.0 prefix: /usr + eic-mcp: + require: + - '@main' # pin to the first tagged release once eic/eic-mcp tags one eic-opticks: require: - '@0.3.0' @@ -510,6 +513,10 @@ packages: py-matplotlib: require: - '@3.10' # avoid FT_Render_Glyph errors possibly due to https://github.com/matplotlib/matplotlib/pull/30059 + py-mcp: + require: + - '@1.28:' + - +cli # rucio-eic-mcp-server needs mcp[cli] py-mplhep: require: - '@0.4.0:' @@ -622,6 +629,9 @@ packages: - '@6.38.04' - cxxstd=20 +fftw +fortran +gdml +http -ipo +mlp +python +root7 +tmva +tmva-sofie +x +xrootd +ssl - any_of: [+opengl +webgui, -opengl -webgui] + rucio-eic-mcp-server: + require: + - '@0.1.0:' sherpa: require: - '@3.0.1' @@ -665,6 +675,9 @@ packages: strace: require: - -mpers + supergateway: + require: + - '@3.4.3:' swig: require: - '@4.1:' # constrain to avoid duplicates in eic_tf @@ -675,6 +688,9 @@ packages: require: - '@2.8.0' - -xnnpack + uproot-mcp-server: + require: + - '@0.1.0:' valgrind: require: - '@3.20.0:' @@ -688,9 +704,15 @@ packages: require: - '@5.7.0:' - cxxstd=20 -davix +python +scitokens-cpp + xrootd-mcp-server: + require: + - '@0.1.0:' yoda: require: - '@2.1.0:' + zenodo-mcp-server: + require: + - '@0.1.0:' zlib-api: require: - zlib-ng diff --git a/spack-environment/xl/spack.yaml b/spack-environment/xl/spack.yaml index 474c392ac..576a90eff 100644 --- a/spack-environment/xl/spack.yaml +++ b/spack-environment/xl/spack.yaml @@ -28,6 +28,7 @@ spack: - doxygen - east - edm4hep + - eic-mcp - eic-smear - eigen - emacs @@ -126,6 +127,7 @@ spack: - py-yapf - rivet - root + - rucio-eic-mcp-server - sherpa - simsipm - slurm sysconfdir=/etc/slurm @@ -133,6 +135,8 @@ spack: - spdlog - stow - strace + - supergateway + - uproot-mcp-server - valgrind - xeyes - xrootd From 95e1fbb2664822d226f6c3069be4e455034b2558 Mon Sep 17 00:00:00 2001 From: aprozo Date: Fri, 17 Jul 2026 12:01:16 +0100 Subject: [PATCH 2/3] feat: opencode, an AI coding agent CLI For headless LLM-client use inside eic-shell (farm nodes, CI reproducers). Installed from the per-platform GitHub release binary. --- spack-environment/packages.yaml | 3 +++ spack-environment/xl/spack.yaml | 1 + 2 files changed, 4 insertions(+) diff --git a/spack-environment/packages.yaml b/spack-environment/packages.yaml index 84686aea7..cb9662c4f 100644 --- a/spack-environment/packages.yaml +++ b/spack-environment/packages.yaml @@ -383,6 +383,9 @@ packages: require: - '@7.8.1:' - +application_framework -vtk + opencode: + require: + - '@1.18.3:' opengl: buildable: False externals: diff --git a/spack-environment/xl/spack.yaml b/spack-environment/xl/spack.yaml index 576a90eff..ec4624f2c 100644 --- a/spack-environment/xl/spack.yaml +++ b/spack-environment/xl/spack.yaml @@ -70,6 +70,7 @@ spack: - ollama - onnx - opencascade + - opencode - osg-ca-certs - pelican - phonebook-cli From 359fad94af1be30699db5a7c43a13ce8aeea1008 Mon Sep 17 00:00:00 2001 From: aprozo Date: Fri, 17 Jul 2026 12:01:16 +0100 Subject: [PATCH 3/3] chore: TESTING pin eic-spack to the MCP recipes branch Points at aprozo/eic-spack feat/mcp-servers (develop@dd8a73e + the new recipes). Revert to eic/eic-spack at the merge SHA before undrafting. --- eic-spack.sh | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/eic-spack.sh b/eic-spack.sh index dca91197a..81a1ea559 100644 --- a/eic-spack.sh +++ b/eic-spack.sh @@ -1,8 +1,10 @@ # shellcheck shell=bash # shellcheck disable=SC2034 # Variables are used by scripts that source this file ## EIC spack organization and repository, e.g. eic/eic-spack -EICSPACK_ORGREPO="eic/eic-spack" +## TESTING ONLY — revert to eic/eic-spack + the merge SHA before undrafting. +## The pinned commit is develop@dd8a73e + the MCP/opencode recipes. +EICSPACK_ORGREPO="aprozo/eic-spack" ## EIC spack commit hash or github version, e.g. v0.19.7 ## note: nightly builds could use a branch e.g. releases/v0.19 -EICSPACK_VERSION="dd8a73e348ec36c685da707c2d33f1d94b8df82c" +EICSPACK_VERSION="f356d6b81a19173901ef1e68eb2bb59099610b5f"