OpenWOP openwop.dev

Protocol comparison Reviewed 2026-09-28

Three protocols. Three jobs. One stack.

A specification-level comparison of three complementary agentic AI protocols: inter-agent collaboration, durable workflow orchestration, and tool/context integration. A2A lets agents collaborate, MCP lets them reach tools and context, and OpenWOP makes the work between them durable and replayable.

A2A
1.0.1
MCP
2026-07-28
OpenWOP
v2.43.0
A 76-second narrated film, with English captions. Someone building with agents keeps hearing three names and asks which one to pick. The film shows that it is the wrong question, because they do different jobs: with A2A one agent asks another for help, with MCP an agent reaches its tools and information, and with OpenWOP the work is run and recorded step by step, so it can pause for a person, pick up after a failure and be checked afterwards. Then one request passes through all three. A scripted illustration.

Complementary planes, not substitutes.

Each protocol draws its boundary somewhere different, and each answers “what is opaque?” differently. Read them as layers and most of the overlap disappears.

  • A2A · horizontal plane

    Agent2Agent Protocol

    Independent agents discover each other, delegate work and report progress, without exposing memory, plans or tools.

    Core unit
    Task
    Discovery
    Agent Card
    Internals
    Intentionally opaque

    “Ask another agent to do something.”

  • MCP · vertical plane

    Model Context Protocol

    AI applications reach tools, resources and prompts through one stateless JSON-RPC contract, over stdio or Streamable HTTP.

    Core unit
    Tool / resource / prompt call
    Discovery
    server/discover · tools/list
    Internals
    Visible per call

    “Give the model safe access to external capabilities.”

  • OpenWOP · substrate

    Open Workflow Orchestration Protocol

    Clients start durable runs, stream events, pause for people, replay history and move work between compliant hosts.

    Core unit
    Run
    Discovery
    Host capability document
    Internals
    First-class: events, traces, replay

    “Run and observe a durable workflow.”

One request, through all three layers

The cleanest enterprise pattern: a specialist agent keeps a simple A2A face, runs the work as a durable OpenWOP run, and reaches real systems over MCP. The public contract stays separate from execution. Pattern 3, in full.

  1. 01An A2A caller sends SendMessageA2A boundary
  2. 02The specialist agent maps it to createRunRFC 0208 operation map
  3. 03An OpenWOP run records every event, under its capsdurable run
  4. 04ctx.mcp.callTool reaches the CRM, database and documentsMCP boundary
  5. 05interrupt.requested: a person approves firstbefore the action
  6. 06The run artifact returns as an A2A artifactA2A boundary

Which one, when

Most real platforms end up in the fourth column.

Choose

A2A

  • You need independent agents to discover and call each other.
  • You want an agent or skill marketplace.
  • The caller should not inspect internal tools, workflows, memory, or reasoning.
  • The core problem is remote task delegation and artifact return.
Choose

MCP

  • You need to connect an AI app or agent runtime to external tools, data, prompts, APIs, files, or SaaS systems.
  • You want dynamic discovery of tools/resources/prompts.
  • You need local process integrations via stdio or remote integrations via Streamable HTTP.
  • Your main challenge is context/tool integration rather than agent collaboration or durable workflow control.
Choose

OpenWOP

  • You need durable, replayable, observable AI workflows.
  • You need human approvals or clarifications as first-class workflow checkpoints.
  • You need event logs, run snapshots, fork/replay, traces, and production debugging.
  • You are implementing or evaluating a workflow host, not merely an agent endpoint or tool server.
Use

All three

A2A
public agent collaboration boundary
MCP
tool, data, prompt, and context integration boundary
OpenWOP
internal durable workflow and observability boundary

The full comparison

Purpose and scope, architecture, the specification side by side, failure modes, fit, integration patterns and sources.

Executive Summary

A2A, or Agent2Agent, is an open standard for communication and interoperability between independent, potentially opaque AI agent systems. The official A2A specification says its primary goals include capability discovery, modality negotiation, collaborative task management, and secure information exchange without requiring agents to expose internal state, memory, or tools.

