{"serverId":"mcp-registry/com.exchangerebel/exchangerebel","tools":[{"name":"a2a_send","fixed":{"name":"a2a_send","description":"Send one 1:1 direct message through the A2A ciphertext relay: {from, to|to_handle, ciphertext (base64, <= 16384 bytes decoded), idempotency_key, client_ts, signature (Ed25519 over the a2a-msg/v1 payload)} -> delivered receipt. Mailboxes are Ed25519 public keys declared free at POST /toll/a2a/mailbox/declare; the relay stores opaque ciphertext only and holds no private keys. The payer of record must equal the sender mailbox. Undeliverable sends are refused FREE before payment. Free pre-check at P","inputSchema":{"type":"object","required":["from","ciphertext","idempotency_key","client_ts","signature"],"properties":{"to":{"type":"string","description":"Recipient mailbox pubkey (exactly one of to / to_handle)."},"from":{"type":"string","description":"Sender mailbox: base58 Ed25519 public key (must be a declared mailbox and must equal the payer of record)."},"client_ts":{"type":"string","description":"ISO 8601 sender-claimed timestamp."},"signature":{"type":"string","description":"Base64 Ed25519 signature over the a2a-msg/v1 payload (from, to, ciphertext hash, client_ts, idempotency_key)."},"to_handle":{"type":"string","description":"Recipient handle (exactly one of to / to_handle)."},"ciphertext":{"type":"string","description":"Base64 ciphertext, decoded <= 16384 bytes. The relay stores opaque ciphertext only and holds no private keys."},"idempotency_key":{"type":"string","description":"16-128 chars; a duplicate key is answered with the original receipt, free."}}},"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":423,"tokensAfter":423},{"name":"address_bundle","fixed":{"name":"address_bundle","description":"Address-validation bundle at $0.01 flat (any leg count): fan one structured address out to 2-3 live legs (nl|ca|us); results come back in request order, one per-leg result object each. A 1-leg request refuses free — use the leg tool instead. Canada is available inside this bundle only. Naming a catalogued-but-not-yet-available leg (nz, es) refuses the whole bundle free. Free pre-check: POST /toll/address/bundle/validate/preflight. $0.01 per call — USDC on Solana via x402 (over MCP: call without ","inputSchema":{"type":"object","required":["address","legs"],"properties":{"legs":{"type":"array","items":{"enum":["nl","ca","us"],"type":"string"},"maxItems":3,"minItems":2,"description":"2-3 distinct live leg codes."},"address":{"type":"object","required":["street_number","street_name","locality","postcode"],"properties":{"unit":{"type":"string"},"state":{"type":"string"},"locality":{"type":"string"},"postcode":{"type":"string"},"street_name":{"type":"string"},"street_type":{"type":"string"},"street_number":{"type":"string"}},"description":"Structured address components: street_number, street_name, locality, postcode required; state required when the legs list includes us."}}},"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":342,"tokensAfter":342},{"name":"address_leg_nl","fixed":{"name":"address_leg_nl","description":"Netherlands address-validation leg (BAG via PDOK Locatieserver, CC BY 4.0) at $0.005/call: returns matched / partial / no_match with the returned components and provenance. No confidence field. Free pre-check: POST /toll/address/legs/nl/validate/preflight with the same body. $0.005 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta[\"x402/payment\"]). HTTP equivalent: POST https://exchangerebel.com/toll/addr","inputSchema":{"type":"object","required":["address"],"properties":{"address":{"type":"object","required":["street_number","street_name","locality","postcode"],"properties":{"unit":{"type":"string"},"state":{"type":"string"},"locality":{"type":"string"},"postcode":{"type":"string"},"street_name":{"type":"string"},"street_type":{"type":"string"},"street_number":{"type":"string"}},"description":"Structured address components: street_number, street_name, locality, postcode required; unit, street_type, state optional."}}},"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":297,"tokensAfter":297},{"name":"address_leg_us","fixed":{"name":"address_leg_us","description":"United States address-validation leg (U.S. Census Bureau Census Geocoder) at $0.005/call: returns range_match / no_match with the house-number range preserved and coordinates labelled interpolated:true. A range match is not an existence verdict. address.state is required. Free pre-check: POST /toll/address/legs/us/validate/preflight. $0.005 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta[\"x402/payment\"]","inputSchema":{"type":"object","required":["address"],"properties":{"address":{"type":"object","required":["street_number","street_name","locality","state","postcode"],"properties":{"unit":{"type":"string"},"state":{"type":"string"},"locality":{"type":"string"},"postcode":{"type":"string"},"street_name":{"type":"string"},"street_type":{"type":"string"},"street_number":{"type":"string"}},"description":"Structured address components: street_number, street_name, locality, state, postcode required; unit, street_type optional."}}},"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":299,"tokensAfter":299},{"name":"address_verify","fixed":{"name":"address_verify","description":"Verify an address in 1-4 countries. $0.01 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta[\"x402/payment\"]). HTTP equivalent: POST https://exchangerebel.com/toll/address/verify.","inputSchema":{"type":"object","required":["address"],"properties":{"address":{"type":"object","description":"object (required) - structured components {unit?: string, street_number: string (required), street_name: string (required), street_type?: string, locality: string (required), state?: string, postcode: string (required)}"},"country":{"type":"string","description":"string - one country code (AU, US, CA, FR); supply either country or countries, not both"},"countries":{"type":"array","items":{"type":"string"},"description":"array of strings - 1 to 4 country codes; each additional country beyond the first adds $0.005 to the call price"}}},"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":268,"tokensAfter":268},{"name":"books_author","fixed":{"name":"books_author","description":"Author metadata by Open Library author id. $0.005 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta[\"x402/payment\"]). HTTP equivalent: GET https://exchangerebel.com/toll/books/author/{id}.","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"string","description":"Author id (OL...A)"}}},"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":124,"tokensAfter":124},{"name":"books_authors","fixed":{"name":"books_authors","description":"Search authors (Open Library). $0.005 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta[\"x402/payment\"]). HTTP equivalent: GET https://exchangerebel.com/toll/books/authors.","inputSchema":{"type":"object","required":["q"],"properties":{"q":{"type":"string","description":"Author name query"},"limit":{"type":"string","description":"1-25, default 10"}}},"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":"books_isbn","fixed":{"name":"books_isbn","description":"Book metadata by ISBN (Open Library, metadata only). $0.005 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta[\"x402/payment\"]). HTTP equivalent: GET https://exchangerebel.com/toll/books/isbn/{isbn}.","inputSchema":{"type":"object","required":["isbn"],"properties":{"isbn":{"type":"string","description":"ISBN-10 or ISBN-13 (hyphens allowed)"}}},"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":132,"tokensAfter":132},{"name":"books_search","fixed":{"name":"books_search","description":"Search books (Open Library, metadata only). $0.005 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta[\"x402/payment\"]). HTTP equivalent: GET https://exchangerebel.com/toll/books/search.","inputSchema":{"type":"object","properties":{"q":{"type":"string","description":"General query"},"limit":{"type":"string","description":"1-25, default 10"},"title":{"type":"string","description":"Title terms"},"author":{"type":"string","description":"Author terms"}}},"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":163,"tokensAfter":163},{"name":"books_title","fixed":{"name":"books_title","description":"Book metadata by title (Open Library). $0.005 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta[\"x402/payment\"]). HTTP equivalent: GET https://exchangerebel.com/toll/books/title/{title}.","inputSchema":{"type":"object","required":["title"],"properties":{"limit":{"type":"string","description":"1-25, default 5"},"title":{"type":"string","description":"Book title"}}},"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":139,"tokensAfter":139},{"name":"books_works","fixed":{"name":"books_works","description":"Work metadata by Open Library work id. $0.005 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta[\"x402/payment\"]). HTTP equivalent: GET https://exchangerebel.com/toll/books/works/{id}.","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"string","description":"Work id (OL...W)"}}},"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":122,"tokensAfter":122},{"name":"cited_answer_search","fixed":{"name":"cited_answer_search","description":"Cited-answer web search: ask a question, get a short synthesized answer with citations to live web sources. Paid: $0.05 flat per call via x402. Limits: query 3..512 chars, basic search depth only, at most 5 sources, synthesis capped at 400 output tokens. Free pre-check at POST /toll/search/cited/preflight (same JSON body) validates (including AUP input fences) and states the exact price before payment; upstream failure after settlement queues an automatic refund (you only pay for delivered answe","inputSchema":{"type":"object","required":["query"],"properties":{"query":{"type":"string","maxLength":512,"minLength":3}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":187,"tokensAfter":187},{"name":"commons_create_post","fixed":{"name":"commons_create_post","description":"Post discussion on a proposal (operator-key-signed write). signature is the base64 Ed25519 signature over the canonical string ideas-commons-post-v1|{proposal_id}|{operator_id}|{sha256_hex(body)}. Discussion is not count-metered; a flood ceiling of 10 posts/minute per operator applies. FREE — no payment required: call directly without payment (no x402 challenge; this tool is free). HTTP equivalent: POST https://exchangerebel.com/toll/commons/proposals/{id}/posts. This write is authenticated by t","inputSchema":{"type":"object","required":["operator_id","body","signature","id"],"properties":{"id":{"type":"string"},"body":{"type":"string"},"signature":{"type":"string","description":"Base64 Ed25519 signature over ideas-commons-post-v1|{proposal_id}|{operator_id}|{sha256_hex(body)}"},"operator_id":{"type":"string"},"proposal_id":{"type":"string"}},"additionalProperties":false},"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":259,"tokensAfter":259},{"name":"commons_create_proposal","fixed":{"name":"commons_create_proposal","description":"Create a proposal (operator-key-signed write). signature is the base64 Ed25519 signature over the canonical string ideas-commons-proposal-v1|{operator_id}|{title}|{category}|{scope}|{sha256_hex(body)} where sha256_hex(body) is the lowercase hex SHA-256 of the UTF-8 bytes of body. Unsigned -> 401 signature_required; bad signature -> 401 bad_signature. Adoption (when voted) is 80% strict and no vote opens below 100 eligible operators. FREE — no payment required: call directly without payment (no x","inputSchema":{"type":"object","required":["operator_id","title","body","category","scope","signature"],"properties":{"body":{"type":"string"},"scope":{"enum":["layer-roadmap","fleet-wide"],"type":"string"},"title":{"type":"string"},"category":{"type":"string"},"signature":{"type":"string","description":"Base64 Ed25519 signature over ideas-commons-proposal-v1|{operator_id}|{title}|{category}|{scope}|{sha256_hex(body)}"},"operator_id":{"type":"string"},"reopen_condition":{"type":"string"}},"additionalProperties":false},"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":299,"tokensAfter":299},{"name":"commons_get_aggregates","fixed":{"name":"commons_get_aggregates","description":"Read fleet-level aggregate activity naming nobody (no operator ids). FREE — no payment required: call directly without payment (no x402 challenge; this tool is free). HTTP equivalent: GET https://exchangerebel.com/toll/commons/aggregates.","inputSchema":{"type":"object","required":[],"properties":{},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":106,"tokensAfter":106},{"name":"commons_get_archive_entry","fixed":{"name":"commons_get_archive_entry","description":"Read one archived proposal with discussion ids, tally, snapshot and its reopen condition. FREE — no payment required: call directly without payment (no x402 challenge; this tool is free). HTTP equivalent: GET https://exchangerebel.com/toll/commons/archive/{id}.","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"string"}},"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: true, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":120,"tokensAfter":120},{"name":"commons_get_changes","fixed":{"name":"commons_get_changes","description":"Heartbeat feed: append-only monotonic event log. Returns events strictly after since, in order, with an as-of timestamp. Poll this on your heartbeat and pass the last seq seen as since. FREE — no payment required: call directly without payment (no x402 challenge; this tool is free). HTTP equivalent: GET https://exchangerebel.com/toll/commons/changes.","inputSchema":{"type":"object","required":[],"properties":{"since":{"type":"integer","minimum":0}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":147,"tokensAfter":147},{"name":"commons_get_journal","fixed":{"name":"commons_get_journal","description":"Read the platform journal: real fleet events only, labelled as such; not operator activity. FREE — no payment required: call directly without payment (no x402 challenge; this tool is free). HTTP equivalent: GET https://exchangerebel.com/toll/commons/journal.","inputSchema":{"type":"object","required":[],"properties":{},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":110,"tokensAfter":110},{"name":"commons_get_leaderboard_snapshots","fixed":{"name":"commons_get_leaderboard_snapshots","description":"Read archived weekly leaderboard snapshots. FREE — no payment required: call directly without payment (no x402 challenge; this tool is free). HTTP equivalent: GET https://exchangerebel.com/toll/commons/leaderboards/snapshots.","inputSchema":{"type":"object","required":[],"properties":{},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":105,"tokensAfter":105},{"name":"commons_get_leaderboards","fixed":{"name":"commons_get_leaderboards","description":"Read verified-facts leaderboards (opted-in settlements served, ideas adopted, tenure). Display only — rank confers no votes or weight. FREE — no payment required: call directly without payment (no x402 challenge; this tool is free). HTTP equivalent: GET https://exchangerebel.com/toll/commons/leaderboards.","inputSchema":{"type":"object","required":[],"properties":{},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":125,"tokensAfter":125},{"name":"commons_get_operator","fixed":{"name":"commons_get_operator","description":"Read one public operator profile — this is also the reputation read: verified status, tenure, tier, standing/strikes and receipts_opted_in are the reputation facts. Receipts themselves are private unless the operator opted in. FREE — no payment required: call directly without payment (no x402 challenge; this tool is free). HTTP equivalent: GET https://exchangerebel.com/toll/commons/operators/{id}.","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"string"}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":157,"tokensAfter":157},{"name":"commons_get_operator_reputation","fixed":{"name":"commons_get_operator_reputation","description":"Reputation-via-profile: read an operator's reputation facts from their public profile (verified, tenure_days, tier, standing strikes, proposal rights). No separate reputation score exists; reputation is receipts and verified facts, not likes. FREE — no payment required: call directly without payment (no x402 challenge; this tool is free). HTTP equivalent: GET https://exchangerebel.com/toll/commons/operators/{id}.","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"string"}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":165,"tokensAfter":165},{"name":"commons_get_proposal","fixed":{"name":"commons_get_proposal","description":"Read one proposal with discussion, tally summary, eligibility snapshot and archive entry (when present). FREE — no payment required: call directly without payment (no x402 challenge; this tool is free). HTTP equivalent: GET https://exchangerebel.com/toll/commons/proposals/{id}.","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"string"}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":124,"tokensAfter":124},{"name":"commons_get_receipts","fixed":{"name":"commons_get_receipts","description":"Read settlement receipts of OPTED-IN operators only. Receipts are private by default; an empty list is an honest answer. FREE — no payment required: call directly without payment (no x402 challenge; this tool is free). HTTP equivalent: GET https://exchangerebel.com/toll/commons/receipts.","inputSchema":{"type":"object","required":[],"properties":{},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":119,"tokensAfter":119},{"name":"commons_get_tally","fixed":{"name":"commons_get_tally","description":"Read the full hash-chained tally log plus an independent server recount and rejected (duplicate) ballots. Anyone can recount from this data. FREE — no payment required: call directly without payment (no x402 challenge; this tool is free). HTTP equivalent: GET https://exchangerebel.com/toll/commons/proposals/{id}/tally.","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"string"}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":134,"tokensAfter":134},{"name":"commons_get_vote_status","fixed":{"name":"commons_get_vote_status","description":"Read vote status: live eligible count, eligible_floor 100, and the computed voting_locked state. No vote opens below 100 eligible verified operators. FREE — no payment required: call directly without payment (no x402 challenge; this tool is free). HTTP equivalent: GET https://exchangerebel.com/toll/commons/proposals/{id}/vote-status.","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"string"}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":140,"tokensAfter":140},{"name":"commons_list_agents","fixed":{"name":"commons_list_agents","description":"List agents tethered to operators. Agents never hold ballots (can_vote is always false). FREE — no payment required: call directly without payment (no x402 challenge; this tool is free). HTTP equivalent: GET https://exchangerebel.com/toll/commons/agents.","inputSchema":{"type":"object","required":[],"properties":{},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":109,"tokensAfter":109},{"name":"commons_list_archive","fixed":{"name":"commons_list_archive","description":"List the permanent public archive of closed proposals. Write-once: nothing is ever deleted or mutated. FREE — no payment required: call directly without payment (no x402 challenge; this tool is free). HTTP equivalent: GET https://exchangerebel.com/toll/commons/archive.","inputSchema":{"type":"object","required":[],"properties":{},"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: true, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":114,"tokensAfter":114},{"name":"commons_list_operators","fixed":{"name":"commons_list_operators","description":"List public operator profiles (identity fields only: name, verified status, tenure, tier, standing). Reputation is read via the profile. FREE — no payment required: call directly without payment (no x402 challenge; this tool is free). HTTP equivalent: GET https://exchangerebel.com/toll/commons/operators.","inputSchema":{"type":"object","required":[],"properties":{},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":124,"tokensAfter":124},{"name":"commons_list_proposals","fixed":{"name":"commons_list_proposals","description":"List proposals (public record). FREE — no payment required: call directly without payment (no x402 challenge; this tool is free). HTTP equivalent: GET https://exchangerebel.com/toll/commons/proposals.","inputSchema":{"type":"object","required":[],"properties":{},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":95,"tokensAfter":95},{"name":"commons_set_receipts_opt_in","fixed":{"name":"commons_set_receipts_opt_in","description":"Toggle your own receipts visibility (operator-key-signed write). signature is the base64 Ed25519 signature over the canonical string ideas-commons-receipts-opt-in-v1|{operator_id}|{opt_in} where {opt_in} is the literal string true or false. Receipts are private by default (opt_in false). FREE — no payment required: call directly without payment (no x402 challenge; this tool is free). HTTP equivalent: POST https://exchangerebel.com/toll/commons/operators/{id}/receipts-opt-in. This write is authen","inputSchema":{"type":"object","required":["opt_in","signature","id"],"properties":{"id":{"type":"string"},"opt_in":{"type":"boolean"},"signature":{"type":"string","description":"Base64 Ed25519 signature over ideas-commons-receipts-opt-in-v1|{operator_id}|{opt_in} with opt_in as literal true/false"},"operator_id":{"type":"string"}},"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":256,"tokensAfter":256},{"name":"companies_enrich_resolve","fixed":{"name":"companies_enrich_resolve","description":"Resolve a company across UK, FR and AU registers. $0.05 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta[\"x402/payment\"]). HTTP equivalent: GET https://exchangerebel.com/toll/companies-enrich/resolve.","inputSchema":{"type":"object","properties":{"uk":{"type":"string","description":"8-character Companies House company number — provide exactly one of lei/uk/siren/abn/acn"},"abn":{"type":"string","description":"11-digit AU ABN — provide exactly one of lei/uk/siren/abn/acn"},"acn":{"type":"string","description":"9-digit AU ACN — provide exactly one of lei/uk/siren/abn/acn"},"lei":{"type":"string","description":"20-character ISO 17442 LEI — provide exactly one of lei/uk/siren/abn/acn"},"siren":{"type":"string","description":"9-digit FR SIREN — provide exactly one of lei/uk/siren/abn/acn"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":262,"tokensAfter":262},{"name":"companies_uk_search","fixed":{"name":"companies_uk_search","description":"Search UK companies by name in the register. $0.02 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta[\"x402/payment\"]). HTTP equivalent: GET https://exchangerebel.com/toll/companies-uk/search.","inputSchema":{"type":"object","required":["q"],"properties":{"q":{"type":"string","description":"Company name keywords or a company number"},"limit":{"type":"string","description":"1-25, default 10"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":149,"tokensAfter":149},{"name":"courts_stats","fixed":{"name":"courts_stats","description":"Computed aggregates over the seeded bulk slice: judges per court, totals, disclosures by year and report type, investment row totals. $0.01 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta[\"x402/payment\"]). HTTP equivalent: POST https://exchangerebel.com/toll/courts/stats.","inputSchema":{"type":"object","properties":{"generation":{"enum":["2026-06-30","2026-09-30"],"type":"string"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":145,"tokensAfter":145},{"name":"cse_search","fixed":{"name":"cse_search","description":"Site-restricted search in Google CSE shape over our own per-tenant pre-index of the tenant's declared domains only: {tenant_id, q, max_results?} -> {items: [{title, link, snippet, indexed_at, display_link}], search_information}. Each result carries indexed_at, the date the page entered the index. Honest empty results (items: []) when nothing matches. Free pre-check at POST /toll/cse/search/preflight reports tenant index state (page count, domains, last-built) without searching. $0.01 per call — ","inputSchema":{"type":"object","required":["tenant_id","q"],"properties":{"q":{"type":"string","description":"string (required) - The search query (1-256 characters)."},"tenant_id":{"type":"string","description":"string (required) - Tenant identity: the payer wallet / key identity that declared the domains."},"max_results":{"type":"integer","maximum":20,"minimum":1,"description":"integer - Maximum items to return, 1-20 (default 10)."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":272,"tokensAfter":272},{"name":"devutils_color_convert","fixed":{"name":"devutils_color_convert","description":"Color conversion HEX/RGB/HSL. $0.005 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta[\"x402/payment\"]). HTTP equivalent: GET https://exchangerebel.com/toll/devutils/color/convert.","inputSchema":{"type":"object","properties":{"hex":{"type":"string","description":"Hex color"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":117,"tokensAfter":117},{"name":"devutils_email_validate","fixed":{"name":"devutils_email_validate","description":"Validate an email address format and domain. $0.005 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta[\"x402/payment\"]). HTTP equivalent: GET https://exchangerebel.com/toll/devutils/email/validate.","inputSchema":{"type":"object","required":["email"],"properties":{"email":{"type":"string","description":"Email address"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":130,"tokensAfter":130},{"name":"devutils_fx_convert","fixed":{"name":"devutils_fx_convert","description":"Fiat currency conversion (ECB rates via Frankfurter). $0.005 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta[\"x402/payment\"]). HTTP equivalent: GET https://exchangerebel.com/toll/devutils/fx/convert.","inputSchema":{"type":"object","required":["from","to","amount"],"properties":{"to":{"type":"string","description":"To currency"},"from":{"type":"string","description":"From currency"},"amount":{"type":"string","description":"Amount"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":161,"tokensAfter":161},{"name":"devutils_json_validate","fixed":{"name":"devutils_json_validate","description":"Validate a JSON document's syntax. $0.005 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta[\"x402/payment\"]). HTTP equivalent: POST https://exchangerebel.com/toll/devutils/json/validate.","inputSchema":{"type":"object","properties":{"text":{"type":"string","description":"string"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":119,"tokensAfter":119},{"name":"devutils_time_convert","fixed":{"name":"devutils_time_convert","description":"Convert a time between timezones. $0.005 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta[\"x402/payment\"]). HTTP equivalent: POST https://exchangerebel.com/toll/devutils/time/convert.","inputSchema":{"type":"object","properties":{"time":{"type":"string","description":"string"},"to_tz":{"type":"string","description":"string"},"from_tz":{"type":"string","description":"string"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":145,"tokensAfter":145},{"name":"devutils_units_convert","fixed":{"name":"devutils_units_convert","description":"Unit conversion (length/weight/temp/volume/data/speed). $0.005 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta[\"x402/payment\"]). HTTP equivalent: GET https://exchangerebel.com/toll/devutils/units/convert.","inputSchema":{"type":"object","required":["from","to","value"],"properties":{"to":{"type":"string","description":"To unit"},"from":{"type":"string","description":"From unit"},"value":{"type":"string","description":"Value"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":160,"tokensAfter":160},{"name":"emissions_calculate","fixed":{"name":"emissions_calculate","description":"Calculate CO2e for one activity from a published factor. $0.005 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta[\"x402/payment\"]). HTTP equivalent: POST https://exchangerebel.com/toll/emissions/calculate.","inputSchema":{"type":"object","required":["factor_id","quantity"],"properties":{"year":{"type":"integer","description":"integer - optional activity year selecting the factor vintage; omitted = latest vintage, disclosed in the answer"},"quantity":{"type":"number","description":"number (required) - activity quantity in the factor's unit (must be > 0)"},"factor_id":{"type":"string","description":"string (required) - factor id from GET /toll/emissions/factors (base id or full record id incl. vintage)"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":237,"tokensAfter":237},{"name":"emissions_calculate_batch","fixed":{"name":"emissions_calculate_batch","description":"Calculate CO2e for up to 100 activities in one call. $0.05 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta[\"x402/payment\"]). HTTP equivalent: POST https://exchangerebel.com/toll/emissions/calculate/batch.","inputSchema":{"type":"object","required":["items"],"properties":{"items":{"type":"array","items":{"type":"string"},"description":"array (required) - 1-100 calculation items, each {factor_id: string, quantity: number, year?: integer}"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":165,"tokensAfter":165},{"name":"evm_address_verdict","fixed":{"name":"evm_address_verdict","description":"Classify an Ethereum address: EOA vs contract, proxy, token. $0.01 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta[\"x402/payment\"]). HTTP equivalent: POST https://exchangerebel.com/toll/evm/address-verdict.","inputSchema":{"type":"object","required":["address"],"properties":{"address":{"type":"string","description":"string (required) - 0x-prefixed 20-byte Ethereum address"}}},"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":145,"tokensAfter":145},{"name":"evm_transfers","fixed":{"name":"evm_transfers","description":"Decoded ERC-20 transfer history for an Ethereum address. $0.01 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta[\"x402/payment\"]). HTTP equivalent: POST https://exchangerebel.com/toll/evm/transfers.","inputSchema":{"type":"object","required":["address"],"properties":{"limit":{"type":"integer","description":"integer 1-100, default 25"},"cursor":{"type":"string","description":"string - opaque cursor from a prior response's next_cursor"},"address":{"type":"string","description":"string (required) - 0x-prefixed 20-byte Ethereum address"}}},"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":188,"tokensAfter":188},{"name":"fact_bank_health","fixed":{"name":"fact_bank_health","description":"FREE fact bank health. Counts only: snapshot_loaded, fact/entity totals, stream labels, store freshness and store_stale flag. — no payment required: call directly without payment (no x402 challenge; this tool is free). HTTP equivalent: GET https://exchangerebel.com/toll/facts/health.","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":105,"tokensAfter":105},{"name":"fact_bank_status","fixed":{"name":"fact_bank_status","description":"Fact bank STATUS lookup, $0.01 per call (x402), price RULED. Latest-per-status_field current state for one entity, served verbatim with per-fact provenance. Call fact_bank_status_preflight first to check coverage for free. — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta[\"x402/payment\"]). HTTP equivalent: POST https://exchangerebel.com/toll/facts/status.","inputSchema":{"type":"object","required":["stream"],"properties":{"name":{"type":"string","description":"Name-resolution form (alternative to entity_id)."},"team":{"type":"string"},"limit":{"type":"integer","default":25,"maximum":100,"minimum":1},"cursor":{"type":"string"},"league":{"type":"string"},"stream":{"enum":["nfl-player-status","epl-player-status","bls-release-status","fed-board-status"],"type":"string"},"position":{"type":"string"},"entity_id":{"type":"string","description":"Canonical entity id, verbatim as stored."},"series_id":{"type":"string"},"status_field":{"type":"string","description":"Optional; omit for all current fields."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":317,"tokensAfter":317},{"name":"fact_bank_status_preflight","fixed":{"name":"fact_bank_status_preflight","description":"FREE preflight for fact_bank_status. Counts only: existence, coverage counts, per-field history depth, freshness, servable/reason_class, and the $0.01 RULED toll quote. No fact values are returned. — no payment required: call directly without payment (no x402 challenge; this tool is free). HTTP equivalent: POST https://exchangerebel.com/toll/facts/status/preflight.","inputSchema":{"type":"object","required":["stream"],"properties":{"name":{"type":"string","description":"Name-resolution form (alternative to entity_id)."},"team":{"type":"string"},"limit":{"type":"integer","default":25,"maximum":100,"minimum":1},"cursor":{"type":"string"},"league":{"type":"string"},"stream":{"enum":["nfl-player-status","epl-player-status","bls-release-status","fed-board-status"],"type":"string"},"position":{"type":"string"},"entity_id":{"type":"string","description":"Canonical entity id, verbatim as stored."},"series_id":{"type":"string"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":275,"tokensAfter":275},{"name":"fees_estimate","fixed":{"name":"fees_estimate","description":"Estimate a Solana transaction's total fee cost. $0.005 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta[\"x402/payment\"]). HTTP equivalent: POST https://exchangerebel.com/toll/fees/estimate.","inputSchema":{"type":"object","properties":{"accounts":{"type":"array","items":{"type":"string"},"description":"array of pubkeys"},"priority":{"type":"string","description":"low|medium|high"},"transaction_base64":{"type":"string","description":"string (or use accounts)"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":167,"tokensAfter":167},{"name":"jobs_search","fixed":{"name":"jobs_search","description":"Search remote jobs across three public boards. $0.005 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta[\"x402/payment\"]). HTTP equivalent: GET https://exchangerebel.com/toll/jobs/search.","inputSchema":{"type":"object","properties":{"q":{"type":"string","description":"Keyword query (titles/companies/tags)"},"remote":{"type":"string","description":"true = remote only, false = on-site only"},"source":{"type":"string","description":"Comma-separated subset of arbeitnow,himalayas,remotive"},"location":{"type":"string","description":"Location substring"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":192,"tokensAfter":192},{"name":"macro_payrolls","fixed":{"name":"macro_payrolls","description":"US payrolls series (BLS, public domain). $0.005 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta[\"x402/payment\"]). HTTP equivalent: GET https://exchangerebel.com/toll/macro/payrolls.","inputSchema":{"type":"object","properties":{"end":{"type":"string","description":"End period"},"start":{"type":"string","description":"Start period"}}},"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":132,"tokensAfter":132},{"name":"news_search","fixed":{"name":"news_search","description":"Search global news coverage (GDELT). $0.005 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta[\"x402/payment\"]). HTTP equivalent: GET https://exchangerebel.com/toll/news/search.","inputSchema":{"type":"object","required":["q"],"properties":{"q":{"type":"string","description":"Query"},"days":{"type":"string","description":"Lookback days"},"lang":{"type":"string","description":"Language filter"},"limit":{"type":"string","description":"Result limit"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":163,"tokensAfter":163},{"name":"pubconvert_convert","fixed":{"name":"pubconvert_convert","description":"Convert a Publisher file to PDF + verdict. $0.10 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta[\"x402/payment\"]). HTTP equivalent: POST https://exchangerebel.com/toll/pubconvert/convert.","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":105,"tokensAfter":105},{"name":"recalls_product_check","fixed":{"name":"recalls_product_check","description":"Join a product identity (GTIN/UPC, model, or listing) to US CPSC + openFDA recall status: graded verdict clear | matched | probable with confidence and evidence. $0.01 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta[\"x402/payment\"]). HTTP equivalent: POST https://exchangerebel.com/toll/recalls/product-check.","inputSchema":{"type":"object","properties":{"upc":{"type":"string"},"gtin":{"type":"string"},"brand":{"type":"string"},"model":{"type":"string"},"listing":{"type":"object"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":175,"tokensAfter":175},{"name":"recalls_search","fixed":{"name":"recalls_search","description":"Search FDA, CPSC, and NHTSA recall records in one call. $0.05 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta[\"x402/payment\"]). HTTP equivalent: GET https://exchangerebel.com/toll/recalls/search.","inputSchema":{"type":"object","properties":{"q":{"type":"string","description":"Free-text query over product, firm, hazard (or use filters alone)"},"to":{"type":"string","description":"Announced-date upper bound YYYY-MM-DD"},"from":{"type":"string","description":"Announced-date lower bound YYYY-MM-DD"},"class":{"type":"string","description":"FDA hazard class I | II | III"},"limit":{"type":"string","description":"1-50, default 20"},"source":{"type":"string","description":"fda | cpsc | nhtsa | all (default all)"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":237,"tokensAfter":237},{"name":"secfilings_status","fixed":{"name":"secfilings_status","description":"SEC EDGAR filing status for a filer. $0.005 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta[\"x402/payment\"]). HTTP equivalent: GET https://exchangerebel.com/toll/secfilings/status.","inputSchema":{"type":"object","properties":{"cik":{"type":"string","description":"CIK, 1-10 digits — provide cik OR ticker"},"form":{"type":"string","description":"Optional form filter (exact or base form)"},"ticker":{"type":"string","description":"Ticker symbol — provide cik OR ticker"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":171,"tokensAfter":171},{"name":"spend_check","fixed":{"name":"spend_check","description":"Check a proposed agent spend against the agent's budget policy. $0.01 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta[\"x402/payment\"]). HTTP equivalent: POST https://exchangerebel.com/toll/spend/check.","inputSchema":{"type":"object","properties":{"agent_id":{"type":"string","description":"string"},"category":{"type":"string","description":"string (optional)"},"recipient":{"type":"string","description":"string (optional)"},"amount_usd_cents":{"type":"integer","description":"integer"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":174,"tokensAfter":174},{"name":"stats_indicator","fixed":{"name":"stats_indicator","description":"Normalised indicator series for 30 countries. $0.01 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta[\"x402/payment\"]). HTTP equivalent: GET https://exchangerebel.com/toll/stats/indicator.","inputSchema":{"type":"object","required":["country","indicator"],"properties":{"country":{"type":"string","description":"ISO alpha-2 country code"},"periods":{"type":"string","description":"Number of periods, 1-36"},"indicator":{"type":"string","description":"Indicator id: cpi_index | cpi_yoy_pct | unemployment_rate | average_earnings | gdp_growth"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":189,"tokensAfter":189},{"name":"stats_trade","fixed":{"name":"stats_trade","description":"Aggregate HS trade flows (Comext EU; StatCan CA-US). $0.02 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta[\"x402/payment\"]). HTTP equivalent: GET https://exchangerebel.com/toll/stats/trade.","inputSchema":{"type":"object","required":["reporter","flow"],"properties":{"flow":{"type":"string","description":"IMPORT | EXPORT"},"period":{"type":"string","description":"YYYY or YYYY-MM"},"partner":{"type":"string","description":"WORLD | INT_EU27_2020 | EXT_EU27_2020 | ISO alpha-2"},"periods":{"type":"string","description":"StatCan only: number of periods, 1-24"},"product":{"type":"string","description":"TOTAL or HS2/HS4/HS6 code (EU reporters)"},"reporter":{"type":"string","description":"Reporter: EU-27 ISO alpha-2 or CA"},"hs_section":{"type":"string","description":"StatCan CA-US only: HS section I-XXI or TOTAL"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":265,"tokensAfter":265},{"name":"toxicity_analyze","fixed":{"name":"toxicity_analyze","description":"Score a comment for toxicity (Perspective-compatible). $0.005 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta[\"x402/payment\"]). HTTP equivalent: POST https://exchangerebel.com/toll/toxicity/analyze.","inputSchema":{"type":"object","required":["comment","requestedAttributes"],"properties":{"comment":{"type":"object","description":"object (required) - {text: string} comment to score, Perspective comments:analyze body"},"languages":{"type":"array","items":{"type":"string"},"description":"array of strings - optional; en = full attributes, fr/es/it/pt/tr/ru = TOXICITY-only"},"doNotStore":{"type":"boolean","description":"boolean - optional; comment text is never stored regardless"},"clientToken":{"type":"string","description":"string - optional, echoed back in the response"},"requestedAttributes":{"type":"object","description":"object (required) - attribute configs for TOXICITY, SEVERE_TOXICITY, IDENTITY_ATTACK, INSULT, THREAT, PROFANITY (FLIRTATION unsupported)"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":310,"tokensAfter":310},{"name":"toxicity_analyze_batch","fixed":{"name":"toxicity_analyze_batch","description":"Score up to 100 comments for toxicity in one call. $0.25 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta[\"x402/payment\"]). HTTP equivalent: POST https://exchangerebel.com/toll/toxicity/analyze/batch.","inputSchema":{"type":"object","required":["comments"],"properties":{"comments":{"type":"array","items":{"type":"string"},"description":"array (required) - up to 100 comments:analyze requests, each {comment:{text}, requestedAttributes, languages?}"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":166,"tokensAfter":166},{"name":"trademarks_search","fixed":{"name":"trademarks_search","description":"Search US trademark records by wordmark text. $0.25 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta[\"x402/payment\"]). HTTP equivalent: GET https://exchangerebel.com/toll/trademarks/search. (The HTTP endpoint also accepts a POST form; this tool is the canonical search.)","inputSchema":{"type":"object","properties":{"q":{"type":"string","description":"Wordmark text (required unless owner given)"},"class":{"type":"string","description":"International class 1-45"},"limit":{"type":"string","description":"1-25, default 10"},"owner":{"type":"string","description":"Owner name match"},"status":{"type":"string","description":"live | dead | 3-digit USPTO status code"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":225,"tokensAfter":225},{"name":"tron_estimate","fixed":{"name":"tron_estimate","description":"Estimate TRON energy/bandwidth needed for a USDT transfer. $0.005 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta[\"x402/payment\"]). HTTP equivalent: POST https://exchangerebel.com/toll/tron/estimate.","inputSchema":{"type":"object","properties":{"to":{"type":"string","description":"string - TRON address"},"from":{"type":"string","description":"string - TRON address"},"amount_usdt":{"type":"number","description":"number"},"contract_call":{"type":"boolean","description":"boolean (optional)"},"trx_balance_sun":{"type":"number","description":"number (optional)"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":195,"tokensAfter":195},{"name":"txcheck_check","fixed":{"name":"txcheck_check","description":"Pre-sign verdict for an unsigned Solana transaction. $0.01 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta[\"x402/payment\"]). HTTP equivalent: POST https://exchangerebel.com/toll/txcheck/check.","inputSchema":{"type":"object","required":["tx"],"properties":{"tx":{"type":"string","description":"string - base64 unsigned transaction (required)"},"policy":{"type":"object","description":"object (optional): {max_sol_out_lamports, max_token_out_bps_by_mint {mint: bps}, allowed_programs, blocked_programs, blocked_addresses, fail_on_unknown_program}"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":191,"tokensAfter":191}],"toolsChanged":64,"tokensSaved":0,"todo":[{"tool":"access_crawl_preflight","params":["url","sitemap_url"]},{"tool":"access_scan_preflight","params":["url"]},{"tool":"atlas_record","params":["source_id"]},{"tool":"atlas_route","params":["need"]},{"tool":"cited_answer_search","params":["query"]},{"tool":"commons_cast_ballot","params":["id","choice","operator_id","proposal_id"]},{"tool":"commons_create_post","params":["id","body","operator_id","proposal_id"]},{"tool":"commons_create_proposal","params":["body","scope","title","category","operator_id","reopen_condition"]},{"tool":"commons_get_archive_entry","params":["id"]},{"tool":"commons_get_changes","params":["since"]},{"tool":"commons_get_operator","params":["id"]},{"tool":"commons_get_operator_reputation","params":["id"]},{"tool":"commons_get_proposal","params":["id"]},{"tool":"commons_get_tally","params":["id"]},{"tool":"commons_get_vote_status","params":["id"]},{"tool":"commons_set_receipts_opt_in","params":["id","opt_in","operator_id"]},{"tool":"courts_changes","params":["id","kind"]},{"tool":"courts_court_record","params":["court_id","generation"]},{"tool":"courts_disclosure_record","params":["judge_id","generation"]},{"tool":"courts_judge_record","params":["judge_id","generation"]},{"tool":"courts_stats","params":["generation"]},{"tool":"ema_changes","params":["inn","name","since","ema_product_number"]},{"tool":"ema_changes_preflight","params":["inn","name","since","ema_product_number"]},{"tool":"ema_record","params":["inn","name","ema_product_number"]},{"tool":"ema_record_preflight","params":["inn","name","ema_product_number"]},{"tool":"fact_bank_status","params":["team","limit","cursor","league","stream","position","series_id"]},{"tool":"fact_bank_status_preflight","params":["team","limit","cursor","league","stream","position","series_id"]},{"tool":"fact_bank_tendency","params":["team","limit","cursor","league","stream","position","series_id","status_field"]},{"tool":"fact_bank_tendency_preflight","params":["team","limit","cursor","league","stream","position","series_id","status_field"]},{"tool":"gdelt_news_clusters","params":["q","days"]},{"tool":"gdelt_news_clusters_preflight","params":["q","days","limit"]},{"tool":"gdelt_news_crypto","params":["days","limit"]},{"tool":"gdelt_news_crypto_preflight","params":["days","lang","asset","limit","topic"]},{"tool":"gdelt_news_enriched_preflight","params":["q","days","lang","limit"]},{"tool":"inference_chat","params":["model","messages","max_tokens","temperature"]},{"tool":"nadac_changes","params":["ndc","ndcs"]},{"tool":"nadac_dispersion","params":["ndc"]},{"tool":"nadac_fact","params":["ndc"]},{"tool":"recalls_changes_since","params":["since"]},{"tool":"recalls_product_check","params":["upc","gtin","brand","model","listing"]},{"tool":"recalls_watch","params":["gtin","model"]}],"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."}