Skip to content
CrawlerData
Menu
Integration · AI assistants

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

Use cases

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.
Before you start

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.

Setup

Step by step

  1. 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.

  2. 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 list
  3. Claude 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}"
          }
        }
      }
    }
  4. 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.

  5. 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"
          }
        }
      }
    }
  6. 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}"
          }
        }
      }
    }
  7. 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]])
  8. 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.

Tested 2026-10-13

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.
Credits

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.

See credit pack prices →

Troubleshooting

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.

FAQ

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.

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.

Get 50 free credits