Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

ToolSnap MCP

REMOTE · MCP.TOOLSNAP.APP

Deterministic AI agent microtools, no accounts/API keys. fetch_extract: 98% token cut. 47 tools.

Available components

0 this week 79 Trust /100

Last scanned (1 hour ago)

Scores higher than 79% of remote servers

Reachable. Last reached 5 Nov 2026.

Category Web Scraping

Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →

Endpoint Security63
Transport & Reachability100
Schema Quality & AI Usability68
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 3277 tokens (~192/item across 17 items; 17 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management100
  • No destabilizing schema changes in the last 30 days.Pass
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • All 1 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
  • An AI judge read all 18 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 5 Nov 26 0
    • Stability: 0.97 → pass security
  • 4 Nov 26 0
    • Stability: pass → 0.97 functional
  • 26 Oct 26 −1
    • Tool “fetch_extract” rewrote its description, which is the text the model reads security
    • Tool “fetch_metadata” rewrote its description, which is the text the model reads security
    • Tool “pricing” rewrote its description, which is the text the model reads security
    • Tool “use_tool” rewrote its description, which is the text the model reads security
    • Schema quality: 165 → 192 ▼ functional
    • “fetch_extract” reworded the description of “headers” cosmetic
    • “fetch_extract” reworded the description of “maxChars” cosmetic
    • “fetch_extract” reworded the description of “url” cosmetic
    • “fetch_metadata” reworded the description of “headers” cosmetic
    • “fetch_metadata” reworded the description of “url” cosmetic
  • 25 Oct 26 −1
    • Tool “csv_query” rewrote its description, which is the text the model reads security
    • Tool “pricing” rewrote its description, which is the text the model reads security
    • Tool “rss_parse” rewrote its description, which is the text the model reads security
    • Tool “sitemap_parse” rewrote its description, which is the text the model reads security
    • Tool “tool_catalog” rewrote its description, which is the text the model reads security
    • Tool “use_tool” rewrote its description, which is the text the model reads security
    • Schema quality: 127 → 165 ▼ functional
    • “csv_query” reworded the description of “csv” cosmetic
    • “csv_query” reworded the description of “filter” cosmetic
    • “csv_query” reworded the description of “format” cosmetic
    • “csv_query” reworded the description of “limit” cosmetic
    • “csv_query” reworded the description of “select” cosmetic
    • “csv_query” reworded the description of “sort_by” cosmetic
    • “csv_query” reworded the description of “sort_dir” cosmetic
    • “csv_query” reworded the description of “url” cosmetic
    • “rss_parse” reworded the description of “maxItems” cosmetic
    • “rss_parse” reworded the description of “url” cosmetic
    • “sitemap_parse” reworded the description of “maxUrls” cosmetic
    • “sitemap_parse” reworded the description of “url” cosmetic
    • “tool_catalog” reworded the description of “family” cosmetic
    • “tool_catalog” reworded the description of “tool” cosmetic
    • “use_tool” reworded the description of “args” cosmetic
    • “use_tool” reworded the description of “name” cosmetic
  • 24 Oct 26 0
    • Tool “fetch_html” rewrote its description, which is the text the model reads security
    • Tool “html_to_markdown” rewrote its description, which is the text the model reads security
    • Tool “json_query” rewrote its description, which is the text the model reads security
    • Tool “memory_snippet” rewrote its description, which is the text the model reads security
    • Tool “pdf_text_extract” rewrote its description, which is the text the model reads security
    • Schema quality: 107 → 127 ▼ functional
    • “fetch_html” reworded the description of “maxChars” cosmetic
    • “fetch_html” reworded the description of “url” cosmetic
    • “html_to_markdown” reworded the description of “html” cosmetic
    • “html_to_markdown” reworded the description of “maxChars” cosmetic
    • “html_to_markdown” reworded the description of “url” cosmetic
    • “json_query” reworded the description of “json” cosmetic
    • “json_query” reworded the description of “limit” cosmetic
    • “json_query” reworded the description of “query” cosmetic
    • “json_query” reworded the description of “url” cosmetic
    • “memory_snippet” reworded the description of “harness” cosmetic
    • “pdf_text_extract” reworded the description of “data” cosmetic
    • “pdf_text_extract” reworded the description of “maxChars” cosmetic
    • “pdf_text_extract” reworded the description of “url” cosmetic
  • 22 Oct 26 +7
    • Authorization: fail → partial ▲ security
    • Tool “use_tool” no longer declares itself destructive security
    • Tool “csv_query” changed its title: Query CSV cosmetic
    • Tool “fetch_extract” changed its title: Fetch page as clean text cosmetic
    • Tool “fetch_html” changed its title: Fetch raw HTML cosmetic
    • Tool “fetch_metadata” changed its title: Fetch page metadata cosmetic
    • Tool “html_to_markdown” changed its title: Convert HTML to Markdown cosmetic
    • Tool “json_query” changed its title: Query JSON cosmetic
    • Tool “keyword_research” changed its title: Keyword research cosmetic
    • Tool “memory_snippet” changed its title: Memory snippet for agents cosmetic
    • Tool “pdf_text_extract” changed its title: Extract PDF text cosmetic
    • Tool “pricing” changed its title: Pricing and payment options cosmetic
    • Tool “remove_background” changed its title: Remove image background cosmetic
    • Tool “rss_parse” changed its title: Parse RSS or Atom feed cosmetic
    • Tool “screenshot_url” changed its title: Screenshot a URL cosmetic
    • Tool “sitemap_parse” changed its title: Parse sitemap cosmetic
    • Tool “task_recipes” changed its title: Task recipes cosmetic
    • Tool “tool_catalog” changed its title: Browse tool catalog cosmetic
    • Tool “use_tool” changed its title: Run any catalog tool cosmetic
  • 28 Sept 26 0
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 25 Sept 26 0
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 5 Nov 2026 · Probed https://mcp.toolsnap.app/mcp

TLS valid

Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .

Subject Issuer Valid from Valid until Key Signature Serial
CN=toolsnap.app CN=WE1,O=Google Trust Services,C=US 19 Oct 2026 17 Jan 2027 ECDSA 256 ECDSA-SHA256 4a80797124e019cd0ec6928007ae5862
SANs: toolsnap.app, mcp.toolsnap.app, *.mcp.toolsnap.app
CN=WE1,O=Google Trust Services,C=US (CA) CN=GTS Root R4,O=Google Trust Services LLC,C=US 13 Dec 2023 20 Feb 2029 ECDSA 256 ECDSA-SHA384 7ff31977972c224a76155d13b6d685e3
CN=GTS Root R4,O=Google Trust Services LLC,C=US (CA) CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE 15 Nov 2023 28 Jan 2028 ECDSA 384 SHA256-RSA 7fe530bf331343bedd821610493d8a1b

Background: What to check on a remote MCP endpoint →

DNSSEC insecure

Validation of mcp.toolsnap.app. — Not signed

Zone DS Keys Algorithms Outcome
. trust_anchor 20326, 38696 8, 8 Verified
app. present 23684 8 Verified
toolsnap.app. absent Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation
Authentication No authorisation required

The endpoint answered without asking for a token. Anyone who knows the URL can reach it.

Result No authorisation required
HTTP status 200

Background: How OAuth 2.1 works in the 2026 MCP spec →

Transports 2 probes
Transport URL Outcome Status Location
streamable-http https://mcp.toolsnap.app/mcp Verified 200
http (plaintext) http://mcp.toolsnap.app/mcp Inconclusive 404
MCP tools · 17 exposed · ~2,717 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
csv_query ~320

Free, read-only. Query a comma-separated CSV with a header row, from a URL (max 5 MB, streamed) or inline text, one of the two: select columns, filter rows, sort, limit. Returns {meta:{returned_rows,columns,total_rows,truncated},rows:[{column:value}]}, all values strings, or CSV text with format='csv'. One filter condition, no joins or aggregates. Unknown select columns and bad filters error with the valid names or operators. Over 5 MB: csv_query_xl (paid, 100 MB).

NameTypeReqDescription
csvstring–Inline CSV text. Not with url.
filterstring–'column op value'. Ops: = != contains startswith endswith (text, case-insensitive), > >= < <= (numeric). E.g. 'age >= 30'.
formatstring–json (default): {meta,rows}. csv: text with header row.
headersobject–Headers to forward (Authorization, Cookie…).
limitnumber–Rows to return. Default 500, max 5000; over it meta.truncated=true.
selectstring–Columns to keep, comma-separated, exact header names. Omit for all.
sort_bystring–Column to sort by; numeric when values parse as numbers, else text.
sort_dirstring–asc (default) or desc.
urlstring–CSV URL, max 5 MB. Not with csv.

No output schema declared.

No examples provided.

fetch_extract ~300

Free, read-only. Fetch a public http(s) URL and return its body as plain text: script, style, nav, header, footer and aside removed, tags stripped, entities decoded, whitespace collapsed. Median 98% fewer tokens than raw HTML. Follows up to 5 redirects, 10 s timeout; private and local hosts are rejected and non-2xx responses error with the HTTP status. Text past maxChars is cut and ends with '[Truncated at N chars]': raise maxChars (max 32000) or use fetch_html for everything. Runs no JavaScript: a client-side-rendered SPA or a bot/login wall yields almost no text, so the call errors instead of returning an empty shell and names the fix (fetch_rendered, paid, runs a browser; screenshot_url; or headers for auth). For title/OG/JSON-LD only use fetch_metadata; for Markdown with links use html_to_markdown.

NameTypeReqDescription
headersobject–Headers to forward for pages behind login: Authorization, Cookie, X-API-Key only. Dropped if a redirect leaves the original host.
maxCharsnumber–Characters of text to return. Default 8000, max 32000 (higher values are clamped). Truncated output ends with a '[Truncated at N chars]' marker.
urlstringyesPublic http:// or https:// URL. Local and private hosts are rejected.

No output schema declared.

No examples provided.

fetch_html ~135

Free, read-only. Fetch a page and return its HTML minus scripts, styles, svg, iframes, comments and inline handlers; tags and attributes stay, so structure is readable. For inspecting or rebuilding markup, not plain text (fetch_extract gives that). Runs no JavaScript: SPAs return an empty shell. Cut at maxChars with a marker.

NameTypeReqDescription
headersobject–Headers to forward (Authorization, Cookie…).
maxCharsnumber–Output cap, chars. Default 16000, max 64000.
urlstringyeshttp(s) page URL. Private addresses are refused.

No output schema declared.

No examples provided.

fetch_metadata ~209

Free, read-only. Fetch a public http(s) URL and return its <head> metadata as JSON: url (after redirects), title, description, canonical, robots, author, keywords, lang, charset, og{} and twitter{} (prefix stripped), httpEquiv{}, jsonLd[] (parsed blocks, malformed ones skipped). Absent fields are null or {}. Reads only the first 512 KB, follows up to 5 redirects, 10 s timeout; private and local hosts are rejected and non-2xx responses error with the HTTP status. Runs no JavaScript, so tags injected client-side are not seen. Not for body text: use fetch_extract (plain text) or fetch_html (raw HTML).

NameTypeReqDescription
headersobject–Headers to forward for pages behind login: Authorization, Cookie, X-API-Key only. Dropped if a redirect leaves the original host.
urlstringyesPublic http:// or https:// URL. Local and private hosts are rejected.

No output schema declared.

No examples provided.

html_to_markdown ~154

Free, read-only. Convert a fetched URL or an HTML string you pass (one of the two) to Markdown: headings, links, lists, emphasis, code, quotes. Drops nav, header, footer, aside, script and style. Returns text, cut at maxChars with a marker. Runs no JavaScript: SPAs return an empty shell. Tables become plain text.

NameTypeReqDescription
headersobject–Headers to forward (Authorization, Cookie…).
htmlstring–HTML text to convert. Not with url.
maxCharsnumber–Output cap, chars. Default 12000, max 50000.
urlstring–Page URL to fetch. Not with html.

No output schema declared.

No examples provided.

json_query ~222

Free, read-only. JSONPath-lite query on JSON from a URL or an inline string (one of the two). Returns matches as JSON: one match bare, several as an array. Supports $, .key, ['key'], [0], [-1], [*], ..key and [?(@.k op v)]; no slices or jq. Errors on invalid JSON or over 5 MB (json_query_xl: paid, 25 MB).

NameTypeReqDescription
headersobject–Headers to forward (Authorization, Cookie…).
jsonstring–Inline JSON text. Not with url.
limitnumber–Default 100, max 1000. Above it: {results,total,returned}.
querystringyesStarts with $: '$.users[*].name', '$..price', '$.items[?(@.price<10)].id'. Filter ops: = != > >= < <= =~. '$' = whole document.
urlstring–JSON URL, max 5 MB. Not with json.

No output schema declared.

No examples provided.

keyword_research ~111

Google Ads volume/CPC/competition for 1-20 keywords. $0.04 USDC/call. Paid: calling without a payment payload returns a structured 402 with payment options — that response is the documented behavior, not a failure.

NameTypeReqDescription
include_suggestionsboolean–Add related suggestions.
keywordsarrayyes1-20 keywords.
language_codestring–ISO 639-1.
location_codenumber–DataForSEO location (default Spain).

No output schema declared.

No examples provided.

memory_snippet ~96

Free, read-only. Returns static text: a short note on when ToolSnap tools suit a task, plus how to store a note in your runtime's memory. This tool saves nothing. Use only if your user asks about persistent memory or ToolSnap setup; show them the text and save it only with their approval.

NameTypeReqDescription
harnessstring–Your agent runtime, to tailor the save instruction. Omit for a generic one.

No output schema declared.

No examples provided.

pdf_text_extract ~169

Free, read-only. Extract plain text from a PDF given as a URL (max 20 MB) or inline base64 (max 5 MB), one of the two. Returns text, cut at maxChars with a marker. Text-layer PDFs only: scans return little or nothing (no OCR). Layout and tables are not preserved. Fails if the URL serves HTML, not a PDF.

NameTypeReqDescription
datastring–Base64 PDF, max 5 MB decoded. Not with url.
headersobject–Headers to forward (Authorization, Cookie…).
maxCharsnumber–Output cap, chars. Default 20000, max 100000.
urlstring–Direct link to the .pdf file, not a viewer page. Not with data.

No output schema declared.

No examples provided.

pricing ~145

Free, read-only, no network, no arguments; calling it charges nothing. Call it before a paid tool to see its exact cost and whether first_call_free applies, or to choose pay-per-call vs prepaid. Returns a JSON menu: endpoint and docs URLs; payment with x402 USDC on Base, minimum deposit, prepaid discount and SpendAuthorization fields; tools[] with name and tier free|paid, plus price_usdc, prepaid_price_usdc, first_call_free and a value note for paid ones. Flat prices are exact; fal.ai media tools show a default-args quote. For what a tool does and its schema use tool_catalog; this one is only about cost.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

remove_background ~67

Remove an image's background, return a transparent PNG URL. $0.03 USDC/call. Paid: calling without a payment payload returns a structured 402 with payment options — that response is the documented behavior, not a failure.

NameTypeReqDescription
image_urlstringyesPublic image URL.

No output schema declared.

No examples provided.

rss_parse ~151

Free, read-only. Fetch an RSS 2.0 or Atom feed and return JSON: feed title, link, description, lastBuildDate, itemCount, truncated, and items[] with title, link, pubDate, guid, description (HTML stripped), author, categories, enclosure. Items past maxItems are dropped and truncated=true. A URL that is not a feed returns type 'unknown' and no items. Not JSON Feed. Errors on non-2xx, 10 s timeout or private hosts.

NameTypeReqDescription
maxItemsnumber–Default 20, max 200. itemCount still reports the full total.
urlstringyesFeed URL, http(s). Private hosts refused.

No output schema declared.

No examples provided.

screenshot_url ~117

Screenshot a page → public image URL. $0.04/call. Paid: calling without a payment payload returns a structured 402 with payment options — that response is the documented behavior, not a failure.

NameTypeReqDescription
formatstring–Default png.
fullPageboolean–true = whole page, not viewport.
heightnumber–Viewport px.
qualitynumber–JPEG only, 1-100.
urlstringyesPage URL.
widthnumber–Viewport px.

No output schema declared.

No examples provided.

sitemap_parse ~152

Free, read-only. Fetch one XML sitemap and return JSON. A urlset gives urls[] (loc, lastmod, changefreq, priority, plus image/news extensions), urlCount and truncated. A sitemap index gives type 'sitemapindex' and sitemaps[] with the child URLs; children are not fetched, call again per child. Uncompressed XML only, no .gz. Errors on non-2xx, 10 s timeout or private hosts.

NameTypeReqDescription
maxUrlsnumber–Default 100, max 1000; urlCount still reports the full total. Ignored for a sitemap index.
urlstringyessitemap.xml or sitemap index URL, http(s), uncompressed.

No output schema declared.

No examples provided.

task_recipes ~48

Free. Multi-tool workflow prompts (clone a site, SEO audit). No args → menu; recipe='<id>' → prompt.

NameTypeReqDescription
recipestring–Recipe id; omit for menu.

No output schema declared.

No examples provided.

tool_catalog ~157

Free, read-only, no network. Browse all 47 tools in 10 families (web, seo, data, documents, images, media, utils, payments, recipes, meta). No args: families with id, label, one-liner, tool count. family='<id>': each tool with name, price, description, notes, inputSchema. tool='<name>': that entry alone; wins over family. Unknown ids error naming the valid families. Run what you find via use_tool.

NameTypeReqDescription
familystring–Family id, e.g. 'web', 'data'. Lists its tools with schemas.
toolstring–Exact tool name, e.g. 'fetch_rendered'. Takes precedence over family.

No output schema declared.

No examples provided.

use_tool ~164

Free wrapper. Runs any catalog tool missing from your tools/list exactly as a direct call: args pass through unchanged and the inner tool's price, payment, result and errors apply verbatim. Its hints are the worst case over the whole catalog: not read-only because some inner tools create a render, a stored file or a ledger entry; never destructive because no catalog tool deletes or overwrites anything. Get the inner tool's name, schema and its own annotations from tool_catalog(tool='<name>') first. A missing or unknown name errors pointing to tool_catalog; it cannot call itself.

NameTypeReqDescription
argsobject–Object matching that tool's inputSchema. Omit if none required.
namestringyesExact tool name from tool_catalog. Not 'use_tool'.

No output schema declared.

No examples provided.

Install

How do I install the ToolSnap MCP server?

ToolSnap MCP is a hosted endpoint at https://mcp.toolsnap.app/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

remote · mcp.toolsnap.app

# add to Claude Code
claude mcp add --transport http app-toolsnap-toolsnap-mcp 'https://mcp.toolsnap.app/mcp'
Common questions

What is the ToolSnap MCP server?

ToolSnap MCP is listed in the public MCP registry as app.toolsnap/toolsnap-mcp. Deterministic AI agent microtools, no accounts/API keys. fetch_extract: 98% token cut. 47 tools. This page covers its hosted endpoint (https://mcp.toolsnap.app/mcp).

Is the ToolSnap MCP server safe to use?

ToolSnap MCP scores 79 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the ToolSnap MCP server expose?

ToolSnap MCP exposes 17 tools: tool_catalog, use_tool, task_recipes, memory_snippet, pricing, and 12 more. Their descriptions and schemas cost roughly 2,717 tokens of context every time the server is loaded.

Does the ToolSnap MCP server require authentication?

No. We connected to ToolSnap MCP without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

Is the ToolSnap MCP server still maintained?

ToolSnap MCP is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.