MES integration with AI agents: one read path across MES, LIMS and QMS, and a signature that stays human

MES integration with AI agents works as one MCP server per system, MES, LIMS and QMS, behind one agent that reads, correlates and drafts but never signs. For batch release readiness it joins batch record exceptions, lab results and open deviations into a review packet; EU GMP Annex 11 leaves certification to a Qualified Person's electronic signature.

Where it breaks

Four breaking points between an agent and a batch release

01 · Split record

The evidence for one batch lives in three systems

Batch record exceptions sit in the MES, test results in the LIMS, open deviations and CAPAs in the QMS. None of the vendor servers we found on 19 September 2026 crosses that boundary: Veeva's Vault MCP server reads Vault, and Körber's PAS-X K.AI is a documentation assistant in a pilot phase, not an agent on batch data.

02 · Join key

The batch is called something different in each system

The MES knows an order and a batch, the LIMS knows samples drawn from it, and a deviation often names the batch in a text field. An agent that guesses the join will put the wrong result next to the wrong batch, which is the one error a release review cannot absorb.

03 · Identity

Each system authenticates differently

Vault's MCP server accepts only API access tokens and applies the Vault user's permissions. MES and LIMS integrations are commonly built on a technical account. Mixed together without care, the agent answers one reviewer with another reviewer's rights.

04 · Signature

The last step is not the agent's to take

Annex 11 expects only Qualified Persons to certify batch release, with an electronic signature, and 21 CFR 11.100(a) makes a signature unique to one individual and not reassignable. Any design that ends with the agent pressing release has failed before it is built.

  • Consequence: the integration is three read paths, one correlation step and a draft. The signature stays in the system that already holds it.

The two answers teams reach first, and why neither holds

The first answer is to wait for each vendor's assistant. It is the cheapest start and it produces three assistants, each fluent inside its own product. The QA reviewer still opens three screens, copies a batch number between them and does the correlation by hand, because that correlation sits between vendors. Veeva's server does not read PAS-X, and Körber's assistant does not read Vault.

The second answer is to copy everything into a data lake and point the agent at the copy. This one is attractive to IT, because it looks like one integration instead of three. It fails for release work on two counts. The copy is not the validated record, so every answer carries the question of whether it matches the system of record at the moment of review. And Annex 11 asks that data moved between systems keeps its value and meaning, which turns the pipeline itself into something to validate.

Neither is wrong everywhere.

The copy is the right tool for trends across months of batches. Vendor assistants are the right tool for questions that never leave their product. For release readiness and deviation triage, the design that holds is live, read-only access to each system of record through a small set of named operations, with the correlation done in the agent and the result delivered as a draft.

The architecture

Three servers, one correlation step, one draft

  1. 01

    One MCP server per system of record

    An MES server with operations such as get_batch_exceptions, get_order_status and trace_genealogy. A LIMS server with get_results_for_batch and get_oos_status. For the QMS, where the vendor already ships a server, use it: Vault's MCP server exposes only agent actions flagged for API access, which is a tool list you can restrict rather than rebuild. Where an MES exposes a read-only model, as Execution Foundation-based Siemens Opcenter products do through an OData reading model, the server is built on that.

    • PAS-X MSI / REST
    • LabWare REST/JSON
    • Vault MCP server
    • Opcenter reading model
  2. 02

    A correlation step that owns the batch key

    A mapping from the MES batch to its LIMS samples and to the QMS records that reference it, maintained as data, not inferred by the model. The agent asks each server for one batch, joins on the mapping and marks every gap it cannot close rather than filling it.

    • batch key map
    • explicit gaps
  3. 03

    A review packet, not a record

    The output is a document for the reviewer: open exceptions, results against specification, deviations and their status, each line with the system and record it came from. It is written nowhere as a GMP record. The reviewer acts in the MES and the QMS as before, under their own signature.

    • review by exception
    • source per line

Across all three layers

  • Every tool call logged with the person, the tool and the arguments
  • No tool that signs, releases, approves or amends a result
  • The tool list under change control, like any other interface of a validated system
  • Servers deployed in your network, next to the systems they read

Covered, and still needed

What the agent covers per use case, and what stays with people

Use caseWhat the agent coversWhat is still needed
Batch release readinessExceptions, results and open deviations for one batch in one packet, each line traced to its source recordReview and certification by a Qualified Person, with an electronic signature, in the system of record
Deviation triageThe deviation next to the batch record, the lab result and equipment history; a draft root-cause hypothesisAn investigation owner who confirms or rejects it; CAPA raised in the QMS by a person
Genealogy questionWhich serial numbers or batches contain a given lot, read live from the MESLimits on traversal depth and result size, set per plant, or a recall question becomes a runaway query
AuditA log of every tool call with the person who askedThe GxP audit trail stays the one inside each system; the tool log does not replace it

21 CFR 11.10(e) asks for computer-generated, time-stamped audit trails of entries and actions that create, modify or delete electronic records. A read-only agent creates none, which is the point.

