Skip to main content
Glama

CrawlerData: Google Shopping & SERP

Google Search

google_search
Read-only

Google web search results (organic results, featured snippets, related questions and more) for any country, city-level location, language and device. 1 credit.

Input Schema

NameRequiredDescriptionDefault
pageNo
uuleNoAdvanced: a raw Google uule value ("w+...", "a+...", "j+..."), plain or URL-encoded as copied from a Google URL. Use location instead unless you already have uule values.
pagesNoFetch pages 1..pages (up to 3) in this one request: the result has a "pages" array, one entry per page with its own status, credits and output (html_url, or the parsed results). 1 credit per page; a failed page, or a page whose AI Overview timed out, is free. wait_for_ai_overview applies to page 1. Not with page.
queryYes
deviceNo"desktop" (default), "mobile" (Android phone, Pixel 8), "iphone" (iPhone 15, Safari), "ipad" (iPad Air, Safari) or "galaxy" (Samsung Galaxy S24, Chrome).desktop
countryNoTwo-letter country code. Defaults to "us", or to the country of location.
languageNoen
locationNoSearch from a city, region or postal code: a Google canonical location name, "City,Region,Country" (Google Ads geotarget format), e.g. "Austin,Texas,United States". When country is omitted it is taken from the location.
strict_geoNoInternal, not documented: crawl from an exit in the request's own country.
resolve_linksNoResolve Google's encrypted /goto result links to their real destinations. Google lets a page's links be resolved all at once only a couple of minutes after serving it, so on async jobs and batches the job stays "processing" (links_status "pending") until all are resolved, about 3 minutes after the crawl, and then completes with one webhook. On the live queue it answers at once with about 5-6 links per page resolved, result titles first (up to about 10 seconds). With output "html" the page's hrefs are rewritten (unresolved ones keep Google's href). In parsed JSON a link is never a Google redirect: one not resolved is the site's home page and carries link_unresolved: true.
wait_for_ai_overviewNoWait (up to about 10 seconds) for the AI Overview to finish loading before the page is captured. A page whose AI Overview does not load in time (ai_overview_status "timeout") costs 0 credits.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / strict_geo / description
      Previous value: -"With location or uule outside the US: always crawl from an IP in the request's own country. Without it, a batch page may be crawled from a US IP while country, language, location and the Google domain stay yours; exit_country in the result says which was used."New value: +"Internal, not documented: crawl from an exit in the request's own country."
  2. Changed1 schema field changed
    • addedInput schema / properties / strict_geo
      Added value: +{
      +  "description": "With location or uule outside the US: always crawl from an IP in the request's own country. Without it, a batch page may be crawled from a US IP while country, language, location and the Google domain stay yours; exit_country in the result says which was used.",
      +  "type": "boolean"
      +}
  3. Changed1 schema field changed
    • changedInput schema / properties / resolve_links / description
      Previous value: -"With output \"html\": rewrite Google's encrypted /goto result links in the page to their real destinations, result titles first (adds up to about 10 seconds). Google limits how fast one page's links can be resolved, so about 5-6 links per page are resolved; the others keep Google's href. In parsed JSON results a link is never a Google redirect: one that could not be resolved is the site's home page and carries link_unresolved: true."New value: +"Resolve Google's encrypted /goto result links to their real destinations. Google lets a page's links be resolved all at once only a couple of minutes after serving it, so on async jobs and batches the job stays \"processing\" (links_status \"pending\") until all are resolved, about 3 minutes after the crawl, and then completes with one webhook. On the live queue it answers at once with about 5-6 links per page resolved, result titles first (up to about 10 seconds). With output \"html\" the page's hrefs are rewritten (unresolved ones keep Google's href). In parsed JSON a link is never a Google redirect: one not resolved is the site's home page and carries link_unresolved: true."
  4. Changed1 schema field changed
    • changedInput schema / properties / resolve_links / description
      Previous value: -"With output \"html\": rewrite Google's encrypted /goto result links in the page to their real destinations (adds about 5-7 seconds). A link that cannot be resolved keeps Google's href. Parsed JSON results always have resolved links."New value: +"With output \"html\": rewrite Google's encrypted /goto result links in the page to their real destinations, result titles first (adds up to about 10 seconds). Google limits how fast one page's links can be resolved, so about 5-6 links per page are resolved; the others keep Google's href. In parsed JSON results a link is never a Google redirect: one that could not be resolved is the site's home page and carries link_unresolved: true."
  5. Changed2 schema fields changed
    • changedInput schema / properties / uule / description
      Previous value: -"Advanced: a raw Google uule value (\"w+...\", \"a+...\", \"j+...\"), sent as is. Use location instead unless you already have uule values."New value: +"Advanced: a raw Google uule value (\"w+...\", \"a+...\", \"j+...\"), plain or URL-encoded as copied from a Google URL. Use location instead unless you already have uule values."
    • removedInput schema / properties / uule / pattern
      Removed value: -"^[A-Za-z][+ ][A-Za-z0-9+/_=-]{4,1000}$"
  6. Changed6 schema fields changed
    • addedInput schema / properties / device / description
      Added value: +"\"desktop\" (default), \"mobile\" (Android phone, Pixel 8), \"iphone\" (iPhone 15, Safari), \"ipad\" (iPad Air, Safari) or \"galaxy\" (Samsung Galaxy S24, Chrome)."
    • changedInput schema / properties / device / enum
      Previous value: -[
      -  "desktop",
      -  "mobile"
      -]New value: +[
      +  "desktop",
      +  "mobile",
      +  "iphone",
      +  "ipad",
      +  "galaxy"
      +]
    • addedInput schema / properties / pages
      Added value: +{
      +  "description": "Fetch pages 1..pages (up to 3) in this one request: the result has a \"pages\" array, one entry per page with its own status, credits and output (html_url, or the parsed results). 1 credit per page; a failed page, or a page whose AI Overview timed out, is free. wait_for_ai_overview applies to page 1. Not with page.",
      +  "maximum": 3,
      +  "minimum": 1,
      +  "type": "integer"
      +}
    • changedInput schema / properties / uule / description
      Previous value: -"Advanced: a raw Google uule value, sent as is. Use location instead unless you already have uule values."New value: +"Advanced: a raw Google uule value (\"w+...\", \"a+...\", \"j+...\"), sent as is. Use location instead unless you already have uule values."
    • changedInput schema / properties / uule / pattern
      Previous value: -"^[aw][+ ][A-Za-z0-9+/_=-]{4,1000}$"New value: +"^[A-Za-z][+ ][A-Za-z0-9+/_=-]{4,1000}$"
    • changedInput schema / properties / wait_for_ai_overview / description
      Previous value: -"Wait (up to about 10 seconds) for the AI Overview to finish loading before the page is captured."New value: +"Wait (up to about 10 seconds) for the AI Overview to finish loading before the page is captured. A page whose AI Overview does not load in time (ai_overview_status \"timeout\") costs 0 credits."
  7. Changed1 schema field changed
    • addedInput schema / properties / resolve_links
      Added value: +{
      +  "description": "With output \"html\": rewrite Google's encrypted /goto result links in the page to their real destinations (adds about 5-7 seconds). A link that cannot be resolved keeps Google's href. Parsed JSON results always have resolved links.",
      +  "type": "boolean"
      +}
  8. Changed1 schema field changed
    • addedInput schema / properties / wait_for_ai_overview
      Added value: +{
      +  "description": "Wait (up to about 10 seconds) for the AI Overview to finish loading before the page is captured.",
      +  "type": "boolean"
      +}
  9. First observed

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint and openWorldHint, so the safety profile is covered. The description adds the credit cost and the shape of returned content, but says nothing about pagination behavior, async resolution, or per-page billing that the schema params describe — useful but thin added context for a complex tool.

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?

Two front-loaded sentences with the result contents and targeting dimensions up front; the 'and more' phrase is mild filler but the rest earns its place. Efficient overall.

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

Completeness3/5

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

For an 11-parameter tool with no output schema, the description omits the pagination model (page vs pages, per-page credits), async/link resolution, and AI Overview waiting behavior, relying entirely on schema text. Adequate given the rich schema descriptions, but not complete on its own.

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?

With 73% schema coverage, the schema itself documents most parameters in detail. The description only echoes the targeting dimensions (country, location, language, device) without adding syntax or constraints beyond what the schema already provides; query, page/pages, and uule get no treatment in the description.

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?

States a specific verb and resource (Google web search results) and enumerates the result types returned (organic, featured snippets, related questions), which distinguishes it from vertical siblings like google_news or google_images. It does not explicitly name or route to those siblings, keeping it short of a 5.

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 is only implied by the word 'web' against the sibling verticals; there is no explicit when-to-use, when-not, or alternative-naming guidance. The '1 credit' note is a cost signal but not selection guidance, and nothing tells the agent when to prefer google_search over google_news or google_local.

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.

Resources