Skip to main content
Glama

Server Details

Live web access for agents: scrape, SERP search, crawl/map, 74 collectors, datasets, proxies.

If you are the author of this connector, you can claim ownership with GitHub, an HTTP challenge, or a DNS record. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Last Tested
Transport
Streamable HTTP
URL
Repository
quantumproxies/quanticdata-mcp-server
GitHub Stars
0
Server Listing
QuanticData MCP server

Available Tools

25 tools
batchA
Read-only
Inspect

Scrape many URLs asynchronously with shared options. Returns a job id — poll with batch_status. For SEO/status audits over many pages set mode 'summary': items carry metadata only (title, description, canonical, contentLength) instead of full page content.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNosummary: per-URL metadata only, no page content — the light mode for audits
urlsYesURLs to scrape
engineNoFetch engine (default auto)
formatNoOutput format (default markdown)
countryNoISO country code for the proxy exit
content_modeNoPer-URL content scope: smart (default) | article | full

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already provide readOnlyHint=true and openWorldHint=true, so the safety profile is known. The description adds meaningful behavior beyond that: the asynchronous execution, the returned job id, the polling obligation, and the summary-mode payload distinction. No contradictions with annotations.

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 with no filler; the core action and async model are front-loaded, and the mode guidance is a meaningful second sentence. Every clause 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?

Covers the essential invocation model: async batch, job id, polling via batch_status, and the main mode decision. The schema handles parameter syntax, though the description could briefly mention default-mode results or result shaping, which is a minor gap for an async tool with no 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?

The schema already has 100% parameter coverage with descriptive enum and field text. The description still adds semantic value by explaining the 'shared options' concept and detailing what summary mode returns (title, description, canonical, contentLength) versus full page content.

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

Purpose5/5

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

States a specific verb-resource pair ('Scrape many URLs asynchronously') and clearly signals an async job model. The 'many URLs' framing separates it from single-URL siblings like scrape, and the mention of batch_status immediately ties the batch API to its status companion.

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 a concrete use condition ('For SEO/status audits over many pages set mode 'summary'') and implies batch is for multi-URL workloads while polling is done via batch_status. It stops short of explicitly naming alternatives or saying when not to use batch, but the async/many-URL framing is enough contextual guidance.

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

batch_statusA
Read-onlyIdempotent
Inspect

Poll a batch job for progress and per-URL results. Polls are incremental: pass the previous response's nextCursor as since to receive only the items completed after your last poll. Items omit page content by default — set include_content true only when you actually need the text.

ParametersJSON Schema
NameRequiredDescriptionDefault
jobIdYesThe batch job id returned by batch
sinceNoItem cursor from the previous poll's `nextCursor` — returns only newer items
include_contentNoInclude each item's full page content (default false — metadata only)

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already mark the tool as read-only and idempotent; the description adds crucial behavioral context that annotations do not cover: results are incremental and cursor-based, and page content is omitted by default. This is exactly the kind of stateful behavior an agent needs to know before calling the 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?

Three short sentences, front-loaded with purpose, then usage mechanics, then a default-behavior warning. Every sentence earns its place and there is no fluff.

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?

With no output schema, the description tells the agent it will receive progress and per-URL results, and it explains the cursor loop and the content flag. It stops short of specifying completion conditions or the exact response envelope, but it is sufficient for correct invocation.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3; the description adds value by tying `since` to the previous `nextCursor` and advising `include_content` only when content is needed. It reinforces the schema's meaning without merely repeating it.

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 opens with a specific verb and resource ('Poll a batch job') and clarifies the result scope ('for progress and per-URL results'). This separates it from creation tools like batch and other status tools by naming the resource type and the polling behavior.

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 operational guidance: pass the previous response's `nextCursor` as `since` for incremental polls, and enable `include_content` only when page text is actually needed. It does not explicitly name alternative tools or state when not to use this tool, so it falls slightly short of the top score.

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

collector_run_statusA
Read-onlyIdempotent
Inspect

Fetch a Collector run by run_id: status (queued|running|done|failed), result count, cost, partial flag and the result rows. Use after run_collector returned 202/async. Pass format 'csv' to get the rows as CSV text.

ParametersJSON Schema
NameRequiredDescriptionDefault
formatNoReturn rows as JSON (default) or CSV text
run_idYesThe run id returned by run_collector

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and idempotentHint, so the description only needs to add async/status context. It does: 'Use after run_collector returned 202/async' plus the list of status values and the partial flag, which tells the agent this is a polling/read operation returning progress information. No contradiction.

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 tightly written sentences put the core action first, list the return fields compactly, and add only the workflow trigger and format option. No filler or unnecessary repetition.

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?

Covered: when to call, statuses, result fields, format switch, and safety profile via annotations. Without an output schema, it could say a bit more about the meaning of the partial flag and failure/not-found behavior, but for a simple async status fetch it is nearly 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?

The schema describes both parameters at 100% coverage, so the description need not re-document them. It does clarify the csv format behavior, but that mostly mirrors the schema's 'Return rows as JSON (default) or CSV text' 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?

Description starts with a specific verb and resource: 'Fetch a Collector run by run_id', then enumerates exactly what is returned: status, result count, cost, partial flag, and result rows. This distinguishes it from run_collector, which launches the run, and from other status tools by naming the Collector-specific resource.

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

Usage Guidelines4/5

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

Explicitly says to use this tool 'after run_collector returned 202/async', tying it to the run_collector workflow. It doesn't name exclusions or alternatives, but the async handoff condition is clear enough for an agent to choose this over launch tools.

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

crawlA
Read-only
Inspect

Start an asynchronous BFS crawl of a site from a seed URL, converting each page to Markdown. Returns a job id — poll with crawl_status.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesSeed URL
depthNoMax link depth (default 3)
limitNoMax pages (default 50)
countryNoISO country code for the proxy exit
excludeNoURL substrings/globs to exclude
includeNoURL substrings/globs to include
content_modeNoPer-page content scope: smart (default) | article | full

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already provide readOnlyHint and openWorldHint, and the description adds meaningful behavioral context: the crawl is asynchronous, returns a job id, converts pages to Markdown, and requires polling via crawl_status. No contradiction with annotations.

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 efficient sentences capture the core action, the async nature, the output format, and the follow-up polling step. Every phrase earns its place, and the most important information 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?

The description is complete for correct invocation: it names the required resource (seed URL), explains what will happen asynchronously, and tells the agent how to track progress via crawl_status. With the schema covering parameters and annotations covering read-only/open-world semantics, nothing critical 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 description coverage is 100%, so all seven parameters are already documented in the schema. The description adds general context (seed URL, BFS crawl) but does not need to explain individual parameters further.

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

Purpose5/5

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

The description clearly states the verb ('crawl'), the resource ('a site from a seed URL'), and the key behavior (asynchronous BFS, converting pages to Markdown). It also differentiates itself from siblings by describing a site-wide crawl while referencing crawl_status for polling.

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?

