SerpMCP
SerpMCP
Сервер Model Context Protocol (MCP) для поиска в Google с использованием SERP API через AceDataCloud API.
Выполняйте поиск в Google и получайте структурированные результаты напрямую из Claude, VS Code или любого другого клиента, совместимого с MCP.
Возможности
Веб-поиск — Обычный поиск в Google со структурированными результатами
Поиск изображений — Поиск изображений с URL-адресами и миниатюрами
Поиск новостей — Получение последних новостных статей по любой теме
Поиск видео — Поиск видео на YouTube и других источниках
Поиск мест — Поиск местных компаний и организаций
Поиск по картам — Поиск локаций и географической информации
Граф знаний — Получение структурированной информации об объектах
Локализация — Поддержка множества стран и языков
Фильтрация по времени — Фильтрация результатов по временному диапазону
Related MCP server: SerpApi MCP Server
Справочник инструментов
Инструмент | Описание |
| Поиск в Google и получение структурированных результатов через SERP API. |
| Поиск в Google Images и получение результатов с изображениями. |
| Поиск в Google News и получение результатов со статьями. |
| Поиск в Google Videos и получение результатов с видео. |
| Поиск в Google местных мест и компаний. |
| Поиск локаций в Google Maps. |
| Список всех доступных типов поиска Google. |
| Список часто используемых кодов стран для поиска Google. |
| Список часто используемых кодов языков для поиска Google. |
| Список доступных фильтров временного диапазона для поиска Google. |
| Получение подробного руководства по использованию инструментов Google SERP. |
Быстрый старт
1. Получите ваш API-токен
Зарегистрируйтесь на платформе AceDataCloud
Перейдите на страницу документации API
Нажмите "Acquire" (Получить), чтобы получить ваш API-токен
Скопируйте токен для использования ниже
2. Используйте размещенный сервер (рекомендуется)
AceDataCloud предоставляет управляемый MCP-сервер — локальная установка не требуется.
Эндпоинт: https://serp.mcp.acedata.cloud/mcp
Все запросы требуют Bearer-токен. Используйте API-токен из шага 1.
Claude.ai
Подключитесь напрямую на Claude.ai через OAuth — API-токен не требуется:
Перейдите в Claude.ai Настройки → Интеграции → Добавить еще
Введите URL сервера:
https://serp.mcp.acedata.cloud/mcpЗавершите процесс входа через OAuth
Начните использовать инструменты в вашем диалоге
Claude Desktop
Добавьте в ваш конфиг (~/Library/Application Support/Claude/claude_desktop_config.json на macOS):
{
"mcpServers": {
"serp": {
"type": "streamable-http",
"url": "https://serp.mcp.acedata.cloud/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_TOKEN"
}
}
}
}Cursor / Windsurf
Добавьте в ваш MCP-конфиг (.cursor/mcp.json или .windsurf/mcp.json):
{
"mcpServers": {
"serp": {
"type": "streamable-http",
"url": "https://serp.mcp.acedata.cloud/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_TOKEN"
}
}
}
}VS Code (Copilot)
Добавьте в ваш MCP-конфиг VS Code (.vscode/mcp.json):
{
"servers": {
"serp": {
"type": "streamable-http",
"url": "https://serp.mcp.acedata.cloud/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_TOKEN"
}
}
}
}Или установите расширение Ace Data Cloud MCP для VS Code, которое объединяет все 15 MCP-серверов с настройкой в один клик.
JetBrains IDEs
Перейдите в Настройки → Инструменты → AI Assistant → Model Context Protocol (MCP)
Нажмите Добавить → HTTP
Вставьте:
{
"mcpServers": {
"serp": {
"url": "https://serp.mcp.acedata.cloud/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_TOKEN"
}
}
}
}Claude Code
Claude Code поддерживает MCP-серверы нативно:
claude mcp add serp --transport http https://serp.mcp.acedata.cloud/mcp \
-h "Authorization: Bearer YOUR_API_TOKEN"Или добавьте в .mcp.json вашего проекта:
{
"mcpServers": {
"serp": {
"type": "streamable-http",
"url": "https://serp.mcp.acedata.cloud/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_TOKEN"
}
}
}
}Cline
Добавьте в настройки MCP Cline (.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
Добавьте в вашу конфигурацию MCP:
{
"mcpServers": {
"serp": {
"type": "streamable-http",
"url": "https://serp.mcp.acedata.cloud/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_TOKEN"
}
}
}
}Roo Code
Добавьте в настройки MCP Roo Code:
{
"mcpServers": {
"serp": {
"type": "streamable-http",
"url": "https://serp.mcp.acedata.cloud/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_TOKEN"
}
}
}
}Continue.dev
Добавьте в .continue/config.yaml:
mcpServers:
- name: serp
type: streamable-http
url: https://serp.mcp.acedata.cloud/mcp
headers:
Authorization: "Bearer YOUR_API_TOKEN"Zed
Добавьте в настройки Zed (~/.config/zed/settings.json):
{
"language_models": {
"mcp_servers": {
"serp": {
"url": "https://serp.mcp.acedata.cloud/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_TOKEN"
}
}
}
}
}Тест cURL
# 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. Или запустите локально (альтернатива)
Если вы предпочитаете запускать сервер на своей машине:
# 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 (локально)
{
"mcpServers": {
"serp": {
"command": "uvx",
"args": ["mcp-serp"],
"env": {
"ACEDATACLOUD_API_TOKEN": "your_token_here"
}
}
}
}Docker (самохостинг)
docker pull ghcr.io/acedatacloud/mcp-serp:latest
docker run -p 8000:8000 ghcr.io/acedatacloud/mcp-serp:latestКлиенты подключаются со своим собственным Bearer-токеном — сервер извлекает токен из заголовка Authorization каждого запроса.
Доступные инструменты
Инструменты поиска
Инструмент | Описание |
| Гибкий поиск в Google со всеми опциями |
| Поиск изображений |
| Поиск новостных статей |
| Поиск видео |
| Поиск местных мест/компаний |
| Поиск локаций на картах |
Инструменты информации
Инструмент | Описание |
| Список доступных типов поиска |
| Список кодов стран для локализации |
| Список кодов языков для локализации |
| Список опций фильтрации по времени |
| Получение подробного руководства |
Примеры использования
Базовый веб-поиск
User: Search for information about artificial intelligence
Claude: I'll search for information about AI.
[Calls serp_google_search with query="artificial intelligence"]Поиск новостей с фильтром по времени
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"]Параметры поиска
Типы поиска
Тип | Описание |
| Обычный веб-поиск (по умолчанию) |
| Поиск изображений |
| Новостные статьи |
| Результаты на картах |
| Местные компании |
| Результаты с видео |
Фильтры временного диапазона
Код | Временной диапазон |
| За последний час |
| За последний день |
| За последнюю неделю |
| За последний месяц |
Часто используемые коды стран
Код | Страна |
| США |
| Великобритания |
| Китай |
| Япония |
| Германия |
| Франция |
Часто используемые коды языков
Код | Язык |
| Английский |
| Китайский (упрощенный) |
| Японский |
| Испанский |
| Французский |
| Немецкий |
Структура ответа
Обычные результаты поиска
knowledge_graph: Информация об объекте (компания, человек и т.д.)
answer_box: Прямые ответы
organic: Обычные результаты поиска с заголовком, ссылкой, сниппетом
people_also_ask: Похожие вопросы
related_searches: Похожие запросы
Результаты поиска изображений
images: Результаты с изображениями, URL-адресами и миниатюрами
Результаты поиска новостей
news: Новостные статьи с источником и датой
Конфигурация
Переменные окружения
Переменная | Описание | По умолчанию |
| API-токен от AceDataCloud | Обязательно |
| Базовый URL API |
|
| OAuth client ID (режим хостинга) | — |
| Базовый URL платформы |
|
| Тайм-аут запроса в секундах |
|
| Уровень логирования |
|
Опции командной строки
mcp-serp --help
Options:
--version Show version
--transport Transport mode: stdio (default) or http
--port Port for HTTP transport (default: 8000)Разработка
Настройка среды разработки
# 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 unit tests
pytest
# Run with coverage
pytest --cov=core --cov=tools
# Run integration tests (requires API token)
pytest tests/test_integration.py -m integrationКачество кода
# Format code
ruff format .
# Lint code
ruff check .
# Type check
mypy core toolsСборка и публикация
# Install build dependencies
pip install -e ".[release]"
# Build package
python -m build
# Upload to PyPI
twine upload dist/*Структура проекта
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.mdСправочник API
Этот сервер является оберткой для AceDataCloud Google SERP API:
Вклад в проект
Мы приветствуем любой вклад! Пожалуйста:
Сделайте форк репозитория
Создайте ветку для вашей функции (
git checkout -b feature/amazing)Зафиксируйте изменения (
git commit -m 'Add amazing feature')Отправьте изменения в ветку (
git push origin feature/amazing)Откройте Pull Request
Лицензия
Лицензия MIT — подробности см. в файле LICENSE.
Ссылки
Сделано с любовью AceDataCloud
Available Tools
11 toolsserp_get_usage_guideAInspect
Get a comprehensive guide for using the Google SERP tools.
Provides detailed information on how to use the SERP search tools
effectively, including parameters, examples, and best practices.
Returns:
Complete usage guide for SERP tools.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full behavioral burden. It discloses that the tool returns a guide with detailed information, which is adequate for a read-only informational tool. However, it does not mention any limitations (e.g., output length, rate limits).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is brief and front-loaded with the purpose. It uses clear structure (overview, details, return description) without unnecessary words. Minor improvement possible by tightening the second paragraph.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given zero parameters and the presence of an output schema, the description covers the essential purpose and content of the tool. It is complete enough for an agent to understand when to invoke this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has no parameters, meeting the baseline of 4. The description adds value by describing the content of the output (parameters, examples, best practices), which goes beyond what the empty schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that the tool provides a comprehensive guide for using Google SERP tools, including parameters, examples, and best practices. This distinctly differentiates it from sibling tools that perform actual searches or list data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies that this guide should be consulted before using other SERP tools, but it does not explicitly state when to use it vs. alternatives. The context is clear, but exclusions or when-not-to-use guidance is missing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
serp_google_imagesCInspect
Search Google Images and get image results.
Performs a Google Image search and returns structured image results.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number for pagination (default: 1). | |
| query | Yes | The search query string for image search. Required. | |
| number | No | Number of results per page (default: 10). Note: More than 10 results may incur additional credits. | |
| country | No | Country code for localized results (e.g., 'us', 'cn', 'uk'). Default is 'us'. | |
| language | No | Language code for results (e.g., 'en', 'zh-cn', 'fr'). Default is 'en'. | |
| image_size | No | Image size filter for image search. Options: large, medium, icon, 2mp, 4mp, 6mp, 8mp, 10mp, 12mp, 15mp, 20mp, 40mp, 70mp. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It only says 'returns structured image results,' which is a basic outcome but does not mention pagination behavior, credit implications, or any quirks such as rate limits or result metadata format. The description adds minimal value beyond the tool's name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences, front-loaded with the main verb and resource. It is efficient and has no redundant filler. However, it is somewhat tautological ('Search Google Images and get image results' restates the tool name), but for conciseness this is well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having an output schema and fully documented parameters, the description is incomplete for a tool with six parameters and no annotations. It lacks guidance on typical use cases, interaction with filters, pagination, or credit costs (though schema mentions credits). The description is too sparse to provide the agent with a complete behavioral picture.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, meaning all six parameters are already documented with meanings (e.g., 'country' for localized results, 'image_size' for filtering). The description itself adds no parameter details, so the baseline of 3 is appropriate. The schema does the heavy lifting, and no additional value is contributed by the prose description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Search Google Images and get image results' and 'Performs a Google Image search and returns structured image results.' This clearly identifies the tool's function (searching images) and differentiates it from sibling tools like serp_google_search (web search) and serp_google_news. It could be more explicit about the 'image-specific' nature, but the resource and verb are clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention that this is for image results specifically, nor does it reference sibling tools or exclusions. The usage context is only implied by the tool name and generic description, leaving the agent to infer when to choose this over other search tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
serp_google_mapsBInspect
Search Google Maps for locations.
Performs a Google Maps search and returns structured map results.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number for pagination (default: 1). | |
| query | Yes | The search query string for maps/location search. Required. | |
| number | No | Number of results per page (default: 10). Note: More than 10 results may incur additional credits. | |
| country | No | Country code for localized results (e.g., 'us', 'cn', 'uk'). Default is 'us'. | |
| language | No | Language code for results (e.g., 'en', 'zh-cn', 'fr'). Default is 'en'. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden of disclosing behavior. It only mentions 'returns structured map results' but fails to mention pagination, rate limits, cost implications, or any side effects. The schema notes that more than 10 results may incur additional credits, but this is not reflected in the description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise at two sentences, front-loaded with the main action. The second sentence adds clarity about output format but is somewhat redundant with the first. Overall, it is well-structured and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (5 parameters, output schema), the description is adequate for basic understanding but lacks usage context and differentiation from siblings. It also omits behavioral details like pagination and credit usage that would help an agent select and invoke the tool correctly without relying solely on the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with detailed parameter descriptions, so the description adds no value beyond the schema. The description does not explain how parameters like country or language affect results, but the schema already handles this.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb and resource: 'Search Google Maps for locations.' This distinguishes it from sibling tools like google_search and google_images, which target other result types.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied through the description ('Search Google Maps for locations'), but there is no explicit guidance on when to use this tool versus alternatives such as google_places or google_search. No use cases or exclusions are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
serp_google_newsBInspect
Search Google News and get news article results.
Performs a Google News search and returns structured news results.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number for pagination (default: 1). | |
| query | Yes | The search query string for news search. Required. | |
| number | No | Number of results per page (default: 10). Note: More than 10 results may incur additional credits. | |
| country | No | Country code for localized results (e.g., 'us', 'cn', 'uk'). Default is 'us'. | |
| language | No | Language code for results (e.g., 'en', 'zh-cn', 'fr'). Default is 'en'. | |
| time_range | No | Time filter for results. Options: 'h'/'qdr:h' (past hour), 'd'/'qdr:d' (past day), 'w'/'qdr:w' (past week), 'm'/'qdr:m' (past month), 'y'/'qdr:y' (past year), or None for no time restriction (default). |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral transparency. It only adds that results are 'structured news results,' which is a minimal behavioral hint. It does not disclose pagination behavior, credit implications, default country/language behavior, or any side effects, leaving a significant gap for a tool with no annotation support.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences and front-loaded with the core purpose. However, the second sentence ('Performs a Google News search...') largely restates the first, making it slightly redundant. It is still concise and easy to scan, but not zero-waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having six parameters and several sibling search tools, the description is under-specified. It omits mention of localization options (country/language), time range filtering, and any nuances of Google News vs. general web search. The output schema exists, but the narrative context is minimal and does not help the agent understand when or how to fully leverage the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides descriptions for all six parameters, covering meaning, defaults, and constraints (e.g., 'number' notes additional credits beyond 10). Since schema_description_coverage is 100%, the description does not need to compensate, and it adds no extra parameter information beyond restating the tool's purpose.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that the tool performs a Google News search and returns news article results, specifying both the verb ('search') and the resource ('Google News'). This clearly distinguishes it from sibling tools like serp_google_search or serp_google_images, even though the two sentences are slightly redundant.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The usage context is implied by the tool name and description—use for Google News searches—but there is no explicit guidance on when to choose this over sibling tools or any exclusions. No alternatives are mentioned, leaving the agent to infer the use case without clear direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
serp_google_placesCInspect
Search Google for local places and businesses.
Performs a Google Places search and returns structured place results.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number for pagination (default: 1). | |
| query | Yes | The search query string for local places/businesses search. Required. | |
| number | No | Number of results per page (default: 10). Note: More than 10 results may incur additional credits. | |
| country | No | Country code for localized results (e.g., 'us', 'cn', 'uk'). Default is 'us'. | |
| language | No | Language code for results (e.g., 'en', 'zh-cn', 'fr'). Default is 'en'. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It only mentions that it 'returns structured place results,' but does not disclose pagination behavior, default country/language, credit implications, or any other operational characteristics. Minimal value beyond the function itself.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise, with the main action front-loaded in the first sentence. The second sentence is somewhat redundant with the first, but the overall length is appropriate and there is no fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (5 params, required query, no annotations) and the existence of sibling tools like serp_google_maps, the description is incomplete. It lacks usage guidance and behavioral details, though the output schema presumably covers return values. The description alone does not provide enough context for an agent to choose this tool confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, as all five parameters have descriptions in the input schema. The tool description itself adds no parameter-level detail beyond the schema, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Search') and resource ('local places and businesses'), and notes it returns structured place results. This distinguishes it from general web search or image search, though it does not explicitly compare to the similar serp_google_maps tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives like serp_google_search or serp_google_maps. The description only states what it does, without context, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
serp_google_searchBInspect
Search Google and get structured results using the SERP API.
Performs a Google search and returns the complete JSON response from the API,
preserving all available fields and data.
Args:
query: The search query string. Required.
search_type: Type of search to perform. Options:
- "search": Regular web search (default)
- "images": Image search
- "news": News articles
- "maps": Map results
- "places": Local business/place results
- "videos": Video results
country: Country code for localized results (e.g., "us", "cn", "uk").
Default is "us".
language: Language code for results (e.g., "en", "zh-cn", "fr").
Default is "en".
time_range: Time filter for results. Options:
- "qdr:h": Past hour
- "qdr:d": Past day
- "qdr:w": Past week
- "qdr:m": Past month
- None: No time restriction (default)
number: Number of results per page (default: 10).
Note: More than 10 results may incur additional credits.
page: Page number for pagination (default: 1).
Returns:
Complete JSON response from the SERP API containing all available data.
Example:
serp_google_search(query="artificial intelligence", search_type="news")
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number for pagination (default: 1). | |
| query | Yes | The search query string. Required. | |
| number | No | Number of results per page (default: 10). Note: More than 10 results may incur additional credits. | |
| country | No | Country code for localized results (e.g., 'us', 'cn', 'uk'). Default is 'us'. | |
| language | No | Language code for results (e.g., 'en', 'zh-cn', 'fr'). Default is 'en'. | |
| image_size | No | Image size filter. Only valid when search_type is 'images'. Options: large, medium, icon, 2mp, 4mp, 6mp, 8mp, 10mp, 12mp, 15mp, 20mp, 40mp, 70mp. | |
| time_range | No | Time filter for results. Options: 'h'/'qdr:h' (past hour), 'd'/'qdr:d' (past day), 'w'/'qdr:w' (past week), 'm'/'qdr:m' (past month), 'y'/'qdr:y' (past year), or None for no time restriction (default). | |
| search_type | No | Type of search to perform. Options: 'search' (regular web search, default), 'images' (image search), 'news' (news articles), 'maps' (map results), 'places' (local business/place results), 'videos' (video results). | search |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses that it returns the complete JSON response preserving all fields and warns about additional credits for number >10. However, it does not explicitly state read-only behavior, rate limits, or error handling. This is adequate but not comprehensive for an unannotated tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-organized with Args, Returns, and Example sections, making it easy to scan. However, it redundantly repeats the schema's parameter descriptions, extending the length without adding much new information. The example is useful, but the duplication lowers the efficiency.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (8 parameters, full schema coverage, and an output schema), the description covers all essential aspects: purpose, parameters, return format, and an example. The only notable omission is the lack of guidance on sibling tools, but the description is otherwise complete for effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides 100% description coverage for all 8 parameters. The tool description largely duplicates these descriptions, but adds a concrete example and a credit warning for the 'number' parameter. This adds marginal value beyond the schema, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Search Google and get structured results using the SERP API' with a specific verb and resource. It also enumerates search types (web, images, news, etc.), distinguishing it from generic API tools. However, it does not explicitly differentiate from the specialized sibling tools like serp_google_images or serp_google_news, so it misses the full 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus the specialized sibling tools (serp_google_images, serp_google_news, etc.). It implies generality through the search_type parameter but does not mention alternatives, exclusions, or when to choose a sibling. This lack of comparative guidance leaves the agent to infer usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
serp_google_videosBInspect
Search Google Videos and get video results.
Performs a Google Video search and returns structured video results.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number for pagination (default: 1). | |
| query | Yes | The search query string for video search. Required. | |
| number | No | Number of results per page (default: 10). Note: More than 10 results may incur additional credits. | |
| country | No | Country code for localized results (e.g., 'us', 'cn', 'uk'). Default is 'us'. | |
| language | No | Language code for results (e.g., 'en', 'zh-cn', 'fr'). Default is 'en'. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It only says 'returns structured video results,' which is minimal and does not disclose behavioral traits such as pagination behavior, potential rate limits, or any caveats about result content. This falls short for a search tool with no annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, but the second sentence largely restates the first ('Performs a Google Video search and returns structured video results' vs 'Search Google Videos and get video results'). This redundancy means it is not maximally concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple search tool with a comprehensive input schema and an output schema indicated, the description covers the core purpose and return type. It could add usage context, but the structured fields already provide parameter and result details, making it adequate overall.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage with descriptions for all five parameters (query, page, number, country, language). The description adds no extra parameter meaning, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool performs a Google Video search and returns structured video results. The verb 'search' and resource 'Google Videos' are specific, and it distinguishes from sibling tools like serp_google_images or serp_google_news.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied: the tool is for searching Google Videos. However, it does not explicitly mention when to prefer this over alternatives or provide any exclusions. The context signals list sibling search tools, but the description offers no comparative guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
serp_list_countriesAInspect
List commonly used country codes for Google search.
Shows common country codes that can be used to localize search results.
Returns:
Table of country codes and their countries.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, but the description honestly states that the tool returns a table of country codes, implying a read-only operation. It is straightforward and does not hide any behavioral traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences, front-loads the purpose, and includes a return description. Every sentence is relevant and concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no parameters and an output schema, the description is largely complete. It could mention the output format or that it lists only 'common' codes, but overall it suffices for the simple tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the description cannot add meaning beyond the schema. Per guidelines, this is a baseline of 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states verb ('list'/'shows') and resource ('country codes for Google search'), and it is distinct from sibling tools that list other types (languages, search types, time ranges).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
While the purpose is clear, the description provides no explicit guidance on when to use this tool over its siblings or when not to use it. The usage context is only implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
serp_list_languagesAInspect
List commonly used language codes for Google search.
Shows common language codes that can be used to get results in specific languages.
Returns:
Table of language codes and their languages.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description only states that it returns a table of language codes and languages. It omits potential behavioral traits such as whether the list is exhaustive, if it requires authentication, or any rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with only two short sentences and a returns line, conveying the purpose and output without any unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given zero parameters and an output schema, the description covers the essential information: what the tool does and what it returns. It is self-contained and clear, though it could briefly address when to use it among sibling tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, so schema coverage is 100%. The description adds no parameter information, but this is acceptable as the baseline for zero parameters is 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it lists commonly used language codes for Google search, specifying the verb and resource. It differentiates from sibling listing tools like serp_list_countries by focusing on languages, but does not explicitly contrast with them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when needing language codes for search localization, but it lacks explicit guidance on when to use this tool versus alternatives like serp_list_countries or serp_list_time_ranges.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
serp_list_search_typesAInspect
List all available Google search types.
Shows all available search types and their use cases.
Use this to understand which search type to use for your query.
Returns:
Table of all search types with descriptions.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided. The description mentions it returns a table of search types with descriptions, which is adequate. It does not disclose potential side effects or permissions, but given the read-only nature, it is acceptable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with three sentences, clearly stating the action, purpose, and return value. It is well-structured and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no parameters and includes an output schema, the description is complete. It explains the purpose, usage context, and output format.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has no parameters and the input schema has 100% coverage. The description does not need to add parameter information; a baseline of 4 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists all available Google search types with their use cases. It distinguishes itself from sibling tools that perform specific searches by serving as a preliminary reference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description advises using this tool to understand which search type to use, implying it is a pre-step to other search tools. It does not explicitly state when not to use, but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
serp_list_time_rangesAInspect
List available time range filters for Google search.
Shows all time range options that can be used to filter results by date.
Returns:
Table of time range codes and their meanings.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries full burden. It discloses that the tool returns a table of codes and meanings, and the verb 'List' implies a read-only operation. However, it lacks details on whether the list is static or dynamic, or if any authentication is needed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences, front-loaded with the key action, and contains no superfluous words. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (0 parameters, has output schema), the description is complete. It states the purpose, the scope, and the return format, which is sufficient for an agent to select and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has no parameters, and schema description coverage is 100% implicitly. The description does not need to add parameter details. The baseline for 0 parameters is 4, and the description meets that adequately.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it lists available time range filters for Google search, with a specific verb 'List' and a well-defined resource. It distinguishes itself from sibling tools like serp_google_search and serp_list_countries by focusing on time range options.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when needing time range filters, but does not explicitly state when to use this tool versus alternatives, such as before invoking serp_google_search. No when-not or exclusion guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
6 tool updates
v0.1.49- Changed
serp_google_images8 fields changed- changed
Input schema / properties / country / anyOfPrevious value: -[ - { - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "maxLength": 32, + "minLength": 1, + "type": "string" + }, + { + "type": "null" + } +] - added
Input schema / properties / image_sizeAdded value: +{ + "anyOf": [ + { + "enum": [ + "large", + "medium", + "icon", + "2mp", + "4mp", + "6mp", + "8mp", + "10mp", + "12mp", + "15mp", + "20mp", + "40mp", + "70mp" + ], + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Image size filter for image search. Options: large, medium, icon, 2mp, 4mp, 6mp, 8mp, 10mp, 12mp, 15mp, 20mp, 40mp, 70mp.", + "title": "Image Size" +} - changed
Input schema / properties / language / anyOfPrevious value: -[ - { - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "maxLength": 32, + "minLength": 1, + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / properties / number / anyOfPrevious value: -[ - { - "type": "integer" - }, - { - "type": "null" - } -]New value: +[ + { + "maximum": 100, + "minimum": 1, + "type": "integer" + }, + { + "type": "null" + } +] - changed
Input schema / properties / page / anyOfPrevious value: -[ - { - "type": "integer" - }, - { - "type": "null" - } -]New value: +[ + { + "maximum": 100, + "minimum": 1, + "type": "integer" + }, + { + "type": "null" + } +] - added
Input schema / properties / query / maxLengthAdded value: +2048 - added
Input schema / properties / query / minLengthAdded value: +1 - added
Input schema / properties / query / patternAdded value: +".*\\S.*"
- Changed
serp_google_maps7 fields changed- changed
Input schema / properties / country / anyOfPrevious value: -[ - { - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "maxLength": 32, + "minLength": 1, + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / properties / language / anyOfPrevious value: -[ - { - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "maxLength": 32, + "minLength": 1, + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / properties / number / anyOfPrevious value: -[ - { - "type": "integer" - }, - { - "type": "null" - } -]New value: +[ + { + "maximum": 100, + "minimum": 1, + "type": "integer" + }, + { + "type": "null" + } +] - changed
Input schema / properties / page / anyOfPrevious value: -[ - { - "type": "integer" - }, - { - "type": "null" - } -]New value: +[ + { + "maximum": 100, + "minimum": 1, + "type": "integer" + }, + { + "type": "null" + } +] - added
Input schema / properties / query / maxLengthAdded value: +2048 - added
Input schema / properties / query / minLengthAdded value: +1 - added
Input schema / properties / query / patternAdded value: +".*\\S.*"
- Changed
serp_google_news9 fields changed- changed
Input schema / properties / country / anyOfPrevious value: -[ - { - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "maxLength": 32, + "minLength": 1, + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / properties / language / anyOfPrevious value: -[ - { - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "maxLength": 32, + "minLength": 1, + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / properties / number / anyOfPrevious value: -[ - { - "type": "integer" - }, - { - "type": "null" - } -]New value: +[ + { + "maximum": 100, + "minimum": 1, + "type": "integer" + }, + { + "type": "null" + } +] - changed
Input schema / properties / page / anyOfPrevious value: -[ - { - "type": "integer" - }, - { - "type": "null" - } -]New value: +[ + { + "maximum": 100, + "minimum": 1, + "type": "integer" + }, + { + "type": "null" + } +] - added
Input schema / properties / query / maxLengthAdded value: +2048 - added
Input schema / properties / query / minLengthAdded value: +1 - added
Input schema / properties / query / patternAdded value: +".*\\S.*" - changed
Input schema / properties / time_range / anyOfPrevious value: -[ - { - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "enum": [ + "h", + "d", + "w", + "m", + "y", + "qdr:h", + "qdr:d", + "qdr:w", + "qdr:m", + "qdr:y" + ], + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / properties / time_range / descriptionPrevious value: -"Time filter for results. Options: 'qdr:h' (past hour), 'qdr:d' (past day), 'qdr:w' (past week), 'qdr:m' (past month), or None for no time restriction (default)."New value: +"Time filter for results. Options: 'h'/'qdr:h' (past hour), 'd'/'qdr:d' (past day), 'w'/'qdr:w' (past week), 'm'/'qdr:m' (past month), 'y'/'qdr:y' (past year), or None for no time restriction (default)."
- Changed
serp_google_places7 fields changed- changed
Input schema / properties / country / anyOfPrevious value: -[ - { - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "maxLength": 32, + "minLength": 1, + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / properties / language / anyOfPrevious value: -[ - { - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "maxLength": 32, + "minLength": 1, + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / properties / number / anyOfPrevious value: -[ - { - "type": "integer" - }, - { - "type": "null" - } -]New value: +[ + { + "maximum": 100, + "minimum": 1, + "type": "integer" + }, + { + "type": "null" + } +] - changed
Input schema / properties / page / anyOfPrevious value: -[ - { - "type": "integer" - }, - { - "type": "null" - } -]New value: +[ + { + "maximum": 100, + "minimum": 1, + "type": "integer" + }, + { + "type": "null" + } +] - added
Input schema / properties / query / maxLengthAdded value: +2048 - added
Input schema / properties / query / minLengthAdded value: +1 - added
Input schema / properties / query / patternAdded value: +".*\\S.*"
- Changed
serp_google_search10 fields changed- changed
Input schema / properties / country / anyOfPrevious value: -[ - { - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "maxLength": 32, + "minLength": 1, + "type": "string" + }, + { + "type": "null" + } +] - added
Input schema / properties / image_sizeAdded value: +{ + "anyOf": [ + { + "enum": [ + "large", + "medium", + "icon", + "2mp", + "4mp", + "6mp", + "8mp", + "10mp", + "12mp", + "15mp", + "20mp", + "40mp", + "70mp" + ], + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Image size filter. Only valid when search_type is 'images'. Options: large, medium, icon, 2mp, 4mp, 6mp, 8mp, 10mp, 12mp, 15mp, 20mp, 40mp, 70mp.", + "title": "Image Size" +} - changed
Input schema / properties / language / anyOfPrevious value: -[ - { - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "maxLength": 32, + "minLength": 1, + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / properties / number / anyOfPrevious value: -[ - { - "type": "integer" - }, - { - "type": "null" - } -]New value: +[ + { + "maximum": 100, + "minimum": 1, + "type": "integer" + }, + { + "type": "null" + } +] - changed
Input schema / properties / page / anyOfPrevious value: -[ - { - "type": "integer" - }, - { - "type": "null" - } -]New value: +[ + { + "maximum": 100, + "minimum": 1, + "type": "integer" + }, + { + "type": "null" + } +] - added
Input schema / properties / query / maxLengthAdded value: +2048 - added
Input schema / properties / query / minLengthAdded value: +1 - added
Input schema / properties / query / patternAdded value: +".*\\S.*" - changed
Input schema / properties / time_range / anyOfPrevious value: -[ - { - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "enum": [ + "h", + "d", + "w", + "m", + "y", + "qdr:h", + "qdr:d", + "qdr:w", + "qdr:m", + "qdr:y" + ], + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / properties / time_range / descriptionPrevious value: -"Time filter for results. Options: 'qdr:h' (past hour), 'qdr:d' (past day), 'qdr:w' (past week), 'qdr:m' (past month), or None for no time restriction (default)."New value: +"Time filter for results. Options: 'h'/'qdr:h' (past hour), 'd'/'qdr:d' (past day), 'w'/'qdr:w' (past week), 'm'/'qdr:m' (past month), 'y'/'qdr:y' (past year), or None for no time restriction (default)."
- Changed
serp_google_videos7 fields changed- changed
Input schema / properties / country / anyOfPrevious value: -[ - { - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "maxLength": 32, + "minLength": 1, + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / properties / language / anyOfPrevious value: -[ - { - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "maxLength": 32, + "minLength": 1, + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / properties / number / anyOfPrevious value: -[ - { - "type": "integer" - }, - { - "type": "null" - } -]New value: +[ + { + "maximum": 100, + "minimum": 1, + "type": "integer" + }, + { + "type": "null" + } +] - changed
Input schema / properties / page / anyOfPrevious value: -[ - { - "type": "integer" - }, - { - "type": "null" - } -]New value: +[ + { + "maximum": 100, + "minimum": 1, + "type": "integer" + }, + { + "type": "null" + } +] - added
Input schema / properties / query / maxLengthAdded value: +2048 - added
Input schema / properties / query / minLengthAdded value: +1 - added
Input schema / properties / query / patternAdded value: +".*\\S.*"
11 tool updates
v0.1.46- Added
serp_get_usage_guide - Added
serp_google_images - Added
serp_google_maps - Added
serp_google_news - Added
serp_google_places - Added
serp_google_search - Added
serp_google_videos - Added
serp_list_countries - Added
serp_list_languages - Added
serp_list_search_types - Added
serp_list_time_ranges
11 tool updates
v0.1.45- Removed
serp_get_usage_guide - Removed
serp_google_images - Removed
serp_google_maps - Removed
serp_google_news - Removed
serp_google_places - Removed
serp_google_search - Removed
serp_google_videos - Removed
serp_list_countries - Removed
serp_list_languages - Removed
serp_list_search_types - Removed
serp_list_time_ranges
TDQS
Tools are well-named by search type, but the general search tool serp_google_search can perform all specific searches via its search_type parameter, creating redundancy. However, descriptions clarify the specialized tools, so confusion is minimal.
Most tools follow 'serp_google_<noun>' pattern, but serp_get_usage_guide uses 'get' instead of 'google', and listing tools use 'serp_list_' prefix, introducing minor inconsistency.
11 tools cover all major Google search types (web, images, news, maps, places, videos) plus helpful utility tools (usage guide, code listings). This is well-scoped for a SERP API wrapper.
The tool set comprehensively covers the domain with dedicated tools for each search type, localization support, and helper tools for reference. No obvious gaps for typical SERP use cases.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Live Google Maps business search, review, and photo data for AI agents over MCP.
Google Shopping products, prices, sellers, and deals as structured data via a hosted MCP server.
All HasData scraping tools in one MCP server: Google, TikTok, Instagram, maps, e-commerce and more.
The Google Maps MCP server is a fully-managed server provided by the Maps Grounding Lite API that connects AI applications to Google Maps Platform services. It provides three main tools for building LLM applications: searching for places, looking up weather information, and computing routes with details like distance and travel time. The server acts as a proxy that translates Google Maps data into a format that AI applications can understand, enabling agents to accurately answer real-world location and travel queries.
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceAn MCP (Model Context Protocol) server that provides Google search capabilities and webpage content analysis tools. This server enables AI models to perform Google searches and analyze webpage content programmatically.27256ISC
- AlicenseNot gradedqualityAmaintenanceAn MCP server that integrates with SerpApi to retrieve search results from multiple search engines including Google, Bing, Yahoo, and others, enabling fast access to both live and archived search data.168MIT
- AlicenseNot gradedqualityDmaintenanceA Model Context Protocol (MCP) based search API server that provides standardized access to Google Maps, Google Flights, Google Hotels and other services. This server enables AI assistants to access various search services through a unified interface.73MIT
- -licenseNot gradedqualityNot gradedmaintenanceAn MCP (Multi-Agent Conversation Protocol) Server that enables interaction with Google's Custom Search API, allowing agents to perform customized web searches through natural language requests.-
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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