Google Images MCP Server
Resultados do Google Images com suas páginas de origem, miniaturas e URLs em resolução completa, como JSON estruturado.
Documentação
Servidor MCP do Google Images
Um servidor de Model Context Protocol (MCP) hospedado que oferece ao Claude, Cursor, Windsurf e qualquer outro cliente MCP uma ferramenta somente leitura do Google Images. Execute uma pesquisa de imagens com filtros de tamanho, cor e tipo e obtenha 100 resultados por chamada, cada um com a página de origem e o URL do arquivo em resolução total, como JSON estruturado, sem nada para hospedar.
Ele lê a página de resultados do Google Images que um visitante não autenticado vê.
1.000 créditos gratuitos todo mês, sem necessidade de cartão, o que equivale a 200 chamadas do Google Images na taxa de 5 créditos.
https://mcp.hasdata.com/api/mcp?apis=google_images
Conteúdo
- O que você precisa
- Início rápido
- Exemplos de prompts
- Ferramentas
- Erros e caminhos de falha
- Preços, plano gratuito e limites
- Comparação
- Perguntas frequentes
- Links HasData
- Desenvolvimento
- Contribuição
- Licença
O que você precisa
Um cliente MCP e uma chave de API HasData do painel, gratuita para criar sem cartão, e o plano gratuito cobre cerca de 200 chamadas por mês na taxa de 5 créditos. Este é um servidor remoto, então o caminho mais simples é um URL e um cabeçalho x-api-key, sem contêiner para executar. Um cliente que só fala stdio o acessa por meio de um lançador leve, publicado como @hasdata/google-images-mcp no npm e hasdata-google-images-mcp no PyPI, mostrado abaixo.
Início rápido
O URL do servidor é o mesmo para todos os clientes. Nós o executamos na prática no Claude Code e no Claude Desktop. Os outros blocos seguem o formato documentado de cada cliente para um servidor remoto.
| Campo | Valor |
|---|---|
| URL | https://mcp.hasdata.com/api/mcp?apis=google_images |
| Transporte | HTTP, streamable |
| Cabeçalho de autenticação | x-api-key: HASDATA_API_KEY |
Clientes com suporte a OAuth podem adicionar o mesmo URL como conector e entrar sem colocar uma chave em um arquivo de configuração.
Claude Code
claude mcp add --transport http google-images "https://mcp.hasdata.com/api/mcp?apis=google_images" \
--header "x-api-key: HASDATA_API_KEY"
Claude Desktop
Configurações, depois Conectores, depois Adicionar conector personalizado, e cole https://mcp.hasdata.com/api/mcp?apis=google_images e entre.
Para o caminho do arquivo de configuração, o Claude Desktop carrega apenas servidores locais (stdio), então ele acessa um servidor remoto por meio de um lançador stdio. O pacote @hasdata/google-images-mcp é esse lançador, e ele lê a chave do ambiente. Adicione isto ao claude_desktop_config.json:
{
"mcpServers": {
"google-images": {
"command": "npx",
"args": ["-y", "@hasdata/google-images-mcp"],
"env": { "HASDATA_API_KEY": "YOUR_KEY" }
}
}
}
Para Python em vez de Node, troque o lançador pelo pacote PyPI, que o uvx executa sem instalação manual:
{
"mcpServers": {
"google-images": {
"command": "uvx",
"args": ["hasdata-google-images-mcp"],
"env": { "HASDATA_API_KEY": "YOUR_KEY" }
}
}
}
Cursor
~/.cursor/mcp.json para cada projeto, ou .cursor/mcp.json para um único:
{
"mcpServers": {
"google-images": {
"url": "https://mcp.hasdata.com/api/mcp?apis=google_images",
"headers": { "x-api-key": "HASDATA_API_KEY" }
}
}
}
Windsurf
~/.codeium/windsurf/mcp_config.json. O Windsurf chama o campo de serverUrl, não url:
{
"mcpServers": {
"google-images": {
"serverUrl": "https://mcp.hasdata.com/api/mcp?apis=google_images",
"headers": { "x-api-key": "HASDATA_API_KEY" }
}
}
}
VS Code
.vscode/mcp.json no espaço de trabalho:
{
"servers": {
"google-images": {
"type": "http",
"url": "https://mcp.hasdata.com/api/mcp?apis=google_images",
"headers": { "x-api-key": "HASDATA_API_KEY" }
}
}
}
Exemplos de prompts
- Encontre imagens do horizonte de Austin e me dê as que têm mais de 1500 pixels de largura.
- Quais sites estão classificando imagens para este nome de produto?
- Obtenha fotografias em preto e branco para esta consulta, ignorando clipart e arte de linha.
- Pesquise esta consulta no Google alemão e compare as fontes com as dos EUA.
- Encontre imagens deste ponto turístico e me diga quais são fotos de banco de imagens.
- Puxe a próxima página de resultados para esta consulta.
Uma chamada responde a cada uma dessas, porque uma página carrega 100 resultados. A paginação só é necessária além disso.
Ferramentas
Uma ferramenta, 5 créditos por chamada bem-sucedida.
Obter resultados de pesquisa de imagens
hasdata_google_images_images_getImageSearchResults
Uma página de resultados do Google Images.
| Parâmetro | Tipo | Obrigatório | Observações |
|---|---|---|---|
q | string | sim | O termo de pesquisa |
tbs | string | A string de filtro do Google para tamanho, cor e tipo. Veja abaixo | |
location | string | Localização canônica do Google para a pesquisa | |
uule | string | A localização codificada, se você já tiver uma | |
domain | string | Domínio do Google, um de 195, padrão é google.com | |
gl | string | Código do país, um de 245 | |
hl | string | Idioma da interface, um de 159 | |
safe | string | active ou off | |
filter | number | 1 mantém os filtros de resultados semelhantes e omitidos do Google, 0 os remove | |
deviceType | string | desktop, mobile ou tablet | |
ijn | number | Número da página, onde 0 é a primeira página |
Retorna um array imagesResults. Cada entrada carrega position, title, link para a página que hospeda a imagem, source como o nome do site, thumbnail no CDN do Google, original como o arquivo em resolução total, e originalWidth e 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
}
O parâmetro tbs é a própria string de filtro do Google, e vários filtros se combinam com vírgulas.
| Filtro | Valor |
|---|---|
| Grande, médio ou ícone | isz:l, isz:m, isz:i |
| Maior que um tamanho | isz:lt,islt:qsvga para 400×300, até islt:4mp para 2272×1704 |
| Tamanho exato | isz:ex,iszw:1000,iszh:1000 |
| Cor total ou preto e branco | ic:color, ic:gray |
| Uma cor específica | ic:specific,isc:red, e os outros nomes de cores |
| Tipo | itp:photo, itp:face, itp:clipart, itp:lineart, itp:animated |
Erros e caminhos de falha
Planeje estes em vez de assumir um caminho feliz.
original é um URL de terceiros e pode estar morto, bloqueado por hotlink ou lento. Ele aponta para o arquivo no site que o hospeda, então não carrega nenhuma disponibilidade do Google. Busque-o defensivamente e recorra ao thumbnail, que é servido pelo CDN do Google.
thumbnail é um link do CDN do Google, não uma imagem incorporada. É um URL real em vez de um data URI, então exibi-lo ainda custa uma solicitação ao gstatic.com.
Uma página carrega 100 resultados, não 10. O custo é por chamada em vez de por resultado, então uma chamada cobrindo 100 imagens é a forma mais barata aqui. Use ijn apenas além dos primeiros cem.
ijn começa em zero. Passar 1 obtém a segunda página, não a primeira.
As dimensões descrevem o original, não a miniatura. originalWidth e originalHeight são o arquivo por trás de original, então um filtro de tamanho aplicado localmente tem que ler esses em vez de medir o que você exibiu.
Os valores de tbs são do Google, e um não reconhecido é ignorado em vez de rejeitado. Um filtro que silenciosamente não faz nada parece o mesmo que um filtro que encontrou tudo, então verifique se os resultados realmente estreitaram antes de confiar em uma string tbs que você montou manualmente.
domain, gl e hl são três eixos separados. O domínio é qual Google responde, o código do país é de onde a pesquisa vem, e o idioma é a interface. Mudar um move os resultados menos do que você espera.
Resultados que carregam dados também carregam um requestMetadata.id que vale citar no suporte.
Preços, plano gratuito e limites
A ferramenta do Google Images custa 5 créditos por chamada bem-sucedida. O tamanho da resposta não muda o preço, e uma chamada retorna 100 resultados, o que a torna uma das ferramentas mais baratas do catálogo por linha retornada.
O plano gratuito é 1.000 créditos todo mês sem cartão, o que equivale a 200 chamadas do Google Images na taxa base. Ele renova com o ciclo de cobrança, então um agente de baixo volume roda no plano gratuito indefinidamente.
Os planos pagos começam em US$ 49 por mês para 200.000 créditos, o que equivale a 40.000 chamadas. O preço unitário cai com o volume, de US$ 1,23 por 1.000 chamadas no plano inicial para US$ 0,50 no Business, US$ 0,42 no Growth e US$ 0,37 nos maiores planos de alto volume.
Seu plano também define a concorrência. O plano gratuito permite 1 solicitação por vez, Startup 15, Business 30, Growth 50, e os planos de alto volume vão de 200 a 1.500. Tente novamente no 429 com backoff em qualquer coisa não supervisionada, porque um agente que varre uma lista de palavras-chave atingirá o teto antes de você.
Uma solicitação que retorna não-200 não é cobrada. Uma chamada bem-sucedida que não encontra nada ainda é uma chamada.
Comparação
A API JSON de Pesquisa Personalizada do Google é a rota oficial para resultados de imagens, e é um instrumento mais estreito.
| API JSON de Pesquisa Personalizada | Este servidor | |
|---|---|---|
| Elegibilidade | Um projeto Google Cloud e um mecanismo de pesquisa que você configura | Uma chave de API |
| Resultados por chamada | 10 | 100 |
| Teto diário | 10.000 consultas por dia, plano gratuito de 100 | Os créditos do seu plano |
| Escopo | Os sites que seu mecanismo programável cobre | A página pública do Google Images |
| Conjunto de filtros | Um subconjunto documentado | A própria string tbs do Google |
| URL em resolução total | Retornado | Retornado |
A linha que decide é o escopo. Um mecanismo de pesquisa programável cobre o que você configura para cobrir, e pesquisar na web aberta com ele exige configuração extra e ainda se comporta de forma diferente da página que uma pessoa vê. Quando você controla os sites que quer pesquisar, a API oficial é gratuita em baixo volume e o melhor ajuste.
Perguntas frequentes
Existe um servidor MCP oficial do Google Images?
O Google não publica um. Este é mantido pela HasData e lê páginas públicas do Google Images.
O que é um servidor MCP do Google Images?
Um servidor MCP expõe ferramentas que um cliente de IA pode chamar. Este transforma uma página de resultados do Google Images em JSON sobre o qual um agente pode raciocinar, sem um navegador ou uma biblioteca de scraping na sua stack.
Preciso de uma conta Google ou de um projeto Cloud?
Não. A única credencial é sua chave HasData.
Posso baixar as imagens?
A resposta fornece original, o URL do arquivo no site que o hospeda. Se você pode baixar, armazenar ou reutilizar esse arquivo é uma questão de direitos autorais sobre essa imagem, e não é respondida pelo fato de o Google tê-la indexado. Assuma que uma imagem é protegida a menos que você tenha verificado o contrário.
Posso pesquisar por imagem em vez de por texto?
Não. Esta ferramenta aceita uma consulta de texto. A pesquisa reversa de imagens é um endpoint diferente.
Como filtro por tamanho?
Através de tbs. isz:l obtém imagens grandes, isz:lt,islt:2mp obtém qualquer coisa acima de 1600×1200, e isz:ex,iszw:1000,iszh:1000 obtém exatamente 1000×1000. Os filtros se combinam com vírgulas.
Posso usar isso junto com outras APIs HasData?
Sim. Uma chave cobre tudo, e um endpoint atende a todos através do parâmetro apis. Aponte um cliente para ?apis=google_images,google_serp para obter ambos os conjuntos de ferramentas em uma conexão, ou para mcp.hasdata.com/api/mcp para o catálogo completo.
A HasData é afiliada ao Google?
Não. A HasData é um serviço independente e não é afiliada, endossada ou patrocinada pelo Google. O Google é uma marca registrada de seu respectivo proprietário. As ferramentas trabalham apenas com dados publicamente disponíveis, e você é responsável por usar os resultados em conformidade com os termos do Google e a lei que se aplica a você.
Conformidade e dados pessoais
A pesquisa de imagens retorna o que a consulta encontrou, então uma consulta nomeando uma pessoa retorna fotos dessa pessoa, e itp:face pede por rostos especificamente. Imagens de pessoas identificáveis são dados pessoais, e em várias jurisdições o processamento biométrico é regulamentado separadamente e de forma ainda mais estrita. Construir um conjunto de rostos a partir desses resultados é o caso que exige pensar com mais cuidado antes de começar, e não depois.
Links HasData
- Google Images API, o endpoint REST por trás desta ferramenta
- Documentação da API
- Documentação do servidor MCP
- Preços
- Painel
Outros servidores MCP da 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.
Desenvolvimento
O lançador é uma ponte stdio leve para o servidor remoto, então não há nada para compilar.
npm install
HASDATA_API_KEY=your_key_here npm test
Os testes em test/ verificam o contrato da ferramenta, a parte que pode quebrar sem um commit aqui. Eles verificam que ?apis=google_images retorna a única ferramenta esperada, que seu nome não mudou, que ainda exige q e carrega uma descrição, que os parâmetros de filtro e segmentação documentados neste README ainda estão no esquema, e que a chave em uso é realmente aceita. Esse último teste chama a ferramenta de verdade e custa 5 créditos, que é o preço de um canário que pode falhar pelo motivo certo.
Um teste verifica que uma pesquisa ao vivo retorna resultados carregando tanto original quanto suas dimensões. Esses três campos são o que torna esta ferramenta digna de ser chamada em vez de um SERP simples, e uma mudança no parser que os removesse deixaria uma lista de ferramentas verde atrás de si.
A suíte de contrato também roda semanalmente em um cronograma, porque a lista de ferramentas upstream pode mudar sem que ninguém toque neste repositório.
Contribuindo
Uma tabela de ferramentas, uma amostra de resposta ou um comportamento documentado que não corresponda à realidade vale uma issue. Existe um modelo exatamente para isso. Pull requests são bem-vindos para o mesmo, e para qualquer coisa no lançador.
Licença
MIT, veja LICENSE.