{"schemaVersion":"1.0","category":{"id":"databases","label":"Managed databases","jobToBeDone":"get a production database without running one","page":"https://letagentsin.com/c/databases"},"generatedAt":"2026-10-03T03:46:17.479Z","formulaVersion":"9.57","measured":8,"inCategory":8,"interpretation":"This is not a product recommendation. clear means no barrier we test stopped an unattended agent; blocked names where it stopped; unknown was not measurable from our vantage.","providers":{"clear":[{"domain":"planetscale.com","stopsAt":null,"barriers":[],"measuredAt":"2026-08-24","evidence":"https://letagentsin.com/r/planetscale-com-20260824145809-9e2e48a7ee5235cd"}],"blocked":[{"domain":"turso.tech","stopsAt":"the signup form is not in the served HTML","barriers":["the signup form is not in the served HTML"],"measuredAt":"2026-08-24","evidence":"https://letagentsin.com/r/turso-tech-20260824145817-cb0828d929f14107","unknown":true},{"domain":"cockroachlabs.com","stopsAt":"the signup form is not in the served HTML","barriers":["the signup form is not in the served HTML"],"measuredAt":"2026-08-24","evidence":"https://letagentsin.com/r/cockroachlabs-com-20260824145833-e2f2b90afa5a29d5","unknown":true},{"domain":"xata.io","stopsAt":"no door built for a machine","barriers":["no door built for a machine","the signup form is not in the served HTML"],"measuredAt":"2026-08-24","evidence":"https://letagentsin.com/r/xata-io-20260824145841-f9adfb6873853a21","unknown":true},{"domain":"redis.io","stopsAt":"the signup form is not in the served HTML","barriers":["the signup form is not in the served HTML","no documented way to get a credential"],"measuredAt":"2026-08-24","evidence":"https://letagentsin.com/r/redis-io-20260824145900-7feb5b0879968bbd","unknown":true},{"domain":"supabase.com","stopsAt":"no documented way to get a credential","barriers":["no documented way to get a credential"],"measuredAt":"2026-08-24","evidence":"https://letagentsin.com/r/supabase-com-20260824145904-01d9686378763551"}],"unknown":[{"domain":"neon.com","stopsAt":null,"barriers":[],"measuredAt":"2026-08-24","evidence":"https://letagentsin.com/r/neon-com-20260824145758-aa4b87982b5a6deb","unknown":true},{"domain":"mongodb.com","stopsAt":null,"barriers":[],"measuredAt":"2026-08-24","evidence":"https://letagentsin.com/r/mongodb-com-20260824145852-ce69b48f0633c950","unknown":true}]},"checks":[{"id":"answers_plain_request","stage":"discovery","label":"Answers an agent user-agent","max":1,"helpUri":"https://letagentsin.com/methodology#answers_plain_request","tally":{"pass":8,"partial":0,"fail":0,"unmeasured":0,"notApplicable":0,"measured":8}},{"id":"price_in_snippet","stage":"discovery","label":"Price or entry condition in the search snippet","max":1,"helpUri":"https://letagentsin.com/methodology#price_in_snippet","tally":{"pass":2,"partial":0,"fail":6,"unmeasured":0,"notApplicable":0,"measured":8}},{"id":"llms_txt","stage":"discovery","label":"llms.txt published","max":1,"helpUri":"https://letagentsin.com/methodology#llms_txt","tally":{"pass":8,"partial":0,"fail":0,"unmeasured":0,"notApplicable":0,"measured":8}},{"id":"docs_without_js","stage":"discovery","label":"Docs readable without JavaScript","max":1,"helpUri":"https://letagentsin.com/methodology#docs_without_js","tally":{"pass":8,"partial":0,"fail":0,"unmeasured":0,"notApplicable":0,"measured":8}},{"id":"user_agents_allowed","stage":"discovery","label":"On-demand agents not blocked","max":1,"helpUri":"https://letagentsin.com/methodology#user_agents_allowed","tally":{"pass":8,"partial":0,"fail":0,"unmeasured":0,"notApplicable":0,"measured":8}},{"id":"robots_paths_resolve","stage":"discovery","label":"Paths robots.txt points at answer","max":1,"helpUri":"https://letagentsin.com/methodology#robots_paths_resolve","tally":{"pass":0,"partial":0,"fail":0,"unmeasured":0,"notApplicable":8,"measured":0}},{"id":"no_crawl_delay","stage":"discovery","label":"No punishing crawl delay","max":1,"helpUri":"https://letagentsin.com/methodology#no_crawl_delay","tally":{"pass":8,"partial":0,"fail":0,"unmeasured":0,"notApplicable":0,"measured":8}},{"id":"agent_entry_point","stage":"entry","label":"Agent entry point","max":2,"helpUri":"https://letagentsin.com/methodology#agent_entry_point","tally":{"pass":2,"partial":2,"fail":4,"unmeasured":0,"notApplicable":0,"measured":8}},{"id":"oauth_dcr","stage":"entry","label":"OAuth dynamic client registration","max":1,"helpUri":"https://letagentsin.com/methodology#oauth_dcr","tally":{"pass":5,"partial":0,"fail":3,"unmeasured":0,"notApplicable":0,"measured":8}},{"id":"mcp_present","stage":"entry","label":"MCP surface","max":1,"helpUri":"https://letagentsin.com/methodology#mcp_present","tally":{"pass":5,"partial":0,"fail":3,"unmeasured":0,"notApplicable":0,"measured":8}},{"id":"signup_no_captcha","stage":"signup","label":"No CAPTCHA in the signup HTML","max":1,"helpUri":"https://letagentsin.com/methodology#signup_no_captcha","tally":{"pass":3,"partial":0,"fail":0,"unmeasured":5,"notApplicable":0,"measured":3}},{"id":"signup_reachable","stage":"signup","label":"Signup reachable without a browser","max":1,"helpUri":"https://letagentsin.com/methodology#signup_reachable","tally":{"pass":3,"partial":0,"fail":4,"unmeasured":1,"notApplicable":0,"measured":7}},{"id":"programmatic_provisioning","stage":"provisioning","label":"Programmatic key provisioning","max":2,"helpUri":"https://letagentsin.com/methodology#programmatic_provisioning","tally":{"pass":1,"partial":4,"fail":2,"unmeasured":1,"notApplicable":0,"measured":7}},{"id":"self_serve","stage":"provisioning","label":"Free tier or no-card trial stated in text","max":1,"helpUri":"https://letagentsin.com/methodology#self_serve","tally":{"pass":6,"partial":0,"fail":2,"unmeasured":0,"notApplicable":0,"measured":8}},{"id":"typed_package","stage":"integration","label":"Typed SDK on the registry","max":1,"helpUri":"https://letagentsin.com/methodology#typed_package","tally":{"pass":7,"partial":0,"fail":0,"unmeasured":1,"notApplicable":0,"measured":7}},{"id":"machine_readable_api","stage":"integration","label":"Machine-readable API description","max":1,"helpUri":"https://letagentsin.com/methodology#machine_readable_api","tally":{"pass":7,"partial":0,"fail":0,"unmeasured":1,"notApplicable":0,"measured":7}}],"rows":[{"domain":"cockroachlabs.com","category":"Managed databases","total":12,"measurable":16,"max":18,"share":0.75,"scannedAt":"2026-08-24T14:58:33.773Z","rateLimited":false,"refusesAgentsAtSignup":false,"measuredOn":null,"alsoNames":["cockroachlabs.cloud"],"unattendedGrant":null,"npmSource":"registry-search","scorecardUrl":"https://letagentsin.com/r/cockroachlabs-com-20260824145833-e2f2b90afa5a29d5","vendorUrl":"https://letagentsin.com/v/cockroachlabs.com","checks":[{"id":"answers_plain_request","verdict":"pass","points":1,"max":1,"detail":"Answered 200 to LetAgentsIn/1.0 (+https://letagentsin.com/bot)"},{"id":"price_in_snippet","verdict":"fail","points":0,"max":1,"detail":"Your pricing page's description tag names no amount and no entry condition: “How much does CockroachDB cost? Cost varies depending on a few factors including whether you’re using CockroachDB Dedicated (DBaaS) or CockroachDB (self-hosted)...”"},{"id":"llms_txt","verdict":"pass","points":1,"max":1,"detail":"llms.txt and llms-full.txt present at https://docs.cockroachlabs.com/llms.txt and https://docs.cockroachlabs.com/llms-full.txt, and the 12 links we sampled across both files all answer"},{"id":"docs_without_js","verdict":"pass","points":1,"max":1,"detail":"24,253 characters of text without JS, on https://docs.cockroachlabs.com/docs/cockroachcloud/configure-scim-provisioning rather than on https://docs.cockroachlabs.com"},{"id":"user_agents_allowed","verdict":"pass","points":1,"max":1,"detail":"No on-demand agent is blocked"},{"id":"robots_paths_resolve","verdict":"notApplicable","points":0,"max":1,"detail":"robots.txt names no concrete path, only patterns or nothing, so there is no claim to check"},{"id":"no_crawl_delay","verdict":"pass","points":1,"max":1,"detail":"No Crawl-delay applies to the agents we check"},{"id":"agent_entry_point","verdict":"pass","points":2,"max":2,"detail":"Found: https://docs.cockroachlabs.com/skill.md"},{"id":"oauth_dcr","verdict":"fail","points":0,"max":1,"detail":"OAuth metadata published at https://cockroachlabs.cloud/.well-known/openid-configuration, but no registration_endpoint in it"},{"id":"mcp_present","verdict":"fail","points":0,"max":1,"detail":"MCP mentioned 10x in your own files, but nothing spoke MCP at mcp.cockroachlabs.com, mcp.cockroachlabs.com/mcp, mcp.cockroachlabs.com/v1/mcp, api.cockroachlabs.com/mcp, api.cockroachlabs.com/v1/mcp, /mcp or /api/mcp, and any address you publish in the MCP registry, nor at any address in https://docs.cockroachlabs.com/docs/v26.3/cockroachdb-mcp-server.md or https://docs.cockroachlabs.com/docs/v26.3/install-cockroachdb-mcp-server.md"},{"id":"signup_no_captcha","verdict":"unmeasured","points":0,"max":1,"detail":"Unmeasurable: the signup form at https://cockroachlabs.cloud/signup is not in the server HTML, so its gates are not either"},{"id":"signup_reachable","verdict":"fail","points":0,"max":1,"detail":"https://cockroachlabs.cloud/signup is reachable, but its form needs JavaScript"},{"id":"programmatic_provisioning","verdict":"pass","points":2,"max":2,"detail":"3 of 7 provisioning phrases across the 4 documentation pages and 2 machine-readable files we read: \"create an api key (or api token, access token, personal access token, service account, auth token, secret key, access key, service token, signing key, publishable key, client key, licence key, project token), next to something programmatic\", \"service account, in a sentence that creates one by program\", \"a documented path like /v1/api_keys or /v2/access-tokens\", matched in: “POST Create a new API Key Preview” and “POST Create a service account Preview”"},{"id":"self_serve","verdict":"pass","points":1,"max":1,"detail":"Free tier or no-card signals at https://www.cockroachlabs.com/pricing/: \"No credit card\", \"Get started free\", \"$0\""},{"id":"typed_package","verdict":"pass","points":1,"max":1,"detail":"@cockroachlabs/ui-components@1.15.24 ships types, matched from the registry by who publishes it rather than by a link on your site"},{"id":"machine_readable_api","verdict":"pass","points":1,"max":1,"detail":"Docs serve markdown to machines, at https://docs.cockroachlabs.com"}]},{"domain":"mongodb.com","category":"Managed databases","total":11,"measurable":14,"max":18,"share":0.7857,"scannedAt":"2026-08-24T14:58:52.471Z","rateLimited":false,"refusesAgentsAtSignup":false,"measuredOn":null,"alsoNames":[],"unattendedGrant":true,"npmSource":"registry-search","scorecardUrl":"https://letagentsin.com/r/mongodb-com-20260824145852-ce69b48f0633c950","vendorUrl":"https://letagentsin.com/v/mongodb.com","checks":[{"id":"answers_plain_request","verdict":"pass","points":1,"max":1,"detail":"Answered 200 to LetAgentsIn/1.0 (+https://letagentsin.com/bot)"},{"id":"price_in_snippet","verdict":"fail","points":0,"max":1,"detail":"Your pricing page's description tag names no amount and no entry condition: “MongoDB Product Pricing”"},{"id":"llms_txt","verdict":"pass","points":1,"max":1,"detail":"llms.txt present at https://www.mongodb.com/llms.txt and https://docs.mongodb.com/llms.txt, and the 12 links we sampled across both files all answer"},{"id":"docs_without_js","verdict":"pass","points":1,"max":1,"detail":"5,850 characters of text without JS"},{"id":"user_agents_allowed","verdict":"pass","points":1,"max":1,"detail":"No on-demand agent is blocked"},{"id":"robots_paths_resolve","verdict":"notApplicable","points":0,"max":1,"detail":"robots.txt names no concrete path, only patterns or nothing, so there is no claim to check"},{"id":"no_crawl_delay","verdict":"pass","points":1,"max":1,"detail":"No Crawl-delay applies to the agents we check"},{"id":"agent_entry_point","verdict":"fail","points":0,"max":2,"detail":"None of the 13 agent entry paths we asked on your site returns a file rather than your page shell"},{"id":"oauth_dcr","verdict":"pass","points":1,"max":1,"detail":"registration_endpoint published, and client_credentials is among the 11 advertised grants, so an unattended agent has a documented path to a token"},{"id":"mcp_present","verdict":"pass","points":1,"max":1,"detail":"Live MCP endpoint at https://mcp.mongodb.com/mcp, answered 401 with an auth challenge"},{"id":"signup_no_captcha","verdict":"pass","points":1,"max":1,"detail":"No CAPTCHA vendor in the server HTML. A widget mounted later by JavaScript would not show here."},{"id":"signup_reachable","verdict":"pass","points":1,"max":1,"detail":"Form renders in server HTML at https://www.mongodb.com/cloud/atlas/register"},{"id":"programmatic_provisioning","verdict":"unmeasured","points":0,"max":2,"detail":"Unmeasurable: none of the 4 documentation pages we reached is about keys or authentication, so their silence about creating one says nothing"},{"id":"self_serve","verdict":"pass","points":1,"max":1,"detail":"Free tier or no-card signals at https://www.mongodb.com/pricing: \"free tier\", \"Get started for free\", \"started for free\""},{"id":"typed_package","verdict":"pass","points":1,"max":1,"detail":"mongodb@7.5.0 ships types, matched from the registry by who publishes it rather than by a link on your site"},{"id":"machine_readable_api","verdict":"unmeasured","points":0,"max":1,"detail":"Unmeasurable: https://www.mongodb.com/docs/ answered 404 when we asked it for markdown, so what it declares about your API is not something this scan read"}]},{"domain":"neon.com","category":"Managed databases","total":12,"measurable":15,"max":18,"share":0.8,"scannedAt":"2026-08-24T14:57:58.886Z","rateLimited":false,"refusesAgentsAtSignup":false,"measuredOn":null,"alsoNames":["neon.tech"],"unattendedGrant":false,"npmSource":"registry-search","scorecardUrl":"https://letagentsin.com/r/neon-com-20260824145758-aa4b87982b5a6deb","vendorUrl":"https://letagentsin.com/v/neon.com","checks":[{"id":"answers_plain_request","verdict":"pass","points":1,"max":1,"detail":"Answered 200 to LetAgentsIn/1.0 (+https://letagentsin.com/bot)"},{"id":"price_in_snippet","verdict":"fail","points":0,"max":1,"detail":"Your pricing page's description tag names no amount and no entry condition: “Neon brings serverless architecture to Postgres, which allows us to offer you flexible usage and volume-based plans.”"},{"id":"llms_txt","verdict":"pass","points":1,"max":1,"detail":"llms.txt and llms-full.txt present at https://neon.com/llms.txt and https://neon.com/llms-full.txt and https://neon.com/docs/introduction/llms.txt, and the 12 links we sampled across the 3 files all answer"},{"id":"docs_without_js","verdict":"pass","points":1,"max":1,"detail":"23,757 characters of text without JS, on https://neon.com/docs/get-started/full-backend-quickstart rather than on https://neon.com/docs/introduction"},{"id":"user_agents_allowed","verdict":"pass","points":1,"max":1,"detail":"No on-demand agent is blocked"},{"id":"robots_paths_resolve","verdict":"notApplicable","points":0,"max":1,"detail":"robots.txt names no concrete path, only patterns or nothing, so there is no claim to check"},{"id":"no_crawl_delay","verdict":"pass","points":1,"max":1,"detail":"No Crawl-delay applies to the agents we check"},{"id":"agent_entry_point","verdict":"partial","points":1,"max":2,"detail":"Found https://neon.com/skill.md, but it states a policy rather than a procedure: nothing in it names a credential, an endpoint or a way to get an account."},{"id":"oauth_dcr","verdict":"pass","points":1,"max":1,"detail":"registration_endpoint published, but none of the 2 advertised grants (authorization_code, refresh_token) finishes without a person at a browser"},{"id":"mcp_present","verdict":"pass","points":1,"max":1,"detail":"Live MCP endpoint at https://mcp.neon.tech/mcp, answered 401 with an auth challenge"},{"id":"signup_no_captcha","verdict":"unmeasured","points":0,"max":1,"detail":"Unmeasurable: https://console.neon.tech/signup did not serve us the signup page, so its gates are not something we read"},{"id":"signup_reachable","verdict":"unmeasured","points":0,"max":1,"detail":"Unmeasurable: https://console.neon.tech/signup answers 403 to an agent and 403 to a Chrome user-agent, so nothing gets in from here and the difference we test for cannot be seen"},{"id":"programmatic_provisioning","verdict":"partial","points":1,"max":2,"detail":"1 of 7 provisioning phrases across the 4 documentation pages and 3 machine-readable files we read: \"create an api key (or api token, access token, personal access token, service account, auth token, secret key, access key, service token, signing key, publishable key, client key, licence key, project token), next to something programmatic\", matched in: “user management Organizations 19 Manage org members, API keys, VPC endpoints, and spending API Keys 3 Create and revoke API keys Users 4 Current user details and org membership Regions 1 List”"},{"id":"self_serve","verdict":"pass","points":1,"max":1,"detail":"Free tier or no-card signals at https://neon.com/pricing: \"no credit card\", \"Free plan\", \"Get started for free\""},{"id":"typed_package","verdict":"pass","points":1,"max":1,"detail":"@neondatabase/api-client@2.7.3 ships types, matched from the registry by who publishes it rather than by a link on your site"},{"id":"machine_readable_api","verdict":"pass","points":1,"max":1,"detail":"OpenAPI at https://neon.com/openapi.json"}]},{"domain":"planetscale.com","category":"Managed databases","total":13,"measurable":17,"max":18,"share":0.7647,"scannedAt":"2026-08-24T14:58:09.928Z","rateLimited":false,"refusesAgentsAtSignup":false,"measuredOn":null,"alsoNames":[],"unattendedGrant":true,"npmSource":"registry-search","scorecardUrl":"https://letagentsin.com/r/planetscale-com-20260824145809-9e2e48a7ee5235cd","vendorUrl":"https://letagentsin.com/v/planetscale.com","checks":[{"id":"answers_plain_request","verdict":"pass","points":1,"max":1,"detail":"Answered 200 to LetAgentsIn/1.0 (+https://letagentsin.com/bot)"},{"id":"price_in_snippet","verdict":"fail","points":0,"max":1,"detail":"Your pricing page's description tag names no amount and no entry condition: “Discover PlanetScale database platform plans tailored for projects of all sizes.”"},{"id":"llms_txt","verdict":"pass","points":1,"max":1,"detail":"llms.txt present at https://planetscale.com/llms.txt, and the 12 links we sampled across the file all answer"},{"id":"docs_without_js","verdict":"pass","points":1,"max":1,"detail":"12,733 characters of text without JS, on https://planetscale.com/docs/api/reference/get_oauth_token rather than on https://planetscale.com/docs"},{"id":"user_agents_allowed","verdict":"pass","points":1,"max":1,"detail":"No on-demand agent is blocked"},{"id":"robots_paths_resolve","verdict":"notApplicable","points":0,"max":1,"detail":"robots.txt names no concrete path, only patterns or nothing, so there is no claim to check"},{"id":"no_crawl_delay","verdict":"pass","points":1,"max":1,"detail":"No Crawl-delay applies to the agents we check"},{"id":"agent_entry_point","verdict":"pass","points":2,"max":2,"detail":"Found: https://planetscale.com/skill.md"},{"id":"oauth_dcr","verdict":"pass","points":1,"max":1,"detail":"registration_endpoint published, and client_credentials is among the 4 advertised grants, so an unattended agent has a documented path to a token"},{"id":"mcp_present","verdict":"fail","points":0,"max":1,"detail":"MCP mentioned 8x in your own files, but nothing spoke MCP at mcp.planetscale.com, mcp.planetscale.com/mcp, mcp.planetscale.com/v1/mcp, api.planetscale.com/mcp, api.planetscale.com/v1/mcp, /mcp or /api/mcp, and any address you publish in the MCP registry, nor at any address in https://planetscale.com/docs/connect/mcp.md or https://planetscale.com/docs/connect/mcp-service-token.md"},{"id":"signup_no_captcha","verdict":"pass","points":1,"max":1,"detail":"No CAPTCHA vendor in the server HTML. A widget mounted later by JavaScript would not show here."},{"id":"signup_reachable","verdict":"pass","points":1,"max":1,"detail":"Form renders in server HTML at https://auth.planetscale.com/sign-up"},{"id":"programmatic_provisioning","verdict":"partial","points":1,"max":2,"detail":"1 of 7 provisioning phrases across the 4 documentation pages and 1 machine-readable file we read: \"create an api key (or api token, access token, personal access token, service account, auth token, secret key, access key, service token, signing key, publishable key, client key, licence key, project token), next to something programmatic\", matched in: “PlanetScale provides the ability to create service tokens for your PlanetScale organization via the CLI or directly in th… - [OpenAPI Spec]”"},{"id":"self_serve","verdict":"fail","points":0,"max":1,"detail":"No free tier or no-card wording at https://planetscale.com/pricing"},{"id":"typed_package","verdict":"pass","points":1,"max":1,"detail":"@planetscale/database@1.20.1 ships types, matched from the registry by who publishes it rather than by a link on your site"},{"id":"machine_readable_api","verdict":"pass","points":1,"max":1,"detail":"Docs serve markdown to machines, at https://planetscale.com/docs"}]},{"domain":"redis.io","category":"Managed databases","total":9,"measurable":16,"max":18,"share":0.5625,"scannedAt":"2026-08-24T14:59:00.527Z","rateLimited":false,"refusesAgentsAtSignup":false,"measuredOn":null,"alsoNames":[],"unattendedGrant":null,"npmSource":"registry-search","scorecardUrl":"https://letagentsin.com/r/redis-io-20260824145900-7feb5b0879968bbd","vendorUrl":"https://letagentsin.com/v/redis.io","checks":[{"id":"answers_plain_request","verdict":"pass","points":1,"max":1,"detail":"Answered 200 to LetAgentsIn/1.0 (+https://letagentsin.com/bot)"},{"id":"price_in_snippet","verdict":"fail","points":0,"max":1,"detail":"Your pricing page's description tag names no amount and no entry condition: “Developers love Redis. Unlock the full potential of the Redis database with Redis Enterprise and start building blazing fast apps.”"},{"id":"llms_txt","verdict":"pass","points":1,"max":1,"detail":"llms.txt present at https://redis.io/llms.txt, and 11 of the 12 links we sampled across the file answer. One is gone: https://redis.io/docs/latest/develop/interact/programmability/index.html.md"},{"id":"docs_without_js","verdict":"pass","points":1,"max":1,"detail":"8,171 characters of text without JS, on https://redis.io/docs/latest/operate/rs/clusters/configure/license-keys/ rather than on https://redis.io/docs/latest/"},{"id":"user_agents_allowed","verdict":"pass","points":1,"max":1,"detail":"Explicitly allowed: ChatGPT-User"},{"id":"robots_paths_resolve","verdict":"notApplicable","points":0,"max":1,"detail":"robots.txt names no concrete path, only patterns or nothing, so there is no claim to check"},{"id":"no_crawl_delay","verdict":"pass","points":1,"max":1,"detail":"No Crawl-delay applies to the agents we check"},{"id":"agent_entry_point","verdict":"fail","points":0,"max":2,"detail":"None of the 13 agent entry paths we asked on your site returns a file rather than your page shell"},{"id":"oauth_dcr","verdict":"fail","points":0,"max":1,"detail":"No OAuth metadata on any of the 14 hosts probed: https://redis.io, https://cloud.redis.io, https://auth.redis.io, https://login.redis.io, and 10 more"},{"id":"mcp_present","verdict":"pass","points":1,"max":1,"detail":"Live MCP endpoint at https://redis.io/mcp, answers JSON"},{"id":"signup_no_captcha","verdict":"unmeasured","points":0,"max":1,"detail":"Unmeasurable: the signup form at https://cloud.redis.io is not in the server HTML, so its gates are not either"},{"id":"signup_reachable","verdict":"fail","points":0,"max":1,"detail":"https://cloud.redis.io is reachable and carries no signup form of its own: the only way in we can see is an identity provider, which an unattended agent has no way through"},{"id":"programmatic_provisioning","verdict":"fail","points":0,"max":2,"detail":"None of the 7 provisioning phrases appears in the 4 documentation pages and 1 machine-readable file we read, including https://redis.io/docs/latest/operate/rc/api/get-started/manage-api-keys/ and https://redis.io/docs/latest/operate/rs/references/rest-api/objects/bootstrap/credentials/"},{"id":"self_serve","verdict":"pass","points":1,"max":1,"detail":"Free tier or no-card signals at https://redis.io/pricing/: \"$0\""},{"id":"typed_package","verdict":"pass","points":1,"max":1,"detail":"redis@6.2.1 ships types, matched from the registry by who publishes it rather than by a link on your site"},{"id":"machine_readable_api","verdict":"pass","points":1,"max":1,"detail":"Docs serve markdown to machines, at https://redis.io/docs/latest/operate/rc/api/get-started/manage-api-keys/"}]},{"domain":"supabase.com","category":"Managed databases","total":13,"measurable":17,"max":18,"share":0.7647,"scannedAt":"2026-08-24T14:59:04.517Z","rateLimited":false,"refusesAgentsAtSignup":false,"measuredOn":null,"alsoNames":["github.io"],"unattendedGrant":false,"npmSource":"registry-search","scorecardUrl":"https://letagentsin.com/r/supabase-com-20260824145904-01d9686378763551","vendorUrl":"https://letagentsin.com/v/supabase.com","checks":[{"id":"answers_plain_request","verdict":"pass","points":1,"max":1,"detail":"Answered 200 to LetAgentsIn/1.0 (+https://letagentsin.com/bot)"},{"id":"price_in_snippet","verdict":"pass","points":1,"max":1,"detail":"Your description tag carries free entry: “We have a generous Free Plan for those getting started, and Pay As You Go for those scaling u”"},{"id":"llms_txt","verdict":"pass","points":1,"max":1,"detail":"llms.txt and llms-full.txt present at https://supabase.com/llms.txt and https://supabase.com/llms-full.txt, and 11 of the 12 links we sampled across both files answer. One is gone: https://supabase.github.io/vecs/api.md/"},{"id":"docs_without_js","verdict":"pass","points":1,"max":1,"detail":"29,796 characters of text without JS, on https://supabase.com/docs/reference/server/types-credentials rather than on https://supabase.com/docs"},{"id":"user_agents_allowed","verdict":"pass","points":1,"max":1,"detail":"No on-demand agent is blocked"},{"id":"robots_paths_resolve","verdict":"notApplicable","points":0,"max":1,"detail":"robots.txt names no concrete path, only patterns or nothing, so there is no claim to check"},{"id":"no_crawl_delay","verdict":"pass","points":1,"max":1,"detail":"No Crawl-delay applies to the agents we check"},{"id":"agent_entry_point","verdict":"fail","points":0,"max":2,"detail":"None of the 13 agent entry paths we asked on your site returns a file rather than your page shell"},{"id":"oauth_dcr","verdict":"pass","points":1,"max":1,"detail":"registration_endpoint published, but none of the 3 advertised grants (authorization_code, refresh_token, urn:ietf:params:oauth:grant-type:jwt-bearer) finishes without a person at a browser"},{"id":"mcp_present","verdict":"pass","points":1,"max":1,"detail":"Live MCP endpoint at https://mcp.supabase.com/mcp, answered 401 with an auth challenge"},{"id":"signup_no_captcha","verdict":"pass","points":1,"max":1,"detail":"No CAPTCHA vendor in the server HTML. A widget mounted later by JavaScript would not show here."},{"id":"signup_reachable","verdict":"pass","points":1,"max":1,"detail":"Form renders in server HTML at https://supabase.com/dashboard/sign-up"},{"id":"programmatic_provisioning","verdict":"fail","points":0,"max":2,"detail":"None of the 7 provisioning phrases appears in the 4 documentation pages and 2 machine-readable files we read, including https://supabase.com/docs/guides/getting-started/api-keys and https://supabase.com/docs/guides/auth/signing-keys"},{"id":"self_serve","verdict":"pass","points":1,"max":1,"detail":"Free tier or no-card signals at https://supabase.com/pricing: \"Free Plan\", \"Community support Free\", \"free Pricing plan\""},{"id":"typed_package","verdict":"pass","points":1,"max":1,"detail":"@supabase/supabase-js@2.112.3 ships types, matched from the registry by who publishes it rather than by a link on your site"},{"id":"machine_readable_api","verdict":"pass","points":1,"max":1,"detail":"Docs serve markdown to machines, at https://supabase.com/docs/guides/getting-started/api-keys"}]},{"domain":"turso.tech","category":"Managed databases","total":13,"measurable":16,"max":18,"share":0.8125,"scannedAt":"2026-08-24T14:58:17.812Z","rateLimited":false,"refusesAgentsAtSignup":false,"measuredOn":null,"alsoNames":["turso.ai"],"unattendedGrant":false,"npmSource":"llms","scorecardUrl":"https://letagentsin.com/r/turso-tech-20260824145817-cb0828d929f14107","vendorUrl":"https://letagentsin.com/v/turso.tech","checks":[{"id":"answers_plain_request","verdict":"pass","points":1,"max":1,"detail":"Answered 200 to LetAgentsIn/1.0 (+https://letagentsin.com/bot)"},{"id":"price_in_snippet","verdict":"pass","points":1,"max":1,"detail":"Your description tag carries an amount and a rate and free entry: “Turso pricing: free tier with 100 databases and 5GB storage” and “Developer plans from $4.99/mo with unlimited databases”"},{"id":"llms_txt","verdict":"pass","points":1,"max":1,"detail":"llms.txt and llms-full.txt present at https://turso.tech/llms.txt and https://turso.tech/llms-full.txt and https://docs.turso.tech/llms.txt and https://docs.turso.tech/llms-full.txt, and the 12 links we sampled across 2 of the 4 files all answer"},{"id":"docs_without_js","verdict":"pass","points":1,"max":1,"detail":"4,847 characters of text without JS, on https://docs.turso.tech/sdk/c/quickstart rather than on https://docs.turso.tech/introduction"},{"id":"user_agents_allowed","verdict":"pass","points":1,"max":1,"detail":"No on-demand agent is blocked"},{"id":"robots_paths_resolve","verdict":"notApplicable","points":0,"max":1,"detail":"robots.txt names no concrete path, only patterns or nothing, so there is no claim to check"},{"id":"no_crawl_delay","verdict":"pass","points":1,"max":1,"detail":"No Crawl-delay applies to the agents we check"},{"id":"agent_entry_point","verdict":"partial","points":1,"max":2,"detail":"Only service descriptors: https://turso.tech/.well-known/mcp.json. No procedure written for a machine."},{"id":"oauth_dcr","verdict":"pass","points":1,"max":1,"detail":"registration_endpoint published, but none of the 1 advertised grants (authorization_code) finishes without a person at a browser"},{"id":"mcp_present","verdict":"pass","points":1,"max":1,"detail":"Live MCP endpoint at https://mcp.turso.ai/mcp, answered 401 with an auth challenge"},{"id":"signup_no_captcha","verdict":"unmeasured","points":0,"max":1,"detail":"Unmeasurable: the signup form at https://app.turso.tech/signup is not in the server HTML, so its gates are not either"},{"id":"signup_reachable","verdict":"fail","points":0,"max":1,"detail":"https://app.turso.tech/signup is reachable, but its form needs JavaScript"},{"id":"programmatic_provisioning","verdict":"partial","points":1,"max":2,"detail":"1 of 7 provisioning phrases across the 4 documentation pages and 4 machine-readable files we read: \"create an api key (or api token, access token, personal access token, service account, auth token, secret key, access key, service token, signing key, publishable key, client key, licence key, project token), next to something programmatic\", matched in: “You can create and revoke API tokens using the [Turso CLI](/cli) and [Authentication API](/api-reference/tokens/create)”"},{"id":"self_serve","verdict":"pass","points":1,"max":1,"detail":"Free tier or no-card signals at https://turso.tech/pricing: \"no credit card\", \"$0\", \"Developer Scaler Yes Pro Yes SSO Free\""},{"id":"typed_package","verdict":"pass","points":1,"max":1,"detail":"@tursodatabase/database@0.7.2 ships types"},{"id":"machine_readable_api","verdict":"pass","points":1,"max":1,"detail":"OpenAPI at https://turso.tech/openapi.json"}]},{"domain":"xata.io","category":"Managed databases","total":7,"measurable":15,"max":18,"share":0.4667,"scannedAt":"2026-08-24T14:58:41.101Z","rateLimited":false,"refusesAgentsAtSignup":false,"measuredOn":null,"alsoNames":["npmjs.com"],"unattendedGrant":null,"npmSource":"registry-search","scorecardUrl":"https://letagentsin.com/r/xata-io-20260824145841-f9adfb6873853a21","vendorUrl":"https://letagentsin.com/v/xata.io","checks":[{"id":"answers_plain_request","verdict":"pass","points":1,"max":1,"detail":"Answered 200 to LetAgentsIn/1.0 (+https://letagentsin.com/bot)"},{"id":"price_in_snippet","verdict":"fail","points":0,"max":1,"detail":"Your pricing page's description tag names no amount and no entry condition: “Estimate your Postgres costs with Copy-on-Write branching and Scale-to-Zero. Transparent pricing — no per-branch fees.”"},{"id":"llms_txt","verdict":"pass","points":1,"max":1,"detail":"llms.txt and llms-full.txt present at https://xata.io/llms.txt and https://xata.io/llms-full.txt and https://docs.xata.io/llms.txt, and the 12 links we sampled across 2 of the 3 files all answer"},{"id":"docs_without_js","verdict":"pass","points":1,"max":1,"detail":"9,818 characters of text without JS, on https://xata.io/docs/api-reference/branches/rotate-branch-credentials rather than on https://xata.io/docs/overview"},{"id":"user_agents_allowed","verdict":"pass","points":1,"max":1,"detail":"No on-demand agent is blocked"},{"id":"robots_paths_resolve","verdict":"notApplicable","points":0,"max":1,"detail":"robots.txt names no concrete path, only patterns or nothing, so there is no claim to check"},{"id":"no_crawl_delay","verdict":"pass","points":1,"max":1,"detail":"No Crawl-delay applies to the agents we check"},{"id":"agent_entry_point","verdict":"fail","points":0,"max":2,"detail":"None of the 13 agent entry paths we asked on your site returns a file rather than your page shell"},{"id":"oauth_dcr","verdict":"fail","points":0,"max":1,"detail":"No OAuth metadata on any of the 14 hosts probed: https://xata.io, https://console.xata.io, https://auth.xata.io, https://login.xata.io, and 10 more"},{"id":"mcp_present","verdict":"fail","points":0,"max":1,"detail":"MCP mentioned 1x in your own files, but nothing spoke MCP at mcp.xata.io, mcp.xata.io/mcp, mcp.xata.io/v1/mcp, api.xata.io/mcp, api.xata.io/v1/mcp, /mcp or /api/mcp, and any address you publish in the MCP registry"},{"id":"signup_no_captcha","verdict":"unmeasured","points":0,"max":1,"detail":"Unmeasurable: the signup form at https://console.xata.io/signup is not in the server HTML, so its gates are not either"},{"id":"signup_reachable","verdict":"fail","points":0,"max":1,"detail":"https://console.xata.io/signup is reachable, but its form needs JavaScript"},{"id":"programmatic_provisioning","verdict":"partial","points":1,"max":2,"detail":"1 of 7 provisioning phrases across the 4 documentation pages and 3 machine-readable files we read: \"create an api key (or api token, access token, personal access token, service account, auth token, secret key, access key, service token, signing key, publishable key, client key, licence key, project token), next to something programmatic\", matched in: “From the CLI Create and manage API keys using the Xata CLI: # Create a user API key xata keys user create”"},{"id":"self_serve","verdict":"fail","points":0,"max":1,"detail":"The only free-tier wording at https://xata.io/pricing is a question the page asks, \"Is there a free tier?\", and the answer to it is not in the HTML we were served"},{"id":"typed_package","verdict":"unmeasured","points":0,"max":1,"detail":"Unmeasurable: @xata.io/api ships without bundled types (https://www.npmjs.com/package/@xata.io/api), and we matched it by who publishes it rather than by a link on your site, so we may be describing something your users never install"},{"id":"machine_readable_api","verdict":"pass","points":1,"max":1,"detail":"Docs serve markdown to machines, at https://xata.io/docs/overview"}]}],"methodology":"https://letagentsin.com/methodology","terms":"Free to use, quote and republish with attribution to Let Agents In and a link to the methodology.","fullCorpus":"https://letagentsin.com/corpus.json","notes":["One row per domain, the most recent scan we hold, scored under a single formula version.","domains is how many we can publish under one formula and curated is how many we hold. When they differ, a reseed is part way through: scores from two formula versions are not comparable, so the rest wait for their next scan rather than appear here under a number that cannot be compared with the others.","share is total divided by measurable, not by max. A domain that refused our requests has a smaller denominator, not a worse number, so ranking on total alone would be wrong.","A verdict of unmeasured means we could not evaluate the check, and notApplicable means it does not apply to a product of this kind. Neither is a failure and neither counts in measurable.","Each entry in checks carries a tally, so nobody has to derive one. Filtering rows on points < max is the obvious way to count failures and it is wrong: it sweeps in every row we could not measure and every row the check does not apply to. Use tally.fail, and tally.measured as the denominator.","unattendedGrant is null when a vendor publishes no registration endpoint or no grant list, false when every advertised grant needs a person at a browser, true when client_credentials is among them. device_code counts as false: approving on another screen is still a person.","rateLimited means a 429 came back anywhere in that scan, at the door, at the signup or at a documentation page, so some checks are unmeasured for a reason that is ours and not theirs. Those rows are thinner than the site, and filtering them out is reasonable.","alsoNames lists the other registrable domains a row's own sentences name, which is how a row can be scored on a form at app.hellosign.com under the name dropboxsign.com. Anything counted across the corpus should read it for the same reason it reads measuredOn.","measuredOn names the domain a row was actually read on, when the home page landed somewhere else. Those rows describe the journey an agent takes from the domain in the name, and the files they score belong to the domain in measuredOn: sendgrid.com answers robots.txt with a redirect to twilio.com/robots.txt, and twilio.com is a row of its own, so anything counted across the corpus counts that file twice.","These are vendors we have no relationship with. Every check is one HTTP request with a published rule, so any row here can be reproduced or disputed."]}