Google Shopping product search: listings with prices, merchants and ratings.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
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.
Search query for products, e.g. 'coffee maker' or 'Nike Air Max'. Required unless shoprs is provided. Supports Google's advanced search operators.
Country code for the search, e.g. 'us', 'uk', 'de'.
Language code, e.g. 'en', 'es', 'fr', 'pt-br'.
Google-encoded location string (the encoded form of a location). Mutually exclusive with location.
Use 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.
Result offset for pagination (0-based, e.g. 0, 60, 120). Default 0.
Device to emulate: 'desktop' (default), 'tablet' or 'mobile'.
Refinement token from a prior result's filters/carousel_filters, used to apply a filter or refine the search. When set, q is optional.
Only show products that are on sale. Default false.
Sort order: 1 = price low→high, 2 = price high→low. Omit for default relevance ranking.
Geographic location to originate the search from, e.g. 'Austin, Texas, United States'. Use a canonical Locations API name. Mutually exclusive with uule.
Force a fresh SerpAPI fetch and bypass this server's result cache. Default false.
Maximum product price filter, in the local currency.
Minimum product price filter, in the local currency.
Enterprise-only ZeroTrace mode: don't store search params/metadata on SerpAPI. Default false.
Only show products offering free shipping. Default false.
Google domain to use, e.g. 'google.com', 'google.co.uk', 'google.de'. Default google.com.
Only show products from small businesses. Default false.
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
claude mcp add --transport http google-shopping https://mcp.wondel.ai/google-shopping/mcp
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.
| Argument | Type | Description |
|---|---|---|
| q | string | Search query for products, e.g. 'coffee maker' or 'Nike Air Max'. Required unless shoprs is provided. Supports Google's advanced search operators. |
| gl | string | Country code for the search, e.g. 'us', 'uk', 'de'. |
| hl | string | Language code, e.g. 'en', 'es', 'fr', 'pt-br'. |
| uule | string | Google-encoded location string (the encoded form of a location). Mutually exclusive with location. |
| light | boolean | Use 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. |
| start | integer | Result offset for pagination (0-based, e.g. 0, 60, 120). Default 0. |
| device | string | Device to emulate: 'desktop' (default), 'tablet' or 'mobile'. |
| shoprs | string | Refinement token from a prior result's filters/carousel_filters, used to apply a filter or refine the search. When set, q is optional. |
| on_sale | boolean | Only show products that are on sale. Default false. |
| sort_by | integer | Sort order: 1 = price low→high, 2 = price high→low. Omit for default relevance ranking. |
| location | string | Geographic location to originate the search from, e.g. 'Austin, Texas, United States'. Use a canonical Locations API name. Mutually exclusive with uule. |
| no_cache | boolean | Force a fresh SerpAPI fetch and bypass this server's result cache. Default false. |
| max_price | integer | Maximum product price filter, in the local currency. |
| min_price | integer | Minimum product price filter, in the local currency. |
| zero_trace | boolean | Enterprise-only ZeroTrace mode: don't store search params/metadata on SerpAPI. Default false. |
| free_shipping | boolean | Only show products offering free shipping. Default false. |
| google_domain | string | Google domain to use, e.g. 'google.com', 'google.co.uk', 'google.de'. Default google.com. |
| small_business | boolean | Only show products from small businesses. Default false. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"q": {
"type": "string",
"description": "Search query for products, e.g. 'coffee maker' or 'Nike Air Max'. Required unless shoprs is provided. Supports Google's advanced search operators."
},
"gl": {
"type": "string",
"maxLength": 2,
"minLength": 2,
"description": "Country code for the search, e.g. 'us', 'uk', 'de'."
},
"hl": {
"type": "string",
"description": "Language code, e.g. 'en', 'es', 'fr', 'pt-br'."
},
"uule": {
"type": "string",
"description": "Google-encoded location string (the encoded form of a location). Mutually exclusive with location."
},
"light": {
"type": "boolean",
"description": "Use 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."
},
"start": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Result offset for pagination (0-based, e.g. 0, 60, 120). Default 0."
},
"device": {
"enum": [
"desktop",
"tablet",
"mobile"
],
"type": "string",
"description": "Device to emulate: 'desktop' (default), 'tablet' or 'mobile'."
},
"shoprs": {
"type": "string",
"description": "Refinement token from a prior result's filters/carousel_filters, used to apply a filter or refine the search. When set, q is optional."
},
"on_sale": {
"type": "boolean",
"description": "Only show products that are on sale. Default false."
},
"sort_by": {
"type": "integer",
"maximum": 2,
"minimum": 1,
"description": "Sort order: 1 = price low→high, 2 = price high→low. Omit for default relevance ranking."
},
"location": {
"type": "string",
"description": "Geographic location to originate the search from, e.g. 'Austin, Texas, United States'. Use a canonical Locations API name. Mutually exclusive with uule."
},
"no_cache": {
"type": "boolean",
"description": "Force a fresh SerpAPI fetch and bypass this server's result cache. Default false."
},
"max_price": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Maximum product price filter, in the local currency."
},
"min_price": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Minimum product price filter, in the local currency."
},
"zero_trace": {
"type": "boolean",
"description": "Enterprise-only ZeroTrace mode: don't store search params/metadata on SerpAPI. Default false."
},
"free_shipping": {
"type": "boolean",
"description": "Only show products offering free shipping. Default false."
},
"google_domain": {
"type": "string",
"description": "Google domain to use, e.g. 'google.com', 'google.co.uk', 'google.de'. Default google.com."
},
"small_business": {
"type": "boolean",
"description": "Only show products from small businesses. Default false."
}
}
}We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Nov 2, 2026.
No readOnlyHint / destructiveHint annotations, so clients can't tell a read from a write without asking.
Fix: Add annotations to each tool, e.g. { readOnlyHint: true } for tools that only read.