Skip to main content
Glama
brightdata

Bright Data MCP

Official
by brightdata

🌟 Übersicht

The Web MCP ist Ihr Tor, um KI-Assistenten echte Web-Fähigkeiten zu verleihen. Keine veralteten Antworten mehr, kein "Ich kann nicht auf Echtzeitinformationen zugreifen" mehr - nur nahtloser, zuverlässiger Webzugriff, der tatsächlich funktioniert.

Entwickelt von Bright Data, der weltweit führenden Webdaten-Plattform, stellt dieser MCP-Server sicher, dass Ihre KI niemals blockiert, ratenbegrenzt oder mit CAPTCHAs konfrontiert wird.


Related MCP server: MCP Fetch

🎯 Perfekt für

  • 🔍 Echtzeit-Recherche - Erhalten Sie aktuelle Preise, Nachrichten und Live-Daten

  • 🛍️ E-Commerce-Intelligenz - Überwachen Sie Produkte, Preise und Verfügbarkeit

  • 📊 Marktanalyse - Verfolgen Sie Wettbewerber und Branchentrends

  • 🤖 KI-Agenten - Bauen Sie Agenten, die tatsächlich im Web surfen können

  • 💻 Coding-Agenten - Suchen Sie npm/PyPI-Pakete, Versionen und READMEs in Echtzeit

  • 🧠 GEO & Markensichtbarkeit - Sehen Sie, wie ChatGPT, Grok und Perplexity Ihre Marke wahrnehmen

  • 📝 Content-Erstellung - Greifen Sie auf aktuelle Informationen zum Schreiben zu

  • 🎓 Akademische Forschung - Sammeln Sie effizient Daten aus mehreren Quellen


⚡ Schnellstart

Verwenden Sie den Konfigurationsassistenten:

GIF for day2

Perfekt für Benutzer, die keine Einrichtung wünschen. Fügen Sie einfach diese URL zu Ihrem MCP-Client hinzu:

https://mcp.brightdata.com/mcp?token=YOUR_API_TOKEN_HERE

Einrichtung in Claude Desktop:

  1. Gehen Sie zu: Einstellungen → Connectors → Benutzerdefinierten Connector hinzufügen

  2. Name: Bright Data Web

  3. URL: https://mcp.brightdata.com/mcp?token=YOUR_API_TOKEN

  4. Klicken Sie auf "Hinzufügen" und fertig! ✨

{
  "mcpServers": {
    "Bright Data": {
      "command": "npx",
      "args": ["@brightdata/mcp"],
      "env": {
        "API_TOKEN": "<your-api-token-here>"
      }
    }
  }
}

🚀 Preise & Modi

💡 Hinweis: Der Pro-Modus ist nicht in der kostenlosen Stufe enthalten und verursacht zusätzliche Kosten basierend auf der Nutzung.


🧠 Erweiterte Tool-Auswahl

  • GROUPS ermöglicht es Ihnen, kuratierte Tool-Pakete zu aktivieren. Verwenden Sie kommagetrennte Gruppen-IDs wie ecommerce,browser.

  • TOOLS fügt explizite Tool-Namen zu den ausgewählten Gruppen hinzu.

  • Modus-Priorität: PRO_MODE=true (alle Tools) → GROUPS / TOOLS (Whitelist) → Standard-Rapid-Modus (Basis-Toolkit).

  • Basis-Tools immer aktiviert: search_engine, search_engine_batch, scrape_as_markdown, scrape_batch, discover.

  • Gruppen-ID custom ist reserviert; verwenden Sie TOOLS für maßgeschneiderte Auswahlen.

Claude Desktop Beispiel

{
  "mcpServers": {
    "Bright Data": {
      "command": "npx",
      "args": ["@brightdata/mcp"],
      "env": {
        "API_TOKEN": "<your-api-token-here>",
        "GROUPS": "browser,advanced_scraping",
        "TOOLS": "extract"
      }
    }
  }
}

Coding-Agent Beispiel (Claude Code / Cursor / Windsurf)

Verleihen Sie Ihrem Coding-Agenten Echtzeit-Paket-Intelligenz — neueste Versionen, READMEs, Abhängigkeiten und Metadaten von npm und PyPI ohne Scraping:

{
  "mcpServers": {
    "Bright Data": {
      "command": "npx",
      "args": ["@brightdata/mcp"],
      "env": {
        "API_TOKEN": "<your-api-token-here>",
        "GROUPS": "code"
      }
    }
  }
}

✨ Funktionen

🔥 Kernfähigkeiten

🎯 Beispielabfragen, die einfach funktionieren

✅ "What's Tesla's current stock price?"
✅ "Find the best-rated restaurants in Tokyo right now"
✅ "Get today's weather forecast for New York"
✅ "What movies are releasing this week?"
✅ "What are the trending topics on Twitter today?"
✅ "What's the latest version of express on npm?"
✅ "Get the README for the langchain-brightdata PyPI package"

🎬 Demos

Hinweis: Diese Videos zeigen frühere Versionen. Neue Demos folgen in Kürze! 🎥

Basis-Websuche-Demo

https://github.com/user-attachments/assets/59f6ebba-801a-49ab-8278-1b2120912e33

Erweitertes Scraping-Demo

https://github.com/user-attachments/assets/61ab0bee-fdfa-4d50-b0de-5fab96b4b91d

📺 Weitere Tutorials auf YouTube →


🔧 Verfügbare Tools

⚡ Rapid-Modus-Tools

Available Tools

32 tools
ask_brightdata_assistantA
Read-only

Ask Bright Data's support assistant (Sophie) a question about Bright Data products, APIs, MCP usage, zones, scraping, or account setup. Use when the user asks "how do I..." about Bright Data, when you hit a Bright Data error you don't recognize, or when deciding between products (Web Unlocker vs. Scraping Browser vs. dataset tools). Supports threaded follow-ups via dialog_id.

NameRequiredDescriptionDefault
questionYesThe question to ask. Max 20480 chars.
dialog_idNoOptional 24-char dialog_id from a previous call to continue the same thread.

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so safety is covered. The description adds useful behavioral context beyond that—the assistant is named Sophie and supports threaded follow-ups through dialog_id—but does not mention latency, reliability, or whether answers are authoritative, which would round out the picture.

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?

Two sentences, both front-loaded with the core purpose first and the usage triggers second. Every clause carries information—topic scope, trigger conditions, sibling disambiguation, and threading support—with no filler.

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?

For a two-parameter, read-only tool with full schema coverage, no output schema, and annotations covering the safety profile, the description supplies everything needed: purpose, when to call, topic boundaries, and how to continue a conversation. Return-value explanation is unnecessary given the absence of an output schema.

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?

