{"product": "MCP answer-quality canary", "provider": "TextForAgents LLC", "slug": "mcp-answer-quality-canary", "what_it_does": "Continuously checks that the MCP servers your agents depend on return correct answers, not just live ones: real MCP protocol canary calls (list + seeded-record search) are cross-checked against independent ground truth, exhausting pagination, and reported as agent-readable verdicts \u2014 PASS, or FAIL with defect classes TRUNCATION / NULL_RESULT / WRONG_VALUE / SEEDED_RECORD_MISSING / OVERSIZE / PAGINATION_LOOP / TIMEOUT / PROTOCOL_FAILURE. With no ground truth the verdict is UNKNOWN (fail-closed), never PASS.", "features": ["Real MCP wire protocol checks (official MCP SDK, stdio JSON-RPC) \u2014 the same client stack a real agent uses", "Seeded-record sentinel check: a planted record must be found whole via both list and search", "Completeness check: paginated list answers are exhausted (20-page cap with loop detection) and unioned against ground truth", "has_more honesty: a server that silently caps results and denies more exist is flagged TRUNCATION", "Defect classes: TRUNCATION / NULL_RESULT / WRONG_VALUE / SEEDED_RECORD_MISSING / OVERSIZE / PAGINATION_LOOP / TIMEOUT / PROTOCOL_FAILURE", "Fail-closed: no independent ground truth -> UNKNOWN, never PASS; server crash/garbage -> PROTOCOL_FAILURE, never a canary crash", "Per-customer watches with check history; every verdict HMAC-signed by the service"], "prices": {"Canary": {"price": "$0.50/server/month", "detail": "$0.50 per server / month flat \u2014 hourly canary cadence, seeded-record + completeness + has_more honesty checks, agent-readable verdicts. A typical 10-server operator pays $5/mo."}, "Agent Trust Stack bundle": {"price": "$9/mo per operator", "detail": "This product is also sold inside the Agent Trust Stack bundle ($9/mo per operator, with P13 Caplock and the bundle's third member): canary watch on up to 10 servers. Taking the bundle consumes the operator's one-time trial grant for all three bundled products."}}, "trial": "One-time trial grant: the first month is free on the first 5 servers, once per operator account AND once per payer wallet if presented, server-enforced. After the grant, $0.50/server/mo applies to all watched servers. Taking the Agent Trust Stack bundle consumes the one-time trial grant for all three bundled products.", "how_to_start": ["POST /register {account_name, payer_wallet?} -> {account_id, claim_token}", "POST /trial {account_id, claim_token} -> {token} (shown once; first month free on the first 5 servers)", "POST /watches (Bearer token) {name, mode, truth_entries?} -> watch_id", "POST /watches/{watch_id}/check (Bearer token) -> verdict {status, defects[], evidence, wall_ms}", "GET /watches (Bearer token) -> your watches and last verdicts", "MCP (streamable-http JSON-RPC): POST /mcp (or POST /) with the same Bearer token - initialize / ping / tools/list / tools/call; tools: canary_create_watch, canary_list_watches, canary_get_watch, canary_check_watch, canary_delete_watch"], "mcp": {"endpoint": "https://textforagents.com/products/mcp-answer-quality-canary/mcp", "transport": "streamable-http (JSON-RPC 2.0 over POST)", "auth": "same per-customer Bearer token as the REST API; identity comes from the token only", "tools": ["canary_create_watch", "canary_list_watches", "canary_get_watch", "canary_check_watch", "canary_delete_watch"]}, "limits": ["Hosted checks run the bundled fixture MCP server shapes (modes: good, truncate, paginate, null, wrong, seeded_missing, oversize, loopy, hang, crash, malformed) against the bundled 51-entry ground truth or a ground-truth dataset you supply with the watch (max 500 entries). Arbitrary third-party stdio commands are never executed on this host.", "Seeded-record acceptance by third-party server operators and persistent-session checks against live remote servers are packet follow-ups, not part of this hosted surface; seeded records are planted only with the server operator's consent or on servers the customer operates.", "Hourly cadence at the flat price; uncapped real-time checking would need repricing.", "A verdict reports what the checks observed at check time; UNKNOWN means no truth was established and is never a pass.", "Lost-token recovery is a manual support step (support@textforagents.com) \u2014 the only human step in the flow."], "support": "support@textforagents.com", "docs": {"openapi": "https://textforagents.com/products/mcp-answer-quality-canary/openapi.json", "llms": "https://textforagents.com/products/mcp-answer-quality-canary/llms.txt"}}