agent-readiness
Server Details
Scores any public website on how usable it is by AI agents, with per-check evidence.
- Status
- Healthy
- Uptime
- 99.9% over 42 days
- Last Tested
- Transport
- Streamable HTTP ยท MCP 2025-11-25
- URL
TDQS
Scored across 5 tools
Each tool has a clearly distinct purpose: score_site assesses a site, explain_check explains a finding, list_checks lists the rule set, get_badge_embed generates badge HTML, and watch_site sets up monitoring. Descriptions explicitly disambiguate common confusions (e.g., 'list_checks' vs 'explain_check' by referencing score_site). No two tools overlap in function.
All tools follow a consistent verb_noun pattern: explain_check, get_badge_embed, list_checks, score_site, watch_site. The pattern is predictable and readable.
Five tools are well-scoped for an agent readiness scoring service, covering assessment, explanation, listing, badge embedding, and monitoring. Each tool earns its place without redundancy.
The tool surface covers the full lifecycle: scoring a site, understanding checks, listing the rule set, sharing results via badge, and ongoing monitoring. No obvious gaps for the domain.
Available Tools
5 toolsexplain_checkExplain one checkARead-onlyIdempotentInspect
Use this when the user asks what a specific Agent Readiness finding means, why it matters to AI agents or how to fix it, usually after score_site. Explains one check: what it asks, why an agent cares, how it is weighted and how to fix it, with a code snippet where one exists. Answers from the rule set only and fetches nothing.
| Name | Required | Description | Default |
|---|---|---|---|
| checkId | Yes | Check identifier, for example content-without-javascript |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | |
| fix | Yes | |
| why | Yes | |
| docs | No | |
| title | Yes | |
| pillar | No | |
| points | Yes | |
| snippet | No | |
| question | Yes | |
| conditional | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnly, idempotent, non-destructive and closed-world, so the safety profile is covered. The description adds genuinely useful behavioral context beyond them: 'Answers from the rule set only and fetches nothing', which tells the agent the answer is static and deterministic rather than live data. It does not cover failure modes such as an unknown checkId, which keeps it from a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with the trigger condition front-loaded and the return contents enumerated compactly. The only slack is the parenthetical-style clause 'usually after score_site', which is useful but slightly lengthens the opener.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need no explanation in prose. Between description and schema the agent knows when to call it, what to pass, what it returns, and that the answer is rule-set-derived rather than fetched. Nothing material is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single checkId parameter already carries a concrete example ('content-without-javascript'). The description adds no further syntax, format, or lookup hints beyond what the schema provides, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Explains one check') and enumerates the exact content returned: what it asks, why an agent cares, weighting, and fix guidance. It is clearly distinct from list_checks (many checks) and score_site (a full run), so an agent can route without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit triggering conditions ('when the user asks what a specific Agent Readiness finding means, why it matters... or how to fix it') and even names the preceding sibling call ('usually after score_site'). This is when-to-use guidance with sibling context, not just implied usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_badge_embedGet the badge embedARead-onlyIdempotentInspect
Use this when the user wants to show a site's Agent Readiness badge on that site. Scores the site if needed, then returns the HTML snippet for sites at grade C or better (bronze, silver or gold), or the reason and the first fixes when the site is not eligible. Returns HTML to paste; it installs nothing and runs no script.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Public http(s) address, for example example.com |
Output Schema
| Name | Required | Description |
|---|---|---|
| host | Yes | |
| html | No | |
| note | No | |
| tier | No | |
| grade | Yes | |
| score | Yes | |
| reason | No | |
| watchIt | No | |
| eligible | Yes | |
| fixFirst | No | |
| badgePage | No | |
| reportUrl | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive/openWorld, but the description adds real behavioral context: it may score the site first, it gates output on grade C or better, and on ineligibility returns the reason plus first fixes. The explicit 'installs nothing and runs no script' guards against a wrong mutation assumption.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the trigger and the eligibility rule, with no filler. The final side-effect disclaimer is brief and earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema exists so return values need not be spelled out, yet the description still covers the eligibility condition, the ineligible-path response, and the no-side-effect guarantee. Nothing an agent needs to invoke this correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Single 'url' parameter with 100% schema description coverage, so the schema already carries the semantics ('Public http(s) address'). The description adds nothing parameter-specific; baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a precise verb and resource ('returns the HTML snippet' for the Agent Readiness badge) and scopes it to a site, which is clearly distinct from list_checks/score_site/watch_site. It does not explicitly name a sibling to contrast against, so it falls just short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit trigger: 'Use this when the user wants to show a site's Agent Readiness badge on that site.' No when-not conditions or named alternatives (e.g. when to call score_site first instead), so it lacks the routing detail of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_checksList the rule setARead-onlyIdempotentInspect
Use this when the user asks what the Agent Readiness Score measures or how it is calculated, rather than how one site performs. Lists every check in the rule set with its pillar, weight and question. Fetches nothing.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| pillars | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety and locality profile is fully covered. 'Fetches nothing' adds a small amount of reinforcing context about cost/latency but largely restates openWorldHint=false.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero waste: the usage trigger leads, the content listing follows, and the 'Fetches nothing' caveat closes. Nothing could be cut without losing routing information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With zero parameters and an output schema present, the description only needs to establish purpose, trigger and content shape โ all of which it does. No behavioral ambiguity remains for an agent to resolve.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters and the schema is fully documented, so there is nothing for the description to disambiguate. Baseline 4 applies for a no-parameter tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Lists every check in the rule set') and enumerates the returned fields (pillar, weight, question). It also implicitly separates itself from score_site by clarifying it is about the rule set, not site performance.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit trigger ('when the user asks what the Agent Readiness Score measures or how it is calculated') plus an explicit exclusion ('rather than how one site performs'), routing the agent to score_site for per-site results.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
score_siteScore a site for agent readinessARead-onlyIdempotentInspect
Use this when the user asks whether a website is ready for AI agents, agent-ready, AI-agent friendly or WebMCP-ready, or what to fix so agents can use it. Scores one public website out of 100 for agent readiness and returns a grade, the fitness and adoption sub-scores, the five highest-value fixes, the scan time and whether the result came from cache. Reads one public page plus standard discovery files (robots.txt, /.well-known endpoints, sitemaps, llms.txt) and up to ten same-origin script bundles; it never logs in, submits forms or changes the site. Results are cached for about an hour.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Public http(s) address, for example example.com |
Output Schema
| Name | Required | Description |
|---|---|---|
| url | Yes | |
| axes | Yes | |
| host | Yes | |
| grade | Yes | |
| score | Yes | |
| cached | Yes | True when this request reused a report already in the server cache. |
| pillars | Yes | |
| excluded | Yes | |
| fixFirst | Yes | |
| fetchedAt | Yes | ISO 8601 |
| reportUrl | Yes | |
| methodology | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and open-world, and the description adds substantive context beyond them: it reads the page plus robots.txt, /.well-known endpoints, sitemaps and llms.txt and up to ten same-origin bundles, explicitly never logs in, submits forms or mutates the site, and notes roughly one-hour caching. That is exactly the kind of scope and side-effect disclosure annotations cannot convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the trigger condition, then the output, then the access behavior and caching. Four sentences, each earning its place, with no filler or repetition of the title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-input scoring tool with an output schema and full annotation coverage, the description supplies the access footprint, mutation guarantees and cache semantics an agent needs to set expectations. Return values are additionally summarized rather than left opaque, so nothing material is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is a single parameter and the schema documents it fully (100% coverage, with an example). The description only implies 'one public website' and adds no syntax or format detail beyond the schema, so the baseline 3 is appropriate for a schema that already carries the parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Scores one public website out of 100 for agent readiness') with the exact deliverable (grade, sub-scores, top five fixes, scan time, cache flag). It is easily distinguished from siblings like explain_check, list_checks and watch_site because it describes a one-shot scoring action rather than an explanation, listing, or monitoring subscription.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit trigger phrasing ('Use this when the user asks whether a website is ready for AI agents... or what to fix'), which covers the main invocation context well. It does not, however, tell the agent when to prefer watch_site (ongoing monitoring) or explain_check (explaining a specific finding) over a fresh score, so the routing against siblings is incomplete.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
watch_siteWatch a site's scoreAInspect
Use this only when the user explicitly asks to be emailed when a site's Agent Readiness Score changes. Sends a confirmation email for monitoring that site. Use only when the user explicitly asks to receive a confirmation email for monitoring at the supplied address. Set sendConfirmationEmail to true only then. Monitoring starts only after the recipient opens the link and confirms on the page; this call itself sends one email.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Public http(s) address or bare host, for example example.com | |
| Yes | Address that will receive the confirmation and the alerts | ||
| sendConfirmationEmail | Yes | True only after the user explicitly requests a monitoring confirmation email. |
Output Schema
| Name | Required | Description |
|---|---|---|
| host | Yes | |
| Yes | ||
| status | Yes | |
| message | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only say readOnlyHint=false and not idempotent; the description goes much further, disclosing that a confirmation email is sent, that monitoring does not begin until the recipient opens the link and confirms on the page, and that this call itself sends exactly one email. That is exactly the side-effect context an agent needs for a non-read-only, open-world tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core guidance is front-loaded, but the two 'use this only when' sentences are near-duplicates of each other, repeating the explicit-user-request condition twice. Roughly a third of the text is redundant, which dilutes rather than clarifies.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present and annotations covering the safety profile, the description supplies the remaining missing piece: the two-step confirmation flow and the fact that monitoring is not active after this call. Nothing an agent needs to invoke it correctly is absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so parameters are already documented; the description still adds value by tying sendConfirmationEmail=true to a specific user request rather than merely restating the const constraint. It reinforces the semantics but does not add format or range detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Watch a site's score', email when the Agent Readiness Score changes) and explains the mechanism (confirmation email, monitoring starts after link confirmation). It distinguishes itself from scoring/listing siblings implicitly through the monitoring framing, though it never names an alternative tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit gating is provided: use only when the user explicitly asks to be emailed on score changes, and only when they ask for a confirmation email at the supplied address. The condition for setting sendConfirmationEmail to true is stated outright, leaving nothing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
2 tool updates
- Changed
score_site2 fields changed- added
Output schema / properties / cachedAdded value: +{ + "description": "True when this request reused a report already in the server cache.", + "type": "boolean" +} - changed
Output schema / requiredPrevious value: -[ - "host", - "url", - "score", - "grade", - "fetchedAt", - "axes", - "pillars", - "fixFirst", - "excluded", - "reportUrl", - "methodology" -]New value: +[ + "host", + "url", + "score", + "grade", + "fetchedAt", + "cached", + "axes", + "pillars", + "fixFirst", + "excluded", + "reportUrl", + "methodology" +]
- Changed
watch_site2 fields changed- added
Input schema / properties / sendConfirmationEmailAdded value: +{ + "const": true, + "description": "True only after the user explicitly requests a monitoring confirmation email.", + "type": "boolean" +} - changed
Input schema / requiredPrevious value: -[ - "url", - "email" -]New value: +[ + "url", + "email", + "sendConfirmationEmail" +]
1 tool update
- Removed
get_agent_stats
1 tool update
- Changed
get_agent_stats3 fields changed- added
Output schema / properties / agents / items / properties / burstsAdded value: +{ + "type": "integer" +} - added
Output schema / properties / agents / items / properties / unverifiedAdded value: +{ + "description": "Lines claiming this agent from outside its vendor's published ranges; not counted", + "type": "integer" +} - added
Output schema / properties / agents / items / properties / verifiableAdded value: +{ + "type": "boolean" +}
1 tool update
- Changed
get_agent_stats2 fields changed- added
Output schema / properties / burstsAdded value: +{ + "description": "Recent fetch bursts: one agent fetching several pages within seconds, the footprint of a query fan-out", + "items": { + "properties": { + "agent": { + "type": "string" + }, + "at": { + "type": "string" + }, + "ms": { + "type": "integer" + }, + "paths": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" +} - added
Output schema / properties / fetchesFromLogSinceAdded value: +{ + "description": "When set, fetch counts come from the site's server log from this date on", + "type": [ + "string", + "null" + ] +}
1 tool update
- Added
get_agent_stats
5 tool updates
- First observed
explain_check - First observed
get_badge_embed - First observed
list_checks - First observed
score_site - First observed
watch_site
Related MCP Connectors
Scan any public website and see how ready it is for AI agents and AI search, explained plainly.
The website checker for AI agents. One call: verdict, score out of 100, fix list.
Scan any public site for AI-agent visibility; get scored findings, a machine-readable fix pack, and
Scan any website's AI readiness: AI search visibility and AI agent usability. Free, no auth.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceScans a website to score its compatibility and safety for AI agents, and exposes an audit tool via the Model Context Protocol.226 npm1MIT

ASO Score MCPofficial
AlicenseAqualityAmaintenanceScans websites to evaluate agent-readiness and produce an ASO Score Report across 34 signals, helping improve discoverability, trust, and interoperability for AI agents.5440 npm1MIT- AlicenseAqualityAmaintenanceCheck whether a website is visible to AI search engines (ChatGPT, Perplexity, Claude, Google AI Overviews). Returns a 0-100 readiness score, a grade, and a specific fix for each gap. Dependency-free, no API keys.21 npmMIT
- FlicenseNot gradedqualityDmaintenanceEnables scanning any website for AI agent compatibility and marketing health, returning interactive dashboard reports with scores and revenue impact estimates.-
Glama MCP Gateway
Add one secure layer between your agents and this server.