Skip to main content
Glama

Google Shopping MCP

Search Google Shopping (SerpAPI)

google_shopping_search

Search Google Shopping live via SerpAPI. Returns shopping_results (product listings with title, price, merchant/source, rating, reviews, shipping and product/offer links) plus filters and related results. Set light=true to use the faster google_shopping_light engine (lower latency, but the response omits filters/carousel_filters and it misses some products the full engine finds — an empty light answer is retried once on the full engine; the result's source and note say so). q is required unless you pass a shoprs refinement token from a prior result. Prices reflect the chosen gl/locale.

Input Schema

NameRequiredDescriptionDefault
qNoSearch query for products, e.g. 'coffee maker' or 'Nike Air Max'. Required unless shoprs is provided. Supports Google's advanced search operators.
glNoCountry code for the search, e.g. 'us', 'uk', 'de'.
hlNoLanguage code, e.g. 'en', 'es', 'fr', 'pt-br'.
uuleNoGoogle-encoded location string (the encoded form of a location). Mutually exclusive with location.
lightNoUse the faster google_shopping_light engine — response omits filters/carousel_filters and it misses some products the full engine finds, so an empty light answer is retried once on the full engine (`source` and `note` say so). When false (default) the full google_shopping engine is used.
startNoResult offset for pagination (0-based, e.g. 0, 60, 120). Default 0.
deviceNoDevice to emulate: 'desktop' (default), 'tablet' or 'mobile'.
shoprsNoRefinement token from a prior result's filters/carousel_filters, used to apply a filter or refine the search. When set, q is optional.
on_saleNoOnly show products that are on sale. Default false.
sort_byNoSort order: 1 = price low→high, 2 = price high→low. Omit for default relevance ranking.
locationNoGeographic location to originate the search from, e.g. 'Austin, Texas, United States'. Use a canonical Locations API name. Mutually exclusive with uule.
no_cacheNoForce a fresh SerpAPI fetch and bypass this server's result cache. Default false.
max_priceNoMaximum product price filter, in the local currency.
min_priceNoMinimum product price filter, in the local currency.
zero_traceNoEnterprise-only ZeroTrace mode: don't store search params/metadata on SerpAPI. Default false.
free_shippingNoOnly show products offering free shipping. Default false.
google_domainNoGoogle domain to use, e.g. 'google.com', 'google.co.uk', 'google.de'. Default google.com.
small_businessNoOnly show products from small businesses. Default false.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations, the description carries the burden and does well: it discloses the light-engine degradation, the automatic single retry on empty results, that `source`/`note` signal the fallback, cache behavior via no_cache, and ZeroTrace. It does not mention rate limits, auth/API-key requirements, or per-call cost, which keeps it short of a 5.

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?

Four sentences, front-loaded with purpose and returns before the option tradeoffs, with no filler. The light-engine caveat is stated twice (description and schema) but the repetition is defensible given its behavioral importance; slightly denser than needed.

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 an 18-parameter tool with no output schema and no annotations, the description compensates well by naming the key response fields and the fallback signal fields. Remaining gaps (pagination limits, currency behavior beyond 'local currency', error shapes) are largely covered by the schema's per-parameter descriptions.

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, and the description adds real meaning on top: it clarifies the q-vs-shoprs exclusivity, the latency/coverage tradeoff for light, and that prices follow gl/locale. It does not touch many of the 18 params (on_sale, small_business, sort_by, pagination), but the schema already documents those fully.

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 opening sentence names a specific verb and resource ('Search Google Shopping live via SerpAPI') and immediately enumerates the returned payload (shopping_results with title, price, merchant, rating, reviews, shipping, links, plus filters and related results). There is no ambiguity about what the tool does or what it produces.

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?

It gives a concrete decision rule for the main fork: light=true is faster but omits filters/carousel_filters and misses products, with a one-shot fallback to the full engine. It also states the precondition that q is required unless a shoprs token is supplied. No sibling tools exist, so there is no alternative-tool routing to document, but no explicit 'don't use for X' guidance either.

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