Skip to main content
Glama

Server Details

Scan any URL for AI agent readability — Vercel Spec, llmstxt.org, and agent-protocol manifests.

If you are the author of this connector, you can claim ownership with GitHub, an HTTP challenge, or a DNS record. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Last Tested
Transport
Streamable HTTP
URL
Repository
mlava/agent-ready-mcp
GitHub Stars
1
Server Listing
Agent Ready

Available Tools

3 tools
askAsk Agent Ready in natural languageA
Read-onlyIdempotent
Inspect

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). Returns Schema.org-typed result objects. Optional itemType narrows to a corpus type; mode 'summarize' adds an extractive summary.

ParametersJSON Schema
NameRequiredDescriptionDefault
qYesNatural-language question to search Agent Ready's docs, scoring methodology, check registry, and content library (explainers, comparisons, how-to guides, glossary).
modeNo"list" (default) returns matching items; "summarize" returns a synthesized answer.
itemTypeNoRestrict results to a content type: methodology, checks, specs, llms-txt, check, page (explainers/guides/glossary), or any (default: all types).

Output Schema

ParametersJSON Schema
NameRequiredDescription
messageNoExtractive summary when mode is 'summarize'.
resultsYesMatching result items (Schema.org-typed).

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, openWorld, idempotent, and non-destructive behavior, so the description need not repeat that. The description adds useful behavioral context: results are Schema.org-typed, mode 'summarize' adds an extractive summary, and itemType narrows the corpus. No contradictions with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, consisting of three sentences that front-load the core purpose, then add return type and optional parameter behavior. Every sentence earns its place, with no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, the description does not need to detail return values. It fully covers what content is searched, the optional narrowing and summarization modes, and the result type. It is complete for a search tool, though it omits any mention of pagination or result limits, which is slightly expected for a search operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with each parameter well-described, so the baseline is 3. The description adds slight extra meaning by explaining itemType narrows to a corpus type and mode 'summarize' adds a summary, but these largely echo the schema and no new syntax or examples are provided.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool performs natural-language search over Agent Ready's own content, listing specific corpora (methodology, check registry, specs, content library). It also mentions the return type (Schema.org-typed objects), making the purpose specific and distinct from sibling scan tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context on what content is searched and that mode/itemType can adjust the query, implying when to use it. However, it does not explicitly mention when not to use it or provide alternatives like the sibling tools get_scan and scan_site.

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 idA
Read-onlyIdempotent
Inspect

