Interoperability Adapters (MCP, A2A)¶
Status: Draft (Extension — v1.1 Preview)
Last Updated: 2026-02-26
Not required for ACGP v1.0 Standard or Safety-Critical conformance.
Abstract¶
The Interoperability Adapters extension defines adapters that map ACGP cognitive traces and governance outcomes to external agent ecosystems such as MCP and A2A. The goal is protocol interoperability without losing governance semantics.
Key Concepts (Preview)¶
- MCP trace mapping: Deterministic conversion between ACGP trace fields and MCP request/response structures.
- A2A governance propagation: Standard governance headers preserved across delegated agent calls.
- Delegation-chain preservation: Parent trace IDs and intervention lineage survive cross-system handoffs.
- Adapter capability profile: Adapters declare which message classes and intervention semantics they preserve losslessly.
Hook Point¶
Core interchange basis in ACGP-1: Cognitive Trace as universal exchange format.
Status¶
Planned for v1.1 expansion. v1.0 implementations exchange cognitive traces only via the native ACGP envelope. External adapters are outside v1.0 scope.
Implementations MAY provide this interface. If not provided, the core hook MUST be a no-op (cross-system message fields are silently ignored).
Interface Signature¶
from typing import Protocol, Optional, Dict, Any
from dataclasses import dataclass
@dataclass
class AdapterCapability:
protocol: str # "mcp" or "a2a"
version: str
lossless_messages: list # e.g., ["TRACE", "INTERVENTION"]
lossless_decisions: list # e.g., ["ok", "block", "halt"]
class InteropAdapter(Protocol):
"""Adapter for cross-protocol governance propagation."""
def capabilities(self) -> AdapterCapability: ...
def to_external(
self,
acgp_message: Dict[str, Any],
) -> Dict[str, Any]:
"""Convert ACGP envelope to external protocol format."""
...
def from_external(
self,
external_message: Dict[str, Any],
) -> Dict[str, Any]:
"""Convert external protocol message to ACGP envelope."""
...
Reserved Wire Field¶
| Field | Type | Location | Description |
|---|---|---|---|
interop_metadata |
object | TRACE/INTERVENTION payload | Cross-system trace lineage and adapter metadata |
Minimal Forward-Compatible Example¶
{
"interop_metadata": {
"source_protocol": "mcp",
"source_version": "2024-11-05",
"parent_trace_id": "mcp-trace-abc123",
"adapter": "acgp-mcp-adapter@0.1.0"
}
}
v1.0 keeps this boundary reserved and non-breaking. Full normative adapter contracts are planned for v1.1.