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 in 0.5

Protocol and reference implementation: five primitives with driver-enforced safety gates; device packages with three levels of disclosure; a live-pinging directory; adapters for SiLA 2, PyLabRobot, MADSci, OPC UA and ROS 2; server-run onboarding with no-code manual and serial drivers; recipes and plan mode; background runs, data files and a run log; human confirmation through MCP elicitation; pause and resume; safety cards; a community package registry with simulated twins; the npx @sinkush/openmhp launcher; three Agent Skills.

Next

ItemWhyWhat it takes
Desktop installerScientists on Claude Desktop or similar apps should never open a terminal. Today npx @sinkush/openmhp 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.
Bench PC agentInstruments are usually cabled to one PC per bench. Serving each package from there by hand is the last manual step.A small service (openmhp-node) that runs on a bench PC, serves every package in a folder, advertises them on the network, and accepts new packages pushed from a scientist's laptop.
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.