Google Shopping MCP server
Registry name: io.github.johnisanerd/google-shopping. Maintained by AlphaOSINT (Apify developer johnvc, GitHub johnisanerd).
What it does
Search products and get listings with price, seller, rating, delivery information and discount tags, with filters for location, price range, sort order, free shipping and sale items.
Cross-retailer product prices for a query rather than a single store’s catalog. Use it for price comparison, deal finding and competitor price monitoring.
Paid service on Apify’s hosted endpoint
This server is not self-hosted. It runs on Apify’s hosted MCP endpoint (mcp.apify.com), which starts the Apify Actor johnvc/google-shopping-api-google-shopping-products-prices-deals for each tool call. You need an Apify account, and every call is billed to that account at the Actor’s prices below. Apify’s own pricing and terms apply to the account.
| Charge | Price (USD) | What it covers |
|---|---|---|
| Setup | $0.02 | One-time setup fee per Actor run. Covers initialization and API provisioning costs. |
| Page Processed | $0.02 | Fee per page of shopping results processed. Each page returns approximately 40 product listings. |
Prices shown are Apify’s free-plan rates; paid Apify plans get lower per-event prices. Apify also bills a token amount per run start and per stored row ($0.00001, $0.00001). Prices change from time to time; the Actor’s page on Apify shows the current ones.
Data source and terms
Google Shopping public search results, collected by scraping. The server returns the data as published at the time of the call. You are responsible for using it in line with the source’s terms and the laws that apply to you. AlphaOSINT is not affiliated with the source.
Endpoint
- Transport: Streamable HTTP
- URL:
https://mcp.apify.com/?tools=johnvc/google-shopping-api-google-shopping-products-prices-deals - Auth: Apify OAuth, or
Authorization: Bearer <APIFY_TOKEN>
Setup
Claude Code
claude mcp add --transport http google-shopping "https://mcp.apify.com/?tools=johnvc/google-shopping-api-google-shopping-products-prices-deals"
VS Code (.vscode/mcp.json)
{
"servers": {
"google-shopping": {
"type": "http",
"url": "https://mcp.apify.com/?tools=johnvc/google-shopping-api-google-shopping-products-prices-deals"
}
}
}
Cursor (~/.cursor/mcp.json)
{
"mcpServers": {
"google-shopping": {
"url": "https://mcp.apify.com/?tools=johnvc/google-shopping-api-google-shopping-products-prices-deals"
}
}
}
Claude Desktop (Settings → Connectors → Add custom connector, paste the URL). Older versions without remote connectors can bridge through mcp-remote in claude_desktop_config.json:
{
"mcpServers": {
"google-shopping": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://mcp.apify.com/?tools=johnvc/google-shopping-api-google-shopping-products-prices-deals"
]
}
}
}
Each client opens an Apify sign-in (OAuth) on first use. To use a token instead, send Authorization: Bearer <APIFY_TOKEN> as a header; create one under Apify Console → Settings → API & Integrations.
Tools
| Tool | What it does |
|---|---|
johnvc--google-shopping-api-google-shopping-products-prices-deals |
Runs the Actor with the parameters below and returns the result rows. |
get-actor-run |
Status of a run started by the tool, for long runs. |
get-dataset-items |
Pages through a run’s full output by datasetId when it is larger than the inline result. |
get-key-value-store-record |
Reads a record a run stored, such as a run report. |
abort-actor-run |
Stops a run. |
Apify’s endpoint adds the four helper tools automatically whenever an Actor tool is loaded.
Parameters of johnvc--google-shopping-api-google-shopping-products-prices-deals
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
q |
string | yes | "wireless headphones" |
The product or keyword to search for on Google Shopping. Example: ‘wireless headphones’, ‘iPhone 15 case’. |
location |
string | Geographic location to localize the search results. Example: ‘Austin, Texas, United States’, ‘London, England, United Kingdom’. | ||
gl |
string | Two-letter country code for Google to use. Examples: ‘us’, ‘uk’, ‘de’, ‘fr’, ‘ca’, ‘au’. | ||
hl |
string | Two-letter language code for results. Examples: ‘en’, ‘es’, ‘de’, ‘fr’, ‘ja’. | ||
google_domain |
string | Google domain to use for the search. Defaults to ‘google.com’. Examples: ‘google.co.uk’, ‘google.de’, ‘google.fr’. | ||
device |
string: desktop, tablet, mobile | "desktop" |
Device type to simulate. Different devices may return slightly different results and prices. | |
min_price |
number | Filter results to only show products above this price (in the local currency). | ||
max_price |
number | Filter results to only show products below this price (in the local currency). | ||
sort_by |
integer | Sort results by price. 1 = price low to high, 2 = price high to low. Leave blank for default relevance sorting. | ||
free_shipping |
boolean | false |
When enabled, only return products that offer free shipping. | |
on_sale |
boolean | false |
When enabled, only return products that are currently on sale or have a discount. | |
max_pages |
integer | 1 |
Maximum number of result pages to fetch. Each page contains approximately 40 products. Set to 0 for no limit (fetches all available pages). Default is 1. | |
output_file |
string | Optional filename for saving results as a JSON file locally. If not provided, a timestamped filename is generated automatically. |
Example arguments:
{
"helloWorld": 123
}
Output
The tool returns JSON rows with these fields.
| Field | Type | Description |
|---|---|---|
search_parameters |
object | The input parameters used for this search, echoed back in each result page for traceability. |
search_metadata |
object | Aggregate statistics about the search run: total results, pages processed, and pagination status. |
search_timestamp |
string | ISO 8601 timestamp of when this search page was executed. |
page_number |
integer | 1-indexed page number this dataset item represents. Each page of results is pushed as a separate item. |
shopping_results |
array | Array of product listings returned on this page. Each item includes title, price, source, rating, reviews, delivery, and more. |
filters |
array | Filter options available for narrowing results. Only present on the first page of results. |
error |
boolean | True when this dataset item represents an error record rather than search results. |
error_message |
string | Human-readable description of the error that occurred, if error is true. |
error_type |
string | Machine-readable error category (e.g., ‘InsufficientFunds’, ‘ValidationError’, ‘APIError’). |
timestamp |
string | ISO 8601 timestamp of when the error occurred. Only present on error records. |
Links
- Actor on Apify: johnvc/google-shopping-api-google-shopping-products-prices-deals
- Data source page on AlphaOSINT: /sources/google-shopping-api/
- All AlphaOSINT MCP servers: /mcp/