Should MRP Pivot to "The A2A Relay"? — Strategic Evaluation

Date: March 31, 2026 Context: Evaluating whether to overhaul MRP around the thesis: "A2A defines the standard, MRP provides the relay. Every protocol needs infrastructure. HTTP needed web servers. SMTP needed mail relays. A2A needs a broker for the agents that can't be servers."


The Thesis is Directionally Right

The gap is real. Here's who's doing what:

Player What They're Building Solves "Can't Host Endpoint"?
Agent Gateway (Linux Foundation, Microsoft/Apple/AWS/Cisco) A2A/MCP proxy — auth, observability, governance No. Proxy sits in front of agents that already have endpoints
HiveMQ (MQTT broker) A2A semantics over MQTT transport Yes, but requires adopting MQTT — different protocol entirely
Zuplo/Kong (API gateways) Rate limiting, auth, routing for A2A traffic No. Edge proxy, agents still need their own endpoints
Cloudflare MCP Server Portals (aggregated gateway) MCP only, not A2A
MRP (proposed) HTTP/WebSocket relay with A2A facade Yes, using web-native protocols devs already know

The search for "A2A relay" returns zero results. Nobody is building this exact thing.


What Gives Me Pause

Concern 1: How Big is the Addressable Problem?

Agents that genuinely can't host an HTTP endpoint:

Agent Type Can't Host Endpoint? Market Size MRP Fit
Developer laptop agents (Claude Code, Cursor) Yes, behind NAT Large & growing Strong — the Bridge already does this
Browser-based agents Yes Emerging Moderate
Mobile agents Yes Emerging Moderate
Serverless functions Partially — API Gateway gives them URLs Large but decreasing gap Weak
IoT/edge devices Yes Large but HiveMQ owns this Weak
Enterprise cloud agents No — they run on K8s with stable URLs Largest segment Not a fit

The honest truth: the biggest A2A market (enterprise cloud agents) doesn't need a relay. They already have endpoints. The segment that needs a relay is real but smaller — concentrated in developer tooling and local agent space.

Concern 2: HiveMQ is Already Here With More Firepower

HiveMQ has published a 4-part series on exactly this thesis: "A2A is point-to-point and that doesn't scale; you need a broker." They have:

Their weakness: MQTT is not HTTP/WebSocket. It's a different protocol stack. Developers building AI agents think in HTTP and WebSocket, not pub/sub topics with QoS levels. That's a real opening for MRP.

Concern 3: The Full Engineering Effort is Significant

To build a credible A2A facade:

Component Effort Description
JSON-RPC 2.0 endpoint 1-2 weeks Parse/route message/send, tasks/get, etc.
Agent Card generation 1 week Auto-generate from MRP profiles, serve at well-known URLs
Task lifecycle 2-3 weeks First-class Task entity with state machine
OAuth/OIDC auth bridge 2-3 weeks External A2A clients won't use Ed25519 signing
SSE streaming 1-2 weeks A2A uses SSE, MRP uses WebSocket — need translation
A2A client (outbound) 2-3 weeks MRP agents calling external A2A agents
Tests + SDK updates 2-3 weeks Python + TypeScript SDKs need A2A awareness
Total ~12-16 weeks solo

That's 3-4 months before you can claim "A2A-compatible relay."

Concern 4: Dependency Risk

Positioning as "infrastructure for A2A" means your fate is tied to A2A's decisions. If A2A v2.0 adds a native relay/broker mode (which they could — the gap is well-documented), your differentiation evaporates overnight.


The right play isn't "rewrite MRP as an A2A relay." It's a three-phase strategy that keeps what works, adds interoperability incrementally, and focuses scarce time on the highest-leverage moves.

Phase 0 — Get Users First (Now, 2-4 weeks)

This is the most important thing and it has nothing to do with A2A.

MRP's #1 problem isn't protocol compatibility — it's that nobody is using it. No amount of A2A compatibility fixes a cold network.

Focus on:

Why this first: nobody adopts an A2A relay that has zero agents on it.

Phase 1 — Lightweight A2A Read Bridge (Month 2-3)

After you have real agents and real usage, add a thin A2A compatibility layer:

  1. Auto-generate A2A Agent Cards from MRP agent profiles. Serve at /.well-known/agent.json per agent. ~500 lines of Go.
  2. Accept message/send JSON-RPC and translate to MRP messages. ~800 lines of Go.
  3. Map tasks/get to MRP thread retrieval. ~300 lines of Go.

This is 3-4 weeks of work, not 16. You skip the hard parts (OAuth, SSE streaming, outbound A2A client) and focus on the highest-value feature: any A2A client can discover and message your agents.

Don't build the OAuth bridge yet. Use API keys for the A2A facade initially.

Phase 2 — Evaluate and Double Down (Month 4+)

By this point you have data:

If yes → invest in the full bidirectional bridge, OAuth, streaming translation. If no → the A2A relay thesis was wrong and you didn't waste 4 months on it.


The Technical Opportunity: What Maps Cleanly

Despite the caution above, the protocol mapping between A2A and MRP is surprisingly clean:

A2A Agent Card ↔ MRP Agent Profile

A2A Agent Card MRP Agent Profile
name display_name
description metadata.description
skills[].id capabilities[]
capabilities.streaming (future: streaming flag)
capabilities.pushNotifications webhook registration
url (service endpoint) relay URL + public key

A2A Task ↔ MRP Thread + Message Schemas

A2A Concept MRP Equivalent Gap
Task (stateful unit of work) thread_id (message group) MRP threads have no lifecycle state
Task.status.state x-mrp-status schema Convention vs. first-class
Message (role: user/agent) Message (sender/recipient) Roles implicit in MRP
Part (text/file/data) body + attachments MRP body is opaque JSON
Artifact (task output) Final message in thread No dedicated concept
contextId (grouping) thread_id Direct equivalent

Proposed A2A Relay Architecture

┌──────────────────────────────────────────────────────────┐
│                    MRP Relay Server                       │
│                                                          │
│  ┌─────────────┐    ┌──────────────┐    ┌─────────────┐ │
│  │  A2A Facade  │    │  MRP Core    │    │  MRP Native │ │
│  │  (JSON-RPC)  │◄──►│  (existing)  │◄──►│  WebSocket  │ │
│  └──────┬───────┘    └──────────────┘    └──────┬──────┘ │
│         │                                        │        │
└─────────┼────────────────────────────────────────┼────────┘
          │                                        │
          ▼                                        ▼
   ┌─────────────┐                          ┌─────────────┐
   │  External   │                          │  MRP Agent  │
   │  A2A Client │                          │  (behind    │
   │  (standard) │                          │   NAT/FW)   │
   └─────────────┘                          └─────────────┘

Is It Worth It?

The narrow A2A facade (Phase 1) — yes, absolutely. 3-4 weeks for A2A discoverability is high leverage. It turns every MRP agent into an A2A-visible agent with zero work from the developer. Nobody else offers this.

The full overhaul to "A2A Relay Platform" — not yet. The market signal isn't strong enough to justify 3-4 months of solo engineering, especially when:


The One-Line Version

Keep the MRP wire protocol. Add A2A Agent Card generation and message/send translation as a feature (not a rewrite). But spend 80% of your time getting real agents on the relay — that's the moat, not protocol compatibility.

The right sequence is users → traction → interoperability, not interoperability → hopefully users.


Sources: Agent Gateway · HiveMQ: A2A Enterprise Limitations · HiveMQ: A2A Over MQTT · Zuplo: A2A Guide · A2A Protocol Spec · A2A Key Concepts · Everything Wrong with A2A