MCP, or Model Context Protocol, standardizes how AI applications connect to external tools, resources, prompts, and contextual systems. Its official architecture documentation defines an MCP Host, MCP Client, and MCP Server model, with a JSON-RPC data layer and transports such as stdio and Streamable HTTP. Since revision 2026-07-28 the protocol is stateless: there is no initialize handshake and no session.

OpenWOP, or Open Workflow Orchestration Protocol, is an open, vendor-neutral wire protocol for durable multi-agent workflow orchestration. Its documentation describes a system where clients start workflow runs, stream run events, pause for human checkpoints, replay history, use signed webhooks, and preserve portability across compliant hosts.

Most important architectural takeaway: these are not direct substitutes. A2A is the horizontal agent-to-agent layer. MCP is the vertical agent-to-tool/context layer. OpenWOP is the durable workflow-control layer that can orchestrate agents, tools, humans, events, and replayable state.

QuestionA2AMCPOpenWOP
Primary purposeAgent-to-agent collaborationConnect AI apps to tools, data, prompts, and contextDurable multi-agent workflow orchestration
Core unitTaskTool/resource/prompt interaction over an MCP sessionRun
Main discovery objectAgent Cardserver/discover plus primitive lists such as tools/list, resources/list, and prompts/listHost capability document and workflow catalog
Best mental model“Ask another agent to do something.”“Give the model/app safe, structured access to external capabilities.”“Run and observe a durable workflow.”
Primary boundaryBetween independent agentsBetween AI host application and context/tool serversBetween workflow client and workflow host
Internal execution visibilityIntentionally opaqueVisible at tool/resource/prompt-call level, not full workflow orchestrationFirst-class: events, traces, replay, artifacts, checkpoints

Protocol Purpose and Scope

A2A: inter-agent collaboration

A2A solves the problem of independent agents discovering each other, exchanging messages, delegating work, and reporting task progress across framework, vendor, and language boundaries.

Its target users are agent platforms, agent marketplaces, enterprise automation systems, and specialist agents that need to collaborate without exposing internals.

MCP: tool and context integration

MCP solves the problem of connecting AI applications to external context providers and action surfaces through a shared protocol for tools, resources, prompts, notifications, and elicitation. Revision 2026-07-28 deprecates sampling, roots, and logging; they keep working through a deprecation window of at least twelve months.

Its target users are AI app developers, tool providers, IDEs, data platforms, SaaS integrations, local automations, and agent frameworks that need a standardized integration surface.

OpenWOP: durable workflow control

OpenWOP solves the problem of portable AI workflow execution: how to start, stream, interrupt, resume, replay, observe, and validate long-running multi-agent workflows.

Its target users are workflow authors, host implementers, pack authors, debuggers, evaluators, and enterprise platforms that need durable orchestration semantics.

Assumptions about the surrounding ecosystem

ProtocolAssumptions
A2AMultiple autonomous or semi-autonomous agents exist behind endpoints; callers should not need to know the remote agent's memory, plans, tools, or implementation.
MCPAI applications need access to changing external context and actions; tool/resource providers should expose capabilities through a common client-server protocol rather than bespoke integrations.
OpenWOPAI applications increasingly need durable, replayable, observable, multi-step workflows; workflow hosts should expose a common wire contract even if runtimes differ.

Architectural Models

A2A architecture

A2A uses a remote-agent model. An A2A client discovers an A2A server through an Agent Card, sends a message, receives either a direct message or a task, and then follows task status, artifacts, streaming events, or push notifications.

MCP architecture

MCP uses a host-client-server model. The host is the AI application. The MCP client is the connection manager inside that host. The MCP server exposes context or capabilities such as tools, resources, and prompts. The MCP data layer uses JSON-RPC, while the transport layer supports stdio for local process communication and Streamable HTTP for remote server communication. Revision 2026-07-28 removed the initialize handshake and protocol-level sessions. Every request now carries its protocol version and client capabilities in _meta, and every server MUST implement server/discover to advertise its versions, capabilities, and identity. A server that needs state across calls mints an explicit handle and passes it as an ordinary tool argument.

OpenWOP architecture

