{
  "title": "Combined MCP and A2A Reference Architectures",
  "schemaVersion": "1.0",
  "researchFreeze": "2026-08-26",
  "protocolRevision": "MCP 2026-07-28 / A2A 1.0",
  "mcpRevision": "2026-07-28",
  "a2aCompatibilityLine": "1.0",
  "a2aWebsiteSpecificationLabel": "1.0.0",
  "a2aRepositoryPatchTag": "v1.0.1",
  "a2aVersionSemantics": "A2A negotiates major.minor 1.0; patch tags identify specification releases and are not negotiated.",
  "count": 8,
  "records": [
    {
      "Architecture": "Single agent with tools",
      "A2A use": "None",
      "MCP use": "Agent host connects to database, repository, filesystem and SaaS MCP servers",
      "Why": "Remote components are bounded capabilities, not peer agents.",
      "id": "R8-ARCH01",
      "packageSourceIds": [
        "S004",
        "S022",
        "S038"
      ],
      "sourceIds": [
        "S340",
        "S356",
        "S054"
      ]
    },
    {
      "Architecture": "Multi-agent software delivery",
      "A2A use": "Coordinator delegates review to security and testing agents",
      "MCP use": "Each agent accesses Git, CI, issue tracker and scanners",
      "Why": "A2A governs delegation; MCP governs capability access.",
      "id": "R8-ARCH02",
      "packageSourceIds": [
        "S004",
        "S022",
        "S038"
      ],
      "sourceIds": [
        "S340",
        "S356",
        "S054"
      ]
    },
    {
      "Architecture": "Incident response",
      "A2A use": "Incident commander coordinates observability, database and remediation agents",
      "MCP use": "Specialist agents query logs/metrics and invoke approved remediation tools",
      "Why": "Preserves agent autonomy while constraining operational authority.",
      "id": "R8-ARCH03",
      "packageSourceIds": [
        "S004",
        "S022",
        "S038"
      ],
      "sourceIds": [
        "S340",
        "S356",
        "S054"
      ]
    },
    {
      "Architecture": "Travel planning",
      "A2A use": "Planner delegates to flight, hotel and itinerary agents",
      "MCP use": "Agents access booking, calendar, maps and payment-adjacent capabilities",
      "Why": "Different organizations may own agents and tools.",
      "id": "R8-ARCH04",
      "packageSourceIds": [
        "S004",
        "S022",
        "S038"
      ],
      "sourceIds": [
        "S340",
        "S356",
        "S054"
      ]
    },
    {
      "Architecture": "Enterprise research",
      "A2A use": "Research coordinator delegates to legal, market and technical agents",
      "MCP use": "Agents retrieve documents, databases and search systems",
      "Why": "Artifacts return through A2A; evidence comes through MCP resources/tools.",
      "id": "R8-ARCH05",
      "packageSourceIds": [
        "S004",
        "S022",
        "S038"
      ],
      "sourceIds": [
        "S340",
        "S356",
        "S054"
      ]
    },
    {
      "Architecture": "MCP façade over an agent",
      "A2A use": "Internal agent may collaborate with peers",
      "MCP use": "External host sees one bounded tool such as run_security_review",
      "Why": "Useful when caller wants a narrow contract, but hides richer task semantics.",
      "id": "R8-ARCH06",
      "packageSourceIds": [
        "S004",
        "S022",
        "S038"
      ],
      "sourceIds": [
        "S340",
        "S356",
        "S054"
      ]
    },
    {
      "Architecture": "A2A agent backed by MCP",
      "A2A use": "Remote agent advertises broad skill",
      "MCP use": "Agent internally discovers and calls capabilities",
      "Why": "Canonical complementary architecture.",
      "id": "R8-ARCH07",
      "packageSourceIds": [
        "S004",
        "S022",
        "S038"
      ],
      "sourceIds": [
        "S340",
        "S356",
        "S054"
      ]
    },
    {
      "Architecture": "Enterprise gateway for both",
      "A2A use": "Routes Agent Card and task traffic",
      "MCP use": "Routes tool/resource traffic",
      "Why": "Policies must remain protocol-aware; one generic “agent gateway” is insufficient.",
      "id": "R8-ARCH08",
      "packageSourceIds": [
        "S004",
        "S022",
        "S038"
      ],
      "sourceIds": [
        "S340",
        "S356",
        "S054"
      ]
    }
  ]
}