What Project Bourne MCP server does
Project Bourne MCP server exposes the Bourne execution and provenance system to MCP-compatible agents. It is designed for scientific and engineering commands that should remain reproducible without requiring changes to the underlying program. Python scripts, compiled solvers, Julia programs, MPI commands, and other executables can use the same execution model.
The MCP layer is an adapter over Bourne Core, alongside the command-line interface and Python services. An agent can turn an explicit request into a versioned ExecutionRequest, ask Bourne to resolve a plan, inspect the result, and execute only after execution intent has been established. The server does not interpret unconstrained natural-language requests or invoke another model.
How it works
The local MCP process communicates with the agent through stdio. Bourne first freezes an immutable execution plan containing the scientific command as exact argument values. Planning and execution are separate phases, so a plan can be reviewed before a workload runs. If a provider-selected variant changes a bound input, Bourne retains the original and records a separately hashed workload variant.
For remote execution, the control plane uses the researcher's existing OpenSSH configuration, VPN path, and scheduler access. A short-lived Remote Worker validates the plan, verifies staged file digests, prepares the execution bundle, and submits it to Slurm, PBS, or IBM LSF. The scheduler then places a short-lived Compute Worker inside the allocation. That worker performs compute-side checks, records available process, allocation, CPU, memory, I/O, GPU, and environment evidence, runs the exact argv, and writes result evidence.
The workstation, MCP host, or agent can disconnect after submission. Later reconciliation uses SSH to recover scheduler state and bounded result evidence. An uncertain connection failure does not cause an automatic blind resubmission.
Setup and configuration
Install the Python package with pip, then start the local server with:
python -m pip install "bourneprov[mcp]==0.8.1"
bourne mcp
The public launcher is also available through npm:
npx -y @project-bourne/mcp@0.8.1
Project Bourne MCP server runs on the supported Linux and macOS control-plane platforms. Configure a site with the Bourne CLI by providing an SSH login host, scheduler type, local root, and remote root. Planning can use provider constraints and requires explicit decisions for trusted classifications or selected candidate changes. No AI credential, inbound cluster port, root access, persistent daemon, or public internet access is required on the HPC system.
Tools and capabilities
The Project Bourne MCP server supports agent workflows for:
- Converting an explicit workload request into
ExecutionRequest v2.
- Planning against site and provider information.
- Inspecting deterministic plan resolution before execution.
- Executing an approved immutable plan.
- Running commands on local compute or through scheduler-backed HPC execution.
- Preserving stdout, stderr, execution metadata, scheduler state, and provenance evidence.
- Reconciling an execution after the original connection or agent session ends.
Slurm and PBS are supported, and IBM LSF includes bounded queue discovery, submission, active and historical job inspection, reconciliation, and cancellation. Existing Apptainer or Singularity images may be verified as part of a plan, but Bourne does not build, download, install, or manage those images.
Limitations and notes
Project Bourne MCP server is local-first and agent-optional: the CLI and Python services work without MCP. Remote and compute workers are not agents or persistent services. Bourne does not SSH directly into compute nodes; the scheduler owns the job after accepting submission.
Native Windows is not validated or supported. Missing telemetry is represented with an explicit coverage state rather than fabricated as zero, and incomplete observation does not automatically invalidate a workload. The current release does not orchestrate multi-node container launches, select MPI-launcher and container ordering, or inject an MPI launcher. The remote-worker protocol and staged payload formats are versioned, so deployed workers and control-plane components must use compatible protocol support.