Skip to main content
Glama

Fetch Stealth

fetch_stealth

Retrieve web pages as markdown with stealth browser patching when normal fetches are blocked or return challenge pages; optionally solve Cloudflare Turnstile.

Instructions

Fetch a page with Scrapling's StealthyFetcher (stealth-patched headless Chromium: real browser UA, canvas noise, WebRTC blocking, spoofed locale/timezone) as markdown. Use when fetch_page gets blocked or returns a challenge/error page. solve_cloudflare=True also solves Cloudflare Turnstile/interstitial challenges (slow: 1-3 min when it has to). Paginated like fetch_page. On failure returns {"success": false, "error": ...}.

Input Schema

NameRequiredDescriptionDefault
urlYes
offsetNo
max_charsNo
solve_cloudflareNo

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.5/5.0
Behavior5/5

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

No annotations exist, and the description carries the full burden well: it discloses the stealth emulation surface, the latency cost of Cloudflare solving, pagination parity with fetch_page, and the exact failure payload shape. Those are precisely the traits an agent needs before committing to a slow fallback.

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 sibling comparison in the second sentence, and every clause carries information. The long technical parenthetical is dense but earns its space by defining what 'stealth' actually means.

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

Completeness4/5

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

An output schema exists so return values needn't be spelled out, and the failure envelope is still noted. What remains thin is the pagination parameter behavior (offset/max_chars), which an agent must infer from 'paginated like fetch_page'.

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 coverage is 0%, so the description must compensate for all four parameters. It explains solve_cloudflare meaningfully (Turnstile/interstitial solving plus its cost) and implies offset via 'Paginated like fetch_page', but max_chars and offset semantics/defaults are left entirely to the schema.

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?

States a specific verb+resource (fetch a page via Scrapling's StealthyFetcher) and immediately distinguishes it from the sibling fetch_page by naming the condition that selects it. The parenthetical on stealth features makes the capability concrete rather than tautological.

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?

Explicit routing rule: 'Use when fetch_page gets blocked or returns a challenge/error page', with a named alternative and a stated tradeoff (1-3 min with solve_cloudflare). No inference required from the agent.

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