{
  "title": "MCP Tools vs A2A Skills",
  "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": 12,
  "records": [
    {
      "Dimension": "Definition",
      "MCP Tool": "Named capability with input schema that a client can invoke",
      "A2A Skill": "Descriptive ability the agent advertises in its Agent Card",
      "Interpretation": "A skill is not necessarily one RPC method.",
      "id": "R8-SKL01",
      "packageSourceIds": [
        "S003",
        "S005",
        "S041"
      ],
      "sourceIds": [
        "S339",
        "S341",
        "S123"
      ]
    },
    {
      "Dimension": "Granularity",
      "MCP Tool": "Usually bounded and operation-shaped",
      "A2A Skill": "May describe a broader outcome or domain behavior",
      "Interpretation": "One skill may use many tools.",
      "id": "R8-SKL02",
      "packageSourceIds": [
        "S003",
        "S005",
        "S041"
      ],
      "sourceIds": [
        "S339",
        "S341",
        "S123"
      ]
    },
    {
      "Dimension": "Schema",
      "MCP Tool": "JSON Schema inputSchema; optional outputSchema",
      "A2A Skill": "Input/output modes and descriptive metadata; message parts carry actual inputs",
      "Interpretation": "A2A does not require every skill to map to a function schema.",
      "id": "R8-SKL03",
      "packageSourceIds": [
        "S003",
        "S005",
        "S041"
      ],
      "sourceIds": [
        "S339",
        "S341",
        "S123"
      ]
    },
    {
      "Dimension": "Selection",
      "MCP Tool": "Host/model selects from listed tools",
      "A2A Skill": "Client selects an agent and skill suitability, then sends a Message",
      "Interpretation": "A2A agent retains more execution discretion.",
      "id": "R8-SKL04",
      "packageSourceIds": [
        "S003",
        "S005",
        "S041"
      ],
      "sourceIds": [
        "S339",
        "S341",
        "S123"
      ]
    },
    {
      "Dimension": "Execution owner",
      "MCP Tool": "MCP server executes or delegates the operation",
      "A2A Skill": "Remote agent owns how the skill is fulfilled",
      "Interpretation": "Internal tools remain opaque unless separately exposed.",
      "id": "R8-SKL05",
      "packageSourceIds": [
        "S003",
        "S005",
        "S041"
      ],
      "sourceIds": [
        "S339",
        "S341",
        "S123"
      ]
    },
    {
      "Dimension": "Result",
      "MCP Tool": "CallToolResult content/structuredContent or Task extension handle",
      "A2A Skill": "Direct Message, Task status and Artifacts",
      "Interpretation": "Artifacts are durable task deliverables.",
      "id": "R8-SKL06",
      "packageSourceIds": [
        "S003",
        "S005",
        "S041"
      ],
      "sourceIds": [
        "S339",
        "S341",
        "S123"
      ]
    },
    {
      "Dimension": "Side effects",
      "MCP Tool": "May be read-only or destructive",
      "A2A Skill": "May involve multi-step external actions",
      "Interpretation": "Both require authorization beyond descriptions.",
      "id": "R8-SKL07",
      "packageSourceIds": [
        "S003",
        "S005",
        "S041"
      ],
      "sourceIds": [
        "S339",
        "S341",
        "S123"
      ]
    },
    {
      "Dimension": "Discovery",
      "MCP Tool": "tools/list or progressive discovery mechanisms",
      "A2A Skill": "Agent Card skills array",
      "Interpretation": "Agent Card also advertises interfaces and security.",
      "id": "R8-SKL08",
      "packageSourceIds": [
        "S003",
        "S005",
        "S041"
      ],
      "sourceIds": [
        "S339",
        "S341",
        "S123"
      ]
    },
    {
      "Dimension": "Versioning",
      "MCP Tool": "Governed by MCP protocol and server implementation",
      "A2A Skill": "Agent Card advertises protocol versions/interfaces; skill IDs are application-defined",
      "Interpretation": "Neither guarantees semantic stability of business behavior.",
      "id": "R8-SKL09",
      "packageSourceIds": [
        "S003",
        "S005",
        "S041"
      ],
      "sourceIds": [
        "S339",
        "S341",
        "S123"
      ]
    },
    {
      "Dimension": "Best use",
      "MCP Tool": "Search, create issue, query database, execute command",
      "A2A Skill": "Plan travel, investigate incident, negotiate supply, conduct review",
      "Interpretation": "Outcome scope is the key distinction.",
      "id": "R8-SKL10",
      "packageSourceIds": [
        "S003",
        "S005",
        "S041"
      ],
      "sourceIds": [
        "S339",
        "S341",
        "S123"
      ]
    },
    {
      "Dimension": "Security risk",
      "MCP Tool": "Tool poisoning, excessive permissions, unsafe arguments",
      "A2A Skill": "Skill misrepresentation, delegation abuse, identity spoofing",
      "Interpretation": "Metadata is evidence, not proof of safe behavior.",
      "id": "R8-SKL11",
      "packageSourceIds": [
        "S003",
        "S005",
        "S041"
      ],
      "sourceIds": [
        "S339",
        "S341",
        "S123"
      ]
    },
    {
      "Dimension": "Composition",
      "MCP Tool": "A host can combine many tools",
      "A2A Skill": "A remote agent may combine tools and sub-workflows",
      "Interpretation": "A2A delegates responsibility rather than exposing every step.",
      "id": "R8-SKL12",
      "packageSourceIds": [
        "S003",
        "S005",
        "S041"
      ],
      "sourceIds": [
        "S339",
        "S341",
        "S123"
      ]
    }
  ]
}