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"
}
}
}
}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
├── .env.example # Environment template
├── .gitignore
├── CHANGELOG.md
├── 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