TinyFish Fetch
Free, token-efficient content extraction via the bundled TinyFish MCP server (fetch_content tool). Renders pages in a real browser and returns clean, structured content — actual page text, not a lossy summary — so it handles JavaScript-heavy and dynamic pages that raw HTTP fetching can't.
When to use this over built-in fetch
- It's free and returns clean, deduplicated content instead of raw markup, so it costs fewer tokens to read.
- It renders in a real browser, so it works on JS-heavy pages that a plain HTTP fetch would return empty or broken.
- It fetches up to 10 URLs in parallel in a single call — no need for repeated round-trips.
- Optional CSS-selector scoping (
include_selectors/exclude_selectors) lets you pull just the content that matters and skip boilerplate, and conditional-request support (if_none_match/if_modified_since) avoids re-fetching unchanged pages.
Parameters
urls(required) — 1-10 URLs, fetched in parallel; one failing doesn't block the othersformat—"markdown"(default, best for LLM consumption),"html"(cleaned semantic HTML), or"json"(structured document tree)links— include all outbound links from each pageimage_links— include all image URLs from each pageinclude_selectors/exclude_selectors— arrays of CSS selectors to scope extraction to, or strip out before extractionif_none_match/if_modified_since— replay a prior ETag/Last-Modified validator (single URL only). Only works on the fast (non-browser-rendered) path — a browser-rendered URL may returnconditional_unsupported; if so, retry without the validators.include_etag_and_last_modified— opt in to receiving validators on each result for future conditional requestsper_url_timeout_ms— independent timeout budget per URLpurpose— optional short note on why you're fetching, used to tailor extraction
Response includes per URL: url, final_url, title, language, author, published_date, text (and links/image_links if requested).
Examples
fetch_content(urls=["https://example.com/article"], format="markdown") fetch_content( urls=["https://site-a.com/pricing", "https://site-b.com/pricing"], format="markdown", include_selectors=["main", "article"] )
Escalating
If the page requires clicking, filling a form, or navigating before the content you need is reachable, use /tinyfish:agent instead — fetch only reads what's already on the page.
$ARGUMENTS

