Agent Ready
The Agent Ready MCP server lets you scan websites and validate structured data for AI agent readability, providing scores, findings, and fix guidance.
Scan any URL (
scan_site) — Run a full agent-readability scan, returning a Vercel Agent Readability score (0–100), an llms.txt score (0–100), and per-check findings withhowToFixremediation guidance across 69 checks. Optionally limit pages crawled (up to 2,000).Retrieve a previous scan (
get_scan) — Fetch a completed or in-progress scan by its ID, useful when a scan exceeds the poll deadline and returns arunningplaceholder.Ask natural-language questions (
ask) — Query Agent Ready's content library — scoring methodology, check registry, supported specs, guides, and glossary — using natural language. Returns Schema.org-typed results and an optional extractive summary. No API key required.Validate JSON-LD structured data (
validate_structured_data) — Validate a page's structured data by URL or by pasting raw JSON-LD directly. Checks schema lint plus agent-coherence concerns and returns a verdict (agent-ready,needs-work, ornot-agent-readable) with per-check fix guidance. Paste mode works entirely offline.Generate workflows — The server supports prompts for high-level scan summaries, plain-English explanations of findings, and prioritized remediation plans.
Scans any URL for AI agent readability against the Vercel Agent Readability Spec, providing per-check findings and remediation guidance.
agent-ready-mcp
MCP server for Agent Ready — scan any URL for AI agent readability against the Vercel Agent Readability Spec, the llmstxt.org standard, and agent-protocol manifests (MCP server cards, A2A, agents.json, agent-permissions.json, UCP, x402, NLWeb). 71 checks across four spec families — 39 site and page checks (15 site-wide + 24 per-page), 10 against llmstxt.org, and 22 against agent-protocol manifests — each with per-check fix guidance, plus a separate accessibility sub-score from 23 WCAG 2.2 / layout-stability checks.
Hosted at https://agent-ready.dev/api/v1/mcp (Streamable HTTP); this package is a thin stdio wrapper around the same REST endpoints, distributed via npm for local MCP clients (Claude Desktop, Claude Code, Cursor, VS Code, Windsurf).
Features
scan_site— fresh agent-readability scan on any URL. Works without a key on the anonymous free tier (3 scans/30 days per IP, 25-page depth, synchronous); with a Pro key it scans up to 250 pages, polling the hosted API up to 60s.get_scan— fetch a previously-run scan by id (Pro key required — scan history is account-scoped).ask— natural-language (NLWeb) search over Agent Ready's own methodology, checks, and specs. Public, no API key required; returns Schema.org-typed results.validate_structured_data— validate a page's (or a pasted) JSON-LD against Agent Ready's structured-data checks. Public, no API key required; paste mode needs no network, so an agent can check JSON-LD it just authored.Three discovery prompts —
scan,interpret_scan,remediation_plan. End-to-end workflows from URL → score → fix-it plan.SKILL.md— Claude Skill descriptor included underskills/agent-ready/for activation routing.
Related MCP server: mcp-seo-audit
Setup
No key is required to start: scan_site, ask, and validate_structured_data all work anonymously out of the box (scan_site on the free anonymous quota — 3 scans per 30 days per IP at 25-page depth). An Agent Ready Pro API key unlocks 50 scans/month, 250-page depth, scan history (get_scan), and weekly monitoring — sign up at agent-ready.dev and issue a key from the dashboard. The env block in the configs below is optional; omit it to run keyless.
Claude Desktop
Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"agent-ready": {
"command": "npx",
"args": ["-y", "agent-ready-mcp@latest"],
"env": {
"AGENT_READY_API_KEY": "ar_live_..."
}
}
}
}Claude Code
claude mcp add agent-ready \
-e AGENT_READY_API_KEY=ar_live_... \
-- npx -y agent-ready-mcp@latestCursor / VS Code / Windsurf
.cursor/mcp.json, .vscode/mcp.json, or ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"agent-ready": {
"command": "npx",
"args": ["-y", "agent-ready-mcp@latest"],
"env": {
"AGENT_READY_API_KEY": "ar_live_..."
}
}
}
}Environment variables
Variable | Required | Default | Purpose |
| No | — | Pro Bearer token from the Agent Ready dashboard. Without it, |
| No |
| Override for self-hosted or staging deployments. |
| No |
| How long |
| No |
| Timeout for |
Tools
Tool | Inputs | Returns |
|
| Scan object: Vercel score 0–100, llms.txt sub-score 0–100, per-check findings with |
|
| Same scan object as |
|
| NLWeb |
| exactly one of | D-series structured-data result: |
Prompts
Prompt | Args | What it does |
|
| Fresh scan + high-level summary (score, rating, top 3–5 failures, next step). |
|
| Plain-English explanation of a previous scan's findings, grouped by category. |
|
| Prioritised fix-it doc with Now/Next/Later buckets and per-fix check ids. |
Example workflow
You: Use agent-ready to scan https://my-saas.com
Claude: [calls scan_site] Your site scored 78/100 (Good) on the Vercel Agent
Readability Spec. The top 3 fixes: …
You: Can you build me a remediation plan?
Claude: [calls remediation_plan with the scan id] Here's the prioritised list…Skill (Anthropic Claude Skills)
A SKILL.md lives at skills/agent-ready/SKILL.md inside the package. To use it in Claude Desktop / Claude Code, copy the skills/agent-ready/ directory into ~/.claude/skills/.
The skill describes when to activate (URL + readability-audit intent), which tool to pick, how to surface scan results without dumping raw JSON, and when to defer to other tools (general SEO, performance profiling, code editing).
How it works
This package is a thin stdio→HTTPS wrapper:
MCP client (stdio) ↔ agent-ready-mcp ↔ HTTPS ↔ agent-ready.dev/api/v1/scansAll scan execution, persistence, and Pro-tier quota enforcement happen on the hosted server. The npm package only translates between MCP JSON-RPC over stdio and the REST API.
If you'd rather use the hosted MCP server directly (Streamable HTTP transport, no local install), point your MCP client at https://agent-ready.dev/api/v1/mcp with Authorization: Bearer ar_live_....
Methodology
The 71 checks, their weights, and the score formula are documented at agent-ready.dev/methodology. Both manifest.json and server.json in this repo conform to the relevant registry schemas (Glama Marketplace v0.3 and MCP registry 2025-12-11 respectively).
Development
npm install
npm run build # → dist/mcp-server.mjs
npm test
npm run typecheckReleasing
See RELEASE.md. It is the source of truth for version surfaces, local checks, tag pushing, the GitHub Actions release workflow, and the manual post-release steps.
License
MIT — see LICENSE.
Available Tools
4 toolsaskAsk Agent Ready in natural languageARead-onlyIdempotentInspect
Natural-language search (NLWeb /ask) over Agent Ready's own content — scoring methodology, the check registry, the specs it validates, and the content library (explainers, comparisons, how-to guides, glossary). Public, no API key required. Returns Schema.org-typed result objects; optional itemType narrows to a corpus type and mode 'summarize' adds an extractive summary.
| Name | Required | Description | Default |
|---|---|---|---|
| q | Yes | Natural-language question about Agent Ready's scoring methodology, its check registry, the specs it validates, or its content library (explainers, comparisons, how-to guides, glossary). | |
| mode | No | 'summarize' adds an extractive summary over the top results. | |
| itemType | No | Optional filter narrowing the search to one corpus type ('page' = explainers/guides/glossary). |
Output Schema
| Name | Required | Description |
|---|---|---|
| mode | No | |
| site | No | |
| _meta | No | |
| error | No | |
| query | No | |
| results | No | |
| summary | No | |
| query_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, non-destructive. Description adds return type (Schema.org-typed objects) and effects of mode and itemType, going beyond annotations without contradiction.
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 sentences, efficiently front-loaded with purpose. No redundant information; each sentence adds unique value.
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?
Given the tool complexity (3 parameters, one required, has output schema), description covers inputs, outputs, security, and optional behaviors. Sufficient for an agent to select and invoke correctly.
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 baseline 3. Description adds context: frames 'q' as natural-language question over specific content, explains 'mode' adds summary, and 'itemType' filters corpus type – meaningful value beyond 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?
Description clearly states it is a natural-language search over Agent Ready's content, listing specific domains. Verb 'search' and resource are explicit, distinguishing it from sibling tools like scan_site and validate_structured_data.
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?
Mentions it is public with no API key required, and describes optional parameters. Implicitly suggests use for questions about Agent Ready's content, but does not explicitly contrast with siblings or state when not to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_scanGet a previous scan by idARead-onlyIdempotentInspect
Fetches a completed or in-progress scan by its id. Requires a Pro API key — scan history is account-scoped. (Anonymous scan_site calls return their result inline, so keyless use never needs this tool.)
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Scan id returned by a previous scan_site call (10-character nanoid). |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | |
| url | No | |
| status | Yes | |
| message | No | |
| pollUrl | No | |
| rootUrl | No | |
| saveUrl | No | |
| createdAt | No | |
| shareToken | No | |
| siteChecks | No | |
| completedAt | No | |
| pageResults | No | |
| vercelScore | No | |
| llmstxtScore | No | |
| pagesScanned | No | |
| vercelRating | No | |
| llmstxtChecks | No | |
| pagesDiscovered | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses behavioral details beyond annotations: fetches both completed and in-progress scans, requires Pro API key, and is account-scoped. No contradiction with annotations (readOnlyHint, etc.)
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 concise sentences: first sentence states primary purpose, second adds key usage context. Every sentence adds value with no waste.
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?
Given the simple tool (single parameter, output schema exists, annotations rich), the description fully covers purpose, usage context, and differentiation from siblings. Complete for effective tool selection.
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 schema already describes the id parameter in detail (returned by scan_site, 10-character nanoid). The description adds no new parameter information, so baseline score 3 is appropriate.
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 clearly states the verb 'fetches' and the resource 'scan by its id'. It distinguishes from sibling scan_site by noting that anonymous scan_site returns results inline, so this tool is for retrieving previous scans.
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?
Explicitly states when to use (Pro API key, account-scoped scan history) and when not to use (anonymous calls should use scan_site). Provides clear context for tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scan_siteScan a site for AI agent readabilityARead-onlyIdempotentInspect
Runs the agent-ready.dev scanner against a URL and returns structured results: Vercel score, llmstxt.org score, and per-check findings with remediation hints. Works without an API key on the anonymous free tier (3 scans/30 days per IP, 25-page depth, synchronous). With a Pro AGENT_READY_API_KEY it scans deeper (up to 250 pages) and may take up to ~60s; if the local poll deadline elapses, the tool returns the scan id and asks you to poll with get_scan.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Fully-qualified URL to scan, including scheme (https://...). | |
| pageLimit | No | Optional maximum number of pages to crawl from the root URL. Capped by your plan (Free 25, Pro 250, Team 2000). |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | |
| url | No | |
| status | Yes | |
| message | No | |
| pollUrl | No | |
| rootUrl | No | |
| saveUrl | No | |
| createdAt | No | |
| shareToken | No | |
| siteChecks | No | |
| completedAt | No | |
| pageResults | No | |
| vercelScore | No | |
| llmstxtScore | No | |
| pagesScanned | No | |
| vercelRating | No | |
| llmstxtChecks | No | |
| pagesDiscovered | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnly, openWorld, idempotent, non-destructive. The description adds significant behavioral context: anonymous free tier limits (3 scans/30 days, 25-page depth), synchronous execution with timeout, and fallback to async polling. No contradiction with annotations; description enriches them.
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: first sentence states purpose and output structure; second sentence covers tiers, limits, and polling fallback. Every clause earns its place; no redundancy. Front-loaded with key action and results.
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?
Given the tool's medium complexity, the description covers purpose, input (URL), output (structured scores), tier behavior, and polling mechanism. Output schema exists, so return values need not be detailed. All necessary information for correct selection and invocation is present.
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 description coverage is 100%, so baseline is 3. The description adds plan-specific caps for pageLimit (Free 25, Pro 250, Team 2000), which is not in the schema. This helps the agent choose appropriate values, justifying a 4.
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 clearly states the verb 'runs the agent-ready.dev scanner' and the resource 'a URL', and specifies the structured results (Vercel score, llmstxt.org score, per-check findings). It implicitly distinguishes from sibling 'get_scan' by mentioning polling, so an agent knows this initiates the scan while get_scan retrieves results.
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?
The description explains when to use the tool (to scan a site) and provides tier-specific behavior (free with limits, Pro deeper). It explicitly instructs to poll with 'get_scan' if the deadline elapses. However, it does not explicitly state when not to use it (e.g., for already-scanned sites), but that is implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
validate_structured_dataValidate JSON-LD structured dataARead-onlyIdempotentInspect
Validates a page's (or a pasted) JSON-LD against Agent Ready's structured-data checks (schema lint + agent-coherence: freshness honesty, canonical/.md coherence, entity-name consistency, extraction signal) and returns a verdict with per-check fix guidance. Provide exactly one of url (fetch + validate) or jsonld (validate a string the agent just authored — no network needed). Public, no API key required. The one structured-data check the first-party validators (validator.schema.org, Rich Results Test) don't do.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | URL of a page to fetch and validate its JSON-LD. Provide either url OR jsonld, not both. | |
| jsonld | No | A raw JSON-LD string to validate directly (paste mode) — e.g. structured data an agent just authored. Provide either jsonld OR url, not both. |
Output Schema
| Name | Required | Description |
|---|---|---|
| url | Yes | |
| mode | Yes | |
| checks | Yes | |
| summary | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint true, destructiveHint false, and idempotentHint true. The description adds valuable context: it is public, requires no API key, and lists the specific checks performed (freshness, honesty, coherence, etc.), which goes beyond the annotations.
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 description is concise (two sentences) and front-loaded with the main action. Every sentence earns its place: the first explains what the tool does and the checks, the second clarifies the parameters and unique value.
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?
Given the output schema exists, the description need not explain return values. It covers the tool's purpose, input modes, behavioral traits, and unique differentiation, making it complete for an agent to decide and invoke correctly.
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 description adds meaning to each parameter: 'url' is for fetching and validating, 'jsonld' is for validating a string with no network. This adds value beyond the schema descriptions.
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 specifies a verb (validates), a resource (JSON-LD structured data), and a clear scope (Agent Ready's specific checks: schema lint + agent-coherence). It distinguishes itself from first-party validators, making the purpose unique and unmistakable.
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?
The description explicitly states the two usage modes (url or jsonld) and the constraint 'provide exactly one'. It also notes that no API key is required and it's public. While it does not explicitly compare to sibling tools, the siblings appear unrelated, so no further guidance is necessary.
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. Dates show when Glama detected each change.
3 tool updates
v0.7.0- Added
ask - Changed
get_scan1 field changed- added
Output schema / properties / saveUrlAdded value: +{ + "type": "string" +}
- Added
scan_site
2 tool updates
v0.6.1- Removed
ask - Removed
scan_site
4 tool updates
v0.5.0- Added
ask - Changed
get_scan1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "completedAt": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "createdAt": { + "type": "string" + }, + "id": { + "type": "string" + }, + "llmstxtChecks": { + "items": { + "additionalProperties": false, + "properties": { + "checkId": { + "type": "string" + }, + "details": { + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "howToFix": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "message": { + "type": "string" + }, + "name": { + "type": "string" + }, + "status": { + "enum": [ + "pass", + "fail", + "warn", + "error" + ], + "type": "string" + } + }, + "required": [ + "checkId", + "name", + "status", + "message", + "howToFix" + ], + "type": "object" + }, + "type": "array" + }, + "llmstxtScore": { + "type": "number" + }, + "message": { + "type": "string" + }, + "pageResults": { + "items": { + "additionalProperties": false, + "properties": { + "checks": { + "items": { + "additionalProperties": false, + "properties": { + "checkId": { + "type": "string" + }, + "details": { + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "howToFix": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "message": { + "type": "string" + }, + "name": { + "type": "string" + }, + "status": { + "enum": [ + "pass", + "fail", + "warn", + "error" + ], + "type": "string" + } + }, + "required": [ + "checkId", + "name", + "status", + "message", + "howToFix" + ], + "type": "object" + }, + "type": "array" + }, + "url": { + "type": "string" + } + }, + "required": [ + "url", + "checks" + ], + "type": "object" + }, + "type": "array" + }, + "pagesDiscovered": { + "type": "number" + }, + "pagesScanned": { + "type": "number" + }, + "pollUrl": { + "type": "string" + }, + "rootUrl": { + "type": "string" + }, + "shareToken": { + "type": "string" + }, + "siteChecks": { + "items": { + "additionalProperties": false, + "properties": { + "checkId": { + "type": "string" + }, + "details": { + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "howToFix": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "message": { + "type": "string" + }, + "name": { + "type": "string" + }, + "status": { + "enum": [ + "pass", + "fail", + "warn", + "error" + ], + "type": "string" + } + }, + "required": [ + "checkId", + "name", + "status", + "message", + "howToFix" + ], + "type": "object" + }, + "type": "array" + }, + "status": { + "enum": [ + "running", + "completed", + "failed" + ], + "type": "string" + }, + "url": { + "type": "string" + }, + "vercelRating": { + "type": "string" + }, + "vercelScore": { + "type": "number" + } + }, + "required": [ + "id", + "status" + ], + "type": "object" +}
- Changed
scan_site1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "completedAt": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "createdAt": { + "type": "string" + }, + "id": { + "type": "string" + }, + "llmstxtChecks": { + "items": { + "additionalProperties": false, + "properties": { + "checkId": { + "type": "string" + }, + "details": { + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "howToFix": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "message": { + "type": "string" + }, + "name": { + "type": "string" + }, + "status": { + "enum": [ + "pass", + "fail", + "warn", + "error" + ], + "type": "string" + } + }, + "required": [ + "checkId", + "name", + "status", + "message", + "howToFix" + ], + "type": "object" + }, + "type": "array" + }, + "llmstxtScore": { + "type": "number" + }, + "message": { + "type": "string" + }, + "pageResults": { + "items": { + "additionalProperties": false, + "properties": { + "checks": { + "items": { + "additionalProperties": false, + "properties": { + "checkId": { + "type": "string" + }, + "details": { + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "howToFix": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "message": { + "type": "string" + }, + "name": { + "type": "string" + }, + "status": { + "enum": [ + "pass", + "fail", + "warn", + "error" + ], + "type": "string" + } + }, + "required": [ + "checkId", + "name", + "status", + "message", + "howToFix" + ], + "type": "object" + }, + "type": "array" + }, + "url": { + "type": "string" + } + }, + "required": [ + "url", + "checks" + ], + "type": "object" + }, + "type": "array" + }, + "pagesDiscovered": { + "type": "number" + }, + "pagesScanned": { + "type": "number" + }, + "pollUrl": { + "type": "string" + }, + "rootUrl": { + "type": "string" + }, + "shareToken": { + "type": "string" + }, + "siteChecks": { + "items": { + "additionalProperties": false, + "properties": { + "checkId": { + "type": "string" + }, + "details": { + "additionalProperties": {}, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "howToFix": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "message": { + "type": "string" + }, + "name": { + "type": "string" + }, + "status": { + "enum": [ + "pass", + "fail", + "warn", + "error" + ], + "type": "string" + } + }, + "required": [ + "checkId", + "name", + "status", + "message", + "howToFix" + ], + "type": "object" + }, + "type": "array" + }, + "status": { + "enum": [ + "running", + "completed", + "failed" + ], + "type": "string" + }, + "url": { + "type": "string" + }, + "vercelRating": { + "type": "string" + }, + "vercelScore": { + "type": "number" + } + }, + "required": [ + "id", + "status" + ], + "type": "object" +}
- Added
validate_structured_data
2 tool updates
v0.2.0- First observed
get_scan - First observed
scan_site
TDQS
Each tool has a clearly distinct purpose: scanning a site, retrieving scan results, searching documentation, and validating structured data. No overlap or ambiguity.
All tool names follow a consistent verb_noun snake_case pattern. 'ask' is a concise verb, but fits as it is a direct action.
Four tools are well-scoped for Agent Ready's domain: scanning, result retrieval, knowledge base search, and validation. Not too few or too many.
The tool surface covers the core workflows: scan execution, result polling, documentation lookup, and structured data validation. No obvious gaps for the stated purpose.
Maintenance
Related MCP Connectors
Score any website's AI-agent readiness. Open Agent Registry scanner + platform tools.
Clean Markdown and AI-readability scoring for any URL. Built for AI agents.
11Scan any website for AI agent readiness, payment protocols, and discovery endpoints
Agent-readiness scanner (0-5 score), robots.txt + llms.txt generators, managed agent enablement.
Related MCP Servers
- AlicenseBqualityFmaintenanceGEO (Generative Engine Optimisation). This tool shows you exactly how AI search engines see your content - claim density, writing quality, E-E-A-T signals, extractability. Research-backed metrics that correlate with 40% higher AI citation rates.28221MIT
- AlicenseBqualityBmaintenanceSEO audit and Google Search Console MCP server with 23 tools. Search analytics, URL inspection, Indexing API, Core Web Vitals (CrUX), striking distance keywords, keyword cannibalization detection, branded query analysis, and automated site audits.302MIT
- AlicenseAqualityCmaintenanceProvides tools for Chain of Consciousness provenance logging and Agent Rating Protocol reputation scoring to establish trust and accountability for AI agents. It enables tamper-evident activity tracking, integrity verification, and bilateral reputation management.111Apache 2.0
- AlicenseAqualityCmaintenanceReputation scoring for AI agent wallets on Base. 9 tools for trust scores, fraud checks, blacklist lookups, leaderboard, badge generation, and agent registration with x402 payment verification.9551MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/mlava/agent-ready-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server