LIMS MCP Server — a Laboratory Information Management System: samples & chain of custody, tests/specs with OOS detection, ALCOA+ result amendments, gated batch release, HACCP, instruments, and food-safety incidents
LIMS MCP Server
A Laboratory Information Management System (LIMS) for ADK-Rust Enterprise food-beverage and pharmaceutical agents. 27 MCP tools covering samples & chain of custody, tests/assays with specifications, results with out-of-specification (OOS) detection and ALCOA+ data-integrity amendments, batch disposition/release gated on results, HACCP critical control points, instruments/calibration, and food-safety incidents — over an audit trail.
A platform, not a point solution
This is modeled as a general LIMS/QMS lab backbone (à la LabWare / STARLIMS / LabVantage), so a range of quality and safety agents are clients of one shared lab system:
| Agent | Domain | Uses |
|-------|--------|------|
| Batch Quality Release Agent | food-beverage | evaluate_batch, set_disposition, results_for_sample |
| Food Safety Incident Triage | food-beverage | open_incident, update_incident, list_incidents |
| HACCP Plan Assistant | food-beverage | create_ccp, record_ccp_reading, ccp_readings |
| Lab Data Integrity Monitor | pharmaceuticals | data_integrity_review, get_result, amend_result, review_result |
Architecture
Capabilities
- Samples & chain of custody — accessioned samples with an append-only custody log and status (received → in_testing → completed → disposed).
- Tests & specifications — methods with
numeric(min/max),count(max), orqualitative(expected value) specs. - Results & OOS — entering a result auto-evaluates it against the method spec (pass / oos / pending).
- Data integrity (ALCOA+) —
amend_resultrequires a mandatory reason and appends an immutable amendment (the original value is never overwritten); amendments invalidate a prior review.review_resultenforces segregation of duties (reviewer ≠ analyst).data_integrity_reviewsurfaces amended, un-reviewed, and pass-with-amendment results. - Batches & release gating —
evaluate_batchrolls up all results across a batch's samples;set_dispositionrefuses to release unless every result passes spec and is reviewed. - HACCP — critical control points with limits;
record_ccp_readingflags deviations outside critical limits. - Instruments — calibration tracking with a due/overdue watchlist.
- Incidents — food-safety/quality events; high/critical severity recommends a recall and places the linked batch on hold.
Governance posture
- Two writes are gated (
requires_approval):set_disposition(batch release/reject of physical product — classedexternal_write) andamend_result(changing a lab record of record). - Release has teeth — a batch cannot be released while any result is OOS, pending, or un-reviewed (verified in tests and live).
- ALCOA+ by construction — Attributable, Legible, Contemporaneous, Original, Accurate: amendments preserve the original, capture who/when/why, and every data action is on the audit trail.
- Reads are
read_only. Sample data is fictitious.
Tools (27)
Samples & Custody (4)
register_sample · get_sample · list_samples · add_custody_event
Tests & Results (7)
create_method · list_methods · enter_result · get_result · results_for_sample · amend_result (gated) · review_result
Batches & Release (5)
create_batch · get_batch · list_batches · evaluate_batch · set_disposition (gated, external)
HACCP (4)
create_ccp · list_ccps · record_ccp_reading · ccp_readings
Instruments, Incidents & Integrity (7)
add_instrument · calibration_due · open_incident · update_incident · list_incidents · data_integrity_review · audit_log
Example
// Batch Quality Release: evaluate then (try to) release
{"name": "evaluate_batch", "arguments": {"batch_id": "BAT-1004"}}
{"name": "set_disposition", "arguments": {"batch_id": "BAT-1004", "disposition": "released", "reason": "all pass + reviewed"}}
// Lab Data Integrity Monitor: amend (original preserved) + review trail
{"name": "amend_result", "arguments": {"result_id": "RES-1010", "new_value": 99.0,
"reason": "recalculation from raw chromatogram"}}
{"name": "data_integrity_review", "arguments": {}}
// HACCP + Incident
{"name": "record_ccp_reading", "arguments": {"ccp_id": "CCP-1016", "value": 68.0, "corrective_action": "re-pasteurized"}}
{"name": "open_incident", "arguments": {"title": "Pathogen detected", "batch_id": "BAT-1008", "severity": "critical"}}
Install & run
cargo install mcp-lims
mcp-lims # serves MCP over stdio
Or build from source:
git clone https://github.com/zavora-ai/mcp-lims
cd mcp-lims && cargo build --release
./target/release/mcp-lims
Registry manifest
server_id = "mcp_lims"
display_name = "LIMS (Laboratory Information Management)"
version = "1.0.0"
domain = "food-beverage"
risk_level = "high"
writes_allowed = "gated"
The full mcp-server.toml declares all 27 tools with risk classes and approval gates for registry onboarding.
License
Apache-2.0