Skip to main content
Glama

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

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

Information Tools

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

Usage Examples

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"]
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"]

Search Parameters

Search Types

Type

Description

search

Regular web search (default)

images

Image search

news

News articles

maps

Map results

places

Local businesses

videos

Video results

Time Range Filters

Code

Time Range

qdr:h

Past hour

qdr:d

Past day

qdr:w

Past week

qdr:m

Past month

Common Country Codes

Code

Country

us

United States

uk

United Kingdom

cn

China

jp

Japan

de

Germany

fr

France

Common Language Codes

Code

Language

en

English

zh-cn

Chinese (Simplified)

ja

Japanese

es

Spanish

fr

French

de

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

ACEDATACLOUD_API_TOKEN

API token from AceDataCloud

Required

ACEDATACLOUD_API_BASE_URL

API base URL

https://api.acedata.cloud

SERP_REQUEST_TIMEOUT

Request timeout in seconds

30

LOG_LEVEL

Logging level

INFO

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.


Made with love by AceDataCloud

-
security - not tested
A
license - permissive license
-
quality - not tested

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/MCPSerp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server