Skip to main content
Glama

Advanced web fetch

advanced_web_fetch
Read-only

Fetch a webpage or any URL and get everything on it.

Content is saved for re-reading. It also reaches what a plain fetch cannot: the rendered page including JavaScript-generated text, the whole reply tree under a post, what was spoken in a video, the text of a PDF, what an image shows.

Best for: reading any known URL in full, including what a plain fetch misses.

Examples:

  • a news article → the article text, not the surrounding page

  • a thread with 300 replies → the whole tree, not the opening post

  • a 40-minute review video → transcript plus what commenters said about it

  • a long PDF report → text plus a line index to read only the relevant part

  • a site's sitemap or an RSS feed → the pages or entries it lists, with their dates

Use after advanced_web_search to open a result it found. Every relevant result carries mdOrHtmlDownloadUrl — a ready-to-use link that downloads that record as Markdown, no key attached, so it can be passed on as-is. Swap its ?type=md for ?type=html and the same link hands back the page's original HTML exactly as the site served it, markup and all — what an SEO reader needs and what Markdown drops; web-page fetches only.

If status: "running" is returned, poll get_task_results({ taskIds }).

Input Schema

NameRequiredDescriptionDefault
requestsYesOne or more fetch requests; they run in parallel.
isResearchNoDefault true. True means this call is part of an investigation: you will come back to what it collects, weigh it against other sources and cite it, so it is worth preparing the material for repeated use. Set false for a one-off question you are waiting on right now and will answer in this same turn — that trades the preparation for the fastest reply the source allows.
maxWaitSecNoHow long to wait before returning `status: "running"` with a `taskId` to poll via `get_task_results`. Defaults to 50 seconds, which is also the server's ceiling — a larger value is clamped down to it, not honoured. Results stream as they are produced: each completed unit of work appears in `streaming.chunks[]` as soon as it is ready.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / requests / items / properties / urls / description
      Previous value: -"Public HTTP(S) URLs to ingest. Each URL is handled according to what it points at: YouTube (transcript, metadata and the comment section), social networks (Reddit, X/Twitter, Facebook, Instagram, TikTok, LinkedIn, Threads, Bluesky, Pinterest, Twitch, Snapchat, Truth Social), Google Maps places (the place card — address, category, rating breakdown, hours, popular times, price, services, attributes and photo categories — plus its customer reviews with owner responses (in Google's own ranking, or newest first on request), the themes recurring across them and, on request, the updates the business publishes on its own profile), Trustpilot company pages and Tripadvisor listings (the summary with its rating and, where the site keeps one, its star breakdown, plus the customer reviews and any replies, narrowed to chosen star ratings on request), Google Play and App Store app pages (the store listing — publisher, category, price, current version, update date — plus its user reviews), product pages on Amazon and Walmart and the listings `google-shopping` returns (price, sellers, specifications and the reviews the page carries; a Google listing opens only while it is still on that storefront's first page), Google Hotels property cards and Google Finance instrument pages (a hotel card is priced for the dates named in `fetchOptions`, or for a sample stay the answer states; an instrument comes with its published financial statements), Zillow home listings (asking price or rent, rooms, floor area, the specification table, price and tax history, and the schools serving the address; for sale, for rent, sold and off-market are told apart), Google Patents documents (claims in full, with the legal status) and Google Scholar author profiles (citation metrics and the author's works), PDFs (text extraction), images (visual description by a vision model), sitemaps and sitemap indexes (the pages or child sitemaps they list, grouped by section, with last-modified dates and language versions), RSS, Atom and RDF feeds (each entry with its link, dates, authors and text). Video posts on TikTok, Instagram, Facebook and X also yield transcripts. A link to one ad reads that ad in all four ad libraries — Facebook (`/ads/library/?id=…`), LinkedIn (`/ad-library/detail/<id>`), TikTok (`library.tiktok.com/ads/detail/?ad_id=<number>`), Google (`adstransparency.google.com/advertiser/<AR…>/creative/<CR…>`) — adding every wording, per-country dates and destination that library publishes; ask in `fetchOptions` to have its creatives described. An address covering many ads — an advertiser page, a library hub, a search over it — is refused free of charge. Anything else is read as a web page. Per-URL failures (auth walls, dead links, blocked pages) are reported in `failed[]` without aborting the batch. Each URL is retrieved in full; a handful of well-chosen ones goes further than a long list. Each URL becomes a citable `Data` record with a title, a summary and a line index. Read the parts you need with `read_collected_records` — pass a line range, or omit it for the whole document."New value: +"Public HTTP(S) URLs to ingest. Each URL is handled according to what it points at: YouTube (transcript, metadata and the comment section), social networks (Reddit, X/Twitter, Facebook, Instagram, TikTok, LinkedIn, Threads, Bluesky, Pinterest, Twitch, Snapchat, Truth Social), Google Maps places (the place card — address, category, rating breakdown, hours, popular times, price, services, attributes and photo categories — plus its customer reviews with owner responses (in Google's own ranking, or newest first on request), the themes recurring across them and, on request, the updates the business publishes on its own profile), Trustpilot company pages and Tripadvisor listings (the summary with its rating and, where the site keeps one, its star breakdown, plus the customer reviews and any replies, narrowed to chosen star ratings on request), Google Play and App Store app pages (the store listing — publisher, category, price, current version, update date — plus its user reviews), product pages on Amazon and Walmart and the listings `google-shopping` returns (price, sellers, specifications and the reviews the page carries; a Google listing opens only while it is still on that storefront's first page), Google Hotels property cards and Google Finance instrument pages (a hotel card is priced for the dates named in `fetchOptions`, or for a sample stay the answer states; an instrument comes with its published financial statements), Zillow home listings (asking price or rent, rooms, floor area, the specification table, price and tax history, and the schools serving the address; for sale, for rent, sold and off-market are told apart), Google Patents documents (claims in full, with the legal status) and Google Scholar author profiles (citation metrics and the author's works), GitHub pages as records (a repository with its README, a file or folder, an issue or pull request with its comments and reviews, lists of issues, pull requests, commits and releases, profiles, topics and searches; a single commit, a comparison and a pull request's changed files are read as web pages, with their diffs), PDFs (text extraction), images (visual description by a vision model), sitemaps and sitemap indexes (the pages or child sitemaps they list, grouped by section, with last-modified dates and language versions), RSS, Atom and RDF feeds (each entry with its link, dates, authors and text). Video posts on TikTok, Instagram, Facebook and X also yield transcripts. A link to one ad reads that ad in all four ad libraries — Facebook (`/ads/library/?id=…`), LinkedIn (`/ad-library/detail/<id>`), TikTok (`library.tiktok.com/ads/detail/?ad_id=<number>`), Google (`adstransparency.google.com/advertiser/<AR…>/creative/<CR…>`) — adding every wording, per-country dates and destination that library publishes; ask in `fetchOptions` to have its creatives described. An address covering many ads — an advertiser page, a library hub, a search over it — is refused free of charge. Anything else is read as a web page. Per-URL failures (auth walls, dead links, blocked pages) are reported in `failed[]` without aborting the batch. Each URL is retrieved in full; a handful of well-chosen ones goes further than a long list. Each URL becomes a citable `Data` record with a title, a summary and a line index. Read the parts you need with `read_collected_records` — pass a line range, or omit it for the whole document."
  2. Changed1 schema field changed
    • changedInput schema / properties / requests / items / properties / urls / description
      Previous value: -"Public HTTP(S) URLs to ingest. Each URL is handled according to what it points at: YouTube (transcript, metadata and the comment section), social networks (Reddit, X/Twitter, Facebook, Instagram, TikTok, LinkedIn, Threads, Bluesky, Pinterest, Twitch, Snapchat, Truth Social), Google Maps places (the place card — address, category, rating breakdown, hours, popular times, price, services, attributes and photo categories — plus its customer reviews with owner responses, the themes recurring across them and, on request, the updates the business publishes on its own profile), Trustpilot company pages and Tripadvisor listings (the summary with its rating and, where the site keeps one, its star breakdown, plus the customer reviews and any replies), Google Play and App Store app pages (the store listing — publisher, category, price, current version, update date — plus its user reviews), product pages on Amazon and Walmart and the listings `google-shopping` returns (price, sellers, specifications and the reviews the page carries; a Google listing opens only while it is still on that storefront's first page), Google Hotels property cards and Google Finance instrument pages (a hotel card is priced for a sample stay the answer states; an instrument comes with its published financial statements), Zillow home listings (asking price or rent, rooms, floor area, the specification table, price and tax history, and the schools serving the address; for sale, for rent, sold and off-market are told apart), Google Patents documents (claims in full, with the legal status) and Google Scholar author profiles (citation metrics and the author's works), PDFs (text extraction), images (visual description by a vision model). Video posts on TikTok, Instagram, Facebook and X also yield transcripts. A link to one ad reads that ad in all four ad libraries — Facebook (`/ads/library/?id=…`), LinkedIn (`/ad-library/detail/<id>`), TikTok (`library.tiktok.com/ads/detail/?ad_id=<number>`), Google (`adstransparency.google.com/advertiser/<AR…>/creative/<CR…>`) — adding every wording, per-country dates and destination that library publishes; ask in `fetchOptions` to have its creatives described. An address covering many ads — an advertiser page, a library hub, a search over it — is refused free of charge. Anything else is read as a web page. Per-URL failures (auth walls, dead links, blocked pages) are reported in `failed[]` without aborting the batch. Each URL is retrieved in full; a handful of well-chosen ones goes further than a long list. Each URL becomes a citable `Data` record with a title, a summary and a line index. Read the parts you need with `read_collected_records` — pass a line range, or omit it for the whole document."New value: +"Public HTTP(S) URLs to ingest. Each URL is handled according to what it points at: YouTube (transcript, metadata and the comment section), social networks (Reddit, X/Twitter, Facebook, Instagram, TikTok, LinkedIn, Threads, Bluesky, Pinterest, Twitch, Snapchat, Truth Social), Google Maps places (the place card — address, category, rating breakdown, hours, popular times, price, services, attributes and photo categories — plus its customer reviews with owner responses (in Google's own ranking, or newest first on request), the themes recurring across them and, on request, the updates the business publishes on its own profile), Trustpilot company pages and Tripadvisor listings (the summary with its rating and, where the site keeps one, its star breakdown, plus the customer reviews and any replies, narrowed to chosen star ratings on request), Google Play and App Store app pages (the store listing — publisher, category, price, current version, update date — plus its user reviews), product pages on Amazon and Walmart and the listings `google-shopping` returns (price, sellers, specifications and the reviews the page carries; a Google listing opens only while it is still on that storefront's first page), Google Hotels property cards and Google Finance instrument pages (a hotel card is priced for the dates named in `fetchOptions`, or for a sample stay the answer states; an instrument comes with its published financial statements), Zillow home listings (asking price or rent, rooms, floor area, the specification table, price and tax history, and the schools serving the address; for sale, for rent, sold and off-market are told apart), Google Patents documents (claims in full, with the legal status) and Google Scholar author profiles (citation metrics and the author's works), PDFs (text extraction), images (visual description by a vision model), sitemaps and sitemap indexes (the pages or child sitemaps they list, grouped by section, with last-modified dates and language versions), RSS, Atom and RDF feeds (each entry with its link, dates, authors and text). Video posts on TikTok, Instagram, Facebook and X also yield transcripts. A link to one ad reads that ad in all four ad libraries — Facebook (`/ads/library/?id=…`), LinkedIn (`/ad-library/detail/<id>`), TikTok (`library.tiktok.com/ads/detail/?ad_id=<number>`), Google (`adstransparency.google.com/advertiser/<AR…>/creative/<CR…>`) — adding every wording, per-country dates and destination that library publishes; ask in `fetchOptions` to have its creatives described. An address covering many ads — an advertiser page, a library hub, a search over it — is refused free of charge. Anything else is read as a web page. Per-URL failures (auth walls, dead links, blocked pages) are reported in `failed[]` without aborting the batch. Each URL is retrieved in full; a handful of well-chosen ones goes further than a long list. Each URL becomes a citable `Data` record with a title, a summary and a line index. Read the parts you need with `read_collected_records` — pass a line range, or omit it for the whole document."
  3. First observed

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=true and openWorldHint=true, so safety is covered; the description adds real behavioral context beyond them — per-URL failures land in `failed[]` without aborting the batch, content is persisted for re-reading, video-ad URLs expand across four ad libraries, and address/catalog pages covering many ads are refused free of charge. It stops short of describing rate limits or timeout semantics for the fetch itself, which the schema's maxWaitSec covers only partially.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core purpose, then organized under 'Best for:' and an 'Examples:' bullet list, which makes it scannable despite its length. The mdOrHtmlDownloadUrl/SEO paragraph is informative but reads as a digression from the fetch-selection task and dilutes focus slightly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description carries the return-value burden and does so: each URL becomes a citable `Data` record with title, summary and line index, read via `read_collected_records`, with failures surfaced in `failed[]` and progress in `streaming.chunks[]`. Nothing essential to calling or consuming the result is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already carries the 2000-char semantics of `objective`, `fetchOptions`, `isResearch` and `maxWaitSec`. The description only lightly reinforces this (e.g. 'ask in `fetchOptions` to have its creatives described'), adding little beyond the structured fields. Baseline 3 is appropriate when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Opens with a specific verb+resource ('Fetch a webpage or any URL') and immediately differentiates from a plain fetch by enumerating what it reaches beyond it (JS-rendered text, reply trees, video speech, PDF text, image content). It also positions itself against the sibling `advanced_web_search` as the step that opens a found result, so an agent can route between the two without opening either schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Best for: reading any known URL in full' plus 'Use after `advanced_web_search` to open a result it found' gives explicit context and names the sibling alternative. It also routes downstream work: content is saved for re-reading, read parts via `read_collected_records`, and if 'status: "running"' poll `get_task_results({ taskIds })`.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources