Skip to main content
Glama

Server Details

Turn any URL into clean Markdown and structured data. Scrape, crawl, search and extract.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Uptime
100.0% over 62 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

A4.2/5.0

Scored across 14 tools

Disambiguation5/5

Each tool targets a distinct resource or action: scrape for a single known page, batch for a supplied URL list, crawl for site discovery, map for URL listing, search for web queries, and specialized tools for assets, extraction, and feedback. Overlaps are explicitly disambiguated in descriptions (e.g. logo vs brand, images vs screenshot), so misselection is unlikely.

Naming Consistency5/5

All tool names are lowercase, single-token nouns/verbs, with a consistent snake_case _status suffix for background job readers (batch_status, crawl_status). There is no mixing of camelCase or vague verbs; the pattern is predictable throughout.

Tool Count5/5

14 tools is well-scoped for a web scraping and data extraction service, with each tool earning its place across discovery, fetching, extraction, asset retrieval, and feedback. No tool feels redundant or missing from the count perspective.

Completeness4/5

The surface covers the full lifecycle: discovery (map, search), fetching (scrape, batch, crawl), extraction (extract), assets (images, screenshot, brand, logo, styleguide), and feedback. Minor gaps exist for cancelling or listing background jobs, but core workflows are complete.

Available Tools

14 tools
batchBatchAInspect

Scrape a list of URLs you already have, such as pages found with map. Waits for the batch to finish and returns the first page of results in the same call, so a short list needs one call; read further pages, or a batch still running, with batch_status. Each URL scraped costs 1 credit.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlsYesThe URLs to scrape.
waitNoSeconds to wait for the batch before returning (default 45). 0 returns the batch id at once.
limitNoResults to return in this call (default 10).
maxCharsPerPageNoCut each page's markdown to this many characters; a cut page says so in data.truncated with its full length. Use it when results are too large for your context.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations declare readOnlyHint=false, openWorldHint=true, destructiveHint=false, so the agent knows this is not a pure read and may reach the open web. The description adds important behavior beyond that: it waits for the batch to finish, returns only the first page in the same call, routes further pages to batch_status, and discloses that each URL costs 1 credit. It does not cover authentication or rate limits, but the cost disclosure is a valuable addition.

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 with no waste: purpose first, then behavior and routing to batch_status, then cost. Front-loaded and appropriately sized.

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 batch-scraping tool with no output schema, the description covers purpose, usage, waiting behavior, pagination, and cost. It could say more about the return format (e.g., markdown pages), but the schema's maxCharsPerPage description partly compensates.

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

Parameters3/5

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

Schema coverage is 100%, so the schema already documents urls, wait, limit, and maxCharsPerPage completely. The description adds no parameter syntax or format details beyond that, so the baseline of 3 applies.

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

Purpose5/5

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

States a specific verb (scrape) and resource (list of URLs) and distinguishes itself from map (which finds URLs) and scrape (single URL) by implication. An agent can tell what this tool does without opening 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?

Names the source of URLs ('pages found with map') and gives an explicit alternative for reading further pages or a running batch ('batch_status'). It does not explicitly exclude single-URL scraping, but the 'list of URLs' framing makes the boundary clear.

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

batch_statusBatch statusA
Read-only
Inspect

Read a batch started with batch: its progress, and one page of results in the order the URLs were sent. When nextOffset is not null, pass it as offset to read the next page of results.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoResults to return in this call (default 10).
offsetNoPosition of the first result to return. Defaults to 0.
batchIdYesThe id returned by batch.
maxCharsPerPageNoCut each page's markdown to this many characters; a cut page says so in data.truncated with its full length. Use it when results are too large for your context.

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already carry the safety profile (readOnlyHint=true, destructiveHint=false, openWorldHint=true), so this is known to be a safe read. The description adds behaviors beyond that: results are returned one page at a time, in the order the URLs were sent, and the paging contract via nextOffset. It does not mention rate limits, auth, or terminal batch states.

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, no filler, and the what-is-it clause is front-loaded before the paging instruction. Every clause carries an actionable fact.

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

Completeness3/5

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