OpenWOP uses a workflow-host model. A client starts a run against a compliant host. The host executes a declarative workflow, emits events, may suspend for human input or approval, streams state over SSE, sends signed webhooks, and can support replay or fork behavior.

Architecture concernA2AMCPOpenWOP
Core entitiesClient, server/remote agent, Agent Card, Message, Task, Artifact, PartHost, client, server, tools, resources, prompts, elicitation, notifications; tasks via the Tasks extension (sampling, roots, and logging are deprecated as of revision 2026-07-28)Client, host, workflow, run, event log, node, artifact, interrupt, pack
Communication patternMessage/task exchange with streaming and push optionsJSON-RPC over stdio or Streamable HTTPREST run control, SSE event streams, signed webhooks; A2A and MCP are compositions over that wire, each advertised by its own facet (gRPC is an unadvertisable v2 extension, not part of the core wire)
DiscoveryWell-known Agent Cardserver/discover plus primitive list callsWell-known host capability document plus workflow catalog
LifecycleTask state machineStateless requests, each carrying its protocol version and capabilities; primitive discovery, calls, notifications; with the Tasks extension, a per-request task lifecycle (working, input_required, completed, failed, cancelled)Run lifecycle, event log, pause/resume, replay/fork
State managementRemote agent owns task state; execution internals are opaqueNo protocol-level session since 2026-07-28; cross-call state is an explicit server-minted handle passed as a tool argument; list results carry cache hints (ttlMs, cacheScope)Host owns durable run state and exposes events/snapshots
Trust boundaryBetween independent agentsBetween host application and MCP servers, including local or remote tool providersBetween workflow client and execution host; also between workflow nodes/tools/humans

Specification Comparison