With 100% schema coverage the baseline is 3, and the schema already documents both parameters including the 24-char constraint on dialog_id. The description adds meaningful semantics by explaining that dialog_id enables threaded follow-ups, clarifying its purpose beyond the schema's mechanical description.

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 verb and resource ('Ask Bright Data's support assistant (Sophie) a question') and names the topical scope: products, APIs, MCP usage, zones, scraping, account setup. It is clearly distinguishable from every sibling, which are scraping/execution tools rather than a knowledge assistant.

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 gives explicit triggering conditions: user asks 'how do I...', an unrecognized Bright Data error occurs, or the agent must choose between products. It even names the specific alternatives being disambiguated (Web Unlocker vs. Scraping Browser vs. dataset tools), leaving little inference required.

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

chatgpt_ai_insightsB

Send a prompt to ChatGPT and get back AI-generated insights. Returns structured answer text, citations, recommendations, and markdown. Useful for GEO and LLM as a judge.

NameRequiredDescriptionDefault
promptYes

TDQS

B3.3/5.0
Behavior3/5

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

The annotations already disclose openWorldHint=true, destructiveHint=false, and readOnlyHint=false, so the safety profile is partially covered. The description adds useful return information: structured answer text, citations, recommendations, and markdown. It does not explain data handling, rate limits, or why readOnlyHint is false for this external prompt call.

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?

The description is two sentences and front-loads the core action. The second sentence efficiently lists the return components, and there is no redundant filler.

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

Completeness3/5

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

For a simple one-parameter tool, the description explains what it does and what it returns, which is adequate. However, it leaves important gaps around sibling differentiation from perplexity_ai_insights and prompt formatting, and it does not clarify data handling for an open-world ChatGPT call.

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

Parameters2/5

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

There is one required parameter named 'prompt,' but schema description coverage is 0%. The description repeats the word 'prompt' without adding format, length, content expectations, or examples, so it does not compensate for the schema's lack of semantic detail.

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

Purpose4/5

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

The description states a specific action and resource: send a prompt to ChatGPT and receive AI-generated insights. It also lists return components, making the tool's function clear. However, it does not distinguish itself from the sibling tool perplexity_ai_insights, which appears to serve a similar purpose.

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

Usage Guidelines3/5

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

The description offers an implied use case with 'Useful for GEO and LLM as a judge,' but it does not explain when to use this tool instead of perplexity_ai_insights or ask_brightdata_assistant. It gives context but no explicit exclusions or alternatives.

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

extractA
Read-only

Scrape a webpage and extract structured data as JSON. First scrapes the page as markdown, then uses AI sampling to convert it to structured JSON format.

NameRequiredDescriptionDefault
urlYes
extraction_promptNoCustom prompt to guide the extraction process. If not provided, will extract general structured data from the page.

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnly=true, openWorld=true, destructive=false, so the safety profile is covered. The description adds real value by disclosing the two-stage pipeline (fetch markdown → AI sampling → JSON), but says nothing about latency, cost, failure modes on non-HTML pages, or whether results are deterministic.

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?

Two sentences, front-loaded with the outcome, then the mechanism. Every clause carries information an agent cannot get from the schema or annotations.

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

Completeness3/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 should indicate what the returned JSON looks like or that its shape depends on extraction_prompt and page content. The mechanism is explained, but the result contract an agent needs in order to plan a follow-up step 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 coverage is 50%: extraction_prompt is documented in the schema, while url has no schema description. The description adds nothing about either parameter beyond implying 'a webpage' for url, so it neither reaches nor falls far short of the baseline.

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

Purpose4/5

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

States a specific verb+resource ('Scrape a webpage and extract structured data as JSON') and implicitly distinguishes itself from scrape_as_markdown by declaring that markdown is only an intermediate step, not the deliverable. The goal (structured JSON) is unambiguous, though it never names the alternative tools directly.

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

Usage Guidelines3/5

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

Usage is only implied: an agent must infer it should pick this over scrape_as_markdown when structured fields are wanted and over search_engine when a URL is already known. There is no explicit when-to-use, when-not, or named alternative despite many closely related siblings.

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

get_scraper_detailsA
Read-only

Show the scraper description, input fields, example input and main output fields for one method. Call before run_scraper and build the input from sample_input or input_fields. Records may contain more fields than output_fields lists.

NameRequiredDescriptionDefault
methodYesOne of the scraper collection_methods, exactly as listed (some names are misspelled on purpose)
dataset_idYesdataset_id from search_scrapers

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already establish readOnly/non-destructive/closed-world, so the safety profile is covered. The description adds a genuinely useful caveat that returned records may contain more fields than output_fields lists, warning the agent not to treat output_fields as exhaustive. It stops short of noting pagination or size limits, but that is minor here.

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?

Two tight sentences: the first states what is returned, the second states when to call and how to use the output. No filler, and the key usage instruction is front-loaded.

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?

There is no output schema, but the description compensates by enumerating the returned components (description, input fields, sample input, output fields) plus the caveat about additional record fields. An agent has everything needed to call it and consume the result 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 description coverage is 100% and both parameters are documented there, including the dataset_id provenance and the 'misspelled on purpose' method warning. The description adds nothing about parameter meaning beyond the schema, so the baseline 3 applies.

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?

Names a specific verb (show) and resource (details for one scraper method) and enumerates exactly what is returned: description, input fields, example input, and main output fields. It is clearly distinguishable from siblings like search_scrapers (discovery) and run_scraper (execution).

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?

Gives explicit sequencing guidance ("Call before run_scraper") and tells the agent how to use the result ("build the input from sample_input or input_fields"). That is a concrete when-to-use plus the alternative it feeds into, leaving little to inference.

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

get_scraper_progressB
Read-only

Status of a run: starting, running, ready, failed or canceled.

NameRequiredDescriptionDefault
snapshot_idYessnapshot_id from run_scraper

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare this a safe read (readOnlyHint=true, destructiveHint=false, openWorldHint=false), so the behavioral bar is lower. The description's real contribution is enumerating the five status values, which is useful, but it doesn't say which are terminal, whether it is pollable, or what to do next when status becomes 'ready' or 'failed'.

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?

One short, front-loaded fragment with no filler. It is efficient, though the sentence fragment lacks a subject, and its terseness is part of why usage guidance is missing rather than a model of structure.

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

Completeness3/5

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

For a simple one-parameter read tool with annotations and no output schema, the description covers what the tool returns at a high level but omits the workflow context (post-run polling, transition to results retrieval) that an agent needs to place this tool correctly among its 30 siblings.

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% and the schema already explains that snapshot_id comes from run_scraper. The description adds no meaning beyond that, so the baseline 3 for a fully documented single parameter applies.

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

Purpose4/5

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

States the resource (a run) and its return concept (status) and enumerates the possible values, so an agent can tell it reports progress rather than results. It never names its siblings (get_scraper_details, get_scraper_results, run_scraper) or says explicitly that the 'run' is a scraper run, so differentiation is left to the tool name.

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

Usage Guidelines2/5

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

There is no when-to-use guidance at all: no indication that this is the polling companion to run_scraper, no guidance on repeated polling, and no pointer to get_scraper_results once the status is 'ready'. The agent must infer the entire workflow from the schema note 'snapshot_id from run_scraper'.

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

get_scraper_resultsC
Read-only

Records of a finished run. Returns status "running" if not ready yet.

NameRequiredDescriptionDefault
snapshot_idYessnapshot_id from run_scraper

TDQS

C2.9/5.0
Behavior3/5

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

Annotations already cover safety (readOnlyHint=true, destructiveHint=false, openWorldHint=false), so the description's job is to add operational context. It does add one genuinely useful trait: the call is non-blocking and returns status "running" when results are not ready, which tells the agent to poll. It does not say what happens to results after completion (retention, idempotency, size limits).

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?

Two short sentences, no filler, and the readiness/polling caveat is placed where it will be read. The first sentence is under-specified rather than padded, so length is not the problem.

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

Completeness3/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 should give some sense of the return shape (records/data plus a status field), and it only hints that a status field exists. For a single-parameter read tool with clean annotations this is adequate but leaves the agent guessing about payload structure and about the progress-vs-results split.

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?

Only one parameter, and the schema itself documents it fully ("snapshot_id from run_scraper"), so coverage is 100% and the description need not restate it. The description adds nothing about the ID's origin or validity, so baseline 3 applies.

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

Purpose3/5

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

"Records of a finished run" conveys that this retrieves output from a completed scraper run, but it omits the verb and the resource name (scraper results), relying on the tool name to fill that in. It does not distinguish itself from get_scraper_progress or run_scraper, which is the main ambiguity an agent would face.

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

Usage Guidelines2/5

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

The only usage hint is implicit: the 'running' status comment implies this is a polling call. There is no statement of when to call this instead of get_scraper_progress (progress vs. final payload), nor prerequisites such as whether run_scraper must have completed first.

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

list_dataset_fieldsA
Read-only

List the filterable fields of a searchable dataset (field name, type, and description). Call this before search_dataset to learn which field names and types you can filter on. Supported dataset_id values:

  • gd_l1viktl72bvl7bjuj0: LinkedIn people profiles

  • gd_me5ppxjr2ge6icjuh0: LinkedIn people profiles (contact-enriched)

  • gd_l1vikfnt1wgvvqz95w: LinkedIn company information

NameRequiredDescriptionDefault
dataset_idYes

TDQS

A4.8/5.0
Behavior4/5

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

The annotations already establish that the tool is read-only, non-destructive, and closed-world, so the description need not restate safety. The description adds useful behavioral context by specifying the returned field metadata (name, type, description) and the prerequisite relationship to search_dataset. It does not discuss pagination or failure behavior, but these are minor for a small enumeration tool.

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?

The description is front-loaded with the core action and prerequisite, then presents supported dataset IDs in a compact bullet list. Every sentence and bullet earns its place without unnecessary repetition.

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?

For a simple one-parameter tool with no output schema, the description provides everything needed: purpose, sequencing, return content, and the full set of valid dataset_id values. No relevant invocation detail is missing.

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

Parameters5/5

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

Although schema description coverage is 0%, the description fully documents the single dataset_id parameter by listing every allowed enum value with a human-readable meaning. This goes beyond the raw enum and tells the agent exactly what each ID represents.

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 uses a specific verb and resource: 'List the filterable fields of a searchable dataset.' It also names the sibling tool search_dataset and explains the distinct role of this tool, so an agent can distinguish it 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?

The description explicitly says 'Call this before search_dataset to learn which field names and types you can filter on.' This gives a clear sequencing rule and names the alternative tool, leaving no ambiguity about when to invoke it.

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

perplexity_ai_insightsB

Send a prompt to Perplexity and get back AI-generated insights. Returns structured answer text in markdown format. Useful for GEO and LLM as a judge.

NameRequiredDescriptionDefault
promptYes

TDQS

B3.4/5.0
Behavior3/5

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

The annotations already declare openWorldHint=true (external call), destructiveHint=false, and readOnlyHint=false. The description adds one useful behavioral fact beyond the annotations: the response is structured markdown answer text. It says nothing about latency, cost, quota behavior, or whether the call has side effects at the provider, which is relevant given readOnlyHint=false.

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 three short sentences and is front-loaded with the action and the return format. The final sentence is vague marketing jargon ('GEO'), but it is short enough not to seriously hurt usability.

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

Completeness3/5

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

This is a simple one-parameter tool with no output schema, and the description does cover the return shape (markdown answer text). It leaves out the key discriminator against the sibling chatgpt_ai_insights, as well as any expectation about latency, cost, or prompt limits, so it is adequate but not complete.

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 0% for the single required 'prompt' parameter, so the description has to carry the meaning itself. The phrase 'Send a prompt' names the input but adds no format, length, or content guidance (e.g. whether the prompt is a single question or a system-style instruction). It is only minimally compensating for the undocumented schema.

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

Purpose4/5

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

The description states a specific verb and resource: it sends a prompt to Perplexity and returns AI-generated answer text. The provider name implicit in the tool name, plus the mention of markdown answer output, makes the tool's purpose concrete. It does not explicitly distinguish itself from the sibling chatgpt_ai_insights, which is the one nearby tool that could easily be confused with it.

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

Usage Guidelines3/5

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

The description gives one hint about where to use the tool: 'Useful for GEO and LLM as a judge.' However, it never states when to choose the Perplexity variant over the sibling chatgpt_ai_insights, nor does it set exclusions or prerequisites (e.g. prompt length limits, rate limits, or credential requirements). By implication, the guidance is present but incomplete.

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

refresh_scrapersA
Read-only

Reload the scraper list now instead of waiting for the daily refresh.

NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered by structured data. The description adds genuinely new behavioral context — that the scraper list is cached and normally refreshed daily — but says nothing about what the call returns or whether it blocks until reload completes.

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?

A single sentence with the action and the justification for it, front-loaded and free of filler. Nothing could be removed without losing information.

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?

For a zero-parameter, annotation-backed tool this covers what an agent needs to decide to call it. The one unresolved question is the result of the call — whether it returns the refreshed list or just an acknowledgement — which the missing output schema leaves the description to answer, and it doesn't.

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?

The tool takes no parameters, so there is nothing for the description to disambiguate; the baseline for a zero-parameter schema applies. No parameter text is needed or expected here.

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

Purpose4/5

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

States a specific verb and resource ('Reload the scraper list'), and the phrase 'instead of waiting for the daily refresh' pins down what kind of refresh this is, separating it from search_scrapers / get_scraper_details. It does not explicitly name a sibling, so an agent must infer the boundary rather than being routed to it.

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?

'now instead of waiting for the daily refresh' gives a concrete trigger condition: call this when you need a current scraper list before the scheduled daily refresh runs. No when-not guidance, no cost/latency caveat, and no named alternative for other cases, which keeps it out of 5 territory.

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

run_scraperA

Run a scraper method. input is a list of objects shaped like sample_input from get_scraper_details, one per URL or query. collect_by_url returns one record per input; discover_by_* methods return up to limit_per_input records per input, and every record is billed. Waits up to 45 seconds; if still running it returns snapshot_id with status "running": then poll get_scraper_progress and call get_scraper_results when ready. Records with an "error" field explain failed inputs.

NameRequiredDescriptionDefault
inputYes
methodYesOne of the scraper collection_methods, exactly as listed (some names are misspelled on purpose)
dataset_idYesdataset_id from search_scrapers
limit_per_inputNodiscover_by_* only

TDQS

A4.6/5.0
Behavior5/5

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

Beyond annotations, the description discloses important behavior: every returned record is billed, the call waits up to 45 seconds, long jobs return a snapshot_id with status 'running', and failed inputs are indicated by an 'error' field. These details materially affect cost, latency, and error handling.

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?

The description is front-loaded with the core action and then proceeds through input shape, method behavior, timeout handling, and error signaling. Every clause adds operational value with no filler.

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?

There is no output schema, and the description covers the async return path, record counts, billing, and error handling. It does not describe the full record structure, but it points to get_scraper_results for retrieval and get_scraper_progress for polling, which is sufficient for most invocation decisions.

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 description coverage is 75%, so the schema already documents method, dataset_id, and limit_per_input. The description adds useful semantics by explaining that input should match sample_input from get_scraper_details, one object per URL or query, and by clarifying how limit_per_input applies only to discover_by_* methods.

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 gives a specific verb and resource ('Run a scraper method') and immediately clarifies the required input shape and method-specific output behavior. It distinguishes collect_by_url from discover_by_* methods and references the exact sibling tools used before and after this step.

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 explains how to prepare input via get_scraper_details and how collect_by_url differs from discover_by_* in output volume. It also gives clear next-step guidance for long-running jobs by naming get_scraper_progress and get_scraper_results, though it does not explicitly state when not to use this tool versus other scraping siblings.

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

scrape_as_htmlA
Read-only

Scrape a single webpage URL and get back the results in HTML.

NameRequiredDescriptionDefault
urlYes

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is covered. The description adds only that the response is HTML; it says nothing about JS rendering, timeouts, paywalls/anti-bot behavior, or whether the HTML is raw or post-processed.

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?

One short sentence, front-loaded with the verb and ending on the differentiator (HTML output). There is no filler, though the brevity is partly under-specification rather than tightness.

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

Completeness3/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 should carry more of the return-value and failure-mode burden; 'results in HTML' is thin for a web-scraping call that may return error pages, blocked responses, or empty bodies. It is adequate for invoking the tool but not for anticipating what comes back.

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?

The single url parameter has 0% schema description coverage, so the schema offers only type/format. The description contributes a little semantic value ('single webpage URL', implying one URL and not a list), but adds nothing about redirects, query strings, or URL format expectations.

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

Purpose4/5

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

States a specific verb+resource ('scrape a single webpage URL') and the output form ('HTML'), which implicitly contrasts with the sibling scrape_as_markdown. It does not explicitly name that sibling or scraping_browser_get_html, so differentiation is left to inference.

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

Usage Guidelines3/5

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

The word 'single' hints this is for one URL rather than batch, but there is no explicit when-to-use guidance versus scrape_as_markdown, scrape_batch, or the scraping_browser_* family. The agent must infer selection from the output format alone.

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

scrape_as_markdownB
Read-only

Scrape a single webpage URL and get back the results in MarkDown language.

NameRequiredDescriptionDefault
urlYes

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, openWorldHint=true, and destructiveHint=false, so the safety and network profile is covered. The description adds the output serialization (Markdown), which is genuine value, but says nothing about dynamic-content rendering, timeouts, or failures on non-HTML URLs.

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?

A single short sentence with the action and the return format front-loaded. Nothing wasted, though it is arguably too terse for the gaps it leaves.

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

Completeness3/5

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

There is no output schema, and the description does at least declare the return format as Markdown, which is the key missing piece. However, it omits anything about failure behavior or how it differs from the large family of scrape_as_html / scraping_browser_* siblings, which matters given the crowded namespace.

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%, but there is only one required parameter whose type and URI format are enforced by the schema. The description only restates that it is a webpage URL and adds the constraint that it must be a single page; it does not clarify redirects, auth, or non-web schemes.

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

Purpose4/5

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

States a specific verb (scrape) and resource (a single webpage URL) plus the output format (Markdown). The word 'single' implicitly separates it from scrape_batch, and 'MarkDown' separates it from scrape_as_html, though neither sibling is named.

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

Usage Guidelines3/5

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

Usage is only implied: 'single webpage' hints that batch work belongs elsewhere and the Markdown output hints at scrape_as_html being the alternative, but the description never states when to choose this tool or what it cannot do.

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

scrape_batchB
Read-only

Scrape multiple webpages URLs and get back the results in MarkDown language.

NameRequiredDescriptionDefault
urlsYesArray of URLs to scrape (max 5)

TDQS

B3.4/5.0
Behavior3/5

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

The annotations already declare readOnly, non-destructive and open-world behavior, so the safety profile is covered. The description adds the output format (Markdown), which is genuinely useful context not found in the structured fields. However it says nothing about partial failures (what happens if one of five URLs fails), rate limits, or whether results come back in URL order — meaningful gaps for a batch network operation.

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?

A single front-loaded sentence with no filler, and the output format is stated up front. Minor awkwardness in 'webpages URLs' prevents a 5.

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

Completeness3/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 burden of explaining the return value, and it only says 'results in MarkDown' — not whether that's an array aligned to input order, how per-URL errors are surfaced, or how large the responses might be. Adequate for a simple tool, but the batch-specific behavior an agent needs to plan around 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?

There is only one parameter and the schema already documents it fully, including the max-5 constraint via maxItems and its own description. The description says nothing about the URLs array beyond implying multiplicity, so it adds no meaning over the schema; baseline 3 is appropriate.

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

Purpose4/5

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

States a specific verb and resource ('Scrape multiple webpages URLs') plus the return format ('MarkDown'), which lets an agent distinguish it from the single-page scrape_as_markdown and scrape_as_html siblings. It stops short of naming those siblings explicitly, so the differentiation is implicit rather than stated.

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

Usage Guidelines3/5

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

The word 'multiple' implies this is the batch variant to use when more than one URL needs scraping, but no explicit when-to-use or when-not-to-use condition is given. Nothing tells the agent whether to prefer scrape_as_markdown in a loop, or whether scrape_batch is cheaper/faster.

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

scraping_browser_click_refA
Destructive

Click on an element using its ref from the ARIA snapshot. Use scraping_browser_snapshot first to get the correct ref values. This is more reliable than CSS selectors.

NameRequiredDescriptionDefault
refYesThe ref attribute from the ARIA snapshot (e.g., "23")
elementYesDescription of the element being clicked for context

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, destructiveHint=true and openWorldHint=true, so the mutation and side-effect profile is covered structurally. The description adds a useful reliability rationale ('more reliable than CSS selectors') and the ref provenance, but says nothing about what a click can trigger — navigation, form submission, or a page-state change — which matters a lot for a destructive, open-world action.

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 short sentences, front-loaded with the action, then the prerequisite, then the rationale — no filler and nothing repeated from the schema verbatim.

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?

For a 2-parameter tool with no output schema and annotations that already cover safety, the description supplies the essential prerequisite and input source. The remaining gap is post-click behavior (does the page navigate, how to recover from a stale ref), which would make it fully self-sufficient.

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%, with both 'ref' and 'element' documented including an example ref value, so the baseline is 3. The description reinforces where the ref originates but adds no meaning for the 'element' context parameter and no format/syntax detail beyond the schema.

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

Purpose4/5

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

Names a specific verb+resource ('Click on an element') and the mechanism ('using its ref from the ARIA snapshot'), which clearly separates it from scraping_browser_type_ref, scraping_browser_fill_form, and the get_text/get_html readers. It does not explicitly say how it differs from the other ref-based actions (scroll_to_ref, wait_for_ref), so it stops just short of full sibling differentiation.

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?

'Use scraping_browser_snapshot first to get the correct ref values' gives a concrete prerequisite and names the tool that produces the required input, which is exactly the sequencing an agent needs. It gives no when-not guidance (e.g. what to do if the ref is stale, or when to prefer scraping_browser_get_text over clicking), so no exclusions.

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

scraping_browser_fill_formA
Destructive

Fill multiple form fields in one operation. Use scraping_browser_snapshot first to get the correct ref values. This is more efficient than filling fields one by one.

NameRequiredDescriptionDefault
fieldsYesFields to fill in

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, destructiveHint=true and openWorldHint=true, so the agent knows this mutates a live page. The description adds the snapshot prerequisite, which is useful context, but says nothing about side effects beyond the fields — whether the form is submitted, whether events fire, or what happens if one ref in the batch is stale. With annotations carrying the safety profile, a 3 is appropriate.

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 short sentences, front-loaded with the action and followed immediately by the prerequisite. No filler or restatement of the tool name.

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?

For a single-parameter, fully schema-documented tool with no output schema, the description covers what an agent needs to invoke it: the batching behavior and where refs come from. It is slightly short on post-conditions — whether filling triggers submission or navigation — which matters given destructiveHint=true.

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%, and the nested fields array already documents name, type enum, ref and per-type value formatting (checkbox "true"/"false", combobox option text). The description adds only the provenance of ref values (from the snapshot), which is helpful but marginal beyond the schema.

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

Purpose4/5

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

Names a specific verb+resource ('Fill multiple form fields') and the batching scope ('in one operation'), which implicitly separates it from the single-field sibling scraping_browser_type_ref. It does not name that sibling directly, so the differentiation is inferred rather than stated.

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?

Gives an explicit prerequisite ('Use scraping_browser_snapshot first to get the correct ref values') and a clear preference rule ('more efficient than filling fields one by one'). No exclusion conditions are stated, such as when a single-field type call would still be needed (e.g. needing to observe intermediate state).

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

scraping_browser_get_htmlB
Read-only

Get the HTML content of the current page. Avoid using this tool and if used, use full_page option unless it is important to see things like script tags since this can be large

NameRequiredDescriptionDefault
full_pageNoWhether to get the full page HTML including head and script tags Avoid this if you only need the extra HTML, since it can be quite large

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=true, so safety is covered. The description adds a useful trait not in the annotations: the output can be very large, and script/head content is the expensive part. It does not describe truncation, formatting, or what a non-full_page response looks like.

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

Conciseness3/5

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

It is short, but the sentence is convoluted: the tool is simultaneously discouraged and recommended with full_page, and the clause order buries the actual caveat at the end. Front-loading 'returns full page HTML, can be large' would carry the same content more cleanly.

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

Completeness3/5

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

With one optional parameter, no required params, and no output schema, the definition needs to cover size behavior and alternatives. It covers size, but leaves the agent without a clear path to the cheaper text-only sibling tools, which is the decisive missing piece for this tool family.

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% and the single full_page parameter is already fully documented in the schema, so the baseline is 3. The description reinforces the size caveat but adds no syntax or default-value information beyond the schema.

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

Purpose4/5

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

States a specific verb and resource: 'Get the HTML content of the current page.' An agent can tell it retrieves raw HTML from the active browser session rather than a fresh scrape. It does not, however, distinguish itself from sibling scraping_browser_get_text or scrape_as_html, which is the main ambiguity.

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

Usage Guidelines3/5

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

'Avoid using this tool and if used, use full_page option unless it is important to see things like script tags' gives a conditional, but it is self-contradictory in construction and never names the alternative an agent should reach for (scraping_browser_get_text, scrape_as_markdown). Usage direction is implied rather than routed.

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

scraping_browser_get_textB
Read-only

Get the text content of the current page

NameRequiredDescriptionDefault

No parameters

TDQS

B3/5.0
Behavior2/5

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

Annotations already declare readOnlyHint and destructiveHint=false, so safety is covered. The description adds no behavioral context of its own: it doesn't say whether text is visible-only, whether hidden/script text is included, whether output is truncated, or that results reflect the current DOM state after scrolling/waiting.

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?

A single short sentence with the key qualifier ('of the current page') placed where it matters. It is efficient but so terse that it borders on under-specification rather than genuine conciseness.

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

Completeness2/5

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

There is no output schema, so the description is the only place an agent could learn what comes back — format, length limits, whether markup is stripped — and it says none of that. Combined with the missing session prerequisite, an agent has to guess at the operational contract.

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?

The tool takes zero parameters, so there is nothing for the description to disambiguate or clarify. Baseline 4 applies.

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

Purpose4/5

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

States a specific verb and resource ('Get the text content') scoped to 'the current page', which implies the live browser session rather than an arbitrary URL. However it never mentions how it relates to close siblings like scraping_browser_get_html or scrape_as_markdown, so an agent can't tell which text-extraction tool to pick from the name alone.

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

Usage Guidelines2/5

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

No guidance on when to use this versus scrape_as_markdown, scrape_as_html, or scraping_browser_get_html, and no stated prerequisites. The critical precondition — that a page must already be loaded in the browser session via scraping_browser_navigate — is left entirely implicit.

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

scraping_browser_go_backB
Read-only

Go back to the previous page

NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is covered. The description adds nothing beyond that: it does not say what happens at the start of history (no-op or error), whether the current page content is returned, or that the agent should re-snapshot after navigating.

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?

A single front-loaded sentence with no filler. It is appropriately sized, though it is arguably thin rather than maximally efficient given the workflow context it omits.

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

Completeness3/5

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

With no parameters and no output schema, the burden is low, but the description omits session-state implications: it does not say the browser session must have history, nor how to inspect the resulting page (scraping_browser_snapshot). Those gaps matter for correct multi-step agent use.

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?

The tool takes zero parameters, which is the baseline-4 case; there is nothing for the description to disambiguate. The description correctly avoids inventing parameters.

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

Purpose4/5

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

States a specific verb (go back) and the resource/scope (the previous page in browser history), so an agent can tell it apart from scraping_browser_go_forward and scraping_browser_navigate. It stops short of explicitly naming those siblings as the alternatives.

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

Usage Guidelines2/5

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

There is no when-to-use, when-not-to-use, or prerequisite guidance. The description does not mention that a prior scraping_browser_navigate must have occurred, nor that scraping_browser_go_forward is the inverse action, leaving the agent to infer the workflow.

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

scraping_browser_go_forwardB
Read-only

Go forward to the next page

NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
Behavior2/5

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

Annotations already declare readOnly, non-destructive, open-world behavior, so the safety profile is covered. The description adds nothing: it doesn't disclose that this acts on session history, nor what happens when there is no forward entry (likely a no-op or error).

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?

One short sentence, front-loaded with the verb, zero filler. Its brevity is efficient, though it leans on completeness rather than conciseness for its gaps.

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

Completeness3/5

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

A trivial zero-param tool whose annotations already carry the safety profile, so the burden is light. Still missing is the key context: that this is history navigation tied to prior go_back/navigate calls and how it behaves when no forward page exists.

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?

Zero parameters, so there is nothing to document; baseline 4 applies.

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

Purpose4/5

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

States a specific verb ('go forward') and object ('next page'), which reads as browser history navigation and pairs naturally with the sibling scraping_browser_go_back. It does not explicitly say 'browser history', so 'next page' could be mistaken for pagination, but the sibling set disambiguates.

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

Usage Guidelines2/5

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

No statement of when to use this versus scraping_browser_navigate or scraping_browser_go_back, and no mention that it requires an existing browser session with forward history. The agent must infer all of that.

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

scraping_browser_navigateB
Read-only

Navigate a scraping browser session to a new URL

NameRequiredDescriptionDefault
urlYesThe URL to navigate to
countryNoOptional 2-letter ISO country code to route the browser session (e.g., "US", "GB")

TDQS

B3.1/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, openWorldHint=true and destructiveHint=false, so safety is covered by structured data. The description adds nothing behavioral beyond the title: it does not say whether navigation blocks until load, what happens on fetch failure, or — critically — whether navigating invalidates previously obtained element refs used by click_ref/type_ref.

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?

A single tight sentence with the action front-loaded and zero redundancy. It is arguably under-specified rather than bloated, but it wastes no space.

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

Completeness2/5

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

For a 2-parameter navigation tool in a 30-sibling browser-automation family with no output schema, the description omits key facts an agent needs: session lifecycle, whether the call returns page content or only a status, and the effect on stored element references. It covers only the bare action.

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%, with both the url and country parameters documented in the schema including the ISO pattern and examples. The description contributes no additional meaning about URL format, relative-vs-absolute handling, or how country routing affects the session, so the baseline 3 applies.

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

Purpose4/5

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

States a specific verb (Navigate) and resource (a scraping browser session) with the target being a new URL, which implicitly distinguishes it from the go_back/go_forward siblings. It does not explicitly name those siblings or clarify what a 'scraping browser session' is in relation to the other scrape_* tools.

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

Usage Guidelines3/5

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

Usage is only implied: the agent can infer this is the tool for loading a URL into an existing browsing session, versus history navigation via go_back/go_forward. There is no explicit statement about prerequisites (does a session already have to exist, or is one created?), nor any when-not-to-use guidance relative to scrape_as_markdown or scrape_as_html.

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

scraping_browser_network_requestsA
Read-only

Get all network requests made since loading the current page. Shows HTTP method, URL, status code and status text for each request. Useful for debugging API calls, tracking data fetching, and understanding page behavior.

NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, openWorldHint and destructiveHint=false, so the safety profile is covered. The description adds value beyond that by disclosing the return payload shape (method, URL, status code, status text) and the temporal scope of the capture, though it says nothing about whether the list resets on navigation or has size limits.

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 short sentences: what it returns, what fields, and why useful — in that order. Nothing is redundant beyond the necessary enumeration of returned fields, and the key scope constraint is front-loaded.

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 parameters, no output schema and an annotation set that already covers safety, the description carries exactly the burden it must: what is captured, in what timeframe, and in what shape. An agent can call this correctly and interpret the result from the description alone.

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?

The tool takes zero parameters, so there is no parameter semantics to document and the baseline is 4. The description correctly implies no arguments are needed by framing the call as 'get all requests'.

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 and resource: 'Get all network requests made since loading the current page.' The scope qualifier (since page load) distinguishes it from sibling capture tools like scraping_browser_get_html and scraping_browser_snapshot, which return page content rather than traffic.

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?

Gives clear usage contexts — debugging API calls, tracking data fetching, understanding page behavior — which tells the agent when this tool is the right pick over content-extraction siblings. It stops short of explicit exclusions (e.g., 'use get_html for markup'), so it lands at 4 rather than 5.

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

scraping_browser_screenshotA
Read-only

Take a screenshot of the current page. Set full_page to capture the whole scrollable page.

NameRequiredDescriptionDefault
full_pageNoWhether to screenshot the full page (default: false) You should avoid fullscreen if it's not important, since the images can be quite large

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is covered and the description needn't restate it. The description adds no behavioral context beyond that: it does not say what is returned (inline image, base64, URL), whether it reflects only the viewport, or whether a session/navigation prerequisite applies. Adequate but thin for a tool with no output schema.

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?

Two short sentences, zero filler, with the core action front-loaded and the optional parameter note trailing. Nothing could be removed without losing information.

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?

For a one-optional-param, no-output-schema tool, the description covers the action and the only parameter, and annotations carry the safety profile. The main residual gap is the return format (image payload vs. reference) and the implicit requirement of an active browser session, though neither is needed to select the tool 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?

There is only one optional parameter and schema description coverage is 100% – the schema already explains full_page, its false default, and even warns about large images. The description's 'capture the whole scrollable page' adds a slight semantic clarification (whole scrollable page vs. viewport) but largely repeats structured data, so the baseline 3 applies.

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

Purpose4/5

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

States a specific verb and resource: 'Take a screenshot of the current page.' That is unambiguous and distinguishable from data-extraction siblings like scraping_browser_get_html or scrape_as_markdown. It stops short of explicitly contrasting with scraping_browser_snapshot, which is the nearest ambiguous neighbor.

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

Usage Guidelines3/5

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

Usage is only implied by 'the current page' – it presumes an active browsing session but never says so, and never says when a screenshot is preferable to snapshot, get_html, or get_text. The one piece of guidance present ('Set full_page to capture the whole scrollable page') is about the parameter, not about tool selection.

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

scraping_browser_scrollB
Read-only

Scroll to the bottom of the current page

NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, openWorldHint=true, so safety is covered, but the description adds nothing beyond the action itself. It doesn't say whether the scroll waits for lazy-loaded content, whether it pages in one jump or incrementally, or whether any state/result is returned. For a browser-automation tool, those are the traits an agent needs.

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?

One short, front-loaded sentence with no filler. Its brevity is appropriate, though it edges toward under-specification rather than crispness.

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

Completeness3/5

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

The tool is simple (no params, no output schema) and the annotations carry the risk profile, so the description is close to sufficient. Missing is any statement about post-scroll behavior or page state, which is the one thing an agent would need to chain it with snapshot/get_text calls.

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?

The tool takes zero parameters and the schema is a closed empty object, so there is nothing for the description to disambiguate. Baseline 4 applies.

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

Purpose4/5

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

States a specific verb and target ("scroll to the bottom of the current page"), which lets an agent tell it apart from scraping_browser_scroll_to_ref by inference. It stops short of naming that sibling, so the differentiation is implicit rather than stated.

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

Usage Guidelines2/5

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

The description contains no when-to-use guidance, no prerequisites (e.g. a browser session/page must already be open), and never mentions the alternative scrolling sibling. The agent must infer that this is for reaching page-bottom content while scroll_to_ref targets a specific element.

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

scraping_browser_scroll_to_refA
Read-only

Scroll to a specific element using its ref from the ARIA snapshot. Use scraping_browser_snapshot first to get the correct ref values. This is more reliable than CSS selectors.

NameRequiredDescriptionDefault
refYesThe ref attribute from the ARIA snapshot (e.g., "23")
elementYesDescription of the element to scroll to

TDQS

A3.8/5.0
Behavior3/5

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

The annotations already establish that this is a safe, read-only, open-world operation. The description adds useful context about the prerequisite snapshot step and the reliability of refs over CSS selectors, but it does not describe edge cases such as invalid refs or what happens if the element is not found.

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 short sentences with no waste: purpose first, prerequisite second, rationale third. Every sentence earns its place.

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?

For a simple two-parameter scroll action with full schema coverage and annotations covering safety, the description is largely complete. It covers the key prerequisite and rationale, though failure behavior is not mentioned.

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 both parameters are already documented. The description reinforces that `ref` comes from the ARIA snapshot, but adds no syntax or constraint details beyond what the schema provides.

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

Purpose4/5

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

The description states a specific verb and resource: scrolling to a specific element using a ref from the ARIA snapshot. It is clearly different from generic scrolling, though it does not explicitly name the sibling `scraping_browser_scroll` as the page-level alternative.

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 prerequisite: use `scraping_browser_snapshot` first to obtain valid refs. It also explains why this approach is preferred over CSS selectors, but it does not state exclusions or when to choose generic `scraping_browser_scroll` instead.

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

scraping_browser_snapshotA
Read-only

Capture an ARIA snapshot of the current page showing all interactive elements with their refs. This provides accurate element references that can be used with ref-based tools. Use this before interacting with elements to get proper refs instead of guessing selectors. A filtered snapshot does not include page text; If necessary, call scraping_browser_get_text to read it.

NameRequiredDescriptionDefault
filteredNoList only buttons, links and fields (default: false). Saves tokens. Use true for sensitive actions (payments, account changes) so page text cannot pose as an element.

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnly, non-destructive, open-world behavior, so the safety profile is covered. The description adds genuinely useful context the annotations do not: that the snapshot yields refs for ref-based tools, and that filtered mode strips page text (with a security rationale in the schema). It stops short of describing size or stability of the snapshot, which keeps it at 4 rather than 5.

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?

Four short sentences, front-loaded with what the tool produces, then when to use it, then the fallback for text. No filler or restatement of the title.

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?

No output schema exists, and the description adequately characterizes the return value (ARIA tree of interactive elements plus refs) and its main limitation in filtered mode. Minor gaps such as snapshot size limits or behavior on pages that are still loading are not addressed.

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?

Only one optional parameter and schema coverage is 100%; the schema itself explains default false, token savings, and the sensitive-action rationale. The description adds one consequence ('A filtered snapshot does not include page text'), but otherwise defers to the schema, so the baseline 3 applies.

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 and resource ('Capture an ARIA snapshot of the current page') plus exactly what the output contains: interactive elements with refs. This clearly separates it from siblings like scraping_browser_screenshot, scraping_browser_get_html, and scraping_browser_get_text, which are named or implied as different outputs.

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?

Gives an explicit precondition and an exclusion: 'Use this before interacting with elements to get proper refs instead of guessing selectors', and routes the agent to scraping_browser_get_text when page text is needed because a filtered snapshot omits it. The decision path is fully stated.

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

scraping_browser_type_refA
Destructive

Type text into an element using its ref from the ARIA snapshot. Use scraping_browser_snapshot first to get the correct ref values. This is more reliable than CSS selectors.

NameRequiredDescriptionDefault
refYesThe ref attribute from the ARIA snapshot (e.g., "23")
textYesText to type
submitNoWhether to submit the form after typing (press Enter)
elementYesDescription of the element being typed into for context

TDQS

A3.6/5.0
Behavior3/5

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

The annotations already declare this is not read-only, is open-world, and is destructive. The description adds useful context that ref values must come from a prior snapshot and that refs are more reliable than CSS selectors, but it does not describe side effects such as form submission or what destructive behavior may occur.

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 three short sentences and front-loads the core action. The final sentence about reliability over CSS selectors is useful rationale, though slightly less essential than the action and snapshot prerequisite.

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?

For a four-parameter browser-typing tool with full schema coverage and annotations covering safety, the description supplies the key operational prerequisite. It does not explain how this differs from fill_form or detail submit behavior, but the schema covers the parameter-level details.

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?

The input schema has 100% description coverage for all four parameters, so the schema already explains ref, text, submit, and element. The description only reinforces ref semantics via the ARIA snapshot prerequisite and does not add meaning beyond the schema for submit or element.

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

Purpose4/5

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

The description states a specific verb and resource: typing text into an element using a ref from an ARIA snapshot. It is clear enough for an agent to understand the action, but it does not explicitly distinguish itself from the sibling tool scraping_browser_fill_form.

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 prerequisite: use scraping_browser_snapshot first to get the correct ref values. It also implies ref-based typing is preferred over CSS selectors, though it does not name when to use this instead of scraping_browser_fill_form or other typing alternatives.

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

scraping_browser_wait_for_refA
Read-only

Wait for an element to be visible using its ref from the ARIA snapshot. Use scraping_browser_snapshot first to get the correct ref values. This is more reliable than CSS selectors.

NameRequiredDescriptionDefault
refYesThe ref attribute from the ARIA snapshot (e.g., "23")
elementYesDescription of the element being waited for
timeoutNoMaximum time to wait in milliseconds (default: 30000)

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare this as a non-destructive, read-only, open-world operation. The description adds useful context about waiting for visibility and the ARIA ref dependency, but it omits important behavior such as what happens on timeout or whether it returns a value.

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?

The description is three short sentences, front-loaded with the core action and immediately followed by the key prerequisite. Every sentence contributes useful information.

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?

For a browser wait tool, the description covers the critical workflow requirement of obtaining a ref from the snapshot and explains why ARIA refs are preferred. The main missing piece is failure behavior on timeout, which matters because there is no output schema.

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 individual parameters are already documented. The description adds the meaningful dependency that ref comes from the ARIA snapshot, but it does not add extra detail about timeout semantics or element usage beyond 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?

The description states a specific verb and resource: wait for an element to be visible using a ref from the ARIA snapshot. It distinguishes itself from selector-based approaches by naming ARIA refs explicitly and pointing to the snapshot tool as the source of refs.

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 clear prerequisite guidance: call scraping_browser_snapshot first to obtain a valid ref. It also explains a preference over CSS selectors, though it does not explicitly say when not to use this tool or name alternative wait mechanisms.

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

search_datasetA
Read-only

Search a Bright Data dataset by a filter and get matching records back directly (fast Elasticsearch-backed search; no snapshot). Use this to FIND MANY records by criteria, as opposed to run_scraper which collects fresh records by URL. First call list_dataset_fields to get valid field names. A filter is a tree: a group {operator:"and"|"or", filters:[...]} or a leaf {name, value, operator}. Max nesting depth 3. Leaf operators: =, !=, <, <=, >, >=, in, not_in, includes, not_includes, array_includes, not_array_includes, is_null, is_not_null. Supported dataset_id values:

  • gd_l1viktl72bvl7bjuj0: LinkedIn people profiles

  • gd_me5ppxjr2ge6icjuh0: LinkedIn people profiles (contact-enriched)

  • gd_l1vikfnt1wgvvqz95w: LinkedIn company information

NameRequiredDescriptionDefault
sizeNoNumber of records to return (max 10, default 10)
sortNoSorting: "default", "random", or a custom array like [{"timestamp":"asc"}]. Use "default" or custom sort to paginate with search_after.
filterYesFilter tree describing which records to match. Required, cannot be empty.
dataset_idYes
search_afterNoPagination cursor from a previous response's search_after value.

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, non-destructive, closed-world), so the description only needs to add mechanism. It does: "fast Elasticsearch-backed search; no snapshot" tells the agent results are existing indexed data, not a fresh capture, which is the key behavioral distinction. It omits the hard 10-record cap and pagination flow beyond the schema's own text, so not fully complete.

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 purpose and the sibling contrast, then prerequisite, then filter grammar, then the dataset catalog — a logical build. Dense but each block earns its place; the bulleted dataset list is the one mild expansion, though it supplies information absent from the schema.

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?

