Every change Wellknown observed on this MCP server, newest first, with what it was before and what it became. Tool-surface changes carry the definition diff. Nothing here is edited after the fact.
Changed the definition of "buy_pack"
⟨21 unchanged words⟩ error pack_retired with how a person buys the Sandbox Evaluation Pack by card. It does not move ⟨30 unchanged words⟩
Changed the definition of "buy_pack"
Buy aRetired: prepaidpackpackswithareUSDCno longer sold to agents
ReturnRetired.theNox402prepaidpaymentpackrequirementsisforsoldtheto
Changed the definition of "buy_pack", "consensus", "get_api_key" and 1 more
Return the x402 payment requirements forathe Starter($40, 10000 calls) orprepaidBuilderpack ($175$40,5000010000 calls)prepaid pack, plus how to pay with USDC on Base or Solana. pack isstarter or builder.starter. This call does not move funds and does ⟨21 unchanged words⟩
Changed the definition of "check_duplicate_invoice", "consensus" and "judge"
⟨29 unchanged words⟩ ["human"],"type":"string"},"degraded":{"type":"object"},"duplicate":{"description":"Present only when the ⟨68 unchanged words⟩ ["advisory"],"type":"string"},"model":{"type":["string","null"]},"next_step":{"additionalProperties":false,"properties":{" ⟨217 unchanged words⟩ :{"description":"Present only on schema 5 and 8: the call was advisory, so a person ⟨11 unchanged words⟩ ["advisory"],"type":"string"},"model":{"description":"Present only on schema 7 and 8: the model id the provider echoed back for this verdict, for example openai/gpt-oss-120b. Signed, so a changed model id fails verification.","type":"string"},"payment":{"additionalProperties":false,"description":"x402 ⟨139 unchanged words⟩ :"string"},"schema_version":{"description":"7 is schema 4 plus a signed model id, and 8 is schema 5 plus a signed model id: minted when a model gave the verdict. 5 is schema 4 plus a signed mode advisory,
Changed the definition of "check_duplicate_invoice", "consensus" and "judge"
⟨58 unchanged words⟩ description":"groq, workers_ai, deterministic, or demo. Also signed into the receipt.","type":"string"},"fail_closed":{"description":"Present and true only when a finance check failed closed because the primary model was unavailable. Treat it as review.","type":"boolean"},"mode":{"description":"Present only when the ⟨54 unchanged words⟩ ","rejected","low_confidence","unverifiable","false_consensus_risk","primary_engine_unavailable"],"type":"string"},"hint": ⟨617 unchanged words⟩
⟨115 unchanged words⟩ Changed the definition of "buy_pack"
Return the x402 payment requirements for a Starter ($30$40, 10000 calls) or Builder ($100$175, 50000 calls) prepaid pack, plus how ⟨42 unchanged words⟩
⟨3 unchanged words⟩ ":{"pack":{"description":"starter ($30$40, 10000 calls) or builder ($100$175, 50000 calls).","enum":["starter ⟨7 unchanged words⟩
Added "check_duplicate_invoice"; changed the definition of "consensus" and "judge" (5 tools before, 6 now)
⟨142 unchanged words⟩ ":20,"type":"array"}]},"mode":{"description":"Optional. blocking (the default) is today's behaviour. advisory computes the same verdict, checks, next_step and receipt, then adds mode, decision_owner human, recommended_action (approve, review or return) and a notice. The receipt signs mode advisory as schema_version 5. Same price.","enum":["blocking","advisory"],"type":"string"},"retain":{"description":"Optional. true stores this ⟨69 unchanged words⟩
⟨23 unchanged words⟩ ,"consensus_answer":{"type":"string"},"decision_owner":{"description":"Advisory only. A person owns the decision.","enum":["human"],"type":"string"},"engine":{"description":"groq, workers_ai, deterministic ⟨8 unchanged words⟩ ,"high"],"type":"string"},"mode":{"description":"Present only when the call sent mode: advisory.","enum":["advisory"],"type":"string"},"
Changed the definition of "consensus", "get_api_key" and "judge"
⟨170 unchanged words⟩ , verify consensus_answer with judge before using it. next_step.action is pass for low risk and escalate otherwise. Cost: 1 call. A free key covers 100 ⟨18 unchanged words⟩
⟨159 unchanged words⟩ Default false.","type":"boolean"},"share":{"description":"Optional. false keeps this call out of opt-in data sharing even when the key has sharing on. It cannot turn sharing on.","type":"boolean"},"task":{"description":"The question all answers ⟨25 unchanged words⟩
⟨39 unchanged words⟩ Changed the definition of "consensus" and "judge"
⟨144 unchanged words⟩ workers_ai, deterministic, or demo. Present on schema3.3 and 4.","type":"string"},"issued_at":{ ⟨13 unchanged words⟩ :"x402 includes tx, network, and payer. Schema 4 free-key and prepaid payments are the label only, with no key_prefix. Schema 3 may include the key display prefix, not the secret. demo is the /try/ allowance.","properties":{"key_prefix":{"description":"Present on schema 3 free-key and prepaid payments. Omitted on schema 4. Never the secret.","type":"string"},"network":{"type" ⟨83 unchanged words⟩ :"string"},"schema_version":{"description":"4 omits key_prefix from payment so a published receipt verifies without key info. 3 adds verification, engine, checks (type, passed, and evidence_hash only), and a claimscount.count, and may include key_prefix. 2 can carry agent_id and version. Older receipts omit this field and still verify.","enum":[2,3
Certificate recorded, valid to 2027-01-18
Authorization not required
Changed the definition of "consensus" and "judge"
⟨24 unchanged words⟩ {"type":"string"},"engine":{"description":"groq, workers_ai, deterministic, or demo.","type":"string"},"false_consensus_risk":{"enum" ⟨35 unchanged words⟩ ["Ed25519"],"type":"string"},"checks":{"description":"Type, passed, and evidence_hash only. Fetched page text and chain responses are not stored.","items":{"additionalProperties":false,"properties":{"evidence_hash":{"type":"string"},"passed":{"type":"boolean"},"type":{"type":"string"}},"required":["type","passed","evidence_hash"],"type":"object"},"type":"array"},"claims":{"additionalProperties":false,"properties":{"contradicted":{"type":"integer"},"supported":{"type":"integer"},"total":{"type":"integer"},"unsupported":{"type":"integer"}},"required":["total","supported","contradicted","unsupported"],"type":"object"},"endpoint":{"enum":["/v1/judge","/v1/consensus"],"type":"string"},"engine":{"description":"groq, workers_ai, deterministic, or demo. Present on schema 3.","type":"string"},"issued_at":{"description":"ISO-8601 UTC timestamp.", ⟨120 unchanged words⟩ :"string"},"schema_version":{"description":"23foradds
Added "buy_pack" and "publish_receipt"; changed the definition of "consensus", "get_api_key" and "judge" (3 tools before, 5 now)
before
—after
False-consensus check across 2 to 16 agent answersScoreFalse-consensus check for 2 to 16 answers to the same task. It scores how the answers agree and flags agreementacrossthat looks copied or too thin to trust. Screwtape is not tied to the agent framework or the model that wrote the answers. Call it when severalagents'agents, samples or tools answered the same question and you are about to accept the majority. Do NOT call it with a single answer (use judge), with
Unknown → Live
First tool surface recorded: 3 tools (server version 1.0.0)
https://screwtape.ai/mcp (mcp_streamable_http) — from mcp_registry, with the record
Showing the latest 16 events. The API returns up to 500 and filters by kind: ?kind=tool_surface_changed
{"additionalProperties":false,"properties":{"pack":{"description":"starterAny($40,former10000packcalls).","enum"id. Ignored:["starterevery pack answers pack_retired."],"type":"string"}},"required":["pack"],"type":"object"}
⟨4 unchanged words⟩ openWorldHint":true,"readOnlyHint":true,"title":"Buy aRetired: prepaidpackpackswithareUSDCno longer sold to agents"}
Only numbers and dates differ: this server embeds live figures in the definition, so the text moves without the contract changing.
⟨186 unchanged words⟩ Cost: 1 call. A free key covers10010 calls per UTC day; without a key, ⟨11 unchanged words⟩
Only numbers and dates differ: this server embeds live figures in the definition, so the text moves without the contract changing.
Create a free Screwtape.ai API key (10010 calls per UTC day) with no human ⟨144 unchanged words⟩
Only numbers and dates differ: this server embeds live figures in the definition, so the text moves without the contract changing.
⟨140 unchanged words⟩ Cost: 1 call. A free key covers10010 calls per UTC day; without a key, ⟨34 unchanged words⟩
⟨15 unchanged words⟩ ,"type":"string"},"agreement_score":{"description":"null when no model scored agreement (degraded).","type":["number","null"]},"clusters":{"type":"array"}, ⟨13 unchanged words⟩ ["human"],"type":"string"},"degraded":{"type":"object"},"engine":{"description":"groq, workers_ai, deterministic ⟨22 unchanged words⟩ ["advisory"],"type":"string"},"model":{"type":["string","null"]},"next_step":{"additionalProperties":false,"properties":{" ⟨217 unchanged words⟩ :{"description":"Present only on schema 5 and 8: the call was advisory, so a person ⟨11 unchanged words⟩ ["advisory"],"type":"string"},"model":{"description":"Present only on schema 7 and 8: the model id the provider echoed back for this verdict, for example openai/gpt-oss-120b. Signed, so a changed model id fails verification.","type":"string"},"payment":{"additionalProperties":false,"description":"x402 ⟨139 unchanged words⟩ :"string"},"schema_version":{"description":"7 is schema 4 plus a signed model id, and 8 is schema 5 plus a signed model id: minted when a model gave the verdict. 5 is schema 4 plus a signed mode advisory, ⟨50 unchanged words⟩ verify.","enum":[2,3,4,5,7,8],"type":"integer"},"score":{ ⟨119 unchanged words⟩ alg","kid","signature"],"type":["object","null"]},"receipt_reason":{"type":"string"},"recommended_action":{"description":"Advisory only ⟨73 unchanged words⟩
⟨29 unchanged words⟩ ["human"],"type":"string"},"degraded":{"type":"object"},"duplicate":{"description":"Present only when the ⟨68 unchanged words⟩ ["advisory"],"type":"string"},"model":{"type":["string","null"]},"next_step":{"additionalProperties":false,"properties":{" ⟨217 unchanged words⟩ :{"description":"Present only on schema 5 and 8: the call was advisory, so a person ⟨11 unchanged words⟩ ["advisory"],"type":"string"},"model":{"description":"Present only on schema 7 and 8: the model id the provider echoed back for this verdict, for example openai/gpt-oss-120b. Signed, so a changed model id fails verification.","type":"string"},"payment":{"additionalProperties":false,"description":"x402 ⟨139 unchanged words⟩ :"string"},"schema_version":{"description":"7 is schema 4 plus a signed model id, and 8 is schema 5 plus a signed model id: minted when a model gave the verdict. 5 is schema 4 plus a signed mode advisory, ⟨50 unchanged words⟩ verify.","enum":[2,3,4,5,7,8],"type":"integer"},"score":{ ⟨119 unchanged words⟩ alg","kid","signature"],"type":["object","null"]},"receipt_reason":{"type":"string"},"recommended_action":{"description":"Advisory only, deterministic ⟨40 unchanged words⟩ {"type":"object"},"score":{"description":"null when no model gave a verdict (degraded).","type":["number","null"]},"verdict":{"enum":["pass", ⟨31 unchanged words⟩
⟨58 unchanged words⟩ description":"groq, workers_ai, deterministic, or demo. Also signed into the receipt.","type":"string"},"fail_closed":{"description":"Present and true only when a finance check failed closed because the primary model was unavailable. Treat it as review.","type":"boolean"},"mode":{"description":"Present only when the ⟨54 unchanged words⟩ ","rejected","low_confidence","unverifiable","false_consensus_risk","primary_engine_unavailable"],"type":"string"},"hint": ⟨617 unchanged words⟩
⟨78 unchanged words⟩ numeric, onchain, required_fields, types, format,sum.sum, duplicate. duplicate (at most 1, API key only) compares an invoice with ones this key recorded earlier and stores keyed fingerprints only when store is true. At most 3 url_contains checks. Local checks run ⟨196 unchanged words⟩ "total"],"type":"object"},{"additionalProperties":false,"description":"Duplicate invoice check (needs an API key, at most 1 per call). Compares this invoice with ones the same key recorded earlier. Stores keyed HMAC fingerprints only, and only when store is true.","properties":{"amount_path":{"description":"Dot path into the output JSON, at most 8 segments, e.g. invoice.total or items.0.id.","maxLength":128,"minLength":1,"type":"string"},"currency_path":{"description":"Dot path into the output JSON, at most 8 segments, e.g. invoice.total or items.0.id.","maxLength":128,"minLength":1,"type":"string"},"date_path":{"description":"Dot path to a YYYY-MM-DD invoice date. Enables the same vendor, amount and date rule.","maxLength":128,"minLength":1,"type":"string"},"invoice_id_path":{"description":"Dot path into the output JSON, at most 8 segments, e.g. invoice.total or items.0.id.","maxLength":128,"minLength":1,"type":"string"},"retain_days":{"default":180,"maximum":400,"minimum":1,"type":"integer"},"store":{"default":false,"description":"Record this invoice's fingerprints so later calls can match it.","type":"boolean"},"type":{"const":"duplicate"},"vendor_path":{"description":"Dot path into the output JSON, at most 8 segments, e.g. invoice.total or items.0.id.","maxLength":128,"minLength":1,"type":"string"},"window_days":{"default":3,"maximum":30,"minimum":0,"type":"integer"}},"required":["type","vendor_path","invoice_id_path","amount_path"],"type":"object"},{"description":"Existing types, unchanged: url_contains, json_schema, equals, ⟨60 unchanged words⟩ {"type":"string"},"type":"array"},"mode":{"description":"Optional. blocking (the default) is today's behaviour. advisory computes the same verdict, checks, next_step and receipt, then adds mode, decision_owner human, recommended_action (approve, review or return) and a notice. The receipt signs mode advisory as schema_version 5. Same price.","enum":["blocking","advisory"],"type":"string"},"retain":{"description":"Optional. true ⟨76 unchanged words⟩
⟨16 unchanged words⟩ ,"claims":{"type":"array"},"decision_owner":{"description":"Advisory only. A person owns the decision.","enum":["human"],"type":"string"},"duplicate":{"description":"Present only when the call sent a duplicate check. status is unique, duplicate, possible_duplicate, replay or not_checked. Carries no invoice data.","type":"object"},"engine":{"description":"groq, workers_ai, deterministic, or demo.","type":"string"},"mode":{"description":"Present only when the call sent mode: advisory.","enum":["advisory"],"type":"string"},"next_step":{"additionalProperties":false,"properties":{" ⟨34 unchanged words⟩ format_mismatch","sum_mismatch","check_failed","external_check_failed","duplicate_invoice","possible_duplicate","quality_issue","contradicted_claims","rejected","low_confidence"," ⟨26 unchanged words⟩ ,"hint"],"type":"object"},"notice":{"description":"Advisory only. Fixed text: the call does not approve, hold or release any payment.","type":"string"},"reasons":{"items":{"type":"string" ⟨117 unchanged words⟩ ,"kid":{"type":"string"},"mode":{"description":"Present only on schema 5: the call was advisory, so a person, not the API, owned the decision. Blocking receipts omit it.","enum":["advisory"],"type":"string"},"payment":{"additionalProperties":false,"description":"x402 ⟨139 unchanged words⟩ :"string"},"schema_version":{"description":"5 is schema 4 plus a signed mode advisory, minted only for mode: advisory calls. 4 omits key_prefix from payment so a published receipt ⟨34 unchanged words⟩ still verify.","enum":[2,3,4,5],"type":"integer"},"score":{ ⟨120 unchanged words⟩
Check an invoice for duplicates before the agent pays — Duplicate invoice check before an agent pays. Same as judge with one duplicate check: it compares this invoice with the invoices this API key recorded earlier and also judges it. Call it before an agent pays or approves an invoice or payment instruction. Inputs: the judge inputs (task, agent_output as the invoice JSON, evidence, criteria, checks, mode, tags) plus duplicate {vendor_path, invoice_id_path, amount_path, currency_path?, date_path?, window_days?, store?, retain_days?}. Returns the judge result plus duplicate.status (unique, duplicate, possible_duplicate, replay or not_checked). On …
{"additionalProperties":false,"properties":{"data_sharing":{"description":"Optional, off by default. Only true turns on opt-in data sharing for the new key: redacted samples of its calls are kept 90 days. Turn it off anytime with PATCH /v1/keys/me/data-sharing. See https://screwtape.ai/privacy/#opt-in-data-sharing.","type":"boolean"},"email":{"description":"Optional. Omit it to ⟨55 unchanged words⟩
⟨79 unchanged words⟩ Returns: verdict, score, reasons, engine, next_step, request_id, retention, the tags when sent, and ⟨19 unchanged words⟩ most 2 or 3 times. On fail, stop. Optional checks run first; on failure you get next_step.hint saying what to fix. Branch on next_step.action (pass, retry or escalate). Cost: 1 call. A free key covers ⟨42 unchanged words⟩
⟨74 unchanged words⟩ url_contains, json_schema, equals, regex, numeric,onchain.onchain, required_fields, types, format, sum. At most 3 url_contains checks. Local checks run first; if one fails, no model is called and next_step says what to fix.","items":{"oneOf":[{"additionalProperties":false,"properties":{"paths":{"items":{"description":"Dot path into the output JSON, at most 8 segments, e.g. invoice.total or items.0.id.","maxLength":128,"minLength":1,"type":"string"},"maxItems":50,"minItems":1,"type":"array"},"type":{"const":"required_fields"}},"required":["type","paths"],"type":"object"},{"additionalProperties":false,"properties":{"fields":{"additionalProperties":{"enum":["string","number","integer","boolean","object","array","null"]},"maxProperties":50,"minProperties":1,"type":"object"},"type":{"const":"types"}},"required":["type","fields"],"type":"object"},{"additionalProperties":false,"properties":{"field":{"description":"Dot path into the output JSON, at most 8 segments, e.g. invoice.total or items.0.id.","maxLength":128,"minLength":1,"type":"string"},"format":{"enum":["email","iso_date","iso_datetime","url","uuid","e164_phone","currency_code","integer_string"]},"type":{"const":"format"}},"required":["type","field","format"],"type":"object"},{"additionalProperties":false,"properties":{"parts":{"items":{"description":"Dot path into the output JSON, at most 8 segments, e.g. invoice.total or items.0.id.","maxLength":128,"minLength":1,"type":"string"},"maxItems":20,"minItems":1,"type":"array"},"tolerance":{"default":0.0001,"maximum":1000000,"minimum":0,"type":"number"},"total":{"description":"Dot path into the output JSON, at most 8 segments, e.g. invoice.total or items.0.id.","maxLength":128,"minLength":1,"type":"string"},"type":{"const":"sum"}},"required":["type","parts","total"],"type":"object"},{"description":"Existing types, unchanged: url_contains, json_schema, equals, regex, numeric, onchain.","properties":{"type":{"enum":["url_contains","json_schema","equals","regex","numeric","onchain"]}},"required":["type"],"type":"object"}]},"maxItems":8,"type":"array"},"criteria":{"description":"Optional. ⟨51 unchanged words⟩ requires an API key. Default false stores nothing.","type":"boolean"},"share":{"description":"Optional. false keeps this call out of opt-in data sharing even when the key has sharing on. It cannot turn sharing on.","type":"boolean"},"task":{ ⟨33 unchanged words⟩
⟨24 unchanged words⟩ or demo.","type":"string"},"next_step":{"additionalProperties":false,"properties":{"action":{"description":"pass: use the output. retry: fix it using hint and call again. escalate: stop and hand to a person.","enum":["pass","retry","escalate"],"type":"string"},"error_type":{"enum":["none","invalid_json","not_an_object","missing_required_field","type_mismatch","format_mismatch","sum_mismatch","check_failed","external_check_failed","quality_issue","contradicted_claims","rejected","low_confidence","unverifiable","false_consensus_risk"],"type":"string"},"hint":{"description":"Template text naming fields and types to fix. Never contains values from agent_output.","maxLength":300,"type":"string"}},"required":["action","error_type","hint"],"type":"object"},"reasons":{"items":{"type":"string" ⟨460 unchanged words⟩ {"enum":["verified","judged","heuristic","failed"],"type":"string"},"version": ⟨18 unchanged words⟩
⟨130 unchanged words⟩ workers_ai, deterministic, or demo. Present on schema3.3 and 4.","type":"string"},"issued_at":{ ⟨13 unchanged words⟩ :"x402 includes tx, network, and payer. Schema 4 free-key and prepaid payments are the label only, with no key_prefix. Schema 3 may include the key display prefix, not the secret. demo is the /try/ allowance.","properties":{"key_prefix":{"description":"Present on schema 3 free-key and prepaid payments. Omitted on schema 4. Never the secret.","type":"string"},"network":{"type" ⟨83 unchanged words⟩ :"string"},"schema_version":{"description":"4 omits key_prefix from payment so a published receipt verifies without key info. 3 adds verification, engine, checks (type, passed, and evidence_hash only), and a claimscount.count, and may include key_prefix. 2 can carry agent_id and version. Older receipts omit this field and still verify.","enum":[2,3,4],"type":"integer"},"score":{ ⟨52 unchanged words⟩ },"verification":{"description":"verified whenevery supplieda check of the answer passed. judged whenonlya modelran.checked it and did not contradict it. heuristic when only string checks ran. failed when the agreed answer failed verification.","enum":["verified","judged","heuristic","failed"],"type":"string"},"version": ⟨72 unchanged words⟩
⟨55 unchanged words⟩ a string.","type":"string"},"checks":{"description":"Optional. The worker runs each check. A failed check forces verdict fail. Types: url_contains, json_schema, equals, regex, numeric, onchain. At most 3 url_contains checks.","items":{"type":"object"},"maxItems":8,"type":"array"},"criteria":{"description":"Optional. Facts or terms ⟨92 unchanged words⟩
⟨9 unchanged words⟩ agent_id tag.","type":"string"},"checks":{"type":"array"},"claims":{"type":"array"},"engine":{"description":"groq, workers_ai, deterministic, or demo.","type":"string"},"reasons":{"items" ⟨28 unchanged words⟩ ["Ed25519"],"type":"string"},"checks":{"description":"Type, passed, and evidence_hash only. Fetched page text and chain responses are not stored.","items":{"additionalProperties":false,"properties":{"evidence_hash":{"type":"string"},"passed":{"type":"boolean"},"type":{"type":"string"}},"required":["type","passed","evidence_hash"],"type":"object"},"type":"array"},"claims":{"additionalProperties":false,"properties":{"contradicted":{"type":"integer"},"supported":{"type":"integer"},"total":{"type":"integer"},"unsupported":{"type":"integer"}},"required":["total","supported","contradicted","unsupported"],"type":"object"},"endpoint":{"enum":["/v1/judge","/v1/consensus"],"type":"string"},"engine":{"description":"groq, workers_ai, deterministic, or demo. Present on schema 3.","type":"string"},"issued_at":{"description":"ISO-8601 UTC timestamp.", ⟨120 unchanged words⟩ :"string"},"schema_version":{"description":"23foraddsreceiptsverification,thatengine, checks (type, passed, and evidence_hash only), and a claims count. 2 can carry agent_id and version. Older receipts omit this field and still verify.","enum":[2,3],"type":"integer"},"score":{ ⟨48 unchanged words⟩ high).","type":"string"},"verification":{"description":"verified when every supplied check passed. judged when only a model ran. heuristic when only string checks ran.","enum":["verified","judged","heuristic"],"type":"string"},"version":{"description":"Present when the call ⟨35 unchanged words⟩ {"enum":["pass","fail","retry"],"type":"string"},"verification":{"enum":["verified","judged","heuristic"],"type":"string"},"version": ⟨18 unchanged words⟩
{"additionalProperties":false,"properties":{"answersagent_id":{"description":"AtOptionalleasttagtwoforanswersthe agent making this call. 1 to 64 characters: letters, digits, and . _ : -. This is not thesameper-answerminimumagent_idasonPOSTa/v1/consensus.consensus answer.","maxLength":64,"pattern":"^[A-Za-z0-9._:-]{1,64}$","type":"string"},"answers":{"description":"2 to 16 answers. Each is {agent_id (optional, string), output (string)}. Use one entry per independent agent or sample.","items":{"properties":{"agent_id":{"description":"Optional name of the agent or sample that produced this answer.","type":"string"},"output":{"description":"That agent's answer.","type":"string"}},"required":["output ⟨4 unchanged words⟩ "minItems":2,"type":"array"},"evidence":{"description":"Optional passages the agreed answer should be grounded in. A string is one passage. An array holds up to 20 passages of 4000 characters. Used when scoring false-consensus risk.","oneOf":[{"maxLength":4000,"type":"string"},{"items":{"maxLength":4000,"type":"string"},"maxItems":20,"type":"array"}]},"retain":{"description":"Optional. true stores this call for 24 hours; requires an API key. Default false.","type":"boolean"},"task":{"description":"The question all answers respond to.","type":"string"},"version":{"description":"Optional version tag for that agent. At most 64 characters.","maxLength":64,"type":"string"}},"required":[" ⟨4 unchanged words⟩
before
—after
{"properties":{"agent_id":{"description":"Echoed when the call sent an agent_id tag. Not the per-answer agent_id.","type":"string"},"agreement_score":{"type":"number"},"clusters":{"type":"array"},"consensus_answer":{"type":"string"},"engine":{"type":"string"},"false_consensus_risk":{"enum":["low","medium","high"],"type":"string"},"reasons":{"items":{"type":"string"},"type":"array"},"receipt":{"additionalProperties":false,"properties":{"agent_id":{"description":"Present when the call sent an agent_id tag. Omitted otherwise. Older receipts omit it.","type":"string"},"alg":{"enum":["Ed25519"],"type":"string"},"endpoint":{"enum":["/v1/judge","/v1/consensus"],"type":"string"},"issued_at":{"description":"ISO-8601 UTC timestamp.","type":"string"},"kid":{"type":"string"},"payment":{"additionalProperties":false,"description":"x402 includes tx, network, and payer. free-key and prepaid include the key display prefix, not the secret. demo is the /try/ allowance.","properties":{"key_prefix":{"type":"string"},"network":{"type":"string"},"payer":{"type":"string"},"tx":{"description":"Settled transaction id, or the accepted payment nonce when nothing was settled.","type":"string"},"type":{"enum":["x402","free-key","prepaid","demo"],"type":"string"}},"required":["type"],"type":"object"},"receipt_id":{"type":"string"},"request_sha256":{"description":"Lowercase hex SHA-256 of the canonical JSON of the normalized request. Judge requests include task, agent_output, evidence, and criteria. Consensus requests include task and answers, plus evidence when it was sent. agent_id and version tags are signed separately and are not part of this hash.","type":"string"},"schema_version":{"description":"2 for receipts that can carry agent_id and version. Older receipts omit this field and still verify.","enum":[2],"type":"integer"},"score":{"description":"Judge score from 0 to 1. For consensus this is agreement_score.","type":"number"},"signature":{"description":"Unpadded base64url Ed25519 signature over the canonical JSON of every field except signature.","type":"string"},"verdict":{"description":"Judge verdict (pass, fail, or retry). For consensus this is false_consensus_risk (low, medium, or high).","type":"string"},"version":{"description":"Present when the call sent a version tag. Omitted otherwise. Older receipts omit it.","type":"string"}},"required":["receipt_id","issued_at","endpoint","request_sha256","verdict","score","payment","alg","kid","signature"],"type":"object"},"request_id":{"type":"string"},"retention":{"type":"object"},"version":{"description":"Echoed when the call sent a version tag.","type":"string"}},"required":["agreement_score","false_consensus_risk","reasons","request_id"],"type":"object"}before
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":true,"readOnlyHint":true,"title":"False-consensus check across 2 to 16 agent answers"}before
—after
Get a free API key (proof of work, no human approval)Create afree-tierfree Screwtape.ai API key (100 calls per UTC day) with no human approval.anditnameonlyarewhenoptional.nopow_nonceScrewtape key isrequired:configured and you can compute SHA-256ofwithUTF-8ascrewtape-signup-v1:YYYY-MM-DD:<nonce>code tool, because the proof of work musthavebe12computedleadingexactly,zeronotbitsguessed. Do NOT call it when a key already exists, to get more quota (it is limited to 5 keys per IP per hour andtheper UTC day), or without a valid pow_nonce. A missing noncematchesreturns an error that describes the challenge. Inputs: pow_nonce (required string matching ^[A-Za-z0-9_-]{8,64}$.$;TheSHA-256keyofisthereturnedUTF-8once.stringOnlyscrewtape-signup-v1:<currentitsUTCSHA-256YYYY-MM-DD>:<nonce>hashmust start with 12 zero bits, which isstored.3Fivehexkeyszeros),peremailIP(optional),pernameUTC(optional,day.atThismosttool80doescharacters).notReturns:needapi_keya(shown once; store it securely and send it as Authorization: Bearer),tokenkeyormetadataaand request_id. Only the key's SHA-256 hash is stored. Cost: free. Needs no key and no payment.
⟨15 unchanged words⟩ ":{"description":"Optional agent or clientname.name, at most 80 characters.","maxLength":80,"type":"string"},"pow_nonce":{" ⟨34 unchanged words⟩
before
—after
{"properties":{"api_key":{"type":"string"},"key":{"type":"object"},"request_id":{"type":"string"}},"required":["api_key","key","request_id"],"type":"object"}before
—after
{"destructiveHint":false,"idempotentHint":false,"openWorldHint":false,"readOnlyHint":false,"title":"Get a free API key (proof of work, no human approval)"}before
—after
Judge one agent output (pass, fail or retry)ReturnAn independent pass/fail/retry verdict on ONE agent output. Call it before you return, store or act on a draft answer, especially when you have the evidence the answer should be based on. Do NOT call it to look up facts (it does no web search and only checks against the evidence you pass),failto compare several agents' answers (use consensus), orretryfor offline evaluation over a dataset. Inputs: task, agent_output, evidence, criteria, retain, and optional agent_id and version tags. Returns: verdict,forscore,onereasons,agentengine,outputrequest_id, retention, the tags when sent, and receipt when signing is configured. On pass, use the output. On retry, revise using reasons and call again, at most 2 or 3 times. On fail, stop. Cost: 1 call. A free key covers 100 calls per UTC day; without a key, pay $0.005 USDC on Base or Solana per call with x402. Without ascorekey or payment, tools/call is HTTP 200 with isError true andreasons.the x402 PaymentRequirements in structuredContent. Retry with params._meta['x402/payment'].
{"additionalProperties":false,"properties":{"agent_id":{"description":"Optional tag for the agent making this call. 1 to 64 characters: letters, digits, and . _ : -. This is not the per-answer agent_id on a consensus answer.","maxLength":64,"pattern":"^[A-Za-z0-9._:-]{1,64}$","type":"string"},"agent_output":{"description":"The agent's draft answer to check. Pass JSON as a string.","type":"string"},"criteria":{"description":"Optional. Facts or terms the answer must contain, one per string.","items":{"type":"string"},"type":"array"},"evidence":{"description":"Optional. Source passages the answer must be grounded in, one string per passage. Without evidence, grounding cannot be checked.","items":{"type":"string"},"type":"array"},"retain":{"description":"StoreOptional. true stores this call for 24hours.hours;Requiresrequires an API key.DefaultsDefaulttofalsefalse.stores nothing.","type":"boolean"},"task":{"description":"The original instruction or question the agent was answering.","type":"string"},"version":{"description":"Optional version tag for that agent. At most 64 characters.","maxLength":64,"type":"string"}},"required":[" ⟨4 unchanged words⟩
before
—after
{"properties":{"agent_id":{"description":"Echoed when the call sent an agent_id tag.","type":"string"},"engine":{"type":"string"},"reasons":{"items":{"type":"string"},"type":"array"},"receipt":{"additionalProperties":false,"properties":{"agent_id":{"description":"Present when the call sent an agent_id tag. Omitted otherwise. Older receipts omit it.","type":"string"},"alg":{"enum":["Ed25519"],"type":"string"},"endpoint":{"enum":["/v1/judge","/v1/consensus"],"type":"string"},"issued_at":{"description":"ISO-8601 UTC timestamp.","type":"string"},"kid":{"type":"string"},"payment":{"additionalProperties":false,"description":"x402 includes tx, network, and payer. free-key and prepaid include the key display prefix, not the secret. demo is the /try/ allowance.","properties":{"key_prefix":{"type":"string"},"network":{"type":"string"},"payer":{"type":"string"},"tx":{"description":"Settled transaction id, or the accepted payment nonce when nothing was settled.","type":"string"},"type":{"enum":["x402","free-key","prepaid","demo"],"type":"string"}},"required":["type"],"type":"object"},"receipt_id":{"type":"string"},"request_sha256":{"description":"Lowercase hex SHA-256 of the canonical JSON of the normalized request. Judge requests include task, agent_output, evidence, and criteria. Consensus requests include task and answers, plus evidence when it was sent. agent_id and version tags are signed separately and are not part of this hash.","type":"string"},"schema_version":{"description":"2 for receipts that can carry agent_id and version. Older receipts omit this field and still verify.","enum":[2],"type":"integer"},"score":{"description":"Judge score from 0 to 1. For consensus this is agreement_score.","type":"number"},"signature":{"description":"Unpadded base64url Ed25519 signature over the canonical JSON of every field except signature.","type":"string"},"verdict":{"description":"Judge verdict (pass, fail, or retry). For consensus this is false_consensus_risk (low, medium, or high).","type":"string"},"version":{"description":"Present when the call sent a version tag. Omitted otherwise. Older receipts omit it.","type":"string"}},"required":["receipt_id","issued_at","endpoint","request_sha256","verdict","score","payment","alg","kid","signature"],"type":"object"},"request_id":{"type":"string"},"retention":{"type":"object"},"score":{"type":"number"},"verdict":{"enum":["pass","fail","retry"],"type":"string"},"version":{"description":"Echoed when the call sent a version tag.","type":"string"}},"required":["verdict","score","reasons","request_id"],"type":"object"}before
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":true,"readOnlyHint":true,"title":"Judge one agent output (pass, fail or retry)"}Buy a prepaid pack with USDC — Return the x402 payment requirements for a Starter ($30, 10000 calls) or Builder ($100, 50000 calls) prepaid pack, plus how to pay with USDC on Base or Solana. pack is starter or builder. This call does not move funds and does not require a key or a payment. POST /v1/packs/{pack}/buy with PAYMENT-SIGNATURE to pay. Pay with PayPal at POST /v1/packs/checkout.
Publish one signed receipt as a Screwtape Verified badge — Publish a signed receipt you own so a public page and a Screwtape Verified badge can link to that one verdict. Call it when you want to show that a specific output received a specific verdict. Do NOT call it to certify an agent in general: the page says this output received this verdict at this time, and it is not a general safety certification of the agent. Nothing is public until this call. Inputs: receipt_id (required), include_content (optional boolean, default false; true stores and shows the task and agent output only if that call was retained), label (optional, at most 80 characters), …