DimensionA2AMCPOpenWOPArchitectural implication
Agent/service discoveryAgent Card advertises identity, skills, endpoints, security, capabilities, input/output modes.server/discover advertises supported versions, capabilities, and server identity; each request declares its own client capabilities; primitive discovery through list methods such as tools/list.Capability document advertises protocol version, transports, limits, profiles, envelopes, node support, and host behavior.A2A discovers agents; MCP discovers capabilities exposed by context/tool servers; OpenWOP discovers workflow hosts.
Identity and authenticationAgent identity and security schemes appear in the Agent Card; supports standard web-security patterns.Transport-specific authentication, especially for Streamable HTTP; stdio often relies on local process trust.Host/caller auth with operation scopes and production profiles; workflow execution identity may travel through run metadata and agent surfaces.A2A has the most explicit remote-agent identity layer; MCP auth depends heavily on deployment mode; OpenWOP focuses on run-operation authorization.
Authorization and permissionsAgent-defined authorization; callers must respect security schemes and scopes exposed by the agent.Server/tool permissions generally mediated by the host/client and transport authentication; tool authorization is often provider-specific.Standardized operation scope vocabulary such as run creation, read, approval response, artifact read.OpenWOP is strongest where workflow operation-level authorization matters.
Message formatCanonical protocol model with JSON representations and bindings including JSON-RPC, gRPC, HTTP+JSON.JSON-RPC 2.0 request/response/notification messages.HTTP JSON schemas, events, envelopes, workflow definitions, artifacts, and run snapshots.MCP is the simplest RPC substrate; A2A and OpenWOP carry richer task/workflow semantics.
Transport layerJSON-RPC, gRPC, HTTP+JSON, streaming, push notifications.Stdio and Streamable HTTP, which may answer a request with an SSE response stream. The older HTTP+SSE transport is deprecated, and 2026-07-28 removed stream resumability.REST, SSE, signed webhooks; v2 keeps gRPC out of the core wire.MCP covers local and remote tool servers; A2A and OpenWOP are more naturally network service protocols.
Task delegationCore purpose: delegate to another agent as a task.Not task delegation; it is tool/context invocation by a host application.Delegation happens inside workflow runs through nodes, workers, agents, subflows, or tools.Use A2A for peer delegation; use MCP for capability invocation; use OpenWOP for orchestrated delegation.
Tool invocationPossible inside the remote agent but not standardized as the primary abstraction.Central abstraction through tools/list and tools/call.Can model tool calls as workflow nodes and can compose with MCP tool calls.MCP is the most direct tool integration protocol.
Human-in-the-loopTask states such as input-required and auth-required can request user participation.Elicitation lets servers request additional user information through the client/host. In 2026-07-28 it rides the Multi Round-Trip Requests pattern: the server returns an input_required result and the client retries with the answers.First-class interrupts, approvals, clarifications, external events, resume schemas, and run suspension.OpenWOP is strongest for auditable approval gates; MCP elicitation is narrower and tool-session-oriented.
Error handlingBinding-native errors plus protocol-specific task states and error semantics.JSON-RPC error responses plus tool-call result semantics.Run errors, lifecycle errors, capability-gated refusals, terminal events, and debug artifacts.OpenWOP is strongest for workflow-runtime failures; MCP is strongest for RPC/tool-call errors.
ObservabilityTask status, streaming, push notifications, enterprise tracing guidance.A logging primitive (deprecated in 2026-07-28 in favor of stderr or OpenTelemetry) and documented _meta keys for W3C trace context, but not full workflow tracing by itself.OpenTelemetry naming, W3C trace context, run events, cost attribution, event logs, debug bundles.OpenWOP has the most explicit production observability model.
AuditabilityCaller can audit task-level outputs and status, not necessarily internal steps.Tool calls can be logged, but audit semantics are largely host/platform responsibilities.Event log, replay, artifacts, trace IDs, and signed events support audit-heavy systems. A host advertising auditLogIntegrity keeps a chained, checkpointed audit log that a privileged insider cannot silently rewrite, and serves GET /audit/verify (security-defaults.md).OpenWOP is best for regulated workflow audit trails.
ExtensibilityAgent Card extensions and protocol extension mechanisms.Primitive capabilities, an extensions capability field for official and custom extensions (Tasks is one), and opt-in list-changed notifications over subscriptions/listen.Host extensions, profiles, node packs, workflow-chain packs, pack registry.All three are extensible, but in different layers.
VersioningA2A-Version header/parameter and semantic compatibility expectations.Dated specification revisions; every request carries its revision in _meta, and server/discover lists the revisions a server supports.Versioned endpoint surface and compatibility/conformance profiles; its A2A and MCP interfaces negotiate the upstream version under authentication, fail closed below an advertised floor, and record every outcome as a negotiation.decided event.A2A and OpenWOP are more explicit at the public wire-contract level; MCP now declares its version and capabilities per request.
Deployment modelRemote agent service.Local process or remote server connected to an AI host.Durable workflow host.MCP can be embedded/local; OpenWOP usually requires a durable host; A2A requires addressable agents.

Similarities

All three protocols attempt to reduce bespoke integration work in agentic AI systems. They each provide a standardized contract around a boundary that would otherwise become custom glue code.

Shared patternA2AMCPOpenWOP
Capability declarationAgent Cardserver/discover and primitive listsHost capabilities and workflow metadata
Asynchronous or long-running work supportTasks, streaming, push notificationsProgress notifications, plus durable task handles when both sides support the Tasks extensionRuns, event logs, SSE, webhooks, pause/resume
Structured artifacts/resultsArtifacts and PartsTool/resource content arrays and structured JSON-RPC responsesArtifacts, events, envelopes
Human involvementInput-required/auth-required task statesElicitation from server to user via hostInterrupts and approval/clarification gates
Security boundary awarenessAgent trust boundaryHost/server/tool trust boundaryRun/host/tool/human trust boundaries
ExtensibilityExtensions and metadataCapabilities, primitives, notifications, server-specific tools/resources/promptsProfiles, packs, extensions

Differences

Horizontal vs vertical vs orchestration layer

LayerProtocolWhat it standardizes
Horizontal agent layerA2AHow independent agents discover, message, delegate, and return results to each other.
Vertical tool/context layerMCPHow an AI host connects to external tools, data sources, prompts, and contextual capabilities.
Workflow-control layerOpenWOPHow durable multi-step workflows are started, streamed, interrupted, resumed, replayed, observed, and validated.

Different answers to “what is opaque?”

