Artifacts (Large/Binary Inputs & Outputs)
MRP payloads should avoid embedding large/binary blobs in JSON. Instead, exchange artifact references with hashes.
Artifact Reference
See schemas/types/artifact.schema.json.
Minimal Upload Flow (recommended)
A provider MAY expose an artifact service:
POST /mrp/artifacts/init→ returns an upload URL and required headersGET /mrp/artifacts/{artifact_id}→ returns/downloads the artifact (or redirects)
INIT request
{
"name": "input.pdf",
"mime": "application/pdf",
"size": 1048576,
"hash": "sha256:..."
}
INIT response
{
"artifact_id": "art-123",
"upload": {
"method": "PUT",
"url": "https://storage.example.com/presigned/...",
"headers": {"Content-Type": "application/pdf"}
},
"artifact": {
"type": "artifact",
"uri": "https://provider.example.com/mrp/artifacts/art-123",
"hash": "sha256:...",
"size": 1048576,
"mime": "application/pdf"
}
}
Verification
- Providers SHOULD verify uploaded content hash matches the declared
hash. - Agents SHOULD verify returned artifact hashes before trusting downstream.
Retention & Policy
Providers SHOULD declare retention defaults in OFFER.risk (e.g. data_retention_days).