Skip to main content
Glama

research

Fetch multiple web pages for a query and return the relevant passages, each with source attribution and provenance. Failed sources are reported separately.

Instructions

Search the web and return ranked passages drawn from several sources.

One call does what search + repeated read_url would: finds pages, reads them through the stealth browser, and returns the passages most relevant to query — each attributed to its source, with that source's provenance receipt and any stripped injection payloads. A source that fails is reported in sources rather than failing the whole call.

Prefer read_url when you already have the URL, and search when you only want links. This reads max_sources pages, rate limited per domain, so it is the slowest of the three and the one to avoid for a single known page.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
queryYesThe question to research. Passages are ranked against it.
max_tokensNoToken budget for the returned passages. Omit to use the server's GROUNDHOG_MAX_TOKENS (20000 by default). Must be positive.
max_sourcesNoHow many pages to read. Values outside 1-10 are clamped rather than rejected. Each source is a full page fetch, so this is the main cost and latency control.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
queryYes
backendYes
sourcesYes
passagesYes
truncatedYes
Behavior5/5

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

With no annotations provided, the description fully carries behavioral disclosure. It reveals the stealth browser mechanism, provenance receipts, stripped injection payloads, partial failure handling (source failures reported in `sources` rather than failing the whole call), per-domain rate limiting, and that it is the slowest sibling. It also mentions that failures are non-fatal and that sources are clamped. This is rich, honest disclosure beyond what structured fields could convey.

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

Conciseness5/5

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

The description is three short paragraphs, each deliberately front-loaded. The first sentence states the core purpose, the second explains the combined workflow and output, and the third gives usage guidance. Every sentence adds distinct information with no fluff or repetition. It is concise while remaining comprehensive.

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

Completeness5/5

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

The tool is complex (combines search and page reading), has an output schema, and has no annotations. The description covers the key behavioral aspects: what gets returned (ranked passages with provenance and injection payloads), error handling (failures reported in `sources`), performance characteristics (rate limiting, slowest), and parameter effects (clamping, token budget). This is sufficient for an agent to correctly invoke and interpret the 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 coverage is 100%, but the description adds meaningful behavior for `max_sources`: values outside 1-10 are clamped, each source is a full page fetch, and it is the main cost/latency control. It also ties `query` to ranking and `max_sources` to the number of pages read. The description does not restate the schema, but adds the crucial clamping and cost semantics, going beyond the 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?

The description opens with a specific verb and resource: 'Search the web and return ranked passages drawn from several sources.' It distinguishes itself from siblings by positioning as an alternative to `search` + repeated `read_url`, and contrasts with `search` (returns links only) and `read_url` (for already-known URLs). This clearly defines the tool's unique purpose.

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

Usage Guidelines5/5

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

The final sentence gives explicit guidance: 'Prefer `read_url` when you already have the URL, and `search` when you only want links.' It also states when to avoid this tool ('the one to avoid for a single known page') and explains that it reads `max_sources` pages with rate limiting, making it the slowest of the three. This provides direct when-to-use/when-not-to-use direction.

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

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/dmytrome/groundhog'

If you have feedback or need assistance with the MCP directory API, please join our Discord server