A2A intentionally treats the remote agent as an opaque collaborator. The caller can see declared skills, task states, and artifacts, but not the remote agent’s private planning, memory, tool chain, or execution graph.

MCP is neither an agent transparency protocol nor a workflow protocol. It exposes capabilities from servers to hosts. A host can see and invoke tools/resources/prompts — and, with the Tasks extension, follow one long-running call through its own state machine — but MCP does not define an end-to-end workflow graph or independent agent collaboration model.

OpenWOP removes that opacity inside a workflow host. It standardizes run state, event streams, artifacts, interrupts, replay, node packs, and observability so the workflow can be inspected and validated.

MCP Tasks and OpenWOP runs are not the same durability

MCP revision 2026-07-28 added a Tasks extension: when a server decides a request will be long-running, it returns a durable taskId instead of blocking. The client polls tasks/get, answers mid-flight input_required prompts via tasks/update, and can tasks/cancel. The task is durably created before the response is sent, and the handle survives a client restart.

That is a real durability guarantee, and it closes the gap this page previously described as MCP having no execution lifecycle at all. It is worth being precise about what it does and does not cover, because the two models are easy to conflate:

DimensionMCP taskOpenWOP run
ScopeOne request's asynchronous executionA multi-step graph of nodes, edges, triggers, and variables
Who decidesServer-directed, per requestClient starts a named workflow
RetentionTTL-bounded (ttlMs)Retention floors the host advertises
CancellationCooperative — the server may still reach a non-cancelled terminal stateA cancelling → cancelled transition in the run state machine
HistoryCurrent status, then a terminal resultAn append-only event log
Re-executionNot definedReplay and fork
Repeat-call safetyNot definedEffect identity, atomic claim, and a GET /runs/{runId}/effects witness

The practical read: MCP Tasks makes one call survivable. It does not describe the sequence of calls, what to do when the second attempt of one of them arrives, or how to reconstruct what happened. Those are the questions a workflow layer answers, and a harness that needs them still has to supply them — which is the same additive relationship the rest of this page describes, just at a closer distance than it was in June.

Since September the two models also meet on the wire. The v2 corpus specifies an MCP server mount on an OpenWOP host: tools/list lists the workflows the caller may run, and tools/call starts a run whose trust boundary is untrusted (RFC 0208). Without the Tasks extension, when that run stops for a human, the mount answers the call with an MCP input_required result carrying one elicitation/create request per open interrupt. A host caps those rounds at its advertised mcp.mrtr.maxRounds (at most 16). A host MAY also serve the Tasks extension there (RFC 0198). If it does, it answers a long tools/call with an MCP task whose taskId is the run's projected id, tasks/get reads the run without appending to its log, and tasks/update resolves the run's open interrupts. The MCP task is then a view onto one OpenWOP run. The event log, replay, fork and effect witness in the table above stay on the OpenWOP side of that view. The mount is optional. RFC 0198, like every RFC of the corpus's MCP/A2A program (0197–0216), is Accepted only provisionally, pending its cross-organization retrospective review. Its evidence is the steward's v2 reference host, a reference example rather than a production host. Every host the conformance matrix has measured is run by the steward or a steward-affiliated organization; no independent-organization host exists yet.

Different units of composition

ProtocolComposition unitTypical example
A2ASkill advertised by an agent and invoked as a task“Ask the procurement agent to compare vendors.”
MCPTool, resource, prompt, elicitation, logging; optionally a task“Query CRM, read the contract, call the pricing API, use a prompt template.”
OpenWOPWorkflow definition, node, pack, run, interrupt, artifact“Run a vendor-evaluation workflow, pause for approval, replay if policy changes.”

Production Failure Modes — which layer fences them

An agent is a loop: a model reasons, calls a tool, observes the result, and repeats. That loop is what makes agents capable, and it is also where they fail in production — not in the model, but in the cycle wrapped around it. The well-documented failure modes are properties of the loop itself: small per-step error rates compound across steps, every lap costs tokens, an open-ended loop may never decide it is done, and a model that can call a tool can be tricked into calling the wrong one by poisoned input.

