Is fly.io agent ready?
fly.io is largely agent ready: it scores 70/100 (grade B) on the w2agent rubric. Weakest areas: Agent Auth (43).
Changed since last check
+10 points since the previous check (2026-09-15)
Fixed: No error status codes, MCP endpoint, Developer portal, Token efficiency (HTML-to-text ratio), Markdown alternate links
Regressed: Heading hierarchy, llms.txt links resolve
Changed: Response time (fail → partial), OAuth discovery chain (RFC 9728 → RFC 8414) (fail → partial), Freshness signals (fail → partial)
Category scores
Technical
92
Agent Auth
43
Agent Discovery
63
Agent Protocols
77
Content Quality
67
Structured Data
71
Bot Accessibility
91
Agent protocol panel
- A2A agent cardNot found
- OAuth discoveryPresent
- MCP discoveryPresent
- llms.txt validityPresent
Check results
Bot Accessibility
- ✓No error status codespass
- ~Response timepartial
- ✓XML sitemap existspass
- ✓AI agent accesspass
- ✓Edge treatment of agent user-agentstracked, not scoredpass
- ✓robots.txt existspass
- ✓Content negotiation (Markdown)pass
- ✓Declared AI usage preferencestracked, not scoredpass
Structured Data
- ✓OpenGraph meta tagspass
- ✓Semantic HTML elementspass
- ✓Appropriate Schema.org typepass
- ✓JSON-LD validpass
- ~Heading hierarchypartial
- ~Schema.org JSON-LD presentpartial
- ~Schema.org completenesspartial
Content Quality
- ✓FAQ contentpass
- ✓Answer-first contentpass
- ✓Content lengthpass
- ✓Token efficiency (HTML-to-text ratio)pass
- ~Freshness signalspartial
- ✗Author attributionfail
- ✓Citation readinesspass
- ✓Lists and tables for structured infopass
Agent Discovery
- ✓llms.txt follows specpass
- ✓llms.txt existspass
- ✓MCP server cardtracked, not scoredpass
- ✓Markdown alternate linkspass
- ✗/.well-known/agent-card.jsonfail
- ~llms.txt links resolvepartial
Agent Protocols
- ✓Discoverable API endpointspass
- ✓MCP endpointpass
- ✗Action schemasfail
- —/.well-known/ucpskip
- ✓Structured formspass
- ✓WebMCP imperative APItracked, not scoredpass
- —WebMCP declarative APItracked, not scoredskip
- ✓Reachable as Google-Agentpass
- ✓Reachable as ChatGPT-Userpass
- ✓Reachable as Perplexity-Userpass
Agent Auth
- —MCP authorization (401 challenge → protected resource metadata)skip
- ✗PKCE S256 supportfail
- ✓Public API surfacepass
- —Client ID Metadata Documents (bonus)skip
- ✗OpenAPI specificationfail
- ✗Agent/bot auth documentationfail
- ~OAuth discovery chain (RFC 9728 → RFC 8414)partial
- ✓Developer portalpass
- ✗Scoped API permissionsfail
- ✓API catalog (RFC 9727)pass
- —Agent operator signing directorytracked, not scoredskip
Technical
- ✓HTTPSpass
- ✓UTF-8 charsetpass
- ✓Canonical URLspass
- ✓Mobile viewportpass
- ✓Content accessible without JSpass
- ~Security headerspartial
Score history
- 70/100 · rubric v3.0
- 60/100 · rubric v3.0
- 62/100 · rubric v3.0
- 41/100 · rubric v2.0
- 41/100 · rubric v2.0
- 40/100 · rubric v2.0
- 40/100 · rubric v2.0
- 32/100 · rubric v2.0
- 32/100 · rubric v2.0
- 32/100 · rubric v2.0
- 32/100 · rubric v2.0
- 32/100 · rubric v2.0
- 32/100 · rubric v2.0
- 32/100 · rubric v2.0
- 32/100 · rubric v2.0
- 32/100 · rubric v2.0
- 44/100 · rubric v2.0
- 44/100 · rubric v2.0
- 43/100 · rubric v2.0
- 44/100 · rubric v2.0
- 44/100 · rubric v2.0