Skip to main content
Glama
wikydtron

brightdata-mcp-plus

by wikydtron

Scrape Batch

scrape_batch
Read-onlyIdempotent

Fetch up to 10 URLs in parallel and return structured JSON with page content or errors, automatically using direct requests, local headless rendering, or Bright Data fallback.

Instructions

Fetch up to 10 pages in parallel and return [{url, ok, source, content | error}] as JSON. Each page is capped (max_chars_per_url); fetch a single page with scrape_as_markdown to read past the cap. Pages are fetched directly for free when the site allows it, rendered in a local headless browser (also free) when they need JavaScript, and fetched through Bright Data Web Unlocker (billed) only when the site blocks; source says which.

Input Schema

NameRequiredDescriptionDefault
urlsYes
freshNoBypass the response cache and fetch again (costs a request)
formatNomarkdown: compact Markdown keeping headings, lists, tables, links (default); text: plain text with links; raw: as fetchedmarkdown
countryNo2-letter country code to route the request through (e.g. "us", "de")
max_chars_per_urlNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.2.0

TDQS

A4.7/5.0
Behavior5/5

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

Annotations only say readOnly/idempotent/openWorld; the description adds the critical non-obvious behavior: a three-tier fetch strategy (free direct, free local headless browser, billed Bright Data Web Unlocker only when blocked) and the fact that `source` reports which tier was used. That cost/permission disclosure is exactly the context annotations cannot carry.

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, no waste: return shape first, then the cap plus escape hatch, then the fetch/cost model. Each sentence carries distinct information the agent needs.

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?

No output schema exists, and the description compensates by specifying the exact response shape and the meaning of `ok`, `source`, `content`/`error`. Combined with the disclosed billing model for the Bright Data tier, an agent has everything needed to call it correctly and predict cost.

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 60%; the description supplies meaning for the undocumented max_chars_per_url (each page is capped) and explains the `source` field in the response, which the schema does not cover. It does not add anything about `country`, `fresh`, or `format` beyond what the schema already documents.

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 (fetch), resource (up to 10 pages in parallel) and the exact return shape [{url, ok, source, content | error}], plus names the sibling scrape_as_markdown as the single-page alternative. An agent can distinguish it from scrape_as_markdown, scrape_as_html and extract without opening any schema.

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?

Explicitly routes the agent to scrape_as_markdown when it needs to read past the per-page cap, which is a real selection criterion. It does not spell out when to prefer batch vs. the other siblings (scrape_as_html, extract), so it stops short of full when/when-not coverage.

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