This is the dimension where the three protocols diverge most sharply, because OpenWOP is the only one of the three that owns the loop. A2A treats the remote agent's loop as opaque; MCP's Tasks extension gives a single call a durable, resumable lifecycle, but the loop around those calls is still the harness's. So the controls that fence a production agent — cap the steps, cap the time, cap the spend, gate the irreversible action, narrow the toolbox, mark untrusted input — land naturally in the workflow-control layer.

Production failure modeA2AMCPOpenWOP
Runaway loop — the agent never convergesCoarse task states; no iteration bound across the remote agent's internal loopNo loop construct to boundmaxLoopIterations run-execution bound; breach emits a terminal loop_limit_exceeded plus a cap.breached event, with the per-turn iteration counter observable on the run's event stream
Hang / stall — a step blocks indefinitelyPush-notification timeouts are caller-sidePer-call only; no workflow-level wall clockrunTimeoutMs wall-clock bound on the whole run, clamped to the host's limits.maxRunDurationMs; a breach emits cap.breached and fails the run with run_timeout
Cost blowout — every lap drags the full contextNot modeled; spend is internal to the remote agentPer-tool-call onlyFirst-class budget / quota / cost policy: reserve / consume / threshold / exhaust events plus cap.breached, with per-call accounting attributed on usage events. The events may carry the aggregate cost the caller capped, never the host's rate card or per-unit prices
Compounding errors — 90%-per-step ≈ 35% over ten stepsCaller sees the final task result, not intermediate self-correctionNo self-correction modelSelf-correction is first-class: an agent decision below the run's escalationThreshold MUST suspend the node on a low-confidence interrupt, and a verifier turn with explicit convergence criteria lets a run check its own work, so it escalates instead of confidently emitting a wrong result
Irreversible autonomous action — money out, data deletedCoarse input-required / auth-required task statesElicitation requests user input, but cannot enforce an approval gateThe model proposes; the host performs. High-blast-radius steps route through a first-class interrupt (kind: "approval") that suspends before the action. The host MUST refuse a resolver outside the listed approvers (and, where advertised, the named groups or roles), can require a quorum, and resumes deterministically. A reject fails closed: the raising node fails with approval_rejected (not retryable), and a rejected gate cannot satisfy a success edge, so the run continues only over an edge that admits a failed source (interrupt.md)
Over-broad toolbox — every tool is a way to go wrongTools hidden behind the agent; not the caller's to scopetools/list exposes the catalog, but scoping is host/server policyPortable tool catalog listing only the tools the caller may invoke. The host assigns each tool's safety tier, replay policy, and egress itself, never copying them from an MCP server's annotations, which are untrusted; an MCP tool it has not classified counts as write (tool-catalog.md). Per-tool authorization hooks sit on top, and a credential received inbound is never forwarded to an A2A, MCP, or webhook hop
Prompt injection — poisoned input redirects the agentTrust boundary between agents; in-agent injection is opaque to the callerTool/server output flows to the host; trust handling is the host's responsibilityA documented threat model with conformance-tested invariants: external content (user input, retrieved knowledge, prior artifacts, and MCP/tool output) carries an untrusted trust marker, and — critically — untrusted tool/MCP output cannot advance an approval gate. A run started through the MCP mount starts untrusted

The takeaway reinforces the layered reading of the rest of this comparison. None of these controls make A2A or MCP worse at what they do — A2A still owns agent collaboration, MCP still owns tool/context integration. But the moment an agent runs unattended against real systems, the production question becomes "what bounds the loop, and what stops it before the irreversible step?" — and that is the workflow-control layer's job. OpenWOP's contribution here is not that it makes the model more reliable (no protocol does); it is that when a run goes long, costs too much, loops forever, or reaches for an irreversible action, that fact is observable on the event stream and, for the irreversible case, stopped at a fail-closed gate.

Strengths and Weaknesses