There is no output schema, so the description is the only place an agent can learn the return shape; it names progress, a page of results, and nextOffset, which covers the paging loop. However, it omits the rest of the payload (completion state, totals, data.truncated) that the agent must interpret to decide whether to keep polling, so it is only partially complete for a no-output-schema tool.

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

Parameters4/5

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

Schema description coverage is 100%, so the baseline is 3, but the description adds semantics the schema does not: the relationship between the returned nextOffset and the `offset` parameter, i.e., how the parameters chain across calls. It says nothing about `limit` or `maxCharsPerPage` beyond what the schema already states.

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 ('Read a batch') plus the concrete payload ('its progress, and one page of results'), and explicitly ties itself to the sibling that produced the input ('started with batch'). An agent can distinguish this from `batch` (the creator) and from `crawl_status` without opening either schema.

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

Usage Guidelines4/5

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

Gives an explicit conditional instruction for pagination: 'When nextOffset is not null, pass it as offset to read the next page of results.' This tells the agent exactly how to continue, but offers no guidance on when not to call it (e.g., completed/failed batches) or how it differs from other status siblings.

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

brandBrandA
Read-only
Inspect

A company's brand from its domain: logos for light and dark backgrounds, its colours, name, description and social profiles. Use it to answer what a company is or how it presents itself.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesThe company domain, e.g. stripe.com. A full URL works too.

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, openWorldHint=true, and destructiveHint=false, so the safety profile is handled externally. The description adds that data is derived from a domain and aggregates multiple asset types, but says nothing about caching, rate limits, or whether the domain must be resolvable. Adequate but not rich given annotations cover the core behavior.

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 the return contents front-loaded and the usage hint second; every clause earns its place and there is no filler.

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

Completeness4/5

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

With no output schema, the description usefully enumerates the returned fields (logos, colours, name, description, social profiles), covering the main completeness burden for a single-param read tool. It stops short of clarifying edge cases (missing brand, unrecognized domain) or overlap with the 'logo'/'styleguide' siblings.

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

Parameters3/5

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

Schema coverage is 100% and there is only one parameter, so the schema fully documents 'domain' including the URL-tolerance note. The description adds no syntax or format detail beyond what the schema provides, so the baseline 3 applies.

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

Purpose4/5

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

