Tanod
mcp remote · streamable-http · v0.4.2 · source: crawl
https://tanod.dev/mcp
Pay-per-call agent tools: PDF, OCR, translation, news search, prediction markets, web, chain reads.
Works
65
Verified Oct 31, 2026 · p50 2654 ms · p95 3085 ms
Worth
no data
No outcomes reported yet. Agents report through report_outcome after a find_agents call.
Checks
| Check | Weight | Result | Evidence |
|---|---|---|---|
| reachable | 20 | pass | 3 of 3 handshakes succeeded; server 'tanod' |
| tools_listed | 15 | pass | 308 tools |
| schema_complete | 15 | fail | 122 of 308 tools have a description and a typed schema |
| latency_p50 | 10 | fail | p50 2654 ms |
| latency_p95 | 5 | pass | p95 3085 ms |
| error_free | 10 | pass | 0 of 3 attempts failed |
| auth_posture | 10 | pass | https, open |
| injection_scan | 10 | fail | extract_pdf: base64 payload; make_qr_code: base64 payload; make_barcode: base64 payload; hash_text: base64 payload; hmac_sign_verify: base64 payload; text_encode: base64 payload; pdf_merge: base64 payload; pdf_split: base64 payload; pdf_extract_pages: base64 payload; pdf_remove_pages: base64 payload; pdf_rotate: base64 payload; pdf_compress: base64 payload; pdf_to_images: base64 payload; pdf_rasterize: base64 payload; pdf_redact: base64 payload; images_to_pdf: base64 payload; pdf_watermark: base |
| scope | 5 | pass | no execution-style tools |
Unknown counts as fail; n/a is left out of the denominator. How the weights work.
Tools (308)
| Name | Description | Schema |
|---|---|---|
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_contract_address. Runs solc, Slither and custom DeFi detector | incomplete |
scan_contract_address | pactlint: Scan a deployed, verified contract on Ethereum or Base for security bugs, by address. For source you hold use scan_contract_source. Fetches the verified source from Sourcify. Runs solc, Slit | typed |
check_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 scan of verified source use scan_contract_address; for a token' | typed |
scan_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_server. Reads every file as text in a sandbox. Returns a verdict, | incomplete |
render_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 PNG screenshot; private and internal addresses are refused. For | typed |
extract_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_markdown. Input: exactly one of `url` or `pdf_base64`, plus opt | incomplete |
get_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 extract_links. Returns status, title, description, lang, canoni | typed |
ocr_image | sitepeek: OCR the text in a public image. For a scanned PDF use pdf_ocr; for QR codes and barcodes use read_qr_barcode. Returns width, height, format, text (lines and paragraphs kept), words and confi | typed |
inspect_domain | dnspeek: inspect a domain's DNS, email authentication and TLS cert in one call. For registration data use rdap_lookup; for availability use check_domain_availability. Returns DNS records, SPF/DMARC/DK | incomplete |
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_lookup. Input: `query`, a domain, an IPv4 or IPv6 address or an A | typed |
verify_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. Checks syntax (practical RFC 5322 / 5321 limits, IDNA domains), | typed |
ip_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 address, `reserved_kind` (rfc1918, loopback, cgnat, link_local, d | typed |
resolve_ens | chainpeek: resolve an ENS name or address on Ethereum mainnet. For text records use get_ens_records. Input: `name` XOR `address`. Forward-resolves a name, or reverse-resolves an address with forward v | incomplete |
decode_calldata | chainpeek: decode EVM transaction calldata. To run a read call use eth_call; to fetch a transaction use get_transaction. Input: `calldata` and optional `signature`; with no signature the selector is l | incomplete |
get_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_total_supply. Returns name, symbol, decimals and total suppl | typed |
text_sentiment | utilpeek: Analyze the sentiment of an English text. For your own labels use classify_zero_shot; for counts use text_stats. Returns VADER sentiment of an English text: compound (-1 to 1), positive / ne | typed |
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_portfolio; for Solana use get_solana_balance. Returns wei and a deci | incomplete |
get_gas | chainpeek: read the current gas price on Ethereum, Base or Robinhood Chain. For the gas units a transaction needs use estimate_gas. Returns `gas_price_wei`, `gas_price_gwei` and the latest block's `ba | typed |
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 use get_block_at_time. Typically 0.2-1 s. Price: USD 0.001. | typed |
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 any token use get_swap_quote; for Solana use get_solana_token | typed |
get_transaction | chainpeek: read a transaction and its receipt on Ethereum, Base or Robinhood Chain. For the receipt alone use get_transaction_receipt; for decoded events use decode_tx_logs. An unknown hash is status | typed |
get_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 and token URI are attacker-controlled on-chain strings; the URI | typed |
get_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 token that is not a readable ERC-20 is a 422 (not charged). A | typed |
image_compress | imagepeek: Compress an image, optionally to a byte budget. To change the format only use image_convert. Returns a smaller JPEG, WebP, AVIF or PNG (or original if not smaller). With `max_bytes`, defaul | incomplete |
get_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 balance use get_balance; for transfer history use get_erc20_tran | incomplete |
get_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 sizes use pre_trade_check. Input: `chain`, `token_in`, `token_ou | incomplete |
web_search | findpeek: search the web for a query and get back ranked results (title, url, snippet) from an independent index (Mojeek). For the pages' text in the same call use search_with_contents; for news use n | incomplete |
get_weather | weatherpeek: hourly weather forecast for a point or a city. For airport observations use get_metar. Input: either `lat` and `lon` together, or `place` alone, plus optional `hours`. `place` matches cit | incomplete |
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_sanctions_batch; for lookalikes use check_address_poisoning. EVM and | typed |
get_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 dates are a 422 (not charged); an ECB outage is a 5xx (not c | incomplete |
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` (PNG), or with `output` "url" a 24 h download link, plus `v | typed |
geocode | utilpeek: offline geocoding over the GeoNames cities15000 table. For places of a kind nearby use find_places_nearby. Input: either `place` alone or `lat` and `lon` together. `place` matches cities of | incomplete |
get_public_holidays | utilpeek: public holidays of a country for a year. To count working days use count_or_add_business_days. An unsupported country, subdivision, language or year is a 422 naming the supported values (not | incomplete |
parse_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, or a national form without region, is a 422 (not charged). O | incomplete |
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. Returns `valid`, `reason` (invalid_checksum, invalid_length, | typed |
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-reported and easy to fake; `is_bot` is a heuristic (declared cr | typed |
cron_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 month day-of-week) or a macro (@daily, @hourly, ...); no secon | incomplete |
convert_time | utilpeek: convert one instant between time zones. For business days use count_or_add_business_days. Zones come from the pinned IANA tz database (tzdata package), not the host; a wall time in a DST gap | incomplete |
parse_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 snapshot bundled with the parser (dated 2025-04-07; suffixes | typed |
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 `svg` (text, with width_mm/height_mm) or `data_base64` (PNG, | typed |
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. Grades the final response after redirects: HSTS, CSP, X-Fra | typed |
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 (first 512 KiB) and matches the URL's path under RFC 9309: longes | typed |
parse_sitemap | sitepeek: parse a sitemap into its URLs. For crawl permission use check_robots_txt. An index is followed one level: its first 5 child sitemaps are fetched, the rest listed. Files over 10 MB (or 50 MB | typed |
extract_links | sitepeek: list a public page's links. For a site's URL list use parse_sitemap. `check: true` probes each returned http(s) link (HEAD, then a small GET; 20 s in total): each link then carries `check` a | typed |
get_block_at_time | chainpeek: find the block at a point in time on Ethereum, Base or Robinhood Chain. For the latest block use get_block_number. Returns `block` (the last block at or before the time) and `next_block`, o | incomplete |
detect_proxy | chainpeek: detect whether a contract is a proxy, and of which kind. For code size and hash use get_contract_code. Reads the code, the EIP-1967 / EIP-1822 / OpenZeppelin legacy slots and slot 0, then o | typed |
image_watermark | imagepeek: Add a text watermark to an image. For PDFs use pdf_watermark. Returns the image with a text watermark (1-200 printable characters, DejaVu Sans Mono) at one of 9 positions, or `tile`d in a s | incomplete |
get_ens_records | chainpeek: read an ENS name's records (Ethereum mainnet). To resolve the address use resolve_ens. Returns the `resolver` (with ENSIP-10 `wildcard`), `addresses` (eth; btc decoded to a P2PKH/P2SH/bech3 | typed |
decode_tx_logs | chainpeek: decode a transaction's event logs on Ethereum, Base or Robinhood Chain. For events over a block range use get_event_logs. Returns `status`, `block`, `log_count` and up to 200 `logs`; `event | typed |
text_stats | utilpeek: Count words and score the readability of a text. For word frequencies use text_frequency. Returns counts (characters, letters, words, unique words, sentences, paragraphs, averages), reading | incomplete |
detect_language | utilpeek: Detect the language of a text. To translate use translate_text. Returns the most likely language (ISO 639-1 and 639-3 code, name, confidence) and 3 alternatives, from an offline ensemble of | typed |
markdown_to_html | utilpeek: Convert Markdown to sanitized HTML. For the reverse use html_to_text. Returns the HTML of a Markdown document (markdown-it-py; `gfm` adds tables, strikethrough, autolinks and task lists), cl | typed |
html_to_text | utilpeek: Convert HTML to Markdown or plain text. To fetch a URL use render_page; for the reverse use markdown_to_html. Returns the readable content of an HTML document you send (the HTML itself, neve | incomplete |
diff_text | utilpeek: Diff two texts: unified line diff, word or character changes. For PDF or Word files use compare_documents. Returns the differences between two texts: similarity ratio, counts and hunks; in l | typed |
validate_json | utilpeek: Validate JSON against a JSON Schema. To pull JSON out of prose use extract_json_with_schema; to convert formats use convert_data. Returns whether a JSON value is valid against a JSON Schema | incomplete |
convert_data | utilpeek: Convert data between JSON, YAML, CSV, TOML and XML. To check JSON against a schema use validate_json. Returns the document converted from json, yaml, csv, toml or xml to json, yaml, csv or t | typed |
hash_text | utilpeek: Hash text or bytes: sha256, keccak256, blake2b, md5, crc32, ... For a keyed HMAC use hmac_sign_verify. Returns hex digests of the text (as UTF-8) or base64 bytes you send. md5 and sha1 are f | incomplete |
make_slug | utilpeek: Make a URL slug from text. For other case styles use text_case. Returns a URL slug: accents removed, Latin ligatures, Greek and Cyrillic transliterated, apostrophes dropped and other charact | typed |
generate_ids | utilpeek: Generate UUIDs or ULIDs. For numbers, bytes and picks use generate_random. Returns 1-100 new identifiers: random UUID v4, time-ordered UUID v7 (RFC 9562) or ULIDs, optionally strictly increa | typed |
hmac_sign_verify | utilpeek: Returns the HMAC of a message under a shared key (sign), or whether a signature matches it in constant time (verify); handles GitHub (`sha256=` prefix accepted), Stripe `v1` (of `{t}.{raw bo | incomplete |
lookup_phone_prefix | utilpeek: Look up a phone number prefix: country, line type and original network, with ambiguity. To parse a full number use parse_phone_number. Returns the country, line type, original network, time | incomplete |
get_live_fx_rates | utilpeek: Use when an agent needs on-chain EUR/GBP/MXN/BRL/CAD/SGD/ZAR/IDR vs USD or exchange quotes for 8 pairs, not ECB. For the ECB fix or a past date use get_fx_rates. Returns on-chain FX bid/ask/ | incomplete |
get_transaction_receipt | chainpeek: Get a transaction receipt on Ethereum, Base or Robinhood Chain. For value, nonce and confirmations too use get_transaction; for decoded events use decode_tx_logs. Returns the receipt of a m | typed |
check_stablecoin_peg | utilpeek: Check stablecoin peg: is USDC, USDT, DAI, USDe or PYUSD holding its dollar peg. For supply by chain use get_stablecoin_supply. Returns whether USDC, USDT, DAI, USDe or PYUSD holds its dollar | incomplete |
check_token_honeypot | chainpeek: Honeypot check: can this token be sold? Simulated buy and sell with tax. For a verdict that adds contract flags use check_token_safety. Returns a simulated buy and sell-back of an ERC-20 on | incomplete |
check_token_safety | chainpeek: Use when an agent needs a token risk check before buying an ERC-20 on Base or Ethereum, with a plain-language take. For a written summary and share card use token_verdict; for Solana use ch | typed |
token_verdict | chainpeek: Token risk verdict in plain language for a Base or Ethereum token, with a shareable card. For the simulation alone use check_token_honeypot. Returns a plain-language verdict (high_risk, cau | typed |
get_topic_trends_attention | utilpeek: Use when an agent must tell if interest in a topic is rising or fading: Wikipedia, Hacker News and news over time. For the articles use news_search. Returns daily topic trends for 1 to 5 top | incomplete |
get_large_token_trades | chainpeek: Who is buying this token? Recent large trades: big buys and sells on Base or Ethereum. For Solana use get_large_solana_token_trades; for a quote at your size use get_swap_quote. Returns who | typed |
get_exchange_reserves | chainpeek: Use when an agent must judge selling pressure or check reserves before depositing: a coin's exchange inflow or outflow. For DEX volume use get_dex_volume. Returns how much of a coin sits on | incomplete |
get_protocol_tvl | chainpeek: Get protocol or chain TVL with 1d and 7d change. For fees and revenue use get_protocol_fees; for DEX volume use get_dex_volume. Returns the TVL of a protocol or chain with 1d and 7d change, | incomplete |
get_stablecoin_supply | chainpeek: Get stablecoin supply by coin and chain. For whether a coin holds its peg use check_stablecoin_peg. Returns stablecoin supply by coin and chain with 1d, 7d and 30d change: a coin's chains, | incomplete |
get_dex_volume | chainpeek: Get DEX volume by protocol and chain. For TVL use get_protocol_tvl. Returns DEX volume over 24 hours, 7 days and 30 days with change: a DEX's chains, a chain's largest DEXs, a DEX on a chai | incomplete |
get_protocol_fees | chainpeek: Get protocol fees and revenue. For TVL use get_protocol_tvl. Returns a protocol's fees and revenue in USD over 24 hours, 7 days, 30 days, 1 year and all time, the change, the revenue-to-fee | typed |
check_solana_token_safety | chainpeek: Check a Solana token for rug risk: mint and freeze authority, top holders, sell quote. For authorities alone use get_solana_token_info; for ERC-20 tokens use check_token_safety. Returns a c | incomplete |
get_large_solana_token_trades | chainpeek: Who is buying this Solana token? Recent large trades: big buys, sells and swaps by mint. For the price use get_solana_token_price. Returns the recent large buys and sells of a Solana token | incomplete |
check_solana_reward_token_yield | chainpeek: Is this Solana reward token still paying holders? Last payout, 7d and 30d yield. For rug risk use check_solana_token_safety. Returns whether a Solana reward token still pays holders: PAYING | typed |
parse_rss_feed | utilpeek: Parse an RSS or Atom feed URL into clean JSON: feed data, items, dates, audio enclosures. To find a podcast's feed use search_podcasts. Returns a public RSS, Atom or RDF feed as clean JSON. | typed |
search_podcasts | utilpeek: Search podcasts by name or Apple Podcasts link: RSS feed URL, show data and latest episodes. To read any other feed use parse_rss_feed. Returns the RSS feed URL, show data and latest episode | typed |
transcribe_podcast_episode | mlpeek: Transcribe a podcast episode from its RSS feed: a window of up to 10 minutes as text, timed segments, SRT. For your own audio use transcribe_audio. Returns a transcript window (up to 10 min fr | incomplete |
convert_units | utilpeek: Convert units of measurement: length, weight, temperature, volume, pressure, energy, data size. For numbers in words use text_numbers. Returns a value converted between two units of one cate | typed |
count_or_add_business_days | utilpeek: Count business days between two dates or add working days, skipping public holidays. For the holiday list use get_public_holidays. Returns the business days between two dates (mode count; bo | incomplete |
convert_color_check_contrast | utilpeek: Convert a color between hex, RGB, HSL and OKLCH and check WCAG contrast. For contrast alone use check_wcag_contrast. Returns a CSS color (hex, rgb(), hsl() or a CSS name) as hex, rgb, hsl, h | incomplete |
check_wcag_contrast | utilpeek: Check the WCAG contrast between a text color and a background color. To convert colour formats too use convert_color_check_contrast. Returns the WCAG 2.x contrast ratio of a `foreground` and | typed |
text_case | utilpeek: Convert text case: title, sentence, snake, camel, kebab, ... For a URL slug use make_slug. Returns the text in another case: upper, lower, title (small words such as a, of, the kept lower-ca | typed |
text_lines | utilpeek: Sort, dedupe, trim, shuffle or number the lines of a text. For find and replace use text_replace. Returns the text's lines transformed by `operations` in order: trim, remove_empty, dedupe (k | typed |
text_replace | utilpeek: Find and replace in text. To sort, dedupe or number lines use text_lines. Returns the text with `find` replaced: literally, or as a regular expression on RE2 only (linear time for any patter | typed |
text_spellcheck | utilpeek: Spellcheck a text with suggestions. For counts and readability use text_stats. Returns the words not in the language's word-frequency dictionary (pyspellchecker), with positions (offset, lin | typed |
text_extract | utilpeek: Extract emails, URLs, domains, IPs, dates and crypto addresses from text. To mask personal data use redact_pii; for names and places use extract_entities. Returns the emails, URLs, domains ( | incomplete |
redact_pii | utilpeek: Redact PII from text: emails, phone numbers, card numbers, IBANs, SSNs, IPs and crypto addresses. For API keys and tokens use check_text_for_secrets. Returns the text with emails, phone numb | incomplete |
text_frequency | utilpeek: Count word and n-gram frequencies in a text. For scored keyphrases use text_keywords. Returns the most frequent words or 2-3 word n-grams (n-grams never cross punctuation) with count and sha | typed |
text_keywords | utilpeek: Extract the keywords and keyphrases of a text. For raw frequencies use text_frequency; for names and places use extract_entities. Returns the top keyphrases of a text by RAKE (phrases betwee | typed |
text_summarize | utilpeek: Summarize a text by picking its key sentences. For paper abstracts use paper_digest; for counts use text_stats. Returns an extractive summary: the most central `sentences` (or `ratio` of the | incomplete |
text_unicode_inspect | utilpeek: Find invisible, bidi and homoglyph Unicode characters in text. For injected instructions use check_text_for_prompt_injection. Returns a security-oriented Unicode inspection: `risk` (low / me | incomplete |
text_encode | utilpeek: Encode or decode text: base64, hex, URL, punycode, JWT decode, ... For digests use hash_text; for a JWT's claims use decode_jwt. Returns the text encoded or decoded with `codec`: base64, bas | typed |
text_lorem | utilpeek: Generate seeded lorem ipsum or English placeholder text. For random values use generate_random. Returns placeholder text: classic lorem ipsum or English filler, in words (at most 10,000), se | typed |
text_numbers | utilpeek: Convert numbers to English words. For units use convert_units. Returns a number spelled out in English (cardinal, ordinal, year, or currency for 13 currencies, rounded half-even to the minor | incomplete |
get_crypto_fear_greed_index | utilpeek: Get the crypto Fear & Greed Index: market sentiment value, label and 7-day history. For local exchange premiums use get_local_crypto_premiums. Returns the crypto Fear & Greed Index (alternat | typed |
sec_company_lookup | utilpeek: Look up a company in SEC EDGAR by ticker or CIK. For financials per year or quarter use sec_financials. Returns a US SEC registrant by ticker or CIK from SEC EDGAR: name, CIK, tickers, excha | incomplete |
sec_financials | utilpeek: Get a US company's reported financials per fiscal year or quarter from SEC EDGAR. For the registrant and filings use sec_company_lookup. Returns a US SEC registrant's reported financials by | incomplete |
treasury_yield_curve | utilpeek: Get US Treasury yields: the daily par yield curve for a date. For SOFR, FX and oil too use get_macro_snapshot. Returns the official US Treasury daily par yield curve for a date (default: the | incomplete |
get_macro_snapshot | utilpeek: Use when an agent needs the rates backdrop before a market decision: Treasury yields, SOFR/EFFR, FX, oil and gas in one call. For the Treasury curve on a past date use treasury_yield_curve. | typed |
get_local_crypto_premiums | utilpeek: Use when an agent needs to gauge local demand for crypto: the kimchi or USDT premium on local exchanges vs the global price. For global sentiment use get_crypto_fear_greed_index. Returns BTC | incomplete |
pdf_merge | pdfpeek: Use when an agent must combine several PDFs into one file, optionally taking only selected pages of each. To cut one PDF apart use pdf_split. Returns one PDF made of 2-20 input PDFs in order, | typed |
pdf_split | pdfpeek: Split a PDF by page ranges or every N pages. For one file of chosen pages use pdf_extract_pages. Returns a PDF split into several files: one per comma part of `ranges` (mode=ranges, e.g. 1-3, | incomplete |
pdf_extract_pages | pdfpeek: Extract pages from a PDF. To drop pages use pdf_remove_pages; for several files use pdf_split. Returns a new PDF with the selected pages in the order given (repeats allowed). Pages are 1-base | incomplete |
extract_pdf_images | pdfpeek: Extract embedded raster images from a PDF. Returns a ZIP of raster image XObjects and a per-page manifest; identical bytes share an asset. Up to 500 input pages, 100 selected pages, 200 image | incomplete |
get_solana_token_balances | chainpeek: Get the SPL token balances of a Solana wallet. For SOL use get_solana_balance; for EVM tokens use get_portfolio. Returns its SPL Token and Token-2022 accounts with a balance. At most 200 ac | typed |
pdf_remove_pages | pdfpeek: Remove pages from a PDF. To keep only some pages use pdf_extract_pages. Returns the PDF without the selected pages (1-based: N, N-M, N-, -M, last); removed pages and everything only they refe | incomplete |
pdf_rotate | pdfpeek: Rotate the pages of a PDF by 90, 180 or 270 degrees. For several page operations in one call use pdf_pipeline. Returns the PDF with its pages (or a `pages` selection) rotated clockwise by `an | incomplete |
pdf_compress | pdfpeek: Compress a PDF to shrink its file size. For an image-only copy use pdf_rasterize. Returns a smaller PDF: `level` lossless (structure only), recommended (images re-encoded as JPEG q75 at most | incomplete |
pdf_to_images | pdfpeek: Convert PDF pages to PNG or JPEG images. For one image-only PDF use pdf_rasterize. Returns each selected page rendered to PNG or JPEG (PDFium, no JavaScript) at `dpi` 36-300, optionally grays | incomplete |
get_solana_transaction | chainpeek: Get a parsed Solana transaction by its signature. For an address's recent signatures use get_solana_signatures. An unknown or pruned transaction is a 200 `status: not_found`, charged like / | typed |
pdf_rasterize | pdfpeek: Rasterize a PDF: every page rendered to an image, rebuilt as one PDF. To shrink and keep text use pdf_compress; for page images use pdf_to_images. Returns a new image-only PDF: each selected | incomplete |
pdf_redact | pdfpeek: Redact a PDF: black out terms, emails, phone numbers, card numbers and areas. To test a file redacted elsewhere use pdf_redaction_check. Returns a PDF whose redacted pages are images, so the | incomplete |
images_to_pdf | pdfpeek: Convert 1-30 images into a PDF. For Office files use convert_office_to_pdf; for a web page use html_to_pdf. Returns one PDF page per image (PNG, JPEG or WebP; JPEGs embedded byte for byte, EX | typed |
pdf_watermark | pdfpeek: Add a text watermark to a PDF. For page numbers use pdf_page_numbers; for images use image_watermark. Returns the PDF with a text watermark on every page (or a `pages` selection): Latin text | incomplete |
pdf_page_numbers | pdfpeek: Add page numbers to a PDF. For a text stamp use pdf_watermark. Returns the PDF with page numbers in a `format` such as "Page {n} of {N}" at one of 6 positions, with font, size, colour, opacit | incomplete |
pdf_outline | pdfpeek: Read the bookmarks of a PDF as a nested tree. To write bookmarks use pdf_set_outline. Returns the bookmarks as a nested tree of {title, page, open, children}; page is the 1-based target (null | incomplete |
pdf_protect | pdfpeek: Password-protect a PDF. To remove a password use pdf_unlock; to black out content use pdf_redact. Returns the PDF encrypted with AES-256: `user_password` opens it; `owner_password` lifts the | incomplete |
pdf_unlock | pdfpeek: Unlock a password-protected PDF. To add a password use pdf_protect. Returns the PDF decrypted, only with a password that opens it (the user or owner password, or "" for a file restricted by a | incomplete |
pdf_metadata | pdfpeek: Read, edit or strip the metadata of a PDF. For pages, forms and active content use pdf_inspect. Returns a PDF's document metadata (title, author, subject, keywords, creator, producer, created | incomplete |
html_to_pdf | pdfpeek: Convert a web page URL to PDF. For images use images_to_pdf; for an image capture use take_website_screenshot. Returns a public web page printed to PDF in a sandboxed headless browser: `paper | typed |
pdf_ocr | pdfpeek: OCR a scanned PDF into a searchable PDF. For one image use ocr_image; for a PDF with a text layer use extract_pdf. Returns a searchable PDF: tesseract OCR of the selected pages as an invisibl | incomplete |
pdf_inspect | pdfpeek: Price: USD 0.005; Free: 3 pdfpeek calls per IP per UTC day. It changes nothing; for title, author and dates, or to edit them, use pdf_metadata. Inspect a PDF: page sizes, text layer or scan, | incomplete |
pdf_reorder_pages | pdfpeek: Reorder, repeat or drop the pages of a PDF from a list of page numbers. To only drop pages use pdf_remove_pages. Returns a new PDF made of the pages in `order` (1-based, at most 500), in that | incomplete |
pdf_crop | pdfpeek: Crop the margins of a PDF. To change the paper size use pdf_resize. Returns the PDF with every page's (or a `pages` selection's) crop box set inside the page by the margins, measured on the p | incomplete |
pdf_resize | pdfpeek: Resize PDF pages to A4, Letter, Legal or a custom size. To trim margins use pdf_crop. Returns pages scaled to A4, Letter, Legal or a custom width x height (pt, mm, in): fit (whole page inside | incomplete |
pdf_set_outline | pdfpeek: Write the bookmarks of a PDF from a nested tree. To read bookmarks use pdf_outline. Returns the PDF with its bookmarks replaced by the `outline` tree {title, page, open?, children?} (at most | incomplete |
pdf_form_fields | pdfpeek: List the form fields of a PDF. To fill the fields use pdf_fill_form. Returns the form's fields in reading order: name (for fill-form), type (text, checkbox, radio, choice, button, signature), | incomplete |
pdf_fill_form | pdfpeek: Fill the form fields of a PDF from a JSON object. To make the values permanent use pdf_flatten. Returns the PDF with its form filled from `fields` (names from form-fields): strings or numbers | incomplete |
pdf_flatten | pdfpeek: Flatten the form fields and annotations of a PDF into the page content. To fill fields first use pdf_fill_form. Returns the PDF with form fields and annotations merged into the pages (`mode` | incomplete |
pdf_repair | pdfpeek: Repair a damaged PDF. For a report on a readable file use pdf_inspect. Returns the PDF opened with qpdf's recovery (bad or missing xref, cut-off file, junk before the header) and written agai | incomplete |
pdf_attachments | pdfpeek: List, extract or add the file attachments of a PDF. For a whole-file report use pdf_inspect. Returns the PDF's file attachments by `action`: list (default: name, filename, media type, size, d | incomplete |
pdf_pipeline | pdfpeek: Run up to 10 PDF operations in sequence on one PDF in a single call. For one operation use its own tool, such as pdf_rotate. Returns a PDF put through the `steps` in order, each step's output | incomplete |
image_resize | imagepeek: Resize an image. For several sizes in one call use image_thumbnail; for a box or ratio use image_crop. Returns the image resized to `width` and/or `height` (or by `scale`) with `fit` inside | incomplete |
image_convert | imagepeek: Convert an image to PNG, JPEG, WebP, GIF, TIFF, BMP, ICO or AVIF. To shrink the file use image_compress. Returns the image converted `to` png, jpeg, webp, gif, tiff, bmp, ico (16-256 px ico | incomplete |
image_crop | imagepeek: Crop an image to a box or an aspect ratio. To scale instead use image_resize. Returns the image cropped to a box (`left`, `top`, `width`, `height`; out of bounds is a 422 crop_out_of_bounds | incomplete |
image_rotate | imagepeek: Rotate or flip an image. To change the format use image_convert. Returns the image rotated clockwise by `angle` (multiples of 90 are lossless transposes; other angles are bicubic, expanded | incomplete |
image_thumbnail | imagepeek: Make 1-8 thumbnails of an image in one call. For one exact resize use image_resize. Returns 1-8 thumbnails in one call, each `sizes` entry {width, height} (at most 4096), by `fit` cover (sm | incomplete |
image_metadata | imagepeek: Read an image's EXIF, GPS, XMP, IPTC and ICC metadata. To remove the metadata use image_strip_metadata. Returns an image's header and metadata without decoding its pixels: format, dimension | incomplete |
image_strip_metadata | imagepeek: Strip an image's EXIF, GPS, XMP, IPTC and comment metadata. To read the metadata use image_metadata. Returns the image without EXIF (GPS included), XMP, IPTC, comments and text chunks: JPEG | incomplete |
image_colors | imagepeek: Extract the dominant colours of an image. For a placeholder string use image_blurhash. Returns an image's palette of `k` colours (hex, rgb, share), the dominant one and the average colour w | incomplete |
image_hash | imagepeek: Compute perceptual hashes of an image, optionally compared. To group duplicates among up to 100 images use image_dedupe. Returns perceptual hashes of an image (aHash, dHash, pHash, wHash; 6 | incomplete |
image_favicon | imagepeek: Generate a favicon set from an image. For plain sizes use image_thumbnail. Returns a favicon set from one image: favicon.ico (16, 32, 48 px), favicon-32x32.png, apple-touch-icon.png (180 px | incomplete |
image_blurhash | imagepeek: Generate a BlurHash placeholder string for an image. For the palette use image_colors. Returns the BlurHash string of an image (the published woltapp algorithm, identical to the reference p | incomplete |
get_account_nonce | chainpeek: Get an account's transaction count on Ethereum, Base or Robinhood Chain. For the next nonce with balance and gas checks use transfer_preflight; for the chain head use get_block_number. Retu | typed |
read_qr_barcode | imagepeek: Read every QR code and barcode in an image. To make a QR code use make_qr_code; for other text use ocr_image. Returns every code found: `type` (QR, EAN-13, EAN-8, UPC-A, UPC-E, Code128, Cod | incomplete |
embed_texts | mlpeek: Create text embeddings. For images too use embed_multimodal; for pair scores use text_similarity. Returns 384-dimension embeddings of 1-64 texts with bge-small-en-v1.5 (English) or multilingua | typed |
embed_multimodal | mlpeek: Create multimodal embeddings: images and text in one vector space. For text only use embed_texts. Returns 768-dim vectors of texts and images (URL or base64) in ONE space (EmbeddingGemma 2), c | typed |
rerank_documents | mlpeek: Rerank up to 100 documents against a query. For pair scores use text_similarity. Returns 1-100 documents scored against a query by the ms-marco-MiniLM-L6-v2 cross-encoder (Apache-2.0) and sort | incomplete |
text_similarity | mlpeek: Score the semantic similarity of one or up to 50 text pairs. To rank documents against a query use rerank_documents. Returns the cosine similarity of the embeddings of each text pair (bge-smal | incomplete |
extract_entities | mlpeek: Extract named entities: people, organisations, places, dates, money, ... For fields of your own schema use extract_json_with_schema. Returns named entities in English text with spaCy en_core_w | incomplete |
classify_zero_shot | mlpeek: Classify a text into 1-10 of your labels. For named entities use extract_entities. Returns scores of 1-10 caller-supplied labels for an English text with the nli-deberta-v3-xsmall NLI cross-en | typed |
translate_text | mlpeek: Translate text between English and 14 languages. For a PDF use translate_document; for audio use translate_speech; to only name the language use detect_language. Returns the text translated be | incomplete |
check_text_for_prompt_injection | mlpeek: Check text for prompt injection before an agent acts on it. For hidden Unicode use text_unicode_inspect. Returns a `verdict`, a `score` (0-1; `injection` at 0.9 and above) and `chunks`, the fl | typed |
get_dex_price_candles | chainpeek: Get ETH or BTC OHLCV price candles from on-chain DEX swaps. For the oracle price now use get_token_price. Returns OHLCV candles for ETH (WETH/USDC) or BTC (cbBTC/USDC) in USDC from public U | incomplete |
text_to_speech | mlpeek: Speak text aloud in 41 voices: English, Spanish, French, Hindi, Italian, Portuguese. For audio to text use transcribe_audio. Returns the text spoken as audio. Offline neural TTS (Kokoro-82M); | typed |
extract_json_with_schema | mlpeek: Extract JSON from text that always matches your JSON Schema. For fixed entity types use extract_entities. Returns `data`, JSON extracted from the `text` that always parses and validates agains | typed |
check_url_phishing | chainpeek: Check if a URL or domain is phishing or a scam. For up to 1,000 URLs use check_urls_phishing_batch; for headers use check_security_headers. Returns whether a URL's host (or a domain) is on | incomplete |
check_urls_phishing_batch | chainpeek: Check up to 1,000 URLs or domains for phishing or scams in one batch. For one URL use check_url_phishing. Returns the URL check for 1-1,000 URLs, hosts or domains in one call. A screening a | typed |
check_sanctions_batch | chainpeek: Screen up to 1,000 crypto addresses against OFAC sanctions in one batch. For one address use check_sanctions. Returns the OFAC sanctions screen of 1-1,000 crypto addresses in one call. EVM | typed |
get_event_logs | chainpeek: Query contract event logs over a block range, decoded. For one transaction's events use decode_tx_logs; for an address's token transfers use get_erc20_transfers. Returns eth_getLogs logs fo | incomplete |
eth_call | chainpeek: Call a smart contract function read-only on Ethereum, Base or Robinhood Chain. For gas units use estimate_gas; for a raw storage slot use get_storage_at. Returns the raw ABI-encoded return | incomplete |
estimate_gas | chainpeek: Estimate the gas of a transaction on Ethereum, Base or Robinhood Chain. For the gas price use get_gas; for a whole transfer check use transfer_preflight. Returns the node's gas estimate (`g | incomplete |
get_storage_at | chainpeek: Read a contract storage slot on Ethereum, Base or Robinhood Chain. For proxy implementation and admin slots use detect_proxy. Returns the 32-byte word at a storage `slot` of a contract (`va | incomplete |
convert_excel_to_json | pdfpeek: Read an Excel workbook into structured rows as JSON, or one CSV file per sheet. To build a workbook use build_xlsx_workbook. Returns string rows (cached values; trailing empties trimmed) or f | incomplete |
get_erc1155_balance | chainpeek: Get an account's ERC-1155 token balance for a token id on Ethereum, Base or Robinhood Chain. For an ERC-721 owner use get_nft_owner. Returns balanceOf(account, id) of an ERC-1155 contract ( | typed |
get_chain_info | chainpeek: Get the chain id, latest block, head age and gas price of Ethereum, Base or Robinhood Chain. For gas alone use get_gas; for the header alone use get_block. Returns `chain_id`, the latest `b | typed |
get_erc20_transfers | chainpeek: List the ERC-20 token transfers into and out of an address on Ethereum, Base or Robinhood Chain. For current balances use get_portfolio; for top counterparties use get_wallet_counterparties | incomplete |
get_block_number | chainpeek: Get the latest block number, timestamp and age in seconds of Ethereum, Base or Robinhood Chain. For the full header use get_block; for chain id and gas price use get_chain_info. Returns the | typed |
get_contract_code | chainpeek: Get the deployed bytecode size and hash of an address, with EIP-1167 and EIP-7702 detection. For other proxy kinds use detect_proxy. Returns what is deployed at an address. Only EIP-1167 cl | typed |
get_total_supply | chainpeek: Get an ERC-20 total supply with decimals and symbol on Ethereum, Base or Robinhood Chain. For name and symbol too use get_token_info. Returns the total supply of an ERC-20 as `total_supply_ | typed |
get_nft_owner | chainpeek: Get the owner and token URI of an ERC-721 token on Ethereum, Base or Robinhood Chain. For the standard check and collection data use get_nft. Returns the `owner` (ownerOf) of an ERC-721 tok | typed |
compare_stablecoin_transfer_fees | chainpeek: Compare USDC or USDT transfer fees on Base, Polygon, Ethereum, BNB, Arbitrum and Solana. For peg status use check_stablecoin_peg. Returns the fee of one USDC or USDT transfer on each chain, | incomplete |
check_address_poisoning | chainpeek: Check a transfer recipient for address poisoning: lookalikes in the sender's history. For balance, gas and blacklist checks too use transfer_preflight; for OFAC use check_sanctions. Returns | incomplete |
audit_token_approvals | chainpeek: List a wallet's live token approvals and get revoke transactions. For tokens already pulled out use check_wallet_drain; for one allowance use get_allowance. Returns the live ERC-20 and Perm | incomplete |
x402_edge_check | agentscan: Edge 402 check: does your CDN or WAF still serve the x402 challenge to AI bots. Returns what a URL answers to an AI-bot request and a plain one, unpaid: is the 402 there, cached, replaced b | incomplete |
check_wallet_drain | chainpeek: Check a wallet for a drain: find tokens pulled out without its signature. For live approvals with revoke transactions use audit_token_approvals. Returns a `verdict` (drained | review | clea | incomplete |
pre_trade_check | chainpeek: Check a Uniswap V3 swap at up to five sizes: price impact and candle gap. For one quote use get_swap_quote. Returns a Uniswap V3 swap quoted at each of up to five `sizes`, smallest first: ` | incomplete |
transfer_preflight | chainpeek: Preflight a USDC or USDT transfer: balance, gas, nonce, blacklist, recipient, simulation. For OFAC screening use check_sanctions; for a wallet's past pulls use check_wallet_drain. Returns a | typed |
get_wallet_counterparties | chainpeek: List a wallet's top counterparties: who an address sends to and receives from, by count and volume. For the raw transfer list use get_erc20_transfers. Returns who `address` transacts with o | typed |
get_solana_balance | chainpeek: Get the SOL balance of a Solana address. For SPL tokens use get_solana_token_balances. Returns `lamports` (exact integer string), `sol` (exact decimal string) and the `slot` it was read at; | typed |
get_solana_signatures | chainpeek: List the recent transaction signatures of a Solana address. For one transaction's details use get_solana_transaction. `next_before` is null on the last page; memos are on-chain strings capp | incomplete |
get_solana_account | chainpeek: Get the account info of a Solana address. For a mint's supply and authorities use get_solana_token_info. Returns whether the account `exists`, `lamports`, owner program (named when well kno | typed |
get_solana_token_info | chainpeek: Get the supply, decimals and authorities of a Solana token mint. For the price use get_solana_token_price; for rug risk use check_solana_token_safety. Returns `supply` (raw), `decimals`, `u | typed |
get_solana_token_price | chainpeek: Get the USD price and liquidity of a Solana token by mint address. For large recent trades use get_large_solana_token_trades. Returns its USD price and the liquidity of its deepest pool. Sp | typed |
take_website_screenshot | sitepeek: Take a website screenshot of a public URL. For the page's text use render_page; for a PDF use html_to_pdf; for a signed record of what a page showed use capture_web_evidence. Returns a publi | typed |
convert_document_to_markdown | pdfpeek: Price: USD 0.005; No free tier for full conversion. For PDF tables as rows use extract_pdf_tables. Use when an agent must read a Word, Excel, PowerPoint, PDF, HTML or EPUB file as Markdown te | incomplete |
lookup_lei | utilpeek: Look up a company by its LEI in the GLEIF register. To find an LEI by name use search_lei. Returns the GLEIF record of a LEI: legal name, status, jurisdiction, legal form, addresses, registr | typed |
convert_pdf_to_word | pdfpeek: Use when an agent must convert a PDF to Word (.docx) for editing. For the reverse use convert_office_to_pdf; for plain text use convert_document_to_markdown. Add output=url for a 24 h link. R | incomplete |
convert_office_to_pdf | pdfpeek: Convert a Word, Excel, PowerPoint, OpenDocument or RTF file to PDF. For the reverse use convert_pdf_to_word. Returns the document as a PDF made by LibreOffice, base64 in `file`, with `format` | incomplete |
fill_docx_template | pdfpeek: Fill the {{placeholders}} of a Word template with JSON data, as DOCX or PDF. For slides from JSON use build_pptx_deck. Returns the filled document, base64 in `file` (DOCX, or PDF with output= | incomplete |
build_pptx_deck | pdfpeek: Generate a PowerPoint deck from JSON slides: titles, bullets, speaker notes. For a workbook use build_xlsx_workbook; for a Word file use fill_docx_template. Returns the deck as a .pptx, base6 | incomplete |
extract_pdf_tables | pdfpeek: Use when an agent must pull the tables out of a PDF as JSON, CSV or XLSX for analysis. For running text use extract_pdf; for a bank statement use convert_bank_statement. Returns every table o | incomplete |
convert_bank_statement | pdfpeek: Use when an agent must turn a PDF bank statement into dated transactions for bookkeeping or import. For any other table use extract_pdf_tables. Returns transactions (`date`, `description`, si | incomplete |
build_xlsx_workbook | pdfpeek: Build a styled Excel workbook from JSON sheets, columns and rows. To read a workbook back use convert_excel_to_json; for slides use build_pptx_deck. Rows are arrays or objects; a column `type | incomplete |
compare_documents | pdfpeek: Compare two PDF or Word documents: changed paragraphs and rows, word diff, redline. For two plain texts use diff_text. Returns `summary` (inserted, deleted, modified, unchanged, similarity_pc | typed |
list_tracked_changes | pdfpeek: List DOCX insertions, deletions, moves, formatting changes and comments. Returns `revisions` with authors, dates, part-local paragraph context and run/paragraph-format before/after; `comments | typed |
convert_markdown_to_word | pdfpeek: Convert Markdown to Word: headings, lists, tables, code and links. Returns an editable Word .docx in `file` (base64; output=url gives a 24 h link), with page_size, output_bytes and note. Inpu | incomplete |
transcribe_audio | mlpeek: Speech to text and subtitles: transcribe audio to text, timed segments, SRT and WebVTT. For a podcast episode use transcribe_podcast_episode; to translate use translate_speech. Returns the tra | incomplete |
denoise_audio | mlpeek: Reduce background noise in speech audio. Returns mono 12 kHz WAV/MP3/Ogg speech audio with steady noise reduced by FFmpeg afftdn (no model weights), duration and filter. Public URL or base64, | incomplete |
translate_speech | mlpeek: Translate speech: audio to English or 14 languages, optionally spoken. For a transcript in the spoken language use transcribe_audio. Returns speech translation of an audio file of up to 2 minu | incomplete |
convert_subtitles | utilpeek: Convert subtitles between SRT, WebVTT and JSON, with a time shift. To make subtitles from audio use transcribe_audio. Returns a subtitle file converted between SRT, WebVTT and a JSON segment | incomplete |
check_subtitle_delivery | utilpeek: Check subtitle delivery timing, line length and reading speed. Returns a cue-level SRT/WebVTT delivery review with versioned language/audience profiles: en-US-adult-v1, en-US-children-v1, ja | incomplete |
get_metar | skypeek: Get current METAR airport weather reports. For forecasts use get_taf; to decode a report you hold use decode_metar_taf. Returns the latest METAR for 1-20 ICAO stations, raw and decoded, with | typed |
decode_metar_taf | skypeek: Decode a METAR or TAF weather report. To fetch the latest report use get_metar. Returns one METAR or TAF report you paste, decoded into wind, visibility, weather, clouds, temperature and dew | typed |
get_taf | skypeek: Get current TAF airport weather forecasts. For current observations use get_metar. Returns the current TAF for 1-20 ICAO stations, raw and decoded per forecast period (BASE, FM, TEMPO, BECMG, | typed |
lookup_airport | skypeek: Look up an airport by ICAO or IATA code or by name. For the distance between two use airport_distance. Returns an airport by ICAO, IATA or ident code (with runways: ends, length, width, surfa | incomplete |
airport_distance | skypeek: Calculate the great-circle distance between two airports or points. For airport details use lookup_airport. Returns the great-circle distance between two airports (by code) or coordinates, in | incomplete |
get_space_weather | skypeek: Get space weather: Kp index, forecast, solar wind, alerts. For aurora at a place use aurora_forecast. Returns current space weather: the planetary Kp index with its NOAA G-scale level, the Kp | typed |
aurora_forecast | skypeek: Aurora forecast: the chance of visible aurora at a location in the next 30-90 minutes. For Kp and solar wind use get_space_weather. Returns the chance (0 to 100 percent) of visible aurora ove | typed |
asteroid_close_approaches | skypeek: List asteroid and comet close approaches to Earth. For space weather use get_space_weather. Returns near-Earth object close approaches to Earth in the next 1-30 days within a miss distance (d | typed |
sun_moon_times | skypeek: Get sunrise, sunset, twilight, moonrise and moon phase for a place and date. For satellite passes use satellite_passes. Returns sunrise, sunset, solar noon, day length and civil / nautical / | incomplete |
check_x402_endpoint_before_paying | agentscan: Check an x402 endpoint before paying it: pay, caution or avoid, with reasons. For a seller checking their own listing use x402_seller_report; for listed prices alone use benchmark_x402_pric | incomplete |
satellite_passes | skypeek: Predict satellite passes over a location. For sun and moon times use sun_moon_times. Returns the passes of a satellite (default the ISS) over a point in the next 1-3 days: start, highest and | typed |
get_satellite_image | skypeek: Get a recent satellite image of a place or coordinates. For the forecast use get_weather. Returns a recent satellite picture of a place as a base64 PNG, with the capture date, cloud cover, so | incomplete |
get_airport_delays | skypeek: Airport delays: FAA ground stops, delay programs and closures at US airports right now. For airport data use lookup_airport. Returns live FAA airport status for the US: ground stops, ground d | incomplete |
x402_payment_status | chainpeek: Check an x402 payment: was its USDC authorization used, can it still settle. To make a real test payment instead use test_x402_payment. Returns whether one x402 payment authorization (EIP-3 | incomplete |
x402_receipt_check | chainpeek: Check an x402 receipt: did this transaction hash pay that amount to that address. Returns the token transfer in one transaction (chain, full hash, sender, recipient, explorer link, token, a | incomplete |
x402_well_known_file | agentscan: Build an x402 seller's /.well-known/x402 file from its Bazaar listings. Returns the /.well-known/x402 file body for one seller host, built from its current Bazaar and PayAI listings, with a | typed |
paper_digest | utilpeek: Price: USD 0.02; No free tier. For a plain search use search_papers. Digest the top academic papers on a topic: ranked, with a short summary of each. Returns the top papers on a topic from O | incomplete |
get_gpu_prices | utilpeek: GPU prices: cheapest H100, A100, L4 per GPU-hour on AWS, Azure, Google Cloud, Akash. Returns cheapest GPU prices per GPU-hour on AWS, Azure and Google Cloud (list prices) and Akash (marketpl | incomplete |
get_gpu_price_index | utilpeek: GPU price index: daily H100, H200, A100 rental price per GPU-hour over time. Returns a GPU chip's daily rental price history: lowest and median on-demand list price, lowest spot, Akash media | incomplete |
upload_file_get_link | utilpeek: Upload a file and get a download link that expires in 24 hours. Returns a public download link to a file you upload, valid for `ttl_hours` (default 24, the most); every call stores a new cop | typed |
peppol_lookup | utilpeek: Check whether a company is registered on the Peppol e-invoicing network. For the legal entity use search_lei. Returns whether a Peppol participant ID (such as 0192:983887457) is registered o | typed |
bulk_agent_index | agentscan: Price: USD 2; no free tier; per-IP daily cap. For a filtered slice use export_agent_index; to refresh an existing copy use agent_index_delta. Download the current snapshot (gzipped); option | incomplete |
company_profile | utilpeek: Get a company profile from a domain: site metadata, socials, tools, registration. For open jobs use company_jobs; for SEC filings use sec_company_lookup. Returns a company profile from a dom | typed |
company_jobs | utilpeek: List a company's open jobs from its Greenhouse, Lever or Ashby job board. For the company's profile use company_profile. Returns a company's open jobs from its public Greenhouse, Lever or As | incomplete |
repo_info | utilpeek: Get health facts for a GitHub repository: activity, licence, dependents, Scorecard. Returns GitHub repository health facts: stars, licence, activity, latest release, dependents and OpenSSF S | typed |
lint_x402_listing | utilpeek: Lint an x402 listing, or check a seller's Bazaar coverage. For price position, preflight and demand too use x402_seller_report. Returns in mode lint the listing's problems against the CDP ru | incomplete |
check_header_budget | utilpeek: Measure response headers against nginx, aiohttp, Node fetch and Python limits. Returns response-header byte sizes, total, Set-Cookie count and size, the five largest fields, and nginx/aiohtt | typed |
get_credit_balance | Balance of your prepaid Tanod credit key (the tnd_ key in this server's URL as ?key=, or in the Authorization: Bearer header), its recent purchases and charges, and how to add credit. Free; reads noth | typed |
check_domain_availability | dnspeek: Check if domain names are available to register. For a registered domain's record use rdap_lookup. Returns 1-50 domain names checked for availability from the registry's RDAP answer (404 = no | incomplete |
build_ics_event | utilpeek: Build an iCalendar file from JSON events. To read an .ics file use parse_ics. Returns RFC 5545 VCALENDAR text built from 1-50 events, CRLF lines folded at 75 octets and text escaped, with it | incomplete |
parse_ics | utilpeek: Parse an iCalendar file into JSON events. To write one use build_ics_event. Returns iCalendar text (Google, Outlook, Apple, up to 1 MB) unfolded and read into events. Windows zone names are | incomplete |
expand_rrule | utilpeek: Expand an iCalendar RRULE into dates. For cron use cron_next_runs; to build an event use build_ics_event. Returns an RFC 5545 RRULE and a start expanded into its occurrence list with python- | incomplete |
decode_jwt | utilpeek: Decode a JWT without verifying it. To check the signature use verify_jwt. Returns a compact JWT split into its header and payload JSON, with alg, typ, kid, whether a signature is present, an | typed |
verify_jwt | utilpeek: Verify a JWT signature and claims. To read the claims without a key use decode_jwt. Returns valid true or false for a JWT checked with PyJWT against one key (HMAC secret, PEM public key or J | incomplete |
search_lei | utilpeek: Search the GLEIF register for a company's LEI by name. For one LEI's full record and parents use lookup_lei. Returns up to 20 GLEIF records matching a company name (optionally in one country | incomplete |
decode_vin | utilpeek: Decode a vehicle identification number with NHTSA vPIC. For its recalls use vehicle_recalls. Returns the NHTSA vPIC decode of a VIN (US-market data). NHTSA data (public domain), cached up to | incomplete |
vehicle_recalls | utilpeek: List the NHTSA safety recalls of a vehicle by make, model and year or by VIN. For the VIN decode use decode_vin. Returns the NHTSA safety recalls of a vehicle by make, model and year, or by | incomplete |
benchmark_x402_price | agentscan: Benchmark an x402 endpoint price against listed prices for similar endpoints. For a pay or avoid verdict use check_x402_endpoint_before_paying; for a full listing review use x402_listing_au | incomplete |
test_x402_payment | agentscan: Make a real x402 payment to test your wallet and client, with a signed receipt. To check a signed authorization without paying use x402_payment_status; to vet a seller before paying use che | incomplete |
x402_seller_report | agentscan: x402 seller report: lint, price position, buyer preflight and Bazaar demand for one endpoint. For category demand history, 10 peers and ranked fixes use x402_listing_audit; for lint alone u | incomplete |
x402_listing_audit | agentscan: x402 listing review: lint, category demand history, 10 closest peers and ranked fixes. For a cheaper report without peers or history use x402_seller_report. Returns a full review of one x40 | incomplete |
get_x402_bazaar_pulse | agentscan: Use when an agent must decide what to list or price on x402: today's Bazaar listings, new sellers, payer gains and gaps. For endpoints with repeat payers use get_x402_repeat_demand. Returns | incomplete |
check_mcp_server | agentscan: Check whether a remote MCP server is up and what it offers. It reads no code; to scan a package before installing use scan_agent_package; to check a repo against an awesome list use preflig | typed |
search_with_contents | findpeek: Search the web and get the Markdown of the top results in one call. For links only use web_search. Returns search results (title, url, snippet) with the Markdown of each of the top n pages ( | typed |
render_pages_batch | sitepeek: Fetch up to 5 web page URLs to Markdown in one batch call. For 10 URLs in the contents API shape use fetch_page_contents; for JavaScript use render_page. Returns 1-5 web pages read as Markdo | typed |
fetch_page_contents | sitepeek: Price: USD 0.002 per URL (1-10 URLs per call: USD 0.002-0.02); No free tier. For one page with JavaScript use render_page. Get the contents of 1-10 URLs: web page to text for a list of URLs. | incomplete |
search_papers | utilpeek: Search academic papers by keyword. For top papers ranked with summaries use paper_digest. Returns academic papers for a query from OpenAlex (or arXiv). OpenAlex data (CC0), cached up to 1 ho | incomplete |
search_datasets | utilpeek: Find datasets on Hugging Face Hub only. Returns public datasets from Hugging Face Hub only, ranked by downloads: link, licence and size labels, downloads and last update. Optional licence, t | incomplete |
news_search | utilpeek: Search recent news articles by keyword. For the web at large use web_search; for crypto stories use get_crypto_news_headlines. Returns recent news articles for a query from the GDELT index, | incomplete |
identify_x402_client | agentscan: Identify an x402 client by User-Agent: monitor, indexer, grader or HTTP library, with call rate. For any other User-Agent use parse_user_agent; for a whole access log use analyze_agent_traf | incomplete |
get_crypto_news_headlines | utilpeek: Use when an agent must decide which crypto stories to react to: top headlines ranked by outlet coverage, new ones only. For any topic use news_search. Returns the latest crypto news headline | incomplete |
search_social_posts | findpeek: Search social posts on Bluesky and Hacker News: recent public posts about a topic. For news articles use news_search. Returns recent public Bluesky and Hacker News posts for a query, newest | incomplete |
generate_random | utilpeek: Generate cryptographically strong random numbers, bytes, UUIDs, dice rolls, picks and shuffles. For UUIDs and ULIDs use generate_ids. Returns values from the OS CSPRNG (Python `secrets`): in | incomplete |
get_funding_rates | chainpeek: Use when an agent needs what a Hyperliquid perp costs to hold, or whether funding is flipping, before sizing a trade. For Hyperliquid against dYdX use compare_funding_rates; for the best pa | incomplete |
get_endpoint_uptime_bulk | agentscan: Use when an agent must compare the 30-day uptime and valid-402 share of up to 25 x402 endpoints or MCP servers at once. Returns 30-day uptime, valid x402 402-envelope share, latency percent | typed |
get_perp_markets | chainpeek: List Hyperliquid perpetual markets with mark, oracle, open interest and volume. For funding history use get_funding_rates. Returns the Hyperliquid perp market list: mark, oracle, premium, o | incomplete |
compare_funding_rates | chainpeek: Compare perpetual funding rates between Hyperliquid and dYdX. For five venues net of fees use rank_funding_carry. Returns each venue's hourly and annualised funding and the spread (Hyperliq | incomplete |
rank_funding_carry | chainpeek: Rank cross-venue perpetual funding carry. For Hyperliquid against dYdX alone use compare_funding_rates; for market data use get_perp_markets. Returns the best long and short venue pair per | incomplete |
get_lending_yields | chainpeek: Use when an agent must choose where to lend or borrow: supply and borrow APY on Aave, Compound and Morpho. For protocol TVL use get_protocol_tvl; for perp funding use get_funding_rates. Ret | incomplete |
upscale_image | imagepeek: Upscale a small image 2x with a neural model. Returns creates a 2x neural derivative of one PNG, JPEG or WebP using offline QuickSRNet Small (BSD-3-Clause). Neural x2 derivative, not recove | incomplete |
search_prediction_markets | utilpeek: Use when an agent needs to see what odds traders put on an event: Polymarket probabilities, volume and liquidity for a topic. For regulated US event contracts use get_event_contract_odds. Re | incomplete |
get_event_contract_odds | utilpeek: Search regulated US event contracts by topic. For Polymarket use search_prediction_markets. Returns open regulated US event-contract markets (prediction markets) for a text query or a list: | incomplete |
decode_lightning_invoice | chainpeek: Decode a Lightning invoice: amount, payee, payment hash and expiry. For EVM calldata use decode_calldata; for Nostr ids use decode_nostr_id. Returns a Lightning invoice's network, amount (m | typed |
decode_nostr_id | chainpeek: Decode a Nostr npub, nprofile, note, nevent or naddr to hex; resolve NIP-05. For ENS names use resolve_ens. Returns a Nostr NIP-19 identifier decoded to hex (public key or event id) and its | incomplete |
check_status_page | utilpeek: Check an API status page: is a service up? Degraded components and open incidents. For whether an MCP server answers use check_mcp_server. Returns the overall status of a service's public st | typed |
get_verification_code | dnspeek: Get the verification code or magic link from an email without the email body. To check an address before sending use verify_email. Returns the one-time code(s) and verification link(s) from a | typed |
image_dedupe | imagepeek: Find duplicate images in a batch: group near-duplicates and pick the biggest. For a pair use image_hash. Returns groups of duplicate and near-duplicate images among up to 100 URLs (perceptu | typed |
pdf_redaction_check | pdfpeek: Check a PDF for failed redactions: black boxes with the text still under them. To redact properly use pdf_redact. Returns whether black boxes in a PDF still have readable text under them: per | incomplete |
check_text_for_secrets | utilpeek: Scan text for leaked secrets: API keys, tokens, private keys and seed phrases. For personal data use redact_pii; for injected instructions use check_text_for_prompt_injection. Returns every | typed |
recognize_math_image | imagepeek: Recognize one printed equation as LaTeX. Returns recognizes one cropped printed equation as LaTeX using an offline model. Input: Exactly one url or image_base64; PNG, JPEG or WebP, up to 10 | incomplete |
check_text_sources | findpeek: Check a text for copied sentences: web pages that contain them word for word. For a general query use web_search. Returns for up to 10 of a text's most distinctive sentences, the web pages t | incomplete |
translate_document | pdfpeek: Translate a PDF document, digital or scanned, to English or 14 languages as Markdown. For plain text use translate_text. Returns each page's text (text layer or OCR) translated offline into ` | incomplete |
check_agent_readiness | sitepeek: Returns 0-100 scores for llms.txt (links checked), robots rules for 16 AI agents, sitemap, schema.org types, OpenAPI, /.well-known files, a declared MCP endpoint, sign-up-free access (API au | typed |
get_x402_facilitator_changes | agentscan: Compare x402 facilitator support and changes since a date. Input: optional `since`; GET query or POST JSON. Observations, not settlement tests. Stale rows are last-known-good. Absent fees a | incomplete |
chain_json_rpc | chainpeek: Read one allowlisted, read-only EVM JSON-RPC method. Returns one read-only JSON-RPC result on ethereum, base, polygon, arbitrum, optimism or bsc. Input: `chain`, `method`, positional `param | incomplete |
audit_mcp_listings | agentscan: Review MCP Registry and Smithery listings. Returns official MCP Registry and bounded Smithery listings versus live tools, transport and repositories. Registry tool counts remain unknown. In | typed |
get_youtube_transcript | utilpeek: Get YouTube captions and video metadata. Returns YouTube caption text with timestamps, language and video metadata; optional AI chapters. Public captions only; no media download. Missing cap | incomplete |
preflight_mcp_listing | agentscan: Check an MCP server repo against a punkpeye awesome list's rules before opening a PR. To see whether the server answers use check_mcp_server; to scan its code use scan_agent_package. Return | incomplete |
get_near_account | chainpeek: Get a NEAR account: balance, staked NEAR, storage, access keys, contract deployed or not. For EVM balances use get_portfolio. Returns a NEAR account's liquid, locked (validator stake), tota | typed |
find_places_nearby | utilpeek: Find places nearby: pharmacies, cafes, ATMs, shops and hospitals near a point, from OpenStreetMap. To resolve a city name use geocode. Returns places of one kind (pharmacy, cafe, supermarket | incomplete |
get_x402_repeat_demand | agentscan: Find x402 endpoints with repeat paying demand: 2+ calls per payer in 30 days, sweeps left out. For the whole market today use get_x402_bazaar_pulse. Returns x402 endpoints whose 30-day paye | incomplete |
search_youtube_videos | utilpeek: Search public YouTube videos. Returns public YouTube video metadata for a query, up to 20 videos. Nullable fields name what is unavailable. Publication labels may be relative. Cached up to 1 | typed |
check_text_duplicate | utilpeek: Check whether a draft repeats your earlier texts. Returns the duplicate, near or new verdict for a draft compared with 1-50 earlier texts you supply, plus all collisions and closest matches | typed |
analyze_agent_traffic | agentscan: Analyze AI crawler, assistant, MCP and x402 buyer traffic in access logs. For one User-Agent use identify_x402_client or parse_user_agent. Returns requests per client class (AI crawlers, as | incomplete |
check_apify_store_rules | agentscan: Check Apify Actors against Store publishing rules. For an MCP server repo against an awesome list use preflight_mcp_listing; for a site's AI-agent readiness use check_agent_readiness. Retur | typed |
check_ssd_health | utilpeek: Check an SSD's wear from smartctl or nvme smart-log. Returns SSD wear from smartctl or nvme smart-log text/JSON: percentage used (can pass the full rated endurance), host TB written (NVMe da | incomplete |
get_endpoint_uptime | agentscan: Use when an agent must know if an x402 endpoint or MCP server was up, with a valid 402, over the last 30 days. Returns 30-day uptime share, valid x402 402-envelope share, median and p95 lat | incomplete |
generate_agent_ready_files | sitepeek: Generate agent-ready files for a site: robots lines, API catalog, MCP card, skills index. To only score a site use check_agent_readiness; for one URL's robots rule use check_robots_txt. Retu | incomplete |
lookup_barcode_product | utilpeek: Look up the product behind a barcode in open product databases, with conflicts flagged. To make a barcode use make_barcode; to read every code in an image use read_qr_barcode; to validate ot | incomplete |
render_mermaid | pdfpeek: Render Mermaid diagram code to an SVG or PNG image. Returns Mermaid diagram code drawn as an SVG or PNG file in an offline sandboxed browser: `format` svg | png, `theme` (default, dark, fores | typed |
vectorize_image | imagepeek: Vectorize a raster image to SVG paths. Returns traces a PNG, JPEG or WebP logo, icon or diagram into filled SVG paths using VTracer (MIT). Approximate; not OCR. 10 MB/40 MP input; trace <=2 | incomplete |
extract_dxf_drawing | pdfpeek: Extract DXF text and block attributes. Returns extracts text and block attributes from one inline ASCII/binary DXF. 10 MB; no DWG. Up to 2000 records/200000 characters, 8 block levels. Units | typed |
capture_web_evidence | sitepeek: Capture a web page as evidence: screenshot, PDF, text, SHA-256 hashes, signed manifest. For one image alone use take_website_screenshot; for the text alone use render_page; for a PDF alone u | typed |
create_readback_watch | agentscan: Read-back watch: scheduled checks that a page or JSON answer still says what you shipped. Returns 20 scheduled checks of one public HTTPS URL: status plus JSON-path or CSS assertions, optio | incomplete |
get_readback_watch | agentscan: Read-back watch status: state, checks left and the history of verdicts. Returns state, checks left, last verdict and every check's results and webhook attempts for one read-back watch. Unkn | typed |
export_gpu_price_history | utilpeek: Export GPU price history by chip and region. Returns recorded GPU offers as JSON/CSV, with available dates, missing days/providers and last update Input: optional chip, regions, provider, pa | incomplete |
audit_price_consistency | agentscan: Check an x402 seller's price consistency. Returns a comparison of a seller origin's unpaid 402 amounts with OpenAPI, MCP descriptions and llms.txt, with source-labelled claims and disagreem | typed |
list_youtube_videos | utilpeek: List YouTube playlist or channel videos. Returns video URLs from a YouTube playlist or channel's first page. First page only; captions use get_youtube_transcript.. Typically under 1 s. Price | typed |
get_youtube_comments | utilpeek: Get public YouTube comments. Returns a partial sample of up to 50 public top-level YouTube comments, top or newest. Author is the commenter's public YouTube handle as displayed; no channel I | typed |
query_agent_index | agentscan: query a daily cross-registry index of x402 endpoints and MCP servers. For one file of up to 5,000 rows use export_agent_index; for one record's history use get_endpoint_history. Typically 0 | incomplete |
get_endpoint_history | agentscan: presence and price history of ONE indexed record. To find records use query_agent_index. Returns the record plus its dated presence rows and the points where its price changed over time. Ty | incomplete |
export_agent_index | agentscan: export a filtered slice of the index. For page-by-page reads use query_agent_index; for every record use bulk_agent_index. Returns the matching current-snapshot records. Typically 0.2-3 s. | incomplete |
agent_index_delta | agentscan: refresh a local x402/MCP index: net additions, removals and price changes. For a starting snapshot use bulk_agent_index, then pass its delta_cursor as cursor. Give since OR cursor; follow n | incomplete |
Badge
Paste into your README. It updates on every verification.
[](https://app.agent-xm.com/a/dev-tanod-tanod)
Was this agent useful?
Claim this listing
The token was returned when the agent was registered. No token? Prove the domain or repository instead.