{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_z2vazvnxrucy","handle":"swiftbotlab-x402-toolbox","url":"https://wellknown.network/agents/swiftbotlab-x402-toolbox","links":{"self":"https://wellknown.network/agents/swiftbotlab-x402-toolbox/record.json","html":"https://wellknown.network/agents/swiftbotlab-x402-toolbox","markdown":"https://wellknown.network/agents/swiftbotlab-x402-toolbox/record.md","api":"https://wellknown.network/api/v1/agents/swiftbotlab-x402-toolbox","status":"https://wellknown.network/api/v1/agents/swiftbotlab-x402-toolbox/status","claim":"https://wellknown.network/agents/swiftbotlab-x402-toolbox/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/swiftbotlab-x402-toolbox/claim.json","badge":"https://wellknown.network/agents/swiftbotlab-x402-toolbox/badge.svg","openapi":"https://wellknown.network/openapi.json","history":"https://wellknown.network/api/v1/agents/swiftbotlab-x402-toolbox/history","tools":"https://wellknown.network/api/v1/agents/swiftbotlab-x402-toolbox/tools"},"ard":{"identifier":"urn:air:x402-toolbox.swiftbotlab.workers.dev:server:swiftbotlab-x402-toolbox","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"x402 Toolbox","summary":"62 pay-per-call web, DNS, EVM and data tools. x402 USDC on Base, $0.003-$0.02 per call, no signup.","description":"62 pay-per-call web, DNS, EVM and data tools. x402 USDC on Base, $0.003-$0.02 per call, no signup.","publisher":{"name":"swiftbotlab","url":null},"homepage":"https://x402-toolbox.swiftbotlab.workers.dev","repository":"https://github.com/swiftbotlab/x402-toolbox","version":"1.0.0","license":null,"protocols":["mcp"],"tags":[],"pricing":null,"endpoints":[{"url":"https://x402-toolbox.swiftbotlab.workers.dev/mcp","type":"mcp_streamable_http","auth":null,"probeable":true}],"skills":null,"tools":null,"extra":{"updatedAt":"2026-10-27T06:33:29.300675Z","publishedAt":"2026-10-27T06:33:29.300675Z","registryName":"io.github.swiftbotlab/x402-toolbox"},"attribution":{"kind":"mcp_registry","name":"mcp_registry","repoUrl":"mcp_registry","summary":"mcp_registry","version":"mcp_registry","description":"mcp_registry","homepageUrl":"mcp_registry","publisherName":"mcp_registry"}},"derived":{"capabilities":[{"slug":"content.writing","name":"Writing & Editing","confidence":1,"provenance":"derived"},{"slug":"documents.conversion","name":"Document Conversion","confidence":1,"provenance":"derived"},{"slug":"commerce.pricing","name":"Pricing & Quotes","confidence":1,"provenance":"derived"},{"slug":"data.web-scraping","name":"Web Scraping","confidence":0.992,"provenance":"derived"},{"slug":"content.seo","name":"SEO","confidence":0.977,"provenance":"derived"},{"slug":"code.documentation","name":"Code Documentation","confidence":0.583,"provenance":"derived"},{"slug":"automation.orchestration","name":"Agent Orchestration","confidence":0.554,"provenance":"derived"},{"slug":"dev.docs-lookup","name":"Documentation Lookup","confidence":0.54,"provenance":"derived"}],"categories":["automation","code","commerce","content","data","dev","documents"],"language":"en"},"observed":{"status":"live","statusReason":"Responded 7h ago.","lastOkAt":"2026-10-28T04:32:21.572Z","lastProbedAt":"2026-10-28T04:32:21.572Z","statusComputedAt":"2026-10-28T04:35:22.662Z","reliability30d":{"probes":3,"successRate":1,"p50Ms":69,"basis":"service","measures":{"availability":"availability","latency":"response time","tools":"tool surface observed","summary":"Checks reached the service itself."},"checks":{"total":3,"ok":3,"authBoundaryOk":0,"serviceOk":3,"note":"Counted from the observation rows for the window, checks of the server only (HTTP, A2A card, MCP initialize). ok = authBoundaryOk + serviceOk. `probes` is the sum of daily rollups and includes registry checks, so it can differ from `total`."}},"latestObservations":[{"at":"2026-10-28T04:32:21.572Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":33,"error":null,"detail":{"tools":[{"name":"dns_lookup","description":"DNS lookup for any record type over DNS-over-HTTPS. Resolve A, AAAA, MX, TXT, NS, CNAME, SOA, CAA, SRV, PTR, DS, DNSKEY, HTTPS, SVCB, TLSA or NAPTR records for "},{"name":"dns_mx","description":"Mail servers (MX) of a domain, sorted, with the mail provider. MX records sorted by priority, null-MX detection (RFC 7505), the implicit-MX fallback (A/AAAA) wh"},{"name":"dns_reverse","description":"Reverse DNS (PTR) for an IPv4 or IPv6 address, with forward confirmation. Looks up the PTR name of an IP address and checks forward-confirmed reverse DNS (FCrDN"},{"name":"dns_spf","description":"SPF record check: full include tree, DNS lookup count, problems. Fetches the SPF record, expands include: and redirect= recursively, counts DNS-querying mechani"},{"name":"dns_dmarc","description":"DMARC record check and parsed policy. Reads _dmarc.<domain> (falling back to the organizational domain), parses p, sp, pct, rua, ruf, adkim, aspf and fo, and li"},{"name":"email_validate","description":"E-mail address check: syntax, MX, disposable, role, free provider, typos. Validates an address without sending mail: RFC syntax, normalized IDN domain, MX (or i"},{"name":"email_security","description":"E-mail security audit of a domain: MX, SPF, DMARC, DKIM, MTA-STS, TLS-RPT, BIMI, grade. One call audits a domain's mail setup: MX + provider, SPF tree and looku"},{"name":"domain_rdap","description":"Domain registration data (RDAP/WHOIS): registrar, created, expires, age, status. Looks up the registry RDAP server for the TLD (IANA bootstrap) and returns the "},{"name":"web_extract","description":"Fetch a web page and return clean main text and Markdown plus title and metadata. Fetches a public URL (redirects followed and re-checked) and converts the HTML"},{"name":"web_metadata","description":"Page metadata for link previews and SEO: title, description, OpenGraph, Twitter card, JSON-LD, favicon. Fetches a URL and returns title, meta description, canon"},{"name":"web_links","description":"All links on a page, absolute, de-duplicated, split into internal and external. Fetches a page and returns every <a href> as an absolute URL with its anchor tex"},{"name":"web_headers","description":"HTTP status, response headers, redirect chain, timing and a security-header audit. Requests a URL (HEAD or GET) and returns the final status, every redirect hop"},{"name":"web_robots","description":"Is a URL allowed for a crawler by robots.txt? Rules, crawl-delay and sitemaps. Fetches the site's /robots.txt and evaluates a URL path for a user-agent with RFC"},{"name":"web_sitemap","description":"Read a sitemap.xml (or a site's default sitemap): URLs with lastmod, child sitemaps. Fetches a sitemap URL, or for a bare site URL tries the sitemaps declared i"},{"name":"html_extract","description":"Convert HTML you already have to clean text / Markdown and extract its metadata and links. Same engine as web-extract, without fetching: send up to 2 MB of HTML"},{"name":"url_parse","description":"Parse, normalize and clean a URL (components, query params, punycode, tracking params removed). Splits a URL into scheme, host (Unicode and punycode), port, pat"},{"name":"evm_address","description":"Validate an EVM address and return its EIP-55 checksum form. Checks the 0x + 40 hex format, verifies a mixed-case EIP-55 checksum (flags typos), and returns the"},{"name":"evm_contract","description":"Is an address a contract or a wallet? Code size, EIP-1967 proxy implementation/admin/beacon, EIP-7702 delegation. Reads the bytecode of an address on a chain: E"},{"name":"evm_selector","description":"Function selector and event topic for a Solidity signature. Normalizes a function/event/error signature (drops parameter names, expands uint to uint256, handles"},{"name":"evm_selector_lookup","description":"Reverse-lookup 4-byte function selectors and 32-byte event topics to signatures. Looks up up to 20 selectors (0x + 8 hex) and event topics (0x + 64 hex) in the "},{"name":"abi_encode","description":"ABI-encode values (or full calldata for a function signature). Encodes values per the Solidity ABI: all integer sizes (range-checked), address, bool, bytesN, by"},{"name":"abi_decode","description":"ABI-decode calldata, return data or log data with known types or a signature. Decodes hex data with a list of ABI types or a function signature (the 4-byte sele"},{"name":"calldata_decode","description":"Decode unknown transaction calldata: find the function signature and decode the arguments. Looks up the selector (built-in list, then openchain / 4byte), tries "},{"name":"evm_tx","description":"Explain an EVM transaction: status, fee, decoded method, ERC-20/721 transfers. Fetches a transaction and its receipt from a public RPC: from/to, value, status, "},{"name":"evm_token","description":"ERC-20 token metadata: name, symbol, decimals, total supply (on-chain). Reads name(), symbol(), decimals() and totalSupply() directly from the token contract on"},{"name":"evm_balance","description":"Native and ERC-20 balances of an address. Native coin balance plus the balance of up to 10 ERC-20 tokens (raw and formatted with decimals and symbol) for an add"},{"name":"evm_gas","description":"Current gas price, base fee and priority fee on an EVM chain. Latest block number, base fee, suggested priority fee and gas price in gwei, plus the cost in nati"},{"name":"ens_resolve","description":"ENS: resolve a name to an address, or an address to its primary name (verified). Give \"name\" (vitalik.eth) to get its Ethereum address, resolver and namehash; g"},{"name":"evm_units","description":"Exact conversion between wei, gwei, ether or any token decimals. Converts an amount between wei / gwei / ether (or any decimals 0-36, e.g. 6 for USDC) with exac"},{"name":"evm_verify_message","description":"Recover the signer of an EIP-191 personal_sign message and check it against an address. Computes the EIP-191 message hash and recovers the signing address from "},{"name":"x402_check","description":"Probe an x402 endpoint: alive? what does it charge, on which chain, to whom? Is its 402 valid?. Calls a paid URL without paying and inspects the 402 challenge: "},{"name":"x402_search","description":"Search the x402 Bazaar catalogs for paid APIs by keyword, with prices. Searches the public discovery catalogs of the Coinbase CDP facilitator and the PayAI faci"},{"name":"ip_info","description":"Parse and classify an IPv4/IPv6 address (private, loopback, CGNAT, documentation, ...). Canonical and expanded forms, integer and hex values, version, scope per"},{"name":"cidr_info","description":"Subnet calculator for an IPv4/IPv6 CIDR block. Network and broadcast addresses, first/last usable host, netmask and wildcard, number of addresses and usable hos"},{"name":"cidr_contains","description":"Which of these IPs fall inside which CIDR ranges (allowlist / blocklist check). Checks up to 1,000 IPs against up to 1,000 CIDR blocks (IPv4 and IPv6) and retur"},{"name":"cidr_split","description":"Split a CIDR block into smaller subnets. Lists the subnets of a given prefix length inside a parent block (e.g. a /16 into /24s), up to 4,096 per call, with the"},{"name":"cidr_aggregate","description":"Merge / summarize a list of CIDRs into the smallest equivalent set. Collapses overlapping and adjacent IPv4/IPv6 ranges (route summarization), returning the min"},{"name":"ip_range_to_cidr","description":"Convert an IP range (start - end) to the minimal list of CIDR blocks. Exact conversion of an inclusive address range to CIDR blocks, IPv4 or IPv6, up to 1,000 b"},{"name":"json_validate","description":"Validate JSON data against a JSON Schema (draft 2020-12 / draft-07). Checks data against a schema: types, enum/const, numeric and string limits, patterns, forma"},{"name":"json_format","description":"Parse, pretty-print, minify or canonicalize JSON (sorted keys); locate syntax errors. Parses JSON and returns it pretty-printed (2/4 spaces or tabs), minified, "},{"name":"json_query","description":"Extract values from JSON with a JSON Pointer or a dotted path (a.b[0].c, items[*].id). Reads one value by RFC 6901 JSON Pointer (/a/b/0) or a dotted path with ["},{"name":"json_diff","description":"Structural diff of two JSON documents as JSON-Patch-style operations. Compares two JSON values key by key and index by index and returns add / remove / replace "},{"name":"csv_to_json","description":"CSV / TSV to JSON (RFC 4180 quoting, delimiter auto-detect, type inference). Parses CSV with quoted fields, embedded newlines and doubled quotes; auto-detects c"},{"name":"json_to_csv","description":"JSON array of objects to CSV (nested objects flattened to dot.keys). Converts an array of objects (or arrays) to CSV with a header row built from the union of k"},{"name":"text_stats","description":"Text statistics: words, sentences, reading time, readability, top keywords. Counts characters, graphemes, words, sentences, paragraphs and lines; estimates read"},{"name":"text_diff","description":"Line diff of two texts as a unified diff with added/removed counts. Computes a minimal line-based diff (LCS) between two texts and returns unified-diff hunks wi"},{"name":"text_transform","description":"Slugify and case conversion (camel, snake, kebab, title, constant ...), trim, dedupe lines. Transforms text: slug, camelCase, PascalCase, snake_case, kebab-case"},{"name":"hash","description":"Hash text or bytes: SHA-1/2/3, Keccak-256, MD5, RIPEMD-160, BLAKE2/3. Computes one or all of md5, sha1, sha224, sha256, sha384, sha512, sha3-256, sha3-512, kecc"},{"name":"hmac","description":"HMAC (SHA-256/384/512/1, MD5), e.g. to check a webhook signature. Computes HMAC of a message with a key (text, hex or base64). Optionally compares against an ex"},{"name":"encode","description":"Convert between UTF-8, hex, base64, base64url, base32, base58; URL and HTML escaping. Re-encodes data from one encoding to another (utf8, hex, base64, base64url"},{"name":"uuid","description":"Generate UUIDs (v4 random, v7 time-ordered) or parse/validate one. With no \"uuid\" parameter: generates up to 100 UUIDs of version 4 or 7 using a CSPRNG. With \"u"},{"name":"jwt_decode","description":"Decode a JWT and check its times; optionally verify an HS256/384/512 signature. Decodes header and payload, converts exp/iat/nbf to ISO dates, reports whether t"},{"name":"random","description":"Cryptographically secure random bytes, tokens and passwords. Generates random bytes (hex/base64/base64url/base58), passwords with chosen character classes, or n"},{"name":"unit_convert","description":"Convert between units: length, mass, volume, area, speed, time, data, pressure, energy, power, temperature, angle. Exact-factor conversion across 12 dimensions "},{"name":"time_convert","description":"Convert a time between time zones and formats (ISO, unix, RFC 2822), with DST-aware offsets. Parses ISO 8601, unix seconds/ms or \"now\" (a bare local time is rea"},{"name":"time_diff","description":"Duration between two dates/times, calendar difference and business days. Exact duration (seconds, minutes, hours, days), calendar difference in years/months/day"},{"name":"cron_next","description":"Explain a cron expression and list its next run times in any time zone. Parses a 5-field cron expression (lists, ranges, steps, month/day names, @daily/@hourly/"},{"name":"color","description":"Colour conversion (hex, RGB, HSL) and WCAG contrast ratio between two colours. Parses hex, rgb(), hsl() or CSS names and returns hex, RGB, HSL and relative lumi"},{"name":"currency_convert","description":"Currency conversion with official ECB euro reference rates (30 fiat currencies). Converts an amount between USD, EUR, GBP, JPY, CHF, CNY, INR, BRL, CAD, AUD and"},{"name":"semver","description":"Semantic versions: parse, compare, sort, and check against npm-style ranges. Parses SemVer 2.0 versions; compares two (a vs b); sorts a list (invalid ones repor"},{"name":"iban_validate","description":"Validate an IBAN: country length, mod-97 check digits, formatted output. Validates International Bank Account Numbers for 80+ countries: structure, country-spec"},{"name":"user_agent","description":"Parse a User-Agent: browser, engine, OS, device type, and known bots / AI crawlers. Identifies browser and version, rendering engine, OS and version, device cla"}],"toolCount":62,"toolsHash":"e4cc124fdc78996e7715f6393ce3f905275e12f4a4a488f490cdb4c439b7e8cd","serverName":"swiftbotlab-toolbox","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-27T21:30:39.951Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":103,"error":null,"detail":{"tools":[{"name":"dns_lookup","description":"DNS lookup for any record type over DNS-over-HTTPS. Resolve A, AAAA, MX, TXT, NS, CNAME, SOA, CAA, SRV, PTR, DS, DNSKEY, HTTPS, SVCB, TLSA or NAPTR records for "},{"name":"dns_mx","description":"Mail servers (MX) of a domain, sorted, with the mail provider. MX records sorted by priority, null-MX detection (RFC 7505), the implicit-MX fallback (A/AAAA) wh"},{"name":"dns_reverse","description":"Reverse DNS (PTR) for an IPv4 or IPv6 address, with forward confirmation. Looks up the PTR name of an IP address and checks forward-confirmed reverse DNS (FCrDN"},{"name":"dns_spf","description":"SPF record check: full include tree, DNS lookup count, problems. Fetches the SPF record, expands include: and redirect= recursively, counts DNS-querying mechani"},{"name":"dns_dmarc","description":"DMARC record check and parsed policy. Reads _dmarc.<domain> (falling back to the organizational domain), parses p, sp, pct, rua, ruf, adkim, aspf and fo, and li"},{"name":"email_validate","description":"E-mail address check: syntax, MX, disposable, role, free provider, typos. Validates an address without sending mail: RFC syntax, normalized IDN domain, MX (or i"},{"name":"email_security","description":"E-mail security audit of a domain: MX, SPF, DMARC, DKIM, MTA-STS, TLS-RPT, BIMI, grade. One call audits a domain's mail setup: MX + provider, SPF tree and looku"},{"name":"domain_rdap","description":"Domain registration data (RDAP/WHOIS): registrar, created, expires, age, status. Looks up the registry RDAP server for the TLD (IANA bootstrap) and returns the "},{"name":"web_extract","description":"Fetch a web page and return clean main text and Markdown plus title and metadata. Fetches a public URL (redirects followed and re-checked) and converts the HTML"},{"name":"web_metadata","description":"Page metadata for link previews and SEO: title, description, OpenGraph, Twitter card, JSON-LD, favicon. Fetches a URL and returns title, meta description, canon"},{"name":"web_links","description":"All links on a page, absolute, de-duplicated, split into internal and external. Fetches a page and returns every <a href> as an absolute URL with its anchor tex"},{"name":"web_headers","description":"HTTP status, response headers, redirect chain, timing and a security-header audit. Requests a URL (HEAD or GET) and returns the final status, every redirect hop"},{"name":"web_robots","description":"Is a URL allowed for a crawler by robots.txt? Rules, crawl-delay and sitemaps. Fetches the site's /robots.txt and evaluates a URL path for a user-agent with RFC"},{"name":"web_sitemap","description":"Read a sitemap.xml (or a site's default sitemap): URLs with lastmod, child sitemaps. Fetches a sitemap URL, or for a bare site URL tries the sitemaps declared i"},{"name":"html_extract","description":"Convert HTML you already have to clean text / Markdown and extract its metadata and links. Same engine as web-extract, without fetching: send up to 2 MB of HTML"},{"name":"url_parse","description":"Parse, normalize and clean a URL (components, query params, punycode, tracking params removed). Splits a URL into scheme, host (Unicode and punycode), port, pat"},{"name":"evm_address","description":"Validate an EVM address and return its EIP-55 checksum form. Checks the 0x + 40 hex format, verifies a mixed-case EIP-55 checksum (flags typos), and returns the"},{"name":"evm_contract","description":"Is an address a contract or a wallet? Code size, EIP-1967 proxy implementation/admin/beacon, EIP-7702 delegation. Reads the bytecode of an address on a chain: E"},{"name":"evm_selector","description":"Function selector and event topic for a Solidity signature. Normalizes a function/event/error signature (drops parameter names, expands uint to uint256, handles"},{"name":"evm_selector_lookup","description":"Reverse-lookup 4-byte function selectors and 32-byte event topics to signatures. Looks up up to 20 selectors (0x + 8 hex) and event topics (0x + 64 hex) in the "},{"name":"abi_encode","description":"ABI-encode values (or full calldata for a function signature). Encodes values per the Solidity ABI: all integer sizes (range-checked), address, bool, bytesN, by"},{"name":"abi_decode","description":"ABI-decode calldata, return data or log data with known types or a signature. Decodes hex data with a list of ABI types or a function signature (the 4-byte sele"},{"name":"calldata_decode","description":"Decode unknown transaction calldata: find the function signature and decode the arguments. Looks up the selector (built-in list, then openchain / 4byte), tries "},{"name":"evm_tx","description":"Explain an EVM transaction: status, fee, decoded method, ERC-20/721 transfers. Fetches a transaction and its receipt from a public RPC: from/to, value, status, "},{"name":"evm_token","description":"ERC-20 token metadata: name, symbol, decimals, total supply (on-chain). Reads name(), symbol(), decimals() and totalSupply() directly from the token contract on"},{"name":"evm_balance","description":"Native and ERC-20 balances of an address. Native coin balance plus the balance of up to 10 ERC-20 tokens (raw and formatted with decimals and symbol) for an add"},{"name":"evm_gas","description":"Current gas price, base fee and priority fee on an EVM chain. Latest block number, base fee, suggested priority fee and gas price in gwei, plus the cost in nati"},{"name":"ens_resolve","description":"ENS: resolve a name to an address, or an address to its primary name (verified). Give \"name\" (vitalik.eth) to get its Ethereum address, resolver and namehash; g"},{"name":"evm_units","description":"Exact conversion between wei, gwei, ether or any token decimals. Converts an amount between wei / gwei / ether (or any decimals 0-36, e.g. 6 for USDC) with exac"},{"name":"evm_verify_message","description":"Recover the signer of an EIP-191 personal_sign message and check it against an address. Computes the EIP-191 message hash and recovers the signing address from "},{"name":"x402_check","description":"Probe an x402 endpoint: alive? what does it charge, on which chain, to whom? Is its 402 valid?. Calls a paid URL without paying and inspects the 402 challenge: "},{"name":"x402_search","description":"Search the x402 Bazaar catalogs for paid APIs by keyword, with prices. Searches the public discovery catalogs of the Coinbase CDP facilitator and the PayAI faci"},{"name":"ip_info","description":"Parse and classify an IPv4/IPv6 address (private, loopback, CGNAT, documentation, ...). Canonical and expanded forms, integer and hex values, version, scope per"},{"name":"cidr_info","description":"Subnet calculator for an IPv4/IPv6 CIDR block. Network and broadcast addresses, first/last usable host, netmask and wildcard, number of addresses and usable hos"},{"name":"cidr_contains","description":"Which of these IPs fall inside which CIDR ranges (allowlist / blocklist check). Checks up to 1,000 IPs against up to 1,000 CIDR blocks (IPv4 and IPv6) and retur"},{"name":"cidr_split","description":"Split a CIDR block into smaller subnets. Lists the subnets of a given prefix length inside a parent block (e.g. a /16 into /24s), up to 4,096 per call, with the"},{"name":"cidr_aggregate","description":"Merge / summarize a list of CIDRs into the smallest equivalent set. Collapses overlapping and adjacent IPv4/IPv6 ranges (route summarization), returning the min"},{"name":"ip_range_to_cidr","description":"Convert an IP range (start - end) to the minimal list of CIDR blocks. Exact conversion of an inclusive address range to CIDR blocks, IPv4 or IPv6, up to 1,000 b"},{"name":"json_validate","description":"Validate JSON data against a JSON Schema (draft 2020-12 / draft-07). Checks data against a schema: types, enum/const, numeric and string limits, patterns, forma"},{"name":"json_format","description":"Parse, pretty-print, minify or canonicalize JSON (sorted keys); locate syntax errors. Parses JSON and returns it pretty-printed (2/4 spaces or tabs), minified, "},{"name":"json_query","description":"Extract values from JSON with a JSON Pointer or a dotted path (a.b[0].c, items[*].id). Reads one value by RFC 6901 JSON Pointer (/a/b/0) or a dotted path with ["},{"name":"json_diff","description":"Structural diff of two JSON documents as JSON-Patch-style operations. Compares two JSON values key by key and index by index and returns add / remove / replace "},{"name":"csv_to_json","description":"CSV / TSV to JSON (RFC 4180 quoting, delimiter auto-detect, type inference). Parses CSV with quoted fields, embedded newlines and doubled quotes; auto-detects c"},{"name":"json_to_csv","description":"JSON array of objects to CSV (nested objects flattened to dot.keys). Converts an array of objects (or arrays) to CSV with a header row built from the union of k"},{"name":"text_stats","description":"Text statistics: words, sentences, reading time, readability, top keywords. Counts characters, graphemes, words, sentences, paragraphs and lines; estimates read"},{"name":"text_diff","description":"Line diff of two texts as a unified diff with added/removed counts. Computes a minimal line-based diff (LCS) between two texts and returns unified-diff hunks wi"},{"name":"text_transform","description":"Slugify and case conversion (camel, snake, kebab, title, constant ...), trim, dedupe lines. Transforms text: slug, camelCase, PascalCase, snake_case, kebab-case"},{"name":"hash","description":"Hash text or bytes: SHA-1/2/3, Keccak-256, MD5, RIPEMD-160, BLAKE2/3. Computes one or all of md5, sha1, sha224, sha256, sha384, sha512, sha3-256, sha3-512, kecc"},{"name":"hmac","description":"HMAC (SHA-256/384/512/1, MD5), e.g. to check a webhook signature. Computes HMAC of a message with a key (text, hex or base64). Optionally compares against an ex"},{"name":"encode","description":"Convert between UTF-8, hex, base64, base64url, base32, base58; URL and HTML escaping. Re-encodes data from one encoding to another (utf8, hex, base64, base64url"},{"name":"uuid","description":"Generate UUIDs (v4 random, v7 time-ordered) or parse/validate one. With no \"uuid\" parameter: generates up to 100 UUIDs of version 4 or 7 using a CSPRNG. With \"u"},{"name":"jwt_decode","description":"Decode a JWT and check its times; optionally verify an HS256/384/512 signature. Decodes header and payload, converts exp/iat/nbf to ISO dates, reports whether t"},{"name":"random","description":"Cryptographically secure random bytes, tokens and passwords. Generates random bytes (hex/base64/base64url/base58), passwords with chosen character classes, or n"},{"name":"unit_convert","description":"Convert between units: length, mass, volume, area, speed, time, data, pressure, energy, power, temperature, angle. Exact-factor conversion across 12 dimensions "},{"name":"time_convert","description":"Convert a time between time zones and formats (ISO, unix, RFC 2822), with DST-aware offsets. Parses ISO 8601, unix seconds/ms or \"now\" (a bare local time is rea"},{"name":"time_diff","description":"Duration between two dates/times, calendar difference and business days. Exact duration (seconds, minutes, hours, days), calendar difference in years/months/day"},{"name":"cron_next","description":"Explain a cron expression and list its next run times in any time zone. Parses a 5-field cron expression (lists, ranges, steps, month/day names, @daily/@hourly/"},{"name":"color","description":"Colour conversion (hex, RGB, HSL) and WCAG contrast ratio between two colours. Parses hex, rgb(), hsl() or CSS names and returns hex, RGB, HSL and relative lumi"},{"name":"currency_convert","description":"Currency conversion with official ECB euro reference rates (30 fiat currencies). Converts an amount between USD, EUR, GBP, JPY, CHF, CNY, INR, BRL, CAD, AUD and"},{"name":"semver","description":"Semantic versions: parse, compare, sort, and check against npm-style ranges. Parses SemVer 2.0 versions; compares two (a vs b); sorts a list (invalid ones repor"},{"name":"iban_validate","description":"Validate an IBAN: country length, mod-97 check digits, formatted output. Validates International Bank Account Numbers for 80+ countries: structure, country-spec"},{"name":"user_agent","description":"Parse a User-Agent: browser, engine, OS, device type, and known bots / AI crawlers. Identifies browser and version, rendering engine, OS and version, device cla"}],"toolCount":62,"toolsHash":"e4cc124fdc78996e7715f6393ce3f905275e12f4a4a488f490cdb4c439b7e8cd","serverName":"swiftbotlab-toolbox","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-27T14:27:27.839Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":107,"error":null,"detail":{"tools":[{"name":"dns_lookup","description":"DNS lookup for any record type over DNS-over-HTTPS. Resolve A, AAAA, MX, TXT, NS, CNAME, SOA, CAA, SRV, PTR, DS, DNSKEY, HTTPS, SVCB, TLSA or NAPTR records for "},{"name":"dns_mx","description":"Mail servers (MX) of a domain, sorted, with the mail provider. MX records sorted by priority, null-MX detection (RFC 7505), the implicit-MX fallback (A/AAAA) wh"},{"name":"dns_reverse","description":"Reverse DNS (PTR) for an IPv4 or IPv6 address, with forward confirmation. Looks up the PTR name of an IP address and checks forward-confirmed reverse DNS (FCrDN"},{"name":"dns_spf","description":"SPF record check: full include tree, DNS lookup count, problems. Fetches the SPF record, expands include: and redirect= recursively, counts DNS-querying mechani"},{"name":"dns_dmarc","description":"DMARC record check and parsed policy. Reads _dmarc.<domain> (falling back to the organizational domain), parses p, sp, pct, rua, ruf, adkim, aspf and fo, and li"},{"name":"email_validate","description":"E-mail address check: syntax, MX, disposable, role, free provider, typos. Validates an address without sending mail: RFC syntax, normalized IDN domain, MX (or i"},{"name":"email_security","description":"E-mail security audit of a domain: MX, SPF, DMARC, DKIM, MTA-STS, TLS-RPT, BIMI, grade. One call audits a domain's mail setup: MX + provider, SPF tree and looku"},{"name":"domain_rdap","description":"Domain registration data (RDAP/WHOIS): registrar, created, expires, age, status. Looks up the registry RDAP server for the TLD (IANA bootstrap) and returns the "},{"name":"web_extract","description":"Fetch a web page and return clean main text and Markdown plus title and metadata. Fetches a public URL (redirects followed and re-checked) and converts the HTML"},{"name":"web_metadata","description":"Page metadata for link previews and SEO: title, description, OpenGraph, Twitter card, JSON-LD, favicon. Fetches a URL and returns title, meta description, canon"},{"name":"web_links","description":"All links on a page, absolute, de-duplicated, split into internal and external. Fetches a page and returns every <a href> as an absolute URL with its anchor tex"},{"name":"web_headers","description":"HTTP status, response headers, redirect chain, timing and a security-header audit. Requests a URL (HEAD or GET) and returns the final status, every redirect hop"},{"name":"web_robots","description":"Is a URL allowed for a crawler by robots.txt? Rules, crawl-delay and sitemaps. Fetches the site's /robots.txt and evaluates a URL path for a user-agent with RFC"},{"name":"web_sitemap","description":"Read a sitemap.xml (or a site's default sitemap): URLs with lastmod, child sitemaps. Fetches a sitemap URL, or for a bare site URL tries the sitemaps declared i"},{"name":"html_extract","description":"Convert HTML you already have to clean text / Markdown and extract its metadata and links. Same engine as web-extract, without fetching: send up to 2 MB of HTML"},{"name":"url_parse","description":"Parse, normalize and clean a URL (components, query params, punycode, tracking params removed). Splits a URL into scheme, host (Unicode and punycode), port, pat"},{"name":"evm_address","description":"Validate an EVM address and return its EIP-55 checksum form. Checks the 0x + 40 hex format, verifies a mixed-case EIP-55 checksum (flags typos), and returns the"},{"name":"evm_contract","description":"Is an address a contract or a wallet? Code size, EIP-1967 proxy implementation/admin/beacon, EIP-7702 delegation. Reads the bytecode of an address on a chain: E"},{"name":"evm_selector","description":"Function selector and event topic for a Solidity signature. Normalizes a function/event/error signature (drops parameter names, expands uint to uint256, handles"},{"name":"evm_selector_lookup","description":"Reverse-lookup 4-byte function selectors and 32-byte event topics to signatures. Looks up up to 20 selectors (0x + 8 hex) and event topics (0x + 64 hex) in the "},{"name":"abi_encode","description":"ABI-encode values (or full calldata for a function signature). Encodes values per the Solidity ABI: all integer sizes (range-checked), address, bool, bytesN, by"},{"name":"abi_decode","description":"ABI-decode calldata, return data or log data with known types or a signature. Decodes hex data with a list of ABI types or a function signature (the 4-byte sele"},{"name":"calldata_decode","description":"Decode unknown transaction calldata: find the function signature and decode the arguments. Looks up the selector (built-in list, then openchain / 4byte), tries "},{"name":"evm_tx","description":"Explain an EVM transaction: status, fee, decoded method, ERC-20/721 transfers. Fetches a transaction and its receipt from a public RPC: from/to, value, status, "},{"name":"evm_token","description":"ERC-20 token metadata: name, symbol, decimals, total supply (on-chain). Reads name(), symbol(), decimals() and totalSupply() directly from the token contract on"},{"name":"evm_balance","description":"Native and ERC-20 balances of an address. Native coin balance plus the balance of up to 10 ERC-20 tokens (raw and formatted with decimals and symbol) for an add"},{"name":"evm_gas","description":"Current gas price, base fee and priority fee on an EVM chain. Latest block number, base fee, suggested priority fee and gas price in gwei, plus the cost in nati"},{"name":"ens_resolve","description":"ENS: resolve a name to an address, or an address to its primary name (verified). Give \"name\" (vitalik.eth) to get its Ethereum address, resolver and namehash; g"},{"name":"evm_units","description":"Exact conversion between wei, gwei, ether or any token decimals. Converts an amount between wei / gwei / ether (or any decimals 0-36, e.g. 6 for USDC) with exac"},{"name":"evm_verify_message","description":"Recover the signer of an EIP-191 personal_sign message and check it against an address. Computes the EIP-191 message hash and recovers the signing address from "},{"name":"x402_check","description":"Probe an x402 endpoint: alive? what does it charge, on which chain, to whom? Is its 402 valid?. Calls a paid URL without paying and inspects the 402 challenge: "},{"name":"x402_search","description":"Search the x402 Bazaar catalogs for paid APIs by keyword, with prices. Searches the public discovery catalogs of the Coinbase CDP facilitator and the PayAI faci"},{"name":"ip_info","description":"Parse and classify an IPv4/IPv6 address (private, loopback, CGNAT, documentation, ...). Canonical and expanded forms, integer and hex values, version, scope per"},{"name":"cidr_info","description":"Subnet calculator for an IPv4/IPv6 CIDR block. Network and broadcast addresses, first/last usable host, netmask and wildcard, number of addresses and usable hos"},{"name":"cidr_contains","description":"Which of these IPs fall inside which CIDR ranges (allowlist / blocklist check). Checks up to 1,000 IPs against up to 1,000 CIDR blocks (IPv4 and IPv6) and retur"},{"name":"cidr_split","description":"Split a CIDR block into smaller subnets. Lists the subnets of a given prefix length inside a parent block (e.g. a /16 into /24s), up to 4,096 per call, with the"},{"name":"cidr_aggregate","description":"Merge / summarize a list of CIDRs into the smallest equivalent set. Collapses overlapping and adjacent IPv4/IPv6 ranges (route summarization), returning the min"},{"name":"ip_range_to_cidr","description":"Convert an IP range (start - end) to the minimal list of CIDR blocks. Exact conversion of an inclusive address range to CIDR blocks, IPv4 or IPv6, up to 1,000 b"},{"name":"json_validate","description":"Validate JSON data against a JSON Schema (draft 2020-12 / draft-07). Checks data against a schema: types, enum/const, numeric and string limits, patterns, forma"},{"name":"json_format","description":"Parse, pretty-print, minify or canonicalize JSON (sorted keys); locate syntax errors. Parses JSON and returns it pretty-printed (2/4 spaces or tabs), minified, "},{"name":"json_query","description":"Extract values from JSON with a JSON Pointer or a dotted path (a.b[0].c, items[*].id). Reads one value by RFC 6901 JSON Pointer (/a/b/0) or a dotted path with ["},{"name":"json_diff","description":"Structural diff of two JSON documents as JSON-Patch-style operations. Compares two JSON values key by key and index by index and returns add / remove / replace "},{"name":"csv_to_json","description":"CSV / TSV to JSON (RFC 4180 quoting, delimiter auto-detect, type inference). Parses CSV with quoted fields, embedded newlines and doubled quotes; auto-detects c"},{"name":"json_to_csv","description":"JSON array of objects to CSV (nested objects flattened to dot.keys). Converts an array of objects (or arrays) to CSV with a header row built from the union of k"},{"name":"text_stats","description":"Text statistics: words, sentences, reading time, readability, top keywords. Counts characters, graphemes, words, sentences, paragraphs and lines; estimates read"},{"name":"text_diff","description":"Line diff of two texts as a unified diff with added/removed counts. Computes a minimal line-based diff (LCS) between two texts and returns unified-diff hunks wi"},{"name":"text_transform","description":"Slugify and case conversion (camel, snake, kebab, title, constant ...), trim, dedupe lines. Transforms text: slug, camelCase, PascalCase, snake_case, kebab-case"},{"name":"hash","description":"Hash text or bytes: SHA-1/2/3, Keccak-256, MD5, RIPEMD-160, BLAKE2/3. Computes one or all of md5, sha1, sha224, sha256, sha384, sha512, sha3-256, sha3-512, kecc"},{"name":"hmac","description":"HMAC (SHA-256/384/512/1, MD5), e.g. to check a webhook signature. Computes HMAC of a message with a key (text, hex or base64). Optionally compares against an ex"},{"name":"encode","description":"Convert between UTF-8, hex, base64, base64url, base32, base58; URL and HTML escaping. Re-encodes data from one encoding to another (utf8, hex, base64, base64url"},{"name":"uuid","description":"Generate UUIDs (v4 random, v7 time-ordered) or parse/validate one. With no \"uuid\" parameter: generates up to 100 UUIDs of version 4 or 7 using a CSPRNG. With \"u"},{"name":"jwt_decode","description":"Decode a JWT and check its times; optionally verify an HS256/384/512 signature. Decodes header and payload, converts exp/iat/nbf to ISO dates, reports whether t"},{"name":"random","description":"Cryptographically secure random bytes, tokens and passwords. Generates random bytes (hex/base64/base64url/base58), passwords with chosen character classes, or n"},{"name":"unit_convert","description":"Convert between units: length, mass, volume, area, speed, time, data, pressure, energy, power, temperature, angle. Exact-factor conversion across 12 dimensions "},{"name":"time_convert","description":"Convert a time between time zones and formats (ISO, unix, RFC 2822), with DST-aware offsets. Parses ISO 8601, unix seconds/ms or \"now\" (a bare local time is rea"},{"name":"time_diff","description":"Duration between two dates/times, calendar difference and business days. Exact duration (seconds, minutes, hours, days), calendar difference in years/months/day"},{"name":"cron_next","description":"Explain a cron expression and list its next run times in any time zone. Parses a 5-field cron expression (lists, ranges, steps, month/day names, @daily/@hourly/"},{"name":"color","description":"Colour conversion (hex, RGB, HSL) and WCAG contrast ratio between two colours. Parses hex, rgb(), hsl() or CSS names and returns hex, RGB, HSL and relative lumi"},{"name":"currency_convert","description":"Currency conversion with official ECB euro reference rates (30 fiat currencies). Converts an amount between USD, EUR, GBP, JPY, CHF, CNY, INR, BRL, CAD, AUD and"},{"name":"semver","description":"Semantic versions: parse, compare, sort, and check against npm-style ranges. Parses SemVer 2.0 versions; compares two (a vs b); sorts a list (invalid ones repor"},{"name":"iban_validate","description":"Validate an IBAN: country length, mod-97 check digits, formatted output. Validates International Bank Account Numbers for 80+ countries: structure, country-spec"},{"name":"user_agent","description":"Parse a User-Agent: browser, engine, OS, device type, and known bots / AI crawlers. Identifies browser and version, rendering engine, OS and version, device cla"}],"toolCount":62,"toolsHash":"e4cc124fdc78996e7715f6393ce3f905275e12f4a4a488f490cdb4c439b7e8cd","serverName":"swiftbotlab-toolbox","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}}],"tools":[{"name":"dns_lookup","description":"DNS lookup for any record type over DNS-over-HTTPS. Resolve A, AAAA, MX, TXT, NS, CNAME, SOA, CAA, SRV, PTR, DS, DNSKEY, HTTPS, SVCB, TLSA or NAPTR records for "},{"name":"dns_mx","description":"Mail servers (MX) of a domain, sorted, with the mail provider. MX records sorted by priority, null-MX detection (RFC 7505), the implicit-MX fallback (A/AAAA) wh"},{"name":"dns_reverse","description":"Reverse DNS (PTR) for an IPv4 or IPv6 address, with forward confirmation. Looks up the PTR name of an IP address and checks forward-confirmed reverse DNS (FCrDN"},{"name":"dns_spf","description":"SPF record check: full include tree, DNS lookup count, problems. Fetches the SPF record, expands include: and redirect= recursively, counts DNS-querying mechani"},{"name":"dns_dmarc","description":"DMARC record check and parsed policy. Reads _dmarc.<domain> (falling back to the organizational domain), parses p, sp, pct, rua, ruf, adkim, aspf and fo, and li"},{"name":"email_validate","description":"E-mail address check: syntax, MX, disposable, role, free provider, typos. Validates an address without sending mail: RFC syntax, normalized IDN domain, MX (or i"},{"name":"email_security","description":"E-mail security audit of a domain: MX, SPF, DMARC, DKIM, MTA-STS, TLS-RPT, BIMI, grade. One call audits a domain's mail setup: MX + provider, SPF tree and looku"},{"name":"domain_rdap","description":"Domain registration data (RDAP/WHOIS): registrar, created, expires, age, status. Looks up the registry RDAP server for the TLD (IANA bootstrap) and returns the "},{"name":"web_extract","description":"Fetch a web page and return clean main text and Markdown plus title and metadata. Fetches a public URL (redirects followed and re-checked) and converts the HTML"},{"name":"web_metadata","description":"Page metadata for link previews and SEO: title, description, OpenGraph, Twitter card, JSON-LD, favicon. Fetches a URL and returns title, meta description, canon"},{"name":"web_links","description":"All links on a page, absolute, de-duplicated, split into internal and external. Fetches a page and returns every <a href> as an absolute URL with its anchor tex"},{"name":"web_headers","description":"HTTP status, response headers, redirect chain, timing and a security-header audit. Requests a URL (HEAD or GET) and returns the final status, every redirect hop"},{"name":"web_robots","description":"Is a URL allowed for a crawler by robots.txt? Rules, crawl-delay and sitemaps. Fetches the site's /robots.txt and evaluates a URL path for a user-agent with RFC"},{"name":"web_sitemap","description":"Read a sitemap.xml (or a site's default sitemap): URLs with lastmod, child sitemaps. Fetches a sitemap URL, or for a bare site URL tries the sitemaps declared i"},{"name":"html_extract","description":"Convert HTML you already have to clean text / Markdown and extract its metadata and links. Same engine as web-extract, without fetching: send up to 2 MB of HTML"},{"name":"url_parse","description":"Parse, normalize and clean a URL (components, query params, punycode, tracking params removed). Splits a URL into scheme, host (Unicode and punycode), port, pat"},{"name":"evm_address","description":"Validate an EVM address and return its EIP-55 checksum form. Checks the 0x + 40 hex format, verifies a mixed-case EIP-55 checksum (flags typos), and returns the"},{"name":"evm_contract","description":"Is an address a contract or a wallet? Code size, EIP-1967 proxy implementation/admin/beacon, EIP-7702 delegation. Reads the bytecode of an address on a chain: E"},{"name":"evm_selector","description":"Function selector and event topic for a Solidity signature. Normalizes a function/event/error signature (drops parameter names, expands uint to uint256, handles"},{"name":"evm_selector_lookup","description":"Reverse-lookup 4-byte function selectors and 32-byte event topics to signatures. Looks up up to 20 selectors (0x + 8 hex) and event topics (0x + 64 hex) in the "},{"name":"abi_encode","description":"ABI-encode values (or full calldata for a function signature). Encodes values per the Solidity ABI: all integer sizes (range-checked), address, bool, bytesN, by"},{"name":"abi_decode","description":"ABI-decode calldata, return data or log data with known types or a signature. Decodes hex data with a list of ABI types or a function signature (the 4-byte sele"},{"name":"calldata_decode","description":"Decode unknown transaction calldata: find the function signature and decode the arguments. Looks up the selector (built-in list, then openchain / 4byte), tries "},{"name":"evm_tx","description":"Explain an EVM transaction: status, fee, decoded method, ERC-20/721 transfers. Fetches a transaction and its receipt from a public RPC: from/to, value, status, "},{"name":"evm_token","description":"ERC-20 token metadata: name, symbol, decimals, total supply (on-chain). Reads name(), symbol(), decimals() and totalSupply() directly from the token contract on"},{"name":"evm_balance","description":"Native and ERC-20 balances of an address. Native coin balance plus the balance of up to 10 ERC-20 tokens (raw and formatted with decimals and symbol) for an add"},{"name":"evm_gas","description":"Current gas price, base fee and priority fee on an EVM chain. Latest block number, base fee, suggested priority fee and gas price in gwei, plus the cost in nati"},{"name":"ens_resolve","description":"ENS: resolve a name to an address, or an address to its primary name (verified). Give \"name\" (vitalik.eth) to get its Ethereum address, resolver and namehash; g"},{"name":"evm_units","description":"Exact conversion between wei, gwei, ether or any token decimals. Converts an amount between wei / gwei / ether (or any decimals 0-36, e.g. 6 for USDC) with exac"},{"name":"evm_verify_message","description":"Recover the signer of an EIP-191 personal_sign message and check it against an address. Computes the EIP-191 message hash and recovers the signing address from "},{"name":"x402_check","description":"Probe an x402 endpoint: alive? what does it charge, on which chain, to whom? Is its 402 valid?. Calls a paid URL without paying and inspects the 402 challenge: "},{"name":"x402_search","description":"Search the x402 Bazaar catalogs for paid APIs by keyword, with prices. Searches the public discovery catalogs of the Coinbase CDP facilitator and the PayAI faci"},{"name":"ip_info","description":"Parse and classify an IPv4/IPv6 address (private, loopback, CGNAT, documentation, ...). Canonical and expanded forms, integer and hex values, version, scope per"},{"name":"cidr_info","description":"Subnet calculator for an IPv4/IPv6 CIDR block. Network and broadcast addresses, first/last usable host, netmask and wildcard, number of addresses and usable hos"},{"name":"cidr_contains","description":"Which of these IPs fall inside which CIDR ranges (allowlist / blocklist check). Checks up to 1,000 IPs against up to 1,000 CIDR blocks (IPv4 and IPv6) and retur"},{"name":"cidr_split","description":"Split a CIDR block into smaller subnets. Lists the subnets of a given prefix length inside a parent block (e.g. a /16 into /24s), up to 4,096 per call, with the"},{"name":"cidr_aggregate","description":"Merge / summarize a list of CIDRs into the smallest equivalent set. Collapses overlapping and adjacent IPv4/IPv6 ranges (route summarization), returning the min"},{"name":"ip_range_to_cidr","description":"Convert an IP range (start - end) to the minimal list of CIDR blocks. Exact conversion of an inclusive address range to CIDR blocks, IPv4 or IPv6, up to 1,000 b"},{"name":"json_validate","description":"Validate JSON data against a JSON Schema (draft 2020-12 / draft-07). Checks data against a schema: types, enum/const, numeric and string limits, patterns, forma"},{"name":"json_format","description":"Parse, pretty-print, minify or canonicalize JSON (sorted keys); locate syntax errors. Parses JSON and returns it pretty-printed (2/4 spaces or tabs), minified, "},{"name":"json_query","description":"Extract values from JSON with a JSON Pointer or a dotted path (a.b[0].c, items[*].id). Reads one value by RFC 6901 JSON Pointer (/a/b/0) or a dotted path with ["},{"name":"json_diff","description":"Structural diff of two JSON documents as JSON-Patch-style operations. Compares two JSON values key by key and index by index and returns add / remove / replace "},{"name":"csv_to_json","description":"CSV / TSV to JSON (RFC 4180 quoting, delimiter auto-detect, type inference). Parses CSV with quoted fields, embedded newlines and doubled quotes; auto-detects c"},{"name":"json_to_csv","description":"JSON array of objects to CSV (nested objects flattened to dot.keys). Converts an array of objects (or arrays) to CSV with a header row built from the union of k"},{"name":"text_stats","description":"Text statistics: words, sentences, reading time, readability, top keywords. Counts characters, graphemes, words, sentences, paragraphs and lines; estimates read"},{"name":"text_diff","description":"Line diff of two texts as a unified diff with added/removed counts. Computes a minimal line-based diff (LCS) between two texts and returns unified-diff hunks wi"},{"name":"text_transform","description":"Slugify and case conversion (camel, snake, kebab, title, constant ...), trim, dedupe lines. Transforms text: slug, camelCase, PascalCase, snake_case, kebab-case"},{"name":"hash","description":"Hash text or bytes: SHA-1/2/3, Keccak-256, MD5, RIPEMD-160, BLAKE2/3. Computes one or all of md5, sha1, sha224, sha256, sha384, sha512, sha3-256, sha3-512, kecc"},{"name":"hmac","description":"HMAC (SHA-256/384/512/1, MD5), e.g. to check a webhook signature. Computes HMAC of a message with a key (text, hex or base64). Optionally compares against an ex"},{"name":"encode","description":"Convert between UTF-8, hex, base64, base64url, base32, base58; URL and HTML escaping. Re-encodes data from one encoding to another (utf8, hex, base64, base64url"},{"name":"uuid","description":"Generate UUIDs (v4 random, v7 time-ordered) or parse/validate one. With no \"uuid\" parameter: generates up to 100 UUIDs of version 4 or 7 using a CSPRNG. With \"u"},{"name":"jwt_decode","description":"Decode a JWT and check its times; optionally verify an HS256/384/512 signature. Decodes header and payload, converts exp/iat/nbf to ISO dates, reports whether t"},{"name":"random","description":"Cryptographically secure random bytes, tokens and passwords. Generates random bytes (hex/base64/base64url/base58), passwords with chosen character classes, or n"},{"name":"unit_convert","description":"Convert between units: length, mass, volume, area, speed, time, data, pressure, energy, power, temperature, angle. Exact-factor conversion across 12 dimensions "},{"name":"time_convert","description":"Convert a time between time zones and formats (ISO, unix, RFC 2822), with DST-aware offsets. Parses ISO 8601, unix seconds/ms or \"now\" (a bare local time is rea"},{"name":"time_diff","description":"Duration between two dates/times, calendar difference and business days. Exact duration (seconds, minutes, hours, days), calendar difference in years/months/day"},{"name":"cron_next","description":"Explain a cron expression and list its next run times in any time zone. Parses a 5-field cron expression (lists, ranges, steps, month/day names, @daily/@hourly/"},{"name":"color","description":"Colour conversion (hex, RGB, HSL) and WCAG contrast ratio between two colours. Parses hex, rgb(), hsl() or CSS names and returns hex, RGB, HSL and relative lumi"},{"name":"currency_convert","description":"Currency conversion with official ECB euro reference rates (30 fiat currencies). Converts an amount between USD, EUR, GBP, JPY, CHF, CNY, INR, BRL, CAD, AUD and"},{"name":"semver","description":"Semantic versions: parse, compare, sort, and check against npm-style ranges. Parses SemVer 2.0 versions; compares two (a vs b); sorts a list (invalid ones repor"},{"name":"iban_validate","description":"Validate an IBAN: country length, mod-97 check digits, formatted output. Validates International Bank Account Numbers for 80+ countries: structure, country-spec"},{"name":"user_agent","description":"Parse a User-Agent: browser, engine, OS, device type, and known bots / AI crawlers. Identifies browser and version, rendering engine, OS and version, device cla"}],"package":null,"toolSurface":{"id":"ts_j4gvt4gyg89a","endpointId":"ep_c3jg8r7tb9ww","hash":"e4cc124fdc78996e7715f6393ce3f905275e12f4a4a488f490cdb4c439b7e8cd","toolCount":62,"serverName":"swiftbotlab-toolbox","serverVersion":"1.0.0","protocolVersion":"2025-06-18","firstSeenAt":"2026-10-27T14:27:27.851Z","lastSeenAt":"2026-10-28T04:32:21.566Z","observations":3,"toolNames":["dns_lookup","dns_mx","dns_reverse","dns_spf","dns_dmarc","email_validate","email_security","domain_rdap","web_extract","web_metadata","web_links","web_headers","web_robots","web_sitemap","html_extract","url_parse","evm_address","evm_contract","evm_selector","evm_selector_lookup","abi_encode","abi_decode","calldata_decode","evm_tx","evm_token","evm_balance","evm_gas","ens_resolve","evm_units","evm_verify_message","x402_check","x402_search","ip_info","cidr_info","cidr_contains","cidr_split","cidr_aggregate","ip_range_to_cidr","json_validate","json_format","json_query","json_diff","csv_to_json","json_to_csv","text_stats","text_diff","text_transform","hash","hmac","encode","uuid","jwt_decode","random","unit_convert","time_convert","time_diff","cron_next","color","currency_convert","semver","iban_validate","user_agent"],"distinctSurfaces":1},"endpointFacts":[]},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"mcp_registry","key":"io.github.swiftbotlab/x402-toolbox","url":"https://registry.modelcontextprotocol.io/v0/servers/io.github.swiftbotlab%2Fx402-toolbox","firstSeenAt":"2026-10-27T13:22:34.038Z","fetchedAt":"2026-10-27T13:22:34.038Z","normalizedAt":"2026-10-27T13:22:34.038Z"}]},"firstSeenAt":"2026-10-27T13:22:34.038Z","updatedAt":"2026-10-28T04:36:25.701Z"}