{"serverId":"mcp-registry/io.github.wyattbenno777/icme-preflight","tools":[{"name":"check_action","fixed":{"name":"check_action","description":"Enforce a guardrail: verify an agent action against a compiled policy using formal verification. An SMT solver — not an LLM — determines whether the action satisfies every rule. Returns SAT (allowed) or UNSAT (blocked) with extracted values and a cryptographic ZK proof that the check was performed correctly. Cannot be jailbroken. 1 credit ($0.01). Requires api_key. Tip: end the action with an explicit claim like 'I assert this complies with the policy' for best extraction.","inputSchema":{"type":"object","required":["policy_id","action","api_key"],"properties":{"action":{"type":"string","description":"The agent action to verify against the policy (max 2000 chars)"},"api_key":{"type":"string","description":"Your ICME API key"},"policy_id":{"type":"string","format":"uuid","description":"Policy ID from make_rules"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":240,"tokensAfter":240},{"name":"check_action_paid","fixed":{"name":"check_action_paid","description":"Same formal verification as check_action, but pay per call with x402 ($0.10 USDC on Base) instead of using credits. No API key or account needed — any agent with a wallet can verify actions on the fly. Returns SAT (allowed) or UNSAT (blocked) with extracted values and optional ZK proof.","inputSchema":{"type":"object","required":["policy_id","action"],"properties":{"action":{"type":"string","description":"The agent action to verify against the policy (max 2000 chars)"},"policy_id":{"type":"string","format":"uuid","description":"Policy ID from make_rules"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":169,"tokensAfter":169},{"name":"check_logic","fixed":{"name":"check_logic","description":"Catch contradictions in reasoning before acting on it. FREE — no account needed. Extracts quantitative and logical claims from any plan, calculation, or chain of thought, then uses a Z3 SAT solver to mathematically prove whether they contradict each other. This is formal verification, not an LLM second-guessing itself. Returns CONSISTENT, CONTRADICTION, or UNKNOWN with the extracted claims.","inputSchema":{"type":"object","required":["reasoning"],"properties":{"show_smt":{"type":"boolean","description":"Include the generated SMT-LIB2 formula in the response for inspection (default: false)"},"reasoning":{"type":"string","description":"The reasoning, plan, or chain of thought to check. Be specific — include numbers, conditions, and constraints for the best results (max 2000 chars)"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":231,"tokensAfter":231},{"name":"check_relevance","fixed":{"name":"check_relevance","description":"Free relevance screen — checks whether an action touches any of your policy variables before running a paid check. Returns a relevance score and which variables matched. If should_check is true, run check_action. If false, the action is unrelated to your policy — skip the paid check. No credits charged. Requires api_key.","inputSchema":{"type":"object","required":["policy_id","action","api_key"],"properties":{"action":{"type":"string","description":"The agent action to screen (max 2000 chars)"},"api_key":{"type":"string","description":"Your ICME API key"},"policy_id":{"type":"string","format":"uuid","description":"Policy ID from make_rules"},"threshold":{"type":"number","description":"Relevance threshold (0.0 to 1.0). Default 0.0 — any match triggers should_check. Optional."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":231,"tokensAfter":231},{"name":"create_account","fixed":{"name":"create_account","description":"Create an ICME Preflight account with x402 USDC payment ($5.00 on Base). Returns an API key and 325 starting credits immediately. Save the api_key — it is shown only once. Use create_account_card instead if paying by credit card.","inputSchema":{"type":"object","required":["username"],"properties":{"username":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,32}$","description":"Unique username (1-32 chars, alphanumeric + hyphens/underscores)"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":135,"tokensAfter":135},{"name":"create_account_card","fixed":{"name":"create_account_card","description":"Create an ICME Preflight account with a credit card ($5.00 via Stripe). Returns a checkout_url — open it in a browser to pay. After payment completes, call poll_session with the session_id to retrieve your API key.","inputSchema":{"type":"object","required":["username"],"properties":{"username":{"type":"string","description":"Unique username (1-32 chars, alphanumeric + hyphens/underscores)"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":123,"tokensAfter":123},{"name":"get_scenarios","fixed":{"name":"get_scenarios","description":"Review auto-generated test scenarios for a compiled policy. Shows example actions that should pass and fail, so you can verify the policy behaves as intended before deploying it. Requires api_key.","inputSchema":{"type":"object","required":["policy_id","api_key"],"properties":{"api_key":{"type":"string","description":"Your ICME API key"},"policy_id":{"type":"string","format":"uuid","description":"Policy ID from make_rules"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":131,"tokensAfter":131},{"name":"quick_check","fixed":{"name":"quick_check","description":"Fast yes/no guardrail verdict — returns only ALLOWED or BLOCKED with no proof details. Use when you need a lightweight gate and don't need the full SAT/UNSAT report or ZK proof. Same formal verification under the hood, just a minimal response. 1 credit. Requires api_key.","inputSchema":{"type":"object","required":["policy_id","action","api_key"],"properties":{"action":{"type":"string","description":"The agent action to check (max 2000 chars)"},"api_key":{"type":"string","description":"Your ICME API key"},"policy_id":{"type":"string","format":"uuid","description":"Policy ID from make_rules"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":177,"tokensAfter":177},{"name":"run_tests","fixed":{"name":"run_tests","description":"Run saved test cases against a policy to confirm it blocks what it should block and allows what it should allow. Run this after make_rules and before using the policy in production. Requires api_key.","inputSchema":{"type":"object","required":["policy_id","api_key"],"properties":{"api_key":{"type":"string","description":"Your ICME API key"},"policy_id":{"type":"string","format":"uuid","description":"Policy ID to test"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":128,"tokensAfter":128}],"toolsChanged":9,"tokensSaved":0,"todo":[],"note":"Deterministic fixes. Changes marked verify need a human look before shipping (renames, inferred annotations, inferred types, removed text). Parameter descriptions in `todo` need to be written by someone who knows the API."}