SerpAPI MCP Server
Unified MCP server providing access to 8 search engines through Claude Desktop. Supports Google, YouTube, Amazon, Bing, Maps, Images, News, and Shopping.
TL;DR: TL;DR: I built an MCP server that provides unified access to 8 search engines (Google, YouTube, Amazon, Bing, Maps, Images, News, Shopping) through a single interface. Enables Claude Desktop to search the web with comprehensive filtering options.
The Problem
Claude's knowledge has a cutoff date, but users often need current information:
- "What's the latest news about X?"
- "Find YouTube videos about Y"
- "Compare prices for Z on Amazon"
Without web access, Claude can't help with these queries. I needed a way to give Claude real-time search capabilities across multiple platforms.
My Approach
I built an MCP server that wraps SerpAPI's unified search interface:
- Single API, multiple engines: One client handles Google, YouTube, Amazon, etc.
- Type-safe parameters: Full TypeScript definitions for each search type
- Comprehensive filtering: Safe search, location, language, date ranges, price filters
- Pagination support: Navigate through result pages
The MCP protocol exposes each search engine as a separate tool, so Claude can choose the right one for each query.
Architecture
SerpAPI MCP Server - Architecture Diagram
Key Features
- 8 Search Engines: Google Web, Images, News, Shopping, Maps, YouTube, Amazon, Bing
- Safe Search Controls: Enforce safe search for appropriate use cases
- Geographic Targeting: Location, country, and language parameters
- Price Filtering: Min/max price for shopping searches
- Date Filtering: Time range for news and video searches
- Pagination: Start position and result count for browsing
Results & Metrics
| Metric | Value |
|---|---|
| Search Engines | 8 |
| Max Results per Query | 100 |
| Request Timeout | 30 seconds |
| Supported Filters | 20+ parameters |
| Device Types | Desktop, Mobile, Tablet |
What I Learned
The main challenge was parameter normalization. Each search engine has different filters:
- Google Images: color, size, type, rights
- YouTube: duration, upload_date, features
- Amazon: department, price_min, price_max
- Google News: sort_by, time_range
I created engine-specific methods that expose only the relevant parameters while sharing common ones (query, limit, pagination).
Another insight: result structure varies wildly. Google returns knowledge graphs and answer boxes; YouTube returns thumbnails and durations; Amazon returns prices and ratings. I kept the responses as raw JSON to preserve all data for Claude to interpret.
Frequently Asked Questions
What problem does SerpAPI MCP solve?
It gives Claude Desktop real-time web search capabilities across multiple platforms. When users ask about current events, product prices, or video content, Claude can actually search and return results.
What technologies power this project?
TypeScript with the MCP SDK for Claude integration, Axios for HTTP requests, and SerpAPI as the unified search backend. Environment variables manage API authentication.
Which search engines are supported?
Google (Web, Images, News, Shopping, Maps), YouTube, Amazon, and Bing. Each has its own MCP tool with engine-specific filtering options.
Frequently Asked Questions
More Projects
View allBuilt by Abhinav Sinha
AI-First Product Manager who builds production-grade tools. Passionate about turning complex problems into elegant solutions using AI, automation, and modern web technologies.