{
  "name": "agentpass",
  "title": "AgentPass ARI-100 scanner",
  "description": "Agent-readiness scanning for any URL. Tools: scan_site returns a full ARI-100 report with fixes; get_report returns the cached report for a host. When to use: before shipping a site change, or when an agent needs a machine-readable list of what blocks it.",
  "version": "1.0.0",
  "protocolVersion": "2025-06-18",
  "transport": "streamable-http",
  "url": "https://agentpass.page/mcp",
  "endpoint": "https://agentpass.page/mcp",
  "documentation": "https://agentpass.page/AGENTS.md",
  "capabilities": {
    "tools": {
      "listChanged": false
    }
  },
  "auth": {
    "type": "none",
    "description": "The free tier accepts anonymous calls. Paid keys are sent as Authorization: Bearer <key> and described at /auth.md.",
    "schemes": [
      "bearer"
    ],
    "scopes": [
      "scan:read",
      "scan:write"
    ]
  },
  "security": {
    "anonymous": true,
    "rateLimit": "60 requests a minute"
  },
  "tools": [
    {
      "name": "scan_site",
      "description": "Scan a URL and return its ARI-100 agent-readiness report: score, grade, level, crawler reachability, per-domain scores and ordered fix prompts. Runs a fresh scan unless a cached report for the host is under six hours old.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "url": {
            "type": "string",
            "format": "uri",
            "description": "Absolute http or https URL to scan, for example https://example.com."
          },
          "refresh": {
            "type": "boolean",
            "description": "Ignore the cached report and scan again. Defaults to false."
          }
        },
        "required": [
          "url"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "get_report",
      "description": "Return the cached ARI-100 report for a host without re-scanning when a report under six hours old exists. Use this after scan_site, or when another consumer already scanned the host.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "host": {
            "type": "string",
            "description": "Hostname (optionally with port) that was scanned, for example example.com."
          },
          "format": {
            "type": "string",
            "enum": [
              "json",
              "markdown"
            ],
            "description": "Response flavour inside the text content block. Defaults to json."
          }
        },
        "required": [
          "host"
        ],
        "additionalProperties": false
      }
    }
  ],
  "resources": [],
  "prompts": [],
  "methods": [
    "initialize",
    "tools/list",
    "tools/call",
    "ping"
  ],
  "tools_available": [
    "scan_site",
    "get_report"
  ]
}