The description establishes clear usage context: start an asynchronous BFS crawl from a seed URL, then poll with crawl_status. It does not explicitly name alternatives like scrape or map, but the intended use case is clear enough for an agent to select this tool over single-page tools.

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

crawl_statusA
Read-onlyIdempotent
Inspect

Poll a crawl job for progress and the pages crawled so far. Polls are incremental: pass the previous response's nextCursor as since to receive only the pages crawled since your last poll. Pages omit their content by default — set include_content true only when you actually need the text (a large crawl's full content can be hundreds of KB).

ParametersJSON Schema
NameRequiredDescriptionDefault
jobIdYesThe crawl job id returned by crawl
sinceNoPage cursor from the previous poll's `nextCursor` — returns only newer pages
include_contentNoInclude each page's full content (default false — metadata only)

TDQS

A4.8/5.0
Behavior5/5

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

Beyond the readOnlyHint and idempotentHint annotations, the description discloses key behaviors: incremental polling with a cursor, pages omitting content by default, and a concrete size warning for include_content. This is valuable operational context an agent needs before invoking the 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 two sentences: the first defines the tool's purpose and core polling behavior, the second covers the cursor contract and the content-size caveat. Every sentence earns its place, with no filler or repetition of schema details.

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 references nextCursor, pages crawled so far, and metadata-only default, which tells the agent what to expect from responses. Combined with full parameter coverage and clear behavioral notes, nothing essential is missing for correct invocation.

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 100%, so the baseline is 3, but the description adds meaning beyond the schema: it explains how since relates to nextCursor from a previous poll and when include_content is worth the cost. This materially improves parameter understanding.

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 opens with a specific verb and resource: 'Poll a crawl job for progress and the pages crawled so far.' This clearly identifies the tool's function and scope, and the resource 'crawl job' differentiates it from sibling status tools like batch_status or collector_run_status.

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?

The description gives clear context for use: polling is incremental and should build on a previous response's nextCursor. It does not explicitly name alternatives or state when not to use it, but the polling mechanics and incremental contract make the intended usage evident.

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

create_datasetAInspect

Build a structured dataset from a plain-language prompt. Quantic AI plans the search queries, searches Google/Bing/DuckDuckGo, maps the sites it finds and scrapes them into validated rows (CSV/JSON). Returns a job id — poll with dataset_status. Billed per delivered, validated record (email/phone fields cost extra, only when found); the run never exceeds limits.max_cost_usd, and the unspent budget is refunded.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitsNo
promptYesWhat dataset you want, in plain language (e.g. 'coffee roasters in Portland with email and phone')
columnsNoColumns to extract; omit to let the planner infer them
countryNoISO country code for the proxy exit geo
sourcesNoDomain allow/deny lists
webhookNoPublic URL to POST the finished dataset to

TDQS

A4.6/5.0
Behavior5/5

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

Annotations only signal readOnlyHint=false and openWorldHint=true, but the description discloses key runtime behavior: it performs live web searches, scrapes external sites, returns an async job id, requires polling via dataset_status, and has a billing model with a hard cost cap and refund. This is substantial behavioral context beyond the annotations.

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 tight sentences: purpose, pipeline, async/polling behavior, and cost model. It is front-loaded with the core purpose and every sentence adds necessary operational information without fluff or repetition.

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 complex async, billed, web-scraping tool with no output schema, the description covers the critical operational points: job id, polling endpoint, cost model, and budget safety. It relies on the input schema for parametric details, which is reasonable given 83% schema coverage, though it does not explain the final dataset delivery format or webhook behavior beyond the 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?

Schema coverage is high (83%), so the baseline is 3, and the description adds extra meaning for the cost-related parameters: email/phone fields are premium and billed only when found, and limits.max_cost_usd is a hard cap with refunds for unspent budget. This clarifies semantics that the bare schema descriptions ('Budget cap for the run') do not fully convey.

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 names a specific verb ('Build') and resource ('structured dataset') and describes the full pipeline: planning queries, searching multiple engines, mapping sites, and scraping validated rows. This clearly distinguishes it from sibling tools like search, scrape, crawl, or map, since it is end-to-end dataset construction from a plain-language prompt.

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 context: use this tool when you want a structured dataset from a natural-language prompt, and it explains that the tool itself handles search and scraping. However, it does not explicitly name alternatives or state when NOT to use it, leaving some inference to the agent.

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

dataset_statusA
Read-onlyIdempotent
Inspect

Poll a dataset job for progress, the collection trace (steps) and the rows so far. Polls are incremental: pass the previous response's nextCursor as since to receive only rows delivered after your last poll. Set mode 'summary' to omit rows and get only progress + steps (light poll). When status is completed, the response includes signed CSV/JSON download URLs.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNosummary: progress + steps only, no rows
jobIdYesThe dataset job id returned by create_dataset
sinceNoRow cursor from the previous poll's `nextCursor` — returns only newer rows

TDQS

A4.4/5.0
Behavior5/5

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

Annotations already declare readOnlyHint and idempotentHint, and the description adds useful behavior beyond that: polls are incremental, summary mode reduces payload, and completed jobs return signed CSV/JSON download URLs. This gives the agent a solid behavioral model without contradicting annotations.

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 dense sentences each carry essential information: what the tool returns, how incremental polling works, how to lighten the poll, and what completion yields. There is no filler or repetition of annotation data.

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?

The description covers the key outputs an agent needs to know: progress, steps, rows, `nextCursor`, and signed download URLs. There is no output schema, so a bit more detail on status values or pagination edge cases could be helpful, but this is complete enough for correct invocation and basic handling of responses.

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

Parameters3/5

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

Schema coverage is 100%, so the description does not need to compensate for missing parameter docs. It does add a small amount of context, such as calling summary mode a 'light poll' and tying `since` to the prior response's `nextCursor`, but this largely mirrors the schema. Baseline 3 is appropriate.

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: 'Poll a dataset job' for progress, collection trace, and rows. This clearly distinguishes dataset_status from sibling status tools like batch_status, crawl_status, and collector_run_status by naming the exact job type it targets.

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?

The description provides clear usage context: incremental polling with `since`, the `summary` mode for lighter polls, and download URLs on completion. It does not explicitly name alternatives or say when not to use this tool, but the dataset job framing makes the intended context unambiguous.

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

generate_parserA
Read-only
Inspect

Look at a page ONCE with an LLM and get back CSS selectors that extract the fields you asked for. Pass the returned parser as the extract argument on every later scrape of that same layout and no AI runs again — it becomes a plain, free, deterministic extraction. Use this instead of ai_prompt whenever you will scrape more than a couple of pages of the same shape. Every selector is run against the page before being returned, so report/coverage tell you which fields are actually reliable.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlNoThe page to learn the layout from
htmlNoMarkup you already have, instead of fetching a URL (no proxy bandwidth used)
fieldsNoWhat to extract, as { field_name: "plain-English description" } — e.g. { "price": "the product price", "specs": "every spec bullet, as a list" }. Max 25.
promptNoFree-text alternative to `fields` — the model picks and names the fields itself
renderNoLearn from the browser-rendered DOM instead of the raw HTML (needed for SPA pages)
countryNoISO country code for the proxy exit

TDQS

A4.6/5.0
Behavior5/5

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

Beyond the readOnlyHint and openWorldHint annotations, the description adds valuable behavioral context: the LLM runs only once, later extraction is deterministic and free, selectors are validated against the page before being returned, and report/coverage indicate field reliability. No contradiction with annotations.

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

Conciseness5/5

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

Three sentences, each earning its place: how it works, when to use it, and what reliability signals to expect. The core action is front-loaded, and there is no fluff or repetition of schema 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 tool with no output schema, the description explains what is returned (CSS selectors), how to use it, and how to judge reliability via report/coverage. It could describe the report/coverage value shapes more precisely, but the essential invocation information is present and well integrated with the 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 schema already documents all six parameters thoroughly. The description adds general context about the returned parser being used as an `extract` argument, but it does not need to add parameter-level semantics; baseline 3 is appropriate.

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 ('Look at a page ONCE with an LLM and get back CSS selectors') and explains the tool's output and lifecycle. It also distinguishes it from ai_prompt by describing when each is appropriate, so an agent can separate it from the alternative without opening schemas.

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?

Provides explicit when-to-use guidance: 'Use this instead of ai_prompt whenever you will scrape more than a couple of pages of the same shape.' It also implies the exclusion case (one-off scrapes) and tells the agent how to use the result on later scrapes via the `extract` argument.

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

generate_proxiesAInspect

Generate ready-to-use proxy endpoint strings (credentials included) from one of the account's active proxy services — any type: residential, mobile, datacenter, ISP, IPv6. Supports geo targeting (country/state/city, ISP or ASN where the plan allows it), rotating or sticky sessions, HTTP or SOCKS5, and several output formats. Use list_proxies first to get the orderId, and proxy_locations for valid targeting codes. The returned strings plug straight into any HTTP client, e.g. curl -x.

ParametersJSON Schema
NameRequiredDescriptionDefault
ipNoMobile V2 only: a whitelisted IP (see whitelist_ip) to fetch the IP-auth proxy list instead of user:pass proxies
asnNoASN for Residential/Datacenter Basic targeting, e.g. 'AS12345'
ispNoISP code for Residential Premium / Mobile V2 targeting (from proxy_locations tree, e.g. 'tmobile')
cityNoCity (slug from proxy_locations where applicable; 'all' for any)
stateNoState/region (Residential Premium & Mobile V2: use the slug from proxy_locations; 'all' for any)
filterNoResidential Premium / Mobile V2 pool filter (omit for the full pool)
formatNoOutput string format (default user:pass@host:port)
strictNoResidential/Datacenter Basic: true allows fallback to nearby locations when the exact target has no IPs
countryNoCountry code for geo targeting, lowercase, e.g. 'us'
gatewayNoMobile V2 region gateway (default ww)
orderIdYesThe proxy service's orderId (from list_proxies)
protocolNoProxy protocol (default http)
quantityNoNumber of proxy strings (default 10)
rotationNorotating (default): new IP per request. sticky: keep the IP for sessionTime. static: IPv6 only, fixed session with no TTL.
sessionTimeNoSticky session duration in minutes (default 10; Residential Basic/Datacenter minimum 3)

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already signal readOnlyHint=false and destructiveHint=false. The description adds useful behavioral context: generated strings include credentials, are ready-to-use, and 'plug straight into any HTTP client, e.g. curl -x'. It does not mention potential side effects like quota consumption, but it does not contradict annotations.

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 focused sentences: purpose, supported capabilities, prerequisites, and output usability. Every sentence earns its place, with the most important action and resource stated first. No filler or repetition of schema 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 tool with 15 parameters and no output schema, the description covers the essential context: what it produces, which sibling tools supply required inputs, supported modes, and how the output can be consumed. It does not explicitly state that the result is an array, but the quantity parameter and 'proxy endpoint strings' phrasing make that inferable.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3. The description adds value beyond the schema by mapping orderId to list_proxies and targeting codes to proxy_locations, which helps an agent know where parameter values come from. It also usefully summarizes geo targeting and output format capabilities, though the schema already documents individual 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?

The description opens with a specific verb and resource: 'Generate ready-to-use proxy endpoint strings (credentials included) from one of the account's active proxy services'. It also lists the covered proxy types and clearly separates this tool from sibling tools like list_proxies and proxy_locations by focusing on generation of endpoint strings.

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

Usage Guidelines4/5

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

Explicitly says 'Use list_proxies first to get the orderId, and proxy_locations for valid targeting codes,' giving clear sequencing and prerequisite guidance. It does not enumerate when to avoid this tool, but the prerequisite direction is clear enough to prevent improper use.

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

heal_parser_presetAInspect

Regenerate a preset's selectors now (the manual trigger for the automatic repair). Refetches the source page and adopts new selectors ONLY if they extract more than the current ones — a heal that finds nothing better leaves the preset untouched and is not billed.

ParametersJSON Schema
NameRequiredDescriptionDefault
forceNoBypass the cooldown between heals
preset_idYesThe preset id

TDQS

A4.3/5.0
Behavior5/5

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

The description goes well beyond the annotations by disclosing that the tool refetches the source page, only adopts new selectors if they extract more than current ones, leaves the preset untouched otherwise, and is not billed in that case. This is meaningful behavioral context that the annotations (readOnlyHint false, destructiveHint false, openWorldHint true) do not provide.

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 a single, well-structured sentence that front-loads the action and then packs in the key behavioral, conditional, and billing details. Every clause earns its place with no repetition or 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 mutation tool with full schema coverage, the description explains the trigger, the refetch behavior, the acceptance condition, and the billing consequence. No output schema exists, but the description sufficiently conveys what will happen for an agent to decide and invoke 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%, so both `preset_id` and `force` are already documented in the input schema. The description does not add anything about parameter meanings beyond the schema, so it does not need to compensate. Baseline 3 is appropriate.

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 starts with a specific verb and resource: 'Regenerate a preset's selectors now'. It clarifies this is the manual trigger for the automatic repair, which distinguishes it from any automatic repair process and from sibling tools like save_parser_preset or generate_parser. The `heal` framing and the condition about adopting selectors only if they extract more makes the tool's unique role unmistakable.

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 implies usage context by calling this 'the manual trigger for the automatic repair', so an agent can infer it is for manually forcing a repair that would otherwise happen automatically. However, it does not explicitly state when to prefer this over alternatives, nor does it mention any conditions or exclusions beyond the improvement check.

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

list_collectorsA
Read-onlyIdempotent
Inspect

