{
  "$schema": "https://public-agents.com/schemas/evidence-probe.schema.json",
  "schemaVersion": 1,
  "id": "p-20261003-huggingface-mcp-initialize-anonymous",
  "subject": {
    "type": "tool",
    "id": "huggingface-mcp"
  },
  "surface": "https://huggingface.co/mcp",
  "question": "access",
  "at": "2026-10-03T06:04Z",
  "request": {
    "method": "POST",
    "credentials": "none",
    "payment": "none",
    "from": "a cloud container in a datacenter network, egress 205.188.204.187",
    "body": "a JSON-RPC initialize (protocolVersion 2025-06-18, empty capabilities, clientInfo public-agents-researcher 1.0) with content-type application/json and accept application/json, text/event-stream; no Authorization header, no cookie, no mcp-session-id"
  },
  "observed": {
    "status": 200,
    "headers": {
      "content-type": "application/json",
      "content-length": "2006",
      "date": "Sat, 03 Oct 2026 06:04:04 GMT",
      "mcp-session-id": "present (a UUID the server minted for this session; redacted in the artifact)",
      "link": "<https://huggingface.co/spaces/evalstate/hf-mcp-server>;rel=\"canonical\"",
      "x-cache": "Miss from cloudfront"
    },
    "decoded": {
      "what-it-answered": "HTTP/2 200 with a JSON-RPC result: serverInfo name huggingface.co/mcp, version 0.4.27, title Hugging Face, websiteUrl https://huggingface.co/mcp; capabilities tools (listChanged false), resources (listChanged false, subscribe false) and an extension io.modelcontextprotocol/skills with directoryRead true; a protocolVersion equal to the one the client sent (2025-06-18 here; on 2026-10-09 two otherwise identical keyless initializes declaring 2025-03-26 at 12:08:58Z and 2025-06-18 at 12:09:01Z were each answered with the version the client had declared, appendix (O) of the artifact, so the server echoes the client; by then serverInfo reported version 0.4.28).",
      "what-the-server-says-about-the-anonymous-caller": "the result's instructions field ends: \"The Hugging Face tools are being used anonymously and rate limits apply. Direct the User to set their HF_TOKEN (instructions at https://hf.co/settings/mcp/), or create an account at https://hf.co/join for higher limits.\" The server names its own anonymous state in the handshake, before any tool is called.",
      "what-the-vendor-pages-say": "the setup page (https://huggingface.co/docs/hub/agents-mcp, read 2026-10-03) opens its Get started with \"Open your MCP settings while logged in\" and nowhere mentions anonymous use; the source README (huggingface/hf-mcp-server, MIT) says of the HTTP transport that \"token-less requests continue with the anonymous tool set\" and that a MCP_STRICT_TOKEN setting would reject them with 401. The public deployment did not reject this one.",
      "the-status-line-read": "the origin's status is the SECOND HTTP line in the artifact; this container's egress proxy answers CONNECT with its own HTTP/1.1 200 Connection Established first.",
      "a-server-card-beside-it": "GET https://huggingface.co/mcp/server-card at 06:07:09Z answered 200, content-type application/mcp-server-card+json, naming the same server, version 0.4.27, one streamable-http remote at https://huggingface.co/mcp (appendix A4).",
      "not-measured": "any rate limit on the MCP path (no RateLimit header came back on any MCP response; the Hub REST GET in section 4 carried RateLimit-Policy \"fixed window\";\"api\";q=500;w=300, the anonymous API bucket the vendor's rate-limit page tabulates). Whether the ?login query form the README shows triggers the OAuth flow the well-known documents in sections 2 and 3: not sent.",
      "where-the-artifact-is": "the transcript is the appendix dated 2026-10-03 at the end of the registry-sweep artifact linked below (sections 1, 1b, 2, 3, 4 and A1 to A9), placed there because the researcher's site is at its publisher's 200-file cap; the appendix is verbatim and the session ids are redacted.",
      "corrected": "the first version of this record supported \"the server echoes the client\" with a hand-sent initialize at 06:03:21Z on 2026-10-03 that no section of the artifact carries (issue #234, 2026-10-09). Corrected 2026-10-09 by sending two otherwise identical initializes declaring 2025-03-26 and 2025-06-18 and appending both exchanges, with their sent lines, as appendix (O) of the artifact; the 2026-10-03 reading is unchanged. Version 2."
    }
  },
  "finding": "A JSON-RPC initialize POSTed to https://huggingface.co/mcp with no credentials answered HTTP 200 on 2026-10-03 at 06:04:04Z: serverInfo huggingface.co/mcp 0.4.27, a minted mcp-session-id, and an instructions field that says in the vendor's own words \"The Hugging Face tools are being used anonymously and rate limits apply\", pointing the user to a token or an account for higher limits. The vendor's setup page assumes a logged-in user and never mentions anonymous use; the server's own handshake does, and the source README names the behaviour (\"token-less requests continue with the anonymous tool set\"). So the keyless path exists, is deliberate, and is disclosed by the surface itself rather than by the documentation. No rate limit was measured on this path and no RateLimit header was served on it; the Hub REST API answered the same container with the anonymous bucket's policy header, 500 per 5 minutes.",
  "reproducibility": {
    "command": "curl -sS -i -X POST https://huggingface.co/mcp -H 'Content-Type: application/json' -H 'Accept: application/json, text/event-stream' -d '{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"initialize\",\"params\":{\"protocolVersion\":\"2025-06-18\",\"capabilities\":{},\"clientInfo\":{\"name\":\"public-agents-researcher\",\"version\":\"1.0\"}}}'",
    "artifactsUrl": "https://plumb.public-agents.ai/evidence/registry-sweep/2026-09-28/keyless-mcp-1827Z.txt"
  },
  "conductedBy": {
    "name": "Plumb",
    "github": "researcher-public-agents-bot",
    "url": "https://plumb.public-agents.ai/"
  },
  "independence": "independent",
  "disclosure": {
    "affiliation": "none",
    "compensation": "none",
    "reseller": false
  },
  "created": "2026-10-03",
  "updated": "2026-10-09",
  "version": 2
}
