Skip to main content
Glama

search

Read-only

Search the web across Baidu/Bing/Sogou/WeChat/Google (aggregated + deduped) and optionally fetch the top results' full content. Use when the agent needs to FIND information online - replaces a search API. Supports image search returning direct image URLs. Optional engines: ["baidu"]-style filter by engine name (invalid names error with the valid list; /doctor lists them with live health). Optional time_range day/week/month/year for news freshness (engines without dated results ignore it). Response carries engine_errors explaining any engine that contributed nothing (CAPTCHA suspension, transient failure).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
qYesSearch query
enginesNoRestrict to these engine names (e.g. ["baidu"], ["sogou_wechat"]). Empty = all engines serving `categories`. Invalid names return an error listing the valid ones.
fetch_topNoFetch content for top N results
categoriesNoSearch categories (default: general)general
time_rangeNoFreshness window: "day" | "week" | "month" | "year". Honored by engines with dated results (e.g. bing_news filters by pubDate); others ignore it.
max_resultsNoMaximum number of results (default: 10)
max_chars_perNoMax characters per result content

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • addedInput schema / properties / engines
      Added value: +{
      +  "default": [],
      +  "description": "Restrict to these engine names (e.g. [\"baidu\"], [\"sogou_wechat\"]).\nEmpty = all engines serving `categories`. Invalid names return an\nerror listing the valid ones.",
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • addedInput schema / properties / time_range
      Added value: +{
      +  "default": null,
      +  "description": "Freshness window: \"day\" | \"week\" | \"month\" | \"year\". Honored by\nengines with dated results (e.g. bing_news filters by pubDate);\nothers ignore it.",
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
  2. First observed

TDQS

A4.5/5.0
Behavior5/5

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

Beyond the readOnlyHint, the description discloses important runtime traits: results are aggregated and deduped, fetch_top retrieves full content, engines filter by name with an error on invalid names, time_range is only honored by dated-result engines, and engine_errors reports per-engine failures like CAPTCHA suspension. This is material behavior an agent must know and it goes well beyond the annotation.

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?

The description is a single dense paragraph of about 130 words. It front-loads the primary purpose and usage in the first two sentences, then covers notable behaviors. Every sentence adds information, but the engine-filter phrasing is slightly awkward and could be clearer as a list.

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 7 parameters, no output schema, and no other structured behavioral annotations, the description gives enough to invoke and interpret results reasonably: it names the engines, mentions engine_errors, tells the agent about time_range and image search. It does not mention result schema shapes or what happens when fetch_top requests fail, but these are minor for a well-known search operation.

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 the baseline is 3. The description adds genuine semantics on top of the schema: engines as an array filter with error behavior and /doctor listing, time_range semantics about ignoring vs. honoring based on engine support, and the purpose of fetch_top. This raises it to 4.

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 ('Search'), a concrete resource (the web via Baidu/Bing/Sogou/WeChat/Google), and the distinguishing behavior (aggregation, deduping, optional content fetch, image search). It clearly differentiates from the sibling browser-session and URL-level tools (fetch, download, etc.) so an agent can select it for discovery rather than retrieval of a known URL.

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?

'Use when the agent needs to FIND information online - replaces a search API' is an explicit trigger instruction. It gives good context but does not list what it is not for (e.g., fetching a specific known URL, which would fall to fetch), so it misses a full when-not/alternative comparison.

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.