{
  "schema_version": 1,
  "name": "Agent composability compatibility matrix",
  "description": "Which AI agents an official source lists as supporting Agent Skills, AGENTS.md, the MCP Apps extension, the Skills over MCP extension and Agent2Agent (A2A). Each cell has a status, its source URL and the date of its last check.",
  "page": "https://agentcomposability.com/standards#matrix",
  "url": "https://agentcomposability.com/matrix.json",
  "last_checked": "2026-10-21",
  "status_values": {
    "listed": "An official source names the client as supporting the standard.",
    "not_listed": "The source that was checked does not name the client. This makes no claim either way."
  },
  "support_values": {
    "partial": "The source names the client and labels its support \"Partial\"."
  },
  "columns": [
    {
      "id": "agent-skills",
      "name": "Agent Skills",
      "standard": "https://agentskills.io/home",
      "source": {
        "title": "Agent Skills: Client Showcase",
        "url": "https://agentskills.io/clients"
      },
      "rule": "Listed when the Client Showcase names the client. The page describes its list as \"Agent products that support the Agent Skills format.\"",
      "checked": "2026-10-21"
    },
    {
      "id": "agents-md",
      "name": "AGENTS.md",
      "standard": "https://agents.md/",
      "source": {
        "title": "AGENTS.md: One AGENTS.md works across many agents",
        "url": "https://agents.md/"
      },
      "rule": "Listed when the compatibility list on agents.md names the client, or when the client's own documentation describes AGENTS.md support. The cell says which source applies.",
      "checked": "2026-10-21"
    },
    {
      "id": "mcp-apps",
      "name": "MCP Apps extension",
      "identifier": "io.modelcontextprotocol/ui",
      "standard": "https://modelcontextprotocol.io/extensions/apps/overview",
      "source": {
        "title": "Model Context Protocol: Extension Support Matrix",
        "url": "https://modelcontextprotocol.io/extensions/client-matrix"
      },
      "rule": "Listed when the Extension Support Matrix marks the client in its MCP Apps column. The matrix page says that the community maintains the list.",
      "checked": "2026-10-21"
    },
    {
      "id": "skills-over-mcp",
      "name": "Skills over MCP extension",
      "identifier": "io.modelcontextprotocol/skills",
      "standard": "https://modelcontextprotocol.io/extensions/skills/overview",
      "source": {
        "title": "Model Context Protocol: Extension Support Matrix",
        "url": "https://modelcontextprotocol.io/extensions/client-matrix"
      },
      "rule": "Listed when the Extension Support Matrix marks the client in its Skills column. The value \"partial\" copies the matrix label \"Partial\".",
      "checked": "2026-10-21"
    },
    {
      "id": "a2a",
      "name": "Agent2Agent (A2A)",
      "standard": "https://a2a-protocol.org/latest/",
      "source": {
        "title": "The documentation of each client",
        "url": null
      },
      "rule": "Listed when the client's own documentation describes A2A support. Each cell gives the documentation that was searched and how.",
      "checked": "2026-10-21"
    }
  ],
  "clients": [
    {
      "id": "claude-code",
      "name": "Claude Code",
      "search_names": [
        "Claude Code"
      ],
      "cells": {
        "agent-skills": {
          "status": "listed",
          "as_named": [
            "Claude Code"
          ],
          "source": "https://agentskills.io/clients",
          "checked": "2026-10-21"
        },
        "agents-md": {
          "status": "listed",
          "note": "Not on the agents.md list.",
          "evidence": "Claude Code can read AGENTS.md as your project instructions",
          "source": "https://code.claude.com/docs/en/memory#agents-md",
          "checked": "2026-10-21"
        },
        "mcp-apps": {
          "status": "not_listed",
          "note": "The matrix lists Claude (web) and Claude Desktop.",
          "source": "https://modelcontextprotocol.io/extensions/client-matrix",
          "checked": "2026-10-21"
        },
        "skills-over-mcp": {
          "status": "not_listed",
          "source": "https://modelcontextprotocol.io/extensions/client-matrix",
          "checked": "2026-10-21"
        },
        "a2a": {
          "status": "not_listed",
          "source": "https://code.claude.com/docs/en/overview",
          "method": "Full-text search of https://code.claude.com/docs/llms-full.txt for \"A2A\", \"Agent2Agent\" and \"agent-to-agent\". No match.",
          "checked": "2026-10-21"
        }
      }
    },
    {
      "id": "chatgpt-codex",
      "name": "ChatGPT and Codex",
      "search_names": [
        "ChatGPT",
        "Codex",
        "ChatGPT & Codex"
      ],
      "cells": {
        "agent-skills": {
          "status": "listed",
          "as_named": [
            "ChatGPT & Codex"
          ],
          "source": "https://agentskills.io/clients",
          "checked": "2026-10-21"
        },
        "agents-md": {
          "status": "listed",
          "as_named": [
            "Codex"
          ],
          "source": "https://agents.md/",
          "checked": "2026-10-21"
        },
        "mcp-apps": {
          "status": "listed",
          "as_named": [
            "ChatGPT"
          ],
          "source": "https://modelcontextprotocol.io/extensions/client-matrix",
          "checked": "2026-10-21"
        },
        "skills-over-mcp": {
          "status": "listed",
          "support": "partial",
          "as_named": [
            "ChatGPT"
          ],
          "source": "https://modelcontextprotocol.io/extensions/client-matrix",
          "checked": "2026-10-21"
        },
        "a2a": {
          "status": "not_listed",
          "source": "https://learn.chatgpt.com/docs",
          "also_searched": [
            "https://developers.openai.com/"
          ],
          "method": "Full-text search of https://learn.chatgpt.com/docs/llms-full.txt and https://developers.openai.com/llms-full.txt for \"A2A\", \"Agent2Agent\" and \"agent-to-agent\". No match.",
          "checked": "2026-10-21"
        }
      }
    },
    {
      "id": "cursor",
      "name": "Cursor",
      "search_names": [
        "Cursor"
      ],
      "cells": {
        "agent-skills": {
          "status": "listed",
          "as_named": [
            "Cursor"
          ],
          "source": "https://agentskills.io/clients",
          "checked": "2026-10-21"
        },
        "agents-md": {
          "status": "listed",
          "as_named": [
            "Cursor"
          ],
          "source": "https://agents.md/",
          "checked": "2026-10-21"
        },
        "mcp-apps": {
          "status": "listed",
          "as_named": [
            "Cursor"
          ],
          "source": "https://modelcontextprotocol.io/extensions/client-matrix",
          "checked": "2026-10-21"
        },
        "skills-over-mcp": {
          "status": "not_listed",
          "source": "https://modelcontextprotocol.io/extensions/client-matrix",
          "checked": "2026-10-21"
        },
        "a2a": {
          "status": "not_listed",
          "source": "https://cursor.com/docs",
          "method": "Full-text search of the 272 pages listed in https://cursor.com/llms.txt for \"A2A\", \"Agent2Agent\" and \"agent-to-agent\". No match.",
          "checked": "2026-10-21"
        }
      }
    },
    {
      "id": "github-copilot-vs-code",
      "name": "GitHub Copilot and VS Code",
      "search_names": [
        "GitHub Copilot",
        "VS Code",
        "VS Code GitHub Copilot",
        "Coding agent",
        "Visual Studio Code"
      ],
      "cells": {
        "agent-skills": {
          "status": "listed",
          "as_named": [
            "GitHub Copilot",
            "VS Code"
          ],
          "source": "https://agentskills.io/clients",
          "checked": "2026-10-21"
        },
        "agents-md": {
          "status": "listed",
          "as_named": [
            "Coding agent from GitHub Copilot",
            "VS Code"
          ],
          "source": "https://agents.md/",
          "checked": "2026-10-21"
        },
        "mcp-apps": {
          "status": "listed",
          "as_named": [
            "VS Code GitHub Copilot"
          ],
          "source": "https://modelcontextprotocol.io/extensions/client-matrix",
          "checked": "2026-10-21"
        },
        "skills-over-mcp": {
          "status": "not_listed",
          "source": "https://modelcontextprotocol.io/extensions/client-matrix",
          "checked": "2026-10-21"
        },
        "a2a": {
          "status": "not_listed",
          "source": "https://docs.github.com/en/copilot",
          "also_searched": [
            "https://code.visualstudio.com/docs/agents/overview"
          ],
          "method": "GitHub code search of the documentation repositories github/docs and microsoft/vscode-docs for \"A2A\", \"Agent2Agent\" and \"agent-to-agent\". The matches describe the Microsoft Agent Framework and Microsoft Foundry prompt agents in the Foundry Toolkit extension, not GitHub Copilot or VS Code.",
          "checked": "2026-10-07"
        }
      }
    },
    {
      "id": "gemini-cli",
      "name": "Gemini CLI",
      "search_names": [
        "Gemini CLI"
      ],
      "cells": {
        "agent-skills": {
          "status": "listed",
          "as_named": [
            "Gemini CLI"
          ],
          "source": "https://agentskills.io/clients",
          "checked": "2026-10-21"
        },
        "agents-md": {
          "status": "listed",
          "as_named": [
            "Gemini CLI"
          ],
          "source": "https://agents.md/",
          "checked": "2026-10-21"
        },
        "mcp-apps": {
          "status": "not_listed",
          "source": "https://modelcontextprotocol.io/extensions/client-matrix",
          "checked": "2026-10-21"
        },
        "skills-over-mcp": {
          "status": "not_listed",
          "source": "https://modelcontextprotocol.io/extensions/client-matrix",
          "checked": "2026-10-21"
        },
        "a2a": {
          "status": "listed",
          "note": "Remote subagents.",
          "evidence": "Gemini CLI supports connecting to remote subagents using the Agent-to-Agent (A2A) protocol.",
          "source": "https://geminicli.com/docs/core/remote-agents/",
          "checked": "2026-10-21"
        }
      }
    },
    {
      "id": "goose",
      "name": "goose",
      "search_names": [
        "goose",
        "Goose"
      ],
      "cells": {
        "agent-skills": {
          "status": "listed",
          "as_named": [
            "Goose"
          ],
          "source": "https://agentskills.io/clients",
          "checked": "2026-10-21"
        },
        "agents-md": {
          "status": "listed",
          "as_named": [
            "goose"
          ],
          "source": "https://agents.md/",
          "checked": "2026-10-21"
        },
        "mcp-apps": {
          "status": "listed",
          "as_named": [
            "Goose"
          ],
          "source": "https://modelcontextprotocol.io/extensions/client-matrix",
          "checked": "2026-10-21"
        },
        "skills-over-mcp": {
          "status": "not_listed",
          "source": "https://modelcontextprotocol.io/extensions/client-matrix",
          "checked": "2026-10-21"
        },
        "a2a": {
          "status": "not_listed",
          "source": "https://goose-docs.ai/docs/quickstart/",
          "method": "GitHub code search of aaif-goose/goose, the repository that holds the goose documentation, for \"A2A\", \"Agent2Agent\" and \"agent-to-agent\". No statement about A2A support.",
          "checked": "2026-10-07"
        }
      }
    }
  ]
}
