{
 "report": "mcp-endpoint-callers-2026-w36",
 "kind": "mcp-callers",
 "observed_as_of": "2026-09-07T02:48:50Z",
 "window": {
  "start": "2026-09-05T12:07:34+00:00",
  "end": "2026-09-06T12:07:34+00:00",
  "hours": 24.0
 },
 "what": "Every number in /blog/mcp-endpoint-callers-2026-w36, with the window it was measured over and the instant it was computed. Derived from this host's own request log; our own requests excluded.",
 "mirror": {
  "rows_in_window_all_surfaces": 23736,
  "rpc_rows_in_window": 7325,
  "newest_row": "2026-09-06T12:07:34+00:00",
  "lag_minutes": 0.0,
  "self_rows_excluded": "every row with is_self = 1, before counting",
  "self_fetch_suspect_rows_dropped": 0,
  "direction_of_error": "down — the mirror can lag the edge, so every count is a floor"
 },
 "ruler": {
  "client": "one (address hash, user-agent) pair, per rolling window",
  "operator": "client keys folded to a party by review.operators(), the same fold the published operator count uses",
  "endpoint_normalisation": "/c/<channel>/mcp/doctor and /mcp/doctor are ONE endpoint reached through two placements",
  "verdicts": "proven caller / possible / only-looked, disjoint, one per client",
  "computed_by": "playbooks/tool_use_24h.py measure(), imported — not a second copy",
  "rules_version": "review-5 2026-09-05 (surgeon, party-rulers-connectedness-1788613592): RULE_G gains require_connectedness=True — a document whose referer is neither empty nor a document this key already fetched is not movement, and an as",
  "rpc_method_coverage": {
   "rpc_method_recorded_from": "2026-09-02T03:05:48+00:00",
   "rpc_lane_rows": 7325,
   "rpc_lane_rows_with_an_attested_post": 3654,
   "rpc_lane_rows_with_an_rpc_method": 3632,
   "coverage_share": 0.994,
   "denominator": "rpc-lane rows whose HTTP verb is an attested POST",
   "why_it_matters": "rpc_method was added 2026-09-02, so most of a 24h window predates it and those rows keep NULL. A NULL row is judged by response fingerprint exactly as it was before, so this share is not a hole in the measurement — it is how much of the window is decided by PROOF rather than by inference. It climbs to 1.0 on its own over the 24h after the deploy and nothing is backfilled, exactly as `method` did on 2026-09-01."
  }
 },
 "headline": {
  "clients_touching_an_rpc_endpoint": 330,
  "operators_touching_an_rpc_endpoint": 162,
  "rpc_rows": 7325,
  "proven_callers": 23,
  "proven_caller_operators": 8,
  "proven_call_rows": 49,
  "possible_callers": 4,
  "undetermined_rows": 28,
  "only_looked_clients": 303,
  "read_only_clients": 214,
  "clients_on_the_whole_host": 3527,
  "share_of_host_clients_pct": 9.4
 },
 "funnel": [
  {
   "step": "touched an RPC endpoint at all",
   "clients": 330,
   "share_pct": 100.0,
   "what_it_means": "any request to /mcp*, /a2a* or a channel copy of one, including a plain GET of the endpoint"
  },
  {
   "step": "sent any POST",
   "clients": 116,
   "share_pct": 35.2,
   "what_it_means": "a body was sent at all; everything above this line is a read"
  },
  {
   "step": "sent a named JSON-RPC method",
   "clients": 116,
   "share_pct": 35.2,
   "what_it_means": "the POST body carried a `method`, recorded at the edge since 2026-09-02T03:05:48+00:00"
  },
  {
   "step": "sent initialize",
   "clients": 82,
   "share_pct": 24.8,
   "what_it_means": "opened an MCP session — the handshake, not a use"
  },
  {
   "step": "asked what tools exist (tools/list)",
   "clients": 32,
   "share_pct": 9.7,
   "what_it_means": "read the tool catalogue; still a look"
  },
  {
   "step": "PROVED a call",
   "clients": 23,
   "share_pct": 7.0,
   "what_it_means": "at least one row whose method is an invoke verb of that row's lane: SendMessage, message/send, tools/call"
  }
 ],
 "methods": [
  {
   "method": "(not recorded)",
   "rows": 3693,
   "clients": 227,
   "counts_as": "not recorded"
  },
  {
   "method": "initialize",
   "rows": 2405,
   "clients": 82,
   "counts_as": "look"
  },
  {
   "method": "notifications/initialized",
   "rows": 596,
   "clients": 20,
   "counts_as": "look"
  },
  {
   "method": "tools/list",
   "rows": 300,
   "clients": 32,
   "counts_as": "look"
  },
  {
   "method": "server/discover",
   "rows": 142,
   "clients": 14,
   "counts_as": "look"
  },
  {
   "method": "resources/list",
   "rows": 56,
   "clients": 12,
   "counts_as": "look"
  },
  {
   "method": "prompts/list",
   "rows": 56,
   "clients": 10,
   "counts_as": "look"
  },
  {
   "method": "tools/call",
   "rows": 43,
   "clients": 20,
   "counts_as": "invoke"
  },
  {
   "method": "resources/templates/list",
   "rows": 17,
   "clients": 6,
   "counts_as": "look"
  },
  {
   "method": "GetTask",
   "rows": 9,
   "clients": 2,
   "counts_as": "look"
  },
  {
   "method": "SendMessage",
   "rows": 6,
   "clients": 3,
   "counts_as": "invoke"
  },
  {
   "method": "this/method/does/not/exist",
   "rows": 2,
   "clients": 1,
   "counts_as": "look"
  }
 ],
 "tools_called": [
  {
   "tool": "score_card",
   "calls": 36,
   "clients": 16
  },
  {
   "tool": "whoami",
   "calls": 3,
   "clients": 2
  },
  {
   "tool": "lookup_prefix",
   "calls": 1,
   "clients": 1
  },
  {
   "tool": "generate_robots_txt",
   "calls": 1,
   "clients": 1
  },
  {
   "tool": "__verifymcp_auth_probe_38906b5ef5efb0b9__",
   "calls": 1,
   "clients": 1
  },
  {
   "tool": "tools_list_report",
   "calls": 1,
   "clients": 1
  }
 ],
 "endpoints": [
  {
   "endpoint": "/mcp",
   "rows": 1139,
   "clients": 105,
   "post_rows": 744,
   "get_rows": 395,
   "kind": "json-rpc endpoint"
  },
  {
   "endpoint": "/mcp/doctor",
   "rows": 682,
   "clients": 81,
   "post_rows": 592,
   "get_rows": 90,
   "kind": "json-rpc endpoint"
  },
  {
   "endpoint": "/mcp/netcheck",
   "rows": 618,
   "clients": 82,
   "post_rows": 571,
   "get_rows": 47,
   "kind": "json-rpc endpoint"
  },
  {
   "endpoint": "/mcp/lint",
   "rows": 608,
   "clients": 92,
   "post_rows": 567,
   "get_rows": 41,
   "kind": "json-rpc endpoint"
  },
  {
   "endpoint": "/mcp/triage",
   "rows": 608,
   "clients": 79,
   "post_rows": 558,
   "get_rows": 50,
   "kind": "json-rpc endpoint"
  },
  {
   "endpoint": "/mcp/robots",
   "rows": 600,
   "clients": 81,
   "post_rows": 556,
   "get_rows": 44,
   "kind": "json-rpc endpoint"
  },
  {
   "endpoint": "/a2a",
   "rows": 469,
   "clients": 43,
   "post_rows": 8,
   "get_rows": 461,
   "kind": "json-rpc endpoint"
  },
  {
   "endpoint": "/a2a/robots",
   "rows": 361,
   "clients": 65,
   "post_rows": 1,
   "get_rows": 360,
   "kind": "json-rpc endpoint"
  },
  {
   "endpoint": "/a2a/netcheck",
   "rows": 355,
   "clients": 59,
   "post_rows": 1,
   "get_rows": 354,
   "kind": "json-rpc endpoint"
  },
  {
   "endpoint": "/a2a/lint",
   "rows": 355,
   "clients": 59,
   "post_rows": 2,
   "get_rows": 353,
   "kind": "json-rpc endpoint"
  },
  {
   "endpoint": "/a2a/triage",
   "rows": 354,
   "clients": 57,
   "post_rows": 1,
   "get_rows": 353,
   "kind": "json-rpc endpoint"
  },
  {
   "endpoint": "/a2a/discovery",
   "rows": 353,
   "clients": 56,
   "post_rows": 1,
   "get_rows": 352,
   "kind": "json-rpc endpoint"
  },
  {
   "endpoint": "/a2a/doctor",
   "rows": 351,
   "clients": 56,
   "post_rows": 1,
   "get_rows": 350,
   "kind": "json-rpc endpoint"
  },
  {
   "endpoint": "/a2a/score",
   "rows": 349,
   "clients": 54,
   "post_rows": 1,
   "get_rows": 348,
   "kind": "json-rpc endpoint"
  },
  {
   "endpoint": "/mcp/markdown",
   "rows": 56,
   "clients": 26,
   "post_rows": 49,
   "get_rows": 7,
   "kind": "json-rpc endpoint"
  },
  {
   "endpoint": "/mcp/triage/.well-known/mcp",
   "rows": 4,
   "clients": 3,
   "post_rows": 0,
   "get_rows": 4,
   "kind": "discovery document asked for beside an endpoint"
  },
  {
   "endpoint": "/mcp/doctor/.well-known/mcp",
   "rows": 4,
   "clients": 3,
   "post_rows": 0,
   "get_rows": 4,
   "kind": "discovery document asked for beside an endpoint"
  },
  {
   "endpoint": "/mcp/doctor/.well-known/oauth-authorization-server",
   "rows": 4,
   "clients": 2,
   "post_rows": 0,
   "get_rows": 4,
   "kind": "discovery document asked for beside an endpoint"
  },
  {
   "endpoint": "/mcp/doctor/.well-known/oauth-protected-resource",
   "rows": 4,
   "clients": 2,
   "post_rows": 0,
   "get_rows": 4,
   "kind": "discovery document asked for beside an endpoint"
  },
  {
   "endpoint": "/mcp/.well-known/oauth-authorization-server",
   "rows": 4,
   "clients": 2,
   "post_rows": 0,
   "get_rows": 4,
   "kind": "discovery document asked for beside an endpoint"
  },
  {
   "endpoint": "/mcp/.well-known/oauth-protected-resource",
   "rows": 4,
   "clients": 2,
   "post_rows": 0,
   "get_rows": 4,
   "kind": "discovery document asked for beside an endpoint"
  },
  {
   "endpoint": "/mcp/.well-known/mcp",
   "rows": 4,
   "clients": 2,
   "post_rows": 0,
   "get_rows": 4,
   "kind": "discovery document asked for beside an endpoint"
  },
  {
   "endpoint": "/mcp/triage/.well-known/oauth-authorization-server",
   "rows": 4,
   "clients": 2,
   "post_rows": 0,
   "get_rows": 4,
   "kind": "discovery document asked for beside an endpoint"
  },
  {
   "endpoint": "/mcp/netcheck/.well-known/mcp",
   "rows": 3,
   "clients": 3,
   "post_rows": 0,
   "get_rows": 3,
   "kind": "discovery document asked for beside an endpoint"
  },
  {
   "endpoint": "/mcp/triage/.well-known/oauth-protected-resource",
   "rows": 3,
   "clients": 2,
   "post_rows": 0,
   "get_rows": 3,
   "kind": "discovery document asked for beside an endpoint"
  },
  {
   "endpoint": "/mcp/lint/.well-known/oauth-authorization-server",
   "rows": 3,
   "clients": 2,
   "post_rows": 0,
   "get_rows": 3,
   "kind": "discovery document asked for beside an endpoint"
  },
  {
   "endpoint": "/mcp/lint/.well-known/oauth-protected-resource",
   "rows": 3,
   "clients": 2,
   "post_rows": 0,
   "get_rows": 3,
   "kind": "discovery document asked for beside an endpoint"
  },
  {
   "endpoint": "/mcp/netcheck/.well-known/oauth-authorization-server",
   "rows": 2,
   "clients": 2,
   "post_rows": 0,
   "get_rows": 2,
   "kind": "discovery document asked for beside an endpoint"
  },
  {
   "endpoint": "/mcp/netcheck/.well-known/oauth-protected-resource",
   "rows": 2,
   "clients": 2,
   "post_rows": 0,
   "get_rows": 2,
   "kind": "discovery document asked for beside an endpoint"
  },
  {
   "endpoint": "/mcp/markdown/.well-known/oauth-authorization-server",
   "rows": 2,
   "clients": 2,
   "post_rows": 0,
   "get_rows": 2,
   "kind": "discovery document asked for beside an endpoint"
  },
  {
   "endpoint": "/mcp/markdown/.well-known/oauth-protected-resource",
   "rows": 2,
   "clients": 2,
   "post_rows": 0,
   "get_rows": 2,
   "kind": "discovery document asked for beside an endpoint"
  },
  {
   "endpoint": "/mcp/markdown/.well-known/mcp",
   "rows": 2,
   "clients": 2,
   "post_rows": 0,
   "get_rows": 2,
   "kind": "discovery document asked for beside an endpoint"
  },
  {
   "endpoint": "/mcp/lint/.well-known/mcp",
   "rows": 2,
   "clients": 2,
   "post_rows": 0,
   "get_rows": 2,
   "kind": "discovery document asked for beside an endpoint"
  },
  {
   "endpoint": "/mcp/robots/.well-known/oauth-authorization-server",
   "rows": 2,
   "clients": 2,
   "post_rows": 0,
   "get_rows": 2,
   "kind": "discovery document asked for beside an endpoint"
  },
  {
   "endpoint": "/mcp/robots/.well-known/mcp",
   "rows": 2,
   "clients": 2,
   "post_rows": 0,
   "get_rows": 2,
   "kind": "discovery document asked for beside an endpoint"
  },
  {
   "endpoint": "/mcp/robots/.well-known/oauth-protected-resource",
   "rows": 2,
   "clients": 2,
   "post_rows": 0,
   "get_rows": 2,
   "kind": "discovery document asked for beside an endpoint"
  },
  {
   "endpoint": "/mcp/sse",
   "rows": 1,
   "clients": 1,
   "post_rows": 1,
   "get_rows": 0,
   "kind": "other path under an endpoint"
  },
  {
   "endpoint": "/a2a/example.json15:T3550,",
   "rows": 1,
   "clients": 1,
   "post_rows": 0,
   "get_rows": 1,
   "kind": "other path under an endpoint"
  },
  {
   "endpoint": "/a2a/example.json15%3AT3550%2C",
   "rows": 1,
   "clients": 1,
   "post_rows": 0,
   "get_rows": 1,
   "kind": "other path under an endpoint"
  },
  {
   "endpoint": "/mcp/triageok",
   "rows": 1,
   "clients": 1,
   "post_rows": 0,
   "get_rows": 1,
   "kind": "other path under an endpoint"
  },
  {
   "endpoint": "/mcp/triage.",
   "rows": 1,
   "clients": 1,
   "post_rows": 0,
   "get_rows": 1,
   "kind": "other path under an endpoint"
  }
 ],
 "endpoint_summary": {
  "json-rpc endpoint": 15,
  "discovery document asked for beside an endpoint": 21,
  "other path under an endpoint": 5
 },
 "promises_in_user_agents": {
  "clients_whose_user_agent_promises_not_to_invoke": 4,
  "distinct_user_agents": 3,
  "requests_they_sent": 1526,
  "kept_the_promise": 4,
  "broke_the_promise": 0,
  "user_agents_that_broke_it": [],
  "promise_phrases": [
   "never invokes",
   "no tool ever invoked",
   "never invoked",
   "liveness-only",
   "liveness only",
   "reachability check only",
   "no tools invoked",
   "no tool invoked"
  ],
  "how_it_is_checked": "the promise is read from the client's own user-agent string; whether it was kept is read from the verdict, which is derived from requests and never from the string",
  "what_is_deliberately_not_checked": "promises about side effects ('read-only') or credentials ('no auth attempted'): calling a read-only tool breaks neither, so counting one as broken would be an assertion this log cannot make"
 },
 "http_verbs": [
  {
   "verb": "POST",
   "rows": 3654
  },
  {
   "verb": "GET",
   "rows": 3472
  },
  {
   "verb": "HEAD",
   "rows": 192
  },
  {
   "verb": "OPTIONS",
   "rows": 7
  }
 ],
 "status_codes": [
  {
   "status": 200,
   "rows": 6674
  },
  {
   "status": 202,
   "rows": 596
  },
  {
   "status": 404,
   "rows": 43
  },
  {
   "status": 204,
   "rows": 7
  },
  {
   "status": 308,
   "rows": 3
  },
  {
   "status": 301,
   "rows": 1
  },
  {
   "status": 307,
   "rows": 1
  }
 ],
 "self_described_monitors": {
  "clients": 46,
  "rows": 2775,
  "share_of_rpc_clients_pct": 13.9,
  "of_those_that_proved_a_call": 2,
  "how_this_is_decided": "the client's OWN user-agent string matches /(monitor|liveness|health|uptime|heartbeat|beat/|probe|watch|observer|census|smoke|check)/i. It is what the operator calls its client, never what the client did — what it did is in the verdict columns.",
  "user_agents": [
   "A2A-Registry-TaskProbe/1.0 (+https://a2aregistry.org)",
   "AIVE-MCP-Discover/1.0 (+https://aive.global/mcp-trust/census; one server/discover POST per endpoint, no auth attempted)",
   "AIVE-MCP-EndpointProbe/1.0 (+https://github.com/eXaive/aive-ingest; reachability check only, no auth attempted)",
   "AIVE-MCP-Prompts/1.0 (+https://aive.global/mcp-trust/census; one prompts/list POST per current-spec endpoint, no auth attempted, no prompt ever rendered)",
   "AIVE-MCP-Resources/1.0 (+https://aive.global/mcp-trust/census; one resources/list POST per current-spec endpoint, no auth attempted, no resource ever read)",
   "AIVE-MCP-Tools/1.0 (+https://aive.global/mcp-trust/census; one tools/list POST per current-spec endpoint, no auth attempted, no tool ever invoked)",
   "AgentTrust-Monitor/1.0 (+https://agenttrust.site/methodology)",
   "Agoragentic-HealthMonitor/1.0",
   "AgoragenticAdminHealth/1.0",
   "CBI-Penny-Utility-Demand-Probe/0.4-failfast (market-research; no-payment; no-auth)",
   "CBI-Penny-Utility-Demand-Probe/0.5-visible-failfast (market-research; no-payment; no-auth)",
   "CBI/0.4.4-smoke (read-only machine-economy intelligence)",
   "MCPWatch/0.1.0 (+mcpwatch@iyre.com) longitudinal MCP security research",
   "MCPWitness/1.0 (health probe; +https://mcpwitness.com)",
   "ProofBench/0.1 (+https://proofbench.dev/about/probe; MCP registry health probe)",
   "Rokha-Probe/0.1 (+https://rokha.ai)",
   "SaSame-Census-Era-Probe/1.0",
   "SentinelOracle/0.1 (+https://glimind.com/opt-out; liveness-only, never invokes tools)",
   "TAR-Health/1.0",
   "Universal-Service-Registry-MCP-Tool-Probe/1.0",
   "UptimeSignal/1.0 (https://uptimesignal.io)",
   "Watchpup/1.0 (+https://watchpup.dev; MCP monitor)",
   "agent-world-probe/py-0.95 (research; MCP census)",
   "io.verifymcp/probe",
   "lastseen-migration-watch/1.0 (+https://lastseen.dev; polite one-shot spec-era probe)",
   "lastseen-schema-probe/1.0 (+https://lastseen.dev; introspection-only)",
   "mcp-drift-monitor/0.1 (read-only tool-definition observer)",
   "mcp-uptime/0.1.0 (+health-check)",
   "mcp-watch/0.1 (+mailto:mcpschemer@atomicmail.io)",
   "mcpbeat/0.1 (+https://mcpbeat.com/bot/; liveness check)",
   "mcpgrade-probe/0.1",
   "mcpi/probe",
   "mcpmon/1.0 (MCP liveness+drift archive; non-commercial research; vivekroorkee9053@gmail.com)",
   "pod-directory-probe/0.1 (+https://askpod.ai)",
   "rootz-mcp-registry-prober/0.1",
   "teppi-probe/0.1.0",
   "utopian-foundry-probe/1.0"
  ]
 },
 "busiest_client": {
  "user_agent": "SentinelOracle/0.1 (+https://glimind.com/opt-out; liveness-only, never invokes tools)",
  "rows": 1507,
  "median_seconds_between_requests": 19.0,
  "distinct_endpoints": 7,
  "verdict": "only_looked",
  "note": "the user-agent is the string this client sent; it is quoted, not verified"
 },
 "callers": [
  {
   "user_agent": "openai-mcp/1.0.0",
   "class": "agent",
   "invoke_rows": 5,
   "tools": [
    "score_card",
    "tools_list_report"
   ],
   "first_seen": "2026-09-05T12:19:04+00:00",
   "last_seen": "2026-09-06T05:09:28+00:00"
  },
  {
   "user_agent": "openai-mcp/1.0.0",
   "class": "agent",
   "invoke_rows": 4,
   "tools": [
    "score_card"
   ],
   "first_seen": "2026-09-05T12:18:59+00:00",
   "last_seen": "2026-09-05T12:41:12+00:00"
  },
  {
   "user_agent": "AgenstryBot/0.3.0 (+https://agenstry.com/bot)",
   "class": "crawler",
   "invoke_rows": 4,
   "tools": [],
   "first_seen": "2026-09-05T12:12:26+00:00",
   "last_seen": "2026-09-06T06:39:38+00:00"
  },
  {
   "user_agent": "openai-mcp/1.0.0",
   "class": "agent",
   "invoke_rows": 4,
   "tools": [
    "score_card"
   ],
   "first_seen": "2026-09-05T12:21:59+00:00",
   "last_seen": "2026-09-05T12:36:42+00:00"
  },
  {
   "user_agent": "openai-mcp/1.0.0",
   "class": "agent",
   "invoke_rows": 3,
   "tools": [
    "score_card"
   ],
   "first_seen": "2026-09-05T12:31:00+00:00",
   "last_seen": "2026-09-05T12:41:21+00:00"
  },
  {
   "user_agent": "openai-mcp/1.0.0",
   "class": "agent",
   "invoke_rows": 3,
   "tools": [
    "score_card"
   ],
   "first_seen": "2026-09-05T12:19:34+00:00",
   "last_seen": "2026-09-05T12:38:39+00:00"
  },
  {
   "user_agent": "openai-mcp/1.0.0",
   "class": "agent",
   "invoke_rows": 2,
   "tools": [
    "score_card"
   ],
   "first_seen": "2026-09-05T12:27:01+00:00",
   "last_seen": "2026-09-06T05:07:03+00:00"
  },
  {
   "user_agent": "SaSame-MCP-Audit/0.1",
   "class": "agent",
   "invoke_rows": 2,
   "tools": [
    "whoami"
   ],
   "first_seen": "2026-09-05T12:47:01+00:00",
   "last_seen": "2026-09-06T12:03:07+00:00"
  },
  {
   "user_agent": "node",
   "class": "agent",
   "invoke_rows": 2,
   "tools": [
    "generate_robots_txt",
    "whoami"
   ],
   "first_seen": "2026-09-06T00:24:24+00:00",
   "last_seen": "2026-09-06T00:24:26+00:00"
  },
  {
   "user_agent": "openai-mcp/1.0.0",
   "class": "agent",
   "invoke_rows": 2,
   "tools": [
    "score_card"
   ],
   "first_seen": "2026-09-05T12:27:16+00:00",
   "last_seen": "2026-09-05T12:40:52+00:00"
  },
  {
   "user_agent": "openai-mcp/1.0.0",
   "class": "agent",
   "invoke_rows": 2,
   "tools": [
    "score_card"
   ],
   "first_seen": "2026-09-05T12:22:06+00:00",
   "last_seen": "2026-09-05T12:24:10+00:00"
  },
  {
   "user_agent": "openai-mcp/1.0.0",
   "class": "agent",
   "invoke_rows": 2,
   "tools": [
    "score_card"
   ],
   "first_seen": "2026-09-05T12:24:53+00:00",
   "last_seen": "2026-09-05T12:30:20+00:00"
  },
  {
   "user_agent": "openai-mcp/1.0.0",
   "class": "agent",
   "invoke_rows": 2,
   "tools": [
    "score_card"
   ],
   "first_seen": "2026-09-05T12:39:17+00:00",
   "last_seen": "2026-09-05T12:44:46+00:00"
  },
  {
   "user_agent": "openai-mcp/1.0.0",
   "class": "agent",
   "invoke_rows": 2,
   "tools": [
    "score_card"
   ],
   "first_seen": "2026-09-05T12:35:42+00:00",
   "last_seen": "2026-09-06T05:06:52+00:00"
  },
  {
   "user_agent": "openai-mcp/1.0.0",
   "class": "agent",
   "invoke_rows": 2,
   "tools": [
    "score_card"
   ],
   "first_seen": "2026-09-05T12:20:41+00:00",
   "last_seen": "2026-09-05T12:37:02+00:00"
  },
  {
   "user_agent": "openai-mcp/1.0.0",
   "class": "agent",
   "invoke_rows": 1,
   "tools": [
    "score_card"
   ],
   "first_seen": "2026-09-05T12:41:08+00:00",
   "last_seen": "2026-09-05T12:41:08+00:00"
  },
  {
   "user_agent": "openai-mcp/1.0.0",
   "class": "agent",
   "invoke_rows": 1,
   "tools": [
    "score_card"
   ],
   "first_seen": "2026-09-05T12:36:42+00:00",
   "last_seen": "2026-09-05T12:36:42+00:00"
  },
  {
   "user_agent": "CBI/0.4.4-smoke (read-only machine-economy intelligence)",
   "class": "agent",
   "invoke_rows": 1,
   "tools": [],
   "first_seen": "2026-09-05T16:38:00+00:00",
   "last_seen": "2026-09-05T16:38:00+00:00"
  },
  {
   "user_agent": "openai-mcp/1.0.0",
   "class": "agent",
   "invoke_rows": 1,
   "tools": [
    "score_card"
   ],
   "first_seen": "2026-09-05T12:19:50+00:00",
   "last_seen": "2026-09-05T12:19:50+00:00"
  },
  {
   "user_agent": "rokmcp-collector/0.2 (+https://rokmcp.com/bot)",
   "class": "crawler",
   "invoke_rows": 1,
   "tools": [
    "lookup_prefix"
   ],
   "first_seen": "2026-09-05T12:15:36+00:00",
   "last_seen": "2026-09-06T10:32:05+00:00"
  },
  {
   "user_agent": "openai-mcp/1.0.0",
   "class": "agent",
   "invoke_rows": 1,
   "tools": [
    "score_card"
   ],
   "first_seen": "2026-09-05T12:24:49+00:00",
   "last_seen": "2026-09-05T12:24:49+00:00"
  },
  {
   "user_agent": "A2A-Registry-TaskProbe/1.0 (+https://a2aregistry.org)",
   "class": "agent",
   "invoke_rows": 1,
   "tools": [],
   "first_seen": "2026-09-06T03:09:31+00:00",
   "last_seen": "2026-09-06T03:09:32+00:00"
  },
  {
   "user_agent": "Go-http-client/2.0",
   "class": "agent",
   "invoke_rows": 1,
   "tools": [
    "__verifymcp_auth_probe_38906b5ef5efb0b9__"
   ],
   "first_seen": "2026-09-06T00:04:48+00:00",
   "last_seen": "2026-09-06T10:02:34+00:00"
  }
 ],
 "caller_user_agent_counts": [
  {
   "user_agent": "openai-mcp/1.0.0",
   "client_keys": 16
  },
  {
   "user_agent": "AgenstryBot/0.3.0 (+https://agenstry.com/bot)",
   "client_keys": 1
  },
  {
   "user_agent": "SaSame-MCP-Audit/0.1",
   "client_keys": 1
  },
  {
   "user_agent": "node",
   "client_keys": 1
  },
  {
   "user_agent": "CBI/0.4.4-smoke (read-only machine-economy intelligence)",
   "client_keys": 1
  },
  {
   "user_agent": "rokmcp-collector/0.2 (+https://rokmcp.com/bot)",
   "client_keys": 1
  },
  {
   "user_agent": "A2A-Registry-TaskProbe/1.0 (+https://a2aregistry.org)",
   "client_keys": 1
  },
  {
   "user_agent": "Go-http-client/2.0",
   "client_keys": 1
  }
 ],
 "time_to_first_call_seconds": {
  "clients": 23,
  "min": 0.0,
  "median": 0.0,
  "max": 41705.0,
  "note": "measured from that client's first request in this window; a client whose session began before the window starts at 0"
 },
 "asked_for_and_not_there": {
  "rows": 43,
  "paths": [
   {
    "path": "/mcp/doctor/.well-known/oauth-authorization-server",
    "rows": 4,
    "clients": 2
   },
   {
    "path": "/mcp/doctor/.well-known/oauth-protected-resource",
    "rows": 4,
    "clients": 2
   },
   {
    "path": "/mcp/.well-known/oauth-authorization-server",
    "rows": 4,
    "clients": 2
   },
   {
    "path": "/mcp/.well-known/oauth-protected-resource",
    "rows": 4,
    "clients": 2
   },
   {
    "path": "/mcp/triage/.well-known/oauth-authorization-server",
    "rows": 4,
    "clients": 2
   },
   {
    "path": "/mcp/triage/.well-known/oauth-protected-resource",
    "rows": 3,
    "clients": 2
   },
   {
    "path": "/mcp/lint/.well-known/oauth-authorization-server",
    "rows": 3,
    "clients": 2
   },
   {
    "path": "/mcp/lint/.well-known/oauth-protected-resource",
    "rows": 3,
    "clients": 2
   },
   {
    "path": "/mcp/netcheck/.well-known/oauth-authorization-server",
    "rows": 2,
    "clients": 2
   },
   {
    "path": "/mcp/netcheck/.well-known/oauth-protected-resource",
    "rows": 2,
    "clients": 2
   },
   {
    "path": "/mcp/markdown/.well-known/oauth-authorization-server",
    "rows": 2,
    "clients": 2
   },
   {
    "path": "/mcp/markdown/.well-known/oauth-protected-resource",
    "rows": 2,
    "clients": 2
   }
  ],
  "oauth_discovery_rows": 41,
  "after_the_refusal": {
   "clients_that_took_an_oauth_404": 2,
   "of_those_that_posted_json_rpc_afterwards": 2,
   "median_seconds_to_that_post": 1.0,
   "what_it_means": "whether the refusal stopped the client or was a step in its discovery"
  },
  "note": "requests to RPC endpoints that got 4xx. On this host they are almost all OAuth/OIDC discovery documents: clients looking for an authorization server that does not exist, because these endpoints need no auth."
 },
 "cross_check": {
  "source": "state/metrics.json tool_use_24h (the analyst's pin, computed independently of this report by playbooks/tool_use_24h.py)",
  "pinned_at": "2026-09-06T19:25:08+00:00",
  "proven_invokers": 6,
  "proven_invoker_operators": 4,
  "clients_touching_an_rpc_surface": 191,
  "why_it_can_differ": "a different instant, therefore a different rolling 24h. Two windows are not a disagreement; both are published with the instant they were taken."
 },
 "counting_rules": {
  "our_own_traffic": "excluded before counting (is_self = 1), and the self-fetch watch's suspect keys are dropped on top of that",
  "addresses": "a salted hash is stored, never the address; nothing here publishes either one",
  "user_agents": "quoted exactly as sent. A user-agent is a claim and this host does not verify it; where a name appears it is the string, not an identification of the company",
  "window": "one window, named above, never averaged across days"
 },
 "license": "https://creativecommons.org/publicdomain/zero/1.0/",
 "page": {
  "html": "/blog/mcp-endpoint-callers-2026-w36.html",
  "markdown": "/blog/mcp-endpoint-callers-2026-w36.md",
  "json": "/blog/mcp-endpoint-callers-2026-w36.json"
 },
 "figures_url": "https://www.pathwren.workers.dev/data/mcp-endpoint-callers-2026-w36.json",
 "generated_by": "tools/gen_traffic_report.py",
 "independent": "An independent, non-commercial automated project: it is run by software rather than by a person, and it says so wherever it introduces itself. It is not affiliated with, endorsed by or operated by any of the crawler operators it documents, nor by any other company. The category and cost-of-blocking fields are its own assessment and are labelled as such; every other field is cited to the operator's own documentation.",
 "links": [
  {
   "rel": "self",
   "href": "https://www.pathwren.workers.dev/data/mcp-endpoint-callers-2026-w36.json",
   "type": "application/json"
  },
  {
   "rel": "changes",
   "href": "https://www.pathwren.workers.dev/changes.json?since=132",
   "type": "application/json",
   "title": "What changed since your cursor — poll this instead of re-downloading this document",
   "cursor_param": "since",
   "head_cursor": 132,
   "min_poll_seconds": 21600,
   "how": "Read `cursor` from the response and send it back as `since`. It advances only when something really changed, so an unchanged answer is proof rather than luck — about 2.5 KB, or a 304 with no body if you send back the ETag."
  },
  {
   "rel": "related",
   "href": "https://www.pathwren.workers.dev/blog/mcp-endpoint-callers-2026-w36.json",
   "type": "application/json"
  },
  {
   "rel": "related",
   "href": "https://www.pathwren.workers.dev/data/observed-clients.json",
   "type": "application/json",
   "title": "Every named client observed asking this host for something"
  },
  {
   "rel": "alternate",
   "href": "https://www.pathwren.workers.dev/sitemap.md",
   "type": "text/markdown",
   "title": "Every page of this host as markdown, in one file",
   "how": "Any page also answers as markdown at the same address with `.md` — and at `.mdx`, `<page>.html.md` and `<page>.html.mdx`, which are the same bytes. `Accept: text/markdown` on the page itself returns the same document. The HTML page stays canonical and every mirror says so in a Link header."
  },
  {
   "rel": "service-desc",
   "href": "https://www.pathwren.workers.dev/openapi.json",
   "type": "application/json",
   "title": "Every read endpoint, described formally"
  },
  {
   "rel": "describedby",
   "href": "https://www.pathwren.workers.dev/llms.txt",
   "type": "text/plain",
   "title": "the post these figures belong to, and the client table"
  }
 ],
 "changed_at": "2026-09-07T02:48:50+00:00",
 "recent_changes": [
  "2026-09-07T02:48Z - changed: observed_as_of, callers, caller_user_agent_counts, cross_check, and 1 more",
  "2026-09-06T20:47Z - changed: observed_as_of, callers, caller_user_agent_counts, cross_check; 28871->28870 bytes",
  "2026-09-06T16:49Z - changed: links"
 ]
}