Spack
Structured Spack discovery and installation tools for scientific agents
claude mcp add --scope project clio-spack -- clio-kit mcp-server spack
Install the launcher first. Restart your client after setup. Configuration locations →
Check the connection
clio-kit doctor --server spack --connect
Checks prerequisites and tool discovery. Test on known input to verify results. Native backends may require additional setup.
Tools
spack_findList installed Spack packages matching an optional constraint. No matches is a successful result with count=0 and packages=[].
spack_locateResolve one unique installed Spack spec. Copy spack_locate.output.load_spec unchanged into one element of jarvis_run.input.spack_specs; do not derive or pass an executable path from the returned prefix. An absent package returns the structured not_installed error, whose detail now says whether a recipe is available to install (call spack_install) or exists in no registered repo at all.
spack_searchSearch recipe AVAILABILITY across every registered Spack repo -- broader than spack_find/spack_locate, which only see what is already installed. Answers 'does a recipe exist', 'in which repo', and 'is it already installed' in one call. No matches is a successful result with count=0.
spack_infoDescribe one recipe: versions, variants, and description. Probes `spack info` first; if that subcommand is unavailable or fails on this deployment, falls back to statically parsing the recipe's package.py and marks the result degraded=true with degraded_reason explaining why -- never silently. A package absent from every registered repo returns the structured recipe_not_found error.
spack_installInstall one Spack spec with explicit reusable or fresh concretization. Runs synchronously (streaming/task augmentation is deferred to the kit tasks-semantics slice, SEP-2663) with a configurable timeout; captures the full build log to disk and returns its path plus a bounded tail, and the install prefix on success. A missing recipe, a failed build, and a timeout are distinct typed errors (recipe_not_found / build_failure / timed_out), each naming the recovery affordance (searched repos / log tail / log path).
Examples
Replace example paths with your own files and check the returned results.
Discover before installing
Use spack_find to check installed packages. Empty matches are a successful
result. Use spack_search for recipe availability and spack_info for versions
and variants. Install a missing package with spack_install only when the work
requires it and choose reuse versus fresh concretization explicitly.
Hand software to an execution
Use spack_locate to resolve the exact installed identity. Pass its unchanged
output.load_spec into JARVIS jarvis_run's top-level spack_specs list.
A prefix or inferred executable path is not a substitute for that identity.
Spack must be installed and configured on the MCP host.