Well-Known Agent Files
Detects MCP server cards, A2A agent cards, and agent-skills manifests
Detects the newer generation of .well-known machine-readable agent descriptors: an MCP server card (SEP-1649), an A2A agent card, or an agent-skills manifest. These let an agent discover, without a human in the loop, that a site exposes an MCP endpoint, an A2A-compatible agent, or a packaged set of skills it can use.
| Rule ID | ax/well-known-agent |
| Category | Agent Experience |
| Scope | Site-wide |
| Severity | info |
| Weight | 1/10 |
What it checks
The audit probes, once per crawl, for:
- MCP server card:
/.well-known/mcp/server-card.json, plus the variants/.well-known/mcp.json,/.well-known/mcp, and/.well-known/mcp-server. - A2A agent card:
/.well-known/agent-card.json. - agent-skills manifest:
/.well-known/agent-skills/index.json.
For each, it reports presence, whether the body parses as valid JSON, and a summary of declared capabilities where the schema makes that straightforward. It also checks for /.well-known/ai-plugin.json, the deprecated OpenAI plugin manifest format: if present, it’s flagged as stale — the plugin system it described was retired, and a lingering manifest is more likely to confuse a modern agent than help it.
Solution
If the site backs an MCP server, an A2A-compatible agent, or a packaged skill set, publish the corresponding manifest at its .well-known path so agents can discover it without prior knowledge of your API:
{
"name": "example-mcp",
"version": "1.0.0",
"description": "MCP server for Example Co's API",
"endpoint": "https://example.com/mcp"
}Remove any leftover /.well-known/ai-plugin.json from the ChatGPT-plugins era — it’s dead weight now, not a discoverability signal.
Enable / Disable
Disable this rule
[rules]
disable = ["ax/well-known-agent"]Disable all Agent Experience rules
[rules]
disable = ["ax/*"]Enable only this rule
[rules]
enable = ["ax/well-known-agent"]
disable = ["*"]