Fetches a completed or in-progress scan by its id. Only scans owned by the authenticated API key's user are returned.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe scan id returned by scan_site (also the share token in a /scan/<id> URL).

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYesThe scan id.
statusYesScan status: running, completed, or failed.
pollUrlNoPoll URL while the scan is still running.
rootUrlNoThe scanned site URL.
shareUrlNoPath to the shareable report (/scan/<id>).
vercelScoreNoScore against the Vercel Agent Readability Spec (0–100); null while running.
llmstxtScoreNollms.txt score (0–100).
pagesScannedNoNumber of pages scanned.
vercelRatingNoRating band for the Vercel score.
pagesDiscoveredNoNumber of pages discovered.
protocolResultsNoAgent-protocol checks (C-series) that ran — only for endpoints the site actually exposes.
accessibilityScoreNoAccessibility / layout-stability sub-score (0–100) over the homepage WCAG checks; null when none ran. Separate from the Vercel score.
accessibilityChecksNoAccessibility / layout-stability checks (A-series) run over the homepage.

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide readOnly, openWorld, idempotent, and non-destructive hints. The description adds useful context about scan status (completed or in-progress) and the ownership restriction tied to the authenticated API key user, going beyond the structured hints.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single focused sentence plus a helpful title. Every clause adds value: object type, allowed statuses, lookup key, and ownership constraint. No filler or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With one required parameter, a fully described schema, an output schema present, and annotations covering safety and idempotency, the description provides sufficient context for correct invocation. No critical guidance is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, and the description supplements the bare 'id' parameter by explaining how the id is obtained (returned by scan_site) and that it doubles as the share token in a /scan/<id> URL. This adds meaningful operational context.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool fetches a scan by its id and specifies it handles completed or in-progress scans. It does not explicitly contrast with siblings like scan_site or ask, but the verb-resource pairing is specific enough to disambiguate.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the intended use: retrieve a previous scan by id from the authenticated user's scans. It does not explicitly state when to prefer this over scan_site or ask, nor does it mention alternatives or exclusions.

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 readabilityA
Read-onlyIdempotent
Inspect

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. Scans may take up to ~60s; for larger scans the tool returns a scan id and asks you to poll with get_scan.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesFull URL of the site to scan, e.g. https://example.com. Must be a public http(s) address.
pageLimitNoMaximum number of pages to crawl. Defaults to your tier's per-scan page limit when omitted.

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYesThe scan id.
statusYesScan status: running, completed, or failed.
pollUrlNoPoll URL while the scan is still running.
rootUrlNoThe scanned site URL.
shareUrlNoPath to the shareable report (/scan/<id>).
vercelScoreNoScore against the Vercel Agent Readability Spec (0–100); null while running.
llmstxtScoreNollms.txt score (0–100).
pagesScannedNoNumber of pages scanned.
vercelRatingNoRating band for the Vercel score.
pagesDiscoveredNoNumber of pages discovered.
protocolResultsNoAgent-protocol checks (C-series) that ran — only for endpoints the site actually exposes.
accessibilityScoreNoAccessibility / layout-stability sub-score (0–100) over the homepage WCAG checks; null when none ran. Separate from the Vercel score.
accessibilityChecksNoAccessibility / layout-stability checks (A-series) run over the homepage.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark the tool readOnly, idempotent, openWorld, and non-destructive. The description adds valuable behavioral context beyond that: latency up to ~60s and deferred results via a scan id and polling. It doesn't mention potential rate limits or costs from repeated scans, but doesn't contradict 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences front-load the core action and outputs, then add the latency and polling behavior. No filler or repetition of schema content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Output schema covers structured results, so the description need not re-explain return values. The description supplies the remaining operational context—timeouts and delegation to get_scan—while the schema covers parameters; an agent has enough to call and follow up correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so url and pageLimit are already documented with formats, constraints, and defaults. The description doesn't add new parameter meaning beyond the schema, matching the baseline for well-covered schemas.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Runs the agent-ready.dev scanner') and resource ('against a URL') plus the exact outputs: Vercel score, llmstxt.org score, and per-check findings with remediation hints. It also distinguishes itself from the sibling get_scan by describing the async polling flow for larger scans.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear usage context: scans can take up to ~60s and, for larger scans, the tool instructs the agent to poll with get_scan, which is an explicit alternative. It doesn't discuss the ask sibling or say when scan_site is not appropriate, but the main decision point is covered.

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.

  1. 2 tool updates
    • Changedget_scan1 field changed
      • changedOutput schema / properties / vercelScore / description
        Previous value: -"Vercel agent-readability score (0–100); null while running."New value: +"Score against the Vercel Agent Readability Spec (0–100); null while running."
    • Changedscan_site1 field changed
      • changedOutput schema / properties / vercelScore / description
        Previous value: -"Vercel agent-readability score (0–100); null while running."New value: +"Score against the Vercel Agent Readability Spec (0–100); null while running."
  2. 2 tool updates
    • Changedget_scan3 fields changed
      • addedOutput schema / properties / accessibilityChecks
        Added value: +{
        +  "anyOf": [
        +    {
        +      "items": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "checkId": {
        +            "type": "string"
        +          },
        +          "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"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "description": "Accessibility / layout-stability checks (A-series) run over the homepage."
        +}
      • addedOutput schema / properties / accessibilityScore
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "number"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "description": "Accessibility / layout-stability sub-score (0–100) over the homepage WCAG checks; null when none ran. Separate from the Vercel score."
        +}
      • addedOutput schema / properties / protocolResults
        Added value: +{
        +  "anyOf": [
        +    {
        +      "items": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "checkId": {
        +            "type": "string"
        +          },
        +          "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"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "description": "Agent-protocol checks (C-series) that ran — only for endpoints the site actually exposes."
        +}
    • Changedscan_site3 fields changed
      • addedOutput schema / properties / accessibilityChecks
        Added value: +{
        +  "anyOf": [
        +    {
        +      "items": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "checkId": {
        +            "type": "string"
        +          },
        +          "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"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "description": "Accessibility / layout-stability checks (A-series) run over the homepage."
        +}
      • addedOutput schema / properties / accessibilityScore
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "number"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "description": "Accessibility / layout-stability sub-score (0–100) over the homepage WCAG checks; null when none ran. Separate from the Vercel score."
        +}
      • addedOutput schema / properties / protocolResults
        Added value: +{
        +  "anyOf": [
        +    {
        +      "items": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "checkId": {
        +            "type": "string"
        +          },
        +          "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"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "description": "Agent-protocol checks (C-series) that ran — only for endpoints the site actually exposes."
        +}
  3. 3 tool updates
    • First observedask
    • First observedget_scan
    • First observedscan_site

Frequently Asked Questions

Discussions

No comments yet. Be the first to start the discussion!

Related MCP Connectors

Related MCP Servers

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

TDQS

A4.2/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose: ask searches content, scan_site initiates scans, and get_scan retrieves scan results. There is no overlap or ambiguity between them.

Naming Consistency4/5

Tool names mostly follow a verb-based pattern (ask, scan_site, get_scan), with slight variation in that 'ask' lacks an explicit object while the others are verb_noun. Overall consistent enough to be predictable.

Tool Count5/5

Three tools is well-scoped for a focused scanner/content-search server. Each tool serves a necessary function without bloat or redundancy.

Completeness4/5

The scan lifecycle (initiate and fetch) is covered, and content search is provided. Minor gaps like listing past scans or canceling scans exist, but these are workaroundable.