ToolSnap MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| pricingA | Returns the machine-readable pricing menu for this server: which tools are free vs paid, pay-per-call vs discounted prepaid pricing, how to deposit and spend a prepaid balance, payment method, and quantified value (token savings, ROI). Call this first to understand what is available and at what cost before using paid tools. |
| account_balanceA | Check the prepaid USDC balance for an address. Free. Returns remaining balance, the discounted prepaid per-call price, and how many paid calls it covers. Deposit once with account_deposit to pay a discounted per-call rate with no 402 round-trip and no gas per call. |
| account_depositA | Open or top up a prepaid balance by depositing USDC on Base via x402 (one on-chain settlement). After depositing, paid tools are debited off-chain at the discounted prepaid price with no per-call 402 and no per-call gas, until the balance runs out. Non-refundable credits. Minimum deposit $0.50. Call with the signed x402 PaymentPayload in _meta["x402/payment"] for the amount you want to deposit (>= minimum); the full deposited amount is credited to the paying address. |
| fetch_extractA | Fetch a URL and return clean text, stripped of HTML, scripts, styles, and navigation. Benchmark (11 real pages): median 98.1% token reduction (53 820 → 2 001 tokens); saves ~$0.156/call at Sonnet pricing ($3/M tokens) vs loading raw HTML. Break-even at 26 KB pages — virtually all real pages qualify. Deterministic, parallel-safe, zero-setup. Cost: $0.02 USDC on Base. First call free per wallet address. |
| fetch_htmlA | Fetch a URL and return clean HTML with structure preserved — tags, classes, ids and semantic layout kept, but scripts, styles, comments, SVG/iframe blobs and inline JS handlers removed. Unlike fetch_extract (flattens to text) or html_to_markdown (converts to Markdown), this keeps the DOM skeleton so an agent can reconstruct the page as static HTML. Ideal for site migration (e.g. WordPress → static). Cost: $0.02 USDC on Base. First call free per wallet address. |
| page_assetsA | Fetch a URL and return a JSON inventory of every asset it references — images (incl. srcset), stylesheets, scripts, fonts, icons/favicons and media — all resolved to absolute URLs and deduplicated. Ideal for auditing or migrating a site: get the full asset manifest in one cheap call instead of loading the page into context. Free. |
| page_linksA | Fetch a URL and return a JSON list of all its links, classified as internal (same host), external (different host) or other (mailto:, tel:, etc.), resolved to absolute URLs, deduplicated, each with its anchor text. Ideal for systematically crawling a site for migration or for building a sitemap. Free. |
| uuid_generateA | Generate one or more random UUID v4 values. Use when you need unique identifiers for records, sessions, tokens, or any entity requiring a globally unique ID. |
| hash_textA | Compute a cryptographic hash (SHA-256, SHA-1, or SHA-512) of any text string. Returns lowercase hex. Use for integrity checks, content fingerprinting, or generating deterministic IDs from content. |
| base64_encodeA | Encode a UTF-8 text string to Base64. Handles non-ASCII characters correctly. Use when you need to embed binary or unicode data in JSON, URLs, or HTTP headers. |
| base64_decodeA | Decode a Base64 string back to UTF-8 text. Handles non-ASCII characters correctly. Use to recover the original text from a Base64-encoded value. |
| url_encodeA | Percent-encode a string for safe inclusion in a URL query parameter or path segment (encodeURIComponent). Use when building URLs that contain special characters, spaces, or non-ASCII text. |
| url_decodeA | Decode a percent-encoded URL string back to plain text (decodeURIComponent). Use to recover the original text from a URL-encoded value. |
| json_formatA | Parse and reformat a JSON string with a configurable indent level (0 = minified, 2 = standard pretty-print). Use to pretty-print, validate, or minify JSON. |
| timestamp_convertA | Convert between Unix timestamps (seconds) and ISO 8601 date strings. Auto-detects direction: numbers → ISO, date strings → Unix seconds. Accepts Unix in seconds or milliseconds (auto-detected). Use when you need to convert epoch values to human-readable dates or vice-versa. |
| text_statsA | Count characters, words, lines, and sentences in a text string. Returns a JSON object. Use when you need to analyse or report on the size and structure of a body of text. |
| html_to_markdownA | Convert a URL or raw HTML string into clean Markdown. Strips navigation, ads, scripts, and boilerplate; preserves headings, lists, links, code blocks, and emphasis. Use instead of loading raw HTML into context — saves 85–98% of tokens compared to the original page. Accepts either a URL (fetched server-side) or an html parameter with raw HTML. |
| extract_structuredA | Fetch a URL and extract structured data matching a JSON Schema — title, author, date, price, description, rating, image, and more. Reads JSON-LD, Open Graph, Twitter Cards, and Schema.org microdata embedded in the page; returns only the extracted JSON object. No LLM required: extraction is deterministic. Ideal for articles, products, recipes, events, and any page using semantic markup. |
| diff_textA | Compare two text strings and return a unified diff showing additions (+), deletions (-), and context lines. Useful for review agents, changelog generation, and patch creation. Returns '(no differences)' when inputs are identical. Free — no payment required. |
| csv_queryA | Fetch a CSV from a URL (or accept raw CSV text) and query it: select columns, filter rows, sort, and limit results. Returns JSON array of objects by default, or CSV with format=csv. Use instead of loading the full CSV into your context — send only the data you need. |
| json_queryA | Fetch JSON from a URL (or accept raw JSON) and query it with a JSONPath-lite expression. Supports property access, array indexing, wildcards ([*]), recursive descent (..), and filter expressions ([?(@.price < 10)]). Returns only the matching values as JSON — use instead of loading large JSON payloads into your context. |
| pdf_text_extractA | Fetch a PDF from a URL and extract its text content. Handles FlateDecode-compressed streams (the most common compression in modern PDFs) and RC4-encrypted PDFs that open with an empty password. Works on text-based PDFs (those generated from Word, LaTeX, web, etc.); does not perform OCR on scanned/image-only PDFs. Returns clean plain text — use instead of loading raw PDF bytes into your context. |
| regex_extractA | Run a regular expression against text and return all matches. Supports capture groups, named groups, and multiline input. Returns a JSON array of match objects — each has |
| webpage_metadataA | Fetch a URL and extract its metadata: title, meta description, Open Graph tags (og:title, og:image, og:type…), Twitter Card tags, canonical URL, robots directive, author, keywords, JSON-LD structured data, and lang/charset. Returns a structured JSON object. Much cheaper than loading the full page — ideal for link previews, SEO audits, and content classification. |
| count_tokensA | Estimate the number of tokens a text will consume when sent to an LLM. Uses a byte-pair encoding approximation compatible with cl100k_base (GPT-4, Claude, and most modern models). Accurate to ±10% on English prose. Returns token count, character count, byte count, and a cost estimate footnote. Use before sending long context to an LLM to avoid surprises. |
| rss_parseA | Fetch and parse an RSS 2.0 or Atom 1.0 feed URL. Returns structured JSON with feed metadata (title, description, language, last-build date) and an array of items (title, link, pubDate, author, categories, description, enclosure). Use instead of fetching raw XML — saves 90%+ of tokens and eliminates XML parsing in the agent. Ideal for news aggregation, content monitoring, and feed-based workflows. |
| sitemap_parseA | Fetch and parse an XML sitemap (urlset or sitemapindex). Returns structured JSON: for urlsets — array of URLs with loc, lastmod, changefreq, priority, plus image/news sitemap extensions; for sitemapindex — list of child sitemap URLs. Use to enumerate all pages of a site, find recently updated content, or build a crawl queue — without loading raw XML into context. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/icosaedro-git/toolsnap-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server