Categories › AI & Agents › Multi-agent, orchestration & workflows
Pay-per-call agent tools: PDF, OCR, translation, news search, prediction markets, web, chain reads.
Remote server: your requests and data go to tanod.dev. Claude Code: claude mcp add --transport http tanod https://tanod.dev/mcp · Claude app: Settings → Connectors → Add custom connector.
The tools this server listed when we connected to it, in its own words.
scan_contract_source — pactlint: Scan Solidity source code for security bugs before you deploy, review or depend on it. For a deployed verified contract use scan_cscan_contract_address — pactlint: Scan a deployed, verified contract on Ethereum or Base for security bugs, by address. For source you hold use scan_contract_sourcecheck_contract_before_interaction — txpeek: Check an address for risk right before you send a transaction to it, approve it, or buy its token (Base or Ethereum). For a full scascan_agent_package — toolsniff: Scan an AI-agent skill or MCP server package before installing it. To see whether a remote MCP server answers use check_mcp_serverender_page — sitepeek: fetch a public http(s) URL and return clean Markdown (static, or with `js:true` executed in a sandboxed headless browser) or a PNGextract_pdf — sitepeek: extract the text of a PDF. For tables use extract_pdf_tables; for scans use pdf_ocr; for other formats use convert_document_to_marget_page_meta — sitepeek: read a public web page's metadata from its static HTML (no browser). For the readable text use render_page; for every link use extocr_image — sitepeek: OCR text in a public image; 17 languages. For a scanned PDF use pdf_ocr; for QR codes and barcodes use read_qr_barcode. Returns wiinspect_domain — dnspeek: inspect a domain's DNS, email authentication and TLS cert in one call. For registration data use rdap_lookup; for availability use rdap_lookup — dnspeek: RDAP (the successor of whois) registration lookup. For DNS and TLS use inspect_domain; for an IP's ASN and reverse DNS use ip_lookuverify_email — dnspeek: verify an email address before you send to it or accept it at sign-up. For the domain's SPF, DMARC and DKIM use inspect_domain. Cheip_lookup — dnspeek: look up an IP address. For the raw registry record use rdap_lookup. Returns version, is_public and, for a private or reserved addreresolve_ens — chainpeek: resolve an ENS name or address on Ethereum mainnet. For text records use get_ens_records. Input: `name` XOR `address`. Forward-redecode_calldata — chainpeek: decode EVM transaction calldata. To run a read call use eth_call; to fetch a transaction use get_transaction. Input: `calldata` aget_token_info — chainpeek: get ERC-20 token metadata on Ethereum, Base or Robinhood Chain. For a holder's balance use get_balance; for supply alone use get_get_balance — chainpeek: read the native or ERC-20 balance of an address on Ethereum, Base or Robinhood Chain. For several tokens at once use get_portfoliget_gas — chainpeek: read the current gas price on Ethereum, Base or Robinhood Chain. For the gas units a transaction needs use estimate_gas. Returns get_block — chainpeek: read the latest block header on Ethereum, Base or Robinhood Chain. For height and age only use get_block_number; for a past time get_token_price — chainpeek: read a token price from a Chainlink on-chain price feed (deterministic oracle answer, not a DEX spot price). For a DEX quote of aget_transaction — chainpeek: read a transaction and its receipt on Ethereum, Base or Robinhood Chain. For the receipt alone use get_transaction_receipt; for dget_nft — chainpeek: read one NFT on Ethereum, Base or Robinhood Chain. For the ERC-721 owner alone use get_nft_owner. The collection name, symbol andget_allowance — chainpeek: read an ERC-20 allowance on Ethereum, Base or Robinhood Chain. For every live approval of a wallet use audit_token_approvals. A tget_portfolio — chainpeek: read the native balance and up to 20 ERC-20 balances of an address on Ethereum, Base or Robinhood Chain in one call. For one balaget_swap_quote — chainpeek: quote an exact-input swap on Uniswap V3 (QuoterV2, read-only eth_call) on Ethereum or Base. For price impact over up to five sizeweb_search — findpeek: search the web for a query and get back ranked results (title, url, snippet) from an independent index (Mojeek). For the pages' teget_weather — weatherpeek: hourly weather forecast for a point or a city. For airport observations use get_metar. Input: either `lat` and `lon` together, check_sanctions — chainpeek: screen one crypto address against the US OFAC SDN list's digital currency addresses. For up to 1,000 addresses use check_sanctionget_fx_rates — utilpeek: foreign-exchange reference rates for a base currency. For live on-chain rates use get_live_fx_rates. Unknown currencies and older make_qr_code — utilpeek: make a QR code image. For 1-D barcodes use make_barcode; to read a code use read_qr_barcode. Returns `svg` (text) or `data_base64`geocode — utilpeek: offline geocoding over the GeoNames cities15000 table. For places of a kind nearby use find_places_nearby. Input: either `place` aget_public_holidays — utilpeek: public holidays of a country for a year. To count working days use count_or_add_business_days. An unsupported country, subdivisionparse_phone_number — utilpeek: parse and format a phone number. For a prefix's country and network use lookup_phone_prefix. A string that is not a phone number, validate_identifier — utilpeek: check the format and check digits of an identifier. For a VIN's vehicle use decode_vin; for phone numbers use parse_phone_number. parse_user_agent — utilpeek: parse a User-Agent string. For known x402 monitors and indexers with call rates use identify_x402_client. A User-Agent is self-repcron_next_runs — utilpeek: the next run times of a cron expression. For iCalendar RRULEs use expand_rrule. Standard 5-field cron (minute hour day-of-month moconvert_time — utilpeek: convert one instant between time zones. For business days use count_or_add_business_days. Zones come from the pinned IANA tz databparse_url — utilpeek: parse a URL. To fetch the page use render_page. The URL is parsed, never fetched. Public-suffix split from the Public Suffix List make_barcode — utilpeek: make a 1-D barcode image. For QR codes use make_qr_code; to find the product behind a number use lookup_barcode_product. Returns `check_security_headers — sitepeek: grade a public page's HTTP security headers. For a phishing-list check use check_url_phishing; for DNS and TLS use inspect_domain.check_robots_txt — sitepeek: test whether robots.txt lets a crawler fetch a URL. For the URLs a site lists use parse_sitemap. Fetches <origin>/robots.txt (firsNot tested by KitScout yet. When our harness runs it, pros, cons and the tasks we tried appear here, with the date and evidence.