Methodology
How the AgentReady Score is computed. Four pillars, weighted signals, deterministic.
The AgentReady Score measures how ready a product is for AI agents to discover, understand, adopt, and operate. It is deterministic. The score is derived from stored facts, not from a model's opinion, so the same facts always produce the same number and every point is traceable to a signal.
#The framework: DISCOVER, UNDERSTAND, ADOPT, OPERATE
| Pillar | Score key | The agent question it answers |
|---|---|---|
| DISCOVER | discovery | Can an agent find you and know you exist? |
| UNDERSTAND | understanding | Can an agent tell what you do, your pricing, and when to use you? |
| ADOPT | adoption | Can an agent sign up, get a key, and install without a human? |
| OPERATE | operability | Can an agent actually use you as a primitive? |
#How the number is built
Each pillar holds a set of weighted signals. A signal is either present or not. A pillar
score is the sum of the weights of the present signals, divided by the total possible
weight for that pillar, times 100. The headline agentready score is the average of the
four pillar scores. Every score is rounded to a whole number.
pillar = round( sum(weights of present signals) / sum(all weights) * 100 )
agentready = round( (discovery + understanding + adoption + operability) / 4 )#DISCOVER signals
Signal (namespace.key) | Weight | Present when |
|---|---|---|
agent_capability.llms_txt | 3 | An /llms.txt file is served |
agent_capability.openapi | 2 | An OpenAPI spec is served |
agent_capability.api | 2 | A public API is detected |
company.categories | 1 | Categories are populated |
readability.robots_ai_allowed | 1 | robots.txt does not block AI crawlers |
readability.sitemap | 1 | A sitemap.xml is served |
readability.agents_md | 2 | An AGENTS.md, CLAUDE.md, or llms-full.txt file is served |
#UNDERSTAND signals
Signal (namespace.key) | Weight | Present when |
|---|---|---|
company.description | 2 | A description is populated |
pricing.pricing or pricing.free_tier | 2 | Pricing or a free-tier flag is known |
company.products | 2 | Products are populated |
company.categories | 1 | Categories are populated |
agent_capability.authentication | 1 | An auth method is documented |
readability.meta_description | 1 | The homepage has a meta description |
readability.json_ld | 1 | The homepage has Schema.org JSON-LD |
readability.canonical | 1 | The homepage has a canonical link |
readability.markdown_mirror | 1 | A text/markdown mirror is served |
#ADOPT signals
Signal (namespace.key) | Weight | Present when |
|---|---|---|
pricing.self_serve | 3 | An agent can sign up and pay without a human |
agent_capability.sdks | 2 | Official SDKs are detected |
agent_capability.cli | 1 | A CLI is detected |
agent_capability.api | 1 | A public API is detected |
agent_capability.openapi | 1 | An OpenAPI spec is served |
#OPERATE signals
Signal (namespace.key) | Weight | Present when |
|---|---|---|
agent_capability.mcp_available | 3 | An MCP server exists |
agent_capability.api | 2 | A public API is detected |
agent_capability.sdks | 1 | Official SDKs are detected |
agent_capability.claude_compatible | 1 | Documented Claude Code compatibility |
agent_capability.codex_compatible | 1 | Documented Codex compatibility |
agent_capability.cursor_compatible | 1 | Documented Cursor compatibility |
#Where the signals come from
The audit does not trust marketing copy for capability claims. The homepage rarely states whether a vendor has SDKs, a CLI, or an MCP server, so the audit looks where the truth lives and writes deterministic, high-confidence facts:
- GitHub org repositories: an
*-mcprepo means an MCP server exists, a*-clirepo means a CLI exists, SDK and client repos reveal SDK languages. - npm and PyPI: a published package confirms an SDK and its language.
- Direct probes:
/llms.txt,/openapi.json,robots.txt,sitemap.xml, andAGENTS.mdon the apex and thedocs.subdomain. - Homepage HTML: canonical link, meta description, JSON-LD, and a markdown mirror link.
Hard evidence overrides the model. If the GitHub org has an MCP repo, mcp_available is set
true regardless of what the copy says. Each fact carries a confidence and a timestamp. See
Sources and Freshness.
#Reading a score
A score in the 90s means an agent can find, understand, adopt, and operate the product with
almost no human help. A score in the 50s usually means the product is usable by a developer
but leaves gaps for an agent: no llms.txt, no MCP server, no OpenAPI spec, or no
self-serve signup. The audit issues array lists the specific fixes, ordered by
how much they would raise the score.