[
 {
  "slug": "airtable",
  "name": "Airtable",
  "domain": "airtable.com",
  "read": "2026-11-09",
  "score": 57,
  "grade": "C",
  "category": "Productivity",
  "summary": "Airtable provides official SDK packages and MCP registry listings, but lacks a published OpenAPI specification.",
  "layers": [
   "Discovery 14/18",
   "Access 32/58",
   "Usability 29/60",
   "Payments 0/0"
  ],
  "top": [
   "public-api (fail, 0/7, +5.2): No publicly reachable API surface detected (REST and GraphQL both absent or auth-gated)",
   "openapi-spec (fail, 0/7, +4): No OpenAPI/Swagger specification found",
   "oauth-support (fail, 0/5, +3.7): No OAuth 2.0 or OpenID Connect support detected",
   "scoped-permissions (fail, 0/5, +3.7): No declared OAuth scopes, security schemes, or scoped-permission documentation found",
   "webmcp (fail, 0/5, +3.7): No WebMCP support detected - no document.modelContext / navigator.modelContext usage found (scanned 34 of 34 same-origin script bundle(s) for modelContext registrations)",
   "brand-search-accuracy (warning, 1/3, +2.5): airtable.com ranks #8 for \"Airtable\" (searched your brand name alone: no main product term from your homepage qualified)"
  ],
  "seen": {
   "brand-search-accuracy": "airtable.com ranks #8 for \"Airtable\" (searched your brand name alone: no main product term from your homepage qualified)",
   "wikipedia-presence": "Wikipedia \"Airtable\" and Wikidata Q23016614 both verified - domain confirmed on both sources",
   "robots-ai-policy-quality": "AI search crawlers: allowed in 3 of 3 checks (3 crawlers on 1 page). AI training crawlers: allowed in 2 of 2 checks (2 crawlers on 1 page), not scored.",
   "noindex-directives": "No noindex on the homepage: no robots, googlebot or bingbot meta tag and no X-Robots-Tag header hides it from search.",
   "sitemap": "Valid sitemap found at https://www.airtable.com/sitemap.xml with 3118 entries",
   "content-no-js": "Homepage: 3008 chars with H1, but 5.0% content ratio is below the 5% target. 5 of 5 sampled inner pages have text without JavaScript.",
   "bot-detection": "Site accessible to 4 agent user-agents (ChatGPT-User, OAI-SearchBot, Claude-User, PerplexityBot).",
   "agent-discovery-file": "No agent discovery file found",
   "a2a-agent-card": "No A2A agent card found at /.well-known/agent-card.json",
   "mcp-well-known-discovery": "MCP server at https://mcp.airtable.com/mcp - list its server card, hosted on your own domain, in /.well-known/ai-catalog.json so MCP clients can discover it",
   "robots-agent-user-policy": "No applicable crawl or usage restriction found for 3 user-triggered agents (chatgpt-user, claude-user,",
   "llms-txt-exists": "No llms.txt found at /llms.txt or /.well-known/llms.txt.",
   "llms-txt-formatting": "No llms.txt found to evaluate quality",
   "json-ld": "No JSON-LD structured data found on homepage",
   "public-api-docs": "API/docs link found on homepage and resolves: https://airtable.com/developers/web/api/introduction",
   "metadata-completeness": "All metadata signals present: canonical URL, lang=\"en\", og:image, og:type",
   "page-token-budget": "All 6 measured pages fit an agent context budget (largest ~3K tokens)",
   "docs-auth-gate": "All 5 sampled pages are publicly readable (5 with substantive content)",
   "openapi-spec": "No OpenAPI/Swagger specification found",
   "developer-portal": "Developer portal found at /developers",
   "markdown-negotiation": "Missing markdown content negotiation. Homepage returned text/html when probed with Accept: text/markdown (expected text/markdown),",
   "agent-ua-markdown": "No probed bot User-Agent (ChatGPT-User, Claude-User, Perplexity-User) receives markdown when requesting HTML.",
   "agent-crawler-reachability": "Reachable to every agent we tested - ChatGPT-User: reachable, OAI-SearchBot: reachable, Claude-User: reachable, PerplexityBot: reachable",
   "public-api": "No publicly reachable API surface detected (REST and GraphQL both absent or auth-gated)",
   "oauth-support": "No OAuth 2.0 or OpenID Connect support detected",
   "mcp-server": "MCP server detected at https://mcp.airtable.com/mcp; it requires authentication. Presence is verified (5/6),",
   "webmcp": "No WebMCP support detected - no document.modelContext / navigator.modelContext usage found (scanned 34 of 34 same-origin script bundle(s) for modelContext.",
   "cli-tool": "CLI package found on npm: @airtable/blocks-cli",
   "rest-sdk-packages": "SDK package found only in npm",
   "nlweb-ask": "No NLWeb-conformant /ask endpoint found via GET or POST",
   "mpp-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "x402-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "ucp-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "acp-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "ap2-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites"
  }
 },
 {
  "slug": "amplitude",
  "name": "Amplitude",
  "domain": "amplitude.com",
  "read": "2026-11-09",
  "score": 91,
  "grade": "A",
  "category": "Data & Analytics",
  "summary": "Amplitude offers strong discovery and zero-auth llms.txt access, and returning JSON error responses from its API would round out agent support.",
  "layers": [
   "Discovery 21/21",
   "Access 59/64",
   "Usability 90/104",
   "Payments 0/0"
  ],
  "top": [
   "json-error-responses (fail, 0/4, +1.7): API does not return JSON error responses (or no API detected)",
   "idempotency-key-support (fail, 0/3, +1.3): No REST Idempotency-Key support detected",
   "json-ld-entity-linking (fail, 0/2, +1): No sameAs entity linking in JSON-LD - agents cannot disambiguate your brand",
   "api-versioning-policy (warning, 1/3, +0.9): Deprecation or versioning policy mentioned in prose at https://amplitude.com/docs/llms.txt - formalize in OpenAPI spec for full credit",
   "rate-limit-headers (fail, 0/2, +0.9): No REST rate-limit headers found on probed endpoints",
   "content-no-js (warning, 2/3, +0.5): Homepage: 3989 chars with H1, but 4.9% content ratio is below the 5% target. 5 of 5 sampled inner pages have text without JavaScript."
  ],
  "seen": {
   "brand-search-accuracy": "amplitude.com ranks #3 for \"Amplitude Session Replay\" and #4 for \"Amplitude Product Analytics\"",
   "wikipedia-presence": "Wikidata Q81969219 (Amplitude) verified - draft a Wikipedia page with cited references to complete knowledge graph coverage",
   "robots-ai-policy-quality": "AI search crawlers: allowed in 18 of 18 checks (3 crawlers on 6 pages). AI training crawlers: allowed in 12 of 12 checks (2 crawlers on 6 pages), not scored.",
   "noindex-directives": "No noindex on the homepage: no robots, googlebot or bingbot meta tag and no X-Robots-Tag header hides it from search.",
   "sitemap": "Valid sitemap found at https://amplitude.com/sitemap.xml with multiple sitemaps entries",
   "content-no-js": "Homepage: 3989 chars with H1, but 4.9% content ratio is below the 5% target. 5 of 5 sampled inner pages have text without JavaScript.",
   "bot-detection": "Site accessible to 4 agent user-agents (ChatGPT-User, OAI-SearchBot, Claude-User, PerplexityBot).",
   "agent-discovery-file": "Agent Skills index (agentskills.io) found at /.well-known/agent-skills/index.json with 1 skill(s)",
   "a2a-agent-card": "No A2A agent card found at /.well-known/agent-card.json",
   "mcp-well-known-discovery": "MCP server discoverable via server-card.json at /.well-known/mcp/",
   "robots-agent-user-policy": "No applicable crawl or usage restriction found for 3 user-triggered agents (chatgpt-user, claude-user,",
   "llms-txt-exists": "Found the llms.txt at https://amplitude.com/llms.txt.",
   "llms-txt-formatting": "The llms.txt is well-formatted: 132 lines with markdown links, 16,613 characters in total.",
   "json-ld": "Rich JSON-LD identity: Organization with name, description, url, and sameAs/logo/address (2 block(s))",
   "public-api-docs": "Documentation site found at https://amplitude.com",
   "metadata-completeness": "All metadata signals present: canonical URL, lang=\"en-US\", og:image, og:type",
   "page-token-budget": "All 8 measured pages fit an agent context budget (largest ~3K tokens)",
   "docs-auth-gate": "All 5 sampled pages are publicly readable (5 with substantive content)",
   "openapi-spec": "OpenAPI spec found at https://amplitude.com/openapi.json (version: 3.1.0)",
   "developer-portal": "Developer portal found at /docs",
   "markdown-negotiation": "Path-suffix markdown docs served with text/markdown content-type: /mcp.md, /index.md",
   "agent-ua-markdown": "No probed bot User-Agent (ChatGPT-User, Claude-User, Perplexity-User) receives markdown when requesting HTML.",
   "agent-crawler-reachability": "Reachable to every agent we tested - ChatGPT-User: reachable, OAI-SearchBot: reachable, Claude-User: reachable, PerplexityBot: reachable",
   "public-api": "REST API documentation found at /docs/api. Best-of-protocols score: 7/7.",
   "oauth-support": "OAuth authorization server metadata at https://mcp.amplitude.com",
   "mcp-server": "MCP server detected at https://mcp.amplitude.com/mcp; it requires authentication. Presence is verified (5/6),",
   "webmcp": "Imperative WebMCP API detected (document.modelContext.registerTool in script bundle /_next/static/immutable/chunks/096gkahozd4jm.js).",
   "cli-tool": "CLI package found on npm: @amplitude/ampli",
   "rest-sdk-packages": "SDK packages found across 3 ecosystems: npm, go, rubygems",
   "nlweb-ask": "No NLWeb-conformant /ask endpoint found via GET or POST",
   "mpp-support": "No MPP (Machine Payments Protocol) support detected",
   "x402-support": "No x402 payment protocol support detected",
   "ucp-support": "no UCP (Universal Commerce Protocol) signals detected",
   "acp-support": "OPTIONS allows POST at https://api.amplitude.com/checkout_sessions but POST 404 returned no ACP response",
   "ap2-support": "No AP2 (Agent Payments Protocol) signals detected"
  }
 },
 {
  "slug": "anthropic",
  "name": "Anthropic",
  "domain": "anthropic.com",
  "read": "2026-11-09",
  "score": 63,
  "grade": "C",
  "category": "AI & ML",
  "summary": "Anthropic offers strong discovery and SDK coverage, but lacks a published OpenAPI specification for agents to consume.",
  "layers": [
   "Discovery 12/13",
   "Access 36/59",
   "Usability 30/60",
   "Payments 0/0"
  ],
  "top": [
   "mcp-server (fail, 0/6, +4.4): No MCP server or manifest found",
   "openapi-spec (fail, 0/7, +4): No OpenAPI/Swagger specification found",
   "webmcp (fail, 0/5, +3.7): No WebMCP support detected - no document.modelContext / navigator.modelContext usage found (scanned 40 of 40 same-origin script bundle(s) for modelContext registrations)",
   "mcp-app-registry (fail, 0/4, +3): No MCP Apps support detected - this product has an in-agent UI surface but exposes no ui:// resources or tool UI metadata for agents to render.",
   "public-api (warning, 3/7, +3): API described in documentation at https://platform.claude.com but no machine-verifiable API surface confirmed. Best-of-protocols score: 3/7.",
   "json-ld (fail, 0/4, +2.3): No JSON-LD structured data found on homepage"
  ],
  "seen": {
   "brand-search-accuracy": "anthropic.com ranks #2 for \"Anthropic\" (searched your brand name alone: no main product term from your homepage qualified)",
   "wikipedia-presence": "Wikidata Q116758847 (Anthropic) verified - draft a Wikipedia page with cited references to complete knowledge graph coverage",
   "robots-ai-policy-quality": "AI search crawlers: allowed in 3 of 3 checks (3 crawlers on 1 page). AI training crawlers: allowed in 2 of 2 checks (2 crawlers on 1 page), not scored.",
   "noindex-directives": "No noindex on the homepage: no robots, googlebot or bingbot meta tag and no X-Robots-Tag header hides it from search.",
   "sitemap": "Valid sitemap found at https://www.anthropic.com/sitemap.xml with 586 entries",
   "content-no-js": "Homepage: 1599 chars, semantic headings (1 H1 + 2 H2s + 7 H3s), 5.9% content ratio. 5 of 5 sampled inner pages have text without JavaScript.",
   "bot-detection": "Site accessible to 4 agent user-agents (ChatGPT-User, OAI-SearchBot, Claude-User, PerplexityBot).",
   "agent-discovery-file": "No agent discovery file found",
   "a2a-agent-card": "No A2A agent card found at /.well-known/agent-card.json",
   "mcp-well-known-discovery": "No MCP server URL discovered",
   "robots-agent-user-policy": "No applicable crawl or usage restriction found for 3 user-triggered agents (chatgpt-user, claude-user,",
   "llms-txt-exists": "Found the llms.txt at https://platform.claude.com/llms.txt.",
   "llms-txt-formatting": "The llms.txt is well-formatted with markdown links, but at 97,938 characters it exceeds the 30,000-character recommendation for a navigation index.",
   "json-ld": "No JSON-LD structured data found on homepage",
   "public-api-docs": "Documentation site found at https://platform.claude.com",
   "metadata-completeness": "All metadata signals present: canonical URL, lang=\"en\", og:image, og:type",
   "page-token-budget": "All 6 measured pages fit an agent context budget (largest ~4K tokens)",
   "docs-auth-gate": "All 5 sampled pages are publicly readable (5 with substantive content)",
   "openapi-spec": "No OpenAPI/Swagger specification found",
   "developer-portal": "Developer portal found at /docs",
   "markdown-negotiation": "Missing markdown content negotiation. Homepage returned text/html when probed with Accept: text/markdown (expected text/markdown),",
   "agent-ua-markdown": "No probed bot User-Agent (ChatGPT-User, Claude-User, Perplexity-User) receives markdown when requesting HTML.",
   "agent-crawler-reachability": "Reachable to every agent we tested - ChatGPT-User: reachable, OAI-SearchBot: reachable, Claude-User: reachable, PerplexityBot: reachable",
   "public-api": "API described in documentation at https://platform.claude.com but no machine-verifiable API surface confirmed. Best-of-protocols score: 3/7.",
   "oauth-support": "OAuth mentioned in documentation at https://platform.claude.com but no OAuth or OpenID Connect endpoint responded",
   "mcp-server": "No MCP server or manifest found",
   "webmcp": "No WebMCP support detected - no document.modelContext / navigator.modelContext usage found (scanned 40 of 40 same-origin script bundle(s) for modelContext.",
   "cli-tool": "CLI package found on npm: @anthropic-ai/sandbox-runtime",
   "rest-sdk-packages": "SDK packages found across 4 ecosystems: npm, pypi, go, rubygems",
   "nlweb-ask": "No NLWeb-conformant /ask endpoint found via GET or POST",
   "mpp-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "x402-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "ucp-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "acp-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "ap2-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites"
  }
 },
 {
  "slug": "asana",
  "name": "Asana",
  "domain": "asana.com",
  "read": "2026-11-09",
  "score": 74,
  "grade": "B",
  "category": "Productivity",
  "summary": "Asana offers excellent developer discoverability and SDK availability, but lacks an OpenAPI specification.",
  "layers": [
   "Discovery 17/18",
   "Access 48/61",
   "Usability 43/72",
   "Payments 0/0"
  ],
  "top": [
   "openapi-spec (fail, 0/7, +3.8): No OpenAPI/Swagger specification found",
   "webmcp (fail, 0/5, +3.1): No WebMCP support detected - no document.modelContext / navigator.modelContext usage found (scanned 64 of 64 same-origin script bundle(s) for modelContext registrations)",
   "cli-tool (fail, 0/3, +1.9): No CLI tool found",
   "graphql-error-type-definition (fail, 0/3, +1.9): GraphQL introspection auth-gated and no typed graphql error model documentation found on GraphQL-tagged pages",
   "idempotency-key-support (fail, 0/3, +1.9): GraphQL introspection auth-gated and no idempotency documentation found on GraphQL-tagged pages",
   "scoped-permissions (warning, 2/5, +1.9): Scoped permissions described at https://asana.com, but no machine-readable scope declaration found (OpenAPI oauth2 scopes or RFC 9728 scopes_supported)"
  ],
  "seen": {
   "brand-search-accuracy": "asana.com ranks #2 for \"Asana work management\"",
   "wikipedia-presence": "Wikipedia \"Asana, Inc.\" and Wikidata Q4468073 both verified - domain confirmed on both sources",
   "robots-ai-policy-quality": "AI search crawlers: allowed in 18 of 18 checks (3 crawlers on 6 pages). AI training crawlers: allowed in 12 of 12 checks (2 crawlers on 6 pages), not scored.",
   "noindex-directives": "No noindex on the homepage: no robots, googlebot or bingbot meta tag and no X-Robots-Tag header hides it from search.",
   "sitemap": "Valid sitemap found at https://asana.com/sitemap-index.xml with multiple sitemaps entries",
   "content-no-js": "7375 chars with H1, but heading hierarchy skips H1 to H4; 4.6% content ratio is below the 5% target",
   "bot-detection": "Site accessible to 4 agent user-agents (ChatGPT-User, OAI-SearchBot, Claude-User, PerplexityBot).",
   "agent-discovery-file": "No agent discovery file found",
   "a2a-agent-card": "No A2A agent card found at /.well-known/agent-card.json",
   "mcp-well-known-discovery": "MCP server at https://mcp.asana.com/mcp - list its server card, hosted on your own domain, in /.well-known/ai-catalog.json so MCP clients can discover it",
   "robots-agent-user-policy": "No applicable crawl or usage restriction found for 3 user-triggered agents (chatgpt-user, claude-user, perplexity-user) on 1 public page: https://asana.com/.",
   "llms-txt-exists": "Found the llms.txt at https://asana.com/llms.txt.",
   "llms-txt-formatting": "The llms.txt is well-formatted: 55 lines with markdown links, 5,691 characters in total.",
   "json-ld": "Rich JSON-LD identity: Organization with name, description, url, and sameAs/logo/address (1 block(s))",
   "public-api-docs": "Documentation site found at https://asana.com",
   "metadata-completeness": "All metadata signals present: canonical URL, lang=\"en\", og:image, og:type",
   "page-token-budget": "All 8 measured pages fit an agent context budget (largest ~2K tokens)",
   "docs-auth-gate": "All 5 sampled pages are publicly readable (5 with substantive content)",
   "openapi-spec": "No OpenAPI/Swagger specification found",
   "developer-portal": "Developer portal found at /developers",
   "markdown-negotiation": "Path-suffix markdown docs served with text/markdown content-type: /developers.md, /index.md",
   "agent-ua-markdown": "No probed bot User-Agent (ChatGPT-User, Claude-User, Perplexity-User) receives markdown when requesting HTML.",
   "agent-crawler-reachability": "Reachable to every agent we tested - ChatGPT-User: reachable, OAI-SearchBot: reachable, Claude-User: reachable, PerplexityBot: reachable",
   "public-api": "REST API documentation found at https://developers.asana.com/docs/. GraphQL endpoint at https://api.asana.com/graphql is reachable;",
   "oauth-support": "OAuth authorization server metadata at https://mcp.asana.com (issuer=https://mcp.asana.com)",
   "mcp-server": "MCP server detected at https://mcp.asana.com/mcp; it requires authentication. Presence is verified (5/6),",
   "webmcp": "No WebMCP support detected - no document.modelContext / navigator.modelContext usage found (scanned 64 of 64 same-origin script bundle(s) for modelContext.",
   "cli-tool": "No CLI tool found",
   "rest-sdk-packages": "SDK packages found across 3 ecosystems: npm, pypi, rubygems",
   "nlweb-ask": "No NLWeb-conformant /ask endpoint found via GET or POST",
   "mpp-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "x402-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "ucp-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "acp-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "ap2-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites"
  }
 },
 {
  "slug": "atlassian",
  "name": "Atlassian",
  "domain": "atlassian.com",
  "read": "2026-11-09",
  "score": 70,
  "grade": "B",
  "category": "Productivity",
  "summary": "Atlassian offers strong developer discoverability and an installable ChatGPT app, but lacks a published OpenAPI specification for agents to integrate against.",
  "layers": [
   "Discovery 16/17",
   "Access 41/58",
   "Usability 35/62",
   "Payments 0/0"
  ],
  "top": [
   "openapi-spec (fail, 0/7, +4): No OpenAPI/Swagger specification found",
   "scoped-permissions (fail, 0/5, +3.6): No declared OAuth scopes, security schemes, or scoped-permission documentation found",
   "webmcp (fail, 0/5, +3.6): No WebMCP support detected - no document.modelContext / navigator.modelContext usage found",
   "mcp-app-registry (fail, 0/4, +2.9): No MCP Apps support detected - this product has an in-agent UI surface but exposes no ui:// resources or tool UI metadata for agents to render.",
   "idempotency-key-support (fail, 0/3, +2.2): No GraphQL idempotency-key signal",
   "pricing-info (fail, 0/3, +1.7): No pricing page or pricing data found"
  ],
  "seen": {
   "brand-search-accuracy": "atlassian.com ranks #1 for \"Atlassian Issue Tracking\" and #3 for \"Atlassian Team Collaboration\"",
   "wikipedia-presence": "Wikipedia \"Atlassian\" and Wikidata Q757307 both verified - domain confirmed on both sources",
   "robots-ai-policy-quality": "AI search crawlers: allowed in 3 of 3 checks (3 crawlers on 1 page). AI training crawlers: allowed in 2 of 2 checks (2 crawlers on 1 page), not scored.",
   "noindex-directives": "No noindex on the homepage: no robots, googlebot or bingbot meta tag and no X-Robots-Tag header hides it from search.",
   "sitemap": "Valid sitemap found at https://www.atlassian.com/sitemap.xml with multiple sitemaps entries",
   "content-no-js": "Homepage: The homepage has little text without JavaScript (70 chars), though nothing in it shows it needs JavaScript to render.",
   "bot-detection": "Site accessible to 4 agent user-agents (ChatGPT-User, OAI-SearchBot, Claude-User, PerplexityBot).",
   "agent-discovery-file": "No agent discovery file found",
   "a2a-agent-card": "No A2A agent card found at /.well-known/agent-card.json",
   "mcp-well-known-discovery": "No MCP server URL discovered",
   "robots-agent-user-policy": "No applicable crawl or usage restriction found for 3 user-triggered agents (chatgpt-user, claude-user,",
   "llms-txt-exists": "Found the llms.txt at https://docs.atlassian.com/llms.txt.",
   "llms-txt-formatting": "The llms.txt is well-formatted: 122 lines with markdown links, 26,567 characters in total.",
   "json-ld": "Rich JSON-LD identity: Organization with name, description, url, and sameAs/logo/address (1 block(s))",
   "public-api-docs": "Documentation site found at https://docs.atlassian.com",
   "metadata-completeness": "All metadata signals present: canonical URL, lang=\"en\", og:image, og:type",
   "page-token-budget": "All 6 measured pages fit an agent context budget (largest ~4K tokens)",
   "docs-auth-gate": "All 5 sampled pages are publicly readable (3 with substantive content)",
   "openapi-spec": "No OpenAPI/Swagger specification found",
   "developer-portal": "Developer portal found at /developers",
   "markdown-negotiation": "Missing markdown content negotiation. Homepage returned text/html when probed with Accept: text/markdown (expected text/markdown),",
   "agent-ua-markdown": "No probed bot User-Agent (ChatGPT-User, Claude-User, Perplexity-User) receives markdown when requesting HTML.",
   "agent-crawler-reachability": "Reachable to every agent we tested - ChatGPT-User: reachable, OAI-SearchBot: reachable, Claude-User: reachable, PerplexityBot: reachable",
   "public-api": "REST API documentation found at https://developer.atlassian.com/. GraphQL endpoint at https://api.atlassian.com/graphql reachable but introspection disabled.",
   "oauth-support": "OpenID Connect discovery endpoint found at https://auth.atlassian.com",
   "mcp-server": "First-party MCP server published by product org (npm, @atlassian/mcp-compressor, 13545 score). Add live handshake at /.well-known/mcp for full credit.",
   "webmcp": "No WebMCP support detected - no document.modelContext / navigator.modelContext usage found",
   "cli-tool": "CLI tool mentioned in llms.txt",
   "rest-sdk-packages": "SDK packages found in npm, rubygems",
   "nlweb-ask": "NLWeb /ask endpoint exists but requires authentication (HTTP 403, via POST)",
   "mpp-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "x402-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "ucp-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "acp-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "ap2-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites"
  }
 },
 {
  "slug": "aws",
  "name": "Amazon Web Services",
  "domain": "aws.amazon.com",
  "read": "2026-11-09",
  "score": 60,
  "grade": "C",
  "category": "Infrastructure",
  "summary": "AWS offers strong developer resource discoverability and SDK packages, but lacks published OpenAPI specifications for agent integration.",
  "layers": [
   "Discovery 16/17",
   "Access 38/59",
   "Usability 27/68",
   "Payments 0/0"
  ],
  "top": [
   "openapi-spec (fail, 0/7, +4): No OpenAPI/Swagger specification found",
   "oauth-support (fail, 0/5, +3.3): No OAuth 2.0 or OpenID Connect support detected",
   "scoped-permissions (fail, 0/5, +3.3): No declared OAuth scopes, security schemes, or scoped-permission documentation found",
   "webmcp (fail, 0/5, +3.3): No WebMCP support detected - no document.modelContext / navigator.modelContext usage found",
   "json-error-responses (fail, 0/4, +2.6): API does not return JSON error responses (or no API detected)",
   "mcp-server (warning, 2/6, +2.6): MCP mentioned at https://aws.amazon.com/blogs/aws/the-aws-mcp-server-is-now-generally-available but no standard manifest endpoint found"
  ],
  "seen": {
   "brand-search-accuracy": "aws.amazon.com ranks #2 for \"Amazon Web Services, Inc. cloud computing\" (search term updated)",
   "wikipedia-presence": "Wikipedia \"Amazon Web Services\" and Wikidata Q456157 both verified - domain confirmed on both sources",
   "robots-ai-policy-quality": "AI search crawlers: allowed in 18 of 18 checks (3 crawlers on 6 pages). AI training crawlers: allowed in 12 of 12 checks (2 crawlers on 6 pages), not scored.",
   "noindex-directives": "No noindex on the homepage: no robots, googlebot or bingbot meta tag and no X-Robots-Tag header hides it from search.",
   "sitemap": "Valid sitemap found at https://aws.amazon.com/sitemaps/index/ with multiple sitemaps entries",
   "content-no-js": "Homepage: 4564 chars with H1, but 2.7% content ratio is below the 5% target. 5 of 5 sampled inner pages have text without JavaScript.",
   "bot-detection": "Site accessible to 4 agent user-agents (ChatGPT-User, OAI-SearchBot, Claude-User, PerplexityBot).",
   "agent-discovery-file": "No agent discovery file found",
   "a2a-agent-card": "No A2A agent card found at /.well-known/agent-card.json",
   "mcp-well-known-discovery": "No MCP server URL discovered",
   "robots-agent-user-policy": "No applicable crawl or usage restriction found for 3 user-triggered agents (chatgpt-user, claude-user,",
   "llms-txt-exists": "Found the llms.txt at https://docs.aws.amazon.com/llms.txt.",
   "llms-txt-formatting": "The llms.txt is well-formatted with markdown links, but at 411,652 characters it exceeds the 30,000-character recommendation for a navigation index.",
   "json-ld": "JSON-LD found (2 block(s)) but no identity type - use SoftwareApplication, Product, Organization, Person, or Article so agents can tell what this site is",
   "public-api-docs": "Documentation site found at https://docs.aws.amazon.com",
   "metadata-completeness": "3/4 metadata signals present - missing: og:image",
   "page-token-budget": "All 6 measured pages fit an agent context budget (largest ~4K tokens)",
   "docs-auth-gate": "All 5 sampled pages are publicly readable (5 with substantive content)",
   "openapi-spec": "No OpenAPI/Swagger specification found",
   "developer-portal": "Developer portal found at /developers",
   "markdown-negotiation": "Missing markdown content negotiation. Homepage returned text/html when probed with Accept: text/markdown (expected text/markdown),",
   "agent-ua-markdown": "No probed bot User-Agent (ChatGPT-User, Claude-User, Perplexity-User) receives markdown when requesting HTML.",
   "agent-crawler-reachability": "Reachable to every agent we tested - ChatGPT-User: reachable, OAI-SearchBot: reachable, Claude-User: reachable, PerplexityBot: reachable",
   "public-api": "API described in documentation at https://docs.aws.amazon.com but no machine-verifiable API surface confirmed.",
   "oauth-support": "No OAuth 2.0 or OpenID Connect support detected",
   "mcp-server": "MCP mentioned at https://aws.amazon.com/blogs/aws/the-aws-mcp-server-is-now-generally-available but no standard manifest endpoint found",
   "webmcp": "No WebMCP support detected - no document.modelContext / navigator.modelContext usage found",
   "cli-tool": "CLI tool found on PyPI: cloudformation-cli",
   "rest-sdk-packages": "SDK packages found across 4 ecosystems: npm, pypi, go, rubygems",
   "nlweb-ask": "No NLWeb-conformant /ask endpoint found via GET or POST",
   "mpp-support": "No MPP (Machine Payments Protocol) support detected",
   "x402-support": "No x402 payment protocol support detected",
   "ucp-support": "no UCP (Universal Commerce Protocol) signals detected",
   "acp-support": "no ACP (Agentic Commerce Protocol) signals detected",
   "ap2-support": "No AP2 (Agent Payments Protocol) signals detected"
  }
 },
 {
  "slug": "box",
  "name": "Box",
  "domain": "box.com",
  "read": "2026-11-09",
  "score": 80,
  "grade": "B",
  "category": "Productivity",
  "summary": "Box offers strong REST API access and comprehensive developer documentation, but lacks machine-readable OAuth2 scope declarations.",
  "layers": [
   "Discovery 12/16",
   "Access 38/45",
   "Usability 74/93",
   "Payments 0/0"
  ],
  "top": [
   "brand-search-accuracy (warning, 1/3, +2.8): box.com ranks #7 for \"Box content management\"",
   "schema-type-breadth (fail, 0/2, +1.5): No extended schema types found - AI can only answer basic questions about this entity",
   "ard-catalog (fail, 0/1, +1.4): No /.well-known/ard.json, no same-site rel=\"ard\" link, and no legacy /.well-known/ai-catalog.json",
   "graphql-error-type-definition (fail, 0/3, +1.4): GraphQL introspection auth-gated and no typed graphql error model documentation found on GraphQL-tagged pages",
   "idempotency-key-support (fail, 0/3, +1.4): GraphQL introspection auth-gated and no idempotency documentation found on GraphQL-tagged pages",
   "mcp-registry-listed (fail, 0/1, +1.4): No bi-directionally verified MCP registry entry found. To pass, either publish the server from a package whose homepage, repository or maintainer email names your domain,"
  ],
  "seen": {
   "brand-search-accuracy": "box.com ranks #7 for \"Box content management\"",
   "wikipedia-presence": "Wikidata Q4951483 (Box) verified - draft a Wikipedia page with cited references to complete knowledge graph coverage",
   "robots-ai-policy-quality": "AI search crawlers: allowed in 3 of 3 checks (3 crawlers on 1 page). AI training crawlers: allowed in 2 of 2 checks (2 crawlers on 1 page), not scored.",
   "noindex-directives": "No noindex on the homepage: no robots, googlebot or bingbot meta tag and no X-Robots-Tag header hides it from search.",
   "sitemap": "Valid sitemap found at https://www.box.com/sitemap.xml with multiple sitemaps entries",
   "content-no-js": "5226 chars with H1, but heading hierarchy skips H1 to H3",
   "bot-detection": "Site accessible to 4 agent user-agents (ChatGPT-User, OAI-SearchBot, Claude-User, PerplexityBot).",
   "agent-discovery-file": "Can't verify: a bot shield answered our request to box.com/agents.md (HTTP 403); box.com/skills.sh (HTTP 403) instead of the site.",
   "a2a-agent-card": "No A2A agent card found at /.well-known/agent-card.json",
   "mcp-well-known-discovery": "MCP server at https://mcp.box.com - list its server card, hosted on your own domain, in /.well-known/ai-catalog.json so MCP clients can discover it",
   "robots-agent-user-policy": "No applicable crawl or usage restriction found for 3 user-triggered agents (chatgpt-user, claude-user, perplexity-user) on 1 public page: https://box.com/.",
   "llms-txt-exists": "Found the llms.txt at https://docs.box.com/llms.txt.",
   "llms-txt-formatting": "The llms.txt is well-formatted: 56 lines with markdown links, 7,005 characters in total.",
   "json-ld": "Rich JSON-LD identity: Organization with name, description, url, and sameAs/logo/address (1 block(s))",
   "public-api-docs": "Documentation site found at https://docs.box.com",
   "metadata-completeness": "All metadata signals present: canonical URL, lang=\"en\", og:image, og:type",
   "page-token-budget": "1 of 3 measured pages exceed ~25K tokens of extracted text: https://developer.box.com/sample-code/ (~26K tokens).",
   "docs-auth-gate": "All 5 sampled pages are publicly readable (1 with substantive content)",
   "openapi-spec": "Can't verify: a bot shield answered our request to box.com/api-docs (HTTP 403); box.com/v2/api-docs (HTTP 403); box.com/v3/api-docs (HTTP 403),",
   "developer-portal": "Developer documentation portal found at https://docs.box.com",
   "markdown-negotiation": "Missing markdown content negotiation. Homepage returned text/html when probed with Accept: text/markdown (expected text/markdown),",
   "agent-ua-markdown": "No probed bot User-Agent (ChatGPT-User, Claude-User, Perplexity-User) receives markdown when requesting HTML.",
   "agent-crawler-reachability": "Reachable to every agent we tested - ChatGPT-User: reachable, OAI-SearchBot: reachable, Claude-User: reachable, PerplexityBot: reachable",
   "public-api": "REST API documentation found at https://docs.box.com/_llms/en/home.txt. GraphQL endpoint at https://api.box.com/v1/graphql is reachable;",
   "oauth-support": "OAuth authorization server metadata at https://api.box.com",
   "mcp-server": "MCP server detected at https://mcp.box.com; it requires authentication. Presence is verified (5/6),",
   "webmcp": "Could not fully read this page (only 0 of 1 same-origin script bundles could be read). Nothing that was read uses WebMCP, but the unread part could,",
   "cli-tool": "CLI package found on npm: @box/cli",
   "rest-sdk-packages": "SDK package found only in npm",
   "nlweb-ask": "NLWeb /ask endpoint exists but requires authentication (HTTP 403, via GET)",
   "mpp-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "x402-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "ucp-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "acp-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "ap2-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites"
  }
 },
 {
  "slug": "calendly",
  "name": "Calendly",
  "domain": "calendly.com",
  "read": "2026-11-09",
  "score": 72,
  "grade": "B",
  "category": "Productivity",
  "summary": "Calendly offers a published MCP server and passing access controls, but lacks a published OpenAPI specification for agents to discover its endpoints.",
  "layers": [
   "Discovery 11/18",
   "Access 44/61",
   "Usability 64/83",
   "Payments 0/0"
  ],
  "top": [
   "openapi-spec (fail, 0/7, +3.8): No OpenAPI/Swagger specification found",
   "webmcp (fail, 0/5, +2.7): No WebMCP support detected - no document.modelContext / navigator.modelContext usage found (scanned 1 of 1 same-origin script bundle(s) for modelContext registrations)",
   "agentic-search-specific (warning, 1/3, +2.5): In a search for your API docs, none of the 10 results is your official docs. In a search for your MCP server, SDK or CLI,",
   "brand-search-accuracy (warning, 1/3, +2.5): calendly.com ranks #7 for \"Calendly\" (searched your brand name alone: no main product term from your homepage qualified)",
   "rest-sdk-packages (fail, 0/3, +1.6): No SDK packages found across language ecosystems",
   "scoped-permissions (warning, 2/5, +1.6): Scoped permissions described at https://developer.calendly.com, but no machine-readable scope declaration found (OpenAPI oauth2 scopes or RFC 9728 scopes_supported)"
  ],
  "seen": {
   "brand-search-accuracy": "calendly.com ranks #7 for \"Calendly\" (searched your brand name alone: no main product term from your homepage qualified)",
   "wikipedia-presence": "Wikipedia \"Calendly\" and Wikidata Q111946817 both verified - domain confirmed on both sources",
   "robots-ai-policy-quality": "AI search crawlers: allowed in 18 of 18 checks (3 crawlers on 6 pages). AI training crawlers: allowed in 12 of 12 checks (2 crawlers on 6 pages), not scored.",
   "noindex-directives": "No noindex on the homepage: no robots, googlebot or bingbot meta tag and no X-Robots-Tag header hides it from search.",
   "sitemap": "Valid sitemap found at https://calendly.com/marketing-site/sitemap.xml with 1073 entries",
   "content-no-js": "Homepage: 9717 chars with H1, but 1.2% content ratio is below the 5% target. 5 of 5 sampled inner pages have text without JavaScript.",
   "bot-detection": "Site accessible to 4 agent user-agents (ChatGPT-User, OAI-SearchBot, Claude-User, PerplexityBot).",
   "agent-discovery-file": "No agent discovery file found",
   "a2a-agent-card": "No A2A agent card found at /.well-known/agent-card.json",
   "mcp-well-known-discovery": "MCP server referenced in llms.txt",
   "robots-agent-user-policy": "No applicable crawl or usage restriction found for 3 user-triggered agents (chatgpt-user, claude-user,",
   "llms-txt-exists": "Found the llms.txt at https://developer.calendly.com/llms.txt.",
   "llms-txt-formatting": "The llms.txt is well-formatted: 78 lines with markdown links, 11,889 characters in total.",
   "json-ld": "JSON-LD Organization found - missing description on this entity",
   "public-api-docs": "Documentation site found at https://developer.calendly.com",
   "metadata-completeness": "All metadata signals present: canonical URL, lang=\"en\", og:image, og:type",
   "page-token-budget": "All 6 measured pages fit an agent context budget (largest ~4K tokens)",
   "docs-auth-gate": "All 5 sampled pages are publicly readable (5 with substantive content)",
   "openapi-spec": "No OpenAPI/Swagger specification found",
   "developer-portal": "Developer portal found at /docs",
   "markdown-negotiation": "Missing markdown content negotiation. Homepage returned text/html when probed with Accept: text/markdown (expected text/markdown),",
   "agent-ua-markdown": "No probed bot User-Agent (ChatGPT-User, Claude-User, Perplexity-User) receives markdown when requesting HTML.",
   "agent-crawler-reachability": "Reachable to every agent we tested - ChatGPT-User: reachable, OAI-SearchBot: reachable, Claude-User: reachable, PerplexityBot: reachable",
   "public-api": "REST API documentation found at /reference. Best-of-protocols score: 7/7.",
   "oauth-support": "OAuth authorization server metadata at https://calendly.com/",
   "mcp-server": "MCP server detected at https://mcp.calendly.com; it requires authentication. Presence is verified (5/6),",
   "webmcp": "No WebMCP support detected - no document.modelContext / navigator.modelContext usage found (scanned 1 of 1 same-origin script bundle(s) for modelContext.",
   "cli-tool": "CLI tool mentioned at https://developer.calendly.com",
   "rest-sdk-packages": "No SDK packages found across language ecosystems",
   "nlweb-ask": "No NLWeb-conformant /ask endpoint found via GET or POST",
   "mpp-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "x402-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "ucp-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "acp-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "ap2-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites"
  }
 },
 {
  "slug": "canva",
  "name": "Canva",
  "domain": "canva.com",
  "read": "2026-11-09",
  "score": 42,
  "grade": "D",
  "category": "Productivity",
  "summary": "Bot detection turns agents away at the door, and the homepage shows no content without JavaScript.",
  "layers": [
   "Discovery 12/17",
   "Access 5/53",
   "Usability 35/68",
   "Payments 0/0"
  ],
  "top": [
   "openapi-spec (fail, 0/7, +4.4): No OpenAPI/Swagger specification found",
   "developer-portal (fail, 0/6, +3.8): No developer portal found",
   "scoped-permissions (fail, 0/5, +3.3): No declared OAuth scopes, security schemes, or scoped-permission documentation found",
   "webmcp (fail, 0/5, +3.3): No WebMCP support detected - no document.modelContext / navigator.modelContext usage found",
   "brand-search-accuracy (warning, 1/3, +2.6): canva.com ranks #9 for \"canva\" (searched your brand name alone: we could not read a product term from your site)",
   "json-ld (warning, 0/4, +2.5): Homepage blocked by WAF - cannot check structured data"
  ],
  "seen": {
   "brand-search-accuracy": "canva.com ranks #9 for \"canva\" (searched your brand name alone: we could not read a product term from your site)",
   "wikipedia-presence": "Wikipedia \"Canva\" and Wikidata Q23498528 both verified - domain confirmed on both sources",
   "robots-ai-policy-quality": "AI search crawlers: allowed in 3 of 3 checks (3 crawlers on 1 page). AI training crawlers: allowed in 0 of 2 checks (2 crawlers on 1 page), not scored.",
   "noindex-directives": "Homepage blocked by WAF - cannot read its indexing directives",
   "sitemap": "Valid sitemap found at https://sitemap.canva.com/sitemap_index.xml with multiple sitemaps entries",
   "content-no-js": "Homepage blocked by WAF/security challenge - content not accessible to agents",
   "bot-detection": "Bot management challenged ChatGPT-User, OAI-SearchBot, Claude-User, PerplexityBot. A challenge is an identity check that verified crawlers pass,",
   "agent-discovery-file": "No agent discovery file found",
   "a2a-agent-card": "No A2A agent card found at /.well-known/agent-card.json",
   "mcp-well-known-discovery": "MCP server at https://mcp.canva.com/mcp - list its server card, hosted on your own domain, in /.well-known/ai-catalog.json so MCP clients can discover it",
   "robots-agent-user-policy": "No applicable crawl or usage restriction found for 3 user-triggered agents (chatgpt-user, claude-user, perplexity-user) on 1 public page: https://canva.com/.",
   "llms-txt-exists": "No llms.txt found at /llms.txt or /.well-known/llms.txt.",
   "llms-txt-formatting": "No llms.txt found to evaluate quality",
   "json-ld": "Homepage blocked by WAF - cannot check structured data",
   "public-api-docs": "Homepage blocked by WAF - cannot check for docs links",
   "metadata-completeness": "Homepage blocked by WAF - cannot check metadata",
   "page-token-budget": "Nothing sampled to measure",
   "docs-auth-gate": "Site is behind a WAF/bot wall (scored by bot-detection) - cannot separate auth gating from bot blocking",
   "openapi-spec": "No OpenAPI/Swagger specification found",
   "developer-portal": "No developer portal found",
   "markdown-negotiation": "Missing markdown content negotiation. Homepage returned text/html when probed with Accept: text/markdown (expected text/markdown),",
   "agent-ua-markdown": "Site is behind a WAF/bot wall - cannot probe bot-UA serving",
   "agent-crawler-reachability": "Bot management challenged ChatGPT-User, OAI-SearchBot, Claude-User, PerplexityBot - a challenge is an identity check verified crawlers pass,",
   "public-api": "GraphQL endpoint at https://canva.com/graphql is reachable; introspection requires authentication (API key / OAuth), which is expected for agent access.",
   "oauth-support": "OAuth authorization server metadata at https://mcp.canva.com",
   "mcp-server": "MCP server detected at https://mcp.canva.com/mcp; it requires authentication. Presence is verified (5/6),",
   "webmcp": "No WebMCP support detected - no document.modelContext / navigator.modelContext usage found",
   "cli-tool": "CLI package found on npm: @canva/cli",
   "rest-sdk-packages": "SDK package found only in npm",
   "nlweb-ask": "NLWeb /ask endpoint exists but requires authentication (HTTP 403, via GET)",
   "mpp-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "x402-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "ucp-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "acp-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "ap2-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites"
  }
 },
 {
  "slug": "checkout",
  "name": "Checkout.com",
  "domain": "checkout.com",
  "read": "2026-11-09",
  "score": 73,
  "grade": "B",
  "category": "Payments & Fintech",
  "summary": "Checkout.com offers strong developer SDKs and documentation discovery, but needs an OpenAPI specification for agent integration.",
  "layers": [
   "Discovery 14/16",
   "Access 47/61",
   "Usability 39/63",
   "Payments 0/0"
  ],
  "top": [
   "openapi-spec (fail, 0/7, +3.8): No OpenAPI/Swagger specification found",
   "scoped-permissions (fail, 0/5, +3.5): No declared OAuth scopes, security schemes, or scoped-permission documentation found",
   "webmcp (fail, 0/5, +3.5): No WebMCP support detected - no document.modelContext / navigator.modelContext usage found",
   "json-error-responses (fail, 0/4, +2.8): API does not return JSON error responses (or no API detected)",
   "cli-tool (fail, 0/3, +2.1): No CLI tool found",
   "api-schema-analysis (fail, 0/2, +1.4): No API schema detected"
  ],
  "seen": {
   "brand-search-accuracy": "checkout.com ranks #3 for \"checkout payment processing\" (search term updated)",
   "wikipedia-presence": "Wikipedia \"Checkout.com\" and Wikidata Q110815500 both verified - domain confirmed on both sources",
   "robots-ai-policy-quality": "AI search crawlers: allowed in 3 of 3 checks (3 crawlers on 1 page). AI training crawlers: allowed in 2 of 2 checks (2 crawlers on 1 page), not scored.",
   "noindex-directives": "No noindex on the homepage: no robots, googlebot or bingbot meta tag and no X-Robots-Tag header hides it from search.",
   "sitemap": "Valid sitemap found at https://www.checkout.com/sitemap.xml with 1541 entries",
   "content-no-js": "10450 chars, semantic headings (1 H1 + 12 H2s + 21 H3s), 7.2% content ratio",
   "bot-detection": "Site accessible to 4 agent user-agents (ChatGPT-User, OAI-SearchBot, Claude-User, PerplexityBot).",
   "agent-discovery-file": "No agent discovery file found",
   "a2a-agent-card": "No A2A agent card found at /.well-known/agent-card.json",
   "mcp-well-known-discovery": "MCP server at https://support.checkout.com/mcp - list its server card, hosted on your own domain, in /.well-known/ai-catalog.json so MCP clients can discover it",
   "robots-agent-user-policy": "No applicable crawl or usage restriction found for 3 user-triggered agents (chatgpt-user, claude-user,",
   "llms-txt-exists": "Found the llms.txt at https://checkout.com/llms.txt.",
   "llms-txt-formatting": "The llms.txt is well-formatted with markdown links, but at 157,293 characters it exceeds the 30,000-character recommendation for a navigation index.",
   "json-ld": "Rich JSON-LD identity: Organization with name, description, url, and sameAs/logo/address (1 block(s))",
   "public-api-docs": "API/docs link found on homepage and resolves: https://www.checkout.com/docs",
   "metadata-completeness": "All metadata signals present: canonical URL, lang=\"en\", og:image, og:type",
   "page-token-budget": "All 6 measured pages fit an agent context budget (largest ~9K tokens)",
   "docs-auth-gate": "All 5 sampled pages are publicly readable (5 with substantive content)",
   "openapi-spec": "No OpenAPI/Swagger specification found",
   "developer-portal": "Developer portal found at /docs",
   "markdown-negotiation": "Returns markdown when requested via Accept header",
   "agent-ua-markdown": "No probed bot User-Agent (ChatGPT-User, Claude-User, Perplexity-User) receives markdown when requesting HTML.",
   "agent-crawler-reachability": "Reachable to every agent we tested - ChatGPT-User: reachable, OAI-SearchBot: reachable, Claude-User: reachable, PerplexityBot: reachable",
   "public-api": "REST API documentation found at https://www.checkout.com/docs/payments.md. Best-of-protocols score: 7/7.",
   "oauth-support": "OAuth authorization server metadata at https://support.checkout.com/mcp/oauth",
   "mcp-server": "MCP server detected at https://support.checkout.com/mcp; it requires authentication. Presence is verified (5/6),",
   "webmcp": "No WebMCP support detected - no document.modelContext / navigator.modelContext usage found",
   "cli-tool": "No CLI tool found",
   "rest-sdk-packages": "SDK packages found across 3 ecosystems: npm, go, rubygems",
   "nlweb-ask": "No NLWeb-conformant /ask endpoint found via GET or POST",
   "mpp-support": "No MPP (Machine Payments Protocol) support detected",
   "x402-support": "No x402 payment protocol support detected",
   "ucp-support": "text mentions (universal commerce protocol, agentic checkout) but no /.well-known/ucp profile or commerce metadata",
   "acp-support": "text mentions (agentic commerce protocol) but no reachable /checkout_sessions endpoint or supporting artifact",
   "ap2-support": "No AP2 (Agent Payments Protocol) signals detected"
  }
 },
 {
  "slug": "cloudflare",
  "name": "Cloudflare",
  "domain": "cloudflare.com",
  "read": "2026-11-09",
  "score": 82,
  "grade": "B",
  "category": "Infrastructure",
  "summary": "Cloudflare offers strong discovery and developer SDK coverage, but lacks declared OAuth scopes and scoped-permission documentation for agents.",
  "layers": [
   "Discovery 15/18",
   "Access 57/63",
   "Usability 90/121",
   "Payments 0/0"
  ],
  "top": [
   "brand-search-accuracy (warning, 1/3, +2.5): cloudflare.com ranks #6 for \"Cloudflare\" (searched your brand name alone: no main product term from your homepage qualified)",
   "scoped-permissions (fail, 0/5, +1.8): No declared OAuth scopes, security schemes, or scoped-permission documentation found",
   "public-api (warning, 3/7, +1.5): API described in documentation at https://developers.cloudflare.com but no machine-verifiable API surface confirmed. Best-of-protocols score: 3/7.",
   "ard-catalog (fail, 0/1, +1.2): No /.well-known/ard.json, no same-site rel=\"ard\" link, and no legacy /.well-known/ai-catalog.json",
   "api-error-model (fail, 0/3, +1.1): No typed error model found in OpenAPI spec",
   "api-versioning-policy (fail, 0/3, +1.1): No API versioning strategy found - add URL path versioning (/v1/, /v2/) or a versioned header parameter in your OpenAPI spec"
  ],
  "seen": {
   "brand-search-accuracy": "cloudflare.com ranks #6 for \"Cloudflare\" (searched your brand name alone: no main product term from your homepage qualified)",
   "wikipedia-presence": "Wikipedia \"Cloudflare\" and Wikidata Q4778915 both verified - domain confirmed on both sources",
   "robots-ai-policy-quality": "AI search crawlers: allowed in 3 of 3 checks (3 crawlers on 1 page). AI training crawlers: allowed in 2 of 2 checks (2 crawlers on 1 page), not scored.",
   "noindex-directives": "No noindex on the homepage: no robots, googlebot or bingbot meta tag and no X-Robots-Tag header hides it from search.",
   "sitemap": "Valid sitemap found at https://www.cloudflare.com/sitemap.xml with 1017 entries",
   "content-no-js": "Homepage: 1612 chars with H1, but heading hierarchy skips H2 to H6; 0.2% content ratio is below the 5% target.",
   "bot-detection": "Site accessible to 4 agent user-agents (ChatGPT-User, OAI-SearchBot, Claude-User, PerplexityBot).",
   "agent-discovery-file": "Agent Skills index (agentskills.io) found at /.well-known/agent-skills/index.json with 19 skill(s)",
   "a2a-agent-card": "No A2A agent card found at /.well-known/agent-card.json",
   "mcp-well-known-discovery": "MCP server discoverable via server-card.json at /.well-known/mcp/",
   "robots-agent-user-policy": "No applicable crawl or usage restriction found for 3 user-triggered agents (chatgpt-user, claude-user,",
   "llms-txt-exists": "Found the llms.txt at https://developers.cloudflare.com/llms.txt.",
   "llms-txt-formatting": "The llms.txt is well-formatted: 140 lines with markdown links, 17,169 characters in total.",
   "json-ld": "JSON-LD Organization found - missing description on this entity",
   "public-api-docs": "Documentation site found at https://developers.cloudflare.com",
   "metadata-completeness": "All metadata signals present: canonical URL, lang=\"en\", og:image, og:type",
   "page-token-budget": "All 6 measured pages fit an agent context budget (largest ~4K tokens)",
   "docs-auth-gate": "All 5 sampled pages are publicly readable (3 with substantive content)",
   "openapi-spec": "OpenAPI spec found at https://www.cloudflare.com/openapi.json (version: 3.1.0)",
   "developer-portal": "Developer portal found at /developers",
   "markdown-negotiation": "Path-suffix markdown docs served with text/markdown content-type: /auth.md, /index.md",
   "agent-ua-markdown": "No probed bot User-Agent (ChatGPT-User, Claude-User, Perplexity-User) receives markdown when requesting HTML.",
   "agent-crawler-reachability": "Reachable to every agent we tested - ChatGPT-User: reachable, OAI-SearchBot: reachable, Claude-User: reachable, PerplexityBot: reachable",
   "public-api": "API described in documentation at https://developers.cloudflare.com but no machine-verifiable API surface confirmed. Best-of-protocols score: 3/7.",
   "oauth-support": "OAuth authorization server metadata at https://mcp.cloudflare.com",
   "mcp-server": "MCP server connected via Streamable HTTP - docs-ai-search v0.5.0 (protocol 2025-11-25)",
   "webmcp": "Imperative WebMCP API detected (document.modelContext.registerTool in inline script).",
   "cli-tool": "CLI package found on npm: wrangler",
   "rest-sdk-packages": "SDK packages found across 3 ecosystems: npm, pypi, go",
   "nlweb-ask": "No NLWeb-conformant /ask endpoint found via GET or POST",
   "mpp-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "x402-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "ucp-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "acp-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "ap2-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites"
  }
 },
 {
  "slug": "confluent",
  "name": "Confluent",
  "domain": "confluent.io",
  "read": "2026-11-09",
  "score": 74,
  "grade": "B",
  "category": "Infrastructure",
  "summary": "Confluent offers strong discovery and developer SDKs, but lacks a published OpenAPI specification for agents to consume.",
  "layers": [
   "Discovery 15/16",
   "Access 45/61",
   "Usability 39/60",
   "Payments 0/0"
  ],
  "top": [
   "openapi-spec (fail, 0/7, +3.8): No OpenAPI/Swagger specification found",
   "webmcp (fail, 0/5, +3.7): No WebMCP support detected - no document.modelContext / navigator.modelContext usage found (scanned 8 of 8 same-origin script bundle(s) for modelContext registrations)",
   "json-error-responses (fail, 0/4, +3): API does not return JSON error responses (or no API detected)",
   "scoped-permissions (warning, 2/5, +2.2): Scoped permissions described at https://docs.confluent.io, but no machine-readable scope declaration found (OpenAPI oauth2 scopes or RFC 9728 scopes_supported)",
   "api-schema-analysis (fail, 0/2, +1.5): No API schema detected",
   "function-calling-compat (fail, 0/2, +1.5): No API spec found - function calling requires discoverable endpoints"
  ],
  "seen": {
   "brand-search-accuracy": "confluent.io ranks #1 for \"Confluent Stream processing\" and #3 for \"Confluent Apache Kafka\"",
   "wikipedia-presence": "Wikipedia \"Confluent\" and Wikidata Q94758727 both verified - domain confirmed on both sources",
   "robots-ai-policy-quality": "AI search crawlers: allowed in 3 of 3 checks (3 crawlers on 1 page). AI training crawlers: allowed in 2 of 2 checks (2 crawlers on 1 page), not scored.",
   "noindex-directives": "No noindex on the homepage: no robots, googlebot or bingbot meta tag and no X-Robots-Tag header hides it from search.",
   "sitemap": "Valid sitemap found at https://www.confluent.io/sitemap.xml with 4586 entries",
   "content-no-js": "Homepage: 11353 chars, semantic headings (1 H1 + 5 H2s + 11 H3s), 13.8% content ratio. 5 of 5 sampled inner pages have text without JavaScript.",
   "bot-detection": "Site accessible to 4 agent user-agents (ChatGPT-User, OAI-SearchBot, Claude-User, PerplexityBot).",
   "agent-discovery-file": "No agent discovery file found",
   "a2a-agent-card": "No A2A agent card found at /.well-known/agent-card.json",
   "mcp-well-known-discovery": "MCP server referenced in llms.txt",
   "robots-agent-user-policy": "No applicable crawl or usage restriction found for 3 user-triggered agents (chatgpt-user, claude-user,",
   "llms-txt-exists": "Found the llms.txt at https://confluent.io/llms.txt.",
   "llms-txt-formatting": "The llms.txt is well-formatted with markdown links, but at 696,335 characters it exceeds the 30,000-character recommendation for a navigation index.",
   "json-ld": "JSON-LD Organization found - missing description on this entity",
   "public-api-docs": "Documentation site found at https://docs.confluent.io",
   "metadata-completeness": "All metadata signals present: canonical URL, lang=\"en\", og:image, og:type",
   "page-token-budget": "All 6 measured pages fit an agent context budget (largest ~3K tokens)",
   "docs-auth-gate": "All 5 sampled pages are publicly readable (5 with substantive content)",
   "openapi-spec": "No OpenAPI/Swagger specification found",
   "developer-portal": "Developer portal found at /developer",
   "markdown-negotiation": "Missing markdown content negotiation. Homepage returned text/html when probed with Accept: text/markdown (expected text/markdown),",
   "agent-ua-markdown": "No probed bot User-Agent (ChatGPT-User, Claude-User, Perplexity-User) receives markdown when requesting HTML.",
   "agent-crawler-reachability": "Reachable to every agent we tested - ChatGPT-User: reachable, OAI-SearchBot: reachable, Claude-User: reachable, PerplexityBot: reachable",
   "public-api": "REST API documentation found at https://docs.confluent.io/cloud/current/get-started/docs-ai.md. Best-of-protocols score: 7/7.",
   "oauth-support": "OAuth authorization server metadata at https://support.confluent.io/mcp/oauth",
   "mcp-server": "MCP server detected at https://support.confluent.io/mcp; it requires authentication. Presence is verified (5/6),",
   "webmcp": "No WebMCP support detected - no document.modelContext / navigator.modelContext usage found (scanned 8 of 8 same-origin script bundle(s) for modelContext.",
   "cli-tool": "CLI tool mentioned at https://docs.confluent.io",
   "rest-sdk-packages": "SDK packages found in npm, rubygems",
   "nlweb-ask": "No NLWeb-conformant /ask endpoint found via GET or POST",
   "mpp-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "x402-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "ucp-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "acp-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "ap2-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites"
  }
 },
 {
  "slug": "contentful",
  "name": "Contentful",
  "domain": "contentful.com",
  "read": "2026-11-09",
  "score": 74,
  "grade": "B",
  "category": "Developer Tools",
  "summary": "Contentful offers a solid developer ecosystem and passes most discovery checks, but lacks a published OpenAPI specification for agents to build against.",
  "layers": [
   "Discovery 15/18",
   "Access 39/57",
   "Usability 50/67",
   "Payments 0/0"
  ],
  "top": [
   "openapi-spec (fail, 0/7, +4.1): No OpenAPI/Swagger specification found",
   "scoped-permissions (fail, 0/5, +3.3): No declared OAuth scopes, security schemes, or scoped-permission documentation found",
   "webmcp (fail, 0/5, +3.3): No WebMCP support detected - no document.modelContext / navigator.modelContext usage found (scanned 32 of 32 same-origin script bundle(s) for modelContext registrations)",
   "brand-search-accuracy (warning, 1/3, +2.5): contentful.com ranks #9 for \"Contentful content management system\"",
   "agent-instruction (fail, 0/3, +1.8): No agent instruction file with when-to-use guidance found",
   "api-schema-analysis (fail, 0/2, +1.3): No API schema detected"
  ],
  "seen": {
   "brand-search-accuracy": "contentful.com ranks #9 for \"Contentful content management system\"",
   "wikipedia-presence": "Wikipedia \"Contentful\" and Wikidata Q18348837 both verified - domain confirmed on both sources",
   "robots-ai-policy-quality": "AI search crawlers: allowed in 3 of 3 checks (3 crawlers on 1 page). AI training crawlers: allowed in 2 of 2 checks (2 crawlers on 1 page), not scored.",
   "noindex-directives": "No noindex on the homepage: no robots, googlebot or bingbot meta tag and no X-Robots-Tag header hides it from search.",
   "sitemap": "Valid sitemap found at https://www.contentful.com/sitemap-index.xml with multiple sitemaps entries",
   "content-no-js": "Homepage: 7162 chars with H1, but heading hierarchy skips H1 to H4; 4.3% content ratio is below the 5% target.",
   "bot-detection": "Can't verify agent access. Your site also blocked a normal browser visit, so we can't tell if agents get in. (ChatGPT-User: cannot verify,",
   "agent-discovery-file": "No agent discovery file found",
   "a2a-agent-card": "No A2A agent card found at /.well-known/agent-card.json",
   "mcp-well-known-discovery": "MCP server referenced in llms.txt",
   "robots-agent-user-policy": "No applicable crawl or usage restriction found for 3 user-triggered agents (chatgpt-user, claude-user,",
   "llms-txt-exists": "Found the llms.txt at https://contentful.com/llms.txt.",
   "llms-txt-formatting": "The llms.txt is well-formatted: 134 lines with markdown links, 12,214 characters in total.",
   "json-ld": "JSON-LD Organization found - missing description on this entity",
   "public-api-docs": "Documentation site found at https://www.contentful.com",
   "metadata-completeness": "All metadata signals present: canonical URL, lang=\"en\", og:image, og:type",
   "page-token-budget": "All 6 measured pages fit an agent context budget (largest ~2K tokens)",
   "docs-auth-gate": "All 5 sampled pages are publicly readable (5 with substantive content)",
   "openapi-spec": "No OpenAPI/Swagger specification found",
   "developer-portal": "Developer portal found at /developers",
   "markdown-negotiation": "Missing markdown content negotiation. Homepage returned text/html when probed with Accept: text/markdown (expected text/markdown),",
   "agent-ua-markdown": "No probed bot User-Agent (ChatGPT-User, Claude-User, Perplexity-User) receives markdown when requesting HTML.",
   "agent-crawler-reachability": "Can't verify crawler reachability. Your site also blocked a normal browser visit, so we can't tell if agents get in. (ChatGPT-User: cannot verify,",
   "public-api": "REST API documentation found at https://contentful.com/developers/docs/references/llms.txt. Best-of-protocols score: 7/7.",
   "oauth-support": "OAuth authorization server metadata at https://mcp.contentful.com",
   "mcp-server": "MCP server detected at https://mcp.contentful.com/mcp; it requires authentication. Presence is verified (5/6),",
   "webmcp": "No WebMCP support detected - no document.modelContext / navigator.modelContext usage found (scanned 32 of 32 same-origin script bundle(s) for modelContext.",
   "cli-tool": "CLI package found on npm: contentful-cli",
   "rest-sdk-packages": "SDK packages found across 3 ecosystems: npm, pypi, rubygems",
   "nlweb-ask": "No NLWeb-conformant /ask endpoint found via GET or POST",
   "mpp-support": "No MPP (Machine Payments Protocol) support detected",
   "x402-support": "No x402 payment protocol support detected",
   "ucp-support": "no UCP (Universal Commerce Protocol) signals detected",
   "acp-support": "OPTIONS allows POST at https://api.contentful.com/checkout_sessions but POST 401 returned no ACP response",
   "ap2-support": "No AP2 (Agent Payments Protocol) signals detected"
  }
 },
 {
  "slug": "datadog",
  "name": "Datadog",
  "domain": "datadoghq.com",
  "read": "2026-11-09",
  "score": 69,
  "grade": "C",
  "category": "Infrastructure",
  "summary": "Datadog offers ChatGPT app listing, but lacks an OpenAPI specification.",
  "layers": [
   "Discovery 12/15",
   "Access 47/61",
   "Usability 35/60",
   "Payments 0/0"
  ],
  "top": [
   "openapi-spec (fail, 0/7, +3.8): No OpenAPI/Swagger specification found",
   "scoped-permissions (fail, 0/5, +3.7): No declared OAuth scopes, security schemes, or scoped-permission documentation found",
   "webmcp (fail, 0/5, +3.7): No WebMCP support detected - no tool-attribute forms and no document.modelContext / navigator.modelContext usage found (scanned 8 of 9 same-origin script bundle(s) for modelContext registrations)",
   "public-api (warning, 3/7, +3): API described in documentation at https://docs.datadoghq.com but no machine-verifiable API surface confirmed. Best-of-protocols score: 3/7.",
   "rest-sdk-packages (fail, 0/3, +2.2): No SDK packages found across language ecosystems",
   "api-schema-analysis (fail, 0/2, +1.5): No API schema detected"
  ],
  "seen": {
   "brand-search-accuracy": "datadoghq.com ranks #5 for \"Datadog Cloud Monitoring\"",
   "wikipedia-presence": "Wikipedia \"Datadog\" and Wikidata Q107383131 both verified - domain confirmed on both sources",
   "robots-ai-policy-quality": "AI search crawlers: allowed in 3 of 3 checks (3 crawlers on 1 page). AI training crawlers: allowed in 2 of 2 checks (2 crawlers on 1 page), not scored.",
   "noindex-directives": "No noindex on the homepage: no robots, googlebot or bingbot meta tag and no X-Robots-Tag header hides it from search.",
   "sitemap": "Valid sitemap found at https://www.datadoghq.com/sitemap.xml with multiple sitemaps entries",
   "content-no-js": "5985 chars with H1, but heading hierarchy skips H1 to H5",
   "bot-detection": "Site accessible to 4 agent user-agents (ChatGPT-User, OAI-SearchBot, Claude-User, PerplexityBot).",
   "agent-discovery-file": "No agent discovery file found",
   "a2a-agent-card": "No A2A agent card found at /.well-known/agent-card.json",
   "mcp-well-known-discovery": "MCP server referenced in llms.txt",
   "robots-agent-user-policy": "No applicable crawl or usage restriction found for 3 user-triggered agents (chatgpt-user, claude-user,",
   "llms-txt-exists": "Found the llms.txt at https://docs.datadoghq.com/llms.txt.",
   "llms-txt-formatting": "The llms.txt is well-formatted with markdown links, but at 589,570 characters it exceeds the 30,000-character recommendation for a navigation index.",
   "json-ld": "Rich JSON-LD identity: SoftwareApplication with name, description, url, and category/offers (1 block(s))",
   "public-api-docs": "Documentation site found at https://docs.datadoghq.com",
   "metadata-completeness": "All metadata signals present: canonical URL, lang=\"en\", og:image, og:type",
   "page-token-budget": "All 6 measured pages fit an agent context budget (largest ~7K tokens)",
   "docs-auth-gate": "All 5 sampled pages are publicly readable (5 with substantive content)",
   "openapi-spec": "No OpenAPI/Swagger specification found",
   "developer-portal": "Developer documentation portal found at https://docs.datadoghq.com",
   "markdown-negotiation": "Missing markdown content negotiation. Homepage returned text/html when probed with Accept: text/markdown (expected text/markdown),",
   "agent-ua-markdown": "No probed bot User-Agent (GPTBot, ClaudeBot, ChatGPT-User, PerplexityBot, Google-Extended, Applebot-Extended, ora-agent,",
   "agent-crawler-reachability": "Reachable to every agent we tested - ChatGPT-User: reachable, OAI-SearchBot: reachable, Claude-User: reachable, PerplexityBot: reachable",
   "public-api": "API described in documentation at https://docs.datadoghq.com but no machine-verifiable API surface confirmed. Best-of-protocols score: 3/7.",
   "oauth-support": "OAuth authorization server metadata at https://help.datadoghq.com/mcp/oauth",
   "mcp-server": "MCP server detected at https://help.datadoghq.com/mcp; it requires authentication. Presence is verified (5/6),",
   "webmcp": "No WebMCP support detected - no tool-attribute forms and no document.modelContext / navigator.modelContext usage found (scanned 8 of 9 same-origin script.",
   "cli-tool": "CLI tool mentioned at https://docs.datadoghq.com",
   "rest-sdk-packages": "No SDK packages found across language ecosystems",
   "nlweb-ask": "NLWeb /ask endpoint exists but requires authentication (HTTP 403, via POST)",
   "mpp-support": "No MPP (Machine Payments Protocol) support detected",
   "x402-support": "No x402 payment protocol support detected",
   "ucp-support": "no UCP (Universal Commerce Protocol) signals detected",
   "acp-support": "no ACP (Agentic Commerce Protocol) signals detected",
   "ap2-support": "No AP2 (Agent Payments Protocol) signals detected"
  }
 },
 {
  "slug": "digitalocean",
  "name": "DigitalOcean",
  "domain": "digitalocean.com",
  "read": "2026-11-09",
  "score": 74,
  "grade": "B",
  "category": "Infrastructure",
  "summary": "DigitalOcean offers well-documented APIs and SDK packages, but lacks OAuth 2.0 support for agent authentication.",
  "layers": [
   "Discovery 14/18",
   "Access 43/59",
   "Usability 57/77",
   "Payments 0/0"
  ],
  "top": [
   "brand-search-accuracy (fail, 0/3, +3.7): digitalocean.com was not in the top 10 for \"AI\" (searched your brand name alone: no main product term from your homepage qualified)",
   "oauth-support (fail, 0/5, +2.9): No OAuth 2.0 or OpenID Connect support detected",
   "webmcp (fail, 0/5, +2.9): No WebMCP support detected - no document.modelContext / navigator.modelContext usage found (scanned 45 of 45 same-origin script bundle(s) for modelContext registrations)",
   "json-ld (fail, 0/4, +2.3): No JSON-LD structured data found on homepage",
   "scoped-permissions (warning, 2/5, +1.7): OpenAPI declares security schemes but no named OAuth scopes - agents get all-or-nothing access. Declare per-scope grants (e.g. read:*, write:*) in the spec.",
   "ard-catalog (fail, 0/1, +1.2): No /.well-known/ard.json, no same-site rel=\"ard\" link, and no legacy /.well-known/ai-catalog.json"
  ],
  "seen": {
   "brand-search-accuracy": "digitalocean.com was not in the top 10 for \"AI\" (searched your brand name alone: no main product term from your homepage qualified)",
   "wikipedia-presence": "Wikipedia \"DigitalOcean\" and Wikidata Q17052116 both verified - domain confirmed on both sources",
   "robots-ai-policy-quality": "AI search crawlers: allowed in 3 of 3 checks (3 crawlers on 1 page). AI training crawlers: allowed in 2 of 2 checks (2 crawlers on 1 page), not scored.",
   "noindex-directives": "No noindex on the homepage: no robots, googlebot or bingbot meta tag and no X-Robots-Tag header hides it from search.",
   "sitemap": "Valid sitemap found at https://www.digitalocean.com/sitemap.xml with multiple sitemaps entries",
   "content-no-js": "Homepage: 6088 chars with H1, but 4.7% content ratio is below the 5% target. 5 of 5 sampled inner pages have text without JavaScript.",
   "bot-detection": "Site accessible to 4 agent user-agents (ChatGPT-User, OAI-SearchBot, Claude-User, PerplexityBot).",
   "agent-discovery-file": "No agent discovery file found",
   "a2a-agent-card": "No A2A agent card found at /.well-known/agent-card.json",
   "mcp-well-known-discovery": "MCP server at https://mcp.digitalocean.com/mcp - list its server card, hosted on your own domain, in /.well-known/ai-catalog.json so MCP clients can discover it",
   "robots-agent-user-policy": "No applicable crawl or usage restriction found for 3 user-triggered agents (chatgpt-user, claude-user,",
   "llms-txt-exists": "Found the llms.txt at https://docs.digitalocean.com/llms.txt.",
   "llms-txt-formatting": "The llms.txt is well-formatted with markdown links, but at 72,919 characters it exceeds the 30,000-character recommendation for a navigation index.",
   "json-ld": "No JSON-LD structured data found on homepage",
   "public-api-docs": "Documentation site found at https://docs.digitalocean.com",
   "metadata-completeness": "2/4 metadata signals present - missing: og:image, og:type",
   "page-token-budget": "All 6 measured pages fit an agent context budget (largest ~2K tokens)",
   "docs-auth-gate": "All 5 sampled pages are publicly readable (5 with substantive content)",
   "openapi-spec": "OpenAPI spec found at https://docs.digitalocean.com/reference/api/reference/openapi.json (version: 3.0.0)",
   "developer-portal": "Developer portal found at https://docs.digitalocean.com",
   "markdown-negotiation": "Missing markdown content negotiation. Homepage returned text/html when probed with Accept: text/markdown (expected text/markdown),",
   "agent-ua-markdown": "No probed bot User-Agent (ChatGPT-User, Claude-User, Perplexity-User) receives markdown when requesting HTML.",
   "agent-crawler-reachability": "Reachable to every agent we tested - ChatGPT-User: reachable, OAI-SearchBot: reachable, Claude-User: reachable, PerplexityBot: reachable",
   "public-api": "Documented REST API detected; endpoints require authentication (API key / OAuth), which is expected for agent access. Best-of-protocols score: 7/7.",
   "oauth-support": "No OAuth 2.0 or OpenID Connect support detected",
   "mcp-server": "MCP server detected at https://mcp.digitalocean.com/mcp; it requires authentication. Presence is verified (5/6),",
   "webmcp": "No WebMCP support detected - no document.modelContext / navigator.modelContext usage found (scanned 45 of 45 same-origin script bundle(s) for modelContext.",
   "cli-tool": "CLI tool mentioned at https://docs.digitalocean.com/reference/doctl/",
   "rest-sdk-packages": "SDK packages found across 3 ecosystems: npm, pypi, rubygems",
   "nlweb-ask": "No NLWeb-conformant /ask endpoint found via GET or POST",
   "mpp-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "x402-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "ucp-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "acp-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "ap2-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites"
  }
 },
 {
  "slug": "docker",
  "name": "Docker",
  "domain": "docker.com",
  "read": "2026-11-09",
  "score": 69,
  "grade": "C",
  "category": "Infrastructure",
  "summary": "Docker offers developer resource discoverability, but lacks an OpenAPI specification.",
  "layers": [
   "Discovery 13/15",
   "Access 42/62",
   "Usability 43/71",
   "Payments 0/0"
  ],
  "top": [
   "openapi-spec (fail, 0/7, +3.8): No OpenAPI/Swagger specification found",
   "scoped-permissions (fail, 0/5, +3.1): No declared OAuth scopes, security schemes, or scoped-permission documentation found",
   "webmcp (fail, 0/5, +3.1): No WebMCP support detected - no tool-attribute forms and no document.modelContext / navigator.modelContext usage found (scanned 8 of 43 same-origin script bundle(s) for modelContext registrations)",
   "json-error-responses (fail, 0/4, +2.5): API does not return JSON error responses (or no API detected)",
   "public-api (warning, 3/7, +2.5): API described in documentation at https://docs.docker.com but no machine-verifiable API surface confirmed. Best-of-protocols score: 3/7.",
   "mcp-resource-listing (fail, 0/3, +1.9): MCP server advertises resources capability but resources/list returned none"
  ],
  "seen": {
   "brand-search-accuracy": "docker.com ranks #1 for \"Docker AI agent platform\"",
   "wikipedia-presence": "Wikipedia \"Docker (software)\" and Wikidata Q15206305 both verified - domain confirmed on both sources",
   "robots-ai-policy-quality": "Training: 2/2. Search: 3/3 page/crawler pairs permitted. No applicable crawl or usage restriction found for 5 training and search crawlers (gptbot, claudebot,",
   "sitemap": "Valid sitemap found at https://www.docker.com/sitemap_index.xml with multiple sitemaps entries",
   "content-no-js": "4009 chars with H1, but heading hierarchy skips H1 to H4; 4.2% content ratio is below the 5% target",
   "bot-detection": "Site accessible to 6 AI agent user-agents",
   "agent-discovery-file": "No agent discovery file found",
   "a2a-agent-card": "No A2A agent card found at /.well-known/agent-card.json",
   "mcp-well-known-discovery": "MCP server referenced in llms.txt",
   "robots-agent-user-policy": "No applicable crawl or usage restriction found for 3 user-triggered agents (chatgpt-user, claude-user, perplexity-user) on 1 public page: https://docker.com/.",
   "llms-txt-exists": "Found the llms.txt at https://docs.docker.com/llms.txt.",
   "llms-txt-formatting": "The llms.txt is well-formatted: 59 lines with markdown links, 5,584 characters in total.",
   "json-ld": "JSON-LD found (1 block(s)) but no identity type - use SoftwareApplication, Product, Organization, Person, or Article so agents can tell what this site is",
   "public-api-docs": "Documentation site found at https://docs.docker.com",
   "metadata-completeness": "All metadata signals present: canonical URL, lang=\"en-US\", og:image, og:type",
   "page-token-budget": "All 6 measured pages fit an agent context budget (largest ~3K tokens)",
   "docs-auth-gate": "All 5 sampled pages are publicly readable (5 with substantive content)",
   "openapi-spec": "No OpenAPI/Swagger specification found",
   "developer-portal": "Developer portal found at /developers",
   "markdown-negotiation": "Missing markdown content negotiation. Homepage returned text/html when probed with Accept: text/markdown (expected text/markdown),",
   "agent-ua-markdown": "No probed bot User-Agent (GPTBot, ClaudeBot, ChatGPT-User, PerplexityBot, Google-Extended, Applebot-Extended, ora-agent,",
   "agent-crawler-reachability": "Reachable to all major AI crawlers - ChatGPT-User: reachable, ClaudeBot: reachable, Google-Extended: reachable, ora-agent: reachable, DeepSeekBot: reachable",
   "public-api": "API described in documentation at https://docs.docker.com but no machine-verifiable API surface confirmed. Best-of-protocols score: 3/7.",
   "oauth-support": "OpenID Connect discovery endpoint found at https://login.docker.com",
   "mcp-server": "MCP server connected via Streamable HTTP - llms-txt v1.26.0 (protocol 2025-11-25)",
   "webmcp": "No WebMCP support detected - no tool-attribute forms and no document.modelContext / navigator.modelContext usage found (scanned 8 of 43 same-origin script.",
   "cli-tool": "CLI package found on npm: docker",
   "rest-sdk-packages": "SDK packages found in npm, pypi",
   "nlweb-ask": "No NLWeb-conformant /ask endpoint found via GET or POST",
   "mpp-support": "MPP documented (AI analysis: MCP endpoint for structured agent access: https://mcp-docs.docker.com/mcp); no live protocol surface found",
   "x402-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "ucp-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "acp-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "ap2-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites"
  }
 },
 {
  "slug": "elastic",
  "name": "Elastic",
  "domain": "elastic.co",
  "read": "2026-11-09",
  "score": 59,
  "grade": "C",
  "category": "Infrastructure",
  "summary": "Elastic offers strong developer resource discovery and SDK packages, but lacks an OpenAPI specification.",
  "layers": [
   "Discovery 10/13",
   "Access 31/55",
   "Usability 31/60",
   "Payments 0/0"
  ],
  "top": [
   "openapi-spec (fail, 0/7, +4.2): No OpenAPI/Swagger specification found",
   "scoped-permissions (fail, 0/5, +3.7): No declared OAuth scopes, security schemes, or scoped-permission documentation found",
   "webmcp (fail, 0/5, +3.7): No WebMCP support detected - no document.modelContext / navigator.modelContext usage found (scanned 8 of 14 same-origin script bundle(s) for modelContext registrations)",
   "brand-search-accuracy (warning, 1/3, +3.4): elastic.co ranks #9 for \"Elastic search database\"",
   "json-error-responses (fail, 0/4, +3): API does not return JSON error responses (or no API detected)",
   "mcp-app-registry (fail, 0/4, +3): No MCP Apps support detected - this product has an in-agent UI surface but exposes no ui:// resources or tool UI metadata for agents to render."
  ],
  "seen": {
   "brand-search-accuracy": "elastic.co ranks #9 for \"Elastic search database\"",
   "wikipedia-presence": "Wikidata Q22074922 (Elastic) verified - draft a Wikipedia page with cited references to complete knowledge graph coverage",
   "robots-ai-policy-quality": "AI search crawlers: allowed in 3 of 3 checks (3 crawlers on 1 page). AI training crawlers: allowed in 2 of 2 checks (2 crawlers on 1 page), not scored.",
   "noindex-directives": "No noindex on the homepage: no robots, googlebot or bingbot meta tag and no X-Robots-Tag header hides it from search.",
   "sitemap": "Valid sitemap found at https://www.elastic.co/sitemap.xml with 13822 entries",
   "content-no-js": "10025 chars with H1, but 1.9% content ratio is below the 5% target",
   "bot-detection": "Site accessible to 4 agent user-agents (ChatGPT-User, OAI-SearchBot, Claude-User, PerplexityBot).",
   "agent-discovery-file": "No agent discovery file found",
   "a2a-agent-card": "No A2A agent card found at /.well-known/agent-card.json",
   "mcp-well-known-discovery": "No MCP server URL discovered",
   "robots-agent-user-policy": "No applicable crawl or usage restriction found for 3 user-triggered agents (chatgpt-user, claude-user, perplexity-user) on 1 public page: https://elastic.co/.",
   "llms-txt-exists": "No llms.txt found at /llms.txt or /.well-known/llms.txt.",
   "llms-txt-formatting": "No llms.txt found to evaluate quality",
   "json-ld": "JSON-LD found (1 block(s)) but no identity type - use SoftwareApplication, Product, Organization, Person, or Article so agents can tell what this site is",
   "public-api-docs": "Documentation site found at https://www.elastic.co",
   "metadata-completeness": "3/4 metadata signals present - missing: og:type",
   "page-token-budget": "All 1 measured page fit an agent context budget (largest ~3K tokens)",
   "docs-auth-gate": "No content pages sampled",
   "openapi-spec": "No OpenAPI/Swagger specification found",
   "developer-portal": "Developer portal found at /docs",
   "markdown-negotiation": "Missing markdown content negotiation. Homepage returned text/html when probed with Accept: text/markdown (expected text/markdown),",
   "agent-ua-markdown": "No probed bot User-Agent (ChatGPT-User, Claude-User, Perplexity-User) receives markdown when requesting HTML.",
   "agent-crawler-reachability": "Reachable to every agent we tested - ChatGPT-User: reachable, OAI-SearchBot: reachable, Claude-User: reachable, PerplexityBot: reachable",
   "public-api": "REST API documentation found at /docs/api. Best-of-protocols score: 7/7.",
   "oauth-support": "OpenID Connect discovery endpoint found at https://auth.elastic.co",
   "mcp-server": "MCP mentioned at https://www.elastic.co/docs/explore-analyze/ai-features/agent-builder/mcp-server-api-keys but no standard manifest endpoint found",
   "webmcp": "No WebMCP support detected - no document.modelContext / navigator.modelContext usage found (scanned 8 of 14 same-origin script bundle(s) for modelContext.",
   "cli-tool": "CLI package found on npm: @elastic/cli",
   "rest-sdk-packages": "SDK packages found in npm, rubygems",
   "nlweb-ask": "No NLWeb-conformant /ask endpoint found via GET or POST",
   "mpp-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "x402-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "ucp-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "acp-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "ap2-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites"
  }
 },
 {
  "slug": "figma",
  "name": "Figma",
  "domain": "figma.com",
  "read": "2026-11-09",
  "score": 73,
  "grade": "B",
  "category": "Productivity",
  "summary": "Figma offers a solid npm SDK, ChatGPT app listing, and a clean robots.txt, but lacks a published OpenAPI spec for agents to discover its endpoints.",
  "layers": [
   "Discovery 14/18",
   "Access 39/58",
   "Usability 53/71",
   "Payments 0/0"
  ],
  "top": [
   "openapi-spec (fail, 0/7, +4): No OpenAPI/Swagger specification found",
   "scoped-permissions (fail, 0/5, +3.1): No declared OAuth scopes, security schemes, or scoped-permission documentation found",
   "webmcp (fail, 0/5, +3.1): No WebMCP support detected - no document.modelContext / navigator.modelContext usage found (scanned 28 of 28 same-origin script bundle(s) for modelContext registrations)",
   "agent-instruction (fail, 0/3, +1.7): No agent instruction file with when-to-use guidance found",
   "api-schema-analysis (fail, 0/2, +1.3): No API schema detected",
   "function-calling-compat (fail, 0/2, +1.3): No API spec found - function calling requires discoverable endpoints"
  ],
  "seen": {
   "brand-search-accuracy": "figma.com ranks #6 for \"Figma\" and appears 4 times in the top 10 (searched your brand name alone: no main product term from your homepage qualified)",
   "wikipedia-presence": "Wikipedia \"Figma\" and Wikidata Q96186334 both verified - domain confirmed on both sources",
   "robots-ai-policy-quality": "AI search crawlers: allowed in 3 of 3 checks (3 crawlers on 1 page). AI training crawlers: allowed in 0 of 2 checks (2 crawlers on 1 page), not scored.",
   "noindex-directives": "No noindex on the homepage: no robots, googlebot or bingbot meta tag and no X-Robots-Tag header hides it from search.",
   "sitemap": "Valid sitemap found at https://www.figma.com/sitemap.xml with multiple sitemaps entries",
   "content-no-js": "Homepage: 1695 chars with H1, but 1.9% content ratio is below the 5% target. No inner pages checked: the 5 sampled pages were skipped (forms, login pages,",
   "bot-detection": "Site accessible to 4 agent user-agents (ChatGPT-User, OAI-SearchBot, Claude-User, PerplexityBot).",
   "agent-discovery-file": "No agent discovery file found",
   "a2a-agent-card": "No A2A agent card found at /.well-known/agent-card.json",
   "mcp-well-known-discovery": "MCP server at https://mcp.figma.com/mcp - list its server card, hosted on your own domain, in /.well-known/ai-catalog.json so MCP clients can discover it",
   "robots-agent-user-policy": "No applicable crawl or usage restriction found for 3 user-triggered agents (chatgpt-user, claude-user, perplexity-user) on 1 public page: https://figma.com/.",
   "llms-txt-exists": "Found the llms.txt at https://developers.figma.com/llms.txt.",
   "llms-txt-formatting": "The llms.txt is well-formatted: 123 lines with markdown links, 16,430 characters in total.",
   "json-ld": "JSON-LD Organization found - missing description on this entity",
   "public-api-docs": "Documentation site found at https://developers.figma.com",
   "metadata-completeness": "All metadata signals present: canonical URL, lang=\"en\", og:image, og:type",
   "page-token-budget": "All 6 measured pages fit an agent context budget (largest ~2K tokens)",
   "docs-auth-gate": "All 5 sampled pages are publicly readable (5 with substantive content)",
   "openapi-spec": "No OpenAPI/Swagger specification found",
   "developer-portal": "Developer portal found at /developers",
   "markdown-negotiation": "Missing markdown content negotiation. Homepage returned text/html when probed with Accept: text/markdown (expected text/markdown),",
   "agent-ua-markdown": "No probed bot User-Agent (ChatGPT-User, Claude-User, Perplexity-User) receives markdown when requesting HTML.",
   "agent-crawler-reachability": "Reachable to every agent we tested - ChatGPT-User: reachable, OAI-SearchBot: reachable, Claude-User: reachable, PerplexityBot: reachable",
   "public-api": "REST API documentation found at /api. Best-of-protocols score: 7/7.",
   "oauth-support": "OAuth authorization server metadata at https://api.figma.com",
   "mcp-server": "MCP server detected at https://mcp.figma.com/mcp; it requires authentication. Presence is verified (5/6),",
   "webmcp": "No WebMCP support detected - no document.modelContext / navigator.modelContext usage found (scanned 28 of 28 same-origin script bundle(s) for modelContext.",
   "cli-tool": "CLI package found on npm: @figma/code-connect",
   "rest-sdk-packages": "SDK package found only in npm",
   "nlweb-ask": "NLWeb /ask endpoint exists but requires authentication (HTTP 403, via POST)",
   "mpp-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "x402-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "ucp-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "acp-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "ap2-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites"
  }
 },
 {
  "slug": "fly",
  "name": "Fly.io",
  "domain": "fly.io",
  "read": "2026-11-09",
  "score": 97,
  "grade": "A+",
  "category": "Infrastructure",
  "summary": "The site offers strong discovery and REST API schema quality, and publishing rate-limit response headers would give agents clearer backoff signals.",
  "layers": [
   "Discovery 19/19",
   "Access 63/65",
   "Usability 121.5/126",
   "Payments 0/0"
  ],
  "top": [
   "rate-limit-headers (fail, 0/2, +0.7): No REST rate-limit headers found on probed endpoints (GraphQL signal: fail 0).",
   "content-no-js (warning, 2/3, +0.5): Homepage: 3329 chars with H1, but 3.0% content ratio is below the 5% target. 5 of 5 sampled inner pages have text without JavaScript.",
   "schema-type-breadth (warning, 1/2, +0.5): Some extended schema types found: Service - add 2 more types that match what the homepage shows, for full coverage",
   "async-job-pattern (warning, 1/2, +0.4): 202 Accepted responses found but no clear polling pattern (Location header, /jobs path, or job_id schema)",
   "mcp-server (warning, 5/6, +0.4): MCP server detected at https://mcp.fly.io; it requires authentication. Presence is verified (5/6), but Ora could not inspect its tools or verify access scopes without credentials.",
   "api-schema-analysis (warning, 1.5/2, +0.2): REST: agent-friendly schema (101 operations, 100% with operationIds, 100% documented by description or summary) | GraphQL: schema reachable (396 types,"
  ],
  "seen": {
   "brand-search-accuracy": "fly.io ranks #2 for \"Fly.io Public cloud platform\"",
   "wikipedia-presence": "Wikidata Q133943318 (Fly.io) verified - draft a Wikipedia page with cited references to complete knowledge graph coverage",
   "robots-ai-policy-quality": "AI search crawlers: allowed in 18 of 18 checks (3 crawlers on 6 pages). AI training crawlers: allowed in 12 of 12 checks (2 crawlers on 6 pages), not scored.",
   "noindex-directives": "No noindex on the homepage: no robots, googlebot or bingbot meta tag and no X-Robots-Tag header hides it from search.",
   "sitemap": "Valid sitemap found at https://fly.io/sitemap.xml with multiple sitemaps entries",
   "content-no-js": "Homepage: 3329 chars with H1, but 3.0% content ratio is below the 5% target. 5 of 5 sampled inner pages have text without JavaScript.",
   "bot-detection": "Site accessible to 4 agent user-agents (ChatGPT-User, OAI-SearchBot, Claude-User, PerplexityBot).",
   "agent-discovery-file": "Agent Skills index (agentskills.io) found at /.well-known/agent-skills/index.json with 2 skill(s)",
   "a2a-agent-card": "No A2A agent card found at /.well-known/agent-card.json",
   "mcp-well-known-discovery": "MCP server card listed in /.well-known/ai-catalog.json",
   "robots-agent-user-policy": "No applicable crawl or usage restriction found for 3 user-triggered agents (chatgpt-user, claude-user, perplexity-user) on 1 public page: https://fly.io/.",
   "llms-txt-exists": "Found the llms.txt at https://fly.io/llms.txt.",
   "llms-txt-formatting": "The llms.txt is well-formatted: 55 lines with markdown links, 5,590 characters in total.",
   "json-ld": "Rich JSON-LD identity: Organization with name, description, url, and sameAs/logo/address (7 block(s))",
   "public-api-docs": "Documentation site found at https://docs.fly.io",
   "metadata-completeness": "All metadata signals present: canonical URL, lang=\"en-US\", og:image, og:type",
   "page-token-budget": "All 9 measured pages fit an agent context budget (largest ~17K tokens)",
   "docs-auth-gate": "All 5 sampled pages are publicly readable (5 with substantive content)",
   "openapi-spec": "OpenAPI spec found at https://docs.fly.io/api/machines/openapi.json (version: 3.1.0)",
   "developer-portal": "Developer portal found at https://docs.fly.io",
   "markdown-negotiation": "Path-suffix markdown docs served with text/markdown content-type: /agents.md, /auth.md, /index.md",
   "agent-ua-markdown": "No probed bot User-Agent (ChatGPT-User, Claude-User, Perplexity-User) receives markdown when requesting HTML.",
   "agent-crawler-reachability": "Reachable to every agent we tested - ChatGPT-User: reachable, OAI-SearchBot: reachable, Claude-User: reachable, PerplexityBot: reachable",
   "public-api": "REST API documentation found at /docs/api. GraphQL endpoint at https://api.fly.io/graphql is reachable and introspectable. Best-of-protocols score: 7/7.",
   "oauth-support": "OAuth authorization server metadata at https://fly.io/mcp/oauth",
   "mcp-server": "MCP server detected at https://mcp.fly.io; it requires authentication. Presence is verified (5/6),",
   "webmcp": "Imperative WebMCP API detected (document.modelContext.registerTool in script bundle /phx/assets/js/webmcp-b5d77663c19eacfff5a6dc69d2b8dc2f.js).",
   "cli-tool": "CLI package found on npm: @fly/cli",
   "rest-sdk-packages": "SDK packages found across 4 ecosystems: npm, pypi, go, rubygems",
   "nlweb-ask": "No NLWeb-conformant /ask endpoint found via GET or POST",
   "mpp-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "x402-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "ucp-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "acp-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "ap2-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites"
  }
 },
 {
  "slug": "github",
  "name": "GitHub",
  "domain": "github.com",
  "read": "2026-11-09",
  "score": 66,
  "grade": "C",
  "category": "Developer Tools",
  "summary": "GitHub offers strong developer discoverability and an official SDK package, but lacks an OpenAPI specification for agents to integrate against.",
  "layers": [
   "Discovery 16/17",
   "Access 37/58",
   "Usability 39/73",
   "Payments 0/0"
  ],
  "top": [
   "openapi-spec (fail, 0/7, +4): No OpenAPI/Swagger specification found",
   "oauth-support (fail, 0/5, +3): No OAuth 2.0 or OpenID Connect support detected",
   "scoped-permissions (fail, 0/5, +3): No declared OAuth scopes, security schemes, or scoped-permission documentation found",
   "webmcp (fail, 0/5, +3): No WebMCP support detected - no document.modelContext / navigator.modelContext usage found",
   "json-ld (fail, 0/4, +2.3): No JSON-LD structured data found on homepage",
   "api-error-model (fail, 0/3, +1.8): No typed error model found"
  ],
  "seen": {
   "brand-search-accuracy": "github.com ranks #4 for \"GitHub\" (searched your brand name alone: no main product term from your homepage qualified)",
   "wikipedia-presence": "Wikipedia \"GitHub\" and Wikidata Q364 both verified - domain confirmed on both sources",
   "robots-ai-policy-quality": "AI search crawlers: allowed in 18 of 18 checks (3 crawlers on 6 pages). AI training crawlers: allowed in 12 of 12 checks (2 crawlers on 6 pages), not scored.",
   "noindex-directives": "No noindex on the homepage: no robots, googlebot or bingbot meta tag and no X-Robots-Tag header hides it from search.",
   "sitemap": "Valid sitemap found at https://github.com/sitemap_marketing.xml with 376 entries",
   "content-no-js": "Homepage: 5444 chars with H1, but first content heading is H2, not H1; 2.0% content ratio is below the 5% target.",
   "bot-detection": "Site accessible to 4 agent user-agents (ChatGPT-User, OAI-SearchBot, Claude-User, PerplexityBot).",
   "agent-discovery-file": "No agent discovery file found",
   "a2a-agent-card": "No A2A agent card found at /.well-known/agent-card.json",
   "mcp-well-known-discovery": "No MCP server URL discovered",
   "robots-agent-user-policy": "No applicable crawl or usage restriction found for 3 user-triggered agents (chatgpt-user, claude-user, perplexity-user) on 1 public page: https://github.com/.",
   "llms-txt-exists": "Found the llms.txt at https://github.com/llms.txt.",
   "llms-txt-formatting": "The llms.txt is well-formatted: 142 lines with markdown links, 28,650 characters in total.",
   "json-ld": "No JSON-LD structured data found on homepage",
   "public-api-docs": "Documentation site found at https://docs.github.com",
   "metadata-completeness": "All metadata signals present: canonical URL, lang=\"en\", og:image, og:type",
   "page-token-budget": "All 6 measured pages fit an agent context budget (largest ~3K tokens)",
   "docs-auth-gate": "All 5 sampled pages are publicly readable (5 with substantive content)",
   "openapi-spec": "No OpenAPI/Swagger specification found",
   "developer-portal": "Developer portal found at /developers",
   "markdown-negotiation": "Missing markdown content negotiation. Homepage returned text/html when probed with Accept: text/markdown (expected text/markdown),",
   "agent-ua-markdown": "No probed bot User-Agent (ChatGPT-User, Claude-User, Perplexity-User) receives markdown when requesting HTML.",
   "agent-crawler-reachability": "Reachable to every agent we tested - ChatGPT-User: reachable, OAI-SearchBot: reachable, Claude-User: reachable, PerplexityBot: reachable",
   "public-api": "REST API documentation found at https://docs.github.com/api/pagelist/versions. Best-of-protocols score: 7/7.",
   "oauth-support": "No OAuth 2.0 or OpenID Connect support detected",
   "mcp-server": "First-party MCP server published by product org (npm, @github/mcp-registry, 13510 score). Add live handshake at /.well-known/mcp for full credit.",
   "webmcp": "No WebMCP support detected - no document.modelContext / navigator.modelContext usage found",
   "cli-tool": "CLI package found on npm: @github/copilot",
   "rest-sdk-packages": "SDK packages found in npm, rubygems",
   "nlweb-ask": "No NLWeb-conformant /ask endpoint found via GET or POST",
   "mpp-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "x402-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "ucp-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "acp-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "ap2-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites"
  }
 },
 {
  "slug": "gitlab",
  "name": "GitLab",
  "domain": "gitlab.com",
  "read": "2026-11-09",
  "score": 80,
  "grade": "B",
  "category": "Developer Tools",
  "summary": "GitLab offers strong discovery and developer access, but lacks WebMCP support for in-browser agent tool registration.",
  "layers": [
   "Discovery 17/18",
   "Access 40/49",
   "Usability 51/72",
   "Payments 0/0"
  ],
  "top": [
   "webmcp (fail, 0/5, +3.1): No WebMCP support detected - no document.modelContext / navigator.modelContext usage found (scanned 1 of 1 same-origin script bundle(s) for modelContext registrations)",
   "graphql-error-type-definition (fail, 0/3, +1.9): GraphQL introspection auth-gated and no typed graphql error model documentation found on GraphQL-tagged pages",
   "idempotency-key-support (fail, 0/3, +1.9): GraphQL introspection auth-gated and no idempotency documentation found on GraphQL-tagged pages",
   "content-no-js (warning, 1/3, +1.4): Homepage: 5008 chars, semantic headings (1 H1 + 7 H2s + 16 H3s), 8.4% content ratio. Sampled pages with almost no text without JavaScript (4 of 5): https://gitlab.com/explore/groups (156 chars),",
   "pricing-info (warning, 1/3, +1.4): Pricing link found but no dedicated pricing page at standard path",
   "schema-type-breadth (fail, 0/2, +1.4): No extended schema types found - AI can only answer basic questions about this entity"
  ],
  "seen": {
   "brand-search-accuracy": "gitlab.com ranks #2 for \"GitLab DevSecOps\" and #5 for \"GitLab DevOps\"",
   "wikipedia-presence": "Wikipedia \"GitLab\" and Wikidata Q16639197 both verified - domain confirmed on both sources",
   "robots-ai-policy-quality": "AI search crawlers: allowed in 18 of 18 checks (3 crawlers on 6 pages). AI training crawlers: allowed in 12 of 12 checks (2 crawlers on 6 pages), not scored.",
   "noindex-directives": "No noindex on the homepage: no robots, googlebot or bingbot meta tag and no X-Robots-Tag header hides it from search.",
   "sitemap": "Valid sitemap found at /sitemap.xml with 19358 entries",
   "content-no-js": "Homepage: 5008 chars, semantic headings (1 H1 + 7 H2s + 16 H3s), 8.4% content ratio.",
   "bot-detection": "Site accessible to 4 agent user-agents (ChatGPT-User, OAI-SearchBot, Claude-User, PerplexityBot).",
   "agent-discovery-file": "Can't verify: a bot shield answered our request to gitlab.com/.well-known/agent-skills/index.json (HTTP 403) instead of the site.",
   "a2a-agent-card": "Can't verify: a bot shield answered our request to gitlab.com/.well-known/agent-card.json (HTTP 403) instead of the site. That is not counted against the site.",
   "mcp-well-known-discovery": "MCP server referenced in llms.txt",
   "robots-agent-user-policy": "No applicable crawl or usage restriction found for 3 user-triggered agents (chatgpt-user, claude-user, perplexity-user) on 1 public page: https://gitlab.com/.",
   "llms-txt-exists": "Found the llms.txt at https://docs.gitlab.com/llms.txt.",
   "llms-txt-formatting": "The llms.txt is well-formatted with markdown links, but at 87,620 characters it exceeds the 30,000-character recommendation for a navigation index.",
   "json-ld": "JSON-LD Organization found - missing description and one of sameAs / logo / address / contactPoint on this entity",
   "public-api-docs": "Documentation site found at https://docs.gitlab.com",
   "metadata-completeness": "All metadata signals present: canonical URL, lang=\"en-US\", og:image, og:type",
   "page-token-budget": "All 6 measured pages fit an agent context budget (largest ~1K tokens)",
   "docs-auth-gate": "All 5 sampled pages are publicly readable (1 with substantive content)",
   "openapi-spec": "Can't verify: a bot shield answered our request to gitlab.com/swagger.json (HTTP 403) instead of the site. That is not counted against the site.",
   "developer-portal": "Developer portal found at /developers",
   "markdown-negotiation": "Missing markdown content negotiation. Homepage returned text/plain when probed with Accept: text/markdown (expected text/markdown),",
   "agent-ua-markdown": "No probed bot User-Agent (ChatGPT-User, Claude-User, Perplexity-User) receives markdown when requesting HTML.",
   "agent-crawler-reachability": "Reachable to every agent we tested - ChatGPT-User: reachable, OAI-SearchBot: reachable, Claude-User: reachable, PerplexityBot: reachable",
   "public-api": "REST API documentation found at https://docs.gitlab.com/ja-jp/. GraphQL endpoint at https://api.gitlab.com/graphql is reachable;",
   "oauth-support": "OAuth authorization server metadata at https://support.gitlab.com/mcp/oauth",
   "mcp-server": "MCP server detected at https://support.gitlab.com/mcp; it requires authentication. Presence is verified (5/6),",
   "webmcp": "No WebMCP support detected - no document.modelContext / navigator.modelContext usage found (scanned 1 of 1 same-origin script bundle(s) for modelContext.",
   "cli-tool": "CLI package found on npm: @gitlab/orbit",
   "rest-sdk-packages": "SDK packages found in npm, rubygems",
   "nlweb-ask": "No NLWeb-conformant /ask endpoint found via GET or POST",
   "mpp-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "x402-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "ucp-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "acp-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "ap2-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites"
  }
 },
 {
  "slug": "gocardless",
  "name": "GoCardless",
  "domain": "gocardless.com",
  "read": "2026-11-09",
  "score": 47,
  "grade": "D",
  "category": "Payments & Fintech",
  "summary": "GoCardless offers SDKs for developers, but lacks an OpenAPI specification.",
  "layers": [
   "Discovery 8/22",
   "Access 34/64",
   "Usability 26/54",
   "Payments 0/0"
  ],
  "top": [
   "agentic-search-specific (fail, 0/6, +6.1): Agent searched for \"cardless\" developer resources but found nothing relevant",
   "mcp-server (fail, 0/6, +4.9): No MCP server or manifest found",
   "openapi-spec (fail, 0/7, +3.6): No OpenAPI/Swagger specification found",
   "json-error-responses (fail, 0/4, +3.3): API does not return JSON error responses (or no API detected)",
   "ard-catalog (fail, 0/3, +3): No /.well-known/ai-catalog.json",
   "mcp-resource-listing (fail, 0/3, +2.5): MCP server found but connection failed - cannot list resources"
  ],
  "seen": {
   "brand-search-accuracy": "gocardless.com appears at position #3 in a clean brand-name search for \"GoCardless payments fintech\" (4 total matches)",
   "wikipedia-presence": "Wikipedia \"GoCardless\" and Wikidata Q111418549 both verified - domain confirmed on both sources",
   "robots-ai-policy-quality": "No AI crawler directives in robots.txt",
   "sitemap": "Valid sitemap found at https://gocardless.com/sitemap-index.xml with multiple sitemaps entries",
   "content-no-js": "7637 chars with H1 but flat heading structure",
   "bot-detection": "Could not test bot user agents",
   "agent-discovery-file": "No agent discovery file found",
   "a2a-agent-card": "No A2A agent card found at /.well-known/agent-card.json",
   "mcp-well-known-discovery": "MCP server referenced in llms.txt",
   "robots-agent-user-policy": "No robots.txt restriction on user-triggered agents - they can read the site",
   "llms-txt-exists": "Found the llms.txt at https://docs.gocardless.com/llms.txt.",
   "llms-txt-formatting": "The llms.txt is well-formatted: 136 lines with markdown links, 20,693 characters in total.",
   "json-ld": "No JSON-LD structured data found on homepage",
   "public-api-docs": "Documentation site found at https://docs.gocardless.com",
   "metadata-completeness": "All metadata signals present: canonical URL, lang=\"en-GB\", og:image, og:type",
   "page-token-budget": "All 6 measured pages fit an agent context budget (largest ~3K tokens)",
   "docs-auth-gate": "All 5 sampled pages are publicly readable (5 with substantive content)",
   "openapi-spec": "No OpenAPI/Swagger specification found",
   "developer-portal": "Developer portal found at /developers",
   "markdown-negotiation": "Returns markdown when requested via Accept header",
   "agent-ua-markdown": "No probed bot User-Agent (GPTBot, ClaudeBot, ChatGPT-User, PerplexityBot, Google-Extended, Applebot-Extended, ora-agent,",
   "agent-crawler-reachability": "No major AI crawler can reach the homepage - ChatGPT-User: unknown, ClaudeBot: unknown, Google-Extended: unknown, ora-agent: unknown, DeepSeekBot: unknown",
   "public-api": "REST API documentation found at https://docs.gocardless.com/docs/getting-started. Best-of-protocols score: 7/7.",
   "oauth-support": "OAuth mentioned in documentation at https://docs.gocardless.com but no OAuth or OpenID Connect endpoint responded",
   "mcp-server": "No MCP server or manifest found",
   "webmcp": "No WebMCP support detected - no tool-attribute forms and no document.modelContext / navigator.modelContext usage found",
   "cli-tool": "CLI tool found on PyPI: gocardless",
   "rest-sdk-packages": "SDK packages found across 3 ecosystems: npm, pypi, rubygems",
   "nlweb-ask": "No NLWeb-conformant /ask endpoint found via GET or POST",
   "mpp-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "x402-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "ucp-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "acp-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "ap2-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites"
  }
 },
 {
  "slug": "google-cloud",
  "name": "Google Cloud",
  "domain": "cloud.google.com",
  "read": "2026-11-09",
  "score": 51,
  "grade": "C",
  "category": "Infrastructure",
  "summary": "Google Cloud offers strong developer resource discoverability and SDK packages, but lacks JavaScript-free content for AI crawlers.",
  "layers": [
   "Discovery 15/17",
   "Access 25/55",
   "Usability 17/48",
   "Payments 0/0"
  ],
  "top": [
   "scoped-permissions (fail, 0/5, +4.6): No declared OAuth scopes, security schemes, or scoped-permission documentation found",
   "webmcp (fail, 0/5, +4.6): No WebMCP support detected - no document.modelContext / navigator.modelContext usage found",
   "openapi-spec (fail, 0/7, +4.2): No OpenAPI/Swagger specification found",
   "json-error-responses (fail, 0/4, +3.7): API does not return JSON error responses (or no API detected)",
   "mcp-server (warning, 2/6, +3.7): MCP mentioned at https://developers.home.google.com/mcp/developer but no standard manifest endpoint found",
   "public-api (warning, 3/7, +3.7): API described in documentation at https://docs.cloud.google.com but no machine-verifiable API surface confirmed. Best-of-protocols score: 3/7."
  ],
  "seen": {
   "brand-search-accuracy": "cloud.google.com ranks #6 for \"Google Cloud services\" and appears 3 times in the top 10",
   "wikipedia-presence": "Wikipedia \"Google Cloud Platform\" and Wikidata Q17054505 both verified - domain confirmed on both sources",
   "robots-ai-policy-quality": "AI search crawlers: allowed in 3 of 3 checks (3 crawlers on 1 page). AI training crawlers: allowed in 2 of 2 checks (2 crawlers on 1 page), not scored.",
   "noindex-directives": "No noindex on the homepage: no robots, googlebot or bingbot meta tag and no X-Robots-Tag header hides it from search.",
   "sitemap": "Valid sitemap found at https://cloud.google.com/sitemap.xml with multiple sitemaps entries",
   "content-no-js": "Very little text content (46 chars) - likely JS-rendered, invisible to AI crawlers",
   "bot-detection": "Site accessible to 4 agent user-agents (ChatGPT-User, OAI-SearchBot, Claude-User, PerplexityBot).",
   "agent-discovery-file": "No agent discovery file found",
   "a2a-agent-card": "No A2A agent card found at /.well-known/agent-card.json",
   "mcp-well-known-discovery": "No MCP server URL discovered",
   "robots-agent-user-policy": "No applicable crawl or usage restriction found for 3 user-triggered agents (chatgpt-user, claude-user,",
   "llms-txt-exists": "A file is present at https://cloud.google.com/.well-known/llms.txt, but it returns an HTML page rather than a plain-text llms.txt.",
   "llms-txt-formatting": "No llms.txt found to evaluate quality",
   "json-ld": "No JSON-LD structured data found on homepage",
   "public-api-docs": "Documentation site found at https://docs.cloud.google.com",
   "metadata-completeness": "All metadata signals present: canonical URL, lang=\"en-US\", og:image, og:type",
   "page-token-budget": "All 1 measured page fit an agent context budget (largest ~1K tokens)",
   "docs-auth-gate": "No content pages sampled",
   "openapi-spec": "No OpenAPI/Swagger specification found",
   "developer-portal": "Developer portal found at /developers",
   "markdown-negotiation": "Missing markdown content negotiation. Homepage returned text/html when probed with Accept: text/markdown (expected text/markdown),",
   "agent-ua-markdown": "No probed bot User-Agent (ChatGPT-User, Claude-User, Perplexity-User) receives markdown when requesting HTML.",
   "agent-crawler-reachability": "Reachable to every agent we tested - ChatGPT-User: reachable, OAI-SearchBot: reachable, Claude-User: reachable, PerplexityBot: reachable",
   "public-api": "API described in documentation at https://docs.cloud.google.com but no machine-verifiable API surface confirmed. Best-of-protocols score: 3/7.",
   "oauth-support": "OpenID Connect discovery endpoint found at https://accounts.cloud.google.com",
   "mcp-server": "MCP mentioned at https://developers.home.google.com/mcp/developer but no standard manifest endpoint found",
   "webmcp": "No WebMCP support detected - no document.modelContext / navigator.modelContext usage found",
   "cli-tool": "No CLI tool found",
   "rest-sdk-packages": "SDK packages found in npm, rubygems",
   "nlweb-ask": "No NLWeb-conformant /ask endpoint found via GET or POST",
   "mpp-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "x402-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "ucp-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "acp-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "ap2-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites"
  }
 },
 {
  "slug": "hashicorp",
  "name": "HashiCorp",
  "domain": "hashicorp.com",
  "read": "2026-11-09",
  "score": 60,
  "grade": "C",
  "category": "Infrastructure",
  "summary": "HashiCorp offers developer resource discoverability, but lacks an OpenAPI specification.",
  "layers": [
   "Discovery 14/15",
   "Access 34/57",
   "Usability 24/56",
   "Payments 0/0"
  ],
  "top": [
   "openapi-spec (fail, 0/7, +4.1): No OpenAPI/Swagger specification found",
   "scoped-permissions (fail, 0/5, +4): No declared OAuth scopes, security schemes, or scoped-permission documentation found",
   "webmcp (fail, 0/5, +4): No WebMCP support detected - no tool-attribute forms and no document.modelContext / navigator.modelContext usage found (scanned 8 of 42 same-origin script bundle(s) for modelContext registrations)",
   "json-error-responses (fail, 0/4, +3.2): API does not return JSON error responses (or no API detected)",
   "mcp-server (warning, 2/6, +3.2): MCP mentioned at https://developer.hashicorp.com/terraform/mcp-server/deploy but no standard manifest endpoint found",
   "public-api (warning, 3/7, +3.2): API described in documentation at https://developer.hashicorp.com but no machine-verifiable API surface confirmed. Best-of-protocols score: 3/7."
  ],
  "seen": {
   "brand-search-accuracy": "hashicorp.com ranks #2 for \"HashiCorp | An IBM Company cloud security\"",
   "wikipedia-presence": "Wikipedia \"HashiCorp\" and Wikidata Q21463167 both verified - domain confirmed on both sources",
   "robots-ai-policy-quality": "AI search crawlers: allowed in 3 of 3 checks (3 crawlers on 1 page). AI training crawlers: allowed in 2 of 2 checks (2 crawlers on 1 page), not scored.",
   "noindex-directives": "No noindex on the homepage: no robots, googlebot or bingbot meta tag and no X-Robots-Tag header hides it from search.",
   "sitemap": "Valid sitemap found at https://hashicorp.com/sitemap.xml with 3897 entries",
   "content-no-js": "6252 chars, semantic headings (1 H1 + 9 H2s + 1 H3s), 8.6% content ratio",
   "bot-detection": "Site accessible to 1 agent user-agents (Claude-User). Can't verify ChatGPT-User, OAI-SearchBot, PerplexityBot. A bot shield, rate limit,",
   "agent-discovery-file": "No agent discovery file found",
   "a2a-agent-card": "No A2A agent card found at /.well-known/agent-card.json",
   "mcp-well-known-discovery": "No MCP server URL discovered",
   "robots-agent-user-policy": "No applicable crawl or usage restriction found for 3 user-triggered agents (chatgpt-user, claude-user,",
   "llms-txt-exists": "No llms.txt found at /llms.txt or /.well-known/llms.txt.",
   "llms-txt-formatting": "No llms.txt found to evaluate quality",
   "json-ld": "No JSON-LD structured data found on homepage",
   "public-api-docs": "Documentation site found at https://developer.hashicorp.com",
   "metadata-completeness": "All metadata signals present: canonical URL, lang=\"en\", og:image, og:type",
   "page-token-budget": "All 6 measured pages fit an agent context budget (largest ~6K tokens)",
   "docs-auth-gate": "All 5 sampled pages are publicly readable (5 with substantive content)",
   "openapi-spec": "No OpenAPI/Swagger specification found",
   "developer-portal": "Developer documentation portal found at https://developer.hashicorp.com",
   "markdown-negotiation": "Missing markdown content negotiation. Homepage returned text/html when probed with Accept: text/markdown (expected text/markdown),",
   "agent-ua-markdown": "No probed bot User-Agent (GPTBot, ClaudeBot, ChatGPT-User, PerplexityBot, Google-Extended, Applebot-Extended, ora-agent,",
   "agent-crawler-reachability": "Reachable to Claude-User. A bot shield, rate limit, or timeout stopped our test request. Real crawlers come from their own networks and may get through.",
   "public-api": "API described in documentation at https://developer.hashicorp.com but no machine-verifiable API surface confirmed. Best-of-protocols score: 3/7.",
   "oauth-support": "OpenID Connect discovery endpoint found at https://auth.hashicorp.com",
   "mcp-server": "MCP mentioned at https://developer.hashicorp.com/terraform/mcp-server/deploy but no standard manifest endpoint found",
   "webmcp": "No WebMCP support detected - no tool-attribute forms and no document.modelContext / navigator.modelContext usage found (scanned 8 of 42 same-origin script.",
   "cli-tool": "No CLI tool found",
   "rest-sdk-packages": "SDK packages found in npm, rubygems",
   "nlweb-ask": "No NLWeb-conformant /ask endpoint found via GET or POST",
   "mpp-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "x402-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "ucp-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "acp-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "ap2-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites"
  }
 },
 {
  "slug": "heroku",
  "name": "Heroku",
  "domain": "heroku.com",
  "read": "2026-11-09",
  "score": 73,
  "grade": "B",
  "category": "Infrastructure",
  "summary": "Heroku offers CLI and MCP server integration, but lacks OpenAPI specification and scoped OAuth permissions documentation.",
  "layers": [
   "Discovery 11/16",
   "Access 43/61",
   "Usability 53/69",
   "Payments 0/0"
  ],
  "top": [
   "openapi-spec (fail, 0/7, +3.8): No OpenAPI/Swagger specification found",
   "scoped-permissions (fail, 0/5, +3.2): No declared OAuth scopes, security schemes, or scoped-permission documentation found",
   "webmcp (fail, 0/5, +3.2): No WebMCP support detected - no document.modelContext / navigator.modelContext usage found (scanned 24 of 24 same-origin script bundle(s) for modelContext registrations)",
   "agentic-search-specific (warning, 1/3, +2.8): In a search for your API docs, none of the 10 results is your official docs. In a search for your MCP server, SDK or CLI, we found your MCP server at #2 (https://github.com/heroku/heroku-mcp-server),",
   "brand-search-accuracy (warning, 1/3, +2.8): heroku.com ranks #7 for \"Heroku\" (searched your brand name alone: no main product term from your homepage qualified)",
   "agent-instruction (fail, 0/3, +1.6): No agent instruction file with when-to-use guidance found"
  ],
  "seen": {
   "brand-search-accuracy": "heroku.com ranks #7 for \"Heroku\" (searched your brand name alone: no main product term from your homepage qualified)",
   "wikipedia-presence": "Wikipedia \"Heroku\" and Wikidata Q2350702 both verified - domain confirmed on both sources",
   "robots-ai-policy-quality": "AI search crawlers: allowed in 3 of 3 checks (3 crawlers on 1 page). AI training crawlers: allowed in 0 of 2 checks (2 crawlers on 1 page), not scored.",
   "noindex-directives": "No noindex on the homepage: no robots, googlebot or bingbot meta tag and no X-Robots-Tag header hides it from search.",
   "sitemap": "Valid sitemap found at https://www.heroku.com/sitemap_index.xml with multiple sitemaps entries",
   "content-no-js": "Homepage: 7285 chars, semantic headings (1 H1 + 9 H2s + 25 H3s), 8.6% content ratio. 5 of 5 sampled inner pages have text without JavaScript.",
   "bot-detection": "Site accessible to 4 agent user-agents (ChatGPT-User, OAI-SearchBot, Claude-User, PerplexityBot).",
   "agent-discovery-file": "No agent discovery file found",
   "a2a-agent-card": "No A2A agent card found at /.well-known/agent-card.json",
   "mcp-well-known-discovery": "MCP server referenced in llms.txt",
   "robots-agent-user-policy": "No applicable crawl or usage restriction found for 3 user-triggered agents (chatgpt-user, claude-user, perplexity-user) on 1 public page: https://heroku.com/.",
   "llms-txt-exists": "Found the llms.txt at https://devcenter.heroku.com/llms.txt.",
   "llms-txt-formatting": "The llms.txt is well-formatted: 80 lines with markdown links, 9,020 characters in total.",
   "json-ld": "JSON-LD Person found - missing description, url, and one of sameAs / jobTitle / worksFor on this entity",
   "public-api-docs": "Documentation site found at https://devcenter.heroku.com",
   "metadata-completeness": "All metadata signals present: canonical URL, lang=\"en-US\", og:image, og:type",
   "page-token-budget": "All 6 measured pages fit an agent context budget (largest ~2K tokens)",
   "docs-auth-gate": "All 5 sampled pages are publicly readable (5 with substantive content)",
   "openapi-spec": "No OpenAPI/Swagger specification found",
   "developer-portal": "Developer portal found at /developers",
   "markdown-negotiation": "Missing markdown content negotiation. Homepage returned text/html when probed with Accept: text/markdown (expected text/markdown),",
   "agent-ua-markdown": "No probed bot User-Agent (ChatGPT-User, Claude-User, Perplexity-User) receives markdown when requesting HTML.",
   "agent-crawler-reachability": "Reachable to every agent we tested - ChatGPT-User: reachable, OAI-SearchBot: reachable, Claude-User: reachable, PerplexityBot: reachable",
   "public-api": "REST API documentation found at /api. Best-of-protocols score: 7/7.",
   "oauth-support": "OAuth authorization server metadata at https://mcp.heroku.com",
   "mcp-server": "MCP server detected at https://mcp.heroku.com/mcp; it requires authentication. Presence is verified (5/6),",
   "webmcp": "No WebMCP support detected - no document.modelContext / navigator.modelContext usage found (scanned 24 of 24 same-origin script bundle(s) for modelContext.",
   "cli-tool": "CLI package found on npm: heroku-cli",
   "rest-sdk-packages": "SDK packages found across 4 ecosystems: npm, pypi, go, rubygems",
   "nlweb-ask": "No NLWeb-conformant /ask endpoint found via GET or POST",
   "mpp-support": "No MPP (Machine Payments Protocol) support detected",
   "x402-support": "No x402 payment protocol support detected",
   "ucp-support": "no UCP (Universal Commerce Protocol) signals detected",
   "acp-support": "OPTIONS allows POST at https://api.heroku.com/checkout_sessions but POST 400 returned no ACP-shaped response",
   "ap2-support": "No AP2 (Agent Payments Protocol) signals detected"
  }
 },
 {
  "slug": "hubspot",
  "name": "HubSpot",
  "domain": "hubspot.com",
  "read": "2026-11-09",
  "score": 71,
  "grade": "B",
  "category": "CRM",
  "summary": "HubSpot offers strong developer resources and SDK packages, but lacks a published OpenAPI specification for agents to discover its endpoints.",
  "layers": [
   "Discovery 15/18",
   "Access 45/60",
   "Usability 42/68",
   "Payments 0/0"
  ],
  "top": [
   "openapi-spec (fail, 0/7, +3.9): No OpenAPI/Swagger specification found",
   "scoped-permissions (fail, 0/5, +3.3): No declared OAuth scopes, security schemes, or scoped-permission documentation found",
   "webmcp (fail, 0/5, +3.3): No WebMCP support detected - no document.modelContext / navigator.modelContext usage found (scanned 27 of 27 same-origin script bundle(s) for modelContext registrations)",
   "json-error-responses (fail, 0/4, +2.6): API does not return JSON error responses (or no API detected)",
   "public-api (warning, 3/7, +2.6): API described in documentation at https://developers.hubspot.com but no machine-verifiable API surface confirmed. Best-of-protocols score: 3/7.",
   "brand-search-accuracy (warning, 1/3, +2.5): hubspot.com ranks #6 for \"HubSpot\" (searched your brand name alone: no main product term from your homepage qualified)"
  ],
  "seen": {
   "brand-search-accuracy": "hubspot.com ranks #6 for \"HubSpot\" (searched your brand name alone: no main product term from your homepage qualified)",
   "wikipedia-presence": "Wikipedia \"HubSpot\" and Wikidata Q5926631 both verified - domain confirmed on both sources",
   "robots-ai-policy-quality": "AI search crawlers: allowed in 3 of 3 checks (3 crawlers on 1 page). AI training crawlers: allowed in 2 of 2 checks (2 crawlers on 1 page), not scored.",
   "noindex-directives": "No noindex on the homepage: no robots, googlebot or bingbot meta tag and no X-Robots-Tag header hides it from search.",
   "sitemap": "Valid sitemap found at /sitemap.xml with 3004 entries",
   "content-no-js": "Homepage: 5198 chars with H1, but 2.1% content ratio is below the 5% target. 5 of 5 sampled inner pages have text without JavaScript.",
   "bot-detection": "Site accessible to 4 agent user-agents (ChatGPT-User, OAI-SearchBot, Claude-User, PerplexityBot).",
   "agent-discovery-file": "No agent discovery file found",
   "a2a-agent-card": "No A2A agent card found at /.well-known/agent-card.json",
   "mcp-well-known-discovery": "MCP server at https://mcp.hubspot.com - list its server card, hosted on your own domain, in /.well-known/ai-catalog.json so MCP clients can discover it",
   "robots-agent-user-policy": "No applicable crawl or usage restriction found for 3 user-triggered agents (chatgpt-user, claude-user, perplexity-user) on 1 public page: https://hubspot.com/.",
   "llms-txt-exists": "Found the llms.txt at https://developers.hubspot.com/llms.txt.",
   "llms-txt-formatting": "The llms.txt at https://hubspot.com/llms.txt is well-formatted with markdown links,",
   "json-ld": "Rich JSON-LD identity: Organization with name, description, url, and sameAs/logo/address (1 block(s))",
   "public-api-docs": "Documentation site found at https://developers.hubspot.com",
   "metadata-completeness": "3/4 metadata signals present - missing: og:type",
   "page-token-budget": "All 6 measured pages fit an agent context budget (largest ~3K tokens)",
   "docs-auth-gate": "All 5 sampled pages are publicly readable (5 with substantive content)",
   "openapi-spec": "No OpenAPI/Swagger specification found",
   "developer-portal": "Developer documentation portal found at https://developers.hubspot.com",
   "markdown-negotiation": "Missing markdown content negotiation. Homepage returned text/html when probed with Accept: text/markdown (expected text/markdown),",
   "agent-ua-markdown": "No probed bot User-Agent (ChatGPT-User, Claude-User, Perplexity-User) receives markdown when requesting HTML.",
   "agent-crawler-reachability": "Reachable to every agent we tested - ChatGPT-User: reachable, OAI-SearchBot: reachable, Claude-User: reachable, PerplexityBot: reachable",
   "public-api": "API described in documentation at https://developers.hubspot.com but no machine-verifiable API surface confirmed. Best-of-protocols score: 3/7.",
   "oauth-support": "OAuth authorization server metadata at https://mcp.hubspot.com",
   "mcp-server": "MCP server detected at https://mcp.hubspot.com; it requires authentication. Presence is verified (5/6),",
   "webmcp": "No WebMCP support detected - no document.modelContext / navigator.modelContext usage found (scanned 27 of 27 same-origin script bundle(s) for modelContext.",
   "cli-tool": "CLI package found on npm: @hubspot/cli",
   "rest-sdk-packages": "SDK packages found in npm, rubygems",
   "nlweb-ask": "No NLWeb-conformant /ask endpoint found via GET or POST",
   "mpp-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "x402-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "ucp-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "acp-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "ap2-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites"
  }
 },
 {
  "slug": "huggingface",
  "name": "Hugging Face",
  "domain": "huggingface.co",
  "read": "2026-11-09",
  "score": 82,
  "grade": "B",
  "category": "AI & ML",
  "summary": "Hugging Face excels at model discovery and access through comprehensive registries, but lacks WebMCP support for agent integration.",
  "layers": [
   "Discovery 21/21",
   "Access 46/61",
   "Usability 85/108",
   "Payments 0/0"
  ],
  "top": [
   "json-ld (fail, 0/4, +2.2): No JSON-LD structured data found on homepage",
   "webmcp (fail, 0/5, +2.1): No WebMCP support detected - no document.modelContext / navigator.modelContext usage found (scanned 1 of 1 same-origin script bundle(s) for modelContext registrations)",
   "mcp-app-registry (fail, 0/4, +1.6): No MCP Apps support detected - this product has an in-agent UI surface but exposes no ui:// resources or tool UI metadata for agents to render.",
   "api-error-model (fail, 0/3, +1.2): No typed error model found in OpenAPI spec",
   "idempotency-key-support (fail, 0/3, +1.2): No REST Idempotency-Key support detected",
   "json-ld-entity-linking (fail, 0/2, +1.1): No JSON-LD found - no entity linking possible"
  ],
  "seen": {
   "brand-search-accuracy": "huggingface.co ranks #3 for \"Hugging Face ML collaboration platform\"",
   "wikipedia-presence": "Wikipedia \"Hugging Face\" and Wikidata Q108943604 both verified - domain confirmed on both sources",
   "robots-ai-policy-quality": "AI search crawlers: allowed in 18 of 18 checks (3 crawlers on 6 pages). AI training crawlers: allowed in 12 of 12 checks (2 crawlers on 6 pages), not scored.",
   "noindex-directives": "No noindex on the homepage: no robots, googlebot or bingbot meta tag and no X-Robots-Tag header hides it from search.",
   "sitemap": "Valid sitemap found at https://huggingface.co/sitemap.xml with multiple sitemaps entries",
   "content-no-js": "3470 chars with H1, but heading hierarchy skips H2 to H4; 3.3% content ratio is below the 5% target",
   "bot-detection": "Site accessible to 4 agent user-agents (ChatGPT-User, OAI-SearchBot, Claude-User, PerplexityBot).",
   "agent-discovery-file": "Agent Skills index (agentskills.io) found at /.well-known/agent-skills/index.json with 25 skill(s)",
   "a2a-agent-card": "No A2A agent card found at /.well-known/agent-card.json",
   "mcp-well-known-discovery": "MCP server card listed in /.well-known/ai-catalog.json",
   "robots-agent-user-policy": "No applicable crawl or usage restriction found for 3 user-triggered agents (chatgpt-user, claude-user,",
   "llms-txt-exists": "No llms.txt found at /llms.txt or /.well-known/llms.txt.",
   "llms-txt-formatting": "No llms.txt found to evaluate quality",
   "json-ld": "No JSON-LD structured data found on homepage",
   "public-api-docs": "API/docs link found on homepage and resolves: /docs",
   "metadata-completeness": "3/4 metadata signals present - missing: HTML lang attribute",
   "page-token-budget": "All 6 measured pages fit an agent context budget (largest ~3K tokens)",
   "docs-auth-gate": "All 5 sampled pages are publicly readable (5 with substantive content)",
   "openapi-spec": "OpenAPI spec found at https://huggingface.co/.well-known/openapi.json (version: 3.1.0)",
   "developer-portal": "Developer portal found at /developers",
   "markdown-negotiation": "Missing markdown content negotiation. Homepage returned text/html when probed with Accept: text/markdown (expected text/markdown),",
   "agent-ua-markdown": "No probed bot User-Agent (ChatGPT-User, Claude-User, Perplexity-User) receives markdown when requesting HTML.",
   "agent-crawler-reachability": "Reachable to every agent we tested - ChatGPT-User: reachable, OAI-SearchBot: reachable, Claude-User: reachable, PerplexityBot: reachable",
   "public-api": "Documented REST API detected; endpoints require authentication (API key / OAuth), which is expected for agent access. Best-of-protocols score: 7/7.",
   "oauth-support": "OpenID Connect discovery endpoint found at https://huggingface.co",
   "mcp-server": "MCP server connected via Streamable HTTP - huggingface.co/mcp v0.4.31 (protocol 2025-11-25; extensions: io.modelcontextprotocol/skills)",
   "webmcp": "No WebMCP support detected - no document.modelContext / navigator.modelContext usage found (scanned 1 of 1 same-origin script bundle(s) for modelContext.",
   "cli-tool": "CLI package found on npm: @huggingface/hub",
   "rest-sdk-packages": "SDK packages found in npm, pypi",
   "nlweb-ask": "No NLWeb-conformant /ask endpoint found via GET or POST",
   "mpp-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "x402-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "ucp-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "acp-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "ap2-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites"
  }
 },
 {
  "slug": "intercom",
  "name": "Intercom",
  "domain": "intercom.com",
  "read": "2026-11-09",
  "score": 81,
  "grade": "B",
  "category": "Communication & Support",
  "summary": "Intercom offers strong REST API coverage and a published OpenAPI spec, but lacks WebMCP support, which would let agents interact with its pages directly.",
  "layers": [
   "Discovery 12/14",
   "Access 55/63",
   "Usability 50/67",
   "Payments 0/0"
  ],
  "top": [
   "webmcp (fail, 0/5, +3.3): No WebMCP support detected - no document.modelContext / navigator.modelContext usage found",
   "json-error-responses (fail, 0/4, +2.7): API does not return JSON error responses (or no API detected)",
   "scoped-permissions (warning, 2/5, +2): Scoped permissions described at https://www.intercom.com, but no machine-readable scope declaration found (OpenAPI oauth2 scopes or RFC 9728 scopes_supported)",
   "ard-catalog (fail, 0/1, +1.6): No /.well-known/ard.json, no same-site rel=\"ard\" link, and no legacy /.well-known/ai-catalog.json",
   "mcp-registry-listed (fail, 0/1, +1.6): No verified entry in the official MCP Registry or on Smithery, and no npm or PyPI package of yours that runs as an MCP server. To pass,",
   "agent-discovery-file (fail, 0/2, +1.1): No agent discovery file found"
  ],
  "seen": {
   "brand-search-accuracy": "intercom.com ranks #3 for \"Intercom\" (searched your brand name alone: no main product term from your homepage qualified)",
   "wikipedia-presence": "Wikidata Q48965215 (Intercom) verified - draft a Wikipedia page with cited references to complete knowledge graph coverage",
   "robots-ai-policy-quality": "AI search crawlers: allowed in 3 of 3 checks (3 crawlers on 1 page). AI training crawlers: allowed in 2 of 2 checks (2 crawlers on 1 page), not scored.",
   "noindex-directives": "No noindex on the homepage: no robots, googlebot or bingbot meta tag and no X-Robots-Tag header hides it from search.",
   "sitemap": "Valid sitemap found at https://www.intercom.com/sitemap.xml with multiple sitemaps entries",
   "content-no-js": "Homepage: 7283 chars with H1, but 2.0% content ratio is below the 5% target. 1 of 1 sampled inner page has text without JavaScript (4 skipped).",
   "bot-detection": "Site accessible to 4 agent user-agents (ChatGPT-User, OAI-SearchBot, Claude-User, PerplexityBot).",
   "agent-discovery-file": "No agent discovery file found",
   "a2a-agent-card": "No A2A agent card found at /.well-known/agent-card.json",
   "mcp-well-known-discovery": "MCP server discoverable via server-card.json at /.well-known/mcp/",
   "robots-agent-user-policy": "No applicable crawl or usage restriction found for 3 user-triggered agents (chatgpt-user, claude-user,",
   "llms-txt-exists": "Found the llms.txt at https://www.intercom.com/llms.txt.",
   "llms-txt-formatting": "The llms.txt is well-formatted: 173 lines with markdown links, 10,277 characters in total.",
   "json-ld": "Rich JSON-LD identity: Product with name, description, url, and offers/brand (1 block(s))",
   "public-api-docs": "Documentation site found at https://www.intercom.com",
   "metadata-completeness": "All metadata signals present: canonical URL, lang=\"en\", og:image, og:type",
   "page-token-budget": "All 6 measured pages fit an agent context budget (largest ~4K tokens)",
   "docs-auth-gate": "All 5 sampled pages are publicly readable (5 with substantive content)",
   "openapi-spec": "OpenAPI spec (YAML) found at https://developers.intercom.com/_bundle/docs/references/@2.15/rest-api/api.intercom.io.yaml",
   "developer-portal": "Developer portal found at /developers",
   "markdown-negotiation": "Returns markdown when requested via Accept header",
   "agent-ua-markdown": "No probed bot User-Agent (ChatGPT-User, Claude-User, Perplexity-User) receives markdown when requesting HTML.",
   "agent-crawler-reachability": "Reachable to every agent we tested - ChatGPT-User: reachable, OAI-SearchBot: reachable, Claude-User: reachable, PerplexityBot: reachable",
   "public-api": "REST API documentation found at /api. Best-of-protocols score: 7/7.",
   "oauth-support": "OAuth authorization server metadata at https://mcp.intercom.com",
   "mcp-server": "MCP server detected at https://mcp.intercom.com/mcp; it requires authentication. Presence is verified (5/6),",
   "webmcp": "No WebMCP support detected - no document.modelContext / navigator.modelContext usage found",
   "cli-tool": "CLI tool mentioned in llms.txt",
   "rest-sdk-packages": "SDK packages found in npm, go",
   "nlweb-ask": "NLWeb /ask endpoint exists but requires authentication (HTTP 403, via POST)",
   "mpp-support": "No MPP (Machine Payments Protocol) support detected",
   "x402-support": "No x402 payment protocol support detected",
   "ucp-support": "no UCP (Universal Commerce Protocol) signals detected",
   "acp-support": "no ACP (Agentic Commerce Protocol) signals detected",
   "ap2-support": "No AP2 (Agent Payments Protocol) signals detected"
  }
 },
 {
  "slug": "linear",
  "name": "Linear",
  "domain": "linear.app",
  "read": "2026-11-09",
  "score": 69,
  "grade": "C",
  "category": "Productivity",
  "summary": "Linear offers strong agent-ready discovery and a published SDK, but lacks an OpenAPI specification for its API.",
  "layers": [
   "Discovery 11/14",
   "Access 41/63",
   "Usability 44/66",
   "Payments 0/0"
  ],
  "top": [
   "openapi-spec (fail, 0/7, +3.7): No OpenAPI/Swagger specification found",
   "scoped-permissions (fail, 0/5, +3.4): No declared OAuth scopes, security schemes, or scoped-permission documentation found",
   "webmcp (fail, 0/5, +3.4): No WebMCP support detected - no document.modelContext / navigator.modelContext usage found",
   "brand-search-accuracy (warning, 1/3, +3.2): linear.app ranks #9 for \"Linear\" (searched your brand name alone: no main product term from your homepage qualified)",
   "json-error-responses (fail, 0/4, +2.7): API does not return JSON error responses (or no API detected)",
   "json-ld (fail, 0/4, +2.1): No JSON-LD structured data found on homepage"
  ],
  "seen": {
   "brand-search-accuracy": "linear.app ranks #9 for \"Linear\" (searched your brand name alone: no main product term from your homepage qualified)",
   "wikipedia-presence": "No Wikipedia article or Wikidata entity found for \"linear\" - creating a Wikipedia page and a Wikidata item with P856 = linear.app is the highest-impact step.",
   "robots-ai-policy-quality": "AI search crawlers: allowed in 18 of 18 checks (3 crawlers on 6 pages). AI training crawlers: allowed in 12 of 12 checks (2 crawlers on 6 pages), not scored.",
   "noindex-directives": "No noindex on the homepage: no robots, googlebot or bingbot meta tag and no X-Robots-Tag header hides it from search.",
   "sitemap": "Valid sitemap found at https://linear.app/sitemap.xml with 1007 entries",
   "content-no-js": "Homepage: 8822 chars with H1, but heading hierarchy skips H1 to H3; 1.3% content ratio is below the 5% target.",
   "bot-detection": "Site accessible to 4 agent user-agents (ChatGPT-User, OAI-SearchBot, Claude-User, PerplexityBot).",
   "agent-discovery-file": "Agent discovery file found at /agents.md",
   "a2a-agent-card": "No A2A agent card found at /.well-known/agent-card.json",
   "mcp-well-known-discovery": "MCP server referenced in llms.txt",
   "robots-agent-user-policy": "No applicable crawl or usage restriction found for 3 user-triggered agents (chatgpt-user, claude-user, perplexity-user) on 1 public page: https://linear.app/.",
   "llms-txt-exists": "Found the llms.txt at https://linear.app/llms.txt.",
   "llms-txt-formatting": "The llms.txt is well-formatted: 206 lines with markdown links, 11,749 characters in total.",
   "json-ld": "No JSON-LD structured data found on homepage",
   "public-api-docs": "Documentation site found at https://linear.app",
   "metadata-completeness": "3/4 metadata signals present - missing: og:type",
   "page-token-budget": "All 9 measured pages fit an agent context budget (largest ~2K tokens)",
   "docs-auth-gate": "All 5 sampled pages are publicly readable (5 with substantive content)",
   "openapi-spec": "No OpenAPI/Swagger specification found",
   "developer-portal": "Developer portal found at /developers",
   "markdown-negotiation": "Path-suffix markdown docs served with text/markdown content-type: /agents.md, /developers.md, /index.md",
   "agent-ua-markdown": "No probed bot User-Agent (ChatGPT-User, Claude-User, Perplexity-User) receives markdown when requesting HTML.",
   "agent-crawler-reachability": "Reachable to every agent we tested - ChatGPT-User: reachable, OAI-SearchBot: reachable, Claude-User: reachable, PerplexityBot: reachable",
   "public-api": "REST API documentation found at /api. Best-of-protocols score: 7/7.",
   "oauth-support": "OAuth authorization server metadata at https://mcp.linear.app",
   "mcp-server": "MCP server detected at https://mcp.linear.app/mcp; it requires authentication. Presence is verified (5/6),",
   "webmcp": "No WebMCP support detected - no document.modelContext / navigator.modelContext usage found",
   "cli-tool": "CLI tool mentioned in llms.txt",
   "rest-sdk-packages": "SDK package found only in npm",
   "nlweb-ask": "No NLWeb-conformant /ask endpoint found via GET or POST",
   "mpp-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "x402-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "ucp-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "acp-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "ap2-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites"
  }
 },
 {
  "slug": "microsoft",
  "name": "Microsoft",
  "domain": "microsoft.com",
  "read": "2026-11-09",
  "score": 62,
  "grade": "C",
  "category": "Identity & Auth",
  "summary": "Microsoft offers strong developer resource discoverability and SDK packages, but lacks published OpenAPI specifications for agent integration.",
  "layers": [
   "Discovery 16/17",
   "Access 29/54",
   "Usability 30/57",
   "Payments 0/0"
  ],
  "top": [
   "openapi-spec (fail, 0/7, +4.3): No OpenAPI/Swagger specification found",
   "scoped-permissions (fail, 0/5, +3.9): No declared OAuth scopes, security schemes, or scoped-permission documentation found",
   "json-error-responses (fail, 0/4, +3.1): API does not return JSON error responses (or no API detected)",
   "mcp-app-registry (fail, 0/4, +3.1): No MCP Apps support detected - this product has an in-agent UI surface but exposes no ui:// resources or tool UI metadata for agents to render.",
   "public-api (warning, 3/7, +3.1): API described in documentation at https://developer.microsoft.com but no machine-verifiable API surface confirmed. Best-of-protocols score: 3/7.",
   "cli-tool (fail, 0/3, +2.3): No CLI tool found"
  ],
  "seen": {
   "brand-search-accuracy": "microsoft.com ranks #1 for \"Microsoft cloud platform\" (search term updated)",
   "wikipedia-presence": "Wikipedia \"Microsoft\" and Wikidata Q2283 both verified - domain confirmed on both sources",
   "robots-ai-policy-quality": "AI search crawlers: allowed in 3 of 3 checks (3 crawlers on 1 page). AI training crawlers: allowed in 2 of 2 checks (2 crawlers on 1 page), not scored.",
   "noindex-directives": "No noindex on the homepage: no robots, googlebot or bingbot meta tag and no X-Robots-Tag header hides it from search.",
   "sitemap": "Valid sitemap found at https://www.microsoft.com/store/sitemap-index.xml with multiple sitemaps entries",
   "content-no-js": "6598 chars with H1, but 2.8% content ratio is below the 5% target",
   "bot-detection": "Site accessible to 4 agent user-agents (ChatGPT-User, OAI-SearchBot, Claude-User, PerplexityBot).",
   "agent-discovery-file": "No agent discovery file found",
   "a2a-agent-card": "No A2A agent card found at /.well-known/agent-card.json",
   "mcp-well-known-discovery": "No MCP server URL discovered",
   "robots-agent-user-policy": "No applicable crawl or usage restriction found for 3 user-triggered agents (chatgpt-user, claude-user,",
   "llms-txt-exists": "No llms.txt found at /llms.txt or /.well-known/llms.txt.",
   "llms-txt-formatting": "No llms.txt found to evaluate quality",
   "json-ld": "JSON-LD found (1 block(s)) but no identity type - use SoftwareApplication, Product, Organization, Person, or Article so agents can tell what this site is",
   "public-api-docs": "Documentation site found at https://developer.microsoft.com",
   "metadata-completeness": "3/4 metadata signals present - missing: og:image",
   "page-token-budget": "All 1 measured page fit an agent context budget (largest ~2K tokens)",
   "docs-auth-gate": "No content pages sampled",
   "openapi-spec": "No OpenAPI/Swagger specification found",
   "developer-portal": "Developer documentation portal found at https://developer.microsoft.com",
   "markdown-negotiation": "Missing markdown content negotiation. Homepage returned text/html when probed with Accept: text/markdown (expected text/markdown),",
   "agent-ua-markdown": "No probed bot User-Agent (ChatGPT-User, Claude-User, Perplexity-User) receives markdown when requesting HTML.",
   "agent-crawler-reachability": "Reachable to every agent we tested - ChatGPT-User: reachable, OAI-SearchBot: reachable, Claude-User: reachable, PerplexityBot: reachable",
   "public-api": "API described in documentation at https://developer.microsoft.com but no machine-verifiable API surface confirmed. Best-of-protocols score: 3/7.",
   "oauth-support": "OAuth endpoint found at https://login.microsoft.com/services/oauth2/authorize",
   "mcp-server": "First-party MCP server published by product org (npm, @playwright/mcp, 9357 score). Add live handshake at /.well-known/mcp for full credit.",
   "webmcp": "Could not fully read this page (only 60 of 61 same-origin script bundles could be read). Nothing that was read uses WebMCP, but the unread part could,",
   "cli-tool": "No CLI tool found",
   "rest-sdk-packages": "SDK packages found across 3 ecosystems: npm, pypi, rubygems",
   "nlweb-ask": "No NLWeb-conformant /ask endpoint found via GET or POST",
   "mpp-support": "No MPP (Machine Payments Protocol) support detected",
   "x402-support": "No x402 payment protocol support detected",
   "ucp-support": "no UCP (Universal Commerce Protocol) signals detected",
   "acp-support": "no ACP (Agentic Commerce Protocol) signals detected",
   "ap2-support": "No AP2 (Agent Payments Protocol) signals detected"
  }
 },
 {
  "slug": "miro",
  "name": "Miro",
  "domain": "miro.com",
  "read": "2026-11-09",
  "score": 74,
  "grade": "B",
  "category": "Productivity",
  "summary": "Miro offers strong developer resource discoverability and SDK packages, but lacks WebMCP support for agent integration.",
  "layers": [
   "Discovery 13/16",
   "Access 33/46",
   "Usability 59/81",
   "Payments 0/0"
  ],
  "top": [
   "json-ld (fail, 0/4, +2.9): No JSON-LD structured data found on homepage",
   "brand-search-accuracy (warning, 1/3, +2.8): miro.com ranks #8 for \"AI Innovation Workspace visual collaboration\"",
   "webmcp (fail, 0/5, +2.7): No WebMCP support detected - no document.modelContext / navigator.modelContext usage found",
   "graphql-error-type-definition (fail, 0/3, +1.6): GraphQL introspection auth-gated and no typed graphql error model documentation found on GraphQL-tagged pages",
   "idempotency-key-support (fail, 0/3, +1.6): GraphQL introspection auth-gated and no idempotency documentation found on GraphQL-tagged pages",
   "ard-catalog (fail, 0/1, +1.4): No /.well-known/ard.json, no same-site rel=\"ard\" link, and no legacy /.well-known/ai-catalog.json"
  ],
  "seen": {
   "brand-search-accuracy": "miro.com ranks #8 for \"AI Innovation Workspace visual collaboration\"",
   "wikipedia-presence": "Wikidata Q94126521 (Miro) verified - draft a Wikipedia page with cited references to complete knowledge graph coverage",
   "robots-ai-policy-quality": "AI search crawlers: allowed in 3 of 3 checks (3 crawlers on 1 page). AI training crawlers: allowed in 2 of 2 checks (2 crawlers on 1 page), not scored.",
   "noindex-directives": "No noindex on the homepage: no robots, googlebot or bingbot meta tag and no X-Robots-Tag header hides it from search.",
   "sitemap": "Valid sitemap found at https://miro.com/sitemap.xml with multiple sitemaps entries",
   "content-no-js": "Homepage: Only 445 chars of text content - agents see limited content. No inner pages checked: the 5 sampled pages were skipped (forms, login pages,",
   "bot-detection": "Site accessible to 4 agent user-agents (ChatGPT-User, OAI-SearchBot, Claude-User, PerplexityBot).",
   "agent-discovery-file": "Can't verify: a bot shield answered our request to miro.com/.well-known/agent-skills/index.json (HTTP 403);",
   "a2a-agent-card": "Can't verify: a bot shield answered our request to miro.com/.well-known/agent-card.json (HTTP 403) instead of the site. That is not counted against the site.",
   "mcp-well-known-discovery": "MCP server at https://mcp.miro.com - list its server card, hosted on your own domain, in /.well-known/ai-catalog.json so MCP clients can discover it",
   "robots-agent-user-policy": "No applicable crawl or usage restriction found for 3 user-triggered agents (chatgpt-user, claude-user, perplexity-user) on 1 public page: https://miro.com/.",
   "llms-txt-exists": "Found the llms.txt at https://developers.miro.com/llms.txt.",
   "llms-txt-formatting": "The llms.txt is well-formatted with markdown links, but at 95,346 characters it exceeds the 30,000-character recommendation for a navigation index.",
   "json-ld": "No JSON-LD structured data found on homepage",
   "public-api-docs": "Documentation site found at https://developers.miro.com",
   "metadata-completeness": "All metadata signals present: canonical URL, lang=\"en\", og:image, og:type",
   "page-token-budget": "All 1 measured page fit an agent context budget (largest ~1K tokens)",
   "docs-auth-gate": "All 5 sampled pages are publicly readable (0 with substantive content)",
   "openapi-spec": "Can't verify: a bot shield answered our request to miro.com/.well-known/openapi.json (HTTP 403) instead of the site. That is not counted against the site.",
   "developer-portal": "Developer documentation portal found at https://developers.miro.com",
   "markdown-negotiation": "Returns markdown when requested via Accept header",
   "agent-ua-markdown": "No probed bot User-Agent (ChatGPT-User, Claude-User, Perplexity-User) receives markdown when requesting HTML.",
   "agent-crawler-reachability": "Reachable to every agent we tested - ChatGPT-User: reachable, OAI-SearchBot: reachable, Claude-User: reachable, PerplexityBot: reachable",
   "public-api": "REST API documentation found at /api. GraphQL endpoint at https://api.miro.com/v1/graphql is reachable;",
   "oauth-support": "OAuth authorization server metadata at https://mcp.miro.com/",
   "mcp-server": "MCP server detected at https://mcp.miro.com; it requires authentication. Presence is verified (5/6),",
   "webmcp": "No WebMCP support detected - no document.modelContext / navigator.modelContext usage found",
   "cli-tool": "CLI package found on npm: create-miro-app",
   "rest-sdk-packages": "SDK package found only in npm",
   "nlweb-ask": "No NLWeb-conformant /ask endpoint found via GET or POST",
   "mpp-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "x402-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "ucp-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "acp-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "ap2-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites"
  }
 },
 {
  "slug": "monday",
  "name": "monday.com",
  "domain": "monday.com",
  "read": "2026-11-09",
  "score": 88,
  "grade": "A",
  "category": "Productivity",
  "summary": "The site offers strong agent-facing authentication and API access, and a GraphQL typed error model with rate-limit header documentation would round out agent support.",
  "layers": [
   "Discovery 15/18",
   "Access 56/60",
   "Usability 87/100",
   "Payments 0/0"
  ],
  "top": [
   "brand-search-accuracy (warning, 1/3, +2.5): monday.com ranks #7 for \"monday.com\" (searched your brand name alone: no main product term from your homepage qualified)",
   "graphql-error-type-definition (fail, 0/3, +1.3): GraphQL introspection auth-gated and no typed graphql error model documentation found on GraphQL-tagged pages",
   "ard-catalog (fail, 0/1, +1.2): No /.well-known/ard.json, no same-site rel=\"ard\" link, and no legacy /.well-known/ai-catalog.json",
   "content-no-js (warning, 1/3, +1.1): Homepage: 13923 chars with H1, but 3.0% content ratio is below the 5% target. Sampled pages with almost no text without JavaScript (1 of 5): https://monday.com/academy (69 chars).",
   "schema-type-breadth (fail, 0/2, +1.1): No extended schema types found - AI can only answer basic questions about this entity",
   "rate-limit-headers (fail, 0/2, +0.9): GraphQL introspection auth-gated and no header convention documented on GraphQL-tagged pages"
  ],
  "seen": {
   "brand-search-accuracy": "monday.com ranks #7 for \"monday.com\" (searched your brand name alone: no main product term from your homepage qualified)",
   "wikipedia-presence": "Wikipedia \"Monday.com\" and Wikidata Q65073369 both verified - domain confirmed on both sources",
   "robots-ai-policy-quality": "AI search crawlers: allowed in 18 of 18 checks (3 crawlers on 6 pages). AI training crawlers: allowed in 12 of 12 checks (2 crawlers on 6 pages), not scored.",
   "noindex-directives": "No noindex on the homepage: no robots, googlebot or bingbot meta tag and no X-Robots-Tag header hides it from search.",
   "sitemap": "Valid sitemap found at https://monday.com/sitemap_index.xml with multiple sitemaps entries",
   "content-no-js": "Homepage: 13923 chars with H1, but 3.0% content ratio is below the 5% target. Sampled pages with almost no text without JavaScript (1 of 5):.",
   "bot-detection": "Can't verify agent access. A bot shield, rate limit, or timeout stopped our test request. Real crawlers come from their own networks and may get through.",
   "agent-discovery-file": "Agent Skills index (agentskills.io) found at /.well-known/agent-skills/index.json with 2 skill(s)",
   "a2a-agent-card": "A2A Agent Card found: \"monday.com MCP Server\"",
   "mcp-well-known-discovery": "MCP server discoverable via server-card.json at /.well-known/mcp/",
   "robots-agent-user-policy": "No applicable crawl or usage restriction found for 3 user-triggered agents (chatgpt-user, claude-user, perplexity-user) on 1 public page: https://monday.com/.",
   "llms-txt-exists": "Found the llms.txt at https://monday.com/llms.txt.",
   "llms-txt-formatting": "The llms.txt is well-formatted: 67 lines with markdown links, 9,893 characters in total.",
   "json-ld": "Rich JSON-LD identity: Organization with name, description, url, and sameAs/logo/address (1 block(s))",
   "public-api-docs": "Documentation site found at https://developer.monday.com",
   "metadata-completeness": "All metadata signals present: canonical URL, lang=\"en\", og:image, og:type",
   "page-token-budget": "All 6 measured pages fit an agent context budget (largest ~4K tokens)",
   "docs-auth-gate": "All 5 sampled pages are publicly readable (4 with substantive content)",
   "openapi-spec": "OpenAPI spec found at https://monday.com/openapi.json (version: 3.1.0)",
   "developer-portal": "Developer portal found at https://developer.monday.com",
   "markdown-negotiation": "Missing markdown content negotiation. Homepage returned text/html when probed with Accept: text/markdown (expected text/markdown),",
   "agent-ua-markdown": "No probed bot User-Agent (ChatGPT-User, Claude-User, Perplexity-User) receives markdown when requesting HTML.",
   "agent-crawler-reachability": "Can't verify crawler reachability. A bot shield, rate limit, or timeout stopped our test request.",
   "public-api": "REST API documentation found at https://api.monday.com/v2/get_schema?format=sdl. GraphQL endpoint at https://api.monday.com/graphql is reachable;",
   "oauth-support": "OAuth authorization server metadata at https://auth.monday.com/mcp",
   "mcp-server": "MCP server detected at https://mcp.monday.com/mcp; it requires authentication. Presence is verified (5/6),",
   "webmcp": "Imperative WebMCP API detected (navigator.modelContext.registerTool in inline script).",
   "cli-tool": "CLI package found on npm: @mondaycom/apps-cli",
   "rest-sdk-packages": "SDK package found only in npm",
   "nlweb-ask": "NLWeb /ask endpoint exists but requires authentication (HTTP 403, via POST)",
   "mpp-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "x402-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "ucp-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "acp-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "ap2-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites"
  }
 },
 {
  "slug": "mongodb",
  "name": "MongoDB",
  "domain": "mongodb.com",
  "read": "2026-11-09",
  "score": 78,
  "grade": "B",
  "category": "Infrastructure",
  "summary": "MongoDB offers strong access and usability foundations and passes most discovery checks, but it lacks a published OpenAPI specification for agents.",
  "layers": [
   "Discovery 14/18",
   "Access 49/62",
   "Usability 53/69",
   "Payments 0/0"
  ],
  "top": [
   "openapi-spec (fail, 0/7, +3.8): No OpenAPI/Swagger specification found",
   "scoped-permissions (fail, 0/5, +3.2): No declared OAuth scopes, security schemes, or scoped-permission documentation found",
   "webmcp (fail, 0/5, +3.2): No WebMCP support detected - no document.modelContext / navigator.modelContext usage found (scanned 12 of 12 same-origin script bundle(s) for modelContext registrations)",
   "brand-search-accuracy (warning, 1/3, +2.5): mongodb.com ranks #8 for \"MongoDB\" (searched your brand name alone: no main product term from your homepage qualified)",
   "function-calling-compat (fail, 0/2, +1.3): Poor compatibility: missing operationIds (0/0) and parameter schemas",
   "ard-catalog (warning, 0/1, +1.2): /.well-known/ard.json exists but is not valid JSON"
  ],
  "seen": {
   "brand-search-accuracy": "mongodb.com ranks #8 for \"MongoDB\" (searched your brand name alone: no main product term from your homepage qualified)",
   "wikipedia-presence": "Wikipedia \"MongoDB\" and Wikidata Q4546965 both verified - domain confirmed on both sources",
   "robots-ai-policy-quality": "AI search crawlers: allowed in 3 of 3 checks (3 crawlers on 1 page). AI training crawlers: allowed in 2 of 2 checks (2 crawlers on 1 page), not scored.",
   "noindex-directives": "No noindex on the homepage: no robots, googlebot or bingbot meta tag and no X-Robots-Tag header hides it from search.",
   "sitemap": "Valid sitemap found at https://www.mongodb.com/sitemap-index.xml with multiple sitemaps entries",
   "content-no-js": "Homepage: 7302 chars with H1, but heading hierarchy skips H1 to H5. 5 of 5 sampled inner pages have text without JavaScript.",
   "bot-detection": "Site accessible to 4 agent user-agents (ChatGPT-User, OAI-SearchBot, Claude-User, PerplexityBot).",
   "agent-discovery-file": "Found legacy /.well-known/agent-skills; /.well-known/agent-skills/index.json exists but is not valid JSON - fix the file or remove it so agents fall back to.",
   "a2a-agent-card": "agent-card.json exists but contains invalid JSON",
   "mcp-well-known-discovery": "MCP server at https://mcp.mongodb.com - list its server card, hosted on your own domain, in /.well-known/ai-catalog.json so MCP clients can discover it",
   "robots-agent-user-policy": "No applicable crawl or usage restriction found for 3 user-triggered agents (chatgpt-user, claude-user, perplexity-user) on 1 public page: https://mongodb.com/.",
   "llms-txt-exists": "Found the llms.txt at https://www.mongodb.com/llms.txt.",
   "llms-txt-formatting": "The llms.txt is well-formatted: 88 lines with markdown links, 11,095 characters in total.",
   "json-ld": "Rich JSON-LD identity: Organization with name, description, url, and sameAs/logo/address (1 block(s))",
   "public-api-docs": "Documentation site found at https://www.mongodb.com",
   "metadata-completeness": "All metadata signals present: canonical URL, lang=\"en\", og:image, og:type",
   "page-token-budget": "All 6 measured pages fit an agent context budget (largest ~5K tokens)",
   "docs-auth-gate": "All 5 sampled pages are publicly readable (5 with substantive content)",
   "openapi-spec": "No OpenAPI/Swagger specification found",
   "developer-portal": "Developer portal found at /docs",
   "markdown-negotiation": "Missing markdown content negotiation. Homepage returned text/html when probed with Accept: text/markdown (expected text/markdown),",
   "agent-ua-markdown": "No probed bot User-Agent (ChatGPT-User, Claude-User, Perplexity-User) receives markdown when requesting HTML.",
   "agent-crawler-reachability": "Reachable to every agent we tested - ChatGPT-User: reachable, OAI-SearchBot: reachable, Claude-User: reachable, PerplexityBot: reachable",
   "public-api": "REST API documentation found at /docs/api. Best-of-protocols score: 7/7.",
   "oauth-support": "OAuth authorization server metadata at https://authorize.mongodb.com",
   "mcp-server": "MCP server detected at https://mcp.mongodb.com; it requires authentication. Presence is verified (5/6),",
   "webmcp": "No WebMCP support detected - no document.modelContext / navigator.modelContext usage found (scanned 12 of 12 same-origin script bundle(s) for modelContext.",
   "cli-tool": "CLI package found on npm: resolve-mongodb-srv",
   "rest-sdk-packages": "SDK packages found in npm, rubygems",
   "nlweb-ask": "No NLWeb-conformant /ask endpoint found via GET or POST",
   "mpp-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "x402-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "ucp-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "acp-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "ap2-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites"
  }
 },
 {
  "slug": "neon",
  "name": "Neon",
  "domain": "neon.com",
  "read": "2026-11-09",
  "score": 88,
  "grade": "A",
  "category": null,
  "summary": "Neon provides comprehensive Postgres API access and discovery, but lacks JSON error responses in its REST endpoints.",
  "layers": [
   "Discovery 13/15",
   "Access 61/65",
   "Usability 81/96",
   "Payments 0/0"
  ],
  "top": [
   "brand-search-accuracy (warning, 1/3, +3): neon.com ranks #8 for \"Neon serverless database\"",
   "idempotency-key-support (fail, 0/3, +1.4): No REST Idempotency-Key support detected",
   "scoped-permissions (warning, 2/5, +1.4): OpenAPI declares security schemes but no named OAuth scopes - agents get all-or-nothing access. Declare per-scope grants (e.g. read:*, write:*) in the spec.",
   "schema-type-breadth (fail, 0/2, +1): No extended schema types found - AI can only answer basic questions about this entity",
   "oauth-support (warning, 3/5, +0.9): OAuth mentioned in documentation at https://neon.com/auth.md but no OAuth or OpenID Connect endpoint responded",
   "rate-limit-headers (fail, 0/2, +0.9): No REST rate-limit headers found on probed endpoints"
  ],
  "seen": {
   "brand-search-accuracy": "neon.com ranks #8 for \"Neon serverless database\"",
   "wikipedia-presence": "No Wikipedia article or Wikidata entity found for \"neon\" - creating a Wikipedia page and a Wikidata item with P856 = neon.com is the highest-impact step for AI.",
   "robots-ai-policy-quality": "AI search crawlers: allowed in 18 of 18 checks (3 crawlers on 6 pages). AI training crawlers: allowed in 12 of 12 checks (2 crawlers on 6 pages), not scored.",
   "noindex-directives": "No noindex on the homepage: no robots, googlebot or bingbot meta tag and no X-Robots-Tag header hides it from search.",
   "sitemap": "Valid sitemap found at https://neon.com/sitemap.xml with multiple sitemaps entries",
   "content-no-js": "3369 chars with H1, but 1.6% content ratio is below the 5% target",
   "bot-detection": "Site accessible to 4 agent user-agents (ChatGPT-User, OAI-SearchBot, Claude-User, PerplexityBot).",
   "agent-discovery-file": "Agent Skills index (agentskills.io) found at /.well-known/agent-skills/index.json with 10 skill(s)",
   "a2a-agent-card": "No A2A agent card found at /.well-known/agent-card.json",
   "mcp-well-known-discovery": "MCP server card listed in /.well-known/ai-catalog.json",
   "robots-agent-user-policy": "No applicable crawl or usage restriction found for 3 user-triggered agents (chatgpt-user, claude-user, perplexity-user) on 1 public page: https://neon.com/.",
   "llms-txt-exists": "Found the llms.txt at https://neon.com/llms.txt.",
   "llms-txt-formatting": "The llms.txt is well-formatted: 250 lines with markdown links, 28,872 characters in total.",
   "json-ld": "Rich JSON-LD identity: Organization with name, description, url, and sameAs/logo/address (1 block(s))",
   "public-api-docs": "API/docs link found on homepage and resolves: /docs",
   "metadata-completeness": "All metadata signals present: canonical URL, lang=\"en\", og:image, og:type",
   "page-token-budget": "All 8 measured pages fit an agent context budget (largest ~2K tokens)",
   "docs-auth-gate": "All 5 sampled pages are publicly readable (5 with substantive content)",
   "openapi-spec": "OpenAPI spec found at https://neon.com/api_spec/release/v2.json (version: 3.0.3)",
   "developer-portal": "Developer portal found at /docs",
   "markdown-negotiation": "Path-suffix markdown docs served with text/markdown content-type: /auth.md, /index.md",
   "agent-ua-markdown": "No probed bot User-Agent (ChatGPT-User, Claude-User, Perplexity-User) receives markdown when requesting HTML.",
   "agent-crawler-reachability": "Reachable to every agent we tested - ChatGPT-User: reachable, OAI-SearchBot: reachable, Claude-User: reachable, PerplexityBot: reachable",
   "public-api": "Documented REST API detected; endpoints require authentication (API key / OAuth), which is expected for agent access. Best-of-protocols score: 7/7.",
   "oauth-support": "OAuth mentioned in documentation at https://neon.com/auth.md but no OAuth or OpenID Connect endpoint responded",
   "mcp-server": "MCP server connected via Streamable HTTP - mcp-server-neon v1.0.0 (protocol 2025-11-25)",
   "webmcp": "Imperative WebMCP API detected (document.modelContext.registerTool in script bundle /_next/static/immutable/chunks/2vl9he_7n76_5.js).",
   "cli-tool": "CLI package found on npm: neon",
   "rest-sdk-packages": "SDK packages found in npm, pypi",
   "nlweb-ask": "No NLWeb-conformant /ask endpoint found via GET or POST",
   "mpp-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "x402-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "ucp-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "acp-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "ap2-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites"
  }
 },
 {
  "slug": "netlify",
  "name": "Netlify",
  "domain": "netlify.com",
  "read": "2026-11-09",
  "score": 90,
  "grade": "A",
  "category": "Infrastructure",
  "summary": "Netlify offers strong discovery and authentication support for agents, and adding WebMCP support with scoped OAuth permissions would close its biggest gaps.",
  "layers": [
   "Discovery 21/23",
   "Access 64/65",
   "Usability 79/96",
   "Payments 0/0"
  ],
  "top": [
   "webmcp (fail, 0/5, +2.3): No WebMCP support detected - no document.modelContext / navigator.modelContext usage found (scanned 8 of 8 same-origin script bundle(s) for modelContext registrations)",
   "brand-search-accuracy (warning, 1/3, +1.9): netlify.com ranks #8 for \"Netlify\" (searched your brand name alone: no main product term from your homepage qualified)",
   "idempotency-key-support (fail, 0/3, +1.4): No REST Idempotency-Key support detected",
   "scoped-permissions (warning, 2/5, +1.4): OpenAPI declares security schemes but no named OAuth scopes - agents get all-or-nothing access. Declare per-scope grants (e.g. read:*, write:*) in the spec.",
   "api-versioning-policy (warning, 2/3, +0.5): API versioning found (URL versioning (servers or paths)) but no deprecation or sunset policy detected - add Sunset/Deprecation headers or a deprecation policy page",
   "async-job-pattern (warning, 1/2, +0.5): 202 Accepted responses found but no clear polling pattern (Location header, /jobs path, or job_id schema)"
  ],
  "seen": {
   "brand-search-accuracy": "netlify.com ranks #8 for \"Netlify\" (searched your brand name alone: no main product term from your homepage qualified)",
   "wikipedia-presence": "Wikipedia \"Netlify\" and Wikidata Q56102498 both verified - domain confirmed on both sources",
   "robots-ai-policy-quality": "AI search crawlers: allowed in 3 of 3 checks (3 crawlers on 1 page). AI training crawlers: allowed in 2 of 2 checks (2 crawlers on 1 page), not scored.",
   "noindex-directives": "No noindex on the homepage: no robots, googlebot or bingbot meta tag and no X-Robots-Tag header hides it from search.",
   "sitemap": "Valid sitemap found at https://www.netlify.com/sitemap-index.xml with multiple sitemaps entries",
   "content-no-js": "Homepage: 6604 chars with H1, but 2.4% content ratio is below the 5% target. 5 of 5 sampled inner pages have text without JavaScript.",
   "bot-detection": "Site accessible to 4 agent user-agents (ChatGPT-User, OAI-SearchBot, Claude-User, PerplexityBot).",
   "agent-discovery-file": "Agent Skills index (agentskills.io) found at /.well-known/agent-skills/index.json with 14 skill(s)",
   "a2a-agent-card": "No A2A agent card found at /.well-known/agent-card.json",
   "mcp-well-known-discovery": "MCP server discoverable via server-card.json at /.well-known/mcp/",
   "robots-agent-user-policy": "No applicable crawl or usage restriction found for 3 user-triggered agents (chatgpt-user, claude-user, perplexity-user) on 1 public page: https://netlify.com/.",
   "llms-txt-exists": "Found the llms.txt at https://docs.netlify.com/llms.txt.",
   "llms-txt-formatting": "The llms.txt is well-formatted: 35 lines with markdown links, 2,971 characters in total.",
   "json-ld": "Rich JSON-LD identity: Organization with name, description, url, and sameAs/logo/address (1 block(s))",
   "public-api-docs": "Documentation site found at https://docs.netlify.com",
   "metadata-completeness": "All metadata signals present: canonical URL, lang=\"en\", og:image, og:type",
   "page-token-budget": "All 8 measured pages fit an agent context budget (largest ~5K tokens)",
   "docs-auth-gate": "All 5 sampled pages are publicly readable (5 with substantive content)",
   "openapi-spec": "OpenAPI spec found at https://netlify.com/openapi.json (version: 3.0.0)",
   "developer-portal": "Developer portal found at https://docs.netlify.com",
   "markdown-negotiation": "Path-suffix markdown docs served with text/markdown content-type: /auth.md, /index.md",
   "agent-ua-markdown": "No probed bot User-Agent (ChatGPT-User, Claude-User, Perplexity-User) receives markdown when requesting HTML.",
   "agent-crawler-reachability": "Reachable to every agent we tested - ChatGPT-User: reachable, OAI-SearchBot: reachable, Claude-User: reachable, PerplexityBot: reachable",
   "public-api": "REST API documentation found at https://docs.netlify.com/build/functions/overview.md. Best-of-protocols score: 7/7.",
   "oauth-support": "OAuth authorization server metadata at https://mcp.netlify.com/",
   "mcp-server": "MCP server detected at https://mcp.netlify.com/mcp; it requires authentication. Presence is verified (5/6),",
   "webmcp": "No WebMCP support detected - no document.modelContext / navigator.modelContext usage found (scanned 8 of 8 same-origin script bundle(s) for modelContext.",
   "cli-tool": "CLI package found on npm: netlify-cli",
   "rest-sdk-packages": "SDK packages found across 3 ecosystems: npm, go, rubygems",
   "nlweb-ask": "No NLWeb-conformant /ask endpoint found via GET or POST",
   "mpp-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "x402-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "ucp-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "acp-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "ap2-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites"
  }
 },
 {
  "slug": "newrelic",
  "name": "New Relic",
  "domain": "newrelic.com",
  "read": "2026-11-09",
  "score": 75,
  "grade": "B",
  "category": "Infrastructure",
  "summary": "New Relic offers strong discovery and SDK access, but lacks WebMCP support and Idempotency-Key handling for agents.",
  "layers": [
   "Discovery 13/16",
   "Access 42/51",
   "Usability 43/65",
   "Payments 0/0"
  ],
  "top": [
   "webmcp (fail, 0/5, +3.4): No WebMCP support detected - no document.modelContext / navigator.modelContext usage found (scanned 14 of 14 same-origin script bundle(s) for modelContext registrations)",
   "brand-search-accuracy (warning, 1/3, +2.8): newrelic.com ranks #8 for \"New Relic\" (searched your brand name alone: no main product term from your homepage qualified)",
   "graphql-error-type-definition (fail, 0/3, +2.1): GraphQL introspection auth-gated and no typed graphql error model documentation found on GraphQL-tagged pages",
   "idempotency-key-support (fail, 0/3, +2.1): GraphQL introspection auth-gated and no idempotency documentation found on GraphQL-tagged pages",
   "ard-catalog (fail, 0/1, +1.4): No /.well-known/ard.json, no same-site rel=\"ard\" link, and no legacy /.well-known/ai-catalog.json",
   "graphql-async-job-pattern (fail, 0/2, +1.4): GraphQL introspection auth-gated and no graphql async-job pattern documentation found on GraphQL-tagged pages"
  ],
  "seen": {
   "brand-search-accuracy": "newrelic.com ranks #8 for \"New Relic\" (searched your brand name alone: no main product term from your homepage qualified)",
   "wikipedia-presence": "Wikipedia \"New Relic\" and Wikidata Q7011152 both verified - domain confirmed on both sources",
   "robots-ai-policy-quality": "AI search crawlers: allowed in 18 of 18 checks (3 crawlers on 6 pages). AI training crawlers: allowed in 12 of 12 checks (2 crawlers on 6 pages), not scored.",
   "noindex-directives": "No noindex on the homepage: no robots, googlebot or bingbot meta tag and no X-Robots-Tag header hides it from search.",
   "sitemap": "Valid sitemap found at https://newrelic.com/sitemap.xml with 2655 entries",
   "content-no-js": "Homepage: 10191 chars of readable text, but no H1 tag. 5 of 5 sampled inner pages have text without JavaScript.",
   "bot-detection": "Site accessible to 4 agent user-agents (ChatGPT-User, OAI-SearchBot, Claude-User, PerplexityBot).",
   "agent-discovery-file": "Can't verify: a bot shield answered our request to newrelic.com/.well-known/agent-skills/index.json (HTTP 403);",
   "a2a-agent-card": "Can't verify: a bot shield answered our request to newrelic.com/.well-known/agent-card.json (HTTP 403) instead of the site.",
   "mcp-well-known-discovery": "MCP server at https://mcp.newrelic.com/mcp - list its server card, hosted on your own domain, in /.well-known/ai-catalog.json so MCP clients can discover it",
   "robots-agent-user-policy": "No applicable crawl or usage restriction found for 3 user-triggered agents (chatgpt-user, claude-user,",
   "llms-txt-exists": "Found the llms.txt at https://docs.newrelic.com/llms.txt.",
   "llms-txt-formatting": "The llms.txt at https://newrelic.com/llms.txt is well-formatted with markdown links,",
   "json-ld": "JSON-LD Organization found - missing description on this entity",
   "public-api-docs": "Documentation site found at https://docs.newrelic.com",
   "metadata-completeness": "All metadata signals present: canonical URL, lang=\"en\", og:image, og:type",
   "page-token-budget": "All 6 measured pages fit an agent context budget (largest ~5K tokens)",
   "docs-auth-gate": "All 5 sampled pages are publicly readable (5 with substantive content)",
   "openapi-spec": "Can't verify: a bot shield answered our request to newrelic.com/.well-known/openapi.json (HTTP 403) instead of the site. That is not counted against the site.",
   "developer-portal": "Developer portal found at /docs",
   "markdown-negotiation": "Missing markdown content negotiation. Homepage returned text/html when probed with Accept: text/markdown (expected text/markdown),",
   "agent-ua-markdown": "No probed bot User-Agent (ChatGPT-User, Claude-User, Perplexity-User) receives markdown when requesting HTML.",
   "agent-crawler-reachability": "Reachable to every agent we tested - ChatGPT-User: reachable, OAI-SearchBot: reachable, Claude-User: reachable, PerplexityBot: reachable",
   "public-api": "REST API documentation found at https://docs.newrelic.com/docs/new-relic-solutions/get-started/intro-new-relic.md.",
   "oauth-support": "OpenID Connect discovery endpoint found at https://mcp.newrelic.com",
   "mcp-server": "MCP server detected at https://mcp.newrelic.com/mcp; it requires authentication. Presence is verified (5/6),",
   "webmcp": "No WebMCP support detected - no document.modelContext / navigator.modelContext usage found (scanned 14 of 14 same-origin script bundle(s) for modelContext.",
   "cli-tool": "CLI package found on npm: newrelic",
   "rest-sdk-packages": "SDK packages found across 4 ecosystems: npm, pypi, go, rubygems",
   "nlweb-ask": "NLWeb /ask endpoint exists but requires authentication (HTTP 403, via POST)",
   "mpp-support": "Can't verify: a bot shield answered our request to newrelic.com/.well-known/ucp (HTTP 403); newrelic.com/.well-known/oauth-authorization-server (HTTP 403);",
   "x402-support": "Can't verify: a bot shield answered our request to newrelic.com/.well-known/ucp (HTTP 403); newrelic.com/.well-known/oauth-authorization-server (HTTP 403);",
   "ucp-support": "Can't verify: a bot shield answered our request to newrelic.com/.well-known/ucp (HTTP 403); newrelic.com/.well-known/oauth-authorization-server (HTTP 403);",
   "acp-support": "Can't verify: a bot shield answered our request to newrelic.com/.well-known/ucp (HTTP 403); newrelic.com/.well-known/oauth-authorization-server (HTTP 403);",
   "ap2-support": "Can't verify: a bot shield answered our request to newrelic.com/.well-known/ucp (HTTP 403); newrelic.com/.well-known/oauth-authorization-server (HTTP 403);"
  }
 },
 {
  "slug": "notion",
  "name": "Notion",
  "domain": "notion.so",
  "read": "2026-11-09",
  "score": 68,
  "grade": "C",
  "category": "Productivity",
  "summary": "Notion offers strong developer access and a discoverable SDK and ChatGPT app, but lacks WebMCP support for agents to invoke its in-page actions.",
  "layers": [
   "Discovery 11/15",
   "Access 47/56",
   "Usability 42/78",
   "Payments 0/0"
  ],
  "top": [
   "brand-search-accuracy (fail, 0/3, +4.4): notion.so was not in the top 10 for \"Notion\" (searched your brand name alone: no main product term from your homepage qualified)",
   "webmcp (fail, 0/5, +2.8): No WebMCP support detected - no document.modelContext / navigator.modelContext usage found (scanned 37 of 37 same-origin script bundle(s) for modelContext registrations)",
   "json-error-responses (fail, 0/4, +2.3): API does not return JSON error responses (or no API detected)",
   "mcp-app-registry (fail, 0/4, +2.3): No MCP Apps support detected - this product has an in-agent UI surface but exposes no ui:// resources or tool UI metadata for agents to render.",
   "graphql-error-type-definition (fail, 0/3, +1.7): GraphQL introspection auth-gated and no typed graphql error model documentation found on GraphQL-tagged pages",
   "idempotency-key-support (fail, 0/3, +1.7): GraphQL introspection auth-gated and no idempotency documentation found on GraphQL-tagged pages"
  ],
  "seen": {
   "brand-search-accuracy": "notion.so was not in the top 10 for \"Notion\" (searched your brand name alone: no main product term from your homepage qualified)",
   "wikipedia-presence": "Wikidata Q60747998 (Notion) verified - draft a Wikipedia page with cited references to complete knowledge graph coverage",
   "robots-ai-policy-quality": "AI search crawlers: allowed in 3 of 3 checks (3 crawlers on 1 page). AI training crawlers: allowed in 2 of 2 checks (2 crawlers on 1 page), not scored.",
   "noindex-directives": "No noindex on the homepage: no robots, googlebot or bingbot meta tag and no X-Robots-Tag header hides it from search.",
   "sitemap": "Valid sitemap found at https://www.notion.com/sitemap.xml with multiple sitemaps entries",
   "content-no-js": "Homepage: 1242 chars with H1, but 1.2% content ratio is below the 5% target. No inner pages checked: the scan found none to sample.",
   "bot-detection": "Site accessible to 4 agent user-agents (ChatGPT-User, OAI-SearchBot, Claude-User, PerplexityBot).",
   "agent-discovery-file": "No agent discovery file found",
   "a2a-agent-card": "No A2A agent card found at /.well-known/agent-card.json",
   "mcp-well-known-discovery": "No MCP server URL discovered",
   "robots-agent-user-policy": "No applicable crawl or usage restriction found for 3 user-triggered agents (chatgpt-user, claude-user, perplexity-user) on 1 public page: https://notion.so/.",
   "llms-txt-exists": "Found the llms.txt at https://developers.notion.com/llms.txt.",
   "llms-txt-formatting": "The llms.txt contains markdown links and has 57 lines, but it doesn't start with a markdown heading.",
   "json-ld": "Rich JSON-LD identity: Organization with name, description, url, and sameAs/logo/address (1 block(s))",
   "public-api-docs": "Documentation site found at https://developers.notion.com",
   "metadata-completeness": "All metadata signals present: canonical URL, lang=\"en-us\", og:image, og:type",
   "page-token-budget": "All 1 measured page fit an agent context budget (largest ~1K tokens)",
   "docs-auth-gate": "No content pages sampled",
   "openapi-spec": "OpenAPI spec found at https://developers.notion.com/openapi.json (version: 3.1.0)",
   "developer-portal": "Developer portal found at /developers",
   "markdown-negotiation": "Missing markdown content negotiation. Homepage returned text/html when probed with Accept: text/markdown (expected text/markdown),",
   "agent-ua-markdown": "No probed bot User-Agent (ChatGPT-User, Claude-User, Perplexity-User) receives markdown when requesting HTML.",
   "agent-crawler-reachability": "Reachable to every agent we tested - ChatGPT-User: reachable, OAI-SearchBot: reachable, Claude-User: reachable, PerplexityBot: reachable",
   "public-api": "REST API documentation found at https://www.notion.com/product/docs. GraphQL endpoint at https://notion.so/graphql is reachable;",
   "oauth-support": "OAuth endpoint found at https://notion.so/oauth2/authorize",
   "mcp-server": "First-party MCP server published by product org (npm, @notionhq/notion-mcp-server, 24608 score). Add live handshake at /.well-known/mcp for full credit.",
   "webmcp": "No WebMCP support detected - no document.modelContext / navigator.modelContext usage found (scanned 37 of 37 same-origin script bundle(s) for modelContext.",
   "cli-tool": "CLI package found on npm: ntn",
   "rest-sdk-packages": "SDK found in npm, additional SDKs mentioned at https://developers.notion.com",
   "nlweb-ask": "NLWeb /ask endpoint exists but requires authentication (HTTP 401, via GET)",
   "mpp-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "x402-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "ucp-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "acp-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "ap2-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites"
  }
 },
 {
  "slug": "nvidia",
  "name": "NVIDIA",
  "domain": "nvidia.com",
  "read": "2026-11-09",
  "score": 77,
  "grade": "B",
  "category": "AI & ML",
  "summary": "Nvidia excels at developer resource discoverability and SDK distribution, but lacks WebMCP support for agent integration.",
  "layers": [
   "Discovery 14/15",
   "Access 38/50",
   "Usability 35/51",
   "Payments 0/0"
  ],
  "top": [
   "webmcp (fail, 0/5, +4.4): No WebMCP support detected - no document.modelContext / navigator.modelContext usage found (scanned 12 of 12 same-origin script bundle(s) for modelContext registrations)",
   "json-error-responses (fail, 0/4, +3.5): API does not return JSON error responses (or no API detected)",
   "mcp-server (warning, 2/6, +3.5): MCP mentioned at https://docs.nvidia.com/switch-infrastructure/config-manager/config-manager/overview/mcp but no standard manifest endpoint found",
   "json-ld (warning, 1/4, +2): JSON-LD found (1 block(s)) but no identity type - use SoftwareApplication, Product, Organization, Person, or Article so agents can tell what this site is",
   "pricing-info (fail, 0/3, +2): No pricing page or pricing data found",
   "rest-sdk-packages (warning, 1/3, +1.7): SDK package found only in npm"
  ],
  "seen": {
   "brand-search-accuracy": "nvidia.com ranks #1 for \"NVIDIA GPU computing\"",
   "wikipedia-presence": "Wikipedia \"Nvidia\" and Wikidata Q182477 both verified - domain confirmed on both sources",
   "robots-ai-policy-quality": "AI search crawlers: allowed in 3 of 3 checks (3 crawlers on 1 page). AI training crawlers: allowed in 2 of 2 checks (2 crawlers on 1 page), not scored.",
   "noindex-directives": "No noindex on the homepage: no robots, googlebot or bingbot meta tag and no X-Robots-Tag header hides it from search.",
   "sitemap": "Valid sitemap found at https://www.nvidia.com/sitemap_index.xml with multiple sitemaps entries",
   "content-no-js": "Homepage: 21731 chars, semantic headings (1 H1 + 8 H2s + 83 H3s), 5.4% content ratio. 5 of 5 sampled inner pages have text without JavaScript.",
   "bot-detection": "Site accessible to 4 agent user-agents (ChatGPT-User, OAI-SearchBot, Claude-User, PerplexityBot).",
   "agent-discovery-file": "Can't verify: a bot shield answered our request to nvidia.com/.well-known/agent-skills/index.json (HTTP 403);",
   "a2a-agent-card": "Can't verify: a bot shield answered our request to nvidia.com/.well-known/agent-card.json (HTTP 403) instead of the site. That is not counted against the site.",
   "mcp-well-known-discovery": "No MCP server URL discovered",
   "robots-agent-user-policy": "No applicable crawl or usage restriction found for 3 user-triggered agents (chatgpt-user, claude-user, perplexity-user) on 1 public page: https://nvidia.com/.",
   "llms-txt-exists": "Found the llms.txt at https://docs.nvidia.com/llms.txt.",
   "llms-txt-formatting": "The llms.txt is well-formatted: 224 lines with markdown links, 18,321 characters in total.",
   "json-ld": "JSON-LD found (1 block(s)) but no identity type - use SoftwareApplication, Product, Organization, Person, or Article so agents can tell what this site is",
   "public-api-docs": "Documentation site found at https://docs.nvidia.com",
   "metadata-completeness": "All metadata signals present: canonical URL, lang=\"en-us\", og:image, og:type",
   "page-token-budget": "All 6 measured pages fit an agent context budget (largest ~5K tokens)",
   "docs-auth-gate": "All 5 sampled pages are publicly readable (5 with substantive content)",
   "openapi-spec": "Can't verify: a bot shield answered our request to nvidia.com/.well-known/openapi.json (HTTP 403) instead of the site. That is not counted against the site.",
   "developer-portal": "Developer portal found at /developer",
   "markdown-negotiation": "Missing markdown content negotiation. Homepage returned text/html when probed with Accept: text/markdown (expected text/markdown),",
   "agent-ua-markdown": "No probed bot User-Agent (ChatGPT-User, Claude-User, Perplexity-User) receives markdown when requesting HTML.",
   "agent-crawler-reachability": "Reachable to every agent we tested - ChatGPT-User: reachable, OAI-SearchBot: reachable, Claude-User: reachable, PerplexityBot: reachable",
   "public-api": "REST API documentation found at /docs/api. Best-of-protocols score: 7/7.",
   "oauth-support": "OpenID Connect discovery endpoint found at https://login.nvidia.com",
   "mcp-server": "MCP mentioned at https://docs.nvidia.com/switch-infrastructure/config-manager/config-manager/overview/mcp but no standard manifest endpoint found",
   "webmcp": "No WebMCP support detected - no document.modelContext / navigator.modelContext usage found (scanned 12 of 12 same-origin script bundle(s) for modelContext.",
   "cli-tool": "CLI package found on npm: @nvidia/foundations-react-core",
   "rest-sdk-packages": "SDK package found only in npm",
   "nlweb-ask": "No NLWeb-conformant /ask endpoint found via GET or POST",
   "mpp-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "x402-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "ucp-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "acp-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "ap2-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites"
  }
 },
 {
  "slug": "openai",
  "name": "OpenAI",
  "domain": "openai.com",
  "read": "2026-11-09",
  "score": 60,
  "grade": "C",
  "category": "AI & ML",
  "summary": "OpenAI offers strong developer SDK and discovery presence, but lacks WebMCP support and MCP Apps UI resources for agents.",
  "layers": [
   "Discovery 14/16",
   "Access 29/54",
   "Usability 31/62",
   "Payments 0/0"
  ],
  "top": [
   "webmcp (fail, 0/5, +3.6): No WebMCP support detected - no document.modelContext / navigator.modelContext usage found",
   "mcp-app-registry (fail, 0/4, +2.9): No MCP Apps support detected - this product has an in-agent UI surface but exposes no ui:// resources or tool UI metadata for agents to render.",
   "graphql-error-type-definition (fail, 0/3, +2.2): GraphQL introspection auth-gated and no typed graphql error model documentation found on GraphQL-tagged pages",
   "idempotency-key-support (fail, 0/3, +2.2): GraphQL introspection auth-gated and no idempotency documentation found on GraphQL-tagged pages",
   "scoped-permissions (warning, 2/5, +2.2): Scoped permissions described at https://developers.openai.com, but no machine-readable scope declaration found (OpenAPI oauth2 scopes or RFC 9728 scopes_supported)",
   "content-no-js (warning, 0/3, +1.9): Homepage blocked by WAF/security challenge - content not accessible to agents"
  ],
  "seen": {
   "brand-search-accuracy": "openai.com ranks #7 for \"openai\" and appears 3 times in the top 10 (searched your brand name alone: we could not read a product term from your site)",
   "wikipedia-presence": "Wikipedia \"OpenAI\" and Wikidata Q21708200 both verified - domain confirmed on both sources",
   "robots-ai-policy-quality": "AI search crawlers: allowed in 3 of 3 checks (3 crawlers on 1 page). AI training crawlers: allowed in 2 of 2 checks (2 crawlers on 1 page), not scored.",
   "noindex-directives": "Homepage blocked by WAF - cannot read its indexing directives",
   "sitemap": "Valid sitemap found at https://openai.com/sitemap.xml with multiple sitemaps entries",
   "content-no-js": "Homepage blocked by WAF/security challenge - content not accessible to agents",
   "bot-detection": "Bot management challenged ChatGPT-User, OAI-SearchBot, Claude-User, PerplexityBot. A challenge is an identity check that verified crawlers pass,",
   "agent-discovery-file": "No agent discovery file found",
   "a2a-agent-card": "No A2A agent card found at /.well-known/agent-card.json",
   "mcp-well-known-discovery": "No MCP server URL discovered",
   "robots-agent-user-policy": "No applicable crawl or usage restriction found for 3 user-triggered agents (chatgpt-user, claude-user, perplexity-user) on 1 public page: https://openai.com/.",
   "llms-txt-exists": "Found the llms.txt at https://developers.openai.com/llms.txt.",
   "llms-txt-formatting": "The llms.txt is well-formatted: 47 lines with markdown links, 6,201 characters in total.",
   "json-ld": "JSON-LD found (1 block(s)) but no identity type - use SoftwareApplication, Product, Organization, Person, or Article so agents can tell what this site is",
   "public-api-docs": "Documentation site found at https://developers.openai.com",
   "metadata-completeness": "All metadata signals present: canonical URL, lang=\"en\", og:image, og:type",
   "page-token-budget": "Nothing sampled to measure",
   "docs-auth-gate": "Site is behind a WAF/bot wall (scored by bot-detection) - cannot separate auth gating from bot blocking",
   "openapi-spec": "OpenAPI spec published on GitHub at https://raw.githubusercontent.com/openai/openai-openapi/main/openapi.yaml",
   "developer-portal": "Developer documentation portal found at https://developers.openai.com",
   "markdown-negotiation": "Missing markdown content negotiation. Homepage returned text/html when probed with Accept: text/markdown (expected text/markdown),",
   "agent-ua-markdown": "Site is behind a WAF/bot wall - cannot probe bot-UA serving",
   "agent-crawler-reachability": "Bot management challenged ChatGPT-User, OAI-SearchBot, Claude-User, PerplexityBot - a challenge is an identity check verified crawlers pass,",
   "public-api": "API described in documentation at https://developers.openai.com but no machine-verifiable API surface confirmed.",
   "oauth-support": "OpenID Connect discovery endpoint found at https://auth.openai.com",
   "mcp-server": "First-party MCP server published by product org (npm, @openai/mcp-extensions, 20280 score). Add live handshake at /.well-known/mcp for full credit.",
   "webmcp": "No WebMCP support detected - no document.modelContext / navigator.modelContext usage found",
   "cli-tool": "CLI package found on npm: @openai/codex",
   "rest-sdk-packages": "SDK packages found across 4 ecosystems: npm, pypi, go, rubygems",
   "nlweb-ask": "NLWeb /ask endpoint exists but requires authentication (HTTP 403, via GET)",
   "mpp-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "x402-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "ucp-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "acp-support": "ACP documented (AI analysis: Docs list Commerce flows in ChatGPT; checkout implied); no live protocol surface found",
   "ap2-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites"
  }
 },
 {
  "slug": "pagerduty",
  "name": "PagerDuty",
  "domain": "pagerduty.com",
  "read": "2026-11-09",
  "score": 70,
  "grade": "B",
  "category": "Infrastructure",
  "summary": "PagerDuty offers strong developer discoverability and SDK packages, but lacks a published OpenAPI specification for agents to call its API.",
  "layers": [
   "Discovery 14/16",
   "Access 46/62",
   "Usability 47/81",
   "Payments 0/0"
  ],
  "top": [
   "openapi-spec (fail, 0/7, +3.8): No OpenAPI/Swagger specification found",
   "scoped-permissions (fail, 0/5, +2.7): No declared OAuth scopes, security schemes, or scoped-permission documentation found",
   "webmcp (fail, 0/5, +2.7): No WebMCP support detected - no document.modelContext / navigator.modelContext usage found (scanned 22 of 22 same-origin script bundle(s) for modelContext registrations)",
   "json-error-responses (fail, 0/4, +2.2): API does not return JSON error responses (or no API detected)",
   "graphql-error-type-definition (fail, 0/3, +1.6): GraphQL introspection auth-gated and no typed graphql error model documentation found on GraphQL-tagged pages",
   "idempotency-key-support (fail, 0/3, +1.6): GraphQL introspection auth-gated and no idempotency documentation found on GraphQL-tagged pages"
  ],
  "seen": {
   "brand-search-accuracy": "pagerduty.com ranks #1 for \"PagerDuty incident management\"",
   "wikipedia-presence": "Wikipedia \"PagerDuty\" and Wikidata Q48989804 both verified - domain confirmed on both sources",
   "robots-ai-policy-quality": "AI search crawlers: allowed in 3 of 3 checks (3 crawlers on 1 page). AI training crawlers: allowed in 2 of 2 checks (2 crawlers on 1 page), not scored.",
   "noindex-directives": "No noindex on the homepage: no robots, googlebot or bingbot meta tag and no X-Robots-Tag header hides it from search.",
   "sitemap": "Valid sitemap found at https://www.pagerduty.com/sitemap_index.xml with multiple sitemaps entries",
   "content-no-js": "Homepage: 6712 chars with H1, but 4.5% content ratio is below the 5% target. 5 of 5 sampled inner pages have text without JavaScript.",
   "bot-detection": "Site accessible to 4 agent user-agents (ChatGPT-User, OAI-SearchBot, Claude-User, PerplexityBot).",
   "agent-discovery-file": "No agent discovery file found",
   "a2a-agent-card": "No A2A agent card found at /.well-known/agent-card.json",
   "mcp-well-known-discovery": "MCP server at https://mcp.pagerduty.com/mcp - list its server card, hosted on your own domain, in /.well-known/ai-catalog.json so MCP clients can discover it",
   "robots-agent-user-policy": "No applicable crawl or usage restriction found for 3 user-triggered agents (chatgpt-user, claude-user,",
   "llms-txt-exists": "Found the llms.txt at https://docs.pagerduty.com/llms.txt.",
   "llms-txt-formatting": "The llms.txt contains markdown links and has 211 lines, but it doesn't start with a markdown heading.",
   "json-ld": "JSON-LD Organization found - missing description on this entity",
   "public-api-docs": "Documentation site found at https://docs.pagerduty.com",
   "metadata-completeness": "All metadata signals present: canonical URL, lang=\"en\", og:image, og:type",
   "page-token-budget": "All 6 measured pages fit an agent context budget (largest ~3K tokens)",
   "docs-auth-gate": "All 5 sampled pages are publicly readable (5 with substantive content)",
   "openapi-spec": "No OpenAPI/Swagger specification found",
   "developer-portal": "Developer portal found at /docs",
   "markdown-negotiation": "Returns markdown when requested via Accept header",
   "agent-ua-markdown": "No probed bot User-Agent (ChatGPT-User, Claude-User, Perplexity-User) receives markdown when requesting HTML.",
   "agent-crawler-reachability": "Reachable to every agent we tested - ChatGPT-User: reachable, OAI-SearchBot: reachable, Claude-User: reachable, PerplexityBot: reachable",
   "public-api": "REST API documentation found at https://docs.pagerduty.com/get-started.md. GraphQL endpoint at https://api.pagerduty.com/graphql is reachable;",
   "oauth-support": "OAuth authorization server metadata at https://app.pagerduty.com/global/oauth/anonymous",
   "mcp-server": "MCP server detected at https://mcp.pagerduty.com/mcp; it requires authentication. Presence is verified (5/6),",
   "webmcp": "No WebMCP support detected - no document.modelContext / navigator.modelContext usage found (scanned 22 of 22 same-origin script bundle(s) for modelContext.",
   "cli-tool": "CLI tool mentioned in llms.txt",
   "rest-sdk-packages": "SDK packages found across 4 ecosystems: npm, pypi, go, rubygems",
   "nlweb-ask": "No NLWeb-conformant /ask endpoint found via GET or POST",
   "mpp-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "x402-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "ucp-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "acp-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "ap2-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites"
  }
 },
 {
  "slug": "paypal",
  "name": "PayPal",
  "domain": "paypal.com",
  "read": "2026-11-09",
  "score": 70,
  "grade": "B",
  "category": "Payments & Fintech",
  "summary": "",
  "layers": [
   "Discovery 15/16",
   "Access 38/59",
   "Usability 44/82",
   "Payments 3/3"
  ],
  "top": [
   "openapi-spec (fail, 0/7, +3.6): No OpenAPI/Swagger specification found",
   "scoped-permissions (fail, 0/5, +2.4): No declared OAuth scopes, security schemes, or scoped-permission documentation found",
   "webmcp (fail, 0/5, +2.4): No WebMCP support detected - no document.modelContext / navigator.modelContext usage found (scanned 1 of 1 same-origin script bundle(s) for modelContext registrations)",
   "json-error-responses (fail, 0/4, +2): API does not return JSON error responses (or no API detected)",
   "agent-instruction (fail, 0/3, +1.5): No agent instruction file with when-to-use guidance found",
   "cli-tool (fail, 0/3, +1.5): No CLI tool found"
  ],
  "seen": {
   "brand-search-accuracy": "paypal.com ranks #2 for \"PayPal payment processing\"",
   "wikipedia-presence": "Wikidata Q483959 (PayPal) verified - draft a Wikipedia page with cited references to complete knowledge graph coverage",
   "robots-ai-policy-quality": "AI search crawlers: allowed in 3 of 3 checks (3 crawlers on 1 page). AI training crawlers: allowed in 2 of 2 checks (2 crawlers on 1 page), not scored.",
   "noindex-directives": "No noindex on the homepage: no robots, googlebot or bingbot meta tag and no X-Robots-Tag header hides it from search.",
   "sitemap": "Valid sitemap found at https://www.paypal.com/paypal-sitemap-index.xml with multiple sitemaps entries",
   "content-no-js": "Homepage: 9095 chars, semantic headings (1 H1 + 12 H2s + 18 H3s), 9.8% content ratio. 1 of 1 sampled inner page has text without JavaScript (4 skipped).",
   "bot-detection": "Site accessible to 4 agent user-agents (ChatGPT-User, OAI-SearchBot, Claude-User, PerplexityBot).",
   "agent-discovery-file": "No agent discovery file found",
   "a2a-agent-card": "No A2A agent card found at /.well-known/agent-card.json",
   "mcp-well-known-discovery": "MCP server at https://mcp.paypal.com/mcp - list its server card, hosted on your own domain, in /.well-known/ai-catalog.json so MCP clients can discover it",
   "robots-agent-user-policy": "No applicable crawl or usage restriction found for 3 user-triggered agents (chatgpt-user, claude-user, perplexity-user) on 1 public page: https://paypal.com/.",
   "llms-txt-exists": "Found the llms.txt at https://developer.paypal.com/llms.txt.",
   "llms-txt-formatting": "The llms.txt is well-formatted with markdown links, but at 40,050 characters it exceeds the 30,000-character recommendation for a navigation index.",
   "json-ld": "Rich JSON-LD identity: SoftwareApplication with name, description, url, and category/offers (1 block(s))",
   "public-api-docs": "Documentation site found at https://developer.paypal.com",
   "metadata-completeness": "All metadata signals present: canonical URL, lang=\"en-US\", og:image, og:type",
   "page-token-budget": "All 2 measured pages fit an agent context budget (largest ~2K tokens)",
   "docs-auth-gate": "4 of 5 sampled pages require authentication: https://www.paypal.com/ae/cshelp/article/does-paypal-cover-my-purchase-if-theres-a-problem-help364,",
   "openapi-spec": "No OpenAPI/Swagger specification found",
   "developer-portal": "Developer portal found at https://developer.paypal.com",
   "markdown-negotiation": "Missing markdown content negotiation. Homepage returned text/html when probed with Accept: text/markdown (expected text/markdown),",
   "agent-ua-markdown": "No probed bot User-Agent (ChatGPT-User, Claude-User, Perplexity-User) receives markdown when requesting HTML.",
   "agent-crawler-reachability": "Reachable to every agent we tested - ChatGPT-User: reachable, OAI-SearchBot: reachable, Claude-User: reachable, PerplexityBot: reachable",
   "public-api": "API described in documentation at https://developer.paypal.com but no machine-verifiable API surface confirmed.",
   "oauth-support": "OAuth authorization server metadata at https://mcp.paypal.com",
   "mcp-server": "MCP server detected at https://mcp.paypal.com/mcp; it requires authentication. Presence is verified (5/6),",
   "webmcp": "No WebMCP support detected - no document.modelContext / navigator.modelContext usage found (scanned 1 of 1 same-origin script bundle(s) for modelContext.",
   "cli-tool": "No CLI tool found",
   "rest-sdk-packages": "SDK packages found in npm, rubygems",
   "nlweb-ask": "No NLWeb-conformant /ask endpoint found via GET or POST",
   "mpp-support": "Not required: UCP already provides agentic payment support, and one protocol is sufficient (UCP discovery profile at https://paypal.com/.well-known/ucp;",
   "x402-support": "Not required: UCP already provides agentic payment support, and one protocol is sufficient (UCP discovery profile at https://paypal.com/.well-known/ucp;",
   "ucp-support": "UCP discovery profile at https://paypal.com/.well-known/ucp; version 2026-04-08; capabilities: dev.ucp.shopping.checkout, dev.ucp.shopping.fulfillment,",
   "acp-support": "Not required: UCP already provides agentic payment support, and one protocol is sufficient (UCP discovery profile at https://paypal.com/.well-known/ucp;",
   "ap2-support": "Not required: UCP already provides agentic payment support, and one protocol is sufficient (UCP discovery profile at https://paypal.com/.well-known/ucp;"
  }
 },
 {
  "slug": "plaid",
  "name": "Plaid",
  "domain": "plaid.com",
  "read": "2026-11-09",
  "score": 72,
  "grade": "B",
  "category": "Payments & Fintech",
  "summary": "Plaid provides financial account linking SDKs and registry listings, but lacks a published OpenAPI specification.",
  "layers": [
   "Discovery 11/16",
   "Access 47/61",
   "Usability 51/73",
   "Payments 0/0"
  ],
  "top": [
   "openapi-spec (fail, 0/7, +3.8): No OpenAPI/Swagger specification found",
   "scoped-permissions (fail, 0/5, +3): No declared OAuth scopes, security schemes, or scoped-permission documentation found",
   "webmcp (fail, 0/5, +3): No WebMCP support detected - no document.modelContext / navigator.modelContext usage found (scanned 29 of 29 same-origin script bundle(s) for modelContext registrations)",
   "agentic-search-specific (warning, 1/3, +2.8): In a search for your API docs, none of the 10 results is your official docs. In a search for your MCP server, SDK or CLI, we found your CLI at #1 (https://plaid.com/docs/resources/cli),",
   "brand-search-accuracy (warning, 1/3, +2.8): plaid.com ranks #7 for \"Plaid\" (searched your brand name alone: no main product term from your homepage qualified)",
   "json-error-responses (fail, 0/4, +2.4): API does not return JSON error responses (or no API detected)"
  ],
  "seen": {
   "brand-search-accuracy": "plaid.com ranks #7 for \"Plaid\" (searched your brand name alone: no main product term from your homepage qualified)",
   "wikipedia-presence": "Wikipedia \"Plaid Inc.\" and Wikidata Q30610132 both verified - domain confirmed on both sources",
   "robots-ai-policy-quality": "AI search crawlers: allowed in 18 of 18 checks (3 crawlers on 6 pages). AI training crawlers: allowed in 12 of 12 checks (2 crawlers on 6 pages), not scored.",
   "noindex-directives": "No noindex on the homepage: no robots, googlebot or bingbot meta tag and no X-Robots-Tag header hides it from search.",
   "sitemap": "Valid sitemap found at https://plaid.com/sitemap.xml with 2109 entries",
   "content-no-js": "Homepage: 1854 chars with H1, but heading hierarchy skips H2 to H5; 4.1% content ratio is below the 5% target.",
   "bot-detection": "Site accessible to 4 agent user-agents (ChatGPT-User, OAI-SearchBot, Claude-User, PerplexityBot).",
   "agent-discovery-file": "No agent discovery file found",
   "a2a-agent-card": "No A2A agent card found at /.well-known/agent-card.json",
   "mcp-well-known-discovery": "MCP server referenced in llms.txt",
   "robots-agent-user-policy": "No applicable crawl or usage restriction found for 3 user-triggered agents (chatgpt-user, claude-user, perplexity-user) on 1 public page: https://plaid.com/.",
   "llms-txt-exists": "Found the llms.txt at https://plaid.com/llms.txt.",
   "llms-txt-formatting": "The llms.txt at https://plaid.com/llms.txt is well-formatted with markdown links, but at 368,507 characters it exceeds the 30,000-character recommendation for.",
   "json-ld": "Rich JSON-LD identity: organization with name, description, url, and sameAs/logo/address (1 block(s))",
   "public-api-docs": "Documentation site found at https://plaid.com",
   "metadata-completeness": "All metadata signals present: canonical URL, lang=\"en\", og:image, og:type",
   "page-token-budget": "All 6 measured pages fit an agent context budget (largest ~2K tokens)",
   "docs-auth-gate": "All 5 sampled pages are publicly readable (5 with substantive content)",
   "openapi-spec": "No OpenAPI/Swagger specification found",
   "developer-portal": "Developer portal found at /docs",
   "markdown-negotiation": "Missing markdown content negotiation. Homepage returned text/html when probed with Accept: text/markdown (expected text/markdown),",
   "agent-ua-markdown": "No probed bot User-Agent (ChatGPT-User, Claude-User, Perplexity-User) receives markdown when requesting HTML.",
   "agent-crawler-reachability": "Reachable to every agent we tested - ChatGPT-User: reachable, OAI-SearchBot: reachable, Claude-User: reachable, PerplexityBot: reachable",
   "public-api": "REST API documentation found at /docs/api. Best-of-protocols score: 7/7.",
   "oauth-support": "OAuth authorization server metadata at https://api.dashboard.plaid.com",
   "mcp-server": "MCP server detected at https://mcp.plaid.com/mcp; it requires authentication. Presence is verified (5/6),",
   "webmcp": "No WebMCP support detected - no document.modelContext / navigator.modelContext usage found (scanned 29 of 29 same-origin script bundle(s) for modelContext.",
   "cli-tool": "CLI tool mentioned in llms.txt",
   "rest-sdk-packages": "SDK packages found across 4 ecosystems: npm, pypi, go, rubygems",
   "nlweb-ask": "NLWeb /ask endpoint exists but requires authentication (HTTP 403, via POST)",
   "mpp-support": "No MPP (Machine Payments Protocol) support detected",
   "x402-support": "No x402 payment protocol support detected",
   "ucp-support": "no UCP (Universal Commerce Protocol) signals detected",
   "acp-support": "no ACP (Agentic Commerce Protocol) signals detected",
   "ap2-support": "No AP2 (Agent Payments Protocol) signals detected"
  }
 },
 {
  "slug": "postman",
  "name": "Postman",
  "domain": "postman.com",
  "read": "2026-11-09",
  "score": 80,
  "grade": "B",
  "category": "Developer Tools",
  "summary": "Postman offers strong developer resource discoverability and MCP registry listings, but lacks a published OpenAPI specification for agents to act on.",
  "layers": [
   "Discovery 15/16",
   "Access 44/60",
   "Usability 57/74",
   "Payments 0/0"
  ],
  "top": [
   "openapi-spec (fail, 0/7, +3.9): No OpenAPI/Swagger specification found",
   "scoped-permissions (fail, 0/5, +3): No declared OAuth scopes, security schemes, or scoped-permission documentation found",
   "webmcp (fail, 0/5, +3): No WebMCP support detected - no document.modelContext / navigator.modelContext usage found (scanned 30 of 30 same-origin script bundle(s) for modelContext registrations)",
   "agent-instruction (fail, 0/3, +1.7): No agent instruction file with when-to-use guidance found",
   "ard-catalog (fail, 0/1, +1.4): No /.well-known/ard.json, no same-site rel=\"ard\" link, and no legacy /.well-known/ai-catalog.json",
   "agent-friendly-404 (fail, 0/2, +1.2): Nonexistent paths return HTTP 200 with the app shell (soft-404). Agents probing for resources conclude every path exists. Return a real HTTP 404 status for unknown paths."
  ],
  "seen": {
   "brand-search-accuracy": "postman.com ranks #4 for \"Postman Application Programming Interfaces\" and #10 for \"Postman API development\"",
   "wikipedia-presence": "Wikidata Q105538901 (Postman) verified - draft a Wikipedia page with cited references to complete knowledge graph coverage",
   "robots-ai-policy-quality": "AI search crawlers: allowed in 3 of 3 checks (3 crawlers on 1 page). AI training crawlers: allowed in 2 of 2 checks (2 crawlers on 1 page), not scored.",
   "noindex-directives": "No noindex on the homepage: no robots, googlebot or bingbot meta tag and no X-Robots-Tag header hides it from search.",
   "sitemap": "Valid sitemap found at https://www.postman.com/sitemap.xml with multiple sitemaps entries",
   "content-no-js": "Homepage: 3254 chars with H1, but 1.6% content ratio is below the 5% target. Sampled pages with almost no text without JavaScript (5 of 5):.",
   "bot-detection": "Site accessible to 4 agent user-agents (ChatGPT-User, OAI-SearchBot, Claude-User, PerplexityBot).",
   "agent-discovery-file": "No agent discovery file found",
   "a2a-agent-card": "No A2A agent card found at /.well-known/agent-card.json",
   "mcp-well-known-discovery": "MCP server at https://mcp.postman.com/mcp - list its server card, hosted on your own domain, in /.well-known/ai-catalog.json so MCP clients can discover it",
   "robots-agent-user-policy": "No applicable crawl or usage restriction found for 3 user-triggered agents (chatgpt-user, claude-user, perplexity-user) on 1 public page: https://postman.com/.",
   "llms-txt-exists": "Found the llms.txt at https://postman.com/llms.txt.",
   "llms-txt-formatting": "The llms.txt is well-formatted: 130 lines with markdown links, 21,271 characters in total.",
   "json-ld": "Rich JSON-LD identity: Organization with name, description, url, and sameAs/logo/address (2 block(s))",
   "public-api-docs": "API/docs link found on homepage and resolves: https://learning.postman.com/docs/reference/developer-resources/postman-plugin",
   "metadata-completeness": "3/4 metadata signals present - missing: og:type",
   "page-token-budget": "All 6 measured pages fit an agent context budget (largest ~1K tokens)",
   "docs-auth-gate": "All 5 sampled pages are publicly readable (0 with substantive content)",
   "openapi-spec": "No OpenAPI/Swagger specification found",
   "developer-portal": "Developer portal found at /docs",
   "markdown-negotiation": "Returns markdown when requested via Accept header",
   "agent-ua-markdown": "No probed bot User-Agent (ChatGPT-User, Claude-User, Perplexity-User) receives markdown when requesting HTML.",
   "agent-crawler-reachability": "Reachable to every agent we tested - ChatGPT-User: reachable, OAI-SearchBot: reachable, Claude-User: reachable, PerplexityBot: reachable",
   "public-api": "REST API documentation found at /api. Best-of-protocols score: 7/7.",
   "oauth-support": "OAuth authorization server metadata at https://mcp.postman.com",
   "mcp-server": "MCP server detected at https://mcp.postman.com/mcp; it requires authentication. Presence is verified (5/6),",
   "webmcp": "No WebMCP support detected - no document.modelContext / navigator.modelContext usage found (scanned 30 of 30 same-origin script bundle(s) for modelContext.",
   "cli-tool": "CLI package found on npm: postman-cli",
   "rest-sdk-packages": "SDK package found only in npm",
   "nlweb-ask": "No NLWeb-conformant /ask endpoint found via GET or POST",
   "mpp-support": "No MPP (Machine Payments Protocol) support detected",
   "x402-support": "No x402 payment protocol support detected",
   "ucp-support": "no UCP (Universal Commerce Protocol) signals detected",
   "acp-support": "OPTIONS allows POST at https://api.postman.com/checkout_sessions but POST 404 returned no ACP response",
   "ap2-support": "No AP2 (Agent Payments Protocol) signals detected"
  }
 },
 {
  "slug": "ramp",
  "name": "Ramp",
  "domain": "ramp.com",
  "read": "2026-11-09",
  "score": 68,
  "grade": "C",
  "category": "Payments & Fintech",
  "summary": "Ramp offers comprehensive spend management APIs and SDKs, but lacks OAuth scoped permissions and JSON error standardization for agent integration.",
  "layers": [
   "Discovery 11/16",
   "Access 44/58",
   "Usability 55/89",
   "Payments 0/0"
  ],
  "top": [
   "brand-search-accuracy (fail, 0/3, +4.2): ramp.com was not in the top 10 for \"Ramp spend management\"",
   "scoped-permissions (fail, 0/5, +2.5): No declared OAuth scopes, security schemes, or scoped-permission documentation found",
   "json-error-responses (fail, 0/4, +2): API does not return JSON error responses (or no API detected)",
   "agent-instruction (fail, 0/3, +1.7): No agent instruction file with when-to-use guidance found",
   "api-error-model (fail, 0/3, +1.5): No typed error model found in OpenAPI spec",
   "graphql-error-type-definition (fail, 0/3, +1.5): GraphQL introspection auth-gated and no typed graphql error model documentation found on GraphQL-tagged pages"
  ],
  "seen": {
   "brand-search-accuracy": "ramp.com was not in the top 10 for \"Ramp spend management\"",
   "wikipedia-presence": "Wikidata Q123190361 (Ramp) verified - draft a Wikipedia page with cited references to complete knowledge graph coverage",
   "robots-ai-policy-quality": "AI search crawlers: allowed in 3 of 3 checks (3 crawlers on 1 page). AI training crawlers: allowed in 2 of 2 checks (2 crawlers on 1 page), not scored.",
   "noindex-directives": "No noindex on the homepage: no robots, googlebot or bingbot meta tag and no X-Robots-Tag header hides it from search.",
   "sitemap": "Valid sitemap found at https://ramp.com/sitemap/root.xml with 162 entries",
   "content-no-js": "5206 chars, semantic headings (1 H1 + 14 H2s + 5 H3s), 6.0% content ratio",
   "bot-detection": "Site accessible to 4 agent user-agents (ChatGPT-User, OAI-SearchBot, Claude-User, PerplexityBot).",
   "agent-discovery-file": "No agent discovery file found",
   "a2a-agent-card": "No A2A agent card found at /.well-known/agent-card.json",
   "mcp-well-known-discovery": "MCP server referenced in llms.txt",
   "robots-agent-user-policy": "No applicable crawl or usage restriction found for 3 user-triggered agents (chatgpt-user, claude-user, perplexity-user) on 1 public page: https://ramp.com/.",
   "llms-txt-exists": "Found the llms.txt at https://ramp.com/llms.txt.",
   "llms-txt-formatting": "The llms.txt is well-formatted: 83 lines with markdown links, 14,959 characters in total.",
   "json-ld": "JSON-LD Organization found - missing description on this entity",
   "public-api-docs": "Documentation site found at https://docs.ramp.com",
   "metadata-completeness": "3/4 metadata signals present - missing: og:type",
   "page-token-budget": "All 1 measured page fit an agent context budget (largest ~1K tokens)",
   "docs-auth-gate": "No content pages sampled",
   "openapi-spec": "OpenAPI spec found at https://ramp.com/openapi.json (version: 3.0.0)",
   "developer-portal": "Developer portal found at https://docs.ramp.com",
   "markdown-negotiation": "Missing markdown content negotiation. Homepage returned text/html when probed with Accept: text/markdown (expected text/markdown),",
   "agent-ua-markdown": "No probed bot User-Agent (ChatGPT-User, Claude-User, Perplexity-User) receives markdown when requesting HTML.",
   "agent-crawler-reachability": "Reachable to every agent we tested - ChatGPT-User: reachable, OAI-SearchBot: reachable, Claude-User: reachable, PerplexityBot: reachable",
   "public-api": "REST API documentation found at /api. GraphQL endpoint at https://api.ramp.com/graphql is reachable; introspection requires authentication (API key / OAuth),",
   "oauth-support": "OAuth authorization server metadata at https://mcp.ramp.com",
   "mcp-server": "MCP server detected at https://mcp.ramp.com/mcp; it requires authentication. Presence is verified (5/6),",
   "webmcp": "Can't verify: a bot shield answered our request to ramp.com/docs/api (HTTP 403) instead of the site. That is not counted against the site.",
   "cli-tool": "CLI package found on npm: @ramp/cli",
   "rest-sdk-packages": "SDK package found only in npm",
   "nlweb-ask": "No NLWeb-conformant /ask endpoint found via GET or POST",
   "mpp-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "x402-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "ucp-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "acp-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "ap2-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites"
  }
 },
 {
  "slug": "render",
  "name": "Render",
  "domain": "render.com",
  "read": "2026-11-09",
  "score": 84,
  "grade": "B",
  "category": "Infrastructure",
  "summary": "Render offers strong API access and a published SDK, but lacks scoped OAuth permissions, leaving agents with all-or-nothing access.",
  "layers": [
   "Discovery 10/14",
   "Access 59/64",
   "Usability 73/86",
   "Payments 0/0"
  ],
  "top": [
   "brand-search-accuracy (warning, 1/3, +3.2): render.com ranks #8 for \"Render\" (searched your brand name alone: no main product term from your homepage qualified)",
   "ard-catalog (fail, 0/1, +1.6): No /.well-known/ard.json, no same-site rel=\"ard\" link, and no legacy /.well-known/ai-catalog.json",
   "idempotency-key-support (fail, 0/3, +1.6): No REST Idempotency-Key support detected (GraphQL signal: fail 0).",
   "mcp-registry-listed (fail, 0/1, +1.6): No verified entry in the official MCP Registry or on Smithery, and no npm or PyPI package of yours that runs as an MCP server. To pass,",
   "scoped-permissions (warning, 2/5, +1.6): OpenAPI declares security schemes but no named OAuth scopes - agents get all-or-nothing access. Declare per-scope grants (e.g. read:*, write:*) in the spec.",
   "wikipedia-presence (fail, 0/4, +1.4): No Wikipedia article or Wikidata entity found for \"render\" - creating a Wikipedia page and a Wikidata item with P856 = render.com is the highest-impact step for AI search citation coverage"
  ],
  "seen": {
   "brand-search-accuracy": "render.com ranks #8 for \"Render\" (searched your brand name alone: no main product term from your homepage qualified)",
   "wikipedia-presence": "No Wikipedia article or Wikidata entity found for \"render\" - creating a Wikipedia page and a Wikidata item with P856 = render.com is the highest-impact step.",
   "robots-ai-policy-quality": "AI search crawlers: allowed in 15 of 15 checks (3 crawlers on 5 pages). AI training crawlers: allowed in 10 of 10 checks (2 crawlers on 5 pages), not scored.",
   "noindex-directives": "No noindex on the homepage: no robots, googlebot or bingbot meta tag and no X-Robots-Tag header hides it from search.",
   "sitemap": "Valid sitemap found at https://render.com/sitemap-index.xml with multiple sitemaps entries",
   "content-no-js": "Homepage: 6049 chars with H1, but 1.7% content ratio is below the 5% target. 4 of 4 sampled inner pages have text without JavaScript (1 skipped).",
   "bot-detection": "Site accessible to 4 agent user-agents (ChatGPT-User, OAI-SearchBot, Claude-User, PerplexityBot).",
   "agent-discovery-file": "Agent Skills index (agentskills.io) found at /.well-known/agent-skills/index.json with 22 skill(s)",
   "a2a-agent-card": "No A2A agent card found at /.well-known/agent-card.json",
   "mcp-well-known-discovery": "MCP server discoverable via server-card.json at /.well-known/mcp/",
   "robots-agent-user-policy": "No applicable crawl or usage restriction found for 3 user-triggered agents (chatgpt-user, claude-user, perplexity-user) on 1 public page: https://render.com/.",
   "llms-txt-exists": "Found the llms.txt at https://render.com/llms.txt.",
   "llms-txt-formatting": "The llms.txt at https://render.com/llms.txt is well-formatted with markdown links,",
   "json-ld": "Rich JSON-LD identity: Organization with name, description, url, and sameAs/logo/address (3 block(s))",
   "public-api-docs": "Documentation site found at https://render.com",
   "metadata-completeness": "All metadata signals present: canonical URL, lang=\"en\", og:image, og:type",
   "page-token-budget": "All 7 measured pages fit an agent context budget (largest ~3K tokens)",
   "docs-auth-gate": "All 5 sampled pages are publicly readable (4 with substantive content)",
   "openapi-spec": "OpenAPI spec found at https://api-docs.render.com/openapi/render-public-api-1.json (version: 3.0.2)",
   "developer-portal": "Developer portal found at /docs",
   "markdown-negotiation": "Path-suffix markdown docs served with text/markdown content-type: /agents.md, /index.md",
   "agent-ua-markdown": "No probed bot User-Agent (ChatGPT-User, Claude-User, Perplexity-User) receives markdown when requesting HTML.",
   "agent-crawler-reachability": "Reachable to every agent we tested - ChatGPT-User: reachable, OAI-SearchBot: reachable, Claude-User: reachable, PerplexityBot: reachable",
   "public-api": "Documented REST API detected; endpoints require authentication (API key / OAuth), which is expected for agent access.",
   "oauth-support": "OAuth authorization server metadata at https://api.render.com",
   "mcp-server": "MCP server detected at https://mcp.render.com/mcp; it requires authentication. Presence is verified (5/6),",
   "webmcp": "Imperative WebMCP API detected (navigator.modelContext.registerTool in inline script).",
   "cli-tool": "CLI tool mentioned in llms.txt",
   "rest-sdk-packages": "SDK packages found in npm, pypi",
   "nlweb-ask": "No NLWeb-conformant /ask endpoint found via GET or POST",
   "mpp-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "x402-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "ucp-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "acp-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "ap2-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites"
  }
 },
 {
  "slug": "salesforce",
  "name": "Salesforce",
  "domain": "salesforce.com",
  "read": "2026-11-09",
  "score": 51,
  "grade": "C",
  "category": "CRM",
  "summary": "Salesforce offers discoverable developer resources and an SDK package, but lacks a published OpenAPI specification for agent integration.",
  "layers": [
   "Discovery 11/12",
   "Access 16/48",
   "Usability 24/56",
   "Payments 0/0"
  ],
  "top": [
   "openapi-spec (fail, 0/7, +4.9): No OpenAPI/Swagger specification found",
   "webmcp (fail, 0/5, +4): No WebMCP support detected - no document.modelContext / navigator.modelContext usage found",
   "json-error-responses (fail, 0/4, +3.2): API does not return JSON error responses (or no API detected)",
   "json-ld (fail, 0/4, +2.8): No JSON-LD structured data found on homepage",
   "graphql-error-type-definition (fail, 0/3, +2.4): GraphQL introspection auth-gated and no typed graphql error model documentation found on GraphQL-tagged pages",
   "idempotency-key-support (fail, 0/3, +2.4): GraphQL introspection auth-gated and no idempotency documentation found on GraphQL-tagged pages"
  ],
  "seen": {
   "brand-search-accuracy": "salesforce.com ranks #3 for \"salesforce\" (searched your brand name alone: we could not read a product term from your site)",
   "wikipedia-presence": "Wikidata Q941127 (Salesforce) verified - draft a Wikipedia page with cited references to complete knowledge graph coverage",
   "robots-ai-policy-quality": "Cannot verify robots.txt permission for search crawlers: WAF/bot challenge (HTTP 403)",
   "noindex-directives": "Homepage blocked by WAF - cannot read its indexing directives",
   "sitemap": "No sitemap found",
   "content-no-js": "Homepage blocked by WAF/security challenge - content not accessible to agents",
   "bot-detection": "Bot management challenged ChatGPT-User, OAI-SearchBot, Claude-User, PerplexityBot. A challenge is an identity check that verified crawlers pass,",
   "agent-discovery-file": "No agent discovery file found",
   "a2a-agent-card": "No A2A agent card found at /.well-known/agent-card.json",
   "mcp-well-known-discovery": "No MCP server URL discovered",
   "robots-agent-user-policy": "Cannot verify robots.txt permission for user-triggered agents: WAF/bot challenge (HTTP 403)",
   "llms-txt-exists": "Found the llms.txt at https://docs.salesforce.com/llms.txt.",
   "llms-txt-formatting": "The llms.txt is well-formatted: 9 lines with markdown links, 884 characters in total.",
   "json-ld": "No JSON-LD structured data found on homepage",
   "public-api-docs": "Documentation site found at https://docs.salesforce.com",
   "metadata-completeness": "Only 1/4 metadata signals present - missing: canonical URL, og:image, og:type",
   "page-token-budget": "Nothing sampled to measure",
   "docs-auth-gate": "Site is behind a WAF/bot wall (scored by bot-detection) - cannot separate auth gating from bot blocking",
   "openapi-spec": "No OpenAPI/Swagger specification found",
   "developer-portal": "Developer documentation portal found at https://docs.salesforce.com",
   "markdown-negotiation": "Missing markdown content negotiation. Homepage returned text/html when probed with Accept: text/markdown (expected text/markdown),",
   "agent-ua-markdown": "Site is behind a WAF/bot wall - cannot probe bot-UA serving",
   "agent-crawler-reachability": "Bot management challenged ChatGPT-User, OAI-SearchBot, Claude-User, PerplexityBot - a challenge is an identity check verified crawlers pass,",
   "public-api": "API described in documentation at https://docs.salesforce.com but no machine-verifiable API surface confirmed.",
   "oauth-support": "OpenID Connect discovery endpoint found at https://login.salesforce.com",
   "mcp-server": "First-party MCP server published by product org (npm, @salesforce/mcp-provider-aura-experts, 18130 score).",
   "webmcp": "No WebMCP support detected - no document.modelContext / navigator.modelContext usage found",
   "cli-tool": "CLI package found on npm: @salesforce/cli",
   "rest-sdk-packages": "SDK package found only in npm",
   "nlweb-ask": "NLWeb /ask endpoint exists but requires authentication (HTTP 403, via GET)",
   "mpp-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "x402-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "ucp-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "acp-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "ap2-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites"
  }
 },
 {
  "slug": "sentry",
  "name": "Sentry",
  "domain": "sentry.io",
  "read": "2026-11-09",
  "score": 80,
  "grade": "B",
  "category": "Infrastructure",
  "summary": "Sentry offers strong discovery and developer SDK coverage, but lacks a published OpenAPI specification for agents to integrate against.",
  "layers": [
   "Discovery 13/14",
   "Access 48/62",
   "Usability 59.5/78",
   "Payments 0/0"
  ],
  "top": [
   "openapi-spec (fail, 0/7, +3.8): No OpenAPI/Swagger specification found",
   "json-error-responses (fail, 0/4, +2.3): API does not return JSON error responses (or no API detected)",
   "graphql-error-type-definition (fail, 0/3, +1.7): GraphQL introspection auth-gated and no typed graphql error model documentation found on GraphQL-tagged pages",
   "ard-catalog (warning, 0/1, +1.6): /.well-known/ard.json exists but is not valid JSON",
   "graphql-versioning-policy (fail, 0/2, +1.1): GraphQL introspection auth-gated and no graphql versioning / deprecation policy documentation found on GraphQL-tagged pages",
   "idempotency-key-support (warning, 1/3, +1.1): GraphQL idempotency described in documentation at https://docs.sentry.io/api.md; not confirmed in the schema"
  ],
  "seen": {
   "brand-search-accuracy": "sentry.io ranks #5 for \"Sentry\" (searched your brand name alone: no main product term from your homepage qualified)",
   "wikipedia-presence": "Wikidata Q140835305 (Q140835305) verified - draft a Wikipedia page with cited references to complete knowledge graph coverage",
   "robots-ai-policy-quality": "AI search crawlers: allowed in 18 of 18 checks (3 crawlers on 6 pages). AI training crawlers: allowed in 12 of 12 checks (2 crawlers on 6 pages), not scored.",
   "noindex-directives": "No noindex on the homepage: no robots, googlebot or bingbot meta tag and no X-Robots-Tag header hides it from search.",
   "sitemap": "Valid sitemap found at https://sentry.io/sitemap-index.xml with multiple sitemaps entries",
   "content-no-js": "Homepage: 15918 chars with H1, but 4.0% content ratio is below the 5% target. 5 of 5 sampled inner pages have text without JavaScript.",
   "bot-detection": "Site accessible to 4 agent user-agents (ChatGPT-User, OAI-SearchBot, Claude-User, PerplexityBot).",
   "agent-discovery-file": "Found legacy /.well-known/agent-skills; /.well-known/agent-skills/index.json has an empty 'skills' array - add at least one skill entry",
   "a2a-agent-card": "No A2A agent card found at /.well-known/agent-card.json",
   "mcp-well-known-discovery": "MCP server discoverable at standard path https://sentry.io/.well-known/mcp.json",
   "robots-agent-user-policy": "No applicable crawl or usage restriction found for 3 user-triggered agents (chatgpt-user, claude-user, perplexity-user) on 1 public page: https://sentry.io/.",
   "llms-txt-exists": "Found the llms.txt at https://sentry.io/llms.txt.",
   "llms-txt-formatting": "The llms.txt at https://sentry.io/llms.txt is well-formatted with markdown links, but at 93,154 characters it exceeds the 30,000-character recommendation for a.",
   "json-ld": "Rich JSON-LD identity: Organization with name, description, url, and sameAs/logo/address (2 block(s))",
   "public-api-docs": "Documentation site found at https://docs.sentry.io",
   "metadata-completeness": "All metadata signals present: canonical URL, lang=\"en\", og:image, og:type",
   "page-token-budget": "All 6 measured pages fit an agent context budget (largest ~4K tokens)",
   "docs-auth-gate": "All 5 sampled pages are publicly readable (5 with substantive content)",
   "openapi-spec": "No OpenAPI/Swagger specification found",
   "developer-portal": "Developer portal found at https://docs.sentry.io",
   "markdown-negotiation": "Returns markdown when requested via Accept header",
   "agent-ua-markdown": "https://sentry.io serves markdown to the ChatGPT-User User-Agent even with Accept: text/html - UA-sniffed agent responses in place",
   "agent-crawler-reachability": "Reachable to every agent we tested - ChatGPT-User: reachable, OAI-SearchBot: reachable, Claude-User: reachable, PerplexityBot: reachable",
   "public-api": "REST API documentation found at https://docs.sentry.io/organization/data-storage-location.md. GraphQL endpoint at https://graphql.sentry.io/ is reachable;",
   "oauth-support": "OAuth authorization server metadata at https://sentry.io (issuer=https://sentry.io)",
   "mcp-server": "MCP server detected at https://mcp.sentry.dev/mcp; it requires authentication. Presence is verified (5/6),",
   "webmcp": "Imperative WebMCP API detected (document.modelContext.registerTool in script bundle /_astro/webmcp.m80_-iWU.js).",
   "cli-tool": "CLI package found on npm: @sentry/cli",
   "rest-sdk-packages": "SDK packages found across 4 ecosystems: npm, pypi, go, rubygems",
   "nlweb-ask": "No NLWeb-conformant /ask endpoint found via GET or POST",
   "mpp-support": "No MPP (Machine Payments Protocol) support detected",
   "x402-support": "No x402 payment protocol support detected",
   "ucp-support": "no UCP (Universal Commerce Protocol) signals detected",
   "acp-support": "no ACP (Agentic Commerce Protocol) signals detected",
   "ap2-support": "No AP2 (Agent Payments Protocol) signals detected"
  }
 },
 {
  "slug": "shopify",
  "name": "Shopify",
  "domain": "shopify.com",
  "read": "2026-11-09",
  "score": 74,
  "grade": "B",
  "category": "Commerce Tools",
  "summary": "Shopify offers strong developer discoverability and an NPM/PyPI SDK with a ChatGPT app listing, but lacks a published OpenAPI specification for agents to integrate against.",
  "layers": [
   "Discovery 15/16",
   "Access 39/60",
   "Usability 56/79",
   "Payments 0/0"
  ],
  "top": [
   "openapi-spec (fail, 0/7, +3.9): No OpenAPI/Swagger specification found",
   "scoped-permissions (fail, 0/5, +2.8): No declared OAuth scopes, security schemes, or scoped-permission documentation found",
   "webmcp (warning, 0/5, +2.8): No WebMCP support detected on the homepage. WebMCP is mentioned in the documentation at /developers, but a mention is not an implementation, so it earns no points.",
   "json-error-responses (fail, 0/4, +2.3): API does not return JSON error responses (or no API detected)",
   "mcp-app-registry (fail, 0/4, +2.3): No MCP Apps support detected - this product has an in-agent UI surface but exposes no ui:// resources or tool UI metadata for agents to render.",
   "json-ld (fail, 0/4, +2.2): No JSON-LD structured data found on homepage"
  ],
  "seen": {
   "brand-search-accuracy": "shopify.com ranks #5 for \"Shopify\" (searched your brand name alone: no main product term from your homepage qualified)",
   "wikipedia-presence": "Wikidata Q7501150 (Shopify) verified - draft a Wikipedia page with cited references to complete knowledge graph coverage",
   "robots-ai-policy-quality": "AI search crawlers: allowed in 3 of 3 checks (3 crawlers on 1 page). AI training crawlers: allowed in 2 of 2 checks (2 crawlers on 1 page), not scored.",
   "noindex-directives": "No noindex on the homepage: no robots, googlebot or bingbot meta tag and no X-Robots-Tag header hides it from search.",
   "sitemap": "Valid sitemap found at https://www.shopify.com/sitemaps_list.xml with multiple sitemaps entries",
   "content-no-js": "Homepage: 3361 chars with H1, but 2.1% content ratio is below the 5% target. 4 of 4 sampled inner pages have text without JavaScript (1 skipped).",
   "bot-detection": "Site accessible to 4 agent user-agents (ChatGPT-User, OAI-SearchBot, Claude-User, PerplexityBot).",
   "agent-discovery-file": "Agent discovery file found at /agents.md",
   "a2a-agent-card": "No A2A agent card found at /.well-known/agent-card.json",
   "mcp-well-known-discovery": "MCP server at https://mcp.shopify.com - list its server card, hosted on your own domain, in /.well-known/ai-catalog.json so MCP clients can discover it",
   "robots-agent-user-policy": "No applicable crawl or usage restriction found for 3 user-triggered agents (chatgpt-user, claude-user, perplexity-user) on 1 public page: https://shopify.com/.",
   "llms-txt-exists": "Found the llms.txt at https://shopify.dev/llms.txt.",
   "llms-txt-formatting": "The llms.txt is well-formatted: 87 lines with markdown links, 12,797 characters in total.",
   "json-ld": "No JSON-LD structured data found on homepage",
   "public-api-docs": "Documentation site found at https://shopify.dev",
   "metadata-completeness": "All metadata signals present: canonical URL, lang=\"en\", og:image, og:type",
   "page-token-budget": "All 7 measured pages fit an agent context budget (largest ~4K tokens)",
   "docs-auth-gate": "All 5 sampled pages are publicly readable (5 with substantive content)",
   "openapi-spec": "No OpenAPI/Swagger specification found",
   "developer-portal": "Developer portal found at /developers",
   "markdown-negotiation": "Markdown-shaped docs found at path-suffix routes (1)",
   "agent-ua-markdown": "No probed bot User-Agent (ChatGPT-User, Claude-User, Perplexity-User) receives markdown when requesting HTML.",
   "agent-crawler-reachability": "Reachable to every agent we tested - ChatGPT-User: reachable, OAI-SearchBot: reachable, Claude-User: reachable, PerplexityBot: reachable",
   "public-api": "REST API documentation found at https://shopify.dev/docs/apps/build/ai-toolkit.md. Best-of-protocols score: 7/7.",
   "oauth-support": "OpenID Connect discovery endpoint found at https://accounts.shopify.com",
   "mcp-server": "MCP server connected via Streamable HTTP - shopify-mcp-server v1.0.0 (protocol 2025-11-25)",
   "webmcp": "No WebMCP support detected on the homepage. WebMCP is mentioned in the documentation at /developers, but a mention is not an implementation,",
   "cli-tool": "CLI package found on npm: @shopify/cli",
   "rest-sdk-packages": "SDK packages found across 3 ecosystems: npm, pypi, rubygems",
   "nlweb-ask": "No NLWeb-conformant /ask endpoint found via GET or POST",
   "mpp-support": "No MPP (Machine Payments Protocol) support detected",
   "x402-support": "No x402 payment protocol support detected",
   "ucp-support": "UCP text signals (universal commerce protocol) plus OAuth authorization-server metadata;",
   "acp-support": "no ACP (Agentic Commerce Protocol) signals detected",
   "ap2-support": "No AP2 (Agent Payments Protocol) signals detected"
  }
 },
 {
  "slug": "slack",
  "name": "Slack",
  "domain": "slack.com",
  "read": "2026-11-09",
  "score": 54,
  "grade": "C",
  "category": "Communication & Support",
  "summary": "Slack offers a published SDK and a ChatGPT app listing, but lacks an OpenAPI specification and an MCP server for agents to discover and call it.",
  "layers": [
   "Discovery 14/17",
   "Access 36/58",
   "Usability 25.5/74",
   "Payments 0/0"
  ],
  "top": [
   "openapi-spec (fail, 0/7, +4): No OpenAPI/Swagger specification found",
   "mcp-server (fail, 0/6, +3.6): No MCP server or manifest found",
   "scoped-permissions (fail, 0/5, +3): No declared OAuth scopes, security schemes, or scoped-permission documentation found",
   "webmcp (fail, 0/5, +3): No WebMCP support detected - no document.modelContext / navigator.modelContext usage found",
   "brand-search-accuracy (warning, 1/3, +2.6): slack.com ranks #8 for \"Slack\" (searched your brand name alone: no main product term from your homepage qualified)",
   "json-error-responses (fail, 0/4, +2.4): API does not return JSON error responses (or no API detected)"
  ],
  "seen": {
   "brand-search-accuracy": "slack.com ranks #8 for \"Slack\" (searched your brand name alone: no main product term from your homepage qualified)",
   "wikipedia-presence": "Wikipedia \"Slack (software)\" and Wikidata Q17130715 both verified - domain confirmed on both sources",
   "robots-ai-policy-quality": "AI search crawlers: allowed in 9 of 9 checks (3 crawlers on 3 pages). AI training crawlers: allowed in 6 of 6 checks (2 crawlers on 3 pages), not scored.",
   "noindex-directives": "No noindex on the homepage: no robots, googlebot or bingbot meta tag and no X-Robots-Tag header hides it from search.",
   "sitemap": "Valid sitemap found at https://slack.com/sitemap.xml with multiple sitemaps entries",
   "content-no-js": "Homepage: 5480 chars with H1, but 4.7% content ratio is below the 5% target. 2 of 2 sampled inner pages have text without JavaScript (3 skipped).",
   "bot-detection": "Site accessible to 4 agent user-agents (ChatGPT-User, OAI-SearchBot, Claude-User, PerplexityBot).",
   "agent-discovery-file": "No agent discovery file found",
   "a2a-agent-card": "No A2A agent card found at /.well-known/agent-card.json",
   "mcp-well-known-discovery": "No MCP server URL discovered",
   "robots-agent-user-policy": "No applicable crawl or usage restriction found for 3 user-triggered agents (chatgpt-user, claude-user, perplexity-user) on 1 public page: https://slack.com/.",
   "llms-txt-exists": "Found the llms.txt at https://slack.com/llms.txt.",
   "llms-txt-formatting": "The llms.txt at https://slack.com/llms.txt is well-formatted with markdown links, but at 40,604 characters it exceeds the 30,000-character recommendation for a.",
   "json-ld": "No JSON-LD structured data found on homepage",
   "public-api-docs": "API/docs link found on homepage and resolves: https://api.slack.com",
   "metadata-completeness": "All metadata signals present: canonical URL, lang=\"en-US\", og:image, og:type",
   "page-token-budget": "All 3 measured pages fit an agent context budget (largest ~2K tokens)",
   "docs-auth-gate": "All 5 sampled pages are publicly readable (2 with substantive content)",
   "openapi-spec": "No OpenAPI/Swagger specification found",
   "developer-portal": "Developer portal found at /developers",
   "markdown-negotiation": "Missing markdown content negotiation. Homepage returned text/html when probed with Accept: text/markdown (expected text/markdown),",
   "agent-ua-markdown": "No probed bot User-Agent (ChatGPT-User, Claude-User, Perplexity-User) receives markdown when requesting HTML.",
   "agent-crawler-reachability": "Reachable to every agent we tested - ChatGPT-User: reachable, OAI-SearchBot: reachable, Claude-User: reachable, PerplexityBot: reachable",
   "public-api": "REST API-related links found on homepage but no standard API path detected. GraphQL endpoint at https://graphql.slack.com/ is reachable;",
   "oauth-support": "OpenID Connect discovery endpoint found at https://slack.com",
   "mcp-server": "No MCP server or manifest found",
   "webmcp": "No WebMCP support detected - no document.modelContext / navigator.modelContext usage found",
   "cli-tool": "No CLI tool found",
   "rest-sdk-packages": "SDK package found only in npm",
   "nlweb-ask": "No NLWeb-conformant /ask endpoint found via GET or POST",
   "mpp-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "x402-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "ucp-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "acp-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "ap2-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites"
  }
 },
 {
  "slug": "snowflake",
  "name": "Snowflake",
  "domain": "snowflake.com",
  "read": "2026-11-09",
  "score": 66,
  "grade": "C",
  "category": "Data & Analytics",
  "summary": "Snowflake excels at developer resource discovery and SDK availability, but lacks OpenAPI specification for agent integration.",
  "layers": [
   "Discovery 14/15",
   "Access 33/57",
   "Usability 33/57",
   "Payments 0/0"
  ],
  "top": [
   "openapi-spec (fail, 0/7, +4.1): No OpenAPI/Swagger specification found",
   "webmcp (fail, 0/5, +3.9): No WebMCP support detected - no document.modelContext / navigator.modelContext usage found (scanned 2 of 2 same-origin script bundle(s) for modelContext registrations)",
   "json-error-responses (fail, 0/4, +3.1): API does not return JSON error responses (or no API detected)",
   "mcp-app-registry (fail, 0/4, +3.1): No MCP Apps support detected - this product has an in-agent UI surface but exposes no ui:// resources or tool UI metadata for agents to render.",
   "mcp-server (warning, 2/6, +3.1): MCP mentioned at https://www.snowflake.com/en/developers/guides/getting-started-with-snowflake-mcp-server but no standard manifest endpoint found",
   "json-ld (fail, 0/4, +2.3): No JSON-LD structured data found on homepage"
  ],
  "seen": {
   "brand-search-accuracy": "snowflake.com ranks #5 for \"snowflake data platform\" (search term updated)",
   "wikipedia-presence": "Wikipedia \"Snowflake Inc.\" and Wikidata Q22078063 both verified - domain confirmed on both sources",
   "robots-ai-policy-quality": "AI search crawlers: allowed in 3 of 3 checks (3 crawlers on 1 page). AI training crawlers: allowed in 2 of 2 checks (2 crawlers on 1 page), not scored.",
   "noindex-directives": "No noindex on the homepage: no robots, googlebot or bingbot meta tag and no X-Robots-Tag header hides it from search.",
   "sitemap": "Valid sitemap found at https://www.snowflake.com/sitemap_index.xml with multiple sitemaps entries",
   "content-no-js": "7473 chars with H1, but heading hierarchy skips H1 to H6; 3.2% content ratio is below the 5% target",
   "bot-detection": "Site accessible to 4 agent user-agents (ChatGPT-User, OAI-SearchBot, Claude-User, PerplexityBot).",
   "agent-discovery-file": "No agent discovery file found",
   "a2a-agent-card": "No A2A agent card found at /.well-known/agent-card.json",
   "mcp-well-known-discovery": "No MCP server URL discovered",
   "robots-agent-user-policy": "No applicable crawl or usage restriction found for 3 user-triggered agents (chatgpt-user, claude-user,",
   "llms-txt-exists": "Found the llms.txt at https://docs.snowflake.com/llms.txt.",
   "llms-txt-formatting": "The llms.txt is well-formatted: 127 lines with markdown links, 9,373 characters in total.",
   "json-ld": "No JSON-LD structured data found on homepage",
   "public-api-docs": "Documentation site found at https://docs.snowflake.com",
   "metadata-completeness": "3/4 metadata signals present - missing: og:type",
   "page-token-budget": "All 1 measured page fit an agent context budget (largest ~2K tokens)",
   "docs-auth-gate": "No content pages sampled",
   "openapi-spec": "No OpenAPI/Swagger specification found",
   "developer-portal": "Developer portal found at /developers",
   "markdown-negotiation": "Missing markdown content negotiation. Homepage returned text/html when probed with Accept: text/markdown (expected text/markdown),",
   "agent-ua-markdown": "No probed bot User-Agent (ChatGPT-User, Claude-User, Perplexity-User) receives markdown when requesting HTML.",
   "agent-crawler-reachability": "Reachable to every agent we tested - ChatGPT-User: reachable, OAI-SearchBot: reachable, Claude-User: reachable, PerplexityBot: reachable",
   "public-api": "REST API documentation found at https://docs.snowflake.com/en/guides-overview-alerts.md. Best-of-protocols score: 7/7.",
   "oauth-support": "OpenID Connect discovery endpoint found at https://auth.snowflake.com",
   "mcp-server": "MCP mentioned at https://www.snowflake.com/en/developers/guides/getting-started-with-snowflake-mcp-server but no standard manifest endpoint found",
   "webmcp": "No WebMCP support detected - no document.modelContext / navigator.modelContext usage found (scanned 2 of 2 same-origin script bundle(s) for modelContext.",
   "cli-tool": "CLI tool found on PyPI: snowflake",
   "rest-sdk-packages": "SDK packages found in npm, pypi",
   "nlweb-ask": "No NLWeb-conformant /ask endpoint found via GET or POST",
   "mpp-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "x402-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "ucp-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "acp-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "ap2-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites"
  }
 },
 {
  "slug": "square",
  "name": "Square",
  "domain": "squareup.com",
  "read": "2026-11-09",
  "score": 57,
  "grade": "C",
  "category": "Payments & Fintech",
  "summary": "Square's payments API documentation is reachable, but homepage content requires JavaScript rendering that blocks agent crawling.",
  "layers": [
   "Discovery 8/14",
   "Access 36/60",
   "Usability 33/61",
   "Payments 0/0"
  ],
  "top": [
   "openapi-spec (fail, 0/7, +3.9): No OpenAPI/Swagger specification found",
   "scoped-permissions (fail, 0/5, +3.6): No declared OAuth scopes, security schemes, or scoped-permission documentation found",
   "webmcp (fail, 0/5, +3.6): No WebMCP support detected - no document.modelContext / navigator.modelContext usage found",
   "agentic-search-specific (warning, 1/3, +3.2): Agent found 9 pages by name but no recognizable developer-resource type. Found on site but absent from this search sample: MCP server. Not found in this search sample: API docs, OpenAPI spec",
   "json-error-responses (fail, 0/4, +2.9): API does not return JSON error responses (or no API detected)",
   "public-api (warning, 3/7, +2.9): API described in documentation at https://developer.squareup.com but no machine-verifiable API surface confirmed. Best-of-protocols score: 3/7."
  ],
  "seen": {
   "brand-search-accuracy": "squareup.com ranks #6 for \"Square payment processing\" and appears 2 times in the top 10",
   "wikipedia-presence": "Wikidata Q110778747 (Block, Inc.) verified - draft a Wikipedia page with cited references to complete knowledge graph coverage",
   "robots-ai-policy-quality": "AI search crawlers: allowed in 18 of 18 checks (3 crawlers on 6 pages). AI training crawlers: allowed in 12 of 12 checks (2 crawlers on 6 pages), not scored.",
   "noindex-directives": "No noindex on the homepage: no robots, googlebot or bingbot meta tag and no X-Robots-Tag header hides it from search.",
   "sitemap": "Valid sitemap found at https://squareup.com/us/en/sitemap.xml with 2070 entries",
   "content-no-js": "Homepage: Very little text content (35 chars) - likely JS-rendered, invisible to AI crawlers. No inner pages checked: the 5 sampled pages were skipped (forms,",
   "bot-detection": "Site accessible to 4 agent user-agents (ChatGPT-User, OAI-SearchBot, Claude-User, PerplexityBot).",
   "agent-discovery-file": "No agent discovery file found",
   "a2a-agent-card": "No A2A agent card found at /.well-known/agent-card.json",
   "mcp-well-known-discovery": "MCP server at https://mcp.squareup.com/mcp - list its server card, hosted on your own domain, in /.well-known/ai-catalog.json so MCP clients can discover it",
   "robots-agent-user-policy": "No applicable crawl or usage restriction found for 3 user-triggered agents (chatgpt-user, claude-user,",
   "llms-txt-exists": "Found the llms.txt at https://squareup.com/llms.txt.",
   "llms-txt-formatting": "The llms.txt is well-formatted: 204 lines with markdown links, 21,863 characters in total.",
   "json-ld": "No JSON-LD structured data found on homepage",
   "public-api-docs": "Documentation site found at https://developer.squareup.com",
   "metadata-completeness": "All metadata signals present: canonical URL, lang=\"en-US\", og:image, og:type",
   "page-token-budget": "All 6 measured pages fit an agent context budget (largest ~7K tokens)",
   "docs-auth-gate": "All 5 sampled pages are publicly readable (5 with substantive content)",
   "openapi-spec": "No OpenAPI/Swagger specification found",
   "developer-portal": "Developer documentation portal found at https://developer.squareup.com",
   "markdown-negotiation": "Missing markdown content negotiation. Homepage returned text/html when probed with Accept: text/markdown (expected text/markdown),",
   "agent-ua-markdown": "No probed bot User-Agent (ChatGPT-User, Claude-User, Perplexity-User) receives markdown when requesting HTML.",
   "agent-crawler-reachability": "Reachable to every agent we tested - ChatGPT-User: reachable, OAI-SearchBot: reachable, Claude-User: reachable, PerplexityBot: reachable",
   "public-api": "API described in documentation at https://developer.squareup.com but no machine-verifiable API surface confirmed. Best-of-protocols score: 3/7.",
   "oauth-support": "OAuth authorization server metadata at https://mcp.squareup.com",
   "mcp-server": "MCP server detected at https://mcp.squareup.com/mcp; it requires authentication. Presence is verified (5/6),",
   "webmcp": "No WebMCP support detected - no document.modelContext / navigator.modelContext usage found",
   "cli-tool": "No CLI tool found",
   "rest-sdk-packages": "SDK packages mentioned at https://developer.squareup.com but none found in registries",
   "nlweb-ask": "No NLWeb-conformant /ask endpoint found via GET or POST",
   "mpp-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "x402-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "ucp-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "acp-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "ap2-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites"
  }
 },
 {
  "slug": "stripe",
  "name": "Stripe",
  "domain": "stripe.com",
  "read": "2026-11-09",
  "score": 74,
  "grade": "B",
  "category": "Payments & Fintech",
  "summary": "Stripe offers strong developer discovery and SDK packages, but lacks a published OpenAPI specification for agents to parse.",
  "layers": [
   "Discovery 15/18",
   "Access 44/59",
   "Usability 58/84",
   "Payments 0/0"
  ],
  "top": [
   "openapi-spec (fail, 0/7, +4): No OpenAPI/Swagger specification found",
   "webmcp (warning, 0/5, +2.6): No WebMCP support detected on the homepage. WebMCP is mentioned in the documentation at /docs, but a mention is not an implementation, so it earns no points.",
   "brand-search-accuracy (warning, 1/3, +2.5): stripe.com ranks #7 for \"Stripe\" (searched your brand name alone: no main product term from your homepage qualified)",
   "api-error-model (fail, 0/3, +1.6): No typed error model found",
   "scoped-permissions (warning, 2/5, +1.6): Scoped permissions described at https://docs.stripe.com, but no machine-readable scope declaration found (OpenAPI oauth2 scopes or RFC 9728 scopes_supported)",
   "ard-catalog (fail, 0/1, +1.2): No /.well-known/ard.json, no same-site rel=\"ard\" link, and no legacy /.well-known/ai-catalog.json"
  ],
  "seen": {
   "brand-search-accuracy": "stripe.com ranks #7 for \"Stripe\" (searched your brand name alone: no main product term from your homepage qualified)",
   "wikipedia-presence": "Wikipedia \"Stripe, Inc.\" and Wikidata Q7624104 both verified - domain confirmed on both sources",
   "robots-ai-policy-quality": "AI search crawlers: allowed in 18 of 18 checks (3 crawlers on 6 pages). AI training crawlers: allowed in 12 of 12 checks (2 crawlers on 6 pages), not scored.",
   "noindex-directives": "No noindex on the homepage: no robots, googlebot or bingbot meta tag and no X-Robots-Tag header hides it from search.",
   "sitemap": "Valid sitemap found at https://stripe.com/sitemap/sitemap.xml with multiple sitemaps entries",
   "content-no-js": "Homepage: 11002 chars with H1, but 2.8% content ratio is below the 5% target. 5 of 5 sampled inner pages have text without JavaScript.",
   "bot-detection": "Site accessible to 4 agent user-agents (ChatGPT-User, OAI-SearchBot, Claude-User, PerplexityBot).",
   "agent-discovery-file": "No agent discovery file found",
   "a2a-agent-card": "No A2A agent card found at /.well-known/agent-card.json",
   "mcp-well-known-discovery": "MCP server at https://mcp.stripe.com - list its server card, hosted on your own domain, in /.well-known/ai-catalog.json so MCP clients can discover it",
   "robots-agent-user-policy": "No applicable crawl or usage restriction found for 3 user-triggered agents (chatgpt-user, claude-user, perplexity-user) on 1 public page: https://stripe.com/.",
   "llms-txt-exists": "Found the llms.txt at https://stripe.com/llms.txt.",
   "llms-txt-formatting": "The llms.txt at https://stripe.com/llms.txt is well-formatted with markdown links,",
   "json-ld": "Rich JSON-LD identity: Organization with name, description, url, and sameAs/logo/address (1 block(s))",
   "public-api-docs": "Documentation site found at https://docs.stripe.com",
   "metadata-completeness": "All metadata signals present: canonical URL, lang=\"en-US\", og:image, og:type",
   "page-token-budget": "1 of 6 measured pages exceed ~25K tokens of extracted text: https://stripe.com/legal/organizations (~165K tokens).",
   "docs-auth-gate": "All 5 sampled pages are publicly readable (5 with substantive content)",
   "openapi-spec": "No OpenAPI/Swagger specification found",
   "developer-portal": "Developer portal found at https://docs.stripe.com",
   "markdown-negotiation": "Missing markdown content negotiation. Homepage returned text/html when probed with Accept: text/markdown (expected text/markdown),",
   "agent-ua-markdown": "https://docs.stripe.com serves markdown to the ChatGPT-User User-Agent even with Accept: text/html - UA-sniffed agent responses in place",
   "agent-crawler-reachability": "Reachable to every agent we tested - ChatGPT-User: reachable, OAI-SearchBot: reachable, Claude-User: reachable, PerplexityBot: reachable",
   "public-api": "REST API documentation found at https://docs.stripe.com/sandboxes.md. Best-of-protocols score: 7/7.",
   "oauth-support": "OAuth authorization server metadata at https://access.stripe.com/mcp",
   "mcp-server": "MCP server detected at https://mcp.stripe.com; it requires authentication. Presence is verified (5/6),",
   "webmcp": "No WebMCP support detected on the homepage. WebMCP is mentioned in the documentation at /docs, but a mention is not an implementation, so it earns no points.",
   "cli-tool": "CLI package found on npm: @stripe/cli",
   "rest-sdk-packages": "SDK packages found across 4 ecosystems: npm, pypi, go, rubygems",
   "nlweb-ask": "No NLWeb-conformant /ask endpoint found via GET or POST",
   "mpp-support": "No MPP (Machine Payments Protocol) support detected",
   "x402-support": "No x402 payment protocol support detected",
   "ucp-support": "text mentions (universal commerce protocol, checkout-sessions) but no /.well-known/ucp profile or commerce metadata",
   "acp-support": "ACP text signals (agentic commerce protocol, shared payment token, shared-payment-token) plus ACP request headers (API-Version / Idempotency-Key);",
   "ap2-support": "No AP2 (Agent Payments Protocol) signals detected"
  }
 },
 {
  "slug": "supabase",
  "name": "Supabase",
  "domain": "supabase.com",
  "read": "2026-11-09",
  "score": 93,
  "grade": "A",
  "category": "Developer Tools",
  "summary": "Supabase offers strong discovery and access for agents, and adding WebMCP support would let browser agents act on its pages directly.",
  "layers": [
   "Discovery 19/19",
   "Access 63/65",
   "Usability 77/88",
   "Payments 0/0"
  ],
  "top": [
   "webmcp (fail, 0/5, +2.5): No WebMCP support detected - no document.modelContext / navigator.modelContext usage found (scanned 39 of 39 same-origin script bundle(s) for modelContext registrations)",
   "async-job-pattern (fail, 0/2, +1): No async job pattern found",
   "rate-limit-headers (fail, 0/2, +1): No REST rate-limit headers found on probed endpoints",
   "content-no-js (warning, 2/3, +0.5): Homepage: 7041 chars with H1, but 0.7% content ratio is below the 5% target. 5 of 5 sampled inner pages have text without JavaScript.",
   "mcp-server (warning, 5/6, +0.5): MCP server detected at https://mcp.supabase.com/mcp; it requires authentication. Presence is verified (5/6), but Ora could not inspect its tools or verify access scopes without credentials.",
   "onboarding-friction (warning, 1/2, +0.5): Onboarding signals described but not verified live: free tier available, self-serve key generation, sandbox/test environment"
  ],
  "seen": {
   "brand-search-accuracy": "supabase.com ranks #2 for \"Supabase Postgres development platform\"",
   "wikipedia-presence": "Wikidata Q136776342 (Supabase) verified - draft a Wikipedia page with cited references to complete knowledge graph coverage",
   "robots-ai-policy-quality": "AI search crawlers: allowed in 18 of 18 checks (3 crawlers on 6 pages). AI training crawlers: allowed in 12 of 12 checks (2 crawlers on 6 pages), not scored.",
   "noindex-directives": "No noindex on the homepage: no robots, googlebot or bingbot meta tag and no X-Robots-Tag header hides it from search.",
   "sitemap": "Valid sitemap found at https://supabase.com/sitemap.xml with multiple sitemaps entries",
   "content-no-js": "Homepage: 7041 chars with H1, but 0.7% content ratio is below the 5% target. 5 of 5 sampled inner pages have text without JavaScript.",
   "bot-detection": "Site accessible to 4 agent user-agents (ChatGPT-User, OAI-SearchBot, Claude-User, PerplexityBot).",
   "agent-discovery-file": "Agent Skills index (agentskills.io) found at /.well-known/agent-skills/index.json with 2 skill(s)",
   "a2a-agent-card": "No A2A agent card found at /.well-known/agent-card.json",
   "mcp-well-known-discovery": "MCP server discoverable via server-card.json at /.well-known/mcp/",
   "robots-agent-user-policy": "No applicable crawl or usage restriction found for 3 user-triggered agents (chatgpt-user, claude-user,",
   "llms-txt-exists": "Found the llms.txt at https://supabase.com/llms.txt.",
   "llms-txt-formatting": "The llms.txt is well-formatted: 48 lines with markdown links, 3,298 characters in total.",
   "json-ld": "Rich JSON-LD identity: Organization with name, description, url, and sameAs/logo/address (4 block(s))",
   "public-api-docs": "Documentation site found at https://supabase.com",
   "metadata-completeness": "All metadata signals present: canonical URL, lang=\"en\", og:image, og:type",
   "page-token-budget": "All 8 measured pages fit an agent context budget (largest ~2K tokens)",
   "docs-auth-gate": "All 5 sampled pages are publicly readable (5 with substantive content)",
   "openapi-spec": "OpenAPI spec found at https://api.supabase.com/api/v1-json (version: 3.0.0)",
   "developer-portal": "Developer portal found at https://supabase.com",
   "markdown-negotiation": "Path-suffix markdown docs served with text/markdown content-type: /auth.md, /index.md",
   "agent-ua-markdown": "No probed bot User-Agent (ChatGPT-User, Claude-User, Perplexity-User) receives markdown when requesting HTML.",
   "agent-crawler-reachability": "Reachable to every agent we tested - ChatGPT-User: reachable, OAI-SearchBot: reachable, Claude-User: reachable, PerplexityBot: reachable",
   "public-api": "Documented REST API detected; endpoints require authentication (API key / OAuth), which is expected for agent access. Best-of-protocols score: 7/7.",
   "oauth-support": "OAuth authorization server metadata at https://api.supabase.com",
   "mcp-server": "MCP server detected at https://mcp.supabase.com/mcp; it requires authentication. Presence is verified (5/6),",
   "webmcp": "No WebMCP support detected - no document.modelContext / navigator.modelContext usage found (scanned 39 of 39 same-origin script bundle(s) for modelContext.",
   "cli-tool": "CLI package found on npm: supabase",
   "rest-sdk-packages": "SDK packages found across 3 ecosystems: npm, pypi, go",
   "nlweb-ask": "No NLWeb-conformant /ask endpoint found via GET or POST",
   "mpp-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "x402-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "ucp-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "acp-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "ap2-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites"
  }
 },
 {
  "slug": "twilio",
  "name": "Twilio",
  "domain": "twilio.com",
  "read": "2026-11-09",
  "score": 85,
  "grade": "B",
  "category": "Communication & Support",
  "summary": "Twilio offers a strong OpenAPI spec and broad developer discoverability, but lacks declared OAuth scopes and scoped-permission documentation for agents.",
  "layers": [
   "Discovery 14/16",
   "Access 52/61",
   "Usability 64/77",
   "Payments 0/0"
  ],
  "top": [
   "scoped-permissions (fail, 0/5, +2.9): No declared OAuth scopes, security schemes, or scoped-permission documentation found",
   "webmcp (fail, 0/5, +2.9): No WebMCP support detected - no document.modelContext / navigator.modelContext usage found (scanned 7 of 7 same-origin script bundle(s) for modelContext registrations)",
   "ard-catalog (fail, 0/1, +1.4): No /.well-known/ard.json, no same-site rel=\"ard\" link, and no legacy /.well-known/ai-catalog.json",
   "mcp-registry-listed (fail, 0/1, +1.4): No verified entry in the official MCP Registry or on Smithery, and no npm or PyPI package of yours that runs as an MCP server. To pass,",
   "agent-discovery-file (fail, 0/2, +1.1): No agent discovery file found",
   "openapi-spec (warning, 5/7, +1.1): OpenAPI spec (YAML) found at https://www.twilio.com/en-us/blog/products/launches/introducing-twilios-openapi-specification-ga.md"
  ],
  "seen": {
   "brand-search-accuracy": "twilio.com ranks #5 for \"Twilio\" (searched your brand name alone: no main product term from your homepage qualified)",
   "wikipedia-presence": "Wikipedia \"Twilio\" and Wikidata Q7858039 both verified - domain confirmed on both sources",
   "robots-ai-policy-quality": "AI search crawlers: allowed in 3 of 3 checks (3 crawlers on 1 page). AI training crawlers: allowed in 0 of 2 checks (2 crawlers on 1 page), not scored.",
   "noindex-directives": "No noindex on the homepage: no robots, googlebot or bingbot meta tag and no X-Robots-Tag header hides it from search.",
   "sitemap": "Valid sitemap found at /sitemap.xml with multiple sitemaps entries",
   "content-no-js": "Homepage: 7846 chars with H1, but heading hierarchy skips H2 to H4. 5 of 5 sampled inner pages have text without JavaScript.",
   "bot-detection": "Site accessible to 4 agent user-agents (ChatGPT-User, OAI-SearchBot, Claude-User, PerplexityBot).",
   "agent-discovery-file": "No agent discovery file found",
   "a2a-agent-card": "No A2A agent card found at /.well-known/agent-card.json",
   "mcp-well-known-discovery": "MCP server discoverable at standard path /.well-known/mcp",
   "robots-agent-user-policy": "No applicable crawl or usage restriction found for 3 user-triggered agents (chatgpt-user, claude-user, perplexity-user) on 1 public page: https://twilio.com/.",
   "llms-txt-exists": "Found the llms.txt at https://www.twilio.com/llms.txt.",
   "llms-txt-formatting": "The llms.txt contains markdown links and has 3811 lines, but it doesn't start with a markdown heading.",
   "json-ld": "Rich JSON-LD identity: Organization with name, description, url, and sameAs/logo/address (2 block(s))",
   "public-api-docs": "Documentation site found at https://www.twilio.com",
   "metadata-completeness": "All metadata signals present: canonical URL, lang=\"en\", og:image, og:type",
   "page-token-budget": "All 6 measured pages fit an agent context budget (largest ~3K tokens)",
   "docs-auth-gate": "All 5 sampled pages are publicly readable (5 with substantive content)",
   "openapi-spec": "OpenAPI spec (YAML) found at https://www.twilio.com/en-us/blog/products/launches/introducing-twilios-openapi-specification-ga.md",
   "developer-portal": "Developer portal found at /developers",
   "markdown-negotiation": "Missing markdown content negotiation. Homepage returned text/html when probed with Accept: text/markdown (expected text/markdown),",
   "agent-ua-markdown": "No probed bot User-Agent (ChatGPT-User, Claude-User, Perplexity-User) receives markdown when requesting HTML.",
   "agent-crawler-reachability": "Reachable to every agent we tested - ChatGPT-User: reachable, OAI-SearchBot: reachable, Claude-User: reachable, PerplexityBot: reachable",
   "public-api": "REST API documentation found at https://www.twilio.com/en-us/voice/api.md. Best-of-protocols score: 7/7.",
   "oauth-support": "OAuth authorization server metadata at https://support.twilio.com/mcp/oauth",
   "mcp-server": "MCP server connected via Streamable HTTP - twilio-com-public-web-mcp v0.1.0 (protocol 2025-11-25)",
   "webmcp": "No WebMCP support detected - no document.modelContext / navigator.modelContext usage found (scanned 7 of 7 same-origin script bundle(s) for modelContext.",
   "cli-tool": "CLI package found on npm: twilio-cli",
   "rest-sdk-packages": "SDK packages found across 4 ecosystems: npm, pypi, go, rubygems",
   "nlweb-ask": "No NLWeb-conformant /ask endpoint found via GET or POST",
   "mpp-support": "No MPP (Machine Payments Protocol) support detected",
   "x402-support": "No x402 payment protocol support detected",
   "ucp-support": "no UCP (Universal Commerce Protocol) signals detected",
   "acp-support": "no ACP (Agentic Commerce Protocol) signals detected",
   "ap2-support": "No AP2 (Agent Payments Protocol) signals detected"
  }
 },
 {
  "slug": "typeform",
  "name": "Typeform",
  "domain": "typeform.com",
  "read": "2026-11-09",
  "score": 69,
  "grade": "C",
  "category": "Productivity",
  "summary": "Typeform offers solid developer resource discoverability, but lacks an OpenAPI specification.",
  "layers": [
   "Discovery 15/17",
   "Access 45/60",
   "Usability 39/70",
   "Payments 0/0"
  ],
  "top": [
   "openapi-spec (fail, 0/7, +3.9): No OpenAPI/Swagger specification found",
   "scoped-permissions (fail, 0/5, +3.2): No declared OAuth scopes, security schemes, or scoped-permission documentation found",
   "webmcp (fail, 0/5, +3.2): No WebMCP support detected - no tool-attribute forms and no document.modelContext / navigator.modelContext usage found",
   "json-error-responses (fail, 0/4, +2.5): API does not return JSON error responses (or no API detected)",
   "mcp-app-registry (fail, 0/4, +2.5): No MCP Apps support detected - this product has an in-agent UI surface but exposes no ui:// resources or tool UI metadata for agents to render.",
   "mcp-server (warning, 2/6, +2.5): MCP endpoint found at /mcp but response is not valid JSON"
  ],
  "seen": {
   "brand-search-accuracy": "typeform.com appears at position #3 in a clean brand-name search for \"Typeform productivity\" (5 total matches)",
   "wikipedia-presence": "Wikipedia \"Typeform (service)\" and Wikidata Q24910393 both verified - domain confirmed on both sources",
   "robots-ai-policy-quality": "Training: 2/2. Search: 3/3 page/crawler pairs permitted. No applicable crawl or usage restriction found for 5 training and search crawlers (gptbot, claudebot,",
   "sitemap": "Valid sitemap found at https://www.typeform.com/sitemap.xml with 4371 entries",
   "content-no-js": "3786 chars of readable text, but no H1 tag",
   "bot-detection": "Site accessible to 6 AI agent user-agents",
   "agent-discovery-file": "No agent discovery file found",
   "a2a-agent-card": "No A2A agent card found at /.well-known/agent-card.json",
   "mcp-well-known-discovery": "MCP server at https://mcp.typeform.com - consider adding /.well-known/mcp for standard discovery",
   "robots-agent-user-policy": "No applicable crawl or usage restriction found for 3 user-triggered agents (chatgpt-user, claude-user,",
   "llms-txt-exists": "Found the llms.txt at https://www.typeform.com/llms.txt.",
   "llms-txt-formatting": "The llms.txt is well-formatted: 43 lines with markdown links, 4,720 characters in total.",
   "json-ld": "Rich JSON-LD identity: Organization with name, description, url, and sameAs/logo/address (1 block(s))",
   "public-api-docs": "Documentation site found at https://www.typeform.com",
   "metadata-completeness": "All metadata signals present: canonical URL, lang=\"en\", og:image, og:type",
   "page-token-budget": "All 6 measured pages fit an agent context budget (largest ~4K tokens)",
   "docs-auth-gate": "All 5 sampled pages are publicly readable (5 with substantive content)",
   "openapi-spec": "No OpenAPI/Swagger specification found",
   "developer-portal": "Developer portal found at /developers",
   "markdown-negotiation": "Returns markdown when requested via Accept header",
   "agent-ua-markdown": "No probed bot User-Agent (GPTBot, ClaudeBot, ChatGPT-User, PerplexityBot, Google-Extended, Applebot-Extended, ora-agent,",
   "agent-crawler-reachability": "Reachable to all major AI crawlers - ChatGPT-User: reachable, ClaudeBot: reachable, Google-Extended: reachable, ora-agent: reachable, DeepSeekBot: reachable",
   "public-api": "API described in documentation at https://www.typeform.com but no machine-verifiable API surface confirmed. Best-of-protocols score: 3/7.",
   "oauth-support": "OAuth authorization server metadata at https://api.typeform.com",
   "mcp-server": "MCP endpoint found at /mcp but response is not valid JSON",
   "webmcp": "No WebMCP support detected - no tool-attribute forms and no document.modelContext / navigator.modelContext usage found",
   "cli-tool": "CLI tool found on PyPI: typeform",
   "rest-sdk-packages": "SDK package found only in npm",
   "nlweb-ask": "No NLWeb-conformant /ask endpoint found via GET or POST",
   "mpp-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "x402-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "ucp-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "acp-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "ap2-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites"
  }
 },
 {
  "slug": "vercel",
  "name": "Vercel",
  "domain": "vercel.com",
  "read": "2026-11-09",
  "score": 91,
  "grade": "A",
  "category": "Infrastructure",
  "summary": "Vercel offers strong discovery and access with a verified zero-auth API, and WebMCP support plus named OAuth scopes would round out agent readiness.",
  "layers": [
   "Discovery 21/21",
   "Access 62/64",
   "Usability 73/89",
   "Payments 0/0"
  ],
  "top": [
   "webmcp (fail, 0/5, +2.5): No WebMCP support detected - no document.modelContext / navigator.modelContext usage found (scanned 43 of 43 same-origin script bundle(s) for modelContext registrations)",
   "idempotency-key-support (fail, 0/3, +1.5): No REST Idempotency-Key support detected",
   "scoped-permissions (warning, 2/5, +1.5): OpenAPI declares security schemes but no named OAuth scopes - agents get all-or-nothing access. Declare per-scope grants (e.g. read:*, write:*) in the spec.",
   "rate-limit-headers (fail, 0/2, +1): No REST rate-limit headers found on probed endpoints",
   "content-no-js (warning, 2/3, +0.5): Homepage: 1009 chars with H1, but 1.0% content ratio is below the 5% target. 4 of 4 sampled inner pages have text without JavaScript (1 skipped).",
   "mcp-server (warning, 5/6, +0.5): MCP server detected at https://mcp.vercel.com; it requires authentication. Presence is verified (5/6), but Ora could not inspect its tools or verify access scopes without credentials."
  ],
  "seen": {
   "brand-search-accuracy": "vercel.com ranks #3 for \"Vercel Agentic infrastructure platform\"",
   "wikipedia-presence": "Wikipedia \"Vercel\" and Wikidata Q56069184 both verified - domain confirmed on both sources",
   "robots-ai-policy-quality": "AI search crawlers: allowed in 18 of 18 checks (3 crawlers on 6 pages). AI training crawlers: allowed in 12 of 12 checks (2 crawlers on 6 pages), not scored.",
   "noindex-directives": "No noindex on the homepage: no robots, googlebot or bingbot meta tag and no X-Robots-Tag header hides it from search.",
   "sitemap": "Valid sitemap found at https://vercel.com/sitemap.xml with 9388 entries",
   "content-no-js": "Homepage: 1009 chars with H1, but 1.0% content ratio is below the 5% target. 4 of 4 sampled inner pages have text without JavaScript (1 skipped).",
   "bot-detection": "Site accessible to 4 agent user-agents (ChatGPT-User, OAI-SearchBot, Claude-User, PerplexityBot).",
   "agent-discovery-file": "Agent Skills index (agentskills.io) found at /.well-known/agent-skills/index.json with 9 skill(s)",
   "a2a-agent-card": "No A2A agent card found at /.well-known/agent-card.json",
   "mcp-well-known-discovery": "MCP server at https://mcp.vercel.com - list its server card, hosted on your own domain, in /.well-known/ai-catalog.json so MCP clients can discover it",
   "robots-agent-user-policy": "No applicable crawl or usage restriction found for 3 user-triggered agents (chatgpt-user, claude-user, perplexity-user) on 1 public page: https://vercel.com/.",
   "llms-txt-exists": "Found the llms.txt at https://vercel.com/llms.txt.",
   "llms-txt-formatting": "The llms.txt is well-formatted: 48 lines with markdown links, 5,397 characters in total.",
   "json-ld": "Rich JSON-LD identity: Organization with name, description, url, and sameAs/logo/address (3 block(s))",
   "public-api-docs": "Documentation site found at https://vercel.com",
   "metadata-completeness": "All metadata signals present: canonical URL, lang=\"en\", og:image, og:type",
   "page-token-budget": "All 7 measured pages fit an agent context budget (largest ~4K tokens)",
   "docs-auth-gate": "All 5 sampled pages are publicly readable (5 with substantive content)",
   "openapi-spec": "OpenAPI spec found at https://vercel.com/openapi.json (version: 3.0.3)",
   "developer-portal": "Developer portal found at /docs",
   "markdown-negotiation": "Path-suffix markdown docs served with text/markdown content-type: /agents.md",
   "agent-ua-markdown": "No probed bot User-Agent (ChatGPT-User, Claude-User, Perplexity-User) receives markdown when requesting HTML.",
   "agent-crawler-reachability": "Reachable to every agent we tested - ChatGPT-User: reachable, OAI-SearchBot: reachable, Claude-User: reachable, PerplexityBot: reachable",
   "public-api": "REST API documentation found at https://vercel.com/docs/getting-started-with-vercel.md?from=llms-txt. Best-of-protocols score: 7/7.",
   "oauth-support": "OAuth authorization server metadata at https://vercel.com",
   "mcp-server": "MCP server detected at https://mcp.vercel.com; it requires authentication. Presence is verified (5/6),",
   "webmcp": "No WebMCP support detected - no document.modelContext / navigator.modelContext usage found (scanned 43 of 43 same-origin script bundle(s) for modelContext.",
   "cli-tool": "CLI package found on npm: vercel",
   "rest-sdk-packages": "SDK found in npm, additional SDKs mentioned at https://vercel.com",
   "nlweb-ask": "No NLWeb-conformant /ask endpoint found via GET or POST",
   "mpp-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "x402-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "ucp-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "acp-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "ap2-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites"
  }
 },
 {
  "slug": "webflow",
  "name": "Webflow",
  "domain": "webflow.com",
  "read": "2026-11-09",
  "score": 78,
  "grade": "B",
  "category": "Commerce Tools",
  "summary": "Webflow offers a published SDK and MCP registry presence, but lacks a published OpenAPI specification and declared scoped permissions for agents.",
  "layers": [
   "Discovery 15/18",
   "Access 53/61",
   "Usability 56/81",
   "Payments 0/0"
  ],
  "top": [
   "openapi-spec (fail, 0/7, +3.8): No OpenAPI/Swagger specification found",
   "scoped-permissions (fail, 0/5, +2.7): No declared OAuth scopes, security schemes, or scoped-permission documentation found",
   "brand-search-accuracy (warning, 1/3, +2.5): webflow.com ranks #7 for \"Webflow\" (searched your brand name alone: no main product term from your homepage qualified)",
   "api-error-model (fail, 0/3, +1.6): No typed error model found",
   "api-versioning-policy (fail, 0/3, +1.6): No API versioning strategy found - add URL path versioning (/v1/, /v2/) or a versioned header parameter in your OpenAPI spec",
   "idempotency-key-support (fail, 0/3, +1.6): No REST Idempotency-Key support detected"
  ],
  "seen": {
   "brand-search-accuracy": "webflow.com ranks #7 for \"Webflow\" (searched your brand name alone: no main product term from your homepage qualified)",
   "wikipedia-presence": "Wikipedia \"Webflow\" and Wikidata Q20160951 both verified - domain confirmed on both sources",
   "robots-ai-policy-quality": "AI search crawlers: allowed in 18 of 18 checks (3 crawlers on 6 pages). AI training crawlers: allowed in 12 of 12 checks (2 crawlers on 6 pages), not scored.",
   "noindex-directives": "No noindex on the homepage: no robots, googlebot or bingbot meta tag and no X-Robots-Tag header hides it from search.",
   "sitemap": "Valid sitemap found at https://webflow.com/sitemap.xml with multiple sitemaps entries",
   "content-no-js": "Homepage: 15370 chars, semantic headings (2 H1 + 38 H2s + 4 H3s), 7.8% content ratio. 5 of 5 sampled inner pages have text without JavaScript.",
   "bot-detection": "Site accessible to 4 agent user-agents (ChatGPT-User, OAI-SearchBot, Claude-User, PerplexityBot).",
   "agent-discovery-file": "Agent Skills index (agentskills.io) found at /.well-known/agent-skills/index.json with 24 skill(s)",
   "a2a-agent-card": "No A2A agent card found at /.well-known/agent-card.json",
   "mcp-well-known-discovery": "MCP server discoverable via server-card.json at /.well-known/mcp/",
   "robots-agent-user-policy": "No applicable crawl or usage restriction found for 3 user-triggered agents (chatgpt-user, claude-user, perplexity-user) on 1 public page: https://webflow.com/.",
   "llms-txt-exists": "Found the llms.txt at https://webflow.com/llms.txt.",
   "llms-txt-formatting": "The llms.txt is well-formatted: 111 lines with markdown links, 13,258 characters in total.",
   "json-ld": "Rich JSON-LD identity: Organization with name, description, url, and sameAs/logo/address (1 block(s))",
   "public-api-docs": "Documentation site found at https://developers.webflow.com",
   "metadata-completeness": "All metadata signals present: canonical URL, lang=\"en\", og:image, og:type",
   "page-token-budget": "All 6 measured pages fit an agent context budget (largest ~4K tokens)",
   "docs-auth-gate": "All 5 sampled pages are publicly readable (5 with substantive content)",
   "openapi-spec": "No OpenAPI/Swagger specification found",
   "developer-portal": "Developer portal found at https://developers.webflow.com",
   "markdown-negotiation": "Returns markdown when requested via Accept header",
   "agent-ua-markdown": "No probed bot User-Agent (ChatGPT-User, Claude-User, Perplexity-User) receives markdown when requesting HTML.",
   "agent-crawler-reachability": "Reachable to every agent we tested - ChatGPT-User: reachable, OAI-SearchBot: reachable, Claude-User: reachable, PerplexityBot: reachable",
   "public-api": "REST API documentation found at https://developers.webflow.com. Best-of-protocols score: 7/7.",
   "oauth-support": "OAuth authorization server metadata at https://mcp.webflow.com",
   "mcp-server": "MCP server detected at https://mcp.webflow.com/mcp; it requires authentication. Presence is verified (5/6),",
   "webmcp": "Could not fully read this page (only 0 of 2 same-origin script bundles could be read). Nothing that was read uses WebMCP, but the unread part could,",
   "cli-tool": "CLI package found on npm: @webflow/webflow-cli",
   "rest-sdk-packages": "SDK packages found in npm, pypi",
   "nlweb-ask": "No NLWeb-conformant /ask endpoint found via GET or POST",
   "mpp-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "x402-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "ucp-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "acp-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "ap2-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites"
  }
 },
 {
  "slug": "wix",
  "name": "Wix",
  "domain": "wix.com",
  "read": "2026-11-09",
  "score": 65,
  "grade": "C",
  "category": "Commerce Tools",
  "summary": "Wix offers strong discoverability and a published SDK and registry presence, but lacks a public OpenAPI spec and a reachable public API surface for agents.",
  "layers": [
   "Discovery 17/18",
   "Access 38/60",
   "Usability 30/58",
   "Payments 0/0"
  ],
  "top": [
   "public-api (fail, 0/7, +5.4): No publicly reachable API surface detected (REST and GraphQL both absent or auth-gated)",
   "openapi-spec (fail, 0/7, +3.9): No OpenAPI/Swagger specification found",
   "scoped-permissions (fail, 0/5, +3.8): No declared OAuth scopes, security schemes, or scoped-permission documentation found",
   "webmcp (fail, 0/5, +3.8): No WebMCP support detected - no document.modelContext / navigator.modelContext usage found",
   "json-error-responses (fail, 0/4, +3.1): API does not return JSON error responses (or no API detected)",
   "agent-instruction (fail, 0/3, +1.7): No agent instruction file with when-to-use guidance found"
  ],
  "seen": {
   "brand-search-accuracy": "wix.com ranks #4 for \"wix.com\" (searched your brand name alone: no main product term from your homepage qualified)",
   "wikipedia-presence": "Wikipedia \"Wix.com\" and Wikidata Q420506 both verified - domain confirmed on both sources",
   "robots-ai-policy-quality": "AI search crawlers: allowed in 3 of 3 checks (3 crawlers on 1 page). AI training crawlers: allowed in 2 of 2 checks (2 crawlers on 1 page), not scored.",
   "noindex-directives": "No noindex on the homepage: no robots, googlebot or bingbot meta tag and no X-Robots-Tag header hides it from search.",
   "sitemap": "Valid sitemap found at https://www.wix.com/sitemap.xml with 10828 entries",
   "content-no-js": "Homepage: The homepage has little text without JavaScript (56 chars), though nothing in it shows it needs JavaScript to render.",
   "bot-detection": "Site accessible to 4 agent user-agents (ChatGPT-User, OAI-SearchBot, Claude-User, PerplexityBot).",
   "agent-discovery-file": "No agent discovery file found",
   "a2a-agent-card": "No A2A agent card found at /.well-known/agent-card.json",
   "mcp-well-known-discovery": "MCP server at https://mcp.wix.com/mcp - list its server card, hosted on your own domain, in /.well-known/ai-catalog.json so MCP clients can discover it",
   "robots-agent-user-policy": "No applicable crawl or usage restriction found for 3 user-triggered agents (chatgpt-user, claude-user, perplexity-user) on 1 public page: https://wix.com/.",
   "llms-txt-exists": "Found the llms.txt at https://wix.com/llms.txt.",
   "llms-txt-formatting": "The llms.txt at https://wix.com/llms.txt is well-formatted with markdown links, but at 37,905 characters it exceeds the 30,000-character recommendation for a.",
   "json-ld": "JSON-LD Organization found - missing description on this entity",
   "public-api-docs": "No public API or documentation page linked from homepage",
   "metadata-completeness": "All metadata signals present: canonical URL, lang=\"en\", og:image, og:type",
   "page-token-budget": "All 6 measured pages fit an agent context budget (largest ~4K tokens)",
   "docs-auth-gate": "All 5 sampled pages are publicly readable (5 with substantive content)",
   "openapi-spec": "No OpenAPI/Swagger specification found",
   "developer-portal": "Developer portal found at /dashboard",
   "markdown-negotiation": "Missing markdown content negotiation. Homepage returned text/html when probed with Accept: text/markdown (expected text/markdown),",
   "agent-ua-markdown": "No probed bot User-Agent (ChatGPT-User, Claude-User, Perplexity-User) receives markdown when requesting HTML.",
   "agent-crawler-reachability": "Reachable to every agent we tested - ChatGPT-User: reachable, OAI-SearchBot: reachable, Claude-User: reachable, PerplexityBot: reachable",
   "public-api": "No publicly reachable API surface detected (REST and GraphQL both absent or auth-gated)",
   "oauth-support": "OAuth authorization server metadata at https://mcp.wix.com",
   "mcp-server": "MCP server detected at https://mcp.wix.com/mcp; it requires authentication. Presence is verified (5/6),",
   "webmcp": "No WebMCP support detected - no document.modelContext / navigator.modelContext usage found",
   "cli-tool": "CLI package found on npm: @wix/cli",
   "rest-sdk-packages": "SDK packages found in npm, rubygems",
   "nlweb-ask": "No NLWeb-conformant /ask endpoint found via GET or POST",
   "mpp-support": "No MPP (Machine Payments Protocol) support detected",
   "x402-support": "No x402 payment protocol support detected",
   "ucp-support": "no UCP (Universal Commerce Protocol) signals detected",
   "acp-support": "no ACP (Agentic Commerce Protocol) signals detected",
   "ap2-support": "No AP2 (Agent Payments Protocol) signals detected"
  }
 },
 {
  "slug": "zapier",
  "name": "Zapier",
  "domain": "zapier.com",
  "read": "2026-11-09",
  "score": 84,
  "grade": "B",
  "category": "Productivity",
  "summary": "Zapier offers broad discovery and a published OpenAPI spec, but lacks WebMCP support and machine-readable scope declarations.",
  "layers": [
   "Discovery 19/19",
   "Access 58/64",
   "Usability 88.5/123",
   "Payments 0/0"
  ],
  "top": [
   "webmcp (warning, 0/5, +1.8): No WebMCP support detected on the homepage. WebMCP is mentioned in the documentation at /developers, but a mention is not an implementation, so it earns no points.",
   "api-error-model (fail, 0/3, +1.1): No typed error model found",
   "api-versioning-policy (fail, 0/3, +1.1): No API versioning strategy found - add URL path versioning (/v1/, /v2/) or a versioned header parameter in your OpenAPI spec",
   "graphql-error-type-definition (fail, 0/3, +1.1): GraphQL introspection auth-gated and no typed graphql error model documentation found on GraphQL-tagged pages",
   "idempotency-key-support (fail, 0/3, +1.1): No REST Idempotency-Key support detected (GraphQL signal: fail 0).",
   "scoped-permissions (warning, 2/5, +1.1): Scoped permissions described at https://docs.zapier.com, but no machine-readable scope declaration found (OpenAPI oauth2 scopes or RFC 9728 scopes_supported)"
  ],
  "seen": {
   "brand-search-accuracy": "zapier.com ranks #4 for \"Zapier\" (searched your brand name alone: no main product term from your homepage qualified)",
   "wikipedia-presence": "Wikipedia \"Zapier\" and Wikidata Q27150165 both verified - domain confirmed on both sources",
   "robots-ai-policy-quality": "AI search crawlers: allowed in 18 of 18 checks (3 crawlers on 6 pages). AI training crawlers: allowed in 12 of 12 checks (2 crawlers on 6 pages), not scored.",
   "noindex-directives": "No noindex on the homepage: no robots, googlebot or bingbot meta tag and no X-Robots-Tag header hides it from search.",
   "sitemap": "Valid sitemap found at https://zapier.com/uag6x9zaeydnbfy75xsggcsb37h8cgzf-two-service-sitemap.xml with multiple sitemaps entries",
   "content-no-js": "Homepage: 4794 chars, semantic headings (1 H1 + 9 H2s + 11 H3s), 6.4% content ratio. 4 of 4 sampled inner pages have text without JavaScript (1 skipped).",
   "bot-detection": "Site accessible to 4 agent user-agents (ChatGPT-User, OAI-SearchBot, Claude-User, PerplexityBot).",
   "agent-discovery-file": "Agent Skills index (agentskills.io) found at /.well-known/agent-skills/index.json with 4 skill(s)",
   "a2a-agent-card": "No A2A agent card found at /.well-known/agent-card.json",
   "mcp-well-known-discovery": "MCP server discoverable via server-card.json at /.well-known/mcp/",
   "robots-agent-user-policy": "No applicable crawl or usage restriction found for 3 user-triggered agents (chatgpt-user, claude-user, perplexity-user) on 1 public page: https://zapier.com/.",
   "llms-txt-exists": "Found the llms.txt at https://zapier.com/llms.txt.",
   "llms-txt-formatting": "The llms.txt is well-formatted: 137 lines with markdown links, 13,876 characters in total.",
   "json-ld": "Rich JSON-LD identity: Organization with name, description, url, and sameAs/logo/address (2 block(s))",
   "public-api-docs": "Documentation site found at https://docs.zapier.com",
   "metadata-completeness": "3/4 metadata signals present - missing: og:type",
   "page-token-budget": "All 8 measured pages fit an agent context budget (largest ~5K tokens)",
   "docs-auth-gate": "All 5 sampled pages are publicly readable (5 with substantive content)",
   "openapi-spec": "OpenAPI spec (YAML) found at https://docs.zapier.com/api-reference/specs/actions.yaml",
   "developer-portal": "Developer portal found at https://docs.zapier.com",
   "markdown-negotiation": "Path-suffix markdown docs served with text/markdown content-type: /mcp.md, /auth.md",
   "agent-ua-markdown": "No probed bot User-Agent (ChatGPT-User, Claude-User, Perplexity-User) receives markdown when requesting HTML.",
   "agent-crawler-reachability": "Reachable to every agent we tested - ChatGPT-User: reachable, OAI-SearchBot: reachable, Claude-User: reachable, PerplexityBot: reachable",
   "public-api": "REST API documentation found at https://docs.zapier.com/llms-full.txt. GraphQL endpoint at https://api.zapier.com/graphql is reachable;",
   "oauth-support": "OAuth authorization server metadata at https://mcp.zapier.com",
   "mcp-server": "MCP server detected at https://mcp.zapier.com/api/v1/connect; it requires authentication. Presence is verified (5/6),",
   "webmcp": "No WebMCP support detected on the homepage. WebMCP is mentioned in the documentation at /developers, but a mention is not an implementation,",
   "cli-tool": "CLI package found on npm: @zapier/install-zapier",
   "rest-sdk-packages": "SDK package found only in npm",
   "nlweb-ask": "No NLWeb-conformant /ask endpoint found via GET or POST",
   "mpp-support": "No MPP (Machine Payments Protocol) support detected",
   "x402-support": "No x402 payment protocol support detected",
   "ucp-support": "no UCP (Universal Commerce Protocol) signals detected",
   "acp-support": "no ACP (Agentic Commerce Protocol) signals detected",
   "ap2-support": "No AP2 (Agent Payments Protocol) signals detected"
  }
 },
 {
  "slug": "zoom",
  "name": "Zoom",
  "domain": "zoom.us",
  "read": "2026-11-09",
  "score": 66,
  "grade": "C",
  "category": "Communication & Support",
  "summary": "Zoom offers solid discoverability and SDK packages, but lacks a published OpenAPI specification for agents to call its API.",
  "layers": [
   "Discovery 14/15",
   "Access 43/56",
   "Usability 34/76",
   "Payments 0/0"
  ],
  "top": [
   "openapi-spec (fail, 0/7, +4.2): No OpenAPI/Swagger specification found",
   "mcp-server (fail, 0/6, +3.5): No MCP server or manifest found",
   "scoped-permissions (fail, 0/5, +2.9): No declared OAuth scopes, security schemes, or scoped-permission documentation found",
   "webmcp (fail, 0/5, +2.9): No WebMCP support detected - no document.modelContext / navigator.modelContext usage found",
   "mcp-app-registry (fail, 0/4, +2.3): No MCP Apps support detected - this product has an in-agent UI surface but exposes no ui:// resources or tool UI metadata for agents to render.",
   "cli-tool (fail, 0/3, +1.8): No CLI tool found"
  ],
  "seen": {
   "brand-search-accuracy": "zoom.us ranks #5 for \"Zoom UCaaS\" but is not in the top 10 for \"Zoom Unified Communications\"",
   "wikipedia-presence": "Wikipedia \"Zoom (software)\" verified - create a Wikidata item with P856 (official website) = zoom.us to complete knowledge graph coverage",
   "robots-ai-policy-quality": "AI search crawlers: allowed in 12 of 12 checks (3 crawlers on 4 pages). AI training crawlers: allowed in 8 of 8 checks (2 crawlers on 4 pages), not scored.",
   "noindex-directives": "No noindex on the homepage: no robots, googlebot or bingbot meta tag and no X-Robots-Tag header hides it from search.",
   "sitemap": "Valid sitemap found at https://zoom.us/sitemap.xml with 5454 entries",
   "content-no-js": "Homepage: 8293 chars, semantic headings (1 H1 + 6 H2s + 13 H3s), 6.7% content ratio. 5 of 5 sampled inner pages have text without JavaScript.",
   "bot-detection": "Site accessible to 4 agent user-agents (ChatGPT-User, OAI-SearchBot, Claude-User, PerplexityBot).",
   "agent-discovery-file": "Agent Skills index (agentskills.io) found at /.well-known/agent-skills/index.json with 64 skill(s)",
   "a2a-agent-card": "No A2A agent card found at /.well-known/agent-card.json",
   "mcp-well-known-discovery": "No MCP server URL discovered",
   "robots-agent-user-policy": "No applicable crawl or usage restriction found for 3 user-triggered agents (chatgpt-user, claude-user, perplexity-user) on 1 public page: https://zoom.us/.",
   "llms-txt-exists": "A file is present at https://docs.zoom.us/.well-known/llms.txt, but it returns an HTML page rather than a plain-text llms.txt.",
   "llms-txt-formatting": "No llms.txt found to evaluate quality",
   "json-ld": "JSON-LD Person found - missing description, url, and one of sameAs / jobTitle / worksFor on this entity",
   "public-api-docs": "Documentation site found at https://docs.zoom.us",
   "metadata-completeness": "All metadata signals present: canonical URL, lang=\"en\", og:image, og:type",
   "page-token-budget": "All 6 measured pages fit an agent context budget (largest ~6K tokens)",
   "docs-auth-gate": "All 5 sampled pages are publicly readable (5 with substantive content)",
   "openapi-spec": "No OpenAPI/Swagger specification found",
   "developer-portal": "Developer portal found at /developer",
   "markdown-negotiation": "Missing markdown content negotiation. Homepage returned text/html when probed with Accept: text/markdown (expected text/markdown),",
   "agent-ua-markdown": "No probed bot User-Agent (ChatGPT-User, Claude-User, Perplexity-User) receives markdown when requesting HTML.",
   "agent-crawler-reachability": "Reachable to every agent we tested - ChatGPT-User: reachable, OAI-SearchBot: reachable, Claude-User: reachable, PerplexityBot: reachable",
   "public-api": "API described in documentation at https://docs.zoom.us but no machine-verifiable API surface confirmed.",
   "oauth-support": "OpenID Connect discovery endpoint found at https://zoom.us",
   "mcp-server": "No MCP server or manifest found",
   "webmcp": "No WebMCP support detected - no document.modelContext / navigator.modelContext usage found",
   "cli-tool": "No CLI tool found",
   "rest-sdk-packages": "SDK package found only in npm",
   "nlweb-ask": "No NLWeb-conformant /ask endpoint found via GET or POST",
   "mpp-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "x402-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "ucp-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "acp-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites",
   "ap2-support": "No commerce signals detected - agent-payment protocols are optional for non-commerce sites"
  }
 }
]
