MCP-сервер Google Images
Размещённый сервер Model Context Protocol (MCP), который предоставляет Claude, Cursor, Windsurf и любому другому MCP-клиенту один инструмент Google Images только для чтения. Запускайте поиск изображений с фильтрами по размеру, цвету и типу и получайте до 100 результатов за вызов. Для каждого результата указаны страница-источник и URL файла в полном разрешении. Ответ возвращается в формате JSON, а размещать сервер самостоятельно не нужно.
Сервер получает данные со страницы результатов Google Images, которую видит пользователь без авторизации.
Каждый месяц предоставляется 1 000 бесплатных кредитов, банковская карта не требуется — этого хватит на 200 вызовов Google Images по тарифу 5 кредитов за вызов.
https://mcp.hasdata.com/mcp?apis=google_images
Содержание
-
Требования
-
Быстрый старт
-
Примеры запросов
-
Инструменты
-
Ошибки и возможные сбои
-
Стоимость, бесплатный тариф и ограничения
-
Сравнение с другими решениями
-
Часто задаваемые вопросы
-
Ссылки HasData
-
Разработка
-
Участие в разработке
-
Лицензия
Требования
Вам понадобятся MCP-клиент и API-ключ HasData. Создать ключ можно бесплатно в панели управления, банковская карта не требуется. Бесплатного тарифа хватит примерно на 200 вызовов в месяц по ставке 5 кредитов за вызов. Это удалённый сервер, поэтому самый простой способ подключения — указать URL и заголовок x-api-key; запускать контейнер не нужно. Клиенты, которые поддерживают только stdio, подключаются к серверу через небольшой лаунчер. Он опубликован как @hasdata/google-images-mcp в npm и hasdata-google-images-mcp в PyPI. Примеры приведены ниже.
Быстрый старт
URL сервера одинаков для всех клиентов. Мы проверили подключение в Claude Code и Claude Desktop. В остальных блоках приведены настройки в формате, предусмотренном документацией соответствующего клиента для удалённых серверов.
| Поле | Значение |
|---|---|
| URL | https://mcp.hasdata.com/mcp?apis=google_images |
| Транспорт | HTTP, streamable |
| Заголовок авторизации | x-api-key: HASDATA_API_KEY |
Клиенты с поддержкой OAuth позволяют добавить тот же URL как коннектор и войти в систему, не указывая ключ в файле конфигурации.
Claude Code
claude mcp add --transport http google-images "https://mcp.hasdata.com/mcp?apis=google_images" \
--header "x-api-key: HASDATA_API_KEY"
Claude Desktop
Откройте Settings, затем Connectors, выберите Add custom connector, вставьте https://mcp.hasdata.com/mcp?apis=google_images и войдите в систему.
Если вы настраиваете подключение через файл конфигурации, учитывайте, что Claude Desktop загружает только локальные серверы stdio. Поэтому для подключения к удалённому серверу используется лаунчер stdio. В качестве такого лаунчера выступает пакет @hasdata/google-images-mcp; он получает ключ из переменной окружения. Добавьте следующий блок в claude_desktop_config.json:
{
"mcpServers": {
"google-images": {
"command": "npx",
"args": ["-y", "@hasdata/google-images-mcp"],
"env": { "HASDATA_API_KEY": "YOUR_KEY" }
}
}
}
Вместо Node можно использовать пакет из PyPI: uvx запускает его без предварительной установки.
{
"mcpServers": {
"google-images": {
"command": "uvx",
"args": ["hasdata-google-images-mcp"],
"env": { "HASDATA_API_KEY": "YOUR_KEY" }
}
}
}
Cursor
Укажите конфигурацию в ~/.cursor/mcp.json, чтобы использовать её во всех проектах, или в .cursor/mcp.json — чтобы подключить сервер только в одном проекте:
{
"mcpServers": {
"google-images": {
"url": "https://mcp.hasdata.com/mcp?apis=google_images",
"headers": { "x-api-key": "HASDATA_API_KEY" }
}
}
}
Windsurf
Файл конфигурации: ~/.codeium/windsurf/mcp_config.json. В Windsurf поле называется serverUrl, а не url:
{
"mcpServers": {
"google-images": {
"serverUrl": "https://mcp.hasdata.com/mcp?apis=google_images",
"headers": { "x-api-key": "HASDATA_API_KEY" }
}
}
}
VS Code
Добавьте конфигурацию в файл .vscode/mcp.json в рабочей области:
{
"servers": {
"google-images": {
"type": "http",
"url": "https://mcp.hasdata.com/mcp?apis=google_images",
"headers": { "x-api-key": "HASDATA_API_KEY" }
}
}
}
Примеры запросов
-
Найди изображения панорамы Остина и покажи те, ширина которых превышает 1500 пикселей.
-
Какие сайты занимают позиции в поиске по изображениям для этого названия продукта?
-
Найди чёрно-белые фотографии по этому запросу, исключив клипарт и линейные рисунки.
-
Выполни поиск в немецком Google и сравни источники с результатами для США.
-
Найди изображения этой достопримечательности и определи, какие из них являются стоковыми фотографиями.
-
Получи следующую страницу результатов по этому запросу.
Для каждого из этих запросов достаточно одного вызова: на странице содержится 100 результатов. Переходить к следующей странице нужно только после них.
Инструменты
| Инструмент | Что возвращает |
|---|---|
hasdata_google_images_images_getImageSearchResults | Данные по каждому изображению: заголовок, URL страницы-источника, прямой URL изображения, миниатюра, размеры, домен источника и позиция. 5 кредитов за вызов |
Доступен один инструмент. Каждый успешный вызов стоит 5 кредитов.
Получение результатов поиска изображений
hasdata_google_images_images_getImageSearchResults
Одна страница результатов Google Images.
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
q | string | да | Поисковый запрос |
tbs | string | Строка фильтров Google для размера, цвета и типа. Подробности — ниже | |
location | string | Каноническое название местоположения Google для поиска | |
uule | string | Кодированное местоположение, если оно у вас уже есть | |
domain | string | Домен Google. Доступно 195 вариантов; по умолчанию используется google.com | |
gl | string | Код страны. Доступно 245 вариантов | |
hl | string | Язык интерфейса. Доступно 159 вариантов | |
safe | string | active или off | |
filter | number | Значение 1 сохраняет фильтры Google для похожих и скрытых результатов, а 0 отключает их | |
deviceType | string | desktop, mobile или tablet | |
ijn | number | Номер страницы: 0 соответствует первой странице |
В ответе содержится массив imagesResults. Каждый элемент включает position, title, ссылку link на страницу с изображением, source с названием сайта, thumbnail с миниатюрой на CDN Google, original с файлом в полном разрешении, а также значения originalWidth и originalHeight.
{
"position": 1,
"title": "The city skyline of Austin, Texas - Backyard Image",
"link": "https://www.backyardimage.com/the-city-skyline-of-austin-texas/",
"source": "Backyard Image",
"thumbnail": "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSOGtSVdgWtQtW1_x8-gi7iQckNHXBQ5FdKqEpCKXsbWg&s=10",
"original": "https://www.backyardimage.com/wp-content/uploads/2025/01/2025-01-12-drone-Heap-0015-Pano-Edit.jpg",
"originalWidth": 1200,
"originalHeight": 615
}
Параметр tbs задаёт строку фильтров Google. Несколько фильтров можно объединить, разделив их запятыми.
| Фильтр | Значение |
|---|---|
| Большой, средний размер или значок | isz:l, isz:m, isz:i |
| Размер больше заданного | isz:lt,islt:qsvga для 400×300, вплоть до islt:4mp для 2272×1704 |
| Точный размер | isz:ex,iszw:1000,iszh:1000 |
| Цветное или чёрно-белое изображение | ic:color, ic:gray |
| Определённый цвет | ic:specific,isc:red и другие названия цветов |
| Тип | itp:photo, itp:face, itp:clipart, itp:lineart, itp:animated |
Ошибки и возможные сбои
Учитывайте следующие особенности, чтобы подготовиться к возможным сбоям.
original — это URL стороннего сайта: ссылка может быть недоступна, защищена от хотлинкинга или работать медленно. Она ведёт на файл на сайте, где он размещён, и доступность Google на неё не распространяется. Загружайте файл с осторожностью, а при сбое используйте thumbnail, который предоставляется через CDN Google.
thumbnail — это ссылка на CDN Google, а не встроенное изображение. Это обычный URL, а не URI данных, поэтому для отображения изображения всё равно потребуется запрос к gstatic.com.
На одной странице содержится 100 результатов, а не 10. Стоимость взимается за вызов, а не за результат, поэтому выгоднее получать 100 изображений за один вызов. Параметр ijn понадобится только для перехода к результатам после первой сотни.
Отсчёт ijn начинается с нуля. Значение 1 соответствует второй странице, а не первой.
Размеры относятся к оригиналу, а не к миниатюре. originalWidth и originalHeight описывают файл по ссылке original. Поэтому при локальной фильтрации по размеру используйте эти значения, а не измеряйте отображаемое изображение.
Значения tbs задаются Google. Неизвестный фильтр будет проигнорирован, а не отклонён. Если фильтр не сработал, это может выглядеть так же, как будто ему соответствуют все результаты. Прежде чем полагаться на составленную вручную строку tbs, проверьте, что выборка действительно сузилась.
Параметры domain, gl и hl отвечают за разные настройки. domain задаёт, от имени какого домена Google выполняется поиск, код страны определяет местоположение поиска, а язык — язык интерфейса. Изменение одного параметра влияет на результаты слабее, чем можно ожидать.
Если в результатах есть данные, в ответе также будет указан идентификатор requestMetadata.id. Его полезно сообщить службе поддержки.
Стоимость, бесплатный план и лимиты
Каждый успешный вызов инструмента Google Images стоит 5 кредитов. Размер ответа на стоимость не влияет: за один вызов возвращается 100 результатов, поэтому по стоимости одного результата это один из самых выгодных инструментов в каталоге.
Бесплатный план включает 1 000 кредитов в месяц без привязки карты — этого хватит на 200 вызовов Google Images по базовому тарифу. Кредиты обновляются с началом нового расчётного периода, поэтому агент с небольшим объёмом запросов может работать на бесплатном плане бессрочно.
Платные планы начинаются от $59 в месяц за 200 000 кредитов, то есть за 40 000 вызовов. Чем больше объём, тем ниже стоимость единицы: от $1.48 за 1 000 вызовов на начальном плане до $0.60 на Basic и $0.41 на планах Growth. Актуальные цены указаны на странице тарифов.
План также определяет допустимую параллельность запросов. На бесплатном плане можно выполнять 1 запрос за раз, на Startup — 5, на Basic — 15, а на планах Growth — от 50 до 500. Если процесс выполняется без участия человека, настройте повтор запросов с задержкой при получении 429: агент, перебирающий список ключевых слов, достигнет лимита раньше, чем вы успеете отреагировать.
Запрос, завершившийся ответом, отличным от 200, не тарифицируется. Успешный вызов, даже если он ничего не нашёл, всё равно считается вызовом.
Сравнение
Custom Search JSON API от Google — официальный способ получать результаты поиска изображений, но его возможности уже.
| Custom Search JSON API | Этот сервер | |
|---|---|---|
| Доступ | Проект Google Cloud и настроенная вами поисковая система | API-ключ |
| Результатов за вызов | 10 | 100 |
| Дневной лимит | До 10 000 запросов в день; на бесплатном плане — 100 | Кредиты вашего плана |
| Область поиска | Сайты, охваченные вашей программируемой поисковой системой | Публичная страница Google Images |
| Набор фильтров | Документированное подмножество | Собственная строка Google tbs |
| URL изображения в полном разрешении | Возвращается | Возвращается |
Ключевое различие — область поиска. Программируемая поисковая система охватывает только заданные вами источники. Чтобы искать с её помощью по всему открытому вебу, потребуется дополнительная настройка, а результаты всё равно будут отличаться от тех, которые видит пользователь на странице Google. Если вам нужно искать только по заданным сайтам, официальный API будет удобнее и бесплатен при небольшом объёме запросов.
Часто задаваемые вопросы
Есть ли официальный MCP-сервер Google Images?
Google не выпускает такой сервер. Этот сервер поддерживается HasData и получает данные с публичных страниц Google Images.
Что такое MCP-сервер Google Images?
MCP-сервер предоставляет инструменты, которые может вызывать AI-клиент. Этот сервер преобразует страницу результатов Google Images в JSON, с которым агент может работать, без браузера и библиотеки для парсинга в вашем стеке.
Нужны ли мне аккаунт Google или проект Cloud?
Нет. Единственное необходимое для доступа — ваш ключ HasData.
Можно ли скачать изображения?
В ответе содержится original — URL файла на сайте, где он размещён. Возможность скачать, сохранить или использовать этот файл определяется авторскими правами на конкретное изображение, а не тем, что Google добавил его в индекс. Считайте изображение защищённым авторским правом, пока не убедитесь в обратном.
Можно ли искать по изображению, а не по тексту?
Нет. Этот инструмент принимает текстовый запрос. Для обратного поиска по изображению используется другой endpoint.
Как фильтровать изображения по размеру?
Используйте tbs. Параметр isz:l выбирает крупные изображения, isz:lt,islt:2mp — изображения размером более 1600×1200, а isz:ex,iszw:1000,iszh:1000 — изображения размером ровно 1000×1000. Фильтры можно объединять через запятую.
Можно ли использовать этот инструмент вместе с другими API HasData?
Да. Один ключ подходит для всех сервисов, а один endpoint предоставляет к ним доступ через параметр apis. Укажите для клиента ?apis=google_images,google_serp, чтобы получить оба набора инструментов в рамках одного подключения, или воспользуйтесь mcp.hasdata.com/api/mcp, чтобы подключить весь каталог.
Есть ли у HasData связь с Google?
Нет. HasData — независимый сервис, не связанный с Google и не одобренный и не спонсируемый этой компанией. Google — товарный знак его соответствующего владельца. Инструменты работают только с общедоступными данными. Вы несёте ответственность за использование результатов в соответствии с условиями Google и применимым законодательством.
Соблюдение требований и персональные данные
Поиск изображений возвращает результаты, соответствующие запросу. Поэтому запрос с именем человека выдаст его фотографии, а параметр itp:face предназначен для поиска лиц. Изображения, на которых можно идентифицировать людей, относятся к персональным данным, а в ряде юрисдикций обработка биометрических данных дополнительно регулируется более строгими нормами. Прежде чем создавать набор изображений лиц, внимательно оцените связанные с этим риски.
Ссылки HasData
-
Google Images API — REST endpoint, лежащий в основе этого инструмента
Другие MCP-серверы HasData: Google Search, Google Maps, Google Trends, Google Flights, Bing, DuckDuckGo, YouTube, TikTok, Instagram, Amazon, Walmart, Shopify, Yelp, Yellow Pages, Zillow, Redfin, Airbnb, Booking.com, Indeed, Glassdoor.
Разработка
Запускатель — это простой stdio-мост к удалённому серверу, поэтому собирать проект не нужно.
npm install
HASDATA_API_KEY=your_key_here npm test
Тесты в test/ проверяют контракт инструмента — именно он может измениться без коммита в этом репозитории. Тесты удостоверяются, что ?apis=google_images возвращает единственный ожидаемый инструмент, его имя не изменилось, для него по-прежнему требуется q и указано описание, а задокументированные в этом README параметры фильтрации и таргетинга присутствуют в схеме. Кроме того, тесты проверяют, что используемый ключ действительно принимается. Последняя проверка вызывает инструмент в реальном режиме и стоит 5 кредитов — это цена контрольного теста, который при необходимости корректно выявит проблему.
Один из тестов проверяет, что поиск в реальном режиме возвращает результаты с полями original и размерами изображений. Эти три поля — причина выбрать этот инструмент вместо обычной SERP. Если после изменения парсера они исчезнут, список инструментов всё равно будет выглядеть исправным, но важные данные окажутся потеряны.
Набор тестов контракта также запускается по расписанию раз в неделю: список инструментов на стороне сервиса может измениться, даже если в этом репозитории не было никаких изменений.
Участие в разработке
Если таблица инструментов, пример ответа или описание поведения не соответствуют действительности, сообщите об этом в issue. Для таких сообщений предусмотрен специальный шаблон. Будем рады и pull request, исправляющим эти несоответствия или любые проблемы в запускателе.
Лицензия
MIT, см. LICENSE.