Jarvis
JARVIS-CD MCP with a compact user pipeline contract and explicit admin compatibility profiles
claude mcp add --scope project clio-jarvis -- clio-kit mcp-server jarvis
Install the launcher first. Restart your client after setup. Configuration locations →
Check the connection
clio-kit doctor --server jarvis --connect
Checks prerequisites and tool discovery. Test on known input to verify results. Native backends may require additional setup.
Tools
jarvis_create_pipelineCreate a JARVIS pipeline. Optionally pass execution intent such as local, cluster, or hostfile mode; backend details are resolved where the MCP server runs.
jarvis_describeDescribe JARVIS packages, one package, a pipeline, or one pipeline step. For a named application, first use target='package' with its unique short name or fully qualified package name. Use target='package_search' for bounded discovery, then describe the selected canonical name. A package description returns package-owned configuration metadata and, when supported, a versioned deployment contract covering execution profiles, runtime requirements, readiness, and configuration rules. Package settings include only semantic parameters explicitly marked agent-visible. A setting may include a versioned input_binding descriptor for a declared local input that must be staged; callers must not infer file semantics from setting names or prose. Installer, scheduler, and other implementation controls remain owned by their dedicated contracts. target='packages' is an exhaustive legacy inventory with every agent-visible package setting and can be large; use it only when the complete installed catalog is explicitly required.
jarvis_add_stepAdd and configure a package-backed step in a JARVIS pipeline. First use jarvis_describe(target='package') for the selected package; config keys must use its canonical setting names exactly, except for aliases explicitly listed there. Explicit null is accepted only when that setting reports nullable=true; omit a setting to use its declared default. Only settings marked agent-visible by the package are accepted here. User-level step configuration is always validated and cannot be bypassed. An interceptor-class package (a preloader such as Darshan) instruments another step rather than running on its own; pass its 'target' to bind it, or the append is refused naming the missing binding. 'target' is rejected for every non-interceptor package.
jarvis_edit_stepEdit or remove a step in a JARVIS pipeline. Use operation='edit' with config, or operation='remove' without config.
jarvis_runStart a configured JARVIS pipeline and return its durable execution handle without waiting for workload completion. Optional execution intent selects local, cluster, or hostfile mode without exposing scheduler internals. For each runtime resolved with Spack, copy spack_locate.output.load_spec unchanged into one element of jarvis_run.input.spack_specs; do not derive an executable path from the Spack prefix. JARVIS resolves those specs into a filtered environment and persists it before direct or scheduler execution. Use jarvis_get_execution with the returned pipeline_id and execution_id to query lifecycle, progress, artifacts, and execution-owned service runtimes.
jarvis_get_executionQuery one JARVIS execution handle, durable lifecycle record, and runtime metadata. Progress is included by default and can be omitted. Set include_service_runtimes=true to include execution-owned network services; authenticated services expose only a non-secret bearer token SHA-256 fingerprint. Set artifacts to {} or filters to include one bounded artifact page; omit artifacts to avoid querying the artifact manifest.
Examples
Replace example paths with your own files and check the returned results.
Create and inspect a pipeline execution
Use jarvis_describe with target="package_search" for bounded recipe discovery,
then target="package" for the selected canonical name and its configuration.
Create the pipeline with jarvis_create_pipeline and add the configured recipe
with jarvis_add_step. Start it with jarvis_run and query the returned pipeline
and execution IDs with jarvis_get_execution until terminal. Verify the reported
status and output artifacts.
For an initial local check, use a small echo recipe with submit=false.
Scheduler execution additionally needs site setup; JARVIS 1.8.1 has a known
failure for Slurm's literal (null) cluster value. See
deployment limits.