{
  "markdown": "# <img src=\"https://user-images.githubusercontent.com/307597/154772945-1b7dba5f-21cf-41d0-bb2e-65b6eff4aaaf.png\" width=\"30\" height=\"30\"/> SerpApi MCP Server\n\nA Model Context Protocol (MCP) server implementation that integrates with [SerpApi](https://serpapi.com) for comprehensive search engine results and data extraction.\n\n[![Python 3.13+](https://img.shields.io/badge/python-3.13+-blue.svg)](https://www.python.org/downloads/)\n[![MIT License](https://img.shields.io/badge/license-MIT-green.svg)](LICENSE)\n[![Install in VS Code](https://img.shields.io/badge/Install%20in-VS%20Code-blue?logo=visualstudiocode)](https://insiders.vscode.dev/redirect/mcp/install?name=serpapi-mcp&config=%7B%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fmcp.serpapi.com%2FYOUR_SERPAPI_API_KEY%2Fmcp%22%7D)\n[![Install in Cursor](https://img.shields.io/badge/Install%20in-Cursor-blue?logo=cursor)](https://cursor.com/en-US/install-mcp?name=serpapi-mcp&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vbWNwLnNlcnBhcGkuY29tL1lPVVJfU0VSUEFQSV9BUElfS0VZL21jcCJ9)\n\n## Features\n\n- **Multi-Engine Search**: Google, Bing, Yahoo, DuckDuckGo, YouTube, eBay, and [more](https://serpapi.com/search-engine-apis)\n- **Engine Resources**: Per-engine parameter schemas available via MCP resources (see Search Tool)\n- **Real-time Weather Data**: Location-based weather with forecasts via search queries\n- **Stock Market Data**: Company financials and market data through search integration\n- **Dynamic Result Processing**: Automatically detects and formats different result types\n- **Flexible Response Modes**: Complete or compact JSON responses\n- **JSON Responses (default)**: Structured JSON output with complete or compact modes\n- **Markdown Responses**: Cut token usage by 50% on average and by more than 90% for APIs with complex nested JSON.\n- **Interactive UI (MCP Apps)**: Opt-in `search_table` and `search_dashboard` tools that render results as an interactive UI in supporting hosts\n\n## Quick Start\n\nSerpApi MCP Server is available as a hosted service at [mcp.serpapi.com](https://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](https://serpapi.com/dashboard).\n\nYou can configure Claude Desktop to use the hosted server:\n\n```json\n{\n  \"mcpServers\": {\n    \"serpapi\": {\n      \"type\": \"http\",\n      \"url\": \"https://mcp.serpapi.com/YOUR_SERPAPI_API_KEY/mcp\"\n    }\n  }\n}\n```\n\nYou can also add the hosted server to these MCP clients:\n\n**OpenClaw**\n```bash\nopenclaw mcp add serpapi --url https://mcp.serpapi.com/YOUR_SERPAPI_API_KEY/mcp --transport streamable-http\n```\n\n**Claude Code**\n```bash\nclaude mcp add --transport http serpapi https://mcp.serpapi.com/YOUR_SERPAPI_API_KEY/mcp\n```\n\n**Hermes**\n```bash\nhermes mcp add serpapi --url https://mcp.serpapi.com/YOUR_SERPAPI_API_KEY/mcp\n```\n\n**Codex**\n```bash\ncodex mcp add serpapi --url https://mcp.serpapi.com/YOUR_SERPAPI_API_KEY/mcp\n```\n\n### Self-Hosting\n```bash\ngit clone https://github.com/serpapi/serpapi-mcp.git\ncd serpapi-mcp\nuv sync && uv run src/server.py\n```\n\nConfigure Claude Desktop:\n```json\n{\n  \"mcpServers\": {\n    \"serpapi\": {\n      \"type\": \"http\",\n      \"url\": \"http://localhost:8000/YOUR_SERPAPI_API_KEY/mcp\"\n    }\n  }\n}\n```\n\nGet your API key: [serpapi.com/manage-api-key](https://serpapi.com/manage-api-key)\n\n## Authentication\n\nTwo methods are supported:\n- **Path-based**: `/YOUR_API_KEY/mcp` (recommended)\n- **Header-based**: `Authorization: Bearer YOUR_API_KEY`\n\n**Examples:**\n```bash\n# Path-based\ncurl \"https://mcp.serpapi.com/your_key/mcp\" -d '...'\n\n# Header-based  \ncurl \"https://mcp.serpapi.com/mcp\" -H \"Authorization: Bearer your_key\" -d '...'\n```\n\n## Search Tool\n\nThe 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](https://serpapi.com/search-api).\nEngine parameter schemas are also exposed as MCP resources: `serpapi://engines` (index) and `serpapi://engines/<engine>`.\n\nThe parameters you can provide are specific for each API engine. Some sample parameters are provided below:\n\n- `params.q` (required): Search query\n- `params.engine`: Search engine (default: \"google_light\") \n- `params.location`: Geographic filter\n- `params.output`: Response format; omit for JSON (default), or set to `\"md\"` for Markdown\n- `mode`: Response mode; `\"compact\"` removes metadata from JSON, while Markdown is returned unchanged\n- ...see other parameters on the [SerpApi API reference](https://serpapi.com/search-api)\n\n**Examples:**\n\n```json\n{\"name\": \"search\", \"arguments\": {\"params\": {\"q\": \"coffee shops\", \"location\": \"Austin, TX\"}}}\n{\"name\": \"search\", \"arguments\": {\"params\": {\"q\": \"weather in London\"}}}\n{\"name\": \"search\", \"arguments\": {\"params\": {\"q\": \"AAPL stock\"}}}\n{\"name\": \"search\", \"arguments\": {\"params\": {\"q\": \"news\"}, \"mode\": \"compact\"}}\n{\"name\": \"search\", \"arguments\": {\"params\": {\"q\": \"detailed search\"}, \"mode\": \"complete\"}}\n{\"name\": \"search\", \"arguments\": {\"params\": {\"q\": \"news\", \"output\": \"md\"}}}\n{\"name\": \"search\", \"arguments\": {\"params\": {\"engine\": \"amazon\", \"k\": \"mechanical keyboards\", \"amazon_domain\": \"amazon.com\", \"output\": \"md\"}}}\n{\"name\": \"search\", \"arguments\": {\"params\": {\"engine\": \"google_scholar\", \"q\": \"retrieval augmented generation\"}}}\n{\"name\": \"search\", \"arguments\": {\"params\": {\"engine\": \"youtube\", \"search_query\": \"how to make espresso\"}}}\n{\"name\": \"search\", \"arguments\": {\"params\": {\"engine\": \"apple_app_store\", \"term\": \"habit tracker\"}}}\n{\"name\": \"search\", \"arguments\": {\"params\": {\"engine\": \"ebay\", \"_nkw\": \"vintage mechanical keyboard\"}}}\n```\n\n**Supported Engines:** Google, Bing, Yahoo, DuckDuckGo, YouTube, eBay, and more (see `serpapi://engines`).\n\n**Result Types:** Answer boxes, organic results, news, images, shopping - automatically detected and formatted.\n\n## Interactive UI (MCP Apps)\n\nThe default `search` tool returns JSON and is unchanged. For hosts that support the [MCP Apps extension](https://modelcontextprotocol.io/seps/1865-mcp-apps-interactive-user-interfaces-for-mcp) (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:\n\n- `search_table`: organic results as a sortable, searchable table.\n- `search_dashboard`: summary metrics, a source-breakdown chart, and a results table with a click-to-expand detail panel.\n\nBoth accept the same `params` as `search`. Hosts that don't support MCP Apps simply ignore these tools.\n\nPreview them locally without an MCP host:\n\n```bash\nuv run fastmcp dev apps src/server.py\n```\n\n## Development\n\n```bash\n# Local development\nuv sync && uv run src/server.py\n\n# Docker\ndocker build -t serpapi-mcp . && docker run -p 8000:8000 serpapi-mcp\n\n# Regenerate engine resources (Playground scrape)\npython build-engines.py\n\n# Testing with MCP Inspector\nnpx @modelcontextprotocol/inspector\n# Configure: URL mcp.serpapi.com/YOUR_KEY/mcp, Transport \"Streamable HTTP transport\"\n```\n\n## Troubleshooting\n\n- **\"Missing API key\"**: Include key in URL path `/{YOUR_KEY}/mcp` or header `Bearer YOUR_KEY`\n- **\"Invalid key\"**: Verify at [serpapi.com/dashboard](https://serpapi.com/dashboard)  \n- **\"Rate limit exceeded\"**: Wait or upgrade your SerpApi plan\n- **\"No results\"**: Try different query or engine\n\n## Contributing\n\n1. Fork the repository\n2. Create your feature branch: `git checkout -b feature/amazing-feature`\n3. Install dependencies: `uv install`\n4. Make your changes\n5. Commit changes: `git commit -m 'Add amazing feature'`\n6. Push to branch: `git push origin feature/amazing-feature`\n7. Open a Pull Request\n\n## License\n\nMIT License - see [LICENSE](LICENSE) file for details.\n",
  "bytes": 7679,
  "sha": "5a09cc9b780d6a2fa0d39c6dcb6ac78306ab2635059498af816a0fa2e24a8248",
  "repo_slug": "serpapi/serpapi-mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_serpapi_serpapi_mcp_c3f70098/readme"
}