Google Search MCP Server (SERP)
Облачный сервер Model Context Protocol (MCP), который предоставляет Claude, Cursor, Windsurf и любому другому MCP-клиенту восемь инструментов Google Search только для чтения. Получайте актуальную страницу результатов поиска Google (SERP) с AI Overview и блоком People Also Ask, отправляйте запросы в Google AI Mode и просматривайте результаты поиска новостей, товаров, карточки товаров и короткие видео. Все данные возвращаются в виде структурированного JSON. Проект Google Cloud и настройка поисковой системы не требуются.
Каждый месяц предоставляется 1 000 бесплатных кредитов, банковская карта не нужна. Этого хватит на 100 запросов с полной SERP или на 200 запросов стоимостью 5 кредитов.
https://mcp.hasdata.com/mcp?apis=google_serp
В этом случае «SERP» и «Google Search» обозначают один продукт. Сервер возвращает разобранные страницы результатов поиска Google.
Содержание
-
Требования
-
Быстрый запуск
-
Примеры запросов
-
Инструменты
-
Ошибки и сценарии сбоев
-
Стоимость, бесплатный тариф и ограничения
-
Выбор инструмента
-
Сравнение с аналогами
-
Часто задаваемые вопросы
-
Ссылки HasData
-
Разработка
-
Участие в проекте
-
Лицензия
Требования
MCP-клиент с поддержкой streamable HTTP и пользовательских заголовков. Ключ API HasData можно бесплатно создать в панели управления; банковская карта не нужна. Бесплатного тарифа хватит примерно на 100–200 запросов в месяц — в зависимости от инструмента. Больше ничего не потребуется. Это удалённый сервер, поэтому для подключения достаточно указать URL и заголовок: проект Google Cloud или Programmable Search Engine настраивать не нужно. Если клиент поддерживает только stdio, используйте запускатель @hasdata/google-search-mcp (npm) или hasdata-google-search-mcp (PyPI).
Быстрый запуск
| URL | https://mcp.hasdata.com/mcp?apis=google_serp |
| Транспорт | HTTP, streamable |
| Заголовок авторизации | x-api-key: HASDATA_API_KEY |
URL сервера одинаков для всех клиентов. Мы проверили его в Claude Code и Claude Desktop. Примеры ниже приведены в формате, рекомендованном в документации каждого клиента для подключения удалённого сервера.
Клиенты с поддержкой OAuth могут добавить тот же URL как коннектор и войти в систему, не указывая ключ в файле конфигурации.
Claude Code
claude mcp add --transport http google-search "https://mcp.hasdata.com/mcp?apis=google_serp" \
--header "x-api-key: HASDATA_API_KEY"
Claude Desktop
Claude Desktop загружает из файла конфигурации только локальные серверы (stdio), поэтому для подключения к удалённому серверу нужен запускатель stdio. Эту роль выполняет пакет @hasdata/google-search-mcp; ключ он получает из переменных окружения.
claude_desktop_config.json:
{
"mcpServers": {
"google-search": {
"command": "npx",
"args": ["-y", "@hasdata/google-search-mcp"],
"env": { "HASDATA_API_KEY": "YOUR_KEY" }
}
}
}
Предпочитаете Python вместо Node? Замените запускатель на пакет PyPI. Его можно запустить с помощью uvx без предварительной установки:
{
"mcpServers": {
"google-search": {
"command": "uvx",
"args": ["hasdata-google-search-mcp"],
"env": { "HASDATA_API_KEY": "YOUR_KEY" }
}
}
}
Если клиент поддерживает OAuth, можно добавить URL как пользовательский коннектор и обойтись без запускателя.
Cursor
.cursor/mcp.json:
{
"mcpServers": {
"google-search": {
"url": "https://mcp.hasdata.com/mcp?apis=google_serp",
"headers": { "x-api-key": "HASDATA_API_KEY" }
}
}
}
Windsurf
~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"google-search": {
"serverUrl": "https://mcp.hasdata.com/mcp?apis=google_serp",
"headers": { "x-api-key": "HASDATA_API_KEY" }
}
}
}
Cline
{
"mcpServers": {
"google-search": {
"url": "https://mcp.hasdata.com/mcp?apis=google_serp",
"type": "streamableHttp",
"headers": { "x-api-key": "HASDATA_API_KEY" },
"disabled": false
}
}
}
VS Code
.vscode/mcp.json:
{
"servers": {
"google-search": {
"type": "http",
"url": "https://mcp.hasdata.com/mcp?apis=google_serp",
"headers": { "x-api-key": "HASDATA_API_KEY" }
}
}
}
Gemini CLI
~/.gemini/settings.json:
{
"mcpServers": {
"google-search": {
"httpUrl": "https://mcp.hasdata.com/mcp?apis=google_serp",
"headers": { "x-api-key": "HASDATA_API_KEY" }
}
}
}
Примеры запросов
Найди в Google
best running shoesи покажи первые десять обычных результатов вместе с AI Overview.
Один вызов, 10 кредитов. Ответ SERP включает AI Overview наряду с обычными результатами поиска.
Для того же запроса собери все вопросы People Also Ask и получи ответы AI Overview с источниками.
Один вызов на каждый вопрос, по 5 кредитов. В каждой записи relatedQuestions есть aiOverview.pageToken; инструмент AI Overview использует этот токен, чтобы получить блоки с ответом и ссылки на источники.
Отправь запрос в Google AI Mode:
what is the Model Context Protocol— и покажи ответ с цитируемыми источниками.
Один вызов, 10 кредитов. AI Mode возвращает сгенерированный ответ в виде текстовых блоков и список источников.
Найди в Google Shopping
nike air max, затем получи полную карточку первого результата: все магазины, где он продаётся, диапазон цен и разбивку отзывов.
Два вызова. Поиск в Shopping стоит 10 кредитов и возвращает токен для каждого товара. Инструмент карточек товаров тратит 5 кредитов, чтобы раскрыть сведения о магазинах, вариантах и отзывах.
Покажи последние новости Google News по запросу
artificial intelligence, а отдельно — результаты поиска коротких видео по запросуcooking pasta.
Два вызова, по 10 кредитов каждый.
Рабочий процесс опирается на две цепочки. Ответ SERP сразу содержит aiOverview и pageToken для каждого вопроса People Also Ask. Поэтому получить сгенерированные Google ответы можно либо бесплатно вместе с результатами поиска, либо отдельным запросом за 5 кредитов на каждый вопрос. Результаты Shopping также содержат токен для каждого товара, поэтому перейти от списка к полной карточке с предложениями нескольких магазинов можно одним вызовом.
Инструменты
| Инструмент | Что возвращает |
|---|---|
hasdata_google_serp_ai_mode_getAiModeResponse | Текст ответа в диалоговом формате, ссылки на процитированные источники, разбивку по подтемам, предложения продолжить диалог и subsequentRequestToken для многошагового взаимодействия. 10 кредитов за вызов |
hasdata_google_serp_ai_overview_getAiOverviewResponse | Текст ответа, сгенерированного AI, URL указанных источников и раскрытые разделы по подтемам. 5 кредитов за вызов |
hasdata_google_serp_events_getEventInformation | Название мероприятия, дату и время начала, название и адрес площадки, ссылки на билеты и источники, описание и миниатюру. 5 кредитов за вызов |
hasdata_google_serp_immersive_product_getImmersive_e29f691177 | Предложения нескольких магазинов (продавец, цена, доставка, состояние товара, URL), характеристики и изображения товара, оценки и nextPageToken. 5 кредитов за вызов |
hasdata_google_serp_news_getGoogleNews | Заголовок и краткое описание статьи, издание-источник, дату публикации, миниатюру и URL, а также токены для перехода между темами, подразделами и группами связанных материалов. 10 кредитов за вызов |
hasdata_google_serp_product_getProductInformation | Название и изображения товара, цену, оценки, характеристики, предложения продавцов (продавец, доставка, состояние товара, итоговая цена) и текст отзывов — в зависимости от searchType. 10 кредитов за вызов |
hasdata_google_serp_serp_getSearchResults | Обычные результаты (название, ссылка, краткое описание, позиция), объявления, панель знаний, связанные запросы, People Also Ask, блок местных результатов, расширенные описания, AI Overview pageToken и расширенные…. 10 кредитов за вызов |
hasdata_google_serp_serp_light_getSearchResults | Обычные результаты (название, ссылка, отображаемая ссылка, краткое описание, дополнительные ссылки, расширения, дата, оценка и число отзывов), AI Overview с текстовыми блоками и ссылками на источники,…. 5 кредитов за вызов |
hasdata_google_serp_shopping_getSearchResults | Название товара, цену, продавца или источник, оценку, число отзывов, миниатюру, ссылку на товар, productId, immersiveProductPageToken и фильтры с hasdata_link для…. 10 кредитов за вызов |
hasdata_google_serp_short_videos_getShortVideosSearchResults | Название видео, миниатюру, длительность, платформу-источник, канал или автора, дату публикации и прямую ссылку на видео. 10 кредитов за вызов |
Десять инструментов, все — только для чтения. Приведённые ниже примеры основаны на реальных вызовах, но сокращены. Результаты меняются вместе с Google, поэтому воспринимайте их как примеры структуры данных. Название каждого инструмента ведёт к описанию его endpoint.
В примерах показана полезная нагрузка, а не полный ответ. Результат вызова tools/call содержит один текстовый блок, в котором находится JSON с полями url, status, text и json. Собранные данные находятся в json. В необработанном ответе JSON-RPC путь к ним такой: result.content[0].text, после чего текст нужно преобразовать в JSON и обратиться к .json. Чат-клиент выполняет это преобразование за вас, а код, который обращается напрямую к endpoint, — нет.
Google SERP
hasdata_google_serp_serp_getSearchResults
Полная страница результатов по запросу.
| Параметр | Тип | Обязательный | Примечания |
|---|---|---|---|
q | string | да | Поисковый запрос в точной формулировке, которую ввёл бы пользователь |
gl / hl | string | Двухбуквенные коды страны и языка | |
location / uule | string | Географическое местоположение: название или строка uule | |
num | number | Примерное количество результатов на странице. Сейчас Google ограничивает их число примерно десятью и игнорирует более высокие значения, поэтому при num больше 10 дополнительных результатов не будет | |
start | number | Смещение для перехода к результатам на следующей странице | |
tbm / tbs | string | Тип поиска и расширенные фильтры — исходные параметры Google | |
deviceType | string | desktop, mobile или tablet |
Возвращает searchInformation, organicResults, aiOverview, relatedQuestions, relatedSearches, perspectives, immersiveProducts и pagination, включая те блоки, которые Google показывает для данного запроса. Каждый обычный результат содержит position, title, link, displayedLink, source, snippet, snippetHighlitedWords, date и images.
AI Overview возвращается двумя способами. Обычно блок
aiOverviewсодержитtextBlocksиreferences, которые можно сразу прочитать. Иногда Google скрывает его за токеном: в этом случае вместо блоковaiOverviewсодержитpageTokenиhasdataLink. Такой же формат используется для каждой записи вrelatedQuestions: она включаетquestionиaiOverviewс теми жеpageTokenиhasdataLink. Получить полный ответ по этим данным позволяет инструмент AI Overview, описанный ниже. Таким образом, ответы в блоке People Also Ask представлены как AI Overview, которые нужно запрашивать по одному токену за раз. В большинстве запросовaiOverviewверхнего уровня возвращается сразу, но иногда вместо него приходит токен, поэтому обрабатывайте оба варианта.
{
"organicResults": [
{
"position": 1,
"title": "The 15 Best Running Shoes of 2026",
"link": "https://www.runnersworld.com/gear/a19663621/best-running-shoes/",
"source": "Runner's World",
"snippet": "The Brooks Ghost is our No. 1 shoe when we recommend new trainers…"
}
],
"aiOverview": {
"textBlocks": [ { "type": "paragraph", "snippet": "The best running shoes depend on your goal…" } ],
"references": [ { "index": 0, "title": "7 Best Running Shoes in 2026 - RunRepeat", "link": "https://runrepeat.com/guides/best-running-shoes" } ]
},
"relatedQuestions": [
{ "question": "What are the top 5 best running shoes?", "aiOverview": { "pageToken": "eyJpZCI6…", "hasdataLink": "https://api.hasdata.com/scrape/google/ai-overview?pageToken=eyJpZCI6…" } }
],
"pagination": { "next": "…" }
}
Google AI Overview
hasdata_google_serp_ai_overview_getAiOverviewResponse
Получает ответ, скрытый за токеном AI Overview.
| Параметр | Тип | Обязательный | Примечания |
|---|---|---|---|
pageToken | string | да | aiOverview.pageToken из ответа SERP, в том числе из записей relatedQuestions. В том же объекте токена содержится hasdataLink — готовый URL REST, по которому можно получить тот же ответ без этого инструмента |
Возвращает aiOverview с полями textBlocks и references. Используйте этот инструмент, если SERP вернул токен вместо блоков с ответом, а также чтобы получить ответ со ссылками на источники для каждого вопроса People Also Ask.
Токены действуют около 4 минут. Если срок действия токена истёк, результат не будет пустым: инструмент вернёт ошибку
isError: trueс текстомHasData API error: 400 Bad Request. Обрабатывайте её так же, как ошибку из-за неверного ключа, и повторно выполните запрос SERP, чтобы получить новый токен.
{
"aiOverview": {
"textBlocks": [ { "type": "paragraph", "snippet": "The top five running shoes feature versatile options for daily training and racing…" } ],
"references": [ { "index": 0, "title": "…", "link": "https://…" } ]
}
}
Google AI Mode
hasdata_google_serp_ai_mode_getAiModeResponse
Ответ Google AI Mode на запрос — результат диалогового поиска.
| Параметр | Тип | Обязательный | Примечания |
|---|---|---|---|
q | string | да | Вопрос для AI Mode |
gl / hl | string | Коды страны и языка | |
location / uule | string | Географическое местоположение | |
continuable | boolean | Установите значение true, чтобы продолжить ответ в следующем вызове | |
subsequentRequestToken | string | Токен из предыдущего ответа AI Mode для продолжения диалога |
Возвращает textBlocks и references: сгенерированный ответ и цитируемые в нём источники.
Google SERP Light
hasdata_google_serp_serp_light_getSearchResults
Упрощённый и более экономичный поиск, который возвращает основные данные со страницы.
| Параметр | Тип | Обязательный | Примечания |
|---|---|---|---|
q | string | да | Поисковый запрос |
gl / hl | string | Коды страны и языка | |
location / uule | string | Географическое местоположение | |
num / start | number | Размер страницы и смещение |
Возвращает organicResults, aiOverview, relatedSearches, filters, appliedLocation, searchInformation и pagination. Стоимость в кредитах вдвое ниже, чем у полного SERP. Этот вариант подходит, если нужны обычные результаты и AI Overview без дополнительных блоков.
Google News
hasdata_google_serp_news_getGoogleNews
Результаты Google News по запросу или для выбранного раздела новостей.
| Параметр | Тип | Обязательный | Примечания |
|---|---|---|---|
q | string | Поисковый запрос. Не указывайте его, если нужно получить содержимое раздела | |
gl / hl | string | Коды страны и языка | |
topicToken / sectionToken / storyToken / publicationToken | string | Токен из предыдущего ответа для перехода к теме, разделу, новости или изданию |
Возвращает newsResults, menuLinks, relatedTopics и relatedPublications. Каждая новость содержит position, title, link, source с полями name и icon, а также thumbnail и date.
Google Shopping
hasdata_google_serp_shopping_getSearchResults
Результаты Google Shopping по запросу.
| Параметр | Тип | Обязательный | Примечания |
|---|---|---|---|
q | string | да | Поисковый запрос о товаре |
gl / hl | string | Коды страны и языка | |
location / uule | string | Географическое местоположение | |
start | number | Смещение для перехода к результатам на следующей странице | |
tbs | string | Расширенные фильтры Google Shopping — исходный параметр Google |
Возвращает shoppingResults, filters, refineSearchFilters, searchInformation и pagination. Каждый результат содержит position, title, productId, price, extractedPrice, rating, reviews, source, category, thumbnail и immersiveProductPageToken.
immersiveProductPageTokenиспользуется как входной параметр инструмента для получения подробной страницы товара, описанного ниже. Токен действует ограниченное время, поэтому запрашивайте данные о товаре, пока он актуален. Если старый токен перестал работать, повторите запрос Google Shopping, чтобы получить новый.
{
"shoppingResults": [
{
"position": 1,
"title": "Men's Nike Alphafly 3",
"productId": "13366226642799457284",
"price": "$285.00",
"extractedPrice": 285,
"rating": 4.5,
"reviews": 120,
"source": "Nike",
"immersiveProductPageToken": "eyJyZHMiOiJQQ18…"
}
]
}
Подробная карточка товара
hasdata_google_serp_immersive_product_getImmersive_e29f691177
Полная карточка товара, открывающаяся из результата поиска товаров.
| Параметр | Тип | Обязательный | Примечания |
|---|---|---|---|
pageToken | string | да | Значение immersiveProductPageToken из результата поиска товаров или записи immersiveProducts в SERP |
moreStores | boolean | Запросить дополнительные магазины | |
nextPageToken | string | Перейти к следующей странице списка магазинов, используя storesNextPageToken из предыдущего ответа |
Возвращает объект productResults с полями title, brand, rating, reviews, priceRange, массивом stores со всеми продавцами, их ценами и ссылками, а также данными variants, reviewsImages, userReviews, topInsights, aboutTheProduct и discussionsAndForums. Этот вызов превращает отдельное объявление в полную картину предложений от разных магазинов.
{
"productResults": {
"title": "Men's Nike Alphafly 3",
"brand": "Nike",
"rating": 4.4,
"reviews": 1077,
"priceRange": "$221-$295",
"stores": [ { "name": "eBay", "link": "https://www.ebay.com/itm/…", "price": "$221" } ],
"storesNextPageToken": "Mw=="
}
}
Чтобы просмотреть список магазинов постранично, передайте storesNextPageToken в параметре nextPageToken.
Короткие видео Google
hasdata_google_serp_short_videos_getShortVideosSearchResults
Результаты с короткими видео, которые Google показывает по запросу.
| Параметр | Тип | Обязательный | Примечания |
|---|---|---|---|
q | string | да | Поисковый запрос |
gl / hl / cr | string | Коды страны, языка и региона контента | |
lr | array | Одно или несколько ограничений по языку | |
page | number | Страница результатов | |
deviceType | string | desktop, mobile или tablet |
Возвращает массив shortVideos. Каждый элемент содержит position, title, link, source, sourceLogo, profileName, duration, clip и thumbnail.
Ошибки и ситуации сбоев
При вызове инструмента клиент почти никогда не получает HTTP-код ошибки. На уровне MCP возвращается код 200, а ошибка помещается в результат: поле isError получает значение true, а причина передаётся в виде текста. Вместо строки статуса агент получает сообщение об ошибке.
Неверный ключ отображается в результате вызова инструмента, а не как ошибка подключения. Для получения списка инструментов подойдёт любой непустой ключ: клиент успешно завершит рукопожатие, и соединение будет отмечено как активное. Ошибка появится только при первом вызове инструмента: в ответе будет isError: true и текст HasData API error: 401 Unauthorized. Обратите внимание на эту строку — раньше на этапе подключения проблема никак не проявляется.
Единственная настоящая HTTP-ошибка возникает, если ключ не указан. Авторизация выполняется до вызова любого инструмента, поэтому само подключение завершается ошибкой 401.
Аргумент, не соответствующий схеме, отклоняется до выполнения поиска. Если выполнить поиск без q, в ответе будут isError: true и текст MCP error -32602: Input validation error с указанием проблемного поля. Данные не запрашиваются, списание не производится.
Устаревший токен AI Overview возвращает ошибку. Токен из ответа SERP действителен около 4 минут. При попытке развернуть ранее сохранённый токен вернутся isError: true и текст HasData API error: 400 Bad Request — ошибка будет выглядеть так же, как при неверном ключе. Перехватите её и повторно выполните запрос SERP, чтобы получить новый токен.
Блок, который Google не показал, отсутствует в ответе, а не возвращается пустым. Если в результатах по запросу нет AI Overview, блока товаров или блока People Also Ask, в ответе не будет соответствующих ключей. Перед чтением данных сначала проверяйте наличие ключа.
В результатах с данными также содержится requestMetadata.id. Его стоит указать при обращении в службу поддержки. Кроме того, доступны ссылки html и json на сохранённый артефакт именно этого вызова.
Стоимость, бесплатный тариф и ограничения
Стоимость вызова зависит от инструмента. Полный SERP, AI Mode, News, Shopping и короткие видео стоят 10 кредитов за вызов. SERP Light, подробная карточка товара и инструмент AI Overview стоят 5 кредитов. AI Overview, включённый в ответ SERP, предоставляется бесплатно и входит в стоимость вызова за 10 кредитов. Однако разворачивание токена с помощью инструмента AI Overview, в том числе каждого токена People Also Ask, — отдельный вызов за 5 кредитов. Размер ответа на стоимость не влияет.
Бесплатный тариф — это 1 000 кредитов в месяц без привязки карты. Этого хватит на 100 вызовов полного SERP или 200 вызовов инструментов стоимостью 5 кредитов. Кредиты обновляются с началом расчётного периода, поэтому агент с небольшим объёмом запросов может неограниченно долго работать на бесплатном тарифе.
Платные тарифы начинаются с $59 в месяц за 200 000 кредитов. Чем больше объём, тем ниже стоимость одного кредита. Актуальные цены указаны на странице с тарифами.
Тариф также определяет допустимое количество одновременных запросов. На бесплатном тарифе разрешён 1 запрос, на Startup — 5, на Basic — 15, а на тарифах Growth — от 50 до 500. Ограничение параллельности — единственное ограничение частоты запросов: отдельного лимита запросов в минуту нет. Если инструмент работает без контроля, предусмотрите обработку превышения лимита. Агент, который одновременно выполняет много запросов, достигнет этого предела раньше, чем вы ожидаете.
Выбор инструментов
Параметр ?apis=google_serp предоставляет доступ к этим восьми инструментам. В параметре можно указать список: например, ?apis=google_serp,google_maps добавит к поиску инструменты Google Maps. Если убрать параметр, станут доступны все инструменты HasData — на данный момент их 57.
Как правило, лучше ограничиться небольшим набором инструментов. Модель чаще делает правильный выбор, если ей доступны восемь инструментов, а не пятьдесят семь. Кроме того, описания инструментов занимают контекст при каждом ходе.
Сравнение с альтернативами
Google больше не предлагает универсальный API для поиска. Официальная альтернатива — Custom Search JSON API, но он решает другую задачу.
Custom Search JSON API ищет в настраиваемой Programmable Search Engine: по указанным вами сайтам или, если включить соответствующий режим, по индексу всего интернета. Бесплатно доступно не более 100 запросов в день. Затем взимается плата за каждую тысячу запросов с ограничением на количество запросов в день. API возвращает сокращённый набор результатов. В нём нет AI Overview, People Also Ask, локального блока, товаров, новостей и коротких видео, поскольку эти элементы относятся к актуальной странице результатов, а не к API. Этот вариант подойдёт, если нужно искать по собственному сайту или заданному набору сайтов и использовать официальный сервис Google.
Этот сервер возвращает обработанную актуальную страницу результатов Google в том виде, в котором её видит посетитель. Настройка не требуется: запрос выполняется по всему Google, а AI Overview, People Also Ask, товары и остальные элементы возвращаются в виде структурированных блоков.
| Custom Search JSON API | Этот сервер | |
|---|---|---|
| Что ищет | Настраиваемую вами Programmable Search Engine | Актуальную страницу результатов Google |
| Настройка | Проект Cloud и поисковая система | Один API-ключ |
| AI Overview и People Also Ask | Не возвращаются | Встроены в ответ или доступны по токену |
| Товары, новости, короткие видео, локальные результаты | Не возвращаются | Отдельные инструменты |
| Бесплатный тариф | 100 запросов в день | 1 000 кредитов в месяц |
Решающими будут две строки. Если нужно искать только по собственным сайтам и использовать для этого официальный API Google, подойдёт Custom Search JSON API. Если нужны настоящая страница SERP, её AI Overview или другие блоки, которые Google показывает пользователям, официальный API их не вернёт — этот сервер вернёт.
Чего этот сервер не делает. Он не сканирует страницы, на которые ведут результаты, не хранит историю позиций и не выполняет операций записи. Сервер возвращает обработанную страницу результатов.
Часто задаваемые вопросы
Что такое Google Search MCP server?
Это сервер, который предоставляет результаты Google Search в виде инструментов для вызова из AI-клиента. Клиент отправляет вызов инструмента через Model Context Protocol, сервер получает страницу результатов и возвращает структурированный JSON. Модель работает с результатом и не видит HTML-страницу. Этот сервер предоставляет восемь инструментов только для чтения и работает удалённо: клиент подключается по URL, не запуская локальный процесс.
SERP здесь — это то же самое, что Google Search?
Да. SERP — это страница результатов поисковой системы. Эти инструменты возвращают страницы результатов Google, поэтому в этом репозитории «SERP API» и «Google Search API» означают одно и то же.
Есть ли официальный Google Search MCP server?
Google не выпускает MCP server или универсальный API для поиска. Ближайший официальный продукт — Custom Search JSON API, который выполняет поиск в настраиваемой Programmable Search Engine. Несколько MCP-серверов сообщества, в том числе этот, возвращают актуальную страницу результатов поиска.
Как получить AI Overview?
Выполните запрос SERP. Обычно aiOverview включён в ответ и содержит textBlocks и references. Если вместо этого возвращается pageToken, передайте его инструменту AI Overview, чтобы получить ответ. То же самое нужно делать с каждым вопросом People Also Ask. Токены быстро устаревают, поэтому разворачивайте их сразу после получения свежего ответа.
Нужны ли проект Google Cloud или Programmable Search Engine?
Нет. Для работы нужен только ваш ключ HasData. Создавать проект в Google Cloud не нужно, а квотой API управлять не требуется.
Истекает ли срок действия API key?
Нет. Срок действия ключа не истекает. При необходимости смените его в панели управления.
Данные актуальные или кэшированные?
Актуальные. Каждый вызов в момент запроса получает страницу с результатами и содержит собственный requestMetadata.id. Два одинаковых вызова — это два отдельных запроса, а не повторная выдача сохранённой копии.
Есть ли у сервиса связь с Google?
Нет. HasData — независимый сервис, не связанный с Google и не одобренный и не спонсируемый этой компанией. Google — товарный знак его владельца. Инструменты работают только с общедоступными данными. Вы несёте ответственность за использование результатов в соответствии с условиями Google и применимым законодательством.
Ссылки HasData
| Страница продукта и конструктор запросов | Google SERP API |
| Документация сервера | Документация MCP-сервера |
| Все 57 инструментов на одном сервере | HasData/hasdata-mcp |
| Руководства для клиентов | Клиенты MCP и интеграции |
| Другие источники, данные которых мы обрабатываем | Ещё 53 API для парсинга |
| Тарифы и стоимость запросов | Тарифы и стоимость запросов |
| Ключи и статистика использования | Панель управления HasData |
| Запуск через Node из npm | @hasdata/google-search-mcp |
| Запуск через Python из PyPI | hasdata-google-search-mcp |
Разработка
Этот репозиторий содержит конфигурацию и документацию для удалённого сервера. Сборка не требуется, и контейнеризировать здесь нечего.
В репозитории есть тест контракта. В README описаны восемь инструментов с конкретными параметрами. Список инструментов на стороне сервера может измениться без коммита в этот репозиторий — тогда документация незаметно станет недостоверной. Тест проверяет, что описанные инструменты существуют и принимают заявленные параметры. Он запускается в CI каждую неделю и при каждом push.
HASDATA_API_KEY=your_key_here npm test
В PowerShell:
$env:HASDATA_API_KEY = "your_key_here"; npm test
Последняя проверка выполняет реальный поисковый запрос и стоит 10 кредитов. Это плата за контрольную проверку, которая может завершиться ошибкой по обоснованной причине. Запрос списка инструментов проходит с любым непустым ключом, поэтому тест, который проверяет только список, останется успешным даже с отозванным ключом.
Участие в разработке
Самый полезный вклад — исправления в таблицах инструментов и примерах ответов: именно эти части чаще всего устаревают. Укажите выполненный вызов и полученный ответ. Для pull request из форков тестовый набор запускается без ключа, а проверки с реальными запросами пропускаются, а не завершаются ошибкой.
Лицензия
MIT. См. LICENSE.