Skip to main content
Glama
readfetch

@readfetch/mcp-x402-proxy

readfetch_residential

Read-only

Scrape pages through a residential IP to bypass targets that block datacenter addresses by reputation, such as DataDome, PerimeterX, Cloudflare, or AWS WAF.

Instructions

Identical request and response to /v1/scrape, but the render leaves through a residential address instead of the datacentre. For targets that block by IP reputation (DataDome, PerimeterX, Cloudflare, AWS WAF). One attempt, no retries: residential bandwidth is the cost, and four times the scrape price is what it takes to cover it honestly.

Input Schema

NameRequiredDescriptionDefault
urlYesPublic http(s) URL to load in Chromium.
authNoOptional cookie, bearer, or basic auth for the page load.
modeNoWhole-call budget and render depth: fast (15 s), render (30 s, default), or full (60 s with page scroll).render
freshNoWhen true, bypass cached scrape results (default false).
formatNoPrimary body field returned: markdown (default), plain text, or raw HTML.markdown
optionsNoDeprecated — use `advanced` instead (same ScrapeOptions shape). Scheduled for removal in a future API semver bump.
advancedNoBrowser interactions: scroll, wait_for selector, js_code, headers, cookies, locale, include_links, etc.

Output Schema

NameRequiredDescriptionDefault
urlNo
titleNo
billedNo
statusNo
markdownNo
status_codeNo
cache_statusNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed7 schema fields changedv0.1.13
    • addedInput schema / properties / advanced / description
      Added value: +"Browser interactions: scroll, wait_for selector, js_code, headers, cookies, locale, include_links, etc."
    • addedInput schema / properties / auth / description
      Added value: +"Optional cookie, bearer, or basic auth for the page load."
    • addedInput schema / properties / format / description
      Added value: +"Primary body field returned: markdown (default), plain text, or raw HTML."
    • addedInput schema / properties / fresh / description
      Added value: +"When true, bypass cached scrape results (default false)."
    • addedInput schema / properties / mode / description
      Added value: +"Whole-call budget and render depth: fast (15 s), render (30 s, default), or full (60 s with page scroll)."
    • addedInput schema / properties / url / description
      Added value: +"Public http(s) URL to load in Chromium."
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "billed": {
      +      "type": "boolean"
      +    },
      +    "cache_status": {
      +      "type": "string"
      +    },
      +    "markdown": {
      +      "type": "string"
      +    },
      +    "status": {
      +      "type": "string"
      +    },
      +    "status_code": {
      +      "type": "integer"
      +    },
      +    "title": {
      +      "type": "string"
      +    },
      +    "url": {
      +      "format": "uri",
      +      "type": "string"
      +    }
      +  },
      +  "type": "object"
      +}
  2. First observedv0.1.0

TDQS

A4.5/5.0
Behavior5/5

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

Annotations already cover read-only and open-world behavior. On top of that, the description discloses critical operational traits: single attempt with no retries, residential egress, and a 4x price multiplier, which materially affects agent decision-making.

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

Conciseness5/5

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

Three sentences, front-loaded with the core equivalence, then targeting guidance, then cost/retry caveat. Every sentence carries decision-relevant information with no waste.

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?

The output schema covers response structure, annotations cover safety and openness, and the description supplies the missing behavioral context (retry policy, cost, IP-reputation targeting). An agent has everything needed to call it correctly.

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 100%, so the schema fully documents all 7 parameters. The description adds only that the request shape is identical to /v1/scrape, which is useful context but does not elaborate on any individual parameter.

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 states a specific action (render via residential address) and explicitly frames it as an alternative to the datacentre scrape endpoint. It distinguishes itself from sibling scrape/fetch tools by naming the exact use case: targets that block by IP reputation.

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

Usage Guidelines4/5

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

It gives a clear condition for use ('For targets that block by IP reputation') and lists example vendors, plus a strong cost/caveat signal (one attempt, 4x price). It stops short of explicitly naming the sibling to use otherwise (readfetch_scrape), leaving that inference to the agent.

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