ProtocolStrengthsWeaknesses / open questions
A2AStrong abstraction for independent agent collaboration. Agent Card creates a clear discovery and capability surface. Supports long-running and human-in-the-loop task interaction without exposing internals. Good fit for cross-vendor agent ecosystems and skill marketplaces.Not designed to standardize internal workflow graphs, replay, or node-level traces. Tool invocation is hidden behind agent behavior unless paired with MCP or another tool protocol. Task states are intentionally coarse compared with a workflow engine.
MCPBest protocol for connecting models/apps to tools, data, prompts, and APIs. Simple JSON-RPC interaction model with dynamic capability discovery. Works locally via stdio and remotely via Streamable HTTP. Widely adopted mental model: “USB-C for AI tool/context integration.”Does not define agent-to-agent task delegation. Does not define durable workflow orchestration, replay, or full run audit semantics. Security posture depends heavily on host trust, server trust, local process isolation, tool metadata validation, and transport authorization.
OpenWOPStrongest durable execution, replay, event-log, and observability model. Rich human checkpoint and interrupt semantics. Conformance-oriented approach for workflow-host portability. Composes naturally with both A2A and MCP.Heavier implementation burden than A2A or MCP. Not a replacement for an agent-to-agent messaging protocol. Not a replacement for MCP’s direct tool/context integration surface. Requires durable host infrastructure to realize its full value. Every host measured so far is run by the steward or a steward-affiliated organization; and its current-A2A and current-MCP compatibility claims both still wait on a result against a real upstream peer.

Use Case Fit

ScenarioBest fitWhy
Agent-to-agent collaborationA2ADesigned specifically for independent agents exchanging messages and tasks.
Tool/API/data-source integrationMCPTools, resources, and prompts are MCP’s core primitives.
Durable multi-step AI workflowOpenWOPRun lifecycle, event log, interrupts, replay, and observability are central.
Human approval flowsOpenWOPFirst-class interrupts and resume semantics beat coarse task states or tool elicitation.
Simple remote specialist agent invocationA2ALower-level workflow details do not need to be exposed.
Local filesystem/database/SaaS tool access from an AI appMCPMCP servers expose these as tools/resources over stdio or HTTP.
Workflow replay, fork, time-travel debugOpenWOPA2A and MCP do not define this as a core lifecycle.
Agent marketplace or skill catalogA2AAgent Cards and skills are the natural marketplace metadata unit.
Enterprise agent platformAll threeA2A for external agents, MCP for tools/context, OpenWOP for durable orchestration.
Secure tool execution inside audited workflowMCP+OpenWOPMCP invokes the tool; OpenWOP governs run-level policy, event log, human approval, and traceability.
Cross-vendor interoperabilityLayer-specificA2A for agents, MCP for tools/context servers, OpenWOP for workflow hosts.

Integration Possibilities

The strongest architecture treats the three protocols as composable layers rather than alternatives.

Pattern 1: OpenWOP host exposed as an A2A agent

An OpenWOP host can publish an A2A Agent Card. Each workflow can be advertised as an A2A skill. An incoming A2A message creates an OpenWOP run. Run events are projected into A2A task status updates. Run artifacts become A2A artifacts.

In v2 this projection is normative, not just a design option. spec/v2/core/interop.md and its operation map (RFC 0208) pin it to A2A 1.0.1:

  • the card lists one skill per invocable workflow, with skills[].id set to the routed workflowId;
  • SendMessage maps to createRun, or resolves an open interrupt when it names a waiting task;
  • GetTask, ListTasks and CancelTask map to getRun, listRuns and cancelRun;
  • a task the caller could not read through getRun is answered exactly as a nonexistent one;
  • SubscribeToTask re-attaches to a run's event stream, which needs the host's a2a.durableTasks and a2a.streaming facets;
  • a run suspended on a credential interrupt projects to the A2A auth-required state (RFC 0199);
  • an A2A error carries a google.rpc.ErrorInfo detail, and an A2A interface never answers in the OpenWOP error envelope (RFC 0211).

A host MAY also publish each inventoried agent as its own Agent Card (RFC 0202). It MAY serve a run artifact in the A2A Artifact/Part shape when the client negotiates application/a2a+json (RFC 0205). A2A push notifications are handled as webhook egress (RFC 0214). All of this is advertised through the optional a2a facet. The corpus makes no current-A2A compatibility claim yet: the v2 A2A 1.0 legs run against the conformance suite's own fake peer, the claim requires a result against a real upstream peer, and that result is still externally gated.

