serpapi-mcp-server

MCP.Pizza Chef: serpapi

Three commands are on offer: a plain search covering Google, Bing, Yahoo, DuckDuckGo, YouTube, eBay and dozens of other engines, plus two that draw the same results as a sortable table or a small dashboard in apps able to show them. Everything is read-only. You need a SerpApi account, and every search spends part of a paid allowance, so heavy use costs money. The usual setup puts your key inside the web address you paste, which is worth knowing before you share a settings file.

Data
Web/Research

Use This MCP server To

Check what Google actually shows for a search today Compare prices for a product across shopping results Find this week's news stories on a topic Look up flight prices for a route and date Pull job listings for a role in one city Find local businesses near a given place Search YouTube without opening a browser tab

README

SerpApi MCP Server

A Model Context Protocol (MCP) server implementation that integrates with SerpApi for comprehensive search engine results and data extraction.

Python 3.13+ MIT License Install in VS Code Install in Cursor

Features

  • Multi-Engine Search: Google, Bing, Yahoo, DuckDuckGo, YouTube, eBay, and more
  • Engine Resources: Per-engine parameter schemas available via MCP resources (see Search Tool)
  • Real-time Weather Data: Location-based weather with forecasts via search queries
  • Stock Market Data: Company financials and market data through search integration
  • Dynamic Result Processing: Automatically detects and formats different result types
  • Flexible Response Modes: Complete or compact JSON responses
  • JSON Responses: Structured JSON output with complete or compact modes
  • Interactive UI (MCP Apps): Opt-in search_table and search_dashboard tools that render results as an interactive UI in supporting hosts

Quick Start

SerpApi MCP Server is available as a hosted service at mcp.serpapi.com. In order to connect to it, you need to provide an API key. You can find your API key on your SerpApi dashboard.

You can configure Claude Desktop to use the hosted server:

{
  "mcpServers": {
    "serpapi": {
      "type": "http",
      "url": "https://mcp.serpapi.com/YOUR_SERPAPI_API_KEY/mcp"
    }
  }
}

You can also add the hosted server to these MCP clients:

OpenClaw

openclaw mcp add serpapi --url https://mcp.serpapi.com/YOUR_SERPAPI_API_KEY/mcp --transport streamable-http

Claude Code

claude mcp add --transport http serpapi https://mcp.serpapi.com/YOUR_SERPAPI_API_KEY/mcp

Hermes

hermes mcp add serpapi --url https://mcp.serpapi.com/YOUR_SERPAPI_API_KEY/mcp

Codex

codex mcp add serpapi --url https://mcp.serpapi.com/YOUR_SERPAPI_API_KEY/mcp

Self-Hosting

git clone https://github.com/serpapi/serpapi-mcp.git
cd serpapi-mcp
uv sync && uv run src/server.py

Configure Claude Desktop:

{
  "mcpServers": {
    "serpapi": {
      "type": "http",
      "url": "http://localhost:8000/YOUR_SERPAPI_API_KEY/mcp"
    }
  }
}

Get your API key: serpapi.com/manage-api-key

Authentication

Two methods are supported:

  • Path-based: /YOUR_API_KEY/mcp (recommended)
  • Header-based: Authorization: Bearer YOUR_API_KEY

Examples:

# Path-based
curl "https://mcp.serpapi.com/your_key/mcp" -d '...'

# Header-based  
curl "https://mcp.serpapi.com/mcp" -H "Authorization: Bearer your_key" -d '...'

Search Tool

The MCP server has one main Search Tool that supports all SerpApi engines and result types. You can find all available parameters on the SerpApi API reference. Engine parameter schemas are also exposed as MCP resources: serpapi://engines (index) and serpapi://engines/<engine>.

The parameters you can provide are specific for each API engine. Some sample parameters are provided below:

  • params.q (required): Search query
  • params.engine: Search engine (default: "google_light")
  • params.location: Geographic filter
  • mode: Response mode - "complete" (default) or "compact"
  • ...see other parameters on the SerpApi API reference

