agent-ready-mcp 0.7.0 → 0.7.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -31298,7 +31298,11 @@ The llmstxt.org spec treats some properties as foundational and others as option
31298
31298
 
31299
31299
  ## How are JavaScript-rendered pages handled?
31300
31300
 
31301
- P23 detects pages where the static HTML response lacks data that only appears after client-side rendering \u2014 missing H1, empty body text, JSON-LD that injects after hydration. When P23 fires, the runner marks dependent checks (P10, P11, P12, P14) as \`unreliable\` and the scorer excludes them from both numerator and denominator. Without this, a single SPA architecture choice would compound into a 4-point score drop across unrelated checks.
31301
+ P23 detects pages where the static HTML response lacks data that only appears after client-side rendering \u2014 missing H1, empty body text, JSON-LD that injects after hydration. When P23 fires, the runner marks the dependent per-page checks (P12, P13, P14, P21) as \`unreliable\` and the scorer excludes them from both numerator and denominator. Without this, a single SPA architecture choice would compound into a multi-check score drop.
31302
+
31303
+ **Only what exists is scored.** Most A-checks are conditional \u2014 "if the page has images, they need alt text" \u2014 so on a page with no images, no tables and no media there is nothing to grade. Those results are marked \`notApplicable\` and excluded from both numerator and denominator. Scoring them as passes rewarded a site for what it lacked. Checks that state a prohibition (no positive tabindex, no timed meta refresh) or a document-level requirement (a title, a language, a main landmark) always count \u2014 for those, absence is a real verdict.
31304
+
31305
+ The same gate applies to the accessibility sub-score. Most A-series checks count elements and treat "found none" as a pass; on a client-rendered page the static DOM is a skeleton, so "found none" means "could not look". When P23 fails those checks are marked \`unreliable\` and dropped from the score; if every one is, the score is \`null\` rather than 0. The checks that read \`<head>\` or \`<html>\` (A9 viewport, A10 title, A13 lang, A17 meta refresh) stay trustworthy, because a JS-only shell still serves them.
31302
31306
 
31303
31307
  ## Where is the source for each check?
31304
31308
 
@@ -31407,7 +31411,7 @@ Discover-then-validate: when the relevant well-known endpoint returns 404, the c
31407
31411
  | C20 | AP2 payment protocol support |
31408
31412
  | C21 | ACP profile (/.well-known/acp.json) |
31409
31413
 
31410
- ## Accessibility checks (9)
31414
+ ## Accessibility checks (23)
31411
31415
 
31412
31416
  Run over the homepage DOM (v1). WCAG-grounded accessibility-tree signals \u2014 image text alternatives, form labels, control names \u2014 plus a static layout-stability (CLS) proxy. Scored into a separate \`accessibilityScore\`, a distinct suite from the 69 checks above: accessibility is WCAG, not the Vercel Agent Readability Spec, so it never moves the Vercel score.
31413
31417
 
@@ -31422,10 +31426,23 @@ Run over the homepage DOM (v1). WCAG-grounded accessibility-tree signals \u2014
31422
31426
  | A7 | Heading hierarchy is well-formed |
31423
31427
  | A8 | No positive tabindex |
31424
31428
  | A9 | Pinch-zoom is not disabled |
31425
- `;
31429
+ | A10 | Page has a title |
31430
+ | A11 | Accessible name contains the visible label |
31431
+ | A12 | Content is reachable past the chrome |
31432
+ | A13 | Language tag is valid |
31433
+ | A14 | Hidden elements are not focusable |
31434
+ | A15 | Interactive controls are not nested |
31435
+ | A16 | Headings are not empty |
31436
+ | A17 | No timed meta refresh |
31437
+ | A18 | Autocomplete tokens are valid |
31438
+ | A19 | Tables declare their headers |
31439
+ | A20 | SVG images have a text alternative |
31440
+ | A21 | Media declares a captions track |
31441
+ | A22 | List structure is well-formed |
31442
+ | A23 | ARIA roles and attributes are valid |`;
31426
31443
  var LLMS_TXT = `# Agent Ready
31427
31444
 
31428
- > Agent Ready is a free tool that scores any website against the Vercel Agent Readability Spec, the llmstxt.org specification, and agent-protocol specs (MCP, A2A, agents.json). It runs 69 checks \u2014 plus a separate accessibility sub-score from 9 WCAG 2.2 / layout-stability checks \u2014 and provides actionable fix guidance for every failing check.
31445
+ > Agent Ready is a free tool that scores any website against the Vercel Agent Readability Spec, the llmstxt.org specification, and agent-protocol specs (MCP, A2A, agents.json). It runs 69 checks \u2014 plus a separate accessibility sub-score from 23 WCAG 2.2 / layout-stability checks \u2014 and provides actionable fix guidance for every failing check.
31429
31446
 
31430
31447
  This resource mirrors agent-ready.dev's own /llms.txt so MCP clients can introspect the same surface that ChatGPT, Perplexity, and other AI agents see when discovering Agent Ready as a tool.
31431
31448
 
@@ -31463,7 +31480,7 @@ Agent Ready's checks map to the specifications below. Each entry links to the ca
31463
31480
 
31464
31481
  ## Agent protocols
31465
31482
 
31466
- - **MCP Server Cards (SEP-1649)** \u2014 The Model Context Protocol discovery card at /.well-known/mcp.json \u2014 its presence (C1) and required fields (C2). Canonical: <https://github.com/modelcontextprotocol/modelcontextprotocol/issues/1649> Checks: C1, C2.
31483
+ - **MCP Server Cards (SEP-2127)** \u2014 The Model Context Protocol discovery card at /.well-known/mcp.json \u2014 its presence (C1) and required fields (C2). SEP-2127 (a server.json subset) superseded the earlier SEP-1649 proposal. Canonical: <https://github.com/modelcontextprotocol/modelcontextprotocol/pull/2127> Checks: C1, C2.
31467
31484
  - **OAuth Protected Resource Metadata (RFC 9728)** \u2014 Protected-resource metadata an MCP server advertises so agents can locate its authorization server. Canonical: <https://datatracker.ietf.org/doc/html/rfc9728> Checks: C3.
31468
31485
  - **A2A Protocol \u2014 Agent Cards** \u2014 The agent card at /.well-known/agent-card.json that lets agents discover and call other agents \u2014 existence with correct Content-Type (C4) and required fields (C5). Canonical: <https://a2a-protocol.org/v1.0.0/specification> Checks: C4, C5.
31469
31486
  - **Wildcard agents.json** _(pre-standard)_ \u2014 An OpenAPI extension declaring which existing REST endpoints agents should call. Pre-standard (v0.1.0). Canonical: <https://github.com/wild-card-ai/agents-json> Checks: C6.
@@ -31489,8 +31506,7 @@ Agent Ready's checks map to the specifications below. Each entry links to the ca
31489
31506
 
31490
31507
  ## Accessibility
31491
31508
 
31492
- - **WCAG 2.2 + layout stability** \u2014 The accessibility tree \u2014 image text alternatives, form labels, control names, resolved ARIA references, named iframes, a clean heading outline \u2014 is what assistive tech and AI agents parse to act on a page; explicit media dimensions and enabled zoom keep it stable and usable (with a static CLS proxy). Scored as a separate accessibilityScore, not part of the Vercel score. Canonical: <https://www.w3.org/TR/WCAG22/> Checks: A1\u2013A9.
31493
- `;
31509
+ - **WCAG 2.2 + layout stability** \u2014 The accessibility tree \u2014 image text alternatives, form labels, control names, resolved ARIA references, named iframes, a page title, a valid language tag, a main landmark, accessible names that match their visible text, valid ARIA, well-formed lists and tables, and autofill tokens an agent can act on \u2014 is what assistive tech and AI agents parse to act on a page; explicit media dimensions and enabled zoom keep it stable and usable (with a static CLS proxy). Scored as a separate accessibilityScore, not part of the Vercel score. Canonical: <https://www.w3.org/TR/WCAG22/> Checks: A1\u2013A23.`;
31494
31510
 
31495
31511
  // src/resources.ts
31496
31512
  function registerResources(server) {
@@ -31844,7 +31860,7 @@ var validateStructuredDataInputShape = {
31844
31860
  // src/server.ts
31845
31861
  var SERVER_INFO = {
31846
31862
  name: "agent-ready",
31847
- version: "0.7.0"
31863
+ version: "0.7.2"
31848
31864
  };
31849
31865
  function createMcpServer(config2) {
31850
31866
  const server = new McpServer(SERVER_INFO);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agent-ready-mcp",
3
- "version": "0.7.0",
3
+ "version": "0.7.2",
4
4
  "mcpName": "io.github.mlava/agent-ready-mcp",
5
5
  "description": "MCP server for Agent Ready — scan any URL for AI-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). 69 checks with per-check fix guidance.",
6
6
  "license": "MIT",