{"name": "MCP protocol-era negotiation conformance", "provider": "TextForAgents LLC", "support": "support@textforagents.com", "slug": "mcp-protocol-era-negotiation-conformance", "what": "Prove which MCP protocol era a server actually serves, per client era: this service negotiates every known era (2024-11-05, 2025-03-26, 2025-06-18, 2025-11-25, 2026-07-28) against your server on a fresh connection per era (the 2026-07-28 era, whose revision removes initialize, is probed header-only), verdicts each era (EXACT / DOWNGRADED / REJECTED / NO_VERSION / STATEFUL_SINGLETON / NEW_ERA_OK), predicts whether a given client era will connect (pre-flight), and issues an Ed25519-signed, TTL'd verdict document with a drift fingerprint and the registry-consumable era field \u2014 so an SDK upgrade that silently changes your negotiated era becomes an alert, not a client failure.", "features": ["fresh-connection-per-era negotiation over streamable HTTP (plus the product's own synthetic stdio fixtures for the documented failure modes)", "per-era verdicts: EXACT / DOWNGRADED / REJECTED / NO_VERSION / STATEFUL_SINGLETON / NEW_ERA_OK / ERROR / TIMEOUT, with the negotiated era named per era", "stateful-singleton classification: a deliberate second initialize on one connection separates STATEFUL_SINGLETON from era rejection, while fresh-connection probing keeps every per-era verdict intact", "client pre-flight: predict PASS / PASS_COMPAT / FAIL / UNKNOWN for a client era (lenient or requires-exact) before the client ever connects", "Ed25519-signed verdict documents (published verification keys, 30-day TTL, rotation-safe) with a drift fingerprint over the negotiated-era map; drift comparisons name the changed era(s)", "hourly scheduled probes of subscribed servers with drift recording (Solo/Fleet); registry-consumable era field (mcp_era / mcp_era_singleton / mcp_era_fingerprint / mcp_era_probed_at) in every verdict document", "per-check API ($0.01/check, x402) plus Solo/Fleet subscription rails; trial: first month of Solo free for the first server, one-time", "Solo/Fleet badge (included in both tiers): POST /badges mints an embeddable SVG era-verdict badge for a subscribed server under an unguessable public badge URL (GET /badge/<badge_id>.svg) \u2014 the badge shows only the server's latest overall verdict, never account data; revocable via POST /badges/revoke", "production backups: the state database and the Ed25519 signing keyring are snapshotted daily into data/backups/ inside the product's own directory (newest 14 kept, checksummed manifest at data/backups/LAST-BACKUP.json, last backup reported at GET /health)"], "limits": ["Probing is non-destructive by design: negotiation exchanges (initialize) and, for the initialize-less 2026-07-28 era, one header-only tools/list request. No other methods are called, no payloads are sent, and no credentials are forwarded. Submit only servers you own or are authorised to test.", "LEGAL-084 (FTO AMBER) keep-clear: this service performs single-probe client-side negotiation measurement only \u2014 it negotiates no common protocol version among a group of communicating peers (no consensus / view-synchrony version agreement feature exists or is offered), and it sends no malformed or fuzzing traffic.", "Verdict documents are signed with Ed25519 and remain verifiable under the published keys (current + retired) until their TTL expires: verdict document TTL is 2592000 seconds (30 days). A document that fails signature or TTL verification must be treated as no verdict; tampered verdict documents are rejected.", "Live-endpoint census: the launch census was run on 2026-10-21 against the first 78 unique non-templated https streamable-http remote endpoints listed in the official MCP Registry (the CARD-032 78-endpoint shape). 16 of 78 negotiated an era (best negotiated: 2025-11-25 x6, 2025-06-18 x9, 2024-11-05 x1, 2026-07-28 x0); 62 negotiated no version, of which 60 rejected every era's initialize (auth-gated or refusing unauthenticated negotiation) - the registry-listed population is majority auth-gated, unlike the CARD-032 survey population (53% on 2025-11-25, 9% on 2026-07-28). Full artifact and deltas: data/census/ in the product directory; the census recurs weekly as the probe-fidelity health check.", "Probe fidelity is re-proven per era as new protocol revisions land: when a new era is published, its negotiation shape is added to the era registry and re-proven against fixtures before verdicts for it are sold. The current era registry is 2024-11-05, 2025-03-26, 2025-06-18, 2025-11-25, 2026-07-28.", "The synthetic probe fixtures (downgrading, stateful-singleton, strict, silent, new-era, exact, garbage) live only inside this product's own directory and are clearly synthetic; they are demo/test targets, never customer data.", "Persistence: servers, verdict documents and counters are stored per-operator in the product's own store with strict account isolation and are retained for 12 months, then purged; deletion on request via support@textforagents.com. No customer's servers, documents or counters are ever visible to another account.", "Backups: the product's state database and signing keyring are backed up daily into data/backups/ in the product's own directory (online sqlite backup; newest 14 snapshots kept; manifest with sha256 checksums at data/backups/LAST-BACKUP.json). Restore: stop the unit, copy a state-*.db snapshot back to data/state.db and its keyring-*.json back to data/keyring.json, start the unit.", "Trial terms: the first month of Solo is free for the FIRST server, one time only \u2014 enforced server-side per operator account AND per payer wallet (both keys checked on every POST /trial/claim). The trial covers 1 server; after the trial, $9/mo applies to all servers. Per-check API runs are metered from the first check (no free allotment on the per-check rail).", "Request bodies over 2000000 bytes are refused (HTTP 413).", "Lost-token recovery is a manual support@ step."], "prices": {"per_check_usd": 0.01, "solo_monthly_usd": 9.0, "fleet_monthly_usd": 29.0, "solo_servers": 1, "fleet_servers": 10, "terms": "Per-check API $0.01/check (x402; one check = one full per-era negotiation run). Solo $9/mo per server (1 server, hourly era probes across all known eras, badge + drift alert). Fleet $29/mo (up to 10 servers, client-side pre-flight API). Trial: first month of Solo free for the first server, one-time per operator account AND per payer wallet, both enforced server-side; per-check runs metered from the first check."}, "how_to_start": "POST /register {account_name, payer_wallet} -> per-customer token (shown once, SHA-256 at rest). Register a server with POST /servers (Bearer), then POST /probe (Bearer for subscribed servers, or X-PAYMENT $0.01 per check for ad-hoc targets). Claim the one-time free first Solo month via POST /trial/claim (Bearer); subscribe via POST /subscribe {tier} (Bearer + verified X-PAYMENT). Verify any verdict document at POST /verdicts/verify; predict a client connect at POST /preflight.", "verdict_signing": {"alg": "Ed25519", "key_id": "ed25519-4e9a1782fb37", "public_key": "4e9a1782fb37c811bdbc0e3498cc858915cb10e9ed1c94375ceba9adf1692bfc", "keys": [{"key_id": "ed25519-4e9a1782fb37", "public_key": "4e9a1782fb37c811bdbc0e3498cc858915cb10e9ed1c94375ceba9adf1692bfc", "current": true}], "verdict_validity_seconds": 2592000, "note": "Verify any verdict document at POST /verdicts/verify. Rotation retires the old key into the published key list, so documents keep verifying throughout their TTL."}}