01 Readability
Can agents read you?
llms.txt and its size budget, Markdown negotiation, Markdown for real pages rather than a false 404, and content that loads without JavaScript.
///// Checks
Every check Backwatch can run against your site and MCP server. 64 run in the free CLI today; the rest need a deep scan with an MCP session, a browser or search.
Free CLI 64 Deep scan 6812 core, always counted
///// Why these checks
The CLI and the checks it runs are MIT licensed. Read how a verdict is reached, or run it yourself.
Each result shows what was requested and what came back, so a failure is something you can reproduce.
A check that couldn't be resolved is shown as unresolved and left out of the score.
Scoring is deterministic. AI may help explain a finding; it never sets a verdict.
The chain every host follows, from the side your users are on. With --register, on your own server, each host's real callback.
The sign-in checks were run across a random 1,000 servers from the official MCP Registry.
///// Four pillars
01 Readability
llms.txt and its size budget, Markdown negotiation, Markdown for real pages rather than a false 404, and content that loads without JavaScript.
02 Discoverability
/.well-known MCP discovery and server cards, API catalogues, and whether your proxy blocks dot-paths.
03 Connectability
The MCP sign-in chain every host follows: the 401 challenge, protected-resource and authorization-server metadata, PKCE and client registration. With --register, on your own server, it proves each host's callback can register.
04 Presence
Whether your MCP server is listed in the official MCP Registry, where hosts and directories look for it.
WWW-Authenticate: resource_metadata/.well-known/oauth-protected-resource/.well-known/oauth-authorization-servercode_challenge_methods_supported: S256registration_endpointThe host stops here, and nothing looks wrong on your side.
///// All checks
Pre-release: every check is still being calibrated against fixtures and real sites. Checks marked always counted score even where they would otherwise be a bonus, because when they break, agents fail.
132 of 132 checks
ard-catalogARD discoveryai-catalog-publishedAI Catalog discoveryard-entries-validARD entry validityard-trust-manifestARD trust manifestagentic-search-usecaseCategory share of voiceagentic-search-specificDeveloper resource discoverabilitybrand-search-accuracyBrand name discoverabilitywikipedia-presenceWikipedia / Wikidata entity presencesitemapSitemap existscontent-no-jsContent without JavaScriptbot-detectionNot blocked by bot detectionrobots-ai-policy-qualityrobots.txt AI crawler policyagent-discovery-fileAgent discovery fileagent-skills-index-v2Agent Skills index conformance (v0.2.0)a2a-agent-cardA2A / agent-cardmcp-registry-listedListed in MCP registriesnpm-sdk-packageNPM/PyPI SDK packageagent-rules-repoAgent platform configsagent-plugins-repoAgent Plugins manifestskills-sh-listedListed on skills.shpricing-mdpricing.md existsnlweb-schema-feedsNLWeb Schema Feedsmcp-well-known-discoveryMCP well-known discoveryagent-mode-viewAgent mode viewlink-headers-discoveryHTTP Link headers (RFC 8288)markdown-url-fallbackMarkdown URL fallbackmodular-llms-txtModular llms.txt per product arearegistry-brandingRegistry brandingchatgpt-app-listedChatGPT app listedsitemap-lastmodSitemap freshness (lastmod)noindex-directivesHomepage not hidden from searchrobots-agent-user-policyrobots.txt agent-user policyllms-txt-existsllms.txt existsllms-txt-formattingllms.txt formattingjson-ldJSON-LD structured datapricing-infoPricing info accessiblepublic-api-docsPublic API/docs linked from homepageagent-instructionAgent instruction / when-to-useskills-sh-qualitySkills.sh skill qualityjson-ld-entity-linkingJSON-LD entity linking (sameAs)mcp-tool-descriptionsMCP tool descriptionsmcp-param-schemasMCP parameter schemasmcp-server-identityMCP server identitymetadata-completenessMetadata completenessorg-schema-completenessOrganization schema completenessschema-type-breadthSchema type breadthtrust-anchorsTrust anchor pagesmcp-tool-listingMCP tool listingmcp-tool-namingMCP tool namingllms-txt-links-resolvellms.txt links resolvemarkdown-link-alternateMarkdown alternate linkmarkdown-frontmatterMarkdown frontmatter metadataredirect-hygieneRedirect hygienepage-token-budgetPage token budgetcode-fence-validityCode fence validitydocs-auth-gateContent behind authpublic-apiPublic API with reachable endpointsopenapi-specOpenAPI spec publishedoauth-supportOAuth 2.0 supportscoped-permissionsScoped permissionsdeveloper-portalDeveloper portalmcp-auth-mechanismMCP auth mechanismmcp-oauth-metadataMCP OAuth metadatamcp-pkce-s256MCP PKCE S256 supportmpp-supportMPP payment protocolx402-supportx402 payment protocolonboarding-frictionAgent onboarding frictionweb-bot-auth-directoryWeb Bot Auth directoryapi-catalog-rfc9727API catalog (RFC 9727)oauth-protected-resourceOAuth Protected Resource metadata (RFC 9728)ucp-supportUCP - Universal Commerce Protocolacp-supportACP - Agentic Commerce Protocolacp-delegate-paymentACP delegate paymentap2-supportAP2 - Agent Payments Protocolauth-md-existsauth.md existsauth-md-structureauth.md structureauth-md-walkthrough-simulationauth.md walkthrough simulationagent-auth-discovery-metadataAgent auth discovery metadataagent-auth-www-authenticateAgent auth WWW-Authenticate hintagent-auth-endpoints-reachableagent_auth endpoints reachablepap-discoveryPersonal Agent Protocol discovery filepap-issuer-bindingPAP issuer bindingpap-auth-configPAP sign-in and extension configpap-interfacesPAP API and agent entriespap-endpoint-enforcementPAP endpoints reject unauthenticated agentspap-cross-protocolPAP agrees with ARD and auth.mdmcp-serverMCP server / manifestmcp-error-handlingMCP error handlingmcp-transport-modernMCP modern transportwebmcpWebMCP supportmarkdown-negotiationMarkdown agent docsmarkdown-negotiation-varyMarkdown content negotiation (acceptmarkdown.com)rate-limit-headersRate limit response headersidempotency-key-supportIdempotency-Key supportjson-error-responsesJSON error responsesapi-error-modelREST typed error modelapi-versioning-policyREST versioning / deprecation policypagination-shapeREST pagination patternasync-job-patternREST async-job patterncli-toolCLI tool availablerest-sdk-packagesMulti-language SDK packagesnlweb-askNLWeb /ask endpointnlweb-streamingNLWeb streaming supportresponse-schema-coverageREST response schema coveragemcp-tool-annotationsMCP tool annotationsmcp-server-cardMCP server-card.jsonmcp-multi-surface-coverageProduct + docs MCP coveragesandbox-environmentSandbox / test environmentbatch-endpointsREST batch / bulk endpointmcp-resource-listingMCP resources exposedgraphql-error-type-definitionGraphQL typed error modelgraphql-versioning-policyGraphQL versioning / deprecation policygraphql-pagination-patternGraphQL pagination patterngraphql-async-job-patternGraphQL async-job patterngraphql-schema-completenessGraphQL schema description coveragegraphql-batch-mutationsGraphQL batch mutationsagent-ua-markdownBot-UA markdown servingagent-friendly-404Agent-friendly 404sax-document-structureAccessible document structureax-native-controlsNative interactive controlsax-accessible-namesAccessible names on controlsax-form-labelingForm control labelingax-tree-injection-safeAccessibility-tree injection safety (bonus)mcp-app-registryMCP Apps supporta2ui-supportA2UI / generative UI supportmcp-apps-ui-qualityMCP Apps UI qualitymcp-view-domainMCP App view reachablemcp-view-cspMCP App view CSPapi-schema-analysisAPI schema complexity analysisagent-crawler-reachabilityAgent crawler reachabilityfunction-calling-compatFunction calling compatibilitymcp-resource-qualityMCP resource qualityCatalogue 1.38.0
///// Scoring
The overall score uses only pillars with a verdict. A check that doesn't apply to your site is left out, not failed.
| PASS | 90 or more |
|---|---|
| WARN | 60 to 89 |
| FAIL | Below 60 |
| UNKNOWN | Fewer than half the checks that apply could be resolved; no score is shown |