Examples:

{"name": "search", "arguments": {"params": {"q": "coffee shops", "location": "Austin, TX"}}}
{"name": "search", "arguments": {"params": {"q": "weather in London"}}}
{"name": "search", "arguments": {"params": {"q": "AAPL stock"}}}
{"name": "search", "arguments": {"params": {"q": "news"}, "mode": "compact"}}
{"name": "search", "arguments": {"params": {"q": "detailed search"}, "mode": "complete"}}

Supported Engines: Google, Bing, Yahoo, DuckDuckGo, YouTube, eBay, and more (see serpapi://engines).

Result Types: Answer boxes, organic results, news, images, shopping - automatically detected and formatted.

Interactive UI (MCP Apps)

The default search tool returns JSON and is unchanged. For hosts that support the MCP Apps extension (SEP-1865), two opt-in tools render results as an interactive UI directly in the conversation, so the bulk SERP JSON never enters the model's context window:

  • search_table: organic results as a sortable, searchable table.
  • search_dashboard: summary metrics, a source-breakdown chart, and a results table with a click-to-expand detail panel.

Both accept the same params as search. Hosts that don't support MCP Apps simply ignore these tools.

Preview them locally without an MCP host:

uv run fastmcp dev apps src/server.py

Development

# Local development
uv sync && uv run src/server.py

# Docker
docker build -t serpapi-mcp . && docker run -p 8000:8000 serpapi-mcp

# Regenerate engine resources (Playground scrape)
python build-engines.py

# Testing with MCP Inspector
npx @modelcontextprotocol/inspector
# Configure: URL mcp.serpapi.com/YOUR_KEY/mcp, Transport "Streamable HTTP transport"

Troubleshooting

  • "Missing API key": Include key in URL path /{YOUR_KEY}/mcp or header Bearer YOUR_KEY
  • "Invalid key": Verify at serpapi.com/dashboard
  • "Rate limit exceeded": Wait or upgrade your SerpApi plan
  • "No results": Try different query or engine

Contributing

  1. Fork the repository
  2. Create your feature branch: git checkout -b feature/amazing-feature
  3. Install dependencies: uv install
  4. Make your changes
  5. Commit changes: git commit -m 'Add amazing feature'
  6. Push to branch: git push origin feature/amazing-feature
  7. Open a Pull Request

License

MIT License - see LICENSE file for details.

serpapi-mcp-server FAQ

Do I need a key or an account?
Yes. You need a SerpApi account and its key. SerpApi is a paid service with a small free monthly allowance, so this is not free for regular use.
Does it cost money?
Beyond the free monthly allowance, yes. Each search spends credit from your plan, and the server will tell you plainly when you have hit your limit or your plan does not cover an engine.
Can I use this to compare flight prices?
Yes. Ask for flights on a route and the dashboard view adds price history and a cheap-or-not read on the fare, when your app supports the visual view.
Can it change anything?
No. All three commands only search and read. Nothing writes, deletes or buys, and your key cannot be overridden by the words in your request.
Which apps does it work in?
Claude Desktop, Claude Code, Cursor, VS Code, Codex and other MCP-compatible apps. It is hosted by SerpApi, so nothing is installed on your machine.
How hard is the setup?
Easy. Paste one short block containing the address plus your key into your assistant's settings, or use the one-click install buttons for VS Code and Cursor and then swap in your own key.
Is my key kept private?
Reasonably, but the recommended setup embeds your key in the web address itself, so it sits in your settings file and can appear in logs. A header-based option exists if that matters to you.
Do the table and dashboard views work everywhere?
Not yet. They only appear in apps that support the newer interactive display feature. Elsewhere they are quietly ignored and you get ordinary text results.
Can I run it myself instead of using the hosted one?
Yes, there is a self-hosted option using Docker, but you still need a paid SerpApi key, so most people should just use the hosted address.