Combined Server-Surface Census

By TextForAgents LLC.

Combined Server-Surface Census — by TextForAgents LLC. A moved MCP endpoint can keep its tool contract while its served skills change — or keep its skills while its tool contract changes — and every existing census measures only one surface, so a migration verdict can bless an endpoint whose other surface has quietly changed. This product takes ONE snapshot in a single pass, under one signature, pinning all three together: endpoint identity (registry name + URL + server name), the tool-name set with per-tool inputSchema hashes, and the skill manifest digest set with the listed/unlisted delta. Diffing two signed snapshots, it issues the composed verdicts neither parent census can issue alone — MOVED-TOOL-SAME-SKILL-CHANGED separated from MOVED-SKILL-SAME-TOOL-CHANGED, plus MOVED-LIVE-SAME-SURFACE / MOVED-BOTH-CHANGED / MOVED-DEAD — in two depths from the same code path: pin mode (manifest-only) and verify mode (per-file digest verification). Skills with "dynamic" / no-manifest resources carry nothing to pin, so the verdict refuses the plain SAME-SURFACE claim and downgrades to MOVED-LIVE-SAME-PINNED-UNVERIFIABLE-PRESENT — the honest limit travels in the verdict, not in a footnote. Packaging leads with the migration/identity verdict, which is live now; the skill leg is the differentiator that activates as SEP-2640 serving lands — in the lab's first public sample of 20 registry endpoints (12 LIVE / 8 AUTH_GATED), the skill-serving share was 0/12 live, stated plainly (n=12 live from one registry page, a first read, not a population estimate). This product censuses what a server actually serves (endpoint identity, tool contract, skill digests pinned in one signed snapshot, with successor verdicts); it is not a public-evidence server gate.

Combined verdict query $0.01/call (x402) · Surface watch $4.99/endpoint/mo · One-time combined snapshot $1.99. One free verdict query per operator, ever. There is no perpetual free tier.

Documented limits: pin mode trusts manifest digests as served (it cannot detect a file mismatch). Verify mode fetches the real file bytes and digests them itself before a skill enters the verified set; a server that serves no real bytes for a file leaves that skill UNVERIFIABLE (no_real_bytes) rather than verified on its own say-so. Skills with "dynamic" / no-manifest resources carry nothing to pin and downgrade the verdict to MOVED-LIVE-SAME-PINNED-UNVERIFIABLE-PRESENT — a surface carrying dynamic/no-manifest skills on either side is never blessed plain SAME-SURFACE. AUTH_GATED endpoints are classified as such; the product does not supply, guess, or use credentials it was not given by the operator for that endpoint. A failing or HTTP-500 skills/list classifies (skills_error), never crashes a pass. Private, loopback, link-local and reserved targets are refused, and redirects to private targets are refused. Watches run at cadence ≤ hourly per endpoint; no dedicated high-cadence flat tier is offered at any price.

How to start: POST /register {"operator": "your-name"} for a per-customer token (shown once). POST /snapshot {"url": ..., "mode": "pin"|"verify"} takes a one-time combined snapshot ($1.99 via x402). POST /verdict {"old_snapshot": {...}, "new_url": ...} (or {"old_url": ..., "new_url": ...} using your stored snapshots, or {"old_snapshot": ..., "new_snapshot": {...}}) returns the composed verdict ($0.01/call via x402; your first verdict query is free). POST /subscribe {"tier": "watch", "endpoint": ""} ($4.99/endpoint/mo via x402), then POST /watch {"url": ...} and GET /watches. MCP at /mcp with the same billing. Verify any snapshot at POST /snapshots/verify and any receipt at POST /receipts/verify.

Docs: docs · OpenAPI · Terms · Privacy · Support: support@textforagents.com