{
  "service": "mcpscores",
  "status": "ok",
  "schema_version": "2026-08-11",
  "methodology_version": "1.0",
  "checks": {
    "d1": true,
    "r2": true,
    "rate_limiter": true
  },
  "archive": {
    "since": "2026-08-11",
    "until": "2026-08-12",
    "span_days": 2,
    "observation_days": 2,
    "statement": "The observation archive spans 2 calendar day(s) (2026-08-11 through 2026-08-12), with observations recorded on 2 day(s).",
    "listings_with_stored_records": 4,
    "latest_stored_record_date": "2026-08-11",
    "note": "Stored engine records are archive material. A stored record is not a published rating; see /api/top for published ratings and the publication floor."
  },
  "endpoints": [
    "/",
    "/ratings",
    "/insights",
    "/methodology",
    "/badge",
    "/api",
    "/about",
    "/score/{id}",
    "/badge/{id}.svg",
    "/api/score",
    "/api/top",
    "/api/field",
    "/mcp",
    "/llms.txt",
    "/server.json"
  ],
  "rate_limit": {
    "enforced": true,
    "mechanism": "Durable Object fixed-window counter, one object per client address, globally consistent for that address",
    "keyed_on": "client address (cf-connecting-ip); User-Agent is not part of the key",
    "tiers": {
      "site": {
        "limit": 120,
        "window_seconds": 60,
        "applies_to": "HTML pages, scorecards, badges, sitemaps, vendor assets"
      },
      "api": {
        "limit": 60,
        "window_seconds": 60,
        "applies_to": "/api/score, /api/top, /api/field, POST /mcp"
      }
    },
    "exempt": [
      "/health",
      "/.well-known/mcp-registry-auth",
      "/robots.txt",
      "/favicon.svg"
    ],
    "on_limit": "HTTP 429 with Retry-After and RateLimit-* headers; /mcp answers 429 with a JSON-RPC 2.0 error envelope",
    "on_limiter_failure": "fail open — the request is served and no RateLimit-* header is attached, so the service never claims a control it did not apply"
  },
  "generated_at": "2026-08-12T07:02:48.267Z"
}