Brings Google search into your MCP workflow via AceDataCloud's SERP API. Exposes tools for web search, images, news, videos, local places, and maps, plus knowledge graph lookups. You can filter by country, language, and time range. Ships with a hosted endpoint at serp.mcp.acedata.cloud that works over streamable HTTP, so you can connect from Claude Desktop, VS Code, Cursor, or JetBrains without running anything locally. Requires an AceDataCloud API token. If you need your AI to pull fresh search results or find current information beyond its training data, this handles the integration. Also available as a local Python package if you want to self host.
Public tool metadata for what this MCP can expose to an agent.
serp_list_search_typesList all available Google search types. Shows all available search types and their use cases. Use this to understand which search type to use for your query. Returns: Table of all search types with descriptions.List all available Google search types. Shows all available search types and their use cases. Use this to understand which search type to use for your query. Returns: Table of all search types with descriptions.
No parameter schema in public metadata yet.
serp_list_countriesList commonly used country codes for Google search. Shows common country codes that can be used to localize search results. Returns: Table of country codes and their countries.List commonly used country codes for Google search. Shows common country codes that can be used to localize search results. Returns: Table of country codes and their countries.
No parameter schema in public metadata yet.
serp_list_languagesList commonly used language codes for Google search. Shows common language codes that can be used to get results in specific languages. Returns: Table of language codes and their languages.List commonly used language codes for Google search. Shows common language codes that can be used to get results in specific languages. Returns: Table of language codes and their languages.
No parameter schema in public metadata yet.
serp_list_time_rangesList available time range filters for Google search. Shows all time range options that can be used to filter results by date. Returns: Table of time range codes and their meanings.List available time range filters for Google search. Shows all time range options that can be used to filter results by date. Returns: Table of time range codes and their meanings.
No parameter schema in public metadata yet.
serp_get_usage_guideGet a comprehensive guide for using the Google SERP tools. Provides detailed information on how to use the SERP search tools effectively, including parameters, examples, and best practices. Returns: Complete usage guide for SERP tools.Get a comprehensive guide for using the Google SERP tools. Provides detailed information on how to use the SERP search tools effectively, including parameters, examples, and best practices. Returns: Complete usage guide for SERP tools.
No parameter schema in public metadata yet.
serp_google_searchSearch Google and get structured results using the SERP API. Performs a Google search and returns the complete JSON response from the API, preserving all available fields and data. Args: query: The search query string. Required. search_type: Type of search to perform. Options:...7 paramsSearch Google and get structured results using the SERP API. Performs a Google search and returns the complete JSON response from the API, preserving all available fields and data. Args: query: The search query string. Required. search_type: Type of search to perform. Options:...
pagevaluequerystringnumbervaluecountryvaluelanguagevaluetime_rangevaluesearch_typestringsearch · images · news · maps · places · videosdefault: searchserp_google_imagesSearch Google Images and get image results. Performs a Google Image search and returns structured image results.5 paramsSearch Google Images and get image results. Performs a Google Image search and returns structured image results.
pagevaluequerystringnumbervaluecountryvaluelanguagevalueserp_google_newsSearch Google News and get news article results. Performs a Google News search and returns structured news results.6 paramsSearch Google News and get news article results. Performs a Google News search and returns structured news results.
pagevaluequerystringnumbervaluecountryvaluelanguagevaluetime_rangevalueserp_google_videosSearch Google Videos and get video results. Performs a Google Video search and returns structured video results.5 paramsSearch Google Videos and get video results. Performs a Google Video search and returns structured video results.
pagevaluequerystringnumbervaluecountryvaluelanguagevalueserp_google_placesSearch Google for local places and businesses. Performs a Google Places search and returns structured place results.5 paramsSearch Google for local places and businesses. Performs a Google Places search and returns structured place results.
pagevaluequerystringnumbervaluecountryvaluelanguagevalueserp_google_mapsSearch Google Maps for locations. Performs a Google Maps search and returns structured map results.5 paramsSearch Google Maps for locations. Performs a Google Maps search and returns structured map results.
pagevaluequerystringnumbervaluecountryvaluelanguagevalueA Model Context Protocol (MCP) server for Google search using SERP API through the AceDataCloud API.
Perform Google searches and get structured results directly from Claude, VS Code, or any MCP-compatible client.
| Tool | Description |
|---|---|
serp_google_search | Search Google and get structured results using the SERP API. |
serp_google_images | Search Google Images and get image results. |
serp_google_news | Search Google News and get news article results. |
serp_google_videos | Search Google Videos and get video results. |
serp_google_places | Search Google for local places and businesses. |
serp_google_maps | Search Google Maps for locations. |
serp_list_search_types | List all available Google search types. |
serp_list_countries | List commonly used country codes for Google search. |
serp_list_languages | List commonly used language codes for Google search. |
serp_list_time_ranges | List available time range filters for Google search. |
serp_get_usage_guide | Get a comprehensive guide for using the Google SERP tools. |
AceDataCloud hosts a managed MCP server — no local installation required.
Endpoint: https://serp.mcp.acedata.cloud/mcp
All requests require a Bearer token. Use the API token from Step 1.
Connect directly on Claude.ai with OAuth — no API token needed:
https://serp.mcp.acedata.cloud/mcpAdd to your config (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):
{
"mcpServers": {
"serp": {
"type": "streamable-http",
"url": "https://serp.mcp.acedata.cloud/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_TOKEN"
}
}
}
}
Add to your MCP config (.cursor/mcp.json or .windsurf/mcp.json):
{
"mcpServers": {
"serp": {
"type": "streamable-http",
"url": "https://serp.mcp.acedata.cloud/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_TOKEN"
}
}
}
}
Add to your VS Code MCP config (.vscode/mcp.json):
{
"servers": {
"serp": {
"type": "streamable-http",
"url": "https://serp.mcp.acedata.cloud/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_TOKEN"
}
}
}
}
Or install the Ace Data Cloud MCP extension for VS Code, which registers the hosted MCP servers with one-click setup.
{
"mcpServers": {
"serp": {
"url": "https://serp.mcp.acedata.cloud/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_TOKEN"
}
}
}
}
Claude Code supports MCP servers natively:
claude mcp add serp --transport http https://serp.mcp.acedata.cloud/mcp \
-h "Authorization: Bearer YOUR_API_TOKEN"
Or add to your project's .mcp.json:
{
"mcpServers": {
"serp": {
"type": "streamable-http",
"url": "https://serp.mcp.acedata.cloud/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_TOKEN"
}
}
}
}
Add to Cline's MCP settings (.cline/mcp_settings.json):
{
"mcpServers": {
"serp": {
"type": "streamable-http",
"url": "https://serp.mcp.acedata.cloud/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_TOKEN"
}
}
}
}
Add to your MCP configuration:
{
"mcpServers": {
"serp": {
"type": "streamable-http",
"url": "https://serp.mcp.acedata.cloud/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_TOKEN"
}
}
}
}
Add to Roo Code MCP settings:
{
"mcpServers": {
"serp": {
"type": "streamable-http",
"url": "https://serp.mcp.acedata.cloud/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_TOKEN"
}
}
}
}
Add to .continue/config.yaml:
mcpServers:
- name: serp
type: streamable-http
url: https://serp.mcp.acedata.cloud/mcp
headers:
Authorization: "Bearer YOUR_API_TOKEN"
Add to Zed's settings (~/.config/zed/settings.json):
{
"language_models": {
"mcp_servers": {
"serp": {
"url": "https://serp.mcp.acedata.cloud/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_TOKEN"
}
}
}
}
}
# Health check (no auth required)
curl https://serp.mcp.acedata.cloud/health
# MCP initialize
curl -X POST https://serp.mcp.acedata.cloud/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-03-26","capabilities":{},"clientInfo":{"name":"test","version":"1.0"}}}'
If you prefer to run the server on your own machine:
# Install from PyPI
pip install mcp-serp
# or
uvx mcp-serp
# Set your API token
export ACEDATACLOUD_API_TOKEN="your_token_here"
# Run (stdio mode for Claude Desktop / local clients)
mcp-serp
# Run (HTTP mode for remote access)
mcp-serp --transport http --port 8000
{
"mcpServers": {
"serp": {
"command": "uvx",
"args": ["mcp-serp"],
"env": {
"ACEDATACLOUD_API_TOKEN": "your_token_here"
}
}
}
}
docker pull ghcr.io/acedatacloud/mcp-serp:latest
docker run -p 8000:8000 ghcr.io/acedatacloud/mcp-serp:latest
Clients connect with their own Bearer token — the server extracts the token from each request's Authorization header.
| Tool | Description |
|---|---|
serp_google_search | Flexible Google search with all options |
serp_google_images | Search for images |
serp_google_news | Search for news articles |
serp_google_videos | Search for videos |
serp_google_places | Search for local places/businesses |
serp_google_maps | Search for map locations |
| Tool | Description |
|---|---|
serp_list_search_types | List available search types |
serp_list_countries | List country codes for localization |
serp_list_languages | List language codes for localization |
serp_list_time_ranges | List time range filter options |
serp_get_usage_guide | Get comprehensive usage guide |
User: Search for information about artificial intelligence
Claude: I'll search for information about AI.
[Calls serp_google_search with query="artificial intelligence"]
User: What's the latest news about technology?
Claude: I'll search for recent tech news.
[Calls serp_google_news with query="technology", time_range="qdr:d"]
User: Find popular restaurants in Tokyo
Claude: I'll search for restaurants in Tokyo.
[Calls serp_google_places with query="popular restaurants Tokyo", country="jp"]
User: Find images of the Northern Lights
Claude: I'll search for aurora borealis images.
[Calls serp_google_images with query="Northern Lights aurora borealis"]
| Type | Description |
|---|---|
search | Regular web search (default) |
images | Image search |
news | News articles |
maps | Map results |
places | Local businesses |
videos | Video results |
| Code | Time Range |
|---|---|
qdr:h | Past hour |
qdr:d | Past day |
qdr:w | Past week |
qdr:m | Past month |
| Code | Country |
|---|---|
us | United States |
uk | United Kingdom |
cn | China |
jp | Japan |
de | Germany |
fr | France |
| Code | Language |
|---|---|
en | English |
zh-cn | Chinese (Simplified) |
ja | Japanese |
es | Spanish |
fr | French |
de | German |
| Variable | Description | Default |
|---|---|---|
ACEDATACLOUD_API_TOKEN | API token from AceDataCloud | Required |
ACEDATACLOUD_API_BASE_URL | API base URL | https://api.acedata.cloud |
ACEDATACLOUD_OAUTH_CLIENT_ID | OAuth client ID (hosted mode) | — |
ACEDATACLOUD_PLATFORM_BASE_URL | Platform base URL | https://platform.acedata.cloud |
SERP_REQUEST_TIMEOUT | Request timeout in seconds | 30 |
LOG_LEVEL | Logging level | INFO |
mcp-serp --help
Options:
--version Show version
--transport Transport mode: stdio (default) or http
--port Port for HTTP transport (default: 8000)
# Clone repository
git clone https://github.com/AceDataCloud/SerpMCP.git
cd SerpMCP
# Create virtual environment
python -m venv .venv
source .venv/bin/activate # or `.venv\Scripts\activate` on Windows
# Install with dev dependencies
pip install -e ".[dev,test]"
# Run unit tests
pytest
# Run with coverage
pytest --cov=core --cov=tools
# Run integration tests (requires API token)
pytest tests/test_integration.py -m integration
# Format code
ruff format .
# Lint code
ruff check .
# Type check
mypy core tools
# Install build dependencies
pip install -e ".[release]"
# Build package
python -m build
# Upload to PyPI
twine upload dist/*
SerpMCP/
├── core/ # Core modules
│ ├── __init__.py
│ ├── client.py # HTTP client for SERP API
│ ├── config.py # Configuration management
│ ├── exceptions.py # Custom exceptions
│ └── server.py # MCP server initialization
├── tools/ # MCP tool definitions
│ ├── __init__.py
│ ├── search_tools.py # Search tools
│ └── info_tools.py # Information tools
├── prompts/ # MCP prompt templates
│ └── __init__.py
├── tests/ # Test suite
│ ├── conftest.py
│ ├── test_client.py
│ └── test_config.py
├── deploy/ # Deployment configs
│ └── production/
│ ├── deployment.yaml
│ ├── ingress.yaml
│ └── service.yaml
├── .env.example # Environment template
├── .gitignore
├── CHANGELOG.md
├── Dockerfile # Docker image for HTTP mode
├── docker-compose.yaml # Docker Compose config
├── LICENSE
├── main.py # Entry point
├── pyproject.toml # Project configuration
└── README.md
This server wraps the AceDataCloud Google SERP API:
Contributions are welcome! Please:
git checkout -b feature/amazing)git commit -m 'Add amazing feature')git push origin feature/amazing)MIT License - see LICENSE for details.
Made with love by AceDataCloud
ACEDATACLOUD_API_TOKEN*secretAPI token from Ace Data Cloud (https://platform.acedata.cloud)
com.mcparmory/google-search
io.github.pipeworx-io/brave-search
marcopesani/mcp-server-serper
brave/brave-search-mcp-server
com.mcparmory/google-search-console
acamolese/google-search-console-mcp