Hydrafetch
Server Details
Turn any URL into clean Markdown and structured data. Scrape, crawl, search and extract.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
Available Tools
13 toolsbatchBatchARead-onlyInspect
Scrape a list of URLs you already have as one job. Returns a batch id straight away; read it with batch_status.
| Name | Required | Description | Default |
|---|---|---|---|
| urls | Yes | The URLs to scrape. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses the key asynchronous behavior beyond what annotations provide: it returns a batch id immediately and requires later polling via batch_status. The readOnlyHint and openWorldHint annotations are not contradicted by any wording.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences with no filler. The main action is front-loaded, and the follow-up polling mechanism is placed directly after, giving a clean and efficient structure.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given a single fully documented parameter, no output schema, and annotations that already cover the safety profile, the description is complete. It covers the essential flow: submit a list, get a batch id, then read via batch_status.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already fully describes the only parameter ('The URLs to scrape'), so the description adds limited semantic value. The phrase 'you already have' slightly clarifies that URLs are pre-existing rather than discovered, but this is a minor addition.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Scrape') on a specific resource ('a list of URLs') and adds the batch scope ('as one job'). It implies a distinction from crawl-style discovery with 'you already have,' but it does not explicitly name alternatives or differentiate from the single-URL 'scrape' sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly signals when to use this tool: when you already have a list of URLs to scrape. It also directs the user to batch_status for retrieving results, which is a concrete usage pointer. It does not explicitly state exclusions or alternative tools, but the 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.
batch_statusBatch statusARead-onlyInspect
Read a batch started with batch: how far it has got, and the results so far.
| Name | Required | Description | Default |
|---|---|---|---|
| batchId | Yes | The id returned by batch. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds that the call returns current progress and results-so-far, but gives no detail on output shape, pagination, or polling behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence conveys the operation, the object, and the key output without filler. Every phrase earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter, read-only status tool with a simple schema, the description covers the essential return value: progress and results so far. It does not enumerate output fields, but the complexity is low and no output schema exists, so this is sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the single batchId parameter already contains the description 'The id returned by batch.' The tool description adds no additional parameter semantics beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific action (read) and a specific resource (a batch started by the batch tool), and clarifies that it reports progress and partial results. This clearly differentiates it from the sibling tool 'batch', which starts batches.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It clearly ties usage to batches created by the 'batch' tool, so an agent knows when to call it. It does not explicitly mention alternatives like 'crawl_status' or state when not to use it, so it stops short of full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
brandBrandARead-onlyInspect
A company's brand from its domain: logos for light and dark backgrounds, its real colours, name, description and socials. Answers 'what is this company' far better than a raw page dump.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | The company domain, e.g. stripe.com. A full URL works too. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this as read-only, non-destructive, and open-world, so the description only needs to add behavioral detail beyond that. It does so by enumerating the returned brand elements and framing the output as a semantic answer rather than a raw dump. No contradictions with annotations are present.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no filler: the first lists the tool's output scope, and the second provides a concise comparative value statement. The key concept 'brand' appears immediately, making the description easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter read-only tool, the description sufficiently conveys what the caller gets and why it is useful, while annotations cover the safety profile. It does not specify output format or failure behavior, but with no output schema these are not critical gaps for this simple tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already documents the only parameter thoroughly, including an example and the note that a full URL works. The description only repeats the notion of 'domain' without adding new semantics, so a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the resource (a company domain) and the concrete returned attributes (logos, colours, name, description, socials), making the tool's purpose clear. It lacks an explicit verb like 'retrieve' and does not directly distinguish itself from the sibling 'logo' tool, but the 'company's brand' framing is specific enough.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'Answers what is this company far better than a raw page dump' implies using this tool when the goal is brand/company identity rather than raw scraping or screenshots. However, it never explicitly states when to use this tool versus the eight sibling tools or provides any exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
crawlCrawlARead-onlyInspect
Discover and scrape a whole site as one job. Returns a crawl id straight away; read it with crawl_status. Use this instead of calling scrape in a loop.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The site to start from. | |
| limit | No | Maximum pages to scrape. | |
| maxDepth | No | How far from the seed to follow. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool as read-only and non-destructive. The description adds the key behavioral trait that the tool returns a crawl id immediately and that results must be retrieved later via crawl_status. This is useful beyond the structured annotations, though it does not cover failure modes or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no filler. It front-loads the core purpose, then covers the return contract and the alternative usage pattern efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With strong schema coverage, safety annotations, and no output schema, the description tells the agent what the tool does, what it returns, and how to consume the result. That is sufficient for correct invocation and follow-up.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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, limit, and maxDepth. The description adds no parameter-specific meaning beyond framing the job as whole-site crawling, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Discover and scrape a whole site as one job.' It also distinguishes itself from the scrape sibling by saying 'Use this instead of calling scrape in a loop,' making the tool's role clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives an explicit when-to-use instruction with a named alternative: use this instead of calling scrape in a loop. It also tells the agent where to read results via crawl_status, so the consumption path is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
crawl_statusCrawl statusARead-onlyInspect
Read a crawl started with crawl: how far it has got, and the pages it has scraped.
| Name | Required | Description | Default |
|---|---|---|---|
| crawlId | Yes | The id returned by crawl. |
TDQS
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 useful behavioral detail about what the call returns: progress and scraped pages. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler. It efficiently communicates the action, the target resource, and the key output information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-parameter, read-only status tool, the description is sufficient: it names the input, the purpose, and the high-level output. It could mention specific status fields or edge cases, but this is not essential for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and crawlId is already documented as 'The id returned by crawl.' The description does not need to add parameter-level meaning, so a baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Read') and resource ('a crawl'), and clearly ties it to the crawl operation by saying 'started with crawl'. This distinguishes it from siblings like crawl, scrape, and batch_status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is used after starting a crawl, which gives clear context for when to call it. It does not explicitly exclude alternatives like batch_status, but the reference to 'a crawl started with crawl' is enough to route an agent correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
extractExtractARead-onlyInspect
Pull typed structured data from one or more URLs by JSON schema or prompt.
| Name | Required | Description | Default |
|---|---|---|---|
| urls | Yes | The URLs to extract from. | |
| prompt | No | Natural-language description of what to pull. | |
| schema | No | A JSON schema the result must conform to. | |
| preferStructure | No | Keep headings, lists and tables in the text handed to the model. |
TDQS
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 mild behavioral context by noting it works across multiple URLs and supports two specification modes, but it does not disclose output format, error behavior, rate limits, or access requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, tight sentence with no filler. It front-loads the core action and object ('Pull typed structured data') and includes the key invocation alternatives, earning its place without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given four parameters, no output schema, and nested objects, the description is minimally adequate but leaves room for more: it does not clarify what the returned structured data looks like, how `preferStructure` affects behavior, or how to choose between `schema` and `prompt`. The parameter schema compensates for parameter detail, but the description itself is thin.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameters are already documented in the input schema. The description adds only the high-level idea that extraction can be driven by a JSON schema or a natural-language prompt, matching the `schema` and `prompt` parameters, but it does not add meaning beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Pull') and resource ('typed structured data from one or more URLs') and names the two modes of invocation: JSON schema or prompt. This makes the tool's purpose clear and implicitly distinguishes it from sibling tools like `scrape`, though it never explicitly names an alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use this tool: when structured, typed data is needed from URLs, specified either by schema or natural-language prompt. However, it provides no explicit guidance about when not to use it, no mention of alternatives among siblings, and no clarification of when to prefer `schema` over `prompt`.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
imagesImagesARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The page to harvest images from. |
TDQS
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.
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.
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.
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.
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.
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.
logoLogoARead-onlyInspect
A company's logo as a directly embeddable image URL, chosen for the background you name. Use this rather than brand when the mark is all you need — it costs a fifth as much and returns one asset instead of the whole record.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | The square mark, or the full logotype. Defaults to icon. | |
| theme | No | The background the logo will sit on. Defaults to light. | |
| domain | Yes | The company domain, e.g. stripe.com. A full URL works too. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnly and non-destructive behavior. The description adds useful behavioral context: the result is a directly embeddable image URL, the logo is selected for the named background, and only one asset is returned rather than a full record. This goes beyond the annotation baseline without contradicting it.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no filler. The first sentence states the core value and output form; the second delivers the usage decision and cost/benefit comparison. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only tool with fully documented parameters and helpful annotations, the description covers what an agent needs: the output type, the background-dependent behavior, and the distinction from the closely related sibling. The absence of an output schema is acceptable because the description names the return format directly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 three parameters. The description adds modest contextual meaning by mentioning 'background you name' (echoing theme) and 'mark' (echoing icon vs full logotype), but it does not materially expand parameter understanding beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool's output as a company logo image URL and ties it to a background choice. It also explicitly contrasts with the sibling brand tool ('Use this rather than brand'), so an agent can distinguish it without inspecting schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit selection guidance: use it instead of brand when only the mark is needed, and cites concrete benefits (lower cost, single asset returned). This is actionable and names the alternative directly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mapMapARead-onlyInspect
Enumerate a site's URLs from its sitemap and links, without scraping them.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The seed URL to map. | |
| limit | No | Max URLs to return. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=true, and destructiveHint=false, covering the safety profile. The description adds a meaningful behavioral detail: the tool uses sitemaps and links to discover URLs, and it does not scrape content. This clarifies the method and scope, going beyond what annotations state.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, tightly packed sentence that delivers the core purpose and a key constraint ('without scraping them') up front. There is no filler or redundancy; every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple enumeration tool with two parameters and no output schema, the description is adequately complete. It specifies the input (URL), the output concept (URLs), and the discovery method. The only minor gap is that it does not describe the exact output format (e.g., list vs. array), but this is not critical for calling the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% (both 'url' and 'limit' have descriptions). The tool description repeats some schema info ('from its sitemap and links') but adds no syntax, format, or edge-case details beyond what the schema already provides. Baseline 3 is appropriate given full schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Enumerate') with a clear resource ('a site's URLs') and method ('from its sitemap and links'). It explicitly distinguishes itself from scraping ('without scraping them'), which differentiates it from the sibling 'scrape' tool. This is a precise and unambiguous statement of the tool's function.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'without scraping them' implies the tool is for URL enumeration rather than content extraction, but it does not explicitly name alternatives or state when to prefer this tool over siblings like 'scrape' or 'extract'. The guidance is implied rather than direct, 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.
scrapeScrapeBRead-onlyInspect
Turn a URL into clean, LLM-ready markdown and structured data.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The URL to scrape. | |
| formats | No | Which outputs to return. Defaults to markdown. | |
| preferStructure | No | Keep 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already decare readOnlyHint=true and destructiveHint=false, covering the safety profile. The description adds a little context by stating the output is 'clean, LLM-ready markdown and structured data,' but it does not disclose behaviors like rate limits, failure modes, or authentication needs. Since annotations cover the main safety concerns, a 3 is appropriate; the description adds minimal extra behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with zero filler. It front-loads the core value proposition (URL to markdown/structured data) and does not bury important details. This is appropriately concise for a tool with a straightforward purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 3 parameters, no output schema, and annotations that define safety, the description is minimally sufficient. It tells the agent what the tool does, but it does not mention that multiple output formats can be requested or that there is a preferStructure option — though those are documented in the schema. With no output schema, a sentence hinting at available output types (beyond 'markdown and structured data') would strengthen completeness, but it is not critically incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% — all three parameters (url, formats, preferStructure) have descriptive text in the schema itself. The description does not elaborate on any parameter or add syntax or format details beyond the schema. With full schema coverage, the baseline is 3, and the description adds no additional semantic value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a verb ('Turn') and a specific resource (a URL) producing markdown and structured data. It is not a tautology and gives a concrete outcome. However, it does not explicitly differentiate itself from sibling tools like 'extract' or 'search,' which likely have overlapping purposes, so it misses the top score for sibling distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this tool versus its siblings (brand, extract, images, logo, map, screenshot, search, styleguide). It does not mention scenarios, exclusions, or alternatives. With several closely related tools available, this is a significant gap for correct selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
screenshotScreenshotARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The URL to capture. | |
| maxAge | No | 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. | |
| timeout | No | Overall time budget for the capture, in milliseconds. | |
| waitFor | No | Extra milliseconds to let the page settle before capture. | |
| fullPage | No | Capture the whole scrollable page rather than the viewport. | |
| viewport | No | Screen size to render at. Defaults to desktop (1920x1080). Ignored when width or height are given. | |
| viewportWidth | No | Exact viewport width in pixels. Overrides viewport. | |
| viewportHeight | No | Exact viewport height in pixels. Overrides viewport. With fullPage the capture still extends to the full page height. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool read-only and non-destructive. The description adds useful behavioral context: it launches a real browser (implying JavaScript execution) and returns a publicly accessible URL. Caching and freshness behavior are left to the schema's maxAge documentation, which is acceptable given the annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences front-load the action and output, then provide the usage context. Every sentence earns its place, and there is no repetition of schema or annotation content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only rendering tool, the description covers what it produces, how it produces it, and when to use it. With no output schema, mentioning the PNG and public URL return shape is valuable, and the rich input schema covers the parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with detailed parameter explanations covering defaults, units, overrides, and cache semantics. The description itself adds no parameter-level meaning, but it does not need to because the schema carries that burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: render a page in a real browser, capture a PNG, and return a public URL. It also distinguishes itself from text-oriented siblings by contrasting visual appearance ('what the page looks like') with content ('what it says').
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a clear decision rule: use when the question is visual rather than textual. This helps an agent choose it over extract/scrape-style tools, but it does not explicitly name alternatives or state when not to use it, so it falls just short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
searchSearchBRead-onlyInspect
Search the web and return ranked results: title, url and snippet. Set scrapeResults to also fetch each result as markdown, at 1 extra credit per page.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (default 5). | |
| query | Yes | The search query. | |
| scrapeResults | No | Also scrape each result to markdown, 1 extra credit per page (default false). | |
| preferStructure | No | Keep headings, lists and tables in each scraped result. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, and destructiveHint, so the safety profile is covered. The description adds useful behavioral context about ranked results and the extra credit cost of scrapeResults, but does not disclose pagination behavior, query limitations, or the dependency of preferStructure on scrapeResults.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no filler. It front-loads the core purpose and output format, then adds the optional scraping behavior and cost in a clear, compact way.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description adequately names the return fields (title, url, snippet). However, it lacks guidance on when to choose this tool over siblings, does not explain how preferStructure relates to scrapeResults, and omits any mention of pagination or result ordering beyond 'ranked'.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 adds value beyond the schema by explaining that scrapeResults fetches each result as markdown and costs 1 extra credit per page, which is not present in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool searches the web and returns ranked results with title, URL, and snippet. It is specific about the resource and output format, though it does not explicitly differentiate itself from sibling tools like images or extract.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives such as images, map, extract, or scrape. It mentions the scrapeResults option but does not explain when a user should prefer search over sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
styleguideStyleguideARead-onlyInspect
A site's design system read from computed styles in a real browser: colours by role with contrast ratios, the type scale, corner radius and button styling. Values defined through CSS variables come back resolved to the hex actually painted.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | The domain to read, e.g. stripe.com. A full URL works too. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark readOnlyHint=true and destructiveHint=false, so the agent knows it's safe. The description adds value by explaining that values defined in CSS variables are returned resolved to the hex actually painted, and that it runs in a real browser, which are non-obvious behavioral details. It doesn't go into rate limits or auth, but for a read-only tool this is solid.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, dense with information, no fluff. The first sentence states what it does and what it returns; the second clarifies an important technical detail about CSS variables. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only inspection tool with one parameter, this is complete. It sets expectations about the output (design tokens), the environment (real browser), and the edge case (CSS variables resolved). Nothing critical is missing for an agent to decide whether to call it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers the single 'domain' parameter well (100% coverage). The description reinforces that it accepts a domain like 'stripe.com' and a full URL also works, which adds a bit beyond the schema's example. It could be argued to be a 3, but since there's only one param and the description disambiguates the input format, it edges to a 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it reads a site's design system from computed styles in a browser, and goes beyond a generic label by itemizing what is returned: role colors with contrast ratios, type scale, corner radius, and button styling. It differentiates itself from siblings like 'screenshot' or 'scrape' by specifying it's about design tokens even though those siblings aren't named, the distinctive focus on computed CSS variables makes it stand out.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It's clear the tool is for inspecting a site's design system, not for taking a screenshot or extracting content. It mentions it runs in a real browser and resolves CSS variables, implying it's for accurate read-only style inspection. However, it doesn't explicitly state when not to use it, like when a simple screenshot suffices, nor name an alternative sibling like 'extract' for data extraction.
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.
4 tool updates
- Added
batch - Added
batch_status - Added
crawl - Added
crawl_status
1 tool update
- Changed
screenshot6 fields changed- added
Input schema / properties / maxAgeAdded 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" +} - added
Input schema / properties / timeoutAdded value: +{ + "description": "Overall time budget for the capture, in milliseconds.", + "maximum": 120000, + "minimum": 1000, + "type": "integer" +} - added
Input schema / properties / viewportAdded 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" +} - added
Input schema / properties / viewportHeightAdded 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" +} - added
Input schema / properties / viewportWidthAdded value: +{ + "description": "Exact viewport width in pixels. Overrides viewport.", + "maximum": 3840, + "minimum": 320, + "type": "integer" +} - added
Input schema / properties / waitForAdded value: +{ + "description": "Extra milliseconds to let the page settle before capture.", + "maximum": 30000, + "minimum": 0, + "type": "integer" +}
9 tool updates
- First observed
brand - First observed
extract - First observed
images - First observed
logo - First observed
map - First observed
scrape - First observed
screenshot - First observed
search - First observed
styleguide
Frequently Asked Questions
Claiming proves that you control a remote MCP connector. It does not move, proxy, or interrupt the server.
Open the connector listing, choose Claim ownership, and sign in to Glama.
Complete one verification method:
GitHub identity — fastest for official registry listings. For a namespace such as
io.github.alice/server, link the matching GitHub user, then choose Claim with GitHub. An organization namespace such asio.github.acme/serveralso needs that organization to have installed the Glama AI GitHub App and approved its permissions, because GitHub discloses organization membership only to apps it has installed. Use HTTP or DNS when it has not.HTTP challenge — works when you can deploy a public file. Generate a token, publish the exact JSON Glama shows at
/.well-known/glama.jsonon the same origin as the connector, then choose Check HTTP challenge.DNS challenge — works when you control DNS but cannot change the server. Generate a token, create the exact TXT record Glama shows, wait for it to propagate, then choose Check DNS challenge.
After verification, Glama sends a confirmation email and gives you access to listing details, thumbnails, health checks, and analytics. Keep the HTTP file or DNS record in place: Glama periodically checks it and ownership remains verified while the token is discoverable.
The HTTP ownership file has this structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"claim": "glama_claim_..."
}Claim tokens are opaque, stable, and bound to the signed-in Glama account. They contain no email address or other personal information. If Glama can no longer discover a verified HTTP or DNS token, it starts a seven-day grace period before removing claim-based access. Restore the same token during that period to keep ownership verified. Never publish an email address, Glama session token, GitHub token, or connector credential as ownership proof.
If verification fails, confirm that you copied the current token exactly. The HTTP file must be public, return valid JSON with a successful HTTP response, and stay on the connector's origin. DNS changes may need more time to propagate. A claim cannot transfer to a different origin or hostname: if the connector target changes, Glama starts the grace period and the new target must be claimed separately after the previous claim is released.
For a connector linked to the official MCP Registry, registry updates continue to replace its name, description, and URL by default. After claiming, open Manage connector and enable Use Glama listing details as the source of truth if edits made on Glama should be preserved. Categories and thumbnails are always managed on Glama; registry linkage and technical connection settings continue to sync.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
To improve your MCP server's ranking:
Claim ownership of the server listing
Complete the server profile with an accurate description and thumbnail
Provide a test profile so Glama can connect to and evaluate the server
Keep tool definitions clear and complete to earn a high Tool Definition Quality Score (TDQS)
Route real usage through the Glama Gateway; more recorded successful server uses also improve the ranking
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!
Related MCP Connectors
Cloud scraping & crawling API for AI agents. Turn any URL into clean, LLM-ready markdown.
Web scraping for AI agents. Converts URLs to clean, LLM-ready Markdown with anti-bot bypass.
Turns any URL into SEO metadata, contacts, tech stack, and AI-ready Markdown, in one call.
Clean Markdown and AI-readability scoring for any URL. Built for AI agents.
11
Related MCP Servers
- AlicenseAqualityDmaintenanceConverts URLs and raw HTML to clean Markdown, enabling AI assistants to read web pages for summarization, analysis, or ingestion.2191MIT
- AlicenseNot gradedqualityBmaintenanceProvides lightweight web crawling and scraping capabilities, enabling users to fetch pages as clean Markdown, recursively crawl domains, extract metadata, and perform search-and-crawl operations.5MIT
- AlicenseAqualityCmaintenanceCrawl any website into clean Markdown, search through pages, read full content, and extract structured data using OpenAI, Claude, Gemini, or Grok — with auto-citation and resume support.53MIT
- AlicenseAqualityBmaintenanceGive your AI the ability to read the web. Fetches URLs as clean markdown with 9 fallback strategies.210410MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.
TDQS
Most tools target distinct output types like search results, screenshots, images, or styleguides, but scrape and extract overlap significantly in pulling structured data from URLs. Brand and logo also intentionally overlap, with logo being a cheaper subset, though the descriptions do help clarify when to use each.
All tool names are short and lowercase, but they mix imperative verbs like extract, map, scrape, and search with noun-style names like brand, images, logo, and styleguide. There is no consistent verb-noun pattern, though the names remain readable and memorable.
Nine tools is a reasonable size for a web data-fetching server, and each tool covers a plausible retrieval mode. The set is not perfectly lean due to some functional overlap, but nothing feels excessive or redundant enough to hurt usability.
The toolset covers discovery via search and map, content extraction via scrape and extract, and visual/asset needs via screenshot, images, brand, logo, and styleguide. Minor gaps like PDF extraction or raw HTML retrieval exist, but agents can usually work around them.