List the ready-made Collectors: paid, versioned scrapers you run with a semantic input (keyword + location, place id, product id, domain…) instead of URLs — e.g. web_search, search_images, search_videos, keyword_ideas, amazon_search, amazon_product, ebay_search, aliexpress_search, linkedin_jobs, indeed_jobs, reddit_posts, youtube_search, youtube_channel, instagram_profile, tiktok_profile, tiktok_video, linkedin_profile, linkedin_company, zillow_search, zillow_property, app_store_apps, app_store_reviews, google_play_apps, google_maps_places, place_reviews, google_jobs, google_news, google_shopping, product_offers, hotels, google_flights, google_events, google_trends, google_autocomplete, google_lens, youtube_video, ebay_product, flipkart_search, idealista_search, kleinanzeigen_search, autotrader_search, github_repos, hacker_news, coingecko_coins, wikipedia_articles, yahoo_finance, stackoverflow, steam, npm_packages, sec_filings, defillama, wayback_machine, clinical_trials, certificate_transparency, wikidata, nvd_cve, openfda, openalex, pypi_packages, exchange_rates, gleif_lei, docker_hub, crates_io, world_bank, openlibrary_books, arxiv_papers, weather_forecast, whois_domain, dns_records, itunes_search, local_business_leads, site_contacts, company_profile, business_directory. Returns each collector's slug, input/output schema, example input, price per delivered result and current health. Billing is pay-per-success: only delivered rows are charged.

ParametersJSON Schema
NameRequiredDescriptionDefault
categoryNoOptional category filter (e.g. 'local', 'ecommerce', 'jobs', 'news', 'travel', 'leads', 'finance', 'dev', 'gaming', 'osint', 'research', 'classifieds', 'knowledge')

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare read-only, idempotent, and non-open-world behavior. The description adds the return fields (slug, input/output schema, example input, price, health) and the pay-per-success billing model, which are not conveyed by the annotations.

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

Conciseness2/5

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

The description is a single unwieldy paragraph with dozens of example collector names, which buries the key facts. While the examples provide useful context, the length hurts scannability and the structure is not front-loaded beyond the first sentence.

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 list tool with one optional filter and no output schema, the description adequately covers what is returned, the billing model, and the nature of the collectors. A formal return type or pagination behavior would be nice but is not essential here.

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 schema fully documents the optional category parameter with examples (100% coverage). The description adds nothing about the parameter itself, so 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?

The description opens with a specific verb and resource ('List the ready-made Collectors') and then defines what Collectors are with concrete examples. This clearly distinguishes it from siblings like run_collector, scrape, or list_parser_presets.

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?

The description explains that Collectors are run with a semantic input instead of URLs, which implies when this tool is useful for discovering them. However, it does not explicitly state when to use this over alternatives or mention exclusions, leaving some inference to the agent.

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

list_parser_presetsA
Read-onlyIdempotent
Inspect

List your stored parser presets with their version, health stats and changelog.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint and idempotentHint, and the description is consistent with those. It adds some useful context about the response contents (version, health stats, changelog), but does not mention pagination, ordering, or any operational quirks. No contradiction with annotations.

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 a single efficient sentence with no filler. The action and key output details are front-loaded, making it easy for an agent to parse quickly.

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 zero-parameter, read-only, idempotent list tool with no output schema, the description gives enough to invoke it correctly: what is listed and what fields are returned. There are no serious gaps for this level of complexity.

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 input schema has zero parameters, so there are no parameter semantics to document. The description focuses on the output instead, which is appropriate for a parameterless list operation. This aligns with the baseline for 0-param tools.

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 ('List'), names the exact resource ('your stored parser presets'), and states the included fields (version, health stats, changelog). This makes the tool's purpose immediately clear and distinguishes it from other parser-related siblings.

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 implies this tool should be used for getting an inventory/overview of stored presets, but it does not explicitly state when it should be used over alternatives like parser_preset_stats or save_parser_preset. This is acceptable but leaves routing to inference.

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

list_proxiesA
Read-onlyIdempotent
Inspect