A2A conceptOpenWOP projection
Agent CardHost metadata plus workflow catalog
AgentSkillWorkflowDefinition
MessageRun input
TaskRun
Task status updateRun event or run snapshot
ArtifactWorkflow artifact
Input requiredOpenWOP interrupt, approval, or clarification
Auth requiredOpenWOP credential interrupt

Pattern 2: OpenWOP workflow calls MCP tools

Inside a workflow run, worker nodes can call MCP servers for tool execution or resource retrieval. This keeps MCP at the tool/context boundary while OpenWOP governs run-level durability, state, observability, retry behavior, and approvals.

v2 gives this direction a normative home as well. A host advertising mcp.client exposes ctx.mcp.callTool, listTools, readResource and serverHealth to pack code (host-services.md). Each call is made against a host-configured server at the negotiated revision, and returns the server's MCP result unaltered, including an isError result (RFC 0204). A remote node-pack runtime can also name its MCP server by an inline subset of its MCP Registry record. That subset carries no install instructions and no credential values (RFC 0203). When an MCP server needs an OAuth grant, the host is the OAuth client: it runs PKCE, holds the credential itself, and can suspend the run on a credential interrupt until a user connects the account (RFC 0199, now Accepted provisionally). As with A2A, the corpus makes no current-MCP compatibility claim yet: that claim requires a result against a pinned real peer, and that result is still externally gated.

OpenWOP workflow needMCP role
Read external system stateExpose resource or tool call
Execute a business operationExpose action as an MCP tool
Use a reusable instruction templateExpose prompt primitive
Ask user for missing tool inputUse MCP elicitation, optionally wrapped in OpenWOP interrupt

Pattern 3: A2A agent backed by MCP and OpenWOP

A specialist agent can expose a simple A2A interface while internally using MCP to call actual systems and OpenWOP to coordinate the work. This is likely the cleanest enterprise pattern because it separates the public contract from internal execution and integration details.

Adapter responsibilities

Adapter concernMapping / design choice
DiscoveryExpose OpenWOP workflows as A2A skills; expose MCP server primitives to workflow node catalogs.
InvocationMap A2A SendMessage to OpenWOP POST /runs; map OpenWOP tool nodes to MCP tools/call.
IdentityPropagate caller identity from A2A through OpenWOP run metadata and into MCP tool authorization where appropriate.
StateProject OpenWOP run states into A2A task states; preserve extra detail in metadata.
Human-in-the-loopMap OpenWOP interrupts to A2A input-required states and/or MCP elicitation depending on where the user interaction belongs.
ObservabilityPreserve trace IDs across A2A, MCP, and OpenWOP calls. v2 specifies the carrier: params._meta on an MCP request, Message.metadata.openwop.traceparent on an A2A message, or the HTTP traceparent header (RFC 0207).
SecurityDo not let MCP tool metadata implicitly escalate privileges; enforce host/workflow policy before tool invocation.

Final Recommendations

Decision checklist

QuestionLikely answer
Do we need one agent to call another independent agent?A2A
Do we need the agent to call external tools or read external data?MCP
Do we need durable, replayable, observable workflow execution?OpenWOP
Do we need human approval gates with deterministic resume?OpenWOP
Do we need a simple integration between an AI app and a database/API/filesystem?MCP
Do we want remote agents to remain implementation-opaque?A2A
Do we want to expose workflows as agent skills?A2A+OpenWOP
Do we want audited tool execution inside durable workflows?MCP+OpenWOP
Do we want a complete enterprise agent platform?A2A+MCP+OpenWOP

Sources

The analysis distinguishes specification-grounded claims from architectural interpretation. These are the primary source documents consulted.

Not substitutes. A layered protocol stack.

A2A, MCP, and OpenWOP are best viewed as a layered protocol stack. A2A lets agents collaborate. MCP lets agents and AI applications use tools and context. OpenWOP makes multi-step agentic work durable, observable, interruptible, replayable, and portable.