agent-readiness

Scores any public website on how usable it is by AI agents, with per-check evidence.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
86%
Naming quality
88%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~1,645Tokens (tool definitions)
~2.5 KBTypical response size
Moderate attention impact (1.29% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "agent-readiness": {
      "url": "https://webmcp-tool.com/api/mcp"
    }
  }
}

Remote endpoints

https://webmcp-tool.com/api/mcpstreamable-http

What it can do

Tool inventory

Tools (5)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢score_site(url)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "description": "Public http(s) address, for example example.com"
    }
  },
  "required": [
    "url"
  ]
}

Output Schema

{
  "type": "object",
  "properties": {
    "host": {
      "type": "string"
    },
    "url": {
      "type": "string"
    },
    "score": {
      "type": "integer",
      "minimum": 0,
      "maximum": 100
    },
    "grade": {
      "type": "string",
      "enum": [
        "A",
        "B",
        "C",
        "D",
        "F"
      ]
    },
    "fetchedAt": {
      "type": "string",
      "description": "ISO 8601"
    },
    "cached": {
      "type": "boolean",
      "description": "True when this request reused a report already in the server cache."
    },
    "axes": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "earned": {
            "type": "number"
          },
          "available": {
            "type": "number"
          },
          "question": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "name",
          "earned",
          "available",
          "question"
        ]
      }
    },
    "pillars": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "axis": {
            "type": "string"
          },
          "earned": {
            "type": "number"
          },
          "available": {
            "type": "number"
          }
        },
        "required": [
          "id",
          "name",
          "axis",
          "earned",
          "available"
        ]
      }
    },
    "fixFirst": {
      "type": "array",
      "maxItems": 5,
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "finding": {
            "type": "string"
          },
          "fix": {
            "type": "string"
          },
          "points": {
            "type": "number"
          }
        },
        "required": [
          "id",
          "title",
          "finding",
          "fix",
          "points"
        ]
      }
    },
    "excluded": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "reason": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "title",
          "reason"
        ]
      }
    },
    "reportUrl": {
      "type": "string",
      "format": "uri"
    },
    "methodology": {
      "type": "string",
      "format": "uri"
    }
  },
  "required": [
    "host",
    "url",
    "score",
    "grade",
    "fetchedAt",
    "cached",
    "axes",
    "pillars",
    "fixFirst",
    "excluded",
    "reportUrl",
    "methodology"
  ]
}
🟢explain_check(checkId)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "checkId": {
      "type": "string",
      "description": "Check identifier, for example content-without-javascript"
    }
  },
  "required": [
    "checkId"
  ]
}

Output Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string"
    },
    "title": {
      "type": "string"
    },
    "pillar": {
      "type": "string"
    },
    "points": {
      "type": "number"
    },
    "question": {
      "type": "string"
    },
    "why": {
      "type": "string"
    },
    "fix": {
      "type": "string"
    },
    "snippet": {
      "type": "string"
    },
    "conditional": {
      "type": "boolean"
    },
    "docs": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "label": {
            "type": "string"
          },
          "url": {
            "type": "string",
            "format": "uri"
          }
        },
        "required": [
          "label",
          "url"
        ]
      }
    }
  },
  "required": [
    "id",
    "title",
    "points",
    "question",
    "why",
    "fix",
    "conditional"
  ]
}
🟢list_checks

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.

Input Schema

{
  "type": "object",
  "properties": {}
}

Output Schema

{
  "type": "object",
  "properties": {
    "pillars": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "pillar": {
            "type": "string"
          },
          "axis": {
            "type": "string"
          },
          "points": {
            "type": "number"
          },
          "checks": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string"
                },
                "title": {
                  "type": "string"
                },
                "points": {
                  "type": "number"
                },
                "question": {
                  "type": "string"
                }
              },
              "required": [
                "id",
                "title",
                "points",
                "question"
              ]
            }
          }
        },
        "required": [
          "pillar",
          "axis",
          "points",
          "checks"
        ]
      }
    }
  },
  "required": [
    "pillars"
  ]
}
🟢get_badge_embed(url)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "description": "Public http(s) address, for example example.com"
    }
  },
  "required": [
    "url"
  ]
}

Output Schema

{
  "type": "object",
  "properties": {
    "eligible": {
      "type": "boolean"
    },
    "host": {
      "type": "string"
    },
    "score": {
      "type": "integer",
      "minimum": 0,
      "maximum": 100
    },
    "grade": {
      "type": "string"
    },
    "reason": {
      "type": "string"
    },
    "fixFirst": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "title": {
            "type": "string"
          },
          "fix": {
            "type": "string"
          }
        },
        "required": [
          "title",
          "fix"
        ]
      }
    },
    "tier": {
      "type": "string"
    },
    "html": {
      "type": "string"
    },
    "note": {
      "type": "string"
    },
    "badgePage": {
      "type": "string",
      "format": "uri"
    },
    "reportUrl": {
      "type": "string",
      "format": "uri"
    },
    "watchIt": {
      "type": "string"
    }
  },
  "required": [
    "eligible",
    "host",
    "score",
    "grade"
  ],
  "if": {
    "properties": {
      "eligible": {
        "const": true
      }
    }
  },
  "then": {
    "required": [
      "tier",
      "html",
      "note",
      "badgePage"
    ]
  },
  "else": {
    "required": [
      "reason",
      "fixFirst",
      "reportUrl"
    ]
  }
}
🟡watch_site(url, email, sendConfirmationEmail)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "description": "Public http(s) address or bare host, for example example.com"
    },
    "email": {
      "type": "string",
      "description": "Address that will receive the confirmation and the alerts"
    },
    "sendConfirmationEmail": {
      "type": "boolean",
      "const": true,
      "description": "True only after the user explicitly requests a monitoring confirmation email."
    }
  },
  "required": [
    "url",
    "email",
    "sendConfirmationEmail"
  ]
}

Output Schema

{
  "type": "object",
  "properties": {
    "status": {
      "type": "string",
      "enum": [
        "confirmation-sent"
      ]
    },
    "email": {
      "type": "string"
    },
    "host": {
      "type": "string"
    },
    "message": {
      "type": "string"
    }
  },
  "required": [
    "status",
    "email",
    "host",
    "message"
  ]
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded5 tools
verifiedversion not recorded5 tools
verifiedversion not recorded5 tools
verifiedversion not recorded5 tools
verifiedversion not recorded5 tools
verifiedversion not recorded5 tools