# Agent-readiness scanner

> Five checks per domain — llms.txt (llmstxt.org v2), /.well-known/mcp.json, a reachable MCP HTTP endpoint, docs .md mirrors, npm keyword hygiene — rendered as public report cards. Agents can't evaluate what they can't read, and unlisted is nonexistent.

## Report cards

- [forency.io](/scanner/forency.io): 0/5 checks pass, llms.txt missing
- [openlore.sh](/scanner/openlore.sh): 0/5 checks pass, llms.txt missing
- [crawlforge.dev](/scanner/crawlforge.dev): 1/5 checks pass, llms.txt present
- [kinlab.ai](/scanner/kinlab.ai): 1/5 checks pass, llms.txt present
- [localcan.com](/scanner/localcan.com): 1/5 checks pass, llms.txt present
- [medplum.com](/scanner/medplum.com): 1/5 checks pass, llms.txt missing
- [snipara.com](/scanner/snipara.com): 1/5 checks pass, llms.txt present
- [termany.sh](/scanner/termany.sh): 1/5 checks pass, llms.txt present
- [www.xcodebuildmcp.com](/scanner/www.xcodebuildmcp.com): 1/5 checks pass, llms.txt missing
- [agent-device.dev](/scanner/agent-device.dev): 4/5 checks pass, llms.txt present

## Commerce readiness (stores)

- [mancrates.com](/scanner/commerce/mancrates.com): 1/3 commerce checks pass · Shopify (own domain)
- [grillgrate.com](/scanner/commerce/grillgrate.com): 2/3 commerce checks pass · WooCommerce
- [www.gymshark.com](/scanner/commerce/www.gymshark.com): 2/3 commerce checks pass · Shopify Plus (headless Next.js storefront)
- [blenderseyewear.com](/scanner/commerce/blenderseyewear.com): 3/3 commerce checks pass · unknown (homepage bot-walled)
- [deathwishcoffee.com](/scanner/commerce/deathwishcoffee.com): 3/3 commerce checks pass · Shopify (own domain)
- [fairyseason.com](/scanner/commerce/fairyseason.com): 3/3 commerce checks pass · Shopify (own domain)
- [www.allbirds.com](/scanner/commerce/www.allbirds.com): 3/3 commerce checks pass · Shopify (own domain)
- [www.brooklinen.com](/scanner/commerce/www.brooklinen.com): 3/3 commerce checks pass · Shopify (own domain)

- [Commerce index](/scanner/commerce): every store card

## Scan a new domain

- [Scan a domain live](/scanner/scan?domain=example.com): the same five checks, run on request — GET /scanner/scan?domain=<domain>
- [Scan a store live](/scanner/scan-commerce?domain=example.com): the three commerce checks, run on request — GET /scanner/scan-commerce?domain=<domain>
