Skip to main content
Glama

Search the Web

alterlab_search
Read-onlyIdempotent

Search the web and read the top results in one call: a vendor-neutral list of URLs, titles and snippets, with each result page as concise markdown. Use when you have a question or topic but no URL yet; for one known URL use alterlab_scrape. Cost: $0.001 per query; only fetched result pages are billed on top, and scrape_results=false returns the result list alone (cheapest). Each result has a content_status (ok, partial, blocked, timeout, dead_origin, pending). concise=false returns full-length content; mode trades latency for coverage; domain restricts to one site and time_range filters by recency. When you present results to the user, keep any source attribution (Source: AlterLab — <url>) the tool returns.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "query": "<query>"
    },
    "name": "alterlab_search"
  }
}

Input Schema

NameRequiredDescriptionDefault
modeNoLatency tier for page content: fast (5 s), standard (15 s), deep (60 s). Default: standard.
pageNoResults page number. Default: 1.
queryYes
domainNo
conciseNoWith scrape_results=true: concise agent output, markdown with size caps. Default: true. false returns full-length content.
countryNo
formatsNo
languageNo
time_rangeNo
num_resultsNoNumber of results to return. Default: 10.
safe_searchNo
scrape_resultsNoReturn the content of each result page (billed per fetched page). Default: true. false returns the unified result list only.
extraction_schemaNoJSON schema for structured extraction. Fields matching this schema are extracted from the page. Example: { "title": "string", "price": "number" }. LLM extraction needs your own LLM API key (OpenAI, Anthropic, OpenRouter, etc.) added in the dashboard BYOK settings; without one the request is rejected with byok_key_required and not charged.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changed
    • addedInput schema / properties / concise
      Added value: +{
      +  "default": true,
      +  "description": "With scrape_results=true: concise agent output, markdown with size caps. Default: true. false returns full-length content.",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / mode
      Added value: +{
      +  "description": "Latency tier for page content: fast (5 s), standard (15 s), deep (60 s). Default: standard.",
      +  "enum": [
      +    "fast",
      +    "standard",
      +    "deep"
      +  ],
      +  "type": "string"
      +}
    • changedInput schema / properties / scrape_results / default
      Previous value: -falseNew value: +true
    • changedInput schema / properties / scrape_results / description
      Previous value: -"Also scrape each result page. Default: false."New value: +"Return the content of each result page (billed per fetched page). Default: true. false returns the unified result list only."
  2. First observed

TDQS

A4.5/5.0
Behavior5/5

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

Annotations already cover safety (readOnly, idempotent, non-destructive, openWorld), yet the description still adds substantial non-obvious behavior: per-query pricing of $0.001, per-fetched-page billing, the content_status enumeration (ok, partial, blocked, timeout, dead_origin, pending), and a source-attribution obligation when presenting results. The latency/coverage tradeoff for mode and the concise-vs-full content switch are also disclosed.

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 the core action and the sibling contrast, then cost, then options — a sensible order with no filler. It is dense and somewhat run-on in the later clauses, but nearly every sentence carries operational 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?

For a 13-parameter tool with a nested object and no output schema, the description does the important work: it sketches the return shape (URLs/titles/snippets plus markdown pages), explains content_status, and warns about billing and attribution. The remaining gap is mainly the localization/format/safe-search options, which no structured field documents.

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 only 46% across 13 parameters, so the description carries real weight. It explains scrape_results, concise, mode (as a latency/coverage tradeoff), domain, and time_range, but says nothing about country, language, formats, safe_search, or pagination (page), leaving several undocumented parameters unaddressed in both places.

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 concrete compound verb and resource: search the web AND read the top results, returning 'a vendor-neutral list of URLs, titles and snippets, with each result page as concise markdown'. It explicitly contrasts with alterlab_scrape, so an agent can distinguish the two 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 Guidelines5/5

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

Gives an explicit selection rule: 'Use when you have a question or topic but no URL yet; for one known URL use alterlab_scrape.' It also names a cost-driven variant ('scrape_results=false returns the result list alone (cheapest)'), which is actionable when-to-use guidance rather than vague context.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.