Skip to main content
Glama

search

Read-only

Run structured Google, Bing or DuckDuckGo searches through a residential proxy. Bing supports web, shopping, images, news, videos, places/maps and autocomplete over HTTP, including Copilot AI answers and citations when Bing returns them. Google web search also parses rich blocks directly from its HTTP response.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
numNoHow many organic results to aim for (default 10, max 100). Google serves ~10 per page, so a larger num is satisfied by fetching consecutive pages and merging them — it is NOT ignored. `search_metadata.search_url` is necessarily the first page's URL and therefore shows num=<page size>; `search_metadata.paging` reports what was actually requested, the page size, and how many pages were fetched. Getting fewer results than requested means Google ran out, not that num was dropped. Use `page` to address one specific page, or search_bulk for many queries.
langNoSearch UI language, e.g. 'en' or 'it'
nfprNoDisable Google spelling correction
pageNoResult page, 1-based (default 1). The response's pagination.available_pages lists which pages exist; use search_bulk to fetch many pages at once.
safeNoGoogle SafeSearch setting
uuleNoGeo token: encoded uule, or raw coordinates 'lat,lon' / 'lat,lon,radius_m' (encoded server-side)
queryNoThe search query (optional for place_details/product/flights/lens/reviews, which are ID/URL-addressed)
startNoResult offset alias (0, 10, 20…)
adultsNoHotels: number of adults
deviceNoSERP device shape (default desktop)
engineNoSearch engine (default google)
filterNoReviews: only reviews whose text contains this keyword
renderNoForce browser rendering where supported; Google/Bing web search rich blocks are parsed over HTTP
browserNoTLS/browser identity for the fetch path
countryNoISO country code, e.g. 'us'
data_idNoMaps data id, hex fid '0x…:0x…' (from maps/place_details results) — required for reviews
sort_byNoReviews: sort order (default relevance)
currencyNoHotels/Flights: price currency, e.g. 'EUR'
locationNoSearch from this location, e.g. 'Milan, Italy' (encoded to Google's uule server-side)
place_idNoGoogle Maps place id (from maps/places results) for place_details
wait_forNoRendered path: wait for this CSS selector before parsing late panels
image_urlNoLens: publicly reachable image URL to reverse-search
timeframeNoTrends only: Google timeframe token — 'today 12-m' (default), 'now 7-d', or an explicit 'YYYY-MM-DD YYYY-MM-DD' range
arrival_idNoFlights: arrival airport IATA code, e.g. 'LAX'
product_idNoGoogle Shopping product id for product details
return_dateNoFlights: return date YYYY-MM-DD (omit for one-way)
search_typeNoVertical (default search). Bing supports shopping/images/news/videos/places/maps/autocomplete. Google additionally supports scholar/jobs/place_details/hotels/flights/events/product/lens/reviews; maps accepts gps_coordinates, place_details uses place_id, and reviews uses data_id.
departure_idNoFlights: departure airport IATA code, e.g. 'JFK'
check_in_dateNoHotels: check-in date YYYY-MM-DD
children_agesNoHotels: children's ages, e.g. [5, 7]
exact_matchesNoLens: return the exact-matches tab (pages using this exact image) instead of visual matches
google_paramsNoAdditional Google query parameters not modeled above
outbound_dateNoFlights: outbound date YYYY-MM-DD
check_out_dateNoHotels: check-out date YYYY-MM-DD
gps_coordinatesNoMaps: center the search on 'lat,lon' or 'lat,lon,zoom' (zoom 3-21)
next_page_tokenNoReviews: continuation token from the previous response's serpapi_pagination
free_cancellationNoHotels: only offers with free cancellation
accommodation_typeNoHotels: property kind (default hotels)

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. First observed

TDQS

A3.9/5.0
Behavior4/5

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

Given readOnlyHint and openWorldHint already declare safety, the description adds meaningful behavioral context: residential proxy use, Bing's HTTP-only verticals, Copilot answers/citations, and Google's direct parsing of rich blocks. This gives an agent a realistic model of how results are obtained without contradicting the annotations.

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 compact and front-loaded with the core action. The Bing vertical enumeration in sentence 2 partly duplicates what the search_type parameter description already states, which prevents a perfect conciseness score, but the overall length is still reasonable and free of filler.

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 38-parameter tool with no output schema, the description plus the extremely detailed input schema provides enough orientation to select engines and verticals correctly. It does not describe the overall response envelope, but the rich schema carries most of the burden and mentions pagination metadata in parameter docs.

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?

The input schema provides 100% description coverage for all 38 parameters, including detailed semantics for num, page, search_type, and vertical-specific fields. The main description largely restates engine/vertical support already present in the search_type parameter description, adding no new parameter-level meaning, so the schema-covered baseline of 3 is appropriate.

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 description opens with a clear verb and resource: 'Run structured Google, Bing or DuckDuckGo searches through a residential proxy.' It conveys a specific, multi-engine search capability, but it does not explicitly differentiate this tool from the sibling search_bulk or search_and_read tools, so it stops short of full sibling disambiguation.

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?

The main description provides context about engine-specific verticals and HTTP vs rendered behavior, implying when the tool is appropriate. Parameter descriptions add explicit routing guidance, e.g. num says 'Use page to address one specific page, or search_bulk for many queries.' No explicit when-not-to-use exclusions are given, so not a 5.

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.

TDQS

A4.1/5.0
Disambiguation5/5

Each tool targets a distinct resource or action: single scrape, batch scrape, crawl, search, dataset creation, parser lifecycle, proxy management, and SEO audit. Even the five status pollers are clearly differentiated by job type and their descriptions explicitly state which job they poll, so an agent can reliably select the right tool.

Naming Consistency4/5

Most names follow a verb-first pattern (create_dataset, generate_parser, run_collector, save_parser_preset, whitelist_ip) and listing tools consistently use the 'list_' prefix. However, a few are noun-first (parser_preset_stats, proxy_locations, collector_run_status) and the status polling tool for collectors breaks the otherwise consistent '<job>_status' convention ('collector_run_status' instead of 'run_collector_status').

Tool Count3/5

At 25 tools, the set is at the upper edge of the 'heavy' range. The tools all serve distinct functions, reflecting a broad platform covering scraping, crawling, search, datasets, parsers, proxies, and SEO, but the count borders on overwhelming for an agent, and some consolidation (e.g., a generic async job status endpoint) could reduce the surface.

Completeness4/5

The tool surface covers the core data-extraction lifecycle well: discovery (map, search), acquisition (scrape, batch, crawl), structured extraction (generate_parser, save_parser_preset, parser stats/heal), proxy management, and result aggregation (datasets, collectors). Notable gaps are the absence of any cancellation/abort mechanism for long-running async jobs and no way to delete a parser preset, but these are minor for most workflows.