List the account's proxy services of every type — Residential Basic/Premium/Private, Mobile, Mobile V2, Datacenter (static or traffic-based), ISP, IPv6 — with plan type, bandwidth left, expiry, whitelisted IPs and the orderId to pass to generate_proxies. Call this first to see which proxy plans are available.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax services returned (default 50)
activeNotrue: only non-expired services (recommended). false: only expired. Omit for all.
offsetNoPagination offset (default 0)
planTypeNoOnly services of this plan type

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and idempotentHint, so the safety profile is covered. The description adds useful behavioral context by specifying the breadth of the list and the key output fields, including the orderId needed downstream. It does not cover pagination behavior, but the schema documents the relevant parameters.

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 with no filler. The core action and scope are front-loaded, followed by the useful downstream pointer. Every clause earns its place.

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 read-only listing tool with no output schema, the description compensates well by naming the returned fields, enumerating proxy types, and explaining why an agent should call it first. Combined with the fully documented optional parameters and safe annotations, nothing essential 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 description coverage is 100%, with all four parameters already clearly explained and the planType enum fully listed. The description adds no additional parameter-level meaning beyond contextualizing the orderId in the output, so the baseline score of 3 is appropriate.

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 ('List') with a precise resource ('the account's proxy services'), enumerates all covered types, and lists the returned fields. It clearly differentiates itself from siblings like generate_proxies by explicitly naming that tool as the follow-up consumer of the returned orderId.

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?

The description gives clear context with 'Call this first to see which proxy plans are available' and ties directly to generate_proxies. It does not mention exclusions or alternative tools for proxy locations, but the intended sequencing is explicit enough for an agent.

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

mapA
Read-only
Inspect

Discover a site's URLs fast (robots.txt sitemaps + /sitemap.xml + homepage links) without a full crawl. Returns up to limit URLs (default 100) plus the site-wide total and a per-section summary (e.g. '/blog': 1988) so you see the site's shape without the full list. Narrow with search (substring filter — the primary way to find specific pages) or set group_by 'path' for the path tree with counts instead of URLs.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesThe site URL to map
limitNoMax URLs returned (default 100). `total`/`summary` always cover the whole site.
searchNoOnly return URLs containing this substring — use this to narrow before raising limit
group_byNopath: return the path tree with per-prefix counts instead of the flat URL list
includeSubdomainsNoInclude subdomains of the seed host

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already mark readOnlyHint and openWorldHint as true, and the description adds valuable behavioral context: the URL discovery sources, default limit, return of `total` and `summary`, and the `group_by` path-tree mode. It goes beyond annotations by describing the output shape and narrowing semantics.

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 front-loaded with the core purpose and uses three focused sentences. It packs return-shape details and parameter guidance without redundancy, though it is slightly dense in the middle.

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?

Given no output schema, the description adequately explains what the tool returns (limit, total, summary, path tree). It covers the main behaviors and parameter semantics, but does not mention any rate limits or auth needs; for a read-only mapping tool this is a minor gap.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3. The description adds meaningful semantic detail beyond the schema, particularly for `search` ('substring filter — the primary way to find specific pages') and `group_by` ('path tree with counts instead of URLs').

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: 'Discover a site's URLs fast' using robots.txt/sitemaps/homepage links. Explicitly differentiates from a full crawl, which distinguishes it from the sibling crawl tool.

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?

Offers clear guidance: use map for fast URL discovery without a full crawl. It also explains when to use the `search` parameter as the primary way to find specific pages, giving the agent actionable routing criteria.

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

parser_preset_statsA
Read-onlyIdempotent
Inspect

How well a stored parser is still working: success rate per field, mean coverage over the recent runs, and whether it now counts as decayed (i.e. the site probably changed).

ParametersJSON Schema
NameRequiredDescriptionDefault
preset_idYesThe preset id returned by save_parser_preset

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 and idempotentHint=true, so the safety profile is covered. The description adds valuable behavioral detail beyond that: it computes success rate, mean coverage, and a decayed flag, and even explains the practical meaning of decayed ('the site probably changed'). This goes beyond the structured annotations.

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, well-structured sentence that opens with the core purpose and then lists the specific metrics after a colon. There is no filler, repetition, or unnecessary detail.

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 one-parameter read-only tool, the description conveys the essential output semantics: success rate per field, mean coverage, and decayed status. It does not specify exact return field names or the exact window for 'recent runs', but overall it gives an agent enough context to call the tool and interpret the result.

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 is fully documented at 100% coverage, with preset_id described as 'The preset id returned by save_parser_preset'. The tool description itself does not expand on the parameter, but because the schema already covers it, the baseline of 3 is appropriate.

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

Purpose5/5

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

The description clearly identifies the resource (a stored parser preset) and the purpose (assessing how well it is still working). It names the specific output concepts—success rate per field, mean coverage, and decayed status—which distinguishes it from action-oriented siblings like heal_parser_preset and save_parser_preset.

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?

The description provides clear context for when this tool is relevant: checking whether a stored parser is still reliable or has decayed. It does not explicitly name alternatives or state when not to use it, but the health/status framing is sufficient for an agent to infer its role among sibling tools.

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

proxy_locationsA
Read-onlyIdempotent
Inspect

Discover valid geo-targeting values for a proxy plan type before calling generate_proxies: countries, states, cities, ASNs, or the full location tree (countries → regions → cities → ISPs). Use level 'tree' for Residential Premium / Mobile V2 slugs and ISP codes, or for the static datacenter gateway list; note the tree can be large.

ParametersJSON Schema
NameRequiredDescriptionDefault
levelNocountries (default) | states (needs country) | cities (needs country) | asns | tree (full location tree: residentialpremium, mobile/mobile_v2, datacenter)
stateNoCities only: filter by state
countryNoCountry code, required for states/cities, optional filter for asns
planTypeYesThe plan type to look up (same value as list_proxies planType)

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and idempotentHint, so the safety profile is covered. The description adds genuine behavioral context beyond annotations: the tree returns a hierarchy (countries → regions → cities → ISPs), is tied to specific plan categories, and can be large. This helps the agent anticipate response size and structure.

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, front-loads the core purpose, and every clause earns its place: the value categories, the generate_proxies relationship, the tree-level guidance, and the size warning. No redundancy or 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?

Given the rich schema, helpful annotations, and the tool's read-only lookup nature, the description is largely complete. It states what the tool returns, when to call it, and calls out the large-tree caveat. The absence of an output schema is partially mitigated by the description naming the returned value categories.

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 schema already documents all parameters. The description adds useful high-level context about level values and the tree's purpose, but it does not materially deepen parameter semantics beyond what the schema already provides. Baseline 3 is appropriate.

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 ('Discover') and a clear resource ('valid geo-targeting values for a proxy plan type'), and explicitly ties the tool to a downstream sibling ('before calling generate_proxies'). It also enumerates the exact kinds of values returned, which distinguishes it from proxy-generation and proxy-listing siblings.

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?

The description tells the agent when to use the tool ('before calling generate_proxies') and gives concrete sub-guidance on when to choose level 'tree' for specific plan types and for the datacenter gateway list. It does not explicitly name excluded cases or alternative sibling tools, but the usage context is clear enough.

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

run_collectorAInspect

Run a Collector by slug with a semantic input (see list_collectors for each collector's inputSchema and example). Short runs return the rows inline; long runs return 202 with a run_id + statusUrl — poll with collector_run_status. Results are billed per delivered row (never for failures). Set async true to force background execution.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYesCollector slug from list_collectors, e.g. 'google_maps_places'
asyncNoForce background execution and return a run_id to poll
inputYesInput fields matching the collector's inputSchema (e.g. { keyword: 'dentist', location: 'Austin, TX', max_results: 20 })

TDQS

A4.7/5.0
Behavior5/5

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

Adds substantial behavior beyond annotations: short runs return rows inline, long runs return 202 with run_id and statusUrl, results are billed per delivered row (never for failures), and async forces background execution. This complements the openWorldHint and readOnlyHint annotations effectively.

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 tightly written sentences with no filler. The action is front-loaded, followed by behavior, billing, and async guidance—each sentence earns its place.

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 tool with no output schema, the description explains the return contract (inline rows vs 202 + run_id/statusUrl), the polling path, billing, and async behavior. An agent has everything needed to call and follow up on the run.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3. The description adds a concrete input example, references list_collectors for per-collector inputSchema, and explains the async parameter's behavioral effect, going beyond the schema descriptions.

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: 'Run a Collector by slug with a semantic input.' It names the related tools list_collectors and collector_run_status, which clarifies its distinct role in the workflow.

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?

Provides clear context: consult list_collectors for the inputSchema and example, poll with collector_run_status after long runs, and set async true to force background execution. It does not explicitly contrast against alternative run/execute tools, but the collector-specific workflow is well defined.

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

save_parser_presetAInspect

Store a generated parser under a name so it can be reused by id. Scrape later with scrape's preset_id instead of repeating the selectors, and every run is scored per field — when the recent success rate decays (the site redesigned), the preset regenerates itself from source_url and bumps a version. Give it a source_url whenever you can: without one it can never self-heal.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesA name you'll recognise, e.g. 'amazon product page'
fieldsNoThe original field descriptions, so a self-heal regenerates the same shape
parserYesThe parser to store — normally the `parser` object returned by generate_parser
renderNoThe page needs a browser render to show its content
auto_healNoRegenerate automatically on decay (default true when source_url is set)
source_urlNoPage to relearn from when the parser decays — required for self-healing

TDQS

A4.2/5.0
Behavior4/5

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

Beyond the annotations, the description discloses a notable behavioral trait: every preset is scored per field, and on decay it automatically regenerates from `source_url` and bumps a version. It also warns that without `source_url` the preset can never self-heal. This adds genuinely useful runtime behavior context beyond the simple read/write hints.

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

Conciseness5/5

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

Three sentences, each earning its place: what the tool does, how it is used later, and the key self-healing caveat. The most actionable information (store, reuse, source_url) is front-loaded, with no filler or redundant restatement of the name or 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?

For a tool with six parameters and nested objects, the description covers the important behavioral consequences (self-healing, version bumps, inability to heal without source_url) while the schema covers parameter details. The only minor gap is that the return value is not explicitly described, but 'reused by id' strongly implies a preset id is returned, so the description remains adequately 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 100%, so the baseline is 3; the schema already documents `name`, `parser`, `fields`, `render`, `auto_heal`, and `source_url`. The description adds emphasis on `source_url` for self-healing, but that is already reflected in the schema. No significant new parameter meaning is introduced 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 opens with a specific verb and resource: 'Store a generated parser under a name so it can be reused by id.' This clearly distinguishes saving a preset from sibling tools like generate_parser, heal_parser_preset, and list_parser_presets. It also immediately conveys the post-condition (future reuse via preset_id).

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?

The description gives clear practical context: save a parser if you want to reuse it in scrape via `preset_id` instead of repeating selectors. It also advises providing `source_url` to enable self-healing. It does not explicitly contrast with heal_parser_preset, but the intended workflow is evident enough that no exclusions are needed.

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

scrapeA
Read-only
Inspect

Scrape a single web page through a residential proxy and return it as clean Markdown (or HTML/text). Uses a real Chrome TLS fingerprint by default and only spins up a headless browser if the page is bot-challenged. Optionally run structured extraction (CSS selectors) or AI extraction (natural-language prompt). Markdown keeps the complete page by default (content_mode 'smart': everything except nav/footer/cookie chrome, with GFM tables and absolutized links); to inspect a page's raw no-JS/SEO fallback use format 'html'.

ParametersJSON Schema
NameRequiredDescriptionDefault
tocNoPrepend a table of contents built from the page headings
urlNoThe page URL to scrape (optional only when you pass `html` to convert)
xhrNoRecord the page's XHR/fetch traffic (URL, method, status, response body) into payload.xhr. Forces a browser render. An SPA's own JSON API is usually far cleaner than its DOM — use this to DISCOVER the API, then fetch_resource to return it directly.
htmlNoConvert HTML you already have instead of fetching: no proxy bandwidth is used, and the full parser pipeline still applies. Pass `url` too if you want relative links absolutized.
modeNosummary: return only metadata (title, description, canonical, contentLength, status, engine, bytes) with no page content — use this when auditing pages instead of reading them
chunkNoSegment the output into payload.chunks[] for RAG/vector-DB ingestion — each chunk carries its heading path and token count. Fences and tables are never split.
queryNoWhat you are looking for on the page. Keeps only the relevant sections (BM25 scoring over blocks, headings preserved) — the way to read one fact off a huge page without spending its whole token budget.
engineNoauto (default): TLS tier, escalate to browser on block. tls: never escalate — exactly what a pure HTTP bot (no JS) sees, right for SEO checks. render: force browser.
formatNoOutput format (default markdown)
parserNoYour own parsing rules, as CSS selector lists — use these when you know the page and don't want to rely on heuristics. include: keep ONLY these subtrees (targeted extraction, e.g. ['article.post']). exclude: delete site-specific chrome we kept. keep: protect a section (sidebar, dialog, form) that smart mode would strip.
renderNoForce the headless browser (JS execution)
actionsNoOrdered browser interactions before capture (forces a render). Each is one object: {"click":"#sel"}, {"clickText":"Accept"} (click by visible text — dismiss a consent wall without knowing its CSS), {"type":{"selector":"#q","text":"shoes"}}, {"scroll":"bottom"}, {"wait":1000}, {"waitForSelector":".results"}. Add "optional":true to skip a miss, or "timeoutMs":N to bound one action.
cookiesNoCookies to send as name→value — the simple way to scrape behind a login
countryNoISO country code for the proxy exit, e.g. 'us'
extractNoStructured-extraction schema: { field: "css selector" | { selector, attr, all, fns } }. `fns` is a transform pipeline run on the value — e.g. { "price": { "selector": ".price", "fns": ["amount_from_string"] } } returns a number, not text. Functions: amount_from_string, amount_range_from_string, convert_to_float/int/str, trim, lower, upper, {regex_search|regex_find_all: "pat"}, {replace:{from,to}}, {join:","}, {select_nth:0}, length, unique, max, min, average, product.
formatsNoAdditional formats to return together in payload.formats, e.g. ['markdown','text']
ai_promptNoNatural-language instruction — the LLM turns the page into structured JSON
ai_schemaNoJSON Schema for deterministic AI extraction; returned under payload.ai.data
app_stateNoMine the page's own hydration state (Next.js __NEXT_DATA__, Nuxt, embedded JSON islands) into payload.metadata.appState. This is where SPAs keep the real data — prices behind a picker, stock, download counts, listings — even when the DOM shows only a shell, so it often answers the question without a browser render. true/'auto': pruned to the informative parts (recommended). 'raw': the complete blobs, up to 512KB.
preset_idNoRun a stored parser preset (see save_parser_preset) instead of passing `extract` selectors. Results land in payload.data exactly the same way, and the run is scored so the preset can detect decay and self-heal.
highlightsNoWith `query`: also return the N most relevant passages in payload.highlights
links_modeNoLink rendering. inline (default): [text](url). footnote: URLs moved to a numbered reference list at the end. strip: keep only the link text — cuts 30-48% of the tokens on link-dense pages when you only need the prose.
max_tokensNoCap the markdown at ~this many tokens, cutting at a section boundary (never inside a table or code block) and noting how much was omitted
frontmatterNoPrepend YAML front-matter (title, url, canonical, description, author, date) so the markdown is self-contained for RAG/Obsidian pipelines
images_modeNoinline (default) keeps ![alt](url); 'alt' keeps only alt text; 'strip' removes images
content_modeNosmart (default): whole page minus nav/footer/cookie chrome. article: Readability main article only (news/blogs). full: entire body as-is.
content_modesNoReturn several content scopes from ONE fetch under payload.contents (e.g. compare smart vs full)
include_linksNoReturn all de-duplicated absolute page links in payload.links
reveal_hiddenNoRender tier only: before capturing, open <details>/accordions and click through every tab, appending each revealed panel to the page. Use it for tabbed code samples or spec accordions where a plain render captures only the visible variant.
fetch_resourceNoRegex matched against the page's network requests: the first matching response's BODY becomes the result instead of the page HTML (e.g. '/api/products' to get an SPA's JSON directly). Forces a render. Fails with 504 if nothing matches.
summary_sectionsNoAppend 'Links on this page' / 'Images on this page' sections — handy when deciding the next hop

TDQS

A4.3/5.0
Behavior5/5

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

Beyond the readOnlyHint/openWorldHint annotations, the description reveals useful behavioral details: residential proxy use, Chrome TLS fingerprint default, browser escalation only when bot-challenged, the smart content_mode default, and the raw no-JS/SEO fallback via format 'html'. This gives an agent a genuine model of how the tool behaves at runtime.

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 dense but not bloated, front-loading the core action and output first. Each sentence adds meaningful context about defaults, render behavior, extraction, or format nuances, though the final sentence is a bit long.

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 tool with 31 mostly-optional parameters and no output schema, the description provides a strong high-level mental model while the schema supplies detailed parameter semantics. It does not enumerate every output payload, but the parameter descriptions compensate well, so the overall context is sufficient for correct invocation.

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?

Input schema coverage is 100%, so the schema carries most parameter meaning. The description still adds value beyond the schema, particularly by explaining that format 'html' is the raw no-JS/SEO fallback and by framing content_mode 'smart' as the default page-preserving behavior.

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 opens with a specific verb and resource: 'Scrape a single web page' and states the primary output ('clean Markdown (or HTML/text)'). It clearly distinguishes itself from site-level siblings like crawl and batch by emphasizing 'single' page.

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 a clear context: scraping a single page with proxy, TLS fingerprinting, and optional extraction. However, it does not explicitly say when to choose scrape over crawl, search, or map, or when not to use it, so the routing guidance is mostly implied rather than stated.

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

search_and_readA
Read-only
Inspect

Search the live web, fetch the top organic pages as clean Markdown, and return citation-ready numbered sources plus one token-bounded context string ready for an AI prompt. Use this when the goal is answering/researching, and use search when raw SERP structure or a specialized vertical is needed.

ParametersJSON Schema
NameRequiredDescriptionDefault
langNoSearch UI language, e.g. 'en' or 'it'
queryYesThe research/search query
top_nNoTop organic pages to fetch (default 3, max 5)
engineNoSearch engine (default google)
countryNoISO country code for search and proxy geo
max_tokensNoMaximum estimated tokens in the assembled context (default 8000)
fetch_contentNoFalse returns snippet-only context without fetching result pages

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already mark readOnlyHint=true and openWorldHint=true. The description adds meaningful behavioral context: live-web freshness, Markdown conversion, numbered citations, and token-bounded context assembly. It doesn't disclose all edge behaviors (e.g., fetch failures or citation formatting nuances), but for a read-only search tool this is sufficient and does not contradict annotations.

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, front-loaded with the core operation and output shape, followed by the usage distinction. Every sentence earns its place, and there is no redundant fluff.

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?

With no output schema, the description clearly explains what the caller receives: numbered sources and one token-bounded context string. It could add more detail on the exact format or behavior on sparse results, but the fully documented input schema, read-only annotation, and precise sibling comparison make this definition largely 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 100%, so the input schema already documents all seven parameters with defaults, ranges, and enums. The description indirectly reinforces top_n and max_tokens through 'top organic pages' and 'token-bounded context,' but it does not add substantial parameter-level meaning beyond what the schema provides.

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 names a specific verb and resource: 'Search the live web, fetch the top organic pages as clean Markdown, and return citation-ready numbered sources plus one token-bounded context string.' It clearly distinguishes itself from the sibling 'search' by contrasting raw SERP needs, so an agent can tell them apart immediately.

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

Usage Guidelines5/5

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

It explicitly states when to use the tool: 'Use this when the goal is answering/researching.' It also gives a clear exclusion: 'use `search` when raw SERP structure or a specialized vertical is needed.' This gives the agent both positive and negative usage guidance.

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

search_bulkA
Read-only
Inspect

Paginate ONE search query asynchronously and merge deduplicated organic results. Page-one AI Overview/PAA/Knowledge Graph/answer enrichments are retained; set render:true to request those Google JS blocks. Billed per page actually fetched, with unavailable pages refunded.

ParametersJSON Schema
NameRequiredDescriptionDefault
langNoUI language, e.g. 'en'
nfprNoDisable Google spelling correction
safeNoGoogle SafeSearch setting
uuleNoEncoded geo token or raw coordinates
queryYesThe search query to paginate
deviceNoSERP device shape
engineNoSearch engine (default google)
renderNoForce rendering to capture page-one Google JS enrichments
browserNoFetch-path browser identity
countryNoISO country code, e.g. 'us'
webhookNoPublic URL to POST the finished job to
locationNoSearch location, e.g. 'Milan, Italy'
wait_forNoRendered path CSS selector for late panels
max_pagesNoMax pages to fetch (1-10, default 5). Stops early when Google has no more pages.
search_typeNoVertical to paginate (default search)
google_paramsNoAdditional Google query parameters

TDQS

A4.6/5.0
Behavior5/5

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

Beyond the readOnlyHint and openWorldHint annotations, the description discloses asynchronous execution, deduplication, retention of page-one enrichments, the render requirement for JS blocks, and per-page billing with refunds for unavailable pages. These are meaningful behavioral details an agent could not infer from the annotations alone.

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

Conciseness5/5

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

Three sentences, front-loaded with the core operation, then enrichment behavior, then billing. Every sentence adds distinct value; no filler or restatement of 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?

The description covers the operation, billing, and enrichment behavior well, which is strong for an asynchronous tool. However, since there is no output schema, it does not mention what the actual response contains, such as a job handle or status reference, which is a relevant missing piece for an async flow.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, but the description adds extra meaning by explaining that render:true is needed for Google JS enrichments and that billing is per actually fetched page. This semantic context goes beyond the parameter names and schema comments.

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 leads with a specific verb and resource: 'Paginate ONE search query asynchronously'. It also defines the output behavior ('merge deduplicated organic results') and names retained SERP enrichments, making it distinct from synchronous or single-page search siblings without needing to open the 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?

The first sentence makes the intended use case clear: asynchronous pagination of a single query. The description also gives conditional guidance for render:true, but it does not explicitly name alternatives or state when not to use this tool versus search or search_and_read.

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

search_bulk_statusA
Read-onlyIdempotent
Inspect

Poll a bulk search job for progress and merged organic results. Polls are incremental: pass the previous response's nextCursor as since to receive only the organic results gathered after your last poll.

ParametersJSON Schema
NameRequiredDescriptionDefault
jobIdYesThe bulk search job id returned by search_bulk
sinceNoOrganic cursor from the previous poll's `nextCursor` — returns only newer results

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already establish readOnly and idempotent behavior. The description adds useful behavioral context beyond that: polling is incremental, `since` yields only new organic results, and the response merges results since the last poll. This tells the agent how repeated calls behave.

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 with no filler. The core purpose comes first, and the incremental polling nuance is explained immediately after, making it easy for an agent to parse.

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, read-only tool, the description covers how to initiate polling and how to continue polling incrementally. It omits terminal/error state details, but the annotations and schema provide enough safety and parameter context for correct invocation.

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

Parameters3/5

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

Schema coverage is 100%, so parameter meaning is already fully documented in the schema. The description adds a minor framing by tying `since` to the previous response's `nextCursor`, but this largely restates the schema description rather than introducing new semantic detail.

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 names an explicit action ('Poll'), a specific resource ('a bulk search job'), and what is returned ('progress and merged organic results'). This clearly distinguishes it from sibling status tools such as batch_status or crawl_status by focusing on bulk search.

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?

The description gives a concrete usage pattern: poll an existing bulk search job and advance incrementally by passing the previous `nextCursor` as `since`. It does not explicitly name when-not-to-use alternatives, but the schema's jobId provenance and the incremental polling instructions supply enough context.

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

seo_auditA
Read-only
Inspect

Audit a URL's SEO in one call: fetches it twice — as a pure HTTP bot (no JS) and fully rendered — and returns both views (title, description, canonical, h1, word count) plus the diff (JS-only content, changed title/description, canonical missing without JS) and bot-facing meta (robots, Open Graph, JSON-LD types). Use this instead of scraping manually when checking how a page indexes.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesThe page URL to audit
countryNoISO country code for the proxy exit, e.g. 'us'
no_renderNoSkip the rendered pass (cheaper — returns the no-JS view only, no diff)

TDQS

A4.4/5.0
Behavior5/5

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

The description discloses the dual-fetch behavior (pure HTTP and fully rendered), the exact return elements (title, description, canonical, h1, word count, diff, bot-facing meta), and the effect of the no_render parameter. This goes well beyond the readOnlyHint annotation and gives a precise mental model.

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 succinct but information-dense. It leads with the core purpose, then lists the outputs and diff, and ends with a usage hint. It avoids redundancy and each sentence adds value, though it could be slightly more streamlined by omitting parentheticals.

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?

Given there is no output schema, the description thoroughly covers what the tool returns (both views and diff) and the filtering options. It explains the dual-fetch logic and the bot-facing meta, providing enough context for an agent to decide when and how to call it. No critical aspects are 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?

The schema already fully documents all three parameters with descriptions (url, country, no_render). The tool description adds no additional meaning—e.g., it does not clarify the purpose of the country parameter or explain default behavior beyond what the schema states. Since coverage is 100%, baseline is 3 and no extra value is added.

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

Purpose5/5

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

The description clearly states the tool audits a URL's SEO in one call, specifying the resource (URL) and the action (audit). It distinguishes from manual scraping by offering a comprehensive alternative, making the purpose immediately obvious.

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 explicitly recommends using this tool instead of manual scraping when checking how a page indexes, providing a clear scenario. However, it does not compare against other sibling tools like 'scrape' or 'crawl', leaving some ambiguity about when to prefer this over those.

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

whitelist_ipA
Destructive
Inspect

Manage IP-auth whitelisting on a proxy service (Residential Basic, Datacenter, ISP, IPv6, Mobile): add or remove an IP, or list the current entries. A whitelisted machine uses the proxies without username/password — required for the Mobile V2 IP-auth proxy list. Residential Premium/Private use user:pass auth and don't need this.

ParametersJSON Schema
NameRequiredDescriptionDefault
ipNoThe IP to add/remove (required for add and remove)
ispNoMobile add: ISP code, e.g. 'tmobile'
ttlNoMobile add: sticky session TTL in seconds
cityNoMobile add: city slug
actionYesWhat to do with the order's whitelist
regionNoMobile add: region slug
stickyNoMobile add: keep the same IP per port
countryNoMobile add: geo targeting for the ports, e.g. 'us'
orderIdYesThe proxy service's orderId (from list_proxies)
protocolNoMobile add: protocol for the allocated ports
ports_countNoMobile add: number of ports to allocate

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true. The description adds context that whitelisted machines use proxies without credentials and that it's required for Mobile V2 IP-auth list, which clarifies the impact. No contradiction with annotations.

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 purpose, then the auth context. No unnecessary words.

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?

The description gives enough high-level context: what the tool does, when to use it, and which auth methods it applies to. The schema covers parameter details. It lacks explicit prerequisites like needing an existing order, but this is implied by orderId from list_proxies.

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 covers 100% of parameters with descriptions, so the description adds little beyond the schema. It provides context about the auth method that relates to orderId, but no new parameter-specific details.

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 clear verb (manage) and resource (IP-auth whitelisting) and specifies the actions (add, remove, list). It distinguishes from sibling proxy tools by focusing on whitelisting specifically.

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?

Provides explicit guidance on when to use (for IP-auth proxy types, required for Mobile V2) and when not (Residential Premium/Private with user:pass auth). This gives agents a clear decision rule.

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. Dates show when Glama detected each change.

  1. 25 tool updates
    • First observedbatch
    • First observedbatch_status
    • First observedcollector_run_status
    • First observedcrawl
    • First observedcrawl_status
    • First observedcreate_dataset
    • First observeddataset_status
    • First observedgenerate_parser
    • First observedgenerate_proxies
    • First observedheal_parser_preset
    • First observedlist_collectors
    • First observedlist_parser_presets
    • First observedlist_proxies
    • First observedmap
    • First observedparser_preset_stats
    • First observedproxy_locations
    • First observedrun_collector
    • First observedsave_parser_preset
    • First observedscrape
    • First observedsearch
    • First observedsearch_and_read
    • First observedsearch_bulk
    • First observedsearch_bulk_status
    • First observedseo_audit
    • First observedwhitelist_ip

Frequently Asked Questions

Discussions

No comments yet. Be the first to start the discussion!

Related MCP Connectors

Related MCP Servers

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

TDQS

A4.1/5.0
Disambiguation5/5

Each tool targets a distinct resource or action: single scrape, batch scrape, crawl, search, dataset creation, parser lifecycle, proxy management, and SEO audit. Even the five status pollers are clearly differentiated by job type and their descriptions explicitly state which job they poll, so an agent can reliably select the right tool.

Naming Consistency4/5

Most names follow a verb-first pattern (create_dataset, generate_parser, run_collector, save_parser_preset, whitelist_ip) and listing tools consistently use the 'list_' prefix. However, a few are noun-first (parser_preset_stats, proxy_locations, collector_run_status) and the status polling tool for collectors breaks the otherwise consistent '<job>_status' convention ('collector_run_status' instead of 'run_collector_status').

Tool Count3/5

At 25 tools, the set is at the upper edge of the 'heavy' range. The tools all serve distinct functions, reflecting a broad platform covering scraping, crawling, search, datasets, parsers, proxies, and SEO, but the count borders on overwhelming for an agent, and some consolidation (e.g., a generic async job status endpoint) could reduce the surface.

Completeness4/5

The tool surface covers the core data-extraction lifecycle well: discovery (map, search), acquisition (scrape, batch, crawl), structured extraction (generate_parser, save_parser_preset, parser stats/heal), proxy management, and result aggregation (datasets, collectors). Notable gaps are the absence of any cancellation/abort mechanism for long-running async jobs and no way to delete a parser preset, but these are minor for most workflows.