MCP host-behaviour census

MCP host-behaviour census — by TextForAgents LLC. Your long tool timed out, your new tool never appeared, your call ran twice — and none of it was your server's fault. MCP hosts each impose their own undocumented clock and refresh behaviour: ChatGPT re-sends a call identically 22–26% of the time once it runs ≥60s (measured over ~187k real calls), Grok never acts on tools/list_changed so connected users stay on the tool list from first connect, and whether progress notifications reset the timeout is optional in the spec and different in every client. This census measures it from outside: scripted probes (silent long tool, progress-emitting long tool, mid-session tool-list change, oversized result) driven through hosts and SDK clients against a reference server, published as a signed, version-bound behaviour profile — hard timeout, idle timeout, progress-reset semantics, list-refresh behaviour, identical-retry behaviour — that agents route on before trusting a host with a long or changing tool. Ask the verdict API: can this host run a 90s progress-emitting tool? Will connected users ever see the tool you ship today? Get a design sheet per server: stay under 60s or return a receipt-and-poll; send progress inside the idle window; expect no refresh until reauth. Proven in the lab: 15/15 tests, hard (3.01s) vs idle (1.50s) architectures discriminated from timeout points alone, re-send proven server-side (count 2 vs 1), forged/tampered/expired profiles refused. Coverage honesty: until a host's live leg is done, its profile is labelled shim-derived in every surface, never presented as a live measurement.

Prices

Verdict API $0.01/query (x402) · Operator $9/mo to 20 servers · Fleet $29/mo to 200 servers. First 100 verdict queries free, one time per operator (account-identity enforced; a second account for the same operator does not re-grant). There is no perpetual free tier.

Limits

Profiles are measurements at their measured_at, bound to (host, host_version, probe suite version) and expire; stale profiles must not be routed on. Verdicts and design sheets are answered from the verified profile alone. A host that changes behaviour mid-sweep is flagged INCONSISTENT and never published as a clean profile. The probe battery is fixed by the suite version. Live-host leg: real ChatGPT / Claude Code / Grok hosts are unreachable from this deployment; production sweeps run against the reachable SDK-client/shim surfaces and every profile is labelled shim-derived until that host's live leg is done. Sweep concurrency is capped and queued, never unbounded. Request bodies are capped at 2 MB.

Start

POST https://textforagents.com/products/mcp-host-behaviour-census/register {"name": "your-operator-name", "payer_wallet": "0x..."} → account_id + claim_token. Then POST https://textforagents.com/products/mcp-host-behaviour-census/trial/claim {"claim_token": "..."} → your API token (shown once; binds the one-time 100-query grant). Sweep: POST https://textforagents.com/products/mcp-host-behaviour-census/sweeps {"host": "chatgpt", "host_version": "2026-10"} (profile labelled shim-derived). Profile: GET https://textforagents.com/products/mcp-host-behaviour-census/profiles/chatgpt/2026-10 · Verify any profile: POST https://textforagents.com/products/mcp-host-behaviour-census/profiles/verify {"profile": {...}}. Verdict: POST https://textforagents.com/products/mcp-host-behaviour-census/verdicts {"host": "chatgpt", "host_version": "2026-10", "kind": "can_run", "duration_s": 90, "emits_progress": true} ($0.01/query x402 after the grant). Design sheet: GET https://textforagents.com/products/mcp-host-behaviour-census/design-sheet/chatgpt/2026-10 · Alerts: GET https://textforagents.com/products/mcp-host-behaviour-census/alerts. Servers: POST https://textforagents.com/products/mcp-host-behaviour-census/servers {"name": "my-server"} (Operator subscription: 20 servers; Fleet: 200). Subscribe: POST https://textforagents.com/products/mcp-host-behaviour-census/subscribe {"tier": "operator"} ($9/mo x402) or {"tier": "fleet"} ($29/mo x402). MCP: POST https://textforagents.com/products/mcp-host-behaviour-census/mcp (tools: census_sweep, census_profile, census_verdict, census_design_sheet, census_verify_profile).

Docs: https://textforagents.com/products/mcp-host-behaviour-census/openapi.json · llms: https://textforagents.com/products/mcp-host-behaviour-census/llms.txt · x402 discovery: https://textforagents.com/products/mcp-host-behaviour-census/.well-known/x402 · Terms: https://textforagents.com/products/mcp-host-behaviour-census/terms · Privacy: https://textforagents.com/products/mcp-host-behaviour-census/privacy · Support: support@textforagents.com