{"serverId":"mcp-registry/io.github.zvmzaretsky/validation-suite","tools":[{"name":"geo_lookup","fixed":{"name":"geo_lookup","description":"PAID $0.002 (x402, USDC on Base). Resolve a place against a bundled open dataset (no per-day API limits). Give {query:\"Munich, Bavaria, Germany\"} OR {country, state, city} and get normalized names, ISO 3166-1/-2 codes, the country→subdivision→city hierarchy, population and coordinates, and confirmation the place exists. Without payment returns the x402 challenge; pass x_payment to settle.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"city":{"type":"string","description":"City name."},"query":{"type":"string","description":"Free-text place, e.g. \"Munich, Bavaria, Germany\" or \"France\"."},"state":{"type":"string","description":"State/province/subdivision name or code (within the country)."},"country":{"type":"string","description":"Country name or ISO 3166-1 alpha-2/alpha-3 code."},"x_payment":{"type":"string","description":"x402 payment payload (base64) for this PAID validation. If supplied it is forwarded as the X-PAYMENT header to settle the call and return the real result instead of a 402 challenge. Omit to get the price challenge first."}},"additionalProperties":false},"annotations":{"readOnlyHint":true},"title":"Resolve a country / state / city to ISO codes (paid $0.002)"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":329,"tokensAfter":329},{"name":"validate_email","fixed":{"name":"validate_email","description":"PAID $0.002 (x402, USDC on Base). Validate an email address: give {email} and get RFC-ish syntax validation, a LIVE MX-record (DNS) existence check, disposable/throwaway-domain detection (bundled blocklist), and a role-address flag (info@, admin@…). STATELESS and non-PII — the address is never stored and no SMTP mailbox is probed. Without payment returns the x402 challenge; pass x_payment to settle.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["email"],"properties":{"email":{"type":"string","description":"The email address to validate."},"x_payment":{"type":"string","description":"x402 payment payload (base64) for this PAID validation. If supplied it is forwarded as the X-PAYMENT header to settle the call and return the real result instead of a 402 challenge. Omit to get the price challenge first."}},"additionalProperties":false},"annotations":{"readOnlyHint":true},"title":"Validate an email: syntax + MX + disposable + role (paid $0.002)"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":260,"tokensAfter":260},{"name":"validate_iban","fixed":{"name":"validate_iban","description":"PAID $0.001 (x402, USDC on Base). Validate an IBAN: give {iban} and get ISO 13616 length + mod-97 checksum validation, the country, the human-formatted grouping, and the bank identifier (e.g. German Bankleitzahl, UK bank code + sort code) extracted from the BBAN where derivable. Pure-offline. Without payment returns the x402 challenge.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["iban"],"properties":{"iban":{"type":"string","description":"The IBAN (spaces/dashes tolerated), e.g. DE89 3704 0044 0532 0130 00."},"x_payment":{"type":"string","description":"x402 payment payload (base64) for this PAID validation. If supplied it is forwarded as the X-PAYMENT header to settle the call and return the real result instead of a 402 challenge. Omit to get the price challenge first."}},"additionalProperties":false},"annotations":{"readOnlyHint":true},"title":"Validate an IBAN (mod-97) + extract bank code (paid $0.001)"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":252,"tokensAfter":252},{"name":"validate_vat","fixed":{"name":"validate_vat","description":"PAID $0.003 (x402, USDC on Base). FLAGSHIP. Validate an EU/EEA VAT number: give {country_code, vat_number} and get a per-country format + checksum pre-check AND a LIVE lookup against the official VIES service — returning valid/registered plus the registered company name & address when VIES provides them (cached ~1h to shield the flaky VIES). Without payment returns the x402 challenge; pass x_payment to settle.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["country_code","vat_number"],"properties":{"x_payment":{"type":"string","description":"x402 payment payload (base64) for this PAID validation. If supplied it is forwarded as the X-PAYMENT header to settle the call and return the real result instead of a 402 challenge. Omit to get the price challenge first."},"vat_number":{"type":"string","description":"The VAT number without the country prefix (prefix is tolerated and stripped)."},"country_code":{"type":"string","description":"2-letter EU VAT country code (e.g. IE, DE, FR; GB/XI for Northern Ireland; GR accepted as EL)."}},"additionalProperties":false},"annotations":{"readOnlyHint":true},"title":"Validate an EU VAT number via VIES (paid $0.003)"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":322,"tokensAfter":322}],"toolsChanged":4,"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."}