Google Search MCP Server
An MCP (Model Context Protocol) server that performs comprehensive web searches using Google Custom Search JSON API with advanced content extraction using Mozilla's Readability algorithm.
Features
- Three Search Modes:
google_search- Fast snippet-only search for quick lookupsdeep_search- Full content extraction with Readability algorithmdeep_search_news- News-optimized deep search
- Google Custom Search API - Uses official Google Custom Search JSON API
- Advanced Content Extraction - Uses Mozilla's Readability algorithm (same as Firefox Reader View) for clean article extraction
- Multiple Search Types - Web search, news search, and image search
- Domain Filtering - Include or exclude specific domains from results
- Retry Logic - Automatic retries with exponential backoff for reliability
- Controlled Concurrency - Fetches pages in batches to avoid overwhelming servers
Prerequisites
Get Google Custom Search API Credentials
- Go to Google Cloud Console
- Create a new project or select an existing one
- Enable the "Custom Search API"
- Go to "Credentials" and create an API key
- Go to Programmable Search Engine
- Create a new search engine and get your Search Engine ID (CX)
You'll need:
GOOGLE_API_KEY- Your Google Cloud API keyGOOGLE_CX- Your Programmable Search Engine ID
Installation
Using npx (Recommended)
No installation needed - just configure your MCP client:
{
"mcpServers": {
"google-search": {
"command": "npx",
"args": ["-y", "@thejusdutt/google-search-mcp"],
"env": {
"GOOGLE_API_KEY": "your-google-api-key",
"GOOGLE_CX": "your-search-engine-id"
}
}
}
}
Global Installation
npm install -g @thejusdutt/google-search-mcp
Then configure:
{
"mcpServers": {
"google-search": {
"command": "google-search-mcp",
"env": {
"GOOGLE_API_KEY": "your-google-api-key",
"GOOGLE_CX": "your-search-engine-id"
}
}
}
}
Tools
google_search
Simple Google search for quick lookups. Returns snippets only without fetching full page content.
| Parameter | Type | Default | Description |
|---|---|---|---|
query |
string | required | The search query |
num_results |
number | 10 | Number of results (1-10) |
Example:
// Quick search with snippets only
google_search({ query: "React hooks tutorial" })
deep_search
Comprehensive web search with full content extraction.
| Parameter | Type | Default | Description |
|---|---|---|---|
query |
string | required | The search query |
num_results |
number | 10 | Number of results (1-10) |
max_content_per_page |
number | 50000 | Max characters per page (5000-100000) |
search_type |
string | "web" | Search type: "web", "news", or "images" |
include_domains |
string | - | Comma-separated domains to include |
exclude_domains |
string | - | Comma-separated domains to exclude |
Examples:
// Basic web search
deep_search({ query: "React best practices 2025" })
// News search
deep_search({ query: "AI announcements", search_type: "news" })
// Search specific sites only
deep_search({
query: "TypeScript tips",
include_domains: "github.com,dev.to"
})
// Exclude certain sites
deep_search({
query: "web development trends",
exclude_domains: "pinterest.com,facebook.com"
})
deep_search_news
Convenience wrapper for news search. Equivalent to calling deep_search with search_type: "news" and optimized content limits.
| Parameter | Type | Default | Description |
|---|---|---|---|
query |
string | required | The news topic to search |
num_results |
number | 10 | Number of articles (1-10) |
max_content_per_page |
number | 30000 | Max characters per article |
Example:
deep_search_news({ query: "OpenAI latest updates" })
Configuration
Kiro
Add to ~/.kiro/settings/mcp.json:
{
"mcpServers": {
"google-search": {
"command": "npx",
"args": ["-y", "@thejusdutt/google-search-mcp"],
"env": {
"GOOGLE_API_KEY": "your-google-api-key",
"GOOGLE_CX": "your-search-engine-id"
}
}
}
}
Claude Desktop
Add to claude_desktop_config.json:
{
"mcpServers": {
"google-search": {
"command": "npx",
"args": ["-y", "@thejusdutt/google-search-mcp"],
"env": {
"GOOGLE_API_KEY": "your-google-api-key",
"GOOGLE_CX": "your-search-engine-id"
}
}
}
}
How It Works
- Search - Queries Google Custom Search API to get top results
- Fetch - Downloads each result page with retry logic
- Extract - Uses Mozilla Readability to extract clean article content
- Format - Returns consolidated markdown with full content from each page
Requirements
- Node.js 18+
- Google Cloud API key with Custom Search API enabled
- Programmable Search Engine ID (CX)
License
MIT
Author
Contributing
Issues and PRs welcome at GitHub