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

TableJSON 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, 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."
  2. First observed

TDQS

A4.8/5.0
Behavior5/5

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

The description discloses that content is saved for re-reading, that per-URL failures are reported in failed[] without aborting, and that async results come with status 'running' and streaming chunks. This goes well beyond the readOnlyHint and openWorldHint annotations, adding important operational context.

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?

The description is long but well-structured: a summary, a 'best for' line, concrete examples, search integration, and async handling. It is front-loaded with the core purpose and uses examples to clarify. For a tool of this complexity, the length is justified, though it could be tightened.

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?

It covers the full lifecycle: fetching, saving, reading results via read_collected_records, async polling, and error handling. Even without an output schema, the agent knows what to do with the citable Data records and how to navigate each step.

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

Parameters4/5

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

Schema coverage is 100%, so parameters are documented, but the description adds practical meaning: it distinguishes objective (what you seek) from fetchOptions (how to read), explains isResearch's tradeoff between preparation and speed, and notes maxWaitSec clamping. This is beyond the schema's literal descriptions, though some redundancy exists.

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?

The description clearly states 'Fetch a webpage or any URL and get everything on it' and differentiates from advanced_web_search by specifying it opens a known URL after search. It lists many source types (PDFs, videos, social networks), making its scope unmistakable.

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?

It explicitly says 'Best for: reading any known URL in full' and instructs to use it after advanced_web_search. It also guides on polling via get_task_results when status is 'running' and reading results with read_collected_records. Alternatives are clear, though it doesn't explicitly state when not to use it.

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