Project

Roadmap

Where OpenMHP is going, and what it deliberately leaves out for now. Items move up this list when a partner lab needs them; tell us which ones.

Shipped

Protocol and reference implementation: six primitives (describe, signals, settings, actions, safety, and methods for instruments that run named per-project parameter sets) with driver-enforced safety gates in a fixed order; device packages with three levels of disclosure; a live-pinging directory; adapters for OPC UA, ROS 2, SiLA 2, MADSci, PyLabRobot and MQTT; mhp node / npx openmhp-node setup turning a bench PC into a persistent, auto-advertised host for everything wired into it; server-run onboarding with no-code manual and serial drivers; recipes and plan mode with virtual time and a read-only RPC allowlist; a per-lease watchdog and a fail-closed state machine for uncertain outcomes; background runs, data files and a restart-safe run log; every device pushing signal, job and safety events to a bridge that relays them without polling; human confirmation through MCP elicitation; pause and resume; evidence-based safety cards; a community package registry with simulated twins; the npx openmhp-cli launcher; three Agent Skills. The full list, with the thinking behind it, is on Features and Design principles.

Next

ItemWhyWhat it takes
Desktop installerScientists on Claude Desktop or similar apps should never open a terminal. Today npx openmhp-cli setup needs Node and Python present.A signed macOS and Windows installer that bundles a Python runtime, installs the launcher, registers the MCP server with the harnesses it finds, and updates itself. This is a packaging pipeline outside the protocol repository, with code signing and notarisation.
Push packages to a nodemhp node and npx openmhp-node setup already serve every package in a folder as a persistent, auto-advertised background service. What is still manual is getting a new package onto that folder in the first place.Let a node accept a package pushed from a scientist's laptop or the directory, so onboarding an instrument never requires touching the bench PC's filesystem by hand.
Lab notebook exportThe run log and run folders already hold everything a notebook entry needs.Render a run into a Markdown or ELN-ready record: what was asked, what was planned, what ran, every reading and refusal, who confirmed what. Connectors for common ELNs after the format settles.
Instrument data formatsPlate readers and microscopes produce vendor files. The agent needs standard tables and images, not vendor blobs.Conventions for run files (CSV for tables, PNG or TIFF for images, JSON sidecars), and converters that emit Allotrope Simple Model for instrument output, so downstream analysis and LIMS ingestion work without custom parsing.
Sandboxed runsThe reference bridge executes mhp_run scripts in-process so simulated state is shared. Real labs want isolation.Run scripts in a subprocess or container with only the MHP client available, resource limits, and the same run folder. The protocol does not change.
Hosted registryThe bundled index lists three packages. Growth needs a place to publish.A registry at openmhp.com with search, versioning, a review step for safety cards, and mhp_lab op="registry" pointed at it by default. Package signing so a lab can trust what it pulls.
AuthenticationHTTP transports rely on the network today.Bearer tokens or mutual TLS on the HTTP transport, per-client identities in leases and the run log, and an in-band params.auth for harnesses that cannot set headers.
Multi-device transactionsA plate transfer that fails halfway leaves two devices in inconsistent states.A transaction/ namespace: acquire leases on several devices at once, run a sequence, and define compensating actions the bridge runs on failure.
SchedulingOvernight and multi-day experiments start at a time, not at a keystroke.Scheduled and recurring runs in the bridge, with a calendar view in the lab status and notifications when they start, finish, or trip an alert band.
Streaming signalsSpectra and camera frames are streams, not polled values.A data/stream primitive over SSE and WebSocket with backpressure, and recipe helpers that subscribe and aggregate without the agent in the loop.
Fleet healthTwo thousand devices need a dashboard, not a chat.A read-only web view over the directory, run log and safety cards: what is idle, busy, faulted, unreachable; what ran; which packages lack a safety review.
More community packagesEvery package someone writes is one no one else has to.Serial command maps for common hotplates, balances, pumps and thermocyclers; PyLabRobot-backed handlers; OPC UA templates for furnaces and chambers. Contributions with a safety card and a simulated twin are merged.

Principles that will not change

How to influence this

Open an issue on GitHub with the instrument or workflow you are trying to run. Items that unblock a real experiment in a real lab move to the top.