There is no output schema, and the description only says "get matching records back directly" without indicating the response shape or that search_after comes from a previous response (that detail lives in the schema). For a 5-parameter read tool with annotations carrying safety, however, what is present is enough to call it correctly.

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

Parameters5/5

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

Schema coverage is 80%, so the baseline is 3, but the description substantially compensates: it explains the filter is a tree of group vs. leaf nodes, states max nesting depth 3 (which the deeply $ref'd schema never says plainly), enumerates all 14 leaf operators, and gives human-readable meanings for each of the three dataset_id enum values that the schema leaves unlabeled. That is real meaning beyond the structured fields.

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 and resource ("search a Bright Data dataset ... get matching records back directly") plus the retrieval mechanism (Elasticsearch-backed, no snapshot). It explicitly distinguishes itself from the sibling run_scraper, 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?

Gives the positive case ("FIND MANY records by criteria"), the contrast case ("as opposed to run_scraper which collects fresh records by URL"), and a prerequisite step ("First call list_dataset_fields to get valid field names"). Nothing is left to inference about when to pick this tool.

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

search_engineA
Read-only

Scrape search results from Google, Bing or Yandex. Returns SERP results in JSON or Markdown (URL, title, description),Ideal forgathering current information, news, and detailed search results.

NameRequiredDescriptionDefault
queryYes
cursorNoPagination cursor for next page
engineNogoogle
geo_locationNo2-letter country code for geo-targeted results (e.g., "us", "uk")

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, openWorldHint and destructiveHint=false, so safety is covered. The description adds the return content, but its claim of "JSON or Markdown" output is unactionable since no format parameter exists in the schema, and pagination via the cursor is never explained. Net: some added value with a mild misleading note.

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?

Two short sentences with the core capability front-loaded and no padding. A typo ("description),Ideal forgathering") slightly hurts polish but not comprehension.

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?

For a 4-parameter, no-output-schema search tool, the description covers the source engines, the return payload fields, and the intended use case. The remaining gaps (pagination, format selection) are minor and largely resolvable from the schema's cursor field.

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 50% – only cursor and geo_location are documented in the schema. The description adds meaning to the engine enum by naming Google, Bing and Yandex, but says nothing about the required query or geo-targeting, so the undocumented half is only partially compensated.

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

Purpose4/5

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

States a specific verb and resource ("Scrape search results from Google, Bing or Yandex") and names the output shape (SERP results with URL, title, description). It does not, however, differentiate itself from the sibling search_engine_batch, leaving the agent to infer when the single-query variant is preferred.

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

Usage Guidelines3/5

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

"Ideal for gathering current information, news, and detailed search results" gives a use-case context, but there are no when-not conditions and no named alternative despite a sibling search_engine_batch existing. Usage is implied rather than prescribed.

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

search_engine_batchB
Read-only

Run multiple search queries simultaneously. Returns JSON for Google, Markdown for Bing/Yandex.

NameRequiredDescriptionDefault
queriesYes

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, openWorldHint and destructiveHint, so the safety profile is covered. The description adds genuinely non-obvious behavior — per-engine return formats (JSON for Google, Markdown for Bing/Yandex) — but says nothing about concurrency limits, per-query failure behavior, or whether one failing query aborts the batch.

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?

Two tight sentences with the purpose front-loaded and the format caveat second; nothing is padded. It is efficient but very short relative to how much of the schema is left unexplained.

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

Completeness3/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 does carry some of the return-value burden by naming formats per engine, which is helpful. However, it omits output shape, cursor/pagination semantics, and batch error handling — significant gaps for a multi-query tool.

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

Parameters2/5

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

Schema description coverage is effectively 0% beyond geo_location; the description explains none of the nested fields. The `cursor` parameter for pagination and the `engine` enum with its google default are undocumented, and the description does not mention the 1-5 query limit enforced by the schema.

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

Purpose4/5

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

States a specific verb and resource ("Run multiple search queries simultaneously") and conveys batch semantics that implicitly separate it from the single-query search_engine sibling. It never names the sibling or the batch limit, so differentiation is inferred rather than explicit.

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

Usage Guidelines3/5

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

"Multiple ... simultaneously" implies the tool is for batching several queries, which hints at when to choose it over search_engine, but no explicit when/when-not rule or alternative is stated. An agent must infer the routing decision.

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

search_scrapersA
Read-only

Find a Bright Data pre-built scraper (Web Scraper API, 1,200+ sites) for a site or data type, e.g. "amazon reviews" or "linkedin.com". Returns dataset_id, name, domain and collection_methods. Next: call get_scraper_details with a dataset_id and one method.

NameRequiredDescriptionDefault
limitNo
queryYes

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, and the description adds real value by enumerating the returned fields (dataset_id, name, domain, collection_methods) in the absence of an output schema. It does not disclose result-count behavior, default result size, or empty-result handling, which leaves a minor gap.

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 short sentences: purpose, return shape, next action. No filler, and the identifying information is front-loaded before the return/next-step details.

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?

For a two-param read-only discovery tool with no output schema, the description covers purpose, return fields and the follow-up call, which is nearly everything an agent needs. The uncovered `limit`/pagination behavior is the only meaningful omission.

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 0%, so the description carries the burden. Its examples ('amazon reviews', 'linkedin.com') do clarify what the required `query` accepts, but the `limit` parameter (1-50, default 10) is never mentioned, leaving half the parameters undocumented anywhere.

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 verb ('Find') and resource ('Bright Data pre-built scraper / Web Scraper API, 1,200+ sites') and instantly grounds it with two concrete query examples. An agent can distinguish this discovery tool from siblings like get_scraper_details or run_scraper 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?

It gives clear usage context plus an explicit next step: 'call get_scraper_details with a dataset_id and one method.' It does not name exclusions or close alternatives (e.g., when to prefer search_dataset or ask_brightdata_assistant instead), so it stops just short of a 5.

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

session_statsC
Read-only

Tell the user about the tool usage during this session

NameRequiredDescriptionDefault

No parameters

TDQS

C2.8/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, openWorldHint=false and destructiveHint=false, so safety is covered. The description adds only that the scope is 'this session' and that output is user-facing prose; it says nothing about what data is included or whether it reflects only this MCP server's calls. With annotations carrying the safety profile, this is thin added value.

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?

A single short sentence with no padding, and the scope qualifier lands immediately. It is efficient but under-specified rather than over-long, so it loses a point only for lack of substance.

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

Completeness2/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 burden of explaining what the agent gets back, and it does not: no mention of which metrics (call counts, per-tool breakdown, timing) or of the response shape. For a zero-param read tool this is low-stakes, but it is still incomplete.

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?

The tool takes no parameters (schema is an empty object with additionalProperties false), so there is nothing for the description to disambiguate. Baseline 4 applies.

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

Purpose3/5

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

The description identifies a resource — tool usage during this session — and the verb is an instruction to report it to the user. It is distinct from every sibling (all scraping/browser tools), but 'tool usage' is vague about what is actually returned (counts, durations, per-tool breakdown).

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

Usage Guidelines2/5

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

No statement of when to call this versus anything else, no triggers, no exclusions. The only implied usage is 'when the user asks about session activity', which the agent must infer from the phrase 'during this session'.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 1 tool updatev4.1.0
    • Changedsearch_dataset1 field changed
      • changedInput schema / properties / filter / anyOf
        Previous value: -[
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "filters": {
        -        "items": {
        -          "anyOf": [
        -            {
        -              "additionalProperties": false,
        -              "properties": {
        -                "filters": {
        -                  "items": {
        -                    "anyOf": [
        -                      {
        -                        "additionalProperties": false,
        -                        "properties": {
        -                          "filters": {
        -                            "items": {
        -                              "additionalProperties": false,
        -                              "properties": {
        -                                "name": {
        -                                  "description": "Field name to filter on. Get valid field names from the list_dataset_fields tool.",
        -                                  "type": "string"
        -                                },
        -                                "operator": {
        -                                  "description": "Filter operator, one of: =, !=, <, <=, >, >=, in, not_in, includes, not_includes, array_includes, not_array_includes, is_null, is_not_null",
        -                                  "type": "string"
        -                                },
        -                                "value": {
        -                                  "anyOf": [
        -                                    {
        -                                      "type": "string"
        -                                    },
        -                                    {
        -                                      "type": "number"
        -                                    },
        -                                    {
        -                                      "type": "boolean"
        -                                    },
        -                                    {
        -                                      "items": {
        -                                        "type": [
        -                                          "string",
        -                                          "number",
        -                                          "boolean"
        -                                        ]
        -                                      },
        -                                      "type": "array"
        -                                    }
        -                                  ]
        -                                }
        -                              },
        -                              "required": [
        -                                "name",
        -                                "operator",
        -                                "value"
        -                              ],
        -                              "type": "object"
        -                            },
        -                            "minItems": 1,
        -                            "type": "array"
        -                          },
        -                          "operator": {
        -                            "enum": [
        -                              "and",
        -                              "or"
        -                            ],
        -                            "type": "string"
        -                          }
        -                        },
        -                        "required": [
        -                          "operator",
        -                          "filters"
        -                        ],
        -                        "type": "object"
        -                      },
        -                      {
        -                        "$ref": "#/properties/filter/anyOf/0/properties/filters/items/anyOf/0/properties/filters/items/anyOf/0/properties/filters/items"
        -                      }
        -                    ]
        -                  },
        -                  "minItems": 1,
        -                  "type": "array"
        -                },
        -                "operator": {
        -                  "enum": [
        -                    "and",
        -                    "or"
        -                  ],
        -                  "type": "string"
        -                }
        -              },
        -              "required": [
        -                "operator",
        -                "filters"
        -              ],
        -              "type": "object"
        -            },
        -            {
        -              "$ref": "#/properties/filter/anyOf/0/properties/filters/items/anyOf/0/properties/filters/items/anyOf/0/properties/filters/items"
        -            }
        -          ]
        -        },
        -        "minItems": 1,
        -        "type": "array"
        -      },
        -      "operator": {
        -        "enum": [
        -          "and",
        -          "or"
        -        ],
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "operator",
        -      "filters"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "$ref": "#/properties/filter/anyOf/0/properties/filters/items/anyOf/0/properties/filters/items/anyOf/0/properties/filters/items"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "filters": {
        +        "items": {
        +          "anyOf": [
        +            {
        +              "additionalProperties": false,
        +              "properties": {
        +                "filters": {
        +                  "items": {
        +                    "anyOf": [
        +                      {
        +                        "additionalProperties": false,
        +                        "properties": {
        +                          "filters": {
        +                            "items": {
        +                              "additionalProperties": false,
        +                              "properties": {
        +                                "name": {
        +                                  "description": "Field name to filter on. Get valid field names from the list_dataset_fields tool.",
        +                                  "type": "string"
        +                                },
        +                                "operator": {
        +                                  "description": "Filter operator, one of: =, !=, <, <=, >, >=, in, not_in, includes, not_includes, array_includes, not_array_includes, is_null, is_not_null",
        +                                  "type": "string"
        +                                },
        +                                "value": {
        +                                  "anyOf": [
        +                                    {
        +                                      "type": "string"
        +                                    },
        +                                    {
        +                                      "type": "number"
        +                                    },
        +                                    {
        +                                      "type": "boolean"
        +                                    },
        +                                    {
        +                                      "items": {
        +                                        "type": [
        +                                          "string",
        +                                          "number",
        +                                          "boolean"
        +                                        ]
        +                                      },
        +                                      "type": "array"
        +                                    }
        +                                  ],
        +                                  "description": "Value to compare against. Omit for is_null / is_not_null."
        +                                }
        +                              },
        +                              "required": [
        +                                "name",
        +                                "operator"
        +                              ],
        +                              "type": "object"
        +                            },
        +                            "minItems": 1,
        +                            "type": "array"
        +                          },
        +                          "operator": {
        +                            "enum": [
        +                              "and",
        +                              "or"
        +                            ],
        +                            "type": "string"
        +                          }
        +                        },
        +                        "required": [
        +                          "operator",
        +                          "filters"
        +                        ],
        +                        "type": "object"
        +                      },
        +                      {
        +                        "$ref": "#/properties/filter/anyOf/0/properties/filters/items/anyOf/0/properties/filters/items/anyOf/0/properties/filters/items"
        +                      }
        +                    ]
        +                  },
        +                  "minItems": 1,
        +                  "type": "array"
        +                },
        +                "operator": {
        +                  "enum": [
        +                    "and",
        +                    "or"
        +                  ],
        +                  "type": "string"
        +                }
        +              },
        +              "required": [
        +                "operator",
        +                "filters"
        +              ],
        +              "type": "object"
        +            },
        +            {
        +              "$ref": "#/properties/filter/anyOf/0/properties/filters/items/anyOf/0/properties/filters/items/anyOf/0/properties/filters/items"
        +            }
        +          ]
        +        },
        +        "minItems": 1,
        +        "type": "array"
        +      },
        +      "operator": {
        +        "enum": [
        +          "and",
        +          "or"
        +        ],
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "operator",
        +      "filters"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "$ref": "#/properties/filter/anyOf/0/properties/filters/items/anyOf/0/properties/filters/items/anyOf/0/properties/filters/items"
        +  }
        +]
  2. 3 tool updatesv4.0.0
    • Addedask_brightdata_assistant
    • Removeddiscover
    • Changedscraping_browser_snapshot1 field changed
      • changedInput schema / properties / filtered / description
        Previous value: -"Whether to apply filtering/compaction (default: false). Set to true to get a compacted version of the snapshot."New value: +"List only buttons, links and fields (default: false). Saves tokens. Use true for sensitive actions (payments, account changes) so page text cannot pose as an element."
  3. 27 tool updatesv3.1.0
    • Addedchatgpt_ai_insights
    • Addedextract
    • Addedget_scraper_details
    • Addedget_scraper_progress
    • Addedget_scraper_results
    • Addedlist_dataset_fields
    • Addedperplexity_ai_insights
    • Addedrefresh_scrapers
    • Addedrun_scraper
    • Addedscrape_as_html
    • Addedscraping_browser_click_ref
    • Addedscraping_browser_fill_form
    • Addedscraping_browser_get_html
    • Addedscraping_browser_get_text
    • Addedscraping_browser_go_back
    • Addedscraping_browser_go_forward
    • Addedscraping_browser_navigate
    • Addedscraping_browser_network_requests
    • Addedscraping_browser_screenshot
    • Addedscraping_browser_scroll
    • Addedscraping_browser_scroll_to_ref
    • Addedscraping_browser_snapshot
    • Addedscraping_browser_type_ref
    • Addedscraping_browser_wait_for_ref
    • Addedsearch_dataset
    • Addedsearch_scrapers
    • Addedsession_stats
  4. 5 tool updatesv2.9.3
    • Addeddiscover
    • Addedscrape_as_markdown
    • Addedscrape_batch
    • Addedsearch_engine
    • Addedsearch_engine_batch

TDQS

B3.4/5.0

Scored across 32 tools

Disambiguation4/5

The set is organized into clearly separated families (simple scraping, Scraping Browser automation, dataset/scraper pipeline, SERP search, AI insights, support), and descriptions actively differentiate lookalikes such as search_dataset vs. run_scraper and ref-based browser actions vs. plain scraping. Minor overlap remains: scrape_as_markdown, scrape_as_html, extract and scraping_browser_get_text/get_html all return page content, and scraping_browser_scroll vs. scrolling to a ref could be momentarily confused.

Naming Consistency4/5

Nearly everything is snake_case with an action-first verb, and the scraping_browser_* prefix gives the browser family a predictable namespace (navigate, go_back, click_ref, type_ref, etc.). A few outliers break the verb pattern — bare 'extract', noun-only 'session_stats', and the 'scrape_as_*' vs 'scraping_browser_*' stem difference — but the convention is still easy to follow.

Tool Count3/5

32 tools is on the heavy side and just reading the list is a burden, largely because the Scraping Browser automation surface alone contributes 14 fine-grained actions. The breadth is defensible since the server fronts several distinct Bright Data products (Web Unlocker-style scraping, Scraping Browser, datasets/scrapers, SERP, AI insights), but it sits above the comfortable range.

Completeness4/5

Coverage is strong: single/batch page scraping, HTML/markdown extraction, full browser lifecycle (navigate, history, snapshot, click/type/fill/scroll/wait, screenshot, network log), and a discover → detail → run → progress → results scraper pipeline plus dataset field/search and support. Small gaps exist — no cancel/abort for a running scraper, no session close/reset for the browser, and no key-press/select helpers beyond fill_form — but these are workaroundable.

Maintenance

ActivityActive
ResponsivenessSlow

Related MCP Connectors

Related MCP Servers