mpl

Architecture

A sidecar on the agent path

mpl inserts a thin protocol layer between your agent logic and the transport. Here is the shape of the stack and what happens on a single hop.

What happens on one hop

1

Receive

The proxy receives a message from an agent on the wire (MCP, A2A, or HTTP). Nothing about the agent changes — it simply targets the proxy address.

2

Validate the contract

The payload is checked against the JSON Schema for its stype in the registry. In strict mode, a mismatch is rejected here.

3

Score quality

The message is scored against the QoM profile required for its stype. A failing score below the threshold is a policy denial.

4

Apply policy

Glob-pattern policies run: required profiles, mandatory provenance fields, namespace allowlists.

5

Record the proof

A BLAKE3 hash of the canonicalised payload, the provenance block, and the QoM report are written to an append-only audit record.

6

Forward

If everything passes, the proxy forwards the message to the real tool server or peer agent and returns the response.

What ships in the repo

The open-source distribution at github.com/Skelf-Research/mpl is a Rust workspace plus SDKs and a registry.

crates/mpl-protocol Rust core — envelope, hashing, validation
crates/mpl-proxy Sidecar HTTP proxy
crates/mplx CLI (mpl proxy, mpl schemas)
crates/mpl-registry-api Registry service
python/mpl_sdk Python SDK
typescript/ TypeScript SDK (@mpl/sdk)
registry/stypes/ Pre-built contracts
registry/profiles/ QoM profiles
helm/mpl-proxy Kubernetes Helm chart

Frequently asked questions

What is in the envelope?

Every message carries four fields: stype (versioned semantic type), payload (validated against the schema), sem_hash (BLAKE3 hash of the canonicalised payload), and provenance (agent_id and intent).

Is the proxy a bottleneck?

It is a thin layer that validates, scores, records, and forwards. In transparent mode it never blocks; in strict mode it rejects only messages that fail the contract or policy.

How does it compose with MCP and A2A?

mpl does not replace them. The proxy speaks MCP or A2A on the wire and adds the contract, quality, and audit layer above the transport.