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.