SerpMCP
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., "@SerpMCPsearch 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.
SerpMCP
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
Tool Reference
Tool | Description |
| Search Google and get structured results using the SERP API. |
| Search Google Images and get image results. |
| Search Google News and get news article results. |
| Search Google Videos and get video results. |
| Search Google for local places and businesses. |
| Search Google Maps for locations. |
| List all available Google search types. |
| List commonly used country codes for Google search. |
| List commonly used language codes for Google search. |
| List available time range filters for Google search. |
| Get a comprehensive guide for using the Google SERP tools. |
Quick Start
1. Get Your API Token
Sign up at AceDataCloud Platform
Go to the API documentation page
Click "Acquire" to get your API token
Copy the token for use below
2. Use the Hosted Server (Recommended)
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.
Claude.ai
Connect directly on Claude.ai with OAuth — no API token needed:
Go to Claude.ai Settings → Integrations → Add More
Enter the server URL:
https://serp.mcp.acedata.cloud/mcpComplete the OAuth login flow
Start using the tools in your conversation
Claude Desktop
Add 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"
}
}
}
}Cursor / Windsurf
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"
}
}
}
}VS Code (Copilot)
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 bundles all 15 MCP servers with one-click setup.
JetBrains IDEs
Go to Settings → Tools → AI Assistant → Model Context Protocol (MCP)
Click Add → HTTP
Paste:
{
"mcpServers": {
"serp": {
"url": "https://serp.mcp.acedata.cloud/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_TOKEN"
}
}
}
}Claude Code
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"
}
}
}
}Cline
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"
}
}
}
}Amazon Q Developer
Add to your MCP configuration:
{
"mcpServers": {
"serp": {
"type": "streamable-http",
"url": "https://serp.mcp.acedata.cloud/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_TOKEN"
}
}
}
}Roo Code
Add to Roo Code MCP settings:
{
"mcpServers": {
"serp": {
"type": "streamable-http",
"url": "https://serp.mcp.acedata.cloud/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_TOKEN"
}
}
}
}Continue.dev
Add to .continue/config.yaml:
mcpServers:
- name: serp
type: streamable-http
url: https://serp.mcp.acedata.cloud/mcp
headers:
Authorization: "Bearer YOUR_API_TOKEN"Zed
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"
}
}
}
}
}cURL Test
# 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"}}}'3. Or Run Locally (Alternative)
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 8000Claude Desktop (Local)
{
"mcpServers": {
"serp": {
"command": "uvx",
"args": ["mcp-serp"],
"env": {
"ACEDATACLOUD_API_TOKEN": "your_token_here"
}
}
}
}Docker (Self-Hosting)
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.
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 |
|
| OAuth client ID (hosted mode) | — |
| Platform 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/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 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
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.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
Maintenance
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/AceDataCloud/SerpMCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server