MCP Hub
Back to servers

MCP Serp

An MCP server that provides structured Google Search capabilities including web, images, news, videos, maps, and local places via the AceDataCloud SERP API. It enables AI clients to perform localized searches and retrieve detailed information from the Google Knowledge Graph.

Updated
Jan 24, 2026

MCP Serp

Python 3.10+ License: MIT MCP

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:

  1. Sign up or log in
  2. Navigate to Google SERP API
  3. 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" > .env

4. Run

# Run the server
mcp-serp

# Or with Python directly
python main.py

Claude 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

ToolDescription
serp_google_searchFlexible Google search with all options
serp_google_imagesSearch for images
serp_google_newsSearch for news articles
serp_google_videosSearch for videos
serp_google_placesSearch for local places/businesses
serp_google_mapsSearch for map locations

Information Tools

ToolDescription
serp_list_search_typesList available search types
serp_list_countriesList country codes for localization
serp_list_languagesList language codes for localization
serp_list_time_rangesList time range filter options
serp_get_usage_guideGet 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

TypeDescription
searchRegular web search (default)
imagesImage search
newsNews articles
mapsMap results
placesLocal businesses
videosVideo results

Time Range Filters

CodeTime Range
qdr:hPast hour
qdr:dPast day
qdr:wPast week
qdr:mPast month

Common Country Codes

CodeCountry
usUnited States
ukUnited Kingdom
cnChina
jpJapan
deGermany
frFrance

Common Language Codes

CodeLanguage
enEnglish
zh-cnChinese (Simplified)
jaJapanese
esSpanish
frFrench
deGerman

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

VariableDescriptionDefault
ACEDATACLOUD_API_TOKENAPI token from AceDataCloudRequired
ACEDATACLOUD_API_BASE_URLAPI base URLhttps://api.acedata.cloud
SERP_REQUEST_TIMEOUTRequest timeout in seconds30
LOG_LEVELLogging levelINFO

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 integration

Code Quality

# Format code
ruff format .

# Lint code
ruff check .

# Type check
mypy core tools

Build & 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.md

API Reference

This server wraps the AceDataCloud Google SERP API:

Contributing

Contributions are welcome! Please:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing)
  5. Open a Pull Request

License

MIT License - see LICENSE for details.

Links


Made with love by AceDataCloud

Reviews

No reviews yet

Sign in to write a review