Skip to main content
Glama

agent

Read-onlyIdempotent

Collect data from multiple sources from a natural-language prompt: plans queries and URLs, fetches pages in parallel, extracts structured schema fields, and synthesizes a summary or returns evidence.

Instructions

Natural-language data gathering across sources. Plans queries + URLs from a prompt, executes in parallel, optionally extracts structured fields, synthesizes. Full step transparency.

LLM-optional: with a synthesis LLM configured it writes the summary; without one it returns gathered evidence + a step log (plus schema-shaped fields when a schema is given) — YOU write the summary from the returned evidence, never present the raw step log as a poor result. For best agent results configure a free LLM key (e.g. Gemini).

Key parameters:

  • prompt: NL description of what to gather (e.g. "pricing for the top 5 CRM tools").

  • urls: optional seed URLs.

  • schema: optional JSON Schema — extracts matching fields from each page and merges.

  • max_pages: default 10.

  • max_time_ms: default 60000.

  • stream: progress notifications per step.

  • max_tokens_out / include_full_markdown / citation_format: budget + shape controls.

Pipeline: plan → search+fetch in parallel within budget → optional schema extraction → synthesize. steps[] exposes every action with timing. Uses MCP sampling when supported; falls back to keyword extraction otherwise.

Returns result, sources[], pages_fetched, steps[], total_time_ms, sampling_supported.

Input Schema

NameRequiredDescriptionDefault
urlsNoSpecific URLs to include in the data gathering
promptYesNatural-language description of what data to gather
schemaNoOptional JSON Schema -- extract structured data matching this schema from each page
streamNoSend progress notifications as each step completes
max_pagesNoMaximum pages to fetch (default 10, max 100)
max_time_msNoMaximum execution time in milliseconds (default 60000)
max_tokens_outNoToken-budget cap on total output. Uses cl100k-base BPE; non-OpenAI tokenizer counts may drift ~5-15%. When both max_tokens_out and max_chars are set, max_tokens_out wins.
citation_formatNoCitation rendering style. 'numbered' (default) inline [N] markers; 'json' returns a citations[] array; 'anthropic_tags' wraps sources in <source id='...'> tags.
include_full_markdownNoInclude full markdown body in the response. Default false on multi-result tools (returns evidence excerpts only); set true to restore.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.2.1
  2. Removedv0.2.0
  3. First observed

TDQS

A3.9/5.0
Behavior5/5

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

Annotations already cover the safety profile (readOnly, openWorld, idempotent, non-destructive), and the description layers real operational detail on top: the exact pipeline stages, parallel execution within budget, per-step timing via steps[], MCP sampling with a keyword-extraction fallback, and a warning not to surface the raw step log as a result. This is the kind of behavior the annotations cannot express.

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?

Purpose is front-loaded in one sentence, then organized into step-transparency, parameter, pipeline, and return sections — appropriate density for a 9-parameter tool. Minor redundancy: "Full step transparency" and the steps[] sentence in the pipeline block make the same point twice.

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 discharges that burden by enumerating the return shape (result, sources[], pages_fetched, steps[], total_time_ms, sampling_supported) and explaining degraded-mode output. What's missing is failure/partial-result behavior and any notion of source-quality limits when the budget is exhausted.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3 and the schema already explains every param including citation_format's enum values. The description mostly restates defaults already present in the schema (max_pages 10, max_time_ms 60000) and adds only a single illustrative example for prompt, so it does not meaningfully exceed 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?

The opening line states a specific resource and action: natural-language data gathering across sources, with the plan → fetch → extract → synthesize pipeline spelled out. An agent understands exactly what it gets back. However, it never names a sibling (research, search, crawl, fetch) to differentiate itself, despite 'research' sounding functionally close.

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

Usage Guidelines3/5

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

Usage context is implied through the example prompt ("pricing for the top 5 CRM tools") and the guidance on when synthesis is vs. isn't available, plus the instruction that the caller must write the summary from returned evidence. But there is no explicit when-not-to-use-this and no routing statement against the near-siblings 'research', 'search', or 'crawl'.

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