{"serverId":"mcp-registry/dev.workers.kikoribera03.flat-rate-llm/x402-tools","tools":[{"name":"ai_image_describe","fixed":{"name":"ai_image_describe","description":"Use when an agent has an image and needs words it can act on, in about a second: pass an https URL or base64 and ask anything about it, from a one-line caption to reading a sign. Pairs with the rest of the chain: describe an image, translate the description, then have it read aloud. You are only charged if the description is delivered. No API key, no account. $0.005 per call, paid over x402 (USDC).","inputSchema":{"type":"object","required":[],"properties":{"url":{"type":"string","description":"https URL of the image to describe. Use this or image."},"image":{"type":"string","description":"The image, as base64. Use this or url."},"prompt":{"type":"string","description":"What to ask about the image. Default: a one-sentence description."},"max_tokens":{"type":"number","description":"Length limit of the answer, 16-512. Default 128."}},"additionalProperties":false},"annotations":{"readOnlyHint":true},"title":"Describe what is in an image"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":255,"tokensAfter":255},{"name":"content_riddle","fixed":{"name":"content_riddle","description":"Use when an agent has to run a guessing game and must mark the answer without seeing it first: one riddle by difficulty, in English or Spanish, with the answer AND the SHA-256 of the answer in lowercase. The hash is the point: an agent can check whether its guess is right without reading the solution first, which no other riddle endpoint lets you do. $0.005 per call, paid over x402 (USDC).","inputSchema":{"type":"object","required":[],"properties":{"seed":{"type":"string","description":"Same seed always returns the same riddle."},"exclude":{"type":"array","description":"Ids already seen, comma-separated in a GET."},"language":{"type":"string","description":"en | es. Defaults to en."},"difficulty":{"type":"string","description":"easy | medium | hard. Omit for any."}},"additionalProperties":false},"annotations":{"readOnlyHint":true},"title":"Riddle with checkable answer"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":236,"tokensAfter":236},{"name":"crypto_sanctions","fixed":{"name":"crypto_sanctions","description":"Use when an agent must decide whether it may transact with an address at all: it checks it against the OFAC SDN list published by the US Treasury, across 16 currencies including Ethereum, Bitcoin, Tron and USDT. A hit returns the actual list entry - sanctioned entity, its type and its sanctions programmes - not a risk score. Exact matching only, never fuzzy. Every answer carries the publication date of the list snapshot. No API key, no account. $0.01 per call, paid over x402 (USDC).","inputSchema":{"type":"object","required":["address"],"properties":{"address":{"type":"string","description":"The crypto address to check. Any chain: EVM, Bitcoin, Tron, Litecoin, Monero and the rest of the list."}},"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false},"title":"OFAC sanctions check for a crypto address"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":216,"tokensAfter":216},{"name":"do","fixed":{"name":"do","description":"Use when an agent has a job to get done and does not know which tool or in what order: describe it in plain words and it happens in ONE paid call: picks from 71 capabilities - transcription, translation, documents, images, web, on-chain, domains, IPs, weather, FX - fills their parameters and chains up to 3 steps, feeding each result into the next. Priced per job: the 402 challenge quotes YOUR job before you sign, from $0.02. If nothing fits, nothing is charged. $0.02 per call, paid over x402 (US","inputSchema":{"type":"object","required":["job"],"properties":{"job":{"type":"string","description":"The job to do, in plain words. Example: read this page and translate it to Spanish."},"input":{"type":"string","description":"Optional data the job needs: a URL, an EVM address, a domain, or text."},"max_steps":{"type":"number","description":"How many tools may be chained, 1 to 3. Default 2."}},"additionalProperties":false},"annotations":{"readOnlyHint":true},"title":"Describe the job, get it done: one call over the whole toolbox"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":267,"tokensAfter":267},{"name":"evm_can_i_send","fixed":{"name":"evm_can_i_send","description":"Use when an agent is about to sign a transaction and must decide whether it will go through right now: one call that answers canSend with the facts behind it - the sender's balance, the gas this exact transaction needs, what it will cost, whether the node says it would revert, the nonce to use if earlier ones are still in flight, whether the destination is a contract, and how stale the chain head is. Replaces five separate reads. No API key, no account. $0.02 per call, paid over x402 (USDC).","inputSchema":{"type":"object","required":["from","to"],"properties":{"to":{"type":"string","description":"Destination address."},"data":{"type":"string","description":"Optional 0x calldata."},"from":{"type":"string","description":"The address that would sign and pay."},"chain":{"type":"string","description":"base | ethereum | polygon | arbitrum | optimism. Defaults to base."},"value":{"type":"string","description":"Optional native amount in wei, as a decimal string."}},"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false},"title":"Can I send this transaction"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":290,"tokensAfter":290},{"name":"evm_chains","fixed":{"name":"evm_chains","description":"Use when an agent has to pick a chain that is actually answering before it commits to one: every supported chain in a single call, each with its chain id, block height, how many seconds stale its head is, and ok. Do not use for one chain on its own (/v1/evm/block) or for what a transaction will cost there (/v1/evm/gas, and /v1/evm/fees for EIP-1559 caps). No API key, no account. $0.005 per call, paid over x402 (USDC).","inputSchema":{"type":"object","required":[],"properties":{"chain":{"type":"string","description":"Optional: check just one. base | ethereum | polygon | arbitrum | optimism. All of them when omitted."}},"additionalProperties":false},"annotations":{"readOnlyHint":true},"title":"Chain health check"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":193,"tokensAfter":193},{"name":"evm_estimate_gas","fixed":{"name":"evm_estimate_gas","description":"Use when an agent is about to sign a transaction and must know whether it will fail and what it will cost: the gas this exact call needs, the current gas price, the cost in ether, and wouldRevert, which says the transaction would fail before you spend anything finding out. Do not use for the price of a plain transfer (/v1/evm/gas) or for EIP-1559 caps (/v1/evm/fees). No API key, no account. $0.005 per call, paid over x402 (USDC).","inputSchema":{"type":"object","required":["to"],"properties":{"to":{"type":"string","description":"Destination address."},"data":{"type":"string","description":"Optional 0x calldata."},"from":{"type":"string","description":"Sender address."},"chain":{"type":"string","description":"base | ethereum | polygon | arbitrum | optimism."},"value":{"type":"string","description":"Optional value in wei, as a decimal string."}},"additionalProperties":false},"annotations":{"readOnlyHint":true},"title":"Estimate gas"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":258,"tokensAfter":258},{"name":"evm_nonce","fixed":{"name":"evm_nonce","description":"Use when an agent signs transactions one after another and must not collide with one already in flight: the confirmed nonce, the pending nonce (the one to use while an earlier transaction is still unmined) and whether the address is a contract. Do not use to check the transaction is affordable (/v1/evm/balance for the funds, /v1/evm/estimate-gas for the cost). No API key, no account. $0.005 per call, paid over x402 (USDC).","inputSchema":{"type":"object","required":["address"],"properties":{"chain":{"type":"string","description":"base | ethereum | polygon | arbitrum | optimism."},"address":{"type":"string","description":"Address to look up."}},"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false},"title":"EVM address nonce"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":200,"tokensAfter":200},{"name":"evm_token_info","fixed":{"name":"evm_token_info","description":"Use when an agent has a bare token address and must label or format it before showing or computing anything: name, symbol, decimals and total supply of any ERC-20 in one call. decimals is what stops an amount being shown a million times too big. Do not use for a holder's balance (/v1/evm/erc20-balance), the price (/v1/evm/token-price) or the risk (/v1/evm/token-safety). No API key, no account. $0.005 per call, paid over x402 (USDC).","inputSchema":{"type":"object","required":["token"],"properties":{"chain":{"type":"string","description":"base | ethereum | polygon | arbitrum | optimism."},"token":{"type":"string","description":"ERC20 contract address."}},"additionalProperties":false},"annotations":{"readOnlyHint":true},"title":"ERC20 token info"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":204,"tokensAfter":204},{"name":"evm_token_safety","fixed":{"name":"evm_token_safety","description":"Use when an agent must decide whether to touch a token at all: a pre-trade risk check on Base, Ethereum, Polygon, Arbitrum or Optimism, straight from the deployed bytecode and live state. Detects mint, pause, blacklist, upgradeable proxy and mutable buy/sell tax powers, and reports whether ownership is renounced. It returns the EVIDENCE - the exact selector found and its byte offset - so an agent can apply its own policy. Deterministic: same contract, same answer. $0.01 per call, paid over x402 ","inputSchema":{"type":"object","required":["token"],"properties":{"chain":{"type":"string","description":"base | ethereum | polygon | arbitrum | optimism."},"token":{"type":"string","description":"ERC20 contract address to check."}},"additionalProperties":false},"annotations":{"readOnlyHint":true},"title":"ERC20 pre-trade safety check"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":225,"tokensAfter":225},{"name":"fx_convert","fixed":{"name":"fx_convert","description":"Use when an agent has to convert money in a figure someone will audit: between any two of the ~30 currencies in the European Central Bank's official reference rates, on today's publication or on a past date within the last 90 days. Returns the rate used, its publication date and whether it was crossed through the euro. This is the auditable rate accounting and customs ask for, not a live market quote: it is published once a day and it is reproducible. $0.005 per call, paid over x402 (USDC).","inputSchema":{"type":"object","required":["from","to"],"properties":{"to":{"type":"string","description":"Target currency, ISO 4217, e.g. EUR."},"date":{"type":"string","description":"Optional publication date, YYYY-MM-DD, within the last 90 days. Defaults to the latest publication."},"from":{"type":"string","description":"Source currency, ISO 4217, e.g. USD."},"amount":{"type":"number","description":"Amount to convert. Defaults to 1."}},"additionalProperties":false},"annotations":{"readOnlyHint":true},"title":"Currency conversion at the official ECB rate"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":280,"tokensAfter":280},{"name":"random_shuffle","fixed":{"name":"random_shuffle","description":"Use when an agent must put a list in an order nobody can claim was arranged: a uniformly random shuffle with Fisher-Yates over the platform CSPRNG, so every permutation is equally likely, which sorting by a random key does not give you. Do not use to take just one or a few items (/v1/random/pick). No API key, no account. $0.005 per call, paid over x402 (USDC).","inputSchema":{"type":"object","required":["items"],"properties":{"items":{"type":"string","description":"The list to shuffle, comma-separated. A JSON array of strings is also accepted in a POST body."}},"additionalProperties":false},"annotations":{"readOnlyHint":true},"title":"Shuffle a list"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":178,"tokensAfter":178},{"name":"red_asn","fixed":{"name":"red_asn","description":"Use when an agent has an origin ASN and must decide who is behind a network and whether it is still live: the RDAP registry record (holder, status, allocation dates, abuse contact), the AS name, country and RIR, and the prefixes it announces right now, split IPv4 and IPv6 with a sample. The natural second call after /v1/red/ip. Do not use for one address (/v1/red/ip) or for a domain (/v1/red/whois). $0.005 per call, paid over x402 (USDC).","inputSchema":{"type":"object","required":["asn"],"properties":{"asn":{"type":"string","description":"The AS number, with or without the AS prefix: 15169 or AS15169."}},"additionalProperties":false},"annotations":{"readOnlyHint":true},"title":"ASN lookup"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":188,"tokensAfter":188},{"name":"red_cert","fixed":{"name":"red_cert","description":"Use when an agent must audit what certificates exist for a domain: every currently valid one publicly issued for it, read from the Certificate Transparency logs - issuer, validity window, days to expiry, revocation status and every hostname each certificate covers. It reports what was ISSUED, which is how you find certificates you did not know existed - not what the server is serving today. No API key, no account. $0.005 per call, paid over x402 (USDC).","inputSchema":{"type":"object","required":["domain"],"properties":{"domain":{"type":"string","description":"The domain to look up. A full URL or an email address is accepted and reduced to its host."},"subdomains":{"type":"boolean","description":"Also return certificates issued for subdomains. Defaults to false."}},"additionalProperties":false},"annotations":{"readOnlyHint":true},"title":"TLS certificate lookup (Certificate Transparency)"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":234,"tokensAfter":234},{"name":"red_dnsbl","fixed":{"name":"red_dnsbl","description":"Use when an agent must decide whether an IP is already known for abuse: it checks one IPv4 address against nine public DNS blocklists at once — SpamCop, UCEPROTECT, PSBL, Barracuda, DroneBL and four more — and returns each list's raw code and the reason text it publishes, not a score. Every list is re-checked on each call with its RFC 5782 test entry, so a dead list comes back as unavailable instead of reading as clean. Includes the delisting URL for each hit. $0.005 per call, paid over x402 (US","inputSchema":{"type":"object","required":["ip"],"properties":{"ip":{"type":"string","description":"The IPv4 address to check. IPv6 is not accepted: these nine lists are IPv4 zones."}},"additionalProperties":false},"annotations":{"readOnlyHint":true},"title":"IP blocklist check"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":209,"tokensAfter":209},{"name":"red_domain_check","fixed":{"name":"red_domain_check","description":"Use when an agent must decide whether a domain is real and reachable before trusting it: everything DNS says about it in one call - whether it is registered, its A and AAAA addresses, nameservers, MX servers, SPF and DMARC, DNSSEC, and whether it looks parked. Built for going through a list of domains one at a time. Live DNS, no API key, no account. $0.005 per call, paid over x402 (USDC).","inputSchema":{"type":"object","required":["domain"],"properties":{"domain":{"type":"string","description":"The domain to check. A full URL or an email address is accepted and reduced to its host."}},"additionalProperties":false},"annotations":{"readOnlyHint":true},"title":"Domain DNS check"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":185,"tokensAfter":185},{"name":"red_email_check","fixed":{"name":"red_email_check","description":"Use when an agent must decide whether to write to an address, or clean a list before sending: it scores one email 0-100 with a verdict (ok, risky, disposable, undeliverable, invalid) and the evidence under it: every point lost is itemised with the field that proves it. 12,141 disposable domains from two maintained open lists pinned to a commit, 4,897 free providers, 1,018 role names, typo fix (gmial.com > gmail.com), live MX/SPF/DMARC. No SMTP probe, no API key. $0.005 per call, paid over x402 (","inputSchema":{"type":"object","required":["email"],"properties":{"email":{"type":"string","description":"The address to check, e.g. someone@example.com."}},"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false},"title":"Email address check"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":203,"tokensAfter":203},{"name":"red_ip","fixed":{"name":"red_ip","description":"Use when an agent must decide who an IP belongs to before blocking or trusting it: one IPv4 or IPv6 address against the two authoritative, keyless public sources - RDAP registry data (holder, country, date, abuse contact) via the ARIN-to-RIR chain, and the origin ASN from Team Cymru's DNS service. No city-level geolocation and no VPN/proxy detection: that needs a licensed database this route deliberately does not use. Built for going through a list of IPs one at a time. $0.005 per call, paid ove","inputSchema":{"type":"object","required":["ip"],"properties":{"ip":{"type":"string","description":"The IPv4 or IPv6 address to look up."}},"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false},"title":"IP address intelligence"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":196,"tokensAfter":196},{"name":"red_whois","fixed":{"name":"red_whois","description":"Use when an agent must judge how established a domain is, or when it expires: registration data read from the registry's own RDAP service through the IANA bootstrap — not scraped from port-43 whois text. Returns creation, expiry and last-change dates, age and days to expiry, registrar, EPP status codes, nameservers, DNSSEC and the abuse contact. TLDs with no RDAP server say so instead of reporting the domain as unregistered. No API key, no account. $0.005 per call, paid over x402 (USDC).","inputSchema":{"type":"object","required":["domain"],"properties":{"domain":{"type":"string","description":"The domain to look up. A full URL or an email address is accepted and reduced to its host."}},"additionalProperties":false},"annotations":{"readOnlyHint":true},"title":"Domain registration lookup (RDAP)"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":212,"tokensAfter":212},{"name":"time_convert","fixed":{"name":"time_convert","description":"Use when an agent is about to commit to a time in someone else's zone and cannot be an hour wrong: converts between any two IANA zones with daylight saving applied from the runtime's own tz database. Returns both sides with their UTC offset, abbreviation and DST flag, plus the UTC instant and the difference in hours. Warns when the time asked for does not exist or happens twice because the clocks change that day: the two cases that quietly make a hand-made conversion wrong. $0.005 per call, paid","inputSchema":{"type":"object","required":["from","to"],"properties":{"to":{"type":"string","description":"Target IANA time zone, e.g. \"Asia/Tokyo\". Required."},"from":{"type":"string","description":"Source IANA time zone, e.g. \"Europe/Madrid\". Required."},"time":{"type":"string","description":"Wall clock as YYYY-MM-DD HH:MM in the \"from\" zone, or an ISO string with Z or an offset, or a unix timestamp, or \"now\". Defaults to now."}},"additionalProperties":false},"annotations":{"readOnlyHint":true},"title":"Time zone converter"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":282,"tokensAfter":282},{"name":"util_address","fixed":{"name":"util_address","description":"Use when an agent is handed an address and must decide whether it is safe to use before sending anything: it validates it and returns the EIP-55 mixed-case checksum form, plus whether the input was already checksummed. An address that fails the checksum is almost always mistyped. Do not use to find out whether it is a wallet or a contract (/v1/evm/is-contract) or to resolve a name (/v1/evm/ens). $0.005 per call, paid over x402 (USDC).","inputSchema":{"type":"object","required":["address"],"properties":{"address":{"type":"string","description":"The address to validate, in any case."}},"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false},"title":"Address checksum and validation"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":184,"tokensAfter":184},{"name":"util_hex","fixed":{"name":"util_hex","description":"Use when an agent has raw RPC output and must read it as a number or as text: converts between hex, decimal and UTF-8 in one call, with big integers kept exact because a 32-byte word overflows a JavaScript number. Do not use to decode a whole ABI-encoded struct: this converts one value. No API key, no account. $0.005 per call, paid over x402 (USDC).","inputSchema":{"type":"object","required":["value"],"properties":{"as":{"type":"string","description":"hex | decimal | text. What the value IS. Defaults to autodetect."},"value":{"type":"string","description":"A 0x-prefixed hex string, a decimal number, or text."}},"additionalProperties":false},"annotations":{"readOnlyHint":true},"title":"Hex converter"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":190,"tokensAfter":190},{"name":"util_iban","fixed":{"name":"util_iban","description":"Use when an agent must decide whether a bank account it was given can be paid before trying: validates one IBAN offline - country, expected length, ISO 7064 mod-97 check digits, whether it is inside SEPA, and the account number split out. Deterministic, no network call and no third party that can go down. Built for cleaning a list of accounts one at a time. $0.005 per call, paid over x402 (USDC).","inputSchema":{"type":"object","required":["iban"],"properties":{"iban":{"type":"string","description":"The IBAN to check. Spaces and lowercase are accepted."}},"additionalProperties":false},"annotations":{"readOnlyHint":true},"title":"IBAN check"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":175,"tokensAfter":175},{"name":"util_phone","fixed":{"name":"util_phone","description":"Use when an agent must decide whether a phone number is usable before writing or calling: checks it offline, normalises it to E.164, works out its country (including the twelve calling codes shared by several countries) and validates the national length against that country's numbering plan, returning the tel: URI and the national dialling form. Data from Google's libphonenumber, no network call, so it cannot fail because a third party is down. $0.005 per call, paid over x402 (USDC).","inputSchema":{"type":"object","required":["phone"],"properties":{"phone":{"type":"string","description":"The phone number, in any usual notation: +34 612 34 56 78, 0034612345678, (612) 345-678."},"country":{"type":"string","description":"Optional ISO 3166-1 alpha-2 country, e.g. ES. Only used when the number carries no country code."}},"additionalProperties":false},"annotations":{"readOnlyHint":true},"title":"Phone number check"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":249,"tokensAfter":249},{"name":"util_units","fixed":{"name":"util_units","description":"Use when an agent must turn an on-chain integer into a human amount, or back, without losing money to rounding: converts between wei, gwei, ether and any token decimals with exact integer maths, no floating point. Being off by a factor of a thousand on decimals is the mistake that costs real funds. Do not use to find a token's decimals (/v1/evm/token-info returns them). No API key, no account. $0.005 per call, paid over x402 (USDC).","inputSchema":{"type":"object","required":["amount","from","to"],"properties":{"to":{"type":"string","description":"wei | gwei | ether, or a number of decimals."},"from":{"type":"string","description":"wei | gwei | ether, or a number of decimals."},"amount":{"type":"string","description":"The quantity, as a string to avoid float loss."}},"additionalProperties":false},"annotations":{"readOnlyHint":true},"title":"Token unit converter"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":235,"tokensAfter":235},{"name":"util_vat","fixed":{"name":"util_vat","description":"Use when an agent must decide whether a company's tax number is usable before invoicing: validates one EU VAT number offline - country prefix, the format that country uses, and the published check-digit algorithm where one exists. Says explicitly whether the check digits were verified or only the format. Deterministic, no network call. Built for cleaning a list of companies one at a time. $0.005 per call, paid over x402 (USDC).","inputSchema":{"type":"object","required":["vat"],"properties":{"vat":{"type":"string","description":"The VAT number, with or without the country prefix and with any spacing."}},"additionalProperties":false},"annotations":{"readOnlyHint":true},"title":"EU VAT number check"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":188,"tokensAfter":188},{"name":"web_read","fixed":{"name":"web_read","description":"Use when an agent needs what a page SAYS and not its HTML: it fetches one URL and returns the readable page as markdown - title, description, headings, paragraphs and links with their destinations, plus the canonical URL, language and word count. Boilerplate, scripts and navigation are stripped. Built for going through a list of links one at a time. No API key, no account. $0.01 per call, paid over x402 (USDC).","inputSchema":{"type":"object","required":["url"],"properties":{"url":{"type":"string","description":"The page to read. http and https only; private and loopback addresses are refused."},"links":{"type":"boolean","description":"Also return the outbound links as a list. Defaults to false."}},"additionalProperties":false},"annotations":{"readOnlyHint":true},"title":"Read a web page as markdown"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":215,"tokensAfter":215},{"name":"web_status","fixed":{"name":"web_status","description":"Use when an agent must decide whether a link is alive and where it really lands, without paying for the page: it checks one URL without downloading it - HTTP status, the full redirect chain hop by hop with the code of each, the final URL, whether it ends on HTTPS, content type and size, and the security headers the server sends. Built for going through a list of links one at a time. No API key, no account. $0.005 per call, paid over x402 (USDC).","inputSchema":{"type":"object","required":["url"],"properties":{"url":{"type":"string","description":"The URL to check. http and https only; private and loopback addresses are refused."},"method":{"type":"string","description":"HEAD (default) or GET. Some servers refuse HEAD and only answer GET."}},"additionalProperties":false},"annotations":{"readOnlyHint":true},"title":"URL status and redirect chain"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":227,"tokensAfter":227}],"toolsChanged":28,"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."}