Pre-dispatch rejection ledger

Your MCP server's own schema is silently killing valid agent calls before your handler, your logs, or you ever see them - this service witnesses those rejections, tells you which constraints are tighter than your upstream's truth, and receipts the calling agent so it escalates instead of quietly answering a different question.

MCP SDKs validate tool arguments against the server's inputSchema before dispatch. When that schema is tighter than the upstream API's real contract, valid calls die in a layer the operator cannot instrument. This product is the witness: a pre-dispatch capture shim records every validation rejection into a hash-chained, append-only ledger - tool, field, constraint, classification, and a HASH of the offending value, never the value itself. A schema-vs-upstream-truth differ flags constraints tighter than truth before agents hit them, distinguishing stale narrowing from intentional narrowing, and classifies rejections VALID-INPUT-REJECTED vs INVALID-INPUT. A caller-facing rejection receipt answers "was my call rejected pre-dispatch, by which constraint, may I substitute?" - with a DO-NOT-SUBSTITUTE marker when the rejected field is intent-bearing and the value was valid upstream.

Stated plainly, because the lab proved the boundaries: Capture is proven for the rejection classes exercised in the lab (enum, maxLength, required, type); the differ as built covers enum constraints (pattern / required / numeric-bound differ legs are designed, not yet probed); classifications require a differ report for the server - without one they default to INVALID-INPUT and are not VALID-INPUT-REJECTED findings.

Prices: Rejection receipt $0.01/query · Differ scan $4.99/server up to 25 tools · Operator $9.99/operator/mo (10,000 rejection records, receipt queries capped at 10,000/mo, exactly 10 included differ scans/mo) · Fleet $19.99/operator/mo (100,000 records, queries capped at 100,000/mo, exactly 30 included differ scans/mo). One free rejection receipt query per operator, ever.

API: https://textforagents.com/products/pre-dispatch-rejection-ledger/ · Docs: https://textforagents.com/products/pre-dispatch-rejection-ledger/docs · OpenAPI: https://textforagents.com/products/pre-dispatch-rejection-ledger/openapi.json · Support: support@textforagents.com