The configuration is the argument

The server set for a batch release readiness agent

Illustrative, not a product manifest. Three lines carry the design: writes are none on every server, the QMS leg is the vendor's own endpoint with an allow-list, and signatures are not exposed at all.

# batch-release-readiness: server set (illustrative)
# Every server read-only; the agent drafts, a Qualified Person signs.
servers:
  mes:
    tools: [get_batch_exceptions, get_order_status, trace_genealogy]
    writes: none
  lims:
    tools: [get_results_for_batch, get_oos_status]
    writes: none
  qms:
    endpoint: <your-vault>/api/ai/mcp    # Veeva Vault MCP server
    agent_actions: allow-list only       # actions with API access enabled
    writes: none
correlation:
  batch_key_map: managed table, not model inference
output: draft_review_packet             # a document, not a GMP record
signatures: not exposed                 # EU GMP Annex 11 cl. 15; 21 CFR 11.100(a)

If a reviewer can find a tool on this list that changes a record, the list is wrong. The packet is the only thing the agent produces.

The breaking points nobody expects

  • The vendor server is the easiest leg and the hardest identity. Vault's MCP server accepts only API access tokens. A token per reviewer is correct and has to be issued, rotated and revoked like any credential; one shared token is simpler and answers every reviewer with the same rights.
  • Read-only is not out of scope. Annex 11 wants an inventory of GMP systems and, for critical ones, their interfaces and data flows. The agent's servers are interfaces to the MES, LIMS and QMS and belong on that list.
  • The draft has to say it is a draft. A packet that looks like a release record will be treated as one. Mark it, date it, name its sources, and never store it where GMP records live.
  • Identity has to be recorded even when a system cannot carry it. Annex 11 expects systems to record who entered, changed or confirmed data. Where a LIMS integration runs on a technical account, the server logs the requesting person itself, so the question of who asked is never unanswerable.

When one of the rejected answers is right

If the question never leaves one system, one server is enough and the correlation layer is overhead. Genealogy in a discrete plant is the typical case: the answer sits in the MES and nowhere else, which is what an Opcenter integration on the reading model covers. And if what you need is trend analysis across months of batches rather than one batch today, the data-lake copy wins, because nobody signs off a trend.

Sources: EudraLex Vol. 4, Annex 11: Computerised Systems (clauses 3.1, 4.3, 4.8, 12.4, 15) · 21 CFR 11.100 General requirements (electronic signatures) · 21 CFR 11.10 Controls for closed systems (audit trails, 11.10(e)) · Veeva Vault 26R2 release notes: Vault MCP server · Körber: PAS-X K.AI · COPA-DATA: zenon and the PAS-X MSI interface · LabWare: LIMS integration. Read 19 September 2026.Regulatory text quoted from the version in force on the date read; vendor documentation changes with each release, so verify both against the current version before relying on them.

What QA and the MES owner ask before the first server goes in

Can an AI agent release a batch?

No. It can prepare the release and nothing more. EU GMP Annex 11 expects the computerised system to let only Qualified Persons certify batch release, using an electronic signature, and 21 CFR 11.100(a) says an electronic signature is unique to one individual and may not be reassigned. The agent's job ends at a review packet: exceptions, results and open deviations for one batch, in one place, for the person who signs.

Veeva ships a Vault MCP server. Is that not enough?

It is enough for questions that live in Vault. The Vault MCP server, generally available since release 26R1.4, exposes Vault agent actions under the user's Vault permissions. It does not read the batch record in the MES or the result in the LIMS, and batch release needs all three. Use Veeva's server as the QMS leg of the architecture rather than building a second one.

Does a read-only agent still need to be validated?

Usually yes, and your quality unit decides how far. Annex 11 asks for an up-to-date inventory of GMP-relevant systems and, for critical ones, a description of their interfaces and data flows. A server that reads batch records and feeds a release decision belongs in that inventory, with a risk assessment that sets the validation depth. Read-only lowers the risk; it does not remove the system from scope.

What does a cross-system MES integration cost?

It starts with one system. The two-week Readiness Blueprint is fixed at €4,900 and covers one source system: tool list, identity test and a costed build plan. A first production server is usually a use-case pilot from €15,000. Each further system reuses the identity and audit work, so the second server costs less than the first. Validation effort sits with your quality unit and is not in these figures. Prices are net of VAT.

What if we do not want to run these servers ourselves?

Then someone else runs them, but in your network, not in theirs. The servers sit next to validated systems, so hosting them in a third party's cloud adds a supplier to your Annex 11 agreements and a data flow to your inventory. We hand over code, tests and runbook; if you want us to operate them, monitoring and on-call start at €3,000 per month, on your infrastructure.

Next step

Start with one system and a tool list your quality unit can read

Two weeks, fixed price: one source system, the tool list agreed with its owner, a test of whose identity each call runs under, and a costed plan for the server. The architecture for the second and third system comes with it.