Names a specific resource (a company's brand) and enumerates the concrete contents it returns (logos for light/dark, colours, name, description, social profiles), which is clearer than a bare verb+noun. However, it does not distinguish itself from the sibling tools 'logo' and 'styleguide', which plausibly overlap, so an agent cannot fully disambiguate from structure alone.

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 second sentence gives a use case ('answer what a company is or how it presents itself'), which implies intent, but it names no alternatives and offers no when-not-to-use guidance. Given overlapping siblings like 'logo' and 'styleguide', explicit routing would have been valuable and is absent.

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

crawlCrawlAInspect

Discover and scrape the pages of a website as one background job, following its links from a starting URL. Returns a crawl id straight away; read progress and results with crawl_status. Each page scraped costs 1 credit, so set limit to what you need.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesThe site to start from.
limitNoMaximum pages to scrape.
maxDepthNoHow far from the seed to follow.

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare openWorldHint=true, readOnlyHint=false, destructiveHint=false. The description adds genuinely new operational context beyond those: the job is asynchronous ('returns a crawl id straight away') and each page consumed costs 1 credit, which tells the agent to budget the crawl. It does not cover failure behavior or rate limits, so not a 5.

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

Conciseness5/5

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

Three short sentences, correctly front-loaded: what it does, how to retrieve output, then the cost constraint. Every sentence carries distinct information and nothing is redundant.

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 still tells the agent the immediate return is a crawl id and where to follow up (crawl_status), and all three parameters are described. Minor gaps remain around error handling or authentication, but for a straightforward async crawl trigger this is close to complete.

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

Parameters4/5

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

Schema description coverage is 100%, so the baseline is 3. The description goes slightly beyond the schema by tying 'limit' to a concrete consequence (1 credit per page scraped, so set limit to what you need), which gives the agent a reason to tune that parameter rather than just its range.

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

Purpose4/5

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

States a specific verb and resource ('discover and scrape the pages of a website') plus the mode ('as one background job, following its links from a starting URL'), so the agent knows this is a recursive multi-page scrape. It does not explicitly distinguish itself from the single-page sibling (scrape) or the URL-listing sibling (map), which keeps it just short of a 5.

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?

Implies when to use it (whole-site coverage via link following) and points to crawl_status for reading progress and results. However it never states when NOT to use it or names a competing alternative (scrape, map, batch) explicitly, leaving the usage boundary to inference.

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

crawl_statusCrawl statusA
Read-only
Inspect

Read a crawl started with crawl: its progress, and one page of the scraped results. When nextOffset is not null, pass it as offset to read the next page of results.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoResults to return in this call (default 10).
offsetNoPosition of the first result to return. Defaults to 0.
crawlIdYesThe id returned by crawl.
maxCharsPerPageNoCut each page's markdown to this many characters; a cut page says so in data.truncated with its full length. Use it when results are too large for your context.

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, openWorldHint=true, destructiveHint=false, so safety is covered. The description adds genuinely new behavior beyond that: the call returns progress plus exactly one page of results, and the response carries a nextOffset sentinel (null = no more pages), which the agent needs to drive pagination.

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, no filler. The core capability (progress + one page) comes first, and the pagination instruction that governs repeated invocation follows it.

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 carries the return-value burden and does explain the shape (progress, one page, nextOffset sentinel). It is nearly sufficient; the truncation signal (data.truncated) and terminal-condition wording are left to the schema, which is acceptable but not ideal given 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?

Schema coverage is 100%, so baseline would be 3, but the description adds a cross-call relationship the schema cannot express: the value to pass as offset comes from the previous call's nextOffset. Offset/limit/maxCharsPerPage mechanics are otherwise left to the schema.

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

Purpose4/5

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

States a specific verb+resource ('Read a crawl') and ties the resource to its producer ('started with crawl'), so the agent can distinguish this status/read tool from the crawl starter. It does not explicitly contrast with the parallel batch_status sibling, leaving that differentiation to be inferred.

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 clear precondition (a crawl started with crawl) and an actionable loop rule for following pages via nextOffset→offset. It never states when NOT to use it or when batch_status is the right alternative, so it stops short of full alternative-routing.

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

extractExtractA
Read-only
Inspect

Pull specific fields out of one or more pages as JSON, shaped by a JSON schema or described in a prompt. Use it when you need values such as prices, names or dates rather than the whole page text.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlsYesThe URLs to extract from.
promptNoNatural-language description of what to pull.
schemaNoA JSON schema the result must conform to.
showSourcesNoReturn the list of URLs that were actually extracted.
showConfidenceNoFor each field, return a confidence score and the exact source passage the value was drawn from.
preferStructureNoKeep headings, lists and tables in the text handed to the model.

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, openWorldHint=true, and destructiveHint=false, so the safety profile is covered. The description adds that extraction is model-driven and constrainable by schema or prompt, but says nothing about cost, latency, rate limits, or failure behavior when a schema cannot be satisfied.

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 core action and followed immediately by the selection criterion. No filler or restated field names.

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

Completeness4/5

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

No output schema exists, but the description explains the return shape (JSON conforming to a provided schema, or prompt-derived) and that multiple URLs can be processed. Adequate for an agent to call correctly; only an edge case like schema-vs-prompt precedence is unaddressed.

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 six parameters are already documented in the schema. The description mentions the schema/prompt duality but adds no syntax, precedence, or interaction guidance (e.g., whether prompt and schema can be combined) beyond the structured fields.

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

Purpose4/5

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

States a specific verb+resource ('Pull specific fields out of one or more pages as JSON') and the two shaping mechanisms (JSON schema or prompt). It implicitly distinguishes itself from the scrape sibling by contrasting with 'the whole page text', though it never names the alternative tool.

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 clear when-to-use condition with concrete examples ('prices, names or dates rather than the whole page text'), which effectively routes the agent away from scrape/crawl for targeted value retrieval. No explicit when-not or named alternative, so it stops short of a 5.

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

feedbackRate a resultAInspect

Tell Hydrafetch whether an earlier result was accurate. Use it after a scrape, search or other call returns missing, wrong or blocked content, so it gets looked at; a good rating is welcome too. Pass the requestId from that call's usage block, or the URL it read.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlNoThe URL that call read, when the requestId is not to hand.
noteNoMore detail.
ratingYesgood or bad.
reasonsNoWhat was wrong, for a bad rating.
requestIdNousage.requestId from the call being rated.

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, destructiveHint=false, openWorldHint=false, and the description does not contradict them. It adds some behavioral context (submitting gets the issue 'looked at', and where to find the requestId), but says nothing about what happens after submission, whether feedback is idempotent, or any throttling.

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?

Three tight sentences, front-loaded with the purpose and then the trigger condition. 'A good rating is welcome too' is slightly conversational but carries real signal about the accepted input range.

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 5-param feedback tool with no output schema and full annotation coverage, the description covers what the tool does, when to call it, and where to get the identifiers. Only the post-submission effect is left implicit.

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 every parameter is already documented. The description restates the requestId/URL sourcing rather than adding new meaning, so it sits at the baseline of 3.

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: tell Hydrafetch whether an earlier result was accurate, i.e. rate a prior call's output. It also names the triggering siblings (scrape, search, other calls), so an agent can distinguish it from those tools without opening a 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?

Gives a clear trigger: use it after a scrape/search/other call returns missing, wrong or blocked content, and notes a good rating is also valid. It does not spell out a when-not condition or rate limits, but the usage context is unambiguous.

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

imagesImagesA
Read-only
Inspect

Harvest a page's images with their metadata, without rendering it. Cheaper than a screenshot and returns the source images rather than a picture of the page.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesThe page to harvest images from.

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare this tool read-only and non-destructive, so the safety profile is covered. The description adds useful behavioral context beyond the annotations: it does not render the page, and it returns source images with metadata. This gives the agent a clearer mental model of what invocation will and will not do.

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 with no wasted words. The core action is front-loaded, and the comparison to screenshot is placed second where it helps decision-making without bloating the description.

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 single-parameter, read-only tool with no output schema, the description is complete enough. It explains what the tool returns, how invocation behaves, and how it differs from a likely sibling. Nothing an agent needs to select or call this tool correctly 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?

The schema already documents the single url parameter with 100% coverage, so heavy description compensation is unnecessary. The description reinforces that the URL identifies a page to harvest images from, but it adds no new parameter-level detail such as formats, defaults, or constraints. 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 ('Harvest') and resource ('a page's images with their metadata'), and explicitly distinguishes itself from a screenshot by noting it returns source images rather than a rendered picture. This makes the tool's purpose unmistakable and differentiates it from the sibling tool screenshot.

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 guidance on when this tool is preferable to a screenshot: it is cheaper and returns source images rather than a visual representation. However, it does not explicitly mention when not to use it or name other alternatives among the siblings, so some selection context is left implied.

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

mapMapA
Read-only
Inspect

List the URLs on a website, found through its sitemap and links, without fetching their content. Use it to see which pages exist before choosing which to scrape.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesThe seed URL to map.
limitNoMax URLs to return.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, destructiveHint=false, and openWorldHint, so the safety profile is covered. The description adds substantive behavior beyond that: discovery is via sitemap and links only, with no content fetching, which tells the agent the operation is lightweight and non-rendering. It omits rate limits and output shape details.

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

Conciseness5/5

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

Two tight sentences; the purpose and its scope constraint are front-loaded and the second sentence handles usage. Zero wasted 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?

There is no output schema, so the description responsibly states the return is a list of URLs. Combined with full schema coverage and covering annotations, it is nearly complete, though it doesn't describe pagination/limit interaction or ordering of results.

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

Parameters3/5

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

Schema coverage is 100% and both params (url, limit) are documented in the schema itself, including the 1-5000 range. The description adds no syntax, format, or constraint detail beyond the schema, so the baseline of 3 applies.

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

Purpose5/5

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

States a specific verb (list) and resource (URLs on a website) and immediately clarifies the mechanism (sitemap and links) and the negative scope ('without fetching their content'). This contrasts cleanly with siblings like scrape and crawl that do fetch content.

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 when-to-use: 'see which pages exist before choosing which to scrape,' which effectively signals the scrape alternative and a discovery-first workflow. No explicit exclusions or edge cases (e.g., when to prefer search or crawl), so not a full 5.

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

scrapeScrapeA
Read-only
Inspect

Fetch one web page and return its main content as clean markdown, with optional HTML, links or structured data. Use it to read a page whose URL you already have. For many pages of one site use crawl; for a list of URLs use batch.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesThe URL to scrape.
formatsNoWhich outputs to return. Defaults to markdown.
preferStructureNoKeep headings, lists and tables as markdown. Default false optimises for raw content and can return unstructured text on marketing and listing pages. Turn on when the document structure matters, or retry with it if `structure` came back 'plain'.

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, openWorldHint and destructiveHint=false, so the safety profile is covered. The description adds useful context about the return shape (main content as clean markdown, optional HTML/links/structured data) that goes beyond the annotations. It does not mention rate limits, auth needs, or failure behavior, so it falls short of a 5.

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

Conciseness5/5

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

Three short sentences, front-loaded with the core purpose and output, followed by usage and routing. Every sentence earns its place with zero filler.

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

Completeness4/5

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

There is no output schema, so the description reasonably compensates by describing the return (clean markdown plus optional HTML/links/structured data) and the routing context for a three-sibling group. Pagination, errors and auth are not addressed, but for a simple single-page read tool this is close to 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 schema already documents url, formats and preferStructure thoroughly, including the 'structure came back plain' retry hint. The description's 'optional HTML, links or structured data' broadly restates the formats enum without adding syntax or defaults beyond what the schema provides, so the baseline 3 applies.

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

Purpose5/5

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

States a specific verb (fetch), a bounded resource (one web page), and the primary output (main content as clean markdown) plus optional variants. It explicitly distinguishes itself from crawl (many pages) and batch (list of URLs), so the agent can differentiate 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?

Gives explicit selection criteria: 'Use it to read a page whose URL you already have,' then names the two sibling alternatives crawl and batch with the conditions that select them (many pages of one site, list of URLs). Nothing is left to inference.

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

screenshotScreenshotAInspect

Render a page in a real browser and capture a PNG, returning its public URL. Use when the question is what the page looks like rather than what it says.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesThe URL to capture.
maxAgeNoReuse a stored screenshot younger than this many milliseconds. Defaults to 7 days, so a repeat returns the stored PNG without re-rendering and without applying waitFor. Pass 0 to force a fresh capture.
timeoutNoOverall time budget for the capture, in milliseconds.
waitForNoExtra milliseconds to let the page settle before capture.
fullPageNoCapture the whole scrollable page rather than the viewport.
viewportNoScreen size to render at. Defaults to desktop (1920x1080). Ignored when width or height are given.
viewportWidthNoExact viewport width in pixels. Overrides viewport.
viewportHeightNoExact viewport height in pixels. Overrides viewport. With fullPage the capture still extends to the full page height.

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare destructiveHint=false and openWorldHint=true, so safety is largely covered. The description adds that rendering happens in a real browser and that the result is a hosted PNG at a public URL, but it omits the persistent caching/storage side effect (readOnlyHint=false) that the schema alone explains.

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, zero filler, with the core action front-loaded before the usage cue. Nothing could be removed without losing information.

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

Completeness4/5

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

With no output schema, the description correctly states the return value (a PNG at a public URL), and the 8 parameters are fully covered by the schema. Only the caching/persistence behavior of the capture is left implicit.

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 every parameter (maxAge caching, timeout, waitFor, fullPage, viewport overrides) is already fully documented. The description adds no parameter-level meaning beyond that, which is the expected baseline.

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 ('Render a page in a real browser and capture a PNG') plus the return artifact ('its public URL'). This clearly separates it from sibling text-oriented tools like scrape, extract, and crawl.

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

Usage Guidelines4/5

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

Gives an explicit selection condition: 'Use when the question is what the page looks like rather than what it says.' That implicitly routes the agent away from scrape/extract, though it never names the alternative tool.

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

styleguideStyleguideA
Read-only
Inspect

A site's design tokens read from computed styles in a real browser: colours by role with contrast ratios, the dark theme colours when the site has one, the type scale, corner radius and button styling, how panels, the header bar and panel titles are drawn, plus ready-made CSS, Tailwind and shadcn/ui stylesheets. Values defined through CSS variables come back resolved to the hex actually painted. To recreate how a site looks rather than only its tokens, take a screenshot of the page too.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlNoOne page to read instead of the homepage, e.g. https://stripe.com/pricing.
domainNoThe domain to read, e.g. stripe.com, using its homepage. Send this or url.
maxAgeNoAccept a stored result no older than this many milliseconds. 0 reads fresh.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnly/openWorld/non-destructive, so the bar is lower, yet the description still adds meaningful behaviour: values are read from computed styles in a real browser and CSS variable references are returned resolved to the hex actually painted. It could say more about cache freshness semantics beyond the schema's maxAge note, but this is solid added context.

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

Conciseness4/5

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

Front-loaded with what is returned, then the resolution behaviour, then the screenshot alternative — a logical order. The middle sentence is dense but each clause describes a distinct part of the payload, so little is wasted.

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, so the description carries the full burden of explaining return values, and it does so comprehensively: colour roles, contrast ratios, dark theme, type scale, radius, component styling, and generated stylesheets. An agent knows exactly what it will get and when to call screenshot instead.

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

Parameters3/5

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

Schema description coverage is 100% and all three parameters (url, domain, maxAge) are documented there with examples and defaults. The description adds no parameter-level meaning, so the baseline 3 is correct.

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: read a site's design tokens from computed styles in a real browser, and enumerates the exact payload (colours by role, contrast ratios, dark theme, type scale, radius, button/panel styling, CSS/Tailwind/shadcn sheets). It is clearly distinguishable from siblings like brand, logo, or scrape.

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

Usage Guidelines4/5

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

Explicitly routes the agent to a sibling: use screenshot when the goal is recreating how a site looks rather than just its tokens. That is a real when-not condition, but it doesn't distinguish against other plausible neighbours such as brand or extract, so it falls short of full alternative coverage.

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

Tool Schema Changelog

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

  1. 3 tool updates
    • Changedbatch1 field changed
      • addedInput schema / properties / maxCharsPerPage
        Added value: +{
        +  "description": "Cut each page's markdown to this many characters; a cut page says so in data.truncated with its full length. Use it when results are too large for your context.",
        +  "maximum": 9007199254740991,
        +  "minimum": 500,
        +  "type": "integer"
        +}
    • Changedbatch_status1 field changed
      • addedInput schema / properties / maxCharsPerPage
        Added value: +{
        +  "description": "Cut each page's markdown to this many characters; a cut page says so in data.truncated with its full length. Use it when results are too large for your context.",
        +  "maximum": 9007199254740991,
        +  "minimum": 500,
        +  "type": "integer"
        +}
    • Changedcrawl_status1 field changed
      • addedInput schema / properties / maxCharsPerPage
        Added value: +{
        +  "description": "Cut each page's markdown to this many characters; a cut page says so in data.truncated with its full length. Use it when results are too large for your context.",
        +  "maximum": 9007199254740991,
        +  "minimum": 500,
        +  "type": "integer"
        +}
  2. 1 tool update
    • Addedfeedback
  3. 2 tool updates
    • Changedbatch2 fields changed
      • addedInput schema / properties / limit
        Added value: +{
        +  "description": "Results to return in this call (default 10).",
        +  "maximum": 25,
        +  "minimum": 1,
        +  "type": "integer"
        +}
      • addedInput schema / properties / wait
        Added value: +{
        +  "description": "Seconds to wait for the batch before returning (default 45). 0 returns the batch id at once.",
        +  "maximum": 55,
        +  "minimum": 0,
        +  "type": "integer"
        +}
    • Changedstyleguide4 fields changed
      • changedInput schema / properties / domain / description
        Previous value: -"The domain to read, e.g. stripe.com. A full URL works too."New value: +"The domain to read, e.g. stripe.com, using its homepage. Send this or url."
      • addedInput schema / properties / maxAge
        Added value: +{
        +  "description": "Accept a stored result no older than this many milliseconds. 0 reads fresh.",
        +  "maximum": 9007199254740991,
        +  "minimum": 0,
        +  "type": "integer"
        +}
      • addedInput schema / properties / url
        Added value: +{
        +  "description": "One page to read instead of the homepage, e.g. https://stripe.com/pricing.",
        +  "type": "string"
        +}
      • removedInput schema / required
        Removed value: -[
        -  "domain"
        -]
  4. 2 tool updates
    • Changedbatch_status2 fields changed
      • addedInput schema / properties / batchId / format
        Added value: +"uuid"
      • addedInput schema / properties / batchId / pattern
        Added value: +"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$"
    • Changedcrawl_status2 fields changed
      • addedInput schema / properties / crawlId / format
        Added value: +"uuid"
      • addedInput schema / properties / crawlId / pattern
        Added value: +"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$"
  5. 2 tool updates
    • Changedbatch_status2 fields changed
      • addedInput schema / properties / limit
        Added value: +{
        +  "description": "Results to return in this call (default 10).",
        +  "maximum": 25,
        +  "minimum": 1,
        +  "type": "integer"
        +}
      • addedInput schema / properties / offset
        Added value: +{
        +  "description": "Position of the first result to return. Defaults to 0.",
        +  "maximum": 9007199254740991,
        +  "minimum": 0,
        +  "type": "integer"
        +}
    • Changedcrawl_status2 fields changed
      • addedInput schema / properties / limit
        Added value: +{
        +  "description": "Results to return in this call (default 10).",
        +  "maximum": 25,
        +  "minimum": 1,
        +  "type": "integer"
        +}
      • addedInput schema / properties / offset
        Added value: +{
        +  "description": "Position of the first result to return. Defaults to 0.",
        +  "maximum": 9007199254740991,
        +  "minimum": 0,
        +  "type": "integer"
        +}
  6. 1 tool update
    • Changedextract2 fields changed
      • addedInput schema / properties / showConfidence
        Added value: +{
        +  "description": "For each field, return a confidence score and the exact source passage the value was drawn from.",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / showSources
        Added value: +{
        +  "description": "Return the list of URLs that were actually extracted.",
        +  "type": "boolean"
        +}
  7. 3 tool updates
    • Changedbatch1 field changed
      • changedInput schema / properties / urls / maxItems
        Previous value: -1000New value: +25000
    • Changedcrawl1 field changed
      • changedInput schema / properties / limit / maximum
        Previous value: -5000New value: +500
    • Changedsearch1 field changed
      • changedInput schema / properties / limit / maximum
        Previous value: -20New value: +15
  8. 4 tool updates
    • Addedbatch
    • Addedbatch_status
    • Addedcrawl
    • Addedcrawl_status
  9. 1 tool update
    • Changedscreenshot6 fields changed
      • addedInput schema / properties / maxAge
        Added value: +{
        +  "description": "Reuse a stored screenshot younger than this many milliseconds. Defaults to 7 days, so a repeat returns the stored PNG without re-rendering and without applying waitFor. Pass 0 to force a fresh capture.",
        +  "maximum": 9007199254740991,
        +  "minimum": 0,
        +  "type": "integer"
        +}
      • addedInput schema / properties / timeout
        Added value: +{
        +  "description": "Overall time budget for the capture, in milliseconds.",
        +  "maximum": 120000,
        +  "minimum": 1000,
        +  "type": "integer"
        +}
      • addedInput schema / properties / viewport
        Added value: +{
        +  "description": "Screen size to render at. Defaults to desktop (1920x1080). Ignored when width or height are given.",
        +  "enum": [
        +    "desktop",
        +    "laptop",
        +    "tablet",
        +    "mobile"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / viewportHeight
        Added value: +{
        +  "description": "Exact viewport height in pixels. Overrides viewport. With fullPage the capture still extends to the full page height.",
        +  "maximum": 2160,
        +  "minimum": 240,
        +  "type": "integer"
        +}
      • addedInput schema / properties / viewportWidth
        Added value: +{
        +  "description": "Exact viewport width in pixels. Overrides viewport.",
        +  "maximum": 3840,
        +  "minimum": 320,
        +  "type": "integer"
        +}
      • addedInput schema / properties / waitFor
        Added value: +{
        +  "description": "Extra milliseconds to let the page settle before capture.",
        +  "maximum": 30000,
        +  "minimum": 0,
        +  "type": "integer"
        +}
  10. 9 tool updates
    • First observedbrand
    • First observedextract
    • First observedimages
    • First observedlogo
    • First observedmap
    • First observedscrape
    • First observedscreenshot
    • First observedsearch
    • First observedstyleguide

Related MCP Connectors

Related MCP Servers

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources