Google Search and Google Shopping MCP server
A remote MCP server at https://api.crawlerdata.com/mcp gives AI assistants eight Google tools: shopping search, sellers, product details, web search, images, news, local and autocomplete. Add one URL and your API key, and the assistant can look things up on Google while it works.
Code on this page tested 2026-10-13
What you can do
- Ask Claude or Cursor to compare prices for a product across every seller on Google Shopping.
- Let a coding assistant search Google for current documentation, error messages or release notes.
- Pull Google News, Google Local or Google Images results into a conversation without writing code.
- Check what Google suggests for a keyword (autocomplete) while you plan content.
Prerequisites
- A CrawlerData account and API key (sign up, verify your work email, then create a key under API Access).
- An MCP client: Claude Desktop, Claude Code, Cursor or any client that supports remote servers over Streamable HTTP.
- For the claude_desktop_config.json route only: Node.js 18 or newer, used by npx to run mcp-remote.
No key yet? Sign up for 50 free credits, then create a key under API Access.
Step by step
Know the connection details
Server URL: https://api.crawlerdata.com/mcp. Transport: Streamable HTTP (stateless, no session to keep). Authentication: sign in with your CrawlerData account (OAuth: the client opens a browser window), or send an "Authorization: Bearer YOUR_API_KEY" header on every request.
Tools: google_shopping_search, google_shopping_sellers, google_shopping_product, google_search, google_images, google_news, google_local and google_autocomplete. The server is also listed in the official MCP Registry as com.crawlerdata/google-shopping-serp.
Claude Code
Run this in your project. --transport http selects Streamable HTTP and --header sets the auth header. Add --scope user to make the server available in every project.
claude mcp list should then show crawlerdata as Connected.
Prefer to sign in instead of pasting a key? Add the server without --header (claude mcp add --transport http crawlerdata https://api.crawlerdata.com/mcp), run /mcp in Claude Code, choose crawlerdata and Authenticate, then log in to CrawlerData in the browser and click Allow.
Terminal claude mcp add --transport http crawlerdata https://api.crawlerdata.com/mcp \ --header "Authorization: Bearer YOUR_API_KEY" # Check it connected claude mcp listClaude Code, shared with a team (.mcp.json)
To check the server into a repository without the key, put this in .mcp.json at the project root. Claude Code expands ${CRAWLERDATA_API_KEY} from each person's environment, and asks each person to approve project servers the first time.
.mcp.json { "mcpServers": { "crawlerdata": { "type": "http", "url": "https://api.crawlerdata.com/mcp", "headers": { "Authorization": "Bearer ${CRAWLERDATA_API_KEY}" } } } }Claude Desktop and claude.ai: custom connector
Open Connectors (under Customize, or Settings in older versions), choose Add, then Add custom connector, enter the server URL and click Add. Claude opens a CrawlerData sign-in window: log in and click Allow, and the tools are ready. Calls are billed to your organization's credits. To use an API key instead, choose No sign in and add a request header Authorization with the value Bearer YOUR_API_KEY.
Custom connectors are available on Free, Pro, Max, Team and Enterprise plans (Free allows one). On Team and Enterprise plans an owner adds them in the organization settings.
Claude Desktop: claude_desktop_config.json
If you prefer a local config file, Claude Desktop starts local (stdio) servers from claude_desktop_config.json, so use the mcp-remote bridge to reach the remote server. Open the file from Settings, then Developer, then Edit Config, add the block below and restart Claude Desktop.
There is no space after "Authorization:" on purpose. mcp-remote's documentation notes that Claude Desktop on Windows and Cursor do not escape spaces in args, so the space-containing value goes in env instead. This form works on macOS too.
claude_desktop_config.json { "mcpServers": { "crawlerdata": { "command": "npx", "args": [ "-y", "mcp-remote@0.14.3", "https://api.crawlerdata.com/mcp", "--header", "Authorization:${AUTH_HEADER}" ], "env": { "AUTH_HEADER": "Bearer YOUR_API_KEY" } } } }Cursor
Add the server to .cursor/mcp.json in your project, or ~/.cursor/mcp.json for every project. Cursor reads ${env:CRAWLERDATA_API_KEY} from your environment, so the key stays out of the file. You can also paste the key in place of the variable.
.cursor/mcp.json { "mcpServers": { "crawlerdata": { "url": "https://api.crawlerdata.com/mcp", "headers": { "Authorization": "Bearer ${env:CRAWLERDATA_API_KEY}" } } } }Check the server from a script
Any client that speaks JSON-RPC over HTTP can use the server. This script initializes, lists the tools and calls google_autocomplete (1 credit). It is a quick way to confirm your key works before you debug a client config.
mcp_check.py """Talk to the CrawlerData MCP server directly: initialize, list tools, call one. Needs requests.""" import json import os import requests URL = "https://api.crawlerdata.com/mcp" HEADERS = { "Authorization": f"Bearer {os.environ['CRAWLERDATA_API_KEY']}", "Accept": "application/json, text/event-stream", } def rpc(id, method, params): body = {"jsonrpc": "2.0", "id": id, "method": method, "params": params} resp = requests.post(URL, headers=HEADERS, json=body, timeout=200) resp.raise_for_status() return resp.json()["result"] info = rpc(1, "initialize", {"protocolVersion": "2025-06-18", "capabilities": {}, "clientInfo": {"name": "check", "version": "1.0"}}) print(info["serverInfo"]) tools = rpc(2, "tools/list", {})["tools"] print([t["name"] for t in tools]) call = rpc(3, "tools/call", {"name": "google_autocomplete", "arguments": {"query": "running sho"}}) data = json.loads(call["content"][0]["text"]) print(data["credits"], [s["value"] for s in data["result"]["suggestions"][:3]])Ask for something
Try prompts such as "Find the Google Shopping product for the Sony WH-1000XM5 and list every seller with total price", "What does Google show for best crm software in the UK?" or "Get the latest Google News results for nvidia". The assistant picks the tool and the parameters. Tool results include the credits each call used.
How we tested it
- Ran mcp_check.py against https://api.crawlerdata.com/mcp: initialize returned serverInfo crawlerdata 1.0.0, tools/list returned all eight tools, and a google_autocomplete call returned suggestions and "credits": 1.
- Ran claude mcp add exactly as shown with Claude Code 2.1.296; claude mcp list reported the server as Connected.
- Started mcp-remote 0.14.3 with the same args and env as the Claude Desktop config on Windows and sent initialize, tools/list and tools/call over stdio: all three succeeded.
- The custom connector steps and the Cursor and .mcp.json formats follow the current Claude, Cursor and Claude Code documentation.
What it costs
Each tool call is one API request and costs the same as the REST API: 1 credit, except google_shopping_sellers at 1 credit per 10 sellers returned (rounded up). initialize and tools/list are free.
An assistant may call several tools to answer one question, for example a shopping search followed by a sellers call. Ask it to stop after one search if you want to keep a conversation to a single credit.
If something goes wrong
- The client shows the server as failed or 401
- Check the header is exactly "Authorization: Bearer YOUR_API_KEY". In the mcp-remote config, keep "Authorization:${AUTH_HEADER}" with no space and put "Bearer YOUR_API_KEY" in env.
- Claude Desktop does not show the tools
- Restart Claude Desktop fully after editing claude_desktop_config.json, and check that node and npx run from a terminal (Node 18 or newer). Claude Desktop uses the Node.js on your system PATH.
- 402 INSUFFICIENT_CREDITS
- Your balance is too low for the request. Buy a credit pack in the dashboard. Requests that fail for other reasons are not charged, so a 402 never costs credits.
- 429 RATE_LIMITED
- Each API key allows 100 requests per minute and 20 per second. Wait until the time in the X-RateLimit-Reset header (a Unix timestamp) and retry, or spread requests out.
- A sellers call times out in the client
- google_shopping_sellers collects every seller on the product page, so it needs more time than a search. Raise the client's tool timeout if it has one, or ask for google_shopping_product (details only) when you do not need every seller.
Request and response schemas: OpenAPI 3.1 document. Still stuck? Email contact@crawlerdata.com.
Questions
Is there an MCP server for Google Shopping data?
Yes. CrawlerData runs a remote MCP server at https://api.crawlerdata.com/mcp with tools for Google Shopping search, all sellers of a product, and product details, plus Google Search, Images, News, Local and Autocomplete.
Do I need to install anything?
No for Claude Code, Cursor or a Claude custom connector: they connect to the URL directly. Only the claude_desktop_config.json route runs mcp-remote through npx, which needs Node.js.
How does the server authenticate?
With your API key as a Bearer token in the Authorization header, the same key you use for the REST API.
Is the MCP server more expensive than the API?
No. A tool call costs the same credits as the matching API request, and failed calls are free.
Which MCP transport does it use?
Streamable HTTP, stateless, so there is no session ID to keep.
APIs you can call
Google Shopping API
Search Google Shopping and get every product with price, merchant, rating and a product ID you can use to fetch all sellers.
from $0.30 / 1,000 requests
Google Shopping Sellers API
Every seller offering a product, sorted by total price, in one request with no pagination. 1 credit per 10 sellers returned.
1 credit per 10 sellers, from $0.30 / 1,000 credits
Google Search API
Organic results with real destination links, ads, AI Overview, People Also Ask, local pack, top stories, knowledge panel and related searches. Desktop or mobile.
from $0.30 / 1,000 requests
Google News API
News articles with source, date, snippet and link.
from $0.30 / 1,000 requests
Solutions built on it
Search data for AI and LLMs
Fresh Google results as JSON for LLM agents, tools and RAG pipelines.
See how it works
Competitor price monitoring
Every seller and total price for your products on Google Shopping, one request per product.
See how it works
Other integrations
LangChain
Python tools for Google Search and Google Shopping, ready for any LangChain agent.
Set it up
LanguagesPython
A requests-based client with retries, async polling and a webhook receiver.
Set it up
LanguagesNode.js
A dependency-free fetch client with retries, async polling and a webhook receiver.
Set it up
Try it with 50 free credits
Sign up with your work email and verify it, then create an API key. Failed requests are never charged.