MCP Serp is a Model Context Protocol server that enables Google search capabilities through the AceDataCloud SERP API, integrating with MCP-compatible clients like Claude Desktop, VS Code, and Cursor.
Search Capabilities
Web Search (
serp_google_search) – Google web searches with structured results including knowledge graph, answer boxes, organic results, and related searchesImage Search (
serp_google_images) – Google Images results with URLs and thumbnailsNews Search (
serp_google_news) – Latest news articles with optional time filteringVideo Search (
serp_google_videos) – Videos from YouTube and other sources via Google VideoPlaces Search (
serp_google_places) – Local businesses and points of interestMaps Search (
serp_google_maps) – Locations and geographic information
Search Options
Filter by country (e.g.,
us,uk,jp), language (e.g.,en,fr), and time range (past hour, day, week, or month)Control pagination (page number and results per page)
Information & Configuration Tools
serp_list_search_types,serp_list_countries,serp_list_languages,serp_list_time_ranges– Query available options directly from the serverserp_get_usage_guide– Retrieve a comprehensive guide on using all SERP tools effectively
The server can be deployed locally, via Docker, or as a remote HTTP connection.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@MCP Serpsearch for the latest news about artificial intelligence"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
MCP Serp
A 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.
Features
Web Search - Regular Google web search with structured results
Image Search - Search for images with URLs and thumbnails
News Search - Get latest news articles on any topic
Video Search - Find videos from YouTube and other sources
Places Search - Search for local businesses and places
Maps Search - Find locations and geographic information
Knowledge Graph - Get structured entity information
Localization - Support for multiple countries and languages
Time Filtering - Filter results by time range
Quick Start
1. Get API Token
Get your API token from AceDataCloud Platform:
Sign up or log in
Navigate to Google SERP API
Click "Acquire" to get your token
2. Install
# Clone the repository
git clone https://github.com/AceDataCloud/mcp-serp.git
cd mcp-serp
# Install with pip
pip install -e .
# Or with uv (recommended)
uv pip install -e .3. Configure
# Copy example environment file
cp .env.example .env
# Edit with your API token
echo "ACEDATACLOUD_API_TOKEN=your_token_here" > .env4. Run
# Run the server
mcp-serp
# Or with Python directly
python main.pyClaude Desktop Integration
Add to your Claude Desktop configuration:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"serp": {
"command": "mcp-serp",
"env": {
"ACEDATACLOUD_API_TOKEN": "your_api_token_here"
}
}
}
}Or if using uv:
{
"mcpServers": {
"serp": {
"command": "uv",
"args": ["run", "--directory", "/path/to/mcp-serp", "mcp-serp"],
"env": {
"ACEDATACLOUD_API_TOKEN": "your_api_token_here"
}
}
}
}Remote HTTP Mode (Hosted)
AceDataCloud hosts a managed MCP server that you can connect to directly — no local installation required.
Endpoint: https://serp.mcp.acedata.cloud/mcp
All requests require a Bearer token in the Authorization header. Get your token from AceDataCloud Platform.
Claude Desktop (Remote)
{
"mcpServers": {
"serp": {
"type": "streamable-http",
"url": "https://serp.mcp.acedata.cloud/mcp",
"headers": {
"Authorization": "Bearer your_api_token_here"
}
}
}
}Cursor / VS Code
In your MCP client settings, add:
Type:
streamable-httpURL:
https://serp.mcp.acedata.cloud/mcpHeaders:
Authorization: Bearer your_api_token_here
cURL Test
# Health check (no auth required)
curl https://serp.mcp.acedata.cloud/health
# MCP initialize (requires Bearer token)
curl -X POST https://serp.mcp.acedata.cloud/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer your_api_token_here" \
-d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-03-26","capabilities":{},"clientInfo":{"name":"test","version":"1.0"}}}'Self-Hosting with Docker
docker pull ghcr.io/acedatacloud/mcp-serp:latest
docker run -p 8000:8000 ghcr.io/acedatacloud/mcp-serp:latestClients connect with their own Bearer token — the server extracts the token from each request's Authorization header and uses it for upstream API calls.
Available Tools
Search Tools
Tool | Description |
| Flexible Google search with all options |
| Search for images |
| Search for news articles |
| Search for videos |
| Search for local places/businesses |
| Search for map locations |
Information Tools
Tool | Description |
| List available search types |
| List country codes for localization |
| List language codes for localization |
| List time range filter options |
| Get comprehensive usage guide |
Usage Examples
Basic Web Search
User: Search for information about artificial intelligence
Claude: I'll search for information about AI.
[Calls serp_google_search with query="artificial intelligence"]News Search with Time Filter
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"]Localized Search
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"]Image Search
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"]Search Parameters
Search Types
Type | Description |
| Regular web search (default) |
| Image search |
| News articles |
| Map results |
| Local businesses |
| Video results |
Time Range Filters
Code | Time Range |
| Past hour |
| Past day |
| Past week |
| Past month |
Common Country Codes
Code | Country |
| United States |
| United Kingdom |
| China |
| Japan |
| Germany |
| France |
Common Language Codes
Code | Language |
| English |
| Chinese (Simplified) |
| Japanese |
| Spanish |
| French |
| German |
Response Structure
Regular Search Results
knowledge_graph: Entity information (company, person, etc.)
answer_box: Direct answers
organic: Regular search results with title, link, snippet
people_also_ask: Related questions
related_searches: Related queries
Image Search Results
images: Image results with URLs and thumbnails
News Search Results
news: News articles with source and date
Configuration
Environment Variables
Variable | Description | Default |
| API token from AceDataCloud | Required |
| API base URL |
|
| Request timeout in seconds |
|
| Logging level |
|
Command Line Options
mcp-serp --help
Options:
--version Show version
--transport Transport mode: stdio (default) or http
--port Port for HTTP transport (default: 8000)Development
Setup Development Environment
# Clone repository
git clone https://github.com/AceDataCloud/mcp-serp.git
cd mcp-serp
# 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 Tests
# Run unit tests
pytest
# Run with coverage
pytest --cov=core --cov=tools
# Run integration tests (requires API token)
pytest tests/test_integration.py -m integrationCode Quality
# Format code
ruff format .
# Lint code
ruff check .
# Type check
mypy core toolsBuild & Publish
# Install build dependencies
pip install -e ".[release]"
# Build package
python -m build
# Upload to PyPI
twine upload dist/*Project Structure
MCPSerp/
├── 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.mdAPI Reference
This server wraps the AceDataCloud Google SERP API:
Contributing
Contributions are welcome! Please:
Fork the repository
Create a feature branch (
git checkout -b feature/amazing)Commit your changes (
git commit -m 'Add amazing feature')Push to the branch (
git push origin feature/amazing)Open a Pull Request
License
MIT License - see LICENSE for details.
Links
Made with love by AceDataCloud
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.