Agent Ready
Scan any URL for AI agent readability — Vercel Spec, llmstxt.org, and agent-protocol manifests.
使うべきか
品質と安全性
ツール定義とプロトコルへの準拠に関する自動分析に基づいています。
コンテキストコスト
これは、サーバーのツールがモデルのコンテキストに読み込まれるたびに消費されるおおよそのトークン数です。数が多いほど、ほかのタスクに使える注意が減ります。
インストール
ワンクリックインストール
これを `claude_desktop_config.json` ファイルに追加してください:
{
"mcpServers": {
"agent-ready-mcp": {
"command": "npx",
"args": [
"agent-ready-mcp"
]
}
}
}実行可能なパッケージ
0.7.7stdioリモートエンドポイント
https://agent-ready.dev/api/v1/mcpstreamable-httpできること
ツール一覧
ツール(3)
🟢scan_site(url, pageLimit)
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.
入力スキーマ
{
"type": "object",
"properties": {
"url": {
"type": "string",
"maxLength": 2000,
"format": "uri",
"description": "Full URL of the site to scan, e.g. https://example.com. Must be a public http(s) address."
},
"pageLimit": {
"description": "Maximum number of pages to crawl. Defaults to your tier's per-scan page limit when omitted.",
"type": "integer",
"minimum": 1,
"maximum": 2000
}
},
"required": [
"url"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}出力スキーマ
{
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The scan id."
},
"status": {
"type": "string",
"enum": [
"running",
"completed",
"failed"
],
"description": "Scan status: running, completed, or failed."
},
"shareUrl": {
"description": "Path to the shareable report (/scan/<id>).",
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"rootUrl": {
"description": "The scanned site URL.",
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"vercelScore": {
"description": "Score against the Vercel Agent Readability Spec (0–100); null while running.",
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
"vercelRating": {
"description": "Rating band for the Vercel score.",
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"llmstxtScore": {
"description": "llms.txt score (0–100).",
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
"accessibilityScore": {
"description": "Accessibility / layout-stability sub-score (0–100) over the homepage WCAG checks; null when none ran. Separate from the Vercel score.",
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
"protocolResults": {
"description": "Agent-protocol checks (C-series) that ran — only for endpoints the site actually exposes.",
"anyOf": [
{
"type": "array",
"items": {
"type": "object",
"properties": {
"checkId": {
"type": "string"
},
"name": {
"type": "string"
},
"status": {
"type": "string",
"enum": [
"pass",
"fail",
"warn",
"error"
]
},
"message": {
"type": "string"
},
"howToFix": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
}
},
"required": [
"checkId",
"name",
"status",
"message",
"howToFix"
],
"additionalProperties": false
}
},
{
"type": "null"
}
]
},
"accessibilityChecks": {
"description": "Accessibility / layout-stability checks (A-series) run over the homepage.",
"anyOf": [
{
"type": "array",
"items": {
"type": "object",
"properties": {
"checkId": {
"type": "string"
},
"name": {
"type": "string"
},
"status": {
"type": "string",
"enum": [
"pass",
"fail",
"warn",
"error"
]
},
"message": {
"type": "string"
},
"howToFix": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
}
},
"required": [
"checkId",
"name",
"status",
"message",
"howToFix"
],
"additionalProperties": false
}
},
{
"type": "null"
}
]
},
"pagesScanned": {
"description": "Number of pages scanned.",
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
"pagesDiscovered": {
"description": "Number of pages discovered.",
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
"pollUrl": {
"description": "Poll URL while the scan is still running.",
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
}
},
"required": [
"id",
"status"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢get_scan(id)
Fetches a completed or in-progress scan by its id. Only scans owned by the authenticated API key's user are returned.
入力スキーマ
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 100,
"description": "The scan id returned by scan_site (also the share token in a /scan/<id> URL)."
}
},
"required": [
"id"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}出力スキーマ
{
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The scan id."
},
"status": {
"type": "string",
"enum": [
"running",
"completed",
"failed"
],
"description": "Scan status: running, completed, or failed."
},
"shareUrl": {
"description": "Path to the shareable report (/scan/<id>).",
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"rootUrl": {
"description": "The scanned site URL.",
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"vercelScore": {
"description": "Score against the Vercel Agent Readability Spec (0–100); null while running.",
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
"vercelRating": {
"description": "Rating band for the Vercel score.",
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"llmstxtScore": {
"description": "llms.txt score (0–100).",
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
"accessibilityScore": {
"description": "Accessibility / layout-stability sub-score (0–100) over the homepage WCAG checks; null when none ran. Separate from the Vercel score.",
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
"protocolResults": {
"description": "Agent-protocol checks (C-series) that ran — only for endpoints the site actually exposes.",
"anyOf": [
{
"type": "array",
"items": {
"type": "object",
"properties": {
"checkId": {
"type": "string"
},
"name": {
"type": "string"
},
"status": {
"type": "string",
"enum": [
"pass",
"fail",
"warn",
"error"
]
},
"message": {
"type": "string"
},
"howToFix": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
}
},
"required": [
"checkId",
"name",
"status",
"message",
"howToFix"
],
"additionalProperties": false
}
},
{
"type": "null"
}
]
},
"accessibilityChecks": {
"description": "Accessibility / layout-stability checks (A-series) run over the homepage.",
"anyOf": [
{
"type": "array",
"items": {
"type": "object",
"properties": {
"checkId": {
"type": "string"
},
"name": {
"type": "string"
},
"status": {
"type": "string",
"enum": [
"pass",
"fail",
"warn",
"error"
]
},
"message": {
"type": "string"
},
"howToFix": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
}
},
"required": [
"checkId",
"name",
"status",
"message",
"howToFix"
],
"additionalProperties": false
}
},
{
"type": "null"
}
]
},
"pagesScanned": {
"description": "Number of pages scanned.",
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
"pagesDiscovered": {
"description": "Number of pages discovered.",
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
"pollUrl": {
"description": "Poll URL while the scan is still running.",
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
}
},
"required": [
"id",
"status"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢ask(q, itemType, mode)
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.
入力スキーマ
{
"type": "object",
"properties": {
"q": {
"type": "string",
"minLength": 1,
"maxLength": 2000,
"description": "Natural-language question to search Agent Ready's docs, scoring methodology, check registry, and content library (explainers, comparisons, how-to guides, glossary)."
},
"itemType": {
"description": "Restrict results to a content type: methodology, checks, specs, llms-txt, check, page (explainers/guides/glossary), or any (default: all types).",
"type": "string",
"enum": [
"methodology",
"checks",
"specs",
"llms-txt",
"check",
"page",
"any"
]
},
"mode": {
"description": "\"list\" (default) returns matching items; \"summarize\" returns a synthesized answer.",
"type": "string",
"enum": [
"list",
"summarize"
]
}
},
"required": [
"q"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}出力スキーマ
{
"type": "object",
"properties": {
"results": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"description": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
}
},
"additionalProperties": {}
},
"description": "Matching result items (Schema.org-typed)."
},
"message": {
"description": "Extractive summary when mode is 'summarize'.",
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
}
},
"required": [
"results"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}コミュニティ
エビデンス