Infraestrutura de Busca de Imagens para Agentes de IA: O Que o Mercado Realmente Entrega
A Getty lançou um servidor MCP este mês; as bibliotecas gratuitas não lançaram nenhum. Um benchmark reproduzível, um censo de registro e os termos das quatro grandes APIs de fotos — lidos como se você fosse a máquina que precisa obedecê-los.
Todo framework de agente lançado este ano consegue escrever, planejar, chamar ferramentas e abrir um pull request. Peça a um deles uma fotografia e a coisa toda se reduz a um encolher de ombros: uma URL de banco de imagens inventada de memória, um hotlink quebrado, ou uma imagem gerada porque procurar uma real era mais difícil do que inventar uma. Os modelos não são o elo fraco. A camada de imagens por trás deles é — e ela está ausente de uma forma bem específica e mensurável.
Este é um estudo de mercado, não um manifesto. Tudo abaixo foi medido ou lido de uma fonte primária em 18 de agosto de 2026: um censo do registro oficial do MCP, os termos publicados das quatro grandes APIs gratuitas de fotos, as condições de acesso dos dois incumbentes pagos que lançaram conectores de agente este mês, e um pequeno benchmark reproduzível que você pode reexecutar em um minuto sem chave de API.
Um limite, para que você possa parar de ler cedo se esta não for sua pergunta: este artigo é sobre
a camada de acesso — recuperação, alcançabilidade, termos, cotas. Não é sobre o
pipeline de publicação. Se o que você precisa é como transformar um rascunho em páginas ilustradas,
creditadas e marcadas — o prompt do roteador, os briefings visuais, a montagem, a
marcação ImageObject — isso está descrito separadamente em
o pipeline que
ilustra artigos escritos por IA.
O que muda quando o solicitante é uma máquina
Um humano procurando uma foto digita duas ou três palavras, olha uma grade e sabe reconhecer uma boa imagem quando a vê. Todo motor de busca de banco de imagens já construído assume esse ciclo. Um agente quebra as três suposições de uma vez:
- Ele escreve frases, não palavras-chave. Um modelo que acabou de redigir uma seção
sobre documentação de hipoteca não emite
hipoteca; ele emite “uma mulher assinando um documento de hipoteca numa mesa de cozinha enquanto um consultor bancário explica os termos”. Essa é a saída natural de um modelo de linguagem, e é exatamente o que um índice de correspondência de tokens não consegue atender. - Ele não consegue olhar uma grade. O que a ferramenta retorna é o que o agente sabe. Se a resposta é uma lista de URLs sem descrição, dimensões ou crédito, o agente tem que buscar e olhar cada imagem — ou, muito mais frequentemente, adivinhar.
- Ele não tem mãos. Não pode enviar capturas de tela para uma fila de revisão, aceitar termos, rotacionar uma chave, ou esperar três dias úteis pela aprovação de produção. Cada etapa humana no onboarding de uma API é uma parede onde o agente para.
Então “infraestrutura de busca de imagens para agentes de IA” não é uma frase de marketing. É uma lista de verificação: recuperação em linguagem natural, resultados legíveis por máquina ricos o bastante para raciocinar sobre eles, e um modelo de autenticação e cota que um programa possa completar sozinho.
O teste: uma frase contra um índice de palavras-chave
A forma mais barata de ver o problema é enviar as próprias palavras de um agente a um motor de palavras-chave. O teste abaixo usa o Openverse, a busca de mídia com licença aberta operada pela WordPress.org, porque sua API é pública, não precisa de chave, e qualquer pessoa lendo isto pode reexecutá-lo em menos de um minuto. Quatro briefings, do tipo que um modelo escreve quando está ilustrando o que acabou de redigir:
import json, urllib.request, urllib.parse
BRIEFS = [
"a woman signing a mortgage document at a kitchen table while a bank"
" adviser explains the terms, warm morning light",
"An elderly couple enjoying a peaceful retirement together",
"a child discovering snow for the first time in a suburban garden",
"a delivery cyclist waiting at a red light in heavy rain",
]
def count(q):
u = "https://api.openverse.org/v1/images/?" + urllib.parse.urlencode({"q": q})
r = urllib.request.Request(u, headers={"User-Agent": "benchmark/1.0"})
return json.load(urllib.request.urlopen(r))["result_count"]
for b in BRIEFS:
print(count(b), "|", b[:48])
# 0 | a woman signing a mortgage document at a kitchen
# 0 | An elderly couple enjoying a peaceful retirement
# 0 | a child discovering snow for the first time in a
# 0 | a delivery cyclist waiting at a red light in hea
Quatro briefings, quatro conjuntos de resultados vazios. Agora reduza cada briefing às duas palavras-chave que um humano
teria digitado — signing document, elderly couple, child snow,
cyclist rain — e cada um deles retorna uma página cheia de fotografias (a API
informa 240, que é onde ela limita a contagem para chamadas anônimas). O catálogo contém as
imagens. A frase é o que ele não consegue interpretar.
| O briefing que um agente realmente escreve | Motor de palavras-chaveOpenverse, frase completa | Motor de palavras-chavereduzido a 2 palavras-chave | Motor semânticoPexafy, frase completa |
|---|---|---|---|
| “a woman signing a mortgage document at a kitchen table while a bank adviser explains the terms…” | 0 resultados | 240 (limitado) | 16 resultados · 148 ms |
| “An elderly couple enjoying a peaceful retirement together” | 0 resultados | 240 (limitado) | 16 resultados · 135 ms |
| “a child discovering snow for the first time in a suburban garden” | 0 resultados | 240 (limitado) | 16 resultados · 147 ms |
| “a delivery cyclist waiting at a red light in heavy rain” | 0 resultados | 240 (limitado) | 16 resultados · 149 ms |
A coluna Pexafy corresponde às mesmas quatro frases enviadas sem modificação ao search_photos no
servidor MCP hospedado, com a latência que o próprio servidor informou. Isto é uma comparação de
formatos de consulta, não de qualidade de catálogo — e o catálogo definitivamente não é o
problema. O próprio endpoint de estatísticas do Openverse informa 915 milhões de imagens de 52
fontes no dia do teste, e ele é excelente naquilo para que foi construído: busca por
palavras-chave, para pessoas. Não há nada quebrado nele. Simplesmente nunca foi projetado para um solicitante que
pensa em frases. Por que a correspondência de tags falha diante de uma cena descrita — e o que a recuperação
semântica faz em vez disso — é discutido do lado do leitor em
buscando com uma
frase em vez de palavras-chave; o que há de novo aqui é a medição, e o que ela significa quando o
solicitante é um programa em vez de uma pessoa.
O mercado, em 18 de agosto de 2026
A recuperação é metade da questão. A outra metade é a alcançabilidade: um agente consegue chegar ao catálogo, e em que termos? Desde que o Model Context Protocol se tornou a forma como assistentes se conectam a sistemas externos — sua especificação atual, datada de 28 de julho de 2026, moveu o protocolo para um núcleo de requisição/resposta sem estado, de modo que servidores fiquem atrás de balanceadores de carga comuns1 — a maneira honesta de pesquisar este mercado é olhar para o que está realmente publicado, não o que é anunciado.
Os incumbentes pagos chegaram este mês
A Getty Images lançou seu servidor MCP em 12 de agosto de 2026, seis dias antes deste artigo, expondo busca e download de conteúdo criativo, editorial e de arquivo a fluxos de trabalho de IA.2 É voltado a equipes empresariais e construtores de plataformas, e sua própria página de acesso é inequívoca quanto ao preço de entrada: você precisa de um contrato ativo com a Getty Images, como o Premium Access, além da aceitação dos termos do Web Service. Não há nível gratuito. O conteúdo da Shutterstock também é acessível por meio de um servidor MCP — 24 ferramentas cobrindo busca, coleções e licenciamento — com downloads bloqueados atrás de uma conta com assinatura ativa.3
Ambos os movimentos são racionais e ambos são para um comprador específico. A Getty faturou US$ 981,3 milhões em receita em 20254 num mercado de fotografia de banco de imagens estimado em aproximadamente US$ 5,4 bilhões para 20265; conectores que exigem contrato protegem essa receita em vez de abri-la. Se você é um banco ou uma emissora, é exatamente isso que você quer. Se você é um desenvolvedor montando um projeto paralelo — ou um agente que não pode parar e pedir a um humano que assine algo — é uma porta fechada.
As bibliotecas gratuitas não lançaram nenhum servidor
Unsplash, Pexels e Pixabay são os três catálogos que a maioria dos construtores procura, e nenhum deles publica um servidor MCP oficial. O que existe em vez disso é uma prateleira de wrappers da comunidade. Nós varremos o registro oficial do MCP por completo — 22.607 servidores, 75.487 versões publicadas — e mantivemos toda entrada cujo nome ou descrição fosse sobre busca de fotos ou imagens de banco de imagens. O padrão é uniforme:
| Registro oficial do MCP, 18 ago 2026 | Contagem | O que isso significa para um agente |
|---|---|---|
| Servidores listados no registro, todas as categorias | 22.607 | Todo o ecossistema do qual um agente pode obter ferramentas |
| Servidores que correspondem a photo / image / stock / picture e aos nomes das bibliotecas | 137 | A maioria são editores, geradores ou ferramentas de fotos pessoais, não busca |
| …que de fato buscam fotografia de banco de imagens ou licença gratuita | 11 | Toda a prateleira endereçável |
| …publicados pela própria Unsplash, Pexels, Pixabay ou Openverse | 0 | Todos são wrappers de terceiros; um deles é rotulado “Unofficial” na própria descrição |
| …que rodam localmente e exigem sua própria chave de API de terceiros | 7 | UNSPLASH_ACCESS_KEY, PEXELS_API_KEY, PIXABAY_API_KEY… um humano precisa obter cada uma antes |
| …acessíveis como servidor remoto hospedado | 4 | Todos os quatro são gateways de fonte única de um único operador terceirizado, na frente das mesmas APIs de palavras-chave |
| Entradas para Getty ou Shutterstock | 0 | Seus servidores existem, mas são distribuídos fora do registro público, a titulares de conta |
import json, urllib.request, urllib.parse
def crawl(term): # o registro pagina com `nextCursor`
out, cursor = {}, None
while True:
p = {"limit": "100", "search": term} | ({"cursor": cursor} if cursor else {})
d = json.load(urllib.request.urlopen(
"https://registry.modelcontextprotocol.io/v0/servers?" + urllib.parse.urlencode(p)))
for e in d["servers"]: out[e["server"]["name"]] = e["server"]
cursor = (d.get("metadata") or {}).get("nextCursor")
if not cursor or not d["servers"]: return out
servers = {}
for t in ["photo", "image", "stock", "picture", "unsplash",
"pexels", "pixabay", "getty", "shutterstock", "openverse"]:
servers |= crawl(t)
# 137 servidores únicos · remoto vs local é `server["remotes"]`
# as chaves de terceiros exigidas estão em packages[].environmentVariables
Cada um desses wrappers é um cliente fino das mesmas três APIs de palavras-chave, o que significa que o benchmark acima se aplica a todos eles: o transporte mudou, a recuperação não. Um wrapper não consegue fazer um índice de tags entender uma frase.
A cláusula que barra uma máquina não é a cota
As cotas e termos das bibliotecas gratuitas são comparados lado a lado, numa unidade comum, em a comparação de APIs gratuitas de fotos de banco de imagens — as filas de aprovação, a chamada de download obrigatória, a obrigação de cache de 24 horas, as regras de atribuição. Aquele artigo lê essas regras como um desenvolvedor escolhendo um provedor. Lendo de novo como o programa que tem que obedecê-las, uma linha se destaca que não tem nada a ver com volume:
O campo de consulta do Pixabay aceita 100 caracteres. Os quatro briefings no benchmark acima têm em média 72, e o da hipoteca chega a 114 — ele seria rejeitado de imediato, não classificado mal. Pexels e Unsplash não publicam limite de tamanho porque nunca esperaram que fosse necessário: seus exemplos documentados são Ocean, Tigers, Pears. Um campo dimensionado para duas palavras é uma declaração sobre quem se esperava que fosse o solicitante, e nenhuma quantidade de cota resolve isso. O endpoint semântico com o qual um agente conversa aceita 500, porque a cláusula final — “…while a bank adviser explains the terms” — é a parte que torna a recuperação boa.
A mesma leitura se aplica ao onboarding. Um nível de demonstração que só se torna produção depois que um humano revisa capturas de tela do seu aplicativo não é um limite de taxa do qual um agente possa recuar; é uma etapa que ele simplesmente não consegue realizar. O Pixabay declara a intenção explicitamente — a API é para uso humano legítimo, e download automatizado em massa é proibido. Nada disso é irracional: fotógrafos cedem o trabalho de graça e alguém paga pela largura de banda. Isso simplesmente descreve uma API cujo solicitante se presumia ter uma tela e um par de mãos.
Quatro requisitos, e quem os cumpre
Juntando as duas metades, a especificação para uma camada de imagens que um agente possa realmente usar sai curta e testável. Deliberadamente não é uma comparação de fornecedores — tamanho de catálogo, preços e termos de licença estão alinhados em o artigo de comparação. Estes quatro tratam apenas de saber se um programa consegue chegar às imagens:
- Recuperação semântica — uma frase completa retorna uma página classificada, não um conjunto vazio.
- Licenças gratuitas, várias fontes — nada para licenciar por imagem, e nenhum gosto de uma única biblioteca definindo todas as páginas que você publica.
- Um servidor hospedado com login próprio — remoto, OAuth, nenhum processo local para instalar e nenhuma chave de API de terceiros para colar num arquivo de configuração.
- Um nível gratuito que uma máquina consegue completar sozinha — nenhuma revisão de captura de tela, nenhum contrato, uma cota mensal e um limite de taxa por minuto contra o qual um worker consiga se pautar.
| Em 18 de agosto de 2026 | Semântico | Licenças gratuitas, multi-fonte | Servidor hospedado + OAuth | Nível gratuito self-service |
|---|---|---|---|---|
| Getty Images MCP | Busca em linguagem natural | Catálogo licenciado, por contrato | Sim, para titulares de conta | Não — exige contrato ativo |
| Shutterstock via MCP | Guiado por palavras-chave | Catálogo licenciado, assinatura | Sim, com autenticação de conta | Não — assinatura para baixar |
| Wrappers Unsplash / Pexels / Pixabay | Não — APIs de palavras-chave por baixo | Fonte única cada | Não — processo local, sua própria chave | Herda o onboarding humano da API hospedeira |
| Openverse | Não — índice de palavras-chave | Sim, catálogo CC muito amplo | Nenhum servidor MCP oficial | Sim, API aberta |
| Pexafy | Sim — frases, até 500 caracteres | 9 fontes com licença gratuita, mais de 9M de fotos | Sim — mcp.pexafy.com/mcp, OAuth 2.1 |
Sim — 5,000 requisições/mês, 20/min, sem cartão |
Nós construímos o Pexafy, então leia essa última linha com o ceticismo que ela merece — e depois verifique: o censo do registro é reproduzível num único script, as condições de acesso da Getty e da Shutterstock estão em suas próprias páginas, e os limites das três APIs de fotos estão em seus próprios documentos, todos com link no rodapé. A afirmação é estreita e refutável: em 18 de agosto de 2026 não conseguimos encontrar um segundo serviço que cumpra os quatro requisitos. Se você conhece um, nós o adicionaremos a esta tabela — o propósito de escrever os requisitos é que qualquer um possa testá-los contra qualquer produto, inclusive o nosso.
O que um bom servidor de imagens faz via MCP
Um conector não é um endpoint REST com uma nova pintura. Dois usos dessa camada estão escritos em outro lugar e não são repetidos aqui — ilustrar um rascunho, em o artigo do pipeline, e manter uma série longa visualmente coerente, em o artigo sobre volume. O que pertence à infraestrutura é aquilo de que ambos dependem e que nenhum consegue adicionar depois: três decisões do lado do servidor, tomadas uma vez, para cada agente que algum dia se conectar.
1. Retornar objetos sobre os quais um agente possa raciocinar. O que a ferramenta retorna é tudo o que o modelo sabe — ele não consegue olhar uma grade. A diferença entre os dois formatos abaixo é a diferença entre um assistente que raciocina sobre fotografias e um que apenas repassa links:
# Wrapper típico de palavras-chave: o agente tem que buscar e olhar, ou adivinhar
[{ "url": "https://…/photo-8795398.jpeg" }, { "url": "https://…/366611.jpg" }]
# Um resultado, como retornado — reduzido aqui, nada adicionado
{
"rank": 1, // o identificador que um humano usa: "mais como #1"
"photo_id": "019e14d9-e821-…", // o que get_similar_photos recebe
"width": 6424, "height": 4283, "orientation": "landscape",
"color_hex": "#918872", "blur_hash": "LPI#Px?aDikCGwW?M{kD-VR*s.fl",
"source": "Pexels", "license_type": "free",
"alt_description": "Older couple sits together on wooden bench in a park",
"attribution": { "plain": "Photo by Anastasia Shuraeva on Pexels", "html": "…" },
"urls": { "thumb": "…", "small": "…", "regular": "…", "large": "…" }
}
Com o segundo formato, um agente consegue dizer “#3 é retrato, vai quebrar seu slot principal”, descartar
um fotógrafo duplicado, emitir a linha de crédito e entregar ao seu template um par
width/height que elimina o deslocamento de layout — sem buscar uma única
imagem. Com o primeiro, cada uma dessas decisões é um chute ou uma ida e volta.
2. Numerar os resultados, para que uma pessoa possa apontar. Os resultados voltam classificados
#1, #2, #3…, que é como qualquer um se refere a uma foto numa conversa — “mais como #3” —
sem nenhum identificador copiado à mão. Em clientes que suportam MCP Apps, as miniaturas são renderizadas embutidas,
e abrir uma delas mostra metadados que já estavam no resultado da ferramenta, sem chamada extra.
3. Permanecer somente leitura, e ser explícito sobre isso. Três ferramentas, sem escopo de escrita, sem
mutação de conta. Uma delas não tem equivalente em palavras-chave em lugar nenhum:
search_photos_by_image recebe uma imagem de referência — o hero atual de um cliente, uma
captura de tela colada no chat — mais uma frase opcional para ajustá-la
(“como esta, mas à noite”). Não há campo numa API de correspondência de tags onde essa requisição
possa sequer ser digitada. E um agente que não pode mudar nada é um agente cujo pior resultado é um
conjunto de resultados vazio, em vez de um chamado de suporte.
As duas superfícies, e qual você quer
Há exatamente duas maneiras de entrar, e a escolha é sobre quem está no ciclo, não sobre capacidade — as ferramentas e o catálogo são idênticos em ambas.
O conector, quando há uma pessoa. Uma URL,
https://mcp.pexafy.com/mcp, adicionada uma vez nas configurações de conector de um assistente;
o login acontece numa janela de navegador e o cliente recebe suas próprias credenciais, então não há
chave para colar num arquivo de configuração nem nenhuma para rotacionar depois. Clientes que não implementam OAuth enviam uma
chave de API do Pexafy como bearer token contra o mesmo endpoint — o que torna o conector
utilizável a partir de um cron job num servidor de build, onde ninguém está por perto para clicar em “Permitir”. As
instruções passo a passo para Claude, ChatGPT e um arquivo de configuração de frota estão em
o artigo do
pipeline; isso não mudou.
A API HTTP, quando não há ninguém. Um job em lote preenchendo um pool para 800 clusters de
tópicos não deveria fingir ser um cliente de chat: mesma conta, mesma chave, HTTP simples, 100 resultados por chamada.
As regras de ritmo que acompanham isso — os cabeçalhos de limite de taxa, por que um
429 por minuto vale a pena repetir e um 429 de cota mensal não, quanto um worker
custa em volume — pertencem a
o artigo sobre
ilustrar em escala, onde esse worker é detalhado por completo.
O ponto que vale a pena guardar aqui é mais estreito, e é aquele em que o estudo de mercado se apoia: ambas as superfícies são acessíveis a um programa no dia em que ele é escrito, sem fila e sem contrato.
O que isto não resolve
Uma lista honesta, porque cada um destes pontos já custou um rollback a alguém.
- A licença ainda rege a imagem. A atribuição não é exigida pelos termos da API Pexafy e todo resultado vem com uma string de atribuição pronta para renderizar — mas a licença anexada pela biblioteca de origem se aplica ao seu uso daquela foto. Renderize o crédito automaticamente; é mais barato do que auditar depois.
- Catálogos com licença gratuita não são arquivos editoriais. Sem notícias, sem esporte, sem marcas reconhecíveis ou figuras públicas sob demanda. Se sua página precisa de uma fotografia de um evento ou pessoa específica, é para isso que servem os incumbentes licenciados, e seus conectores agora existem.
- É recuperação, e apenas recuperação. Diagramas, gráficos e capturas de tela são renderizados a partir de código, não buscados; a deduplicação entre suas páginas é uma coluna no seu banco de dados, não um parâmetro no endpoint; e nenhuma fotografia faz uma página rasa subir no ranking — as políticas de spam do Google tratam o abuso de conteúdo em escala da mesma forma, ilustradas ou não as páginas.6 Esses três são problemas de pipeline com respostas de pipeline, trabalhados em o artigo do pipeline e o artigo sobre volume.
Por onde começar
- Reexecute o benchmark. Vinte linhas, sem chave. Qualquer API de imagens que você usa hoje, envie a ela três briefings do seu próprio agente, palavra por palavra, e conte os conjuntos de resultados vazios.
- Conecte um conector ao assistente que você já usa e peça a ele, numa frase, uma foto de que você realmente precisa esta semana. Essa é toda a avaliação.
- Mova os briefings para dentro do agente — uma cena por slot, escrita a partir do rascunho, nunca do título.
- Adicione a coluna
photo_idantes de publicar qualquer coisa em volume. - Rode no nível gratuito — 5,000 buscas por mês a 20 por minuto até que uma janela de build, não uma fatura, force você a subir de nível.
Referências & notas de rodapé
1 Especificação do Model Context Protocol de 28 de julho de 2026: núcleo de requisição/resposta sem estado, validação de emissor por RFC 9207, Client ID Metadata Documents substituindo o Dynamic Client Registration, e nomes de método/ferramenta transportados em cabeçalhos HTTP para roteamento de gateway.
2 Sala de imprensa da Getty Images, 12 de agosto de 2026 — “Getty Images Launches MCP Server to Connect Creative and Editorial Content to AI Workflows and Products”. A página de acesso declara que o uso exige um contrato ativo com a Getty Images, como o Premium Access, e a aceitação dos termos do Web Service.
3 O catálogo da Shutterstock é exposto por meio de um servidor MCP que oferece 24 ferramentas (busca, coleções, licenciamento), distribuído por uma plataforma MCP terceirizada em vez de anunciado no próprio portal de desenvolvedores da Shutterstock no momento em que este texto foi escrito; licenciamento e download exigem uma conta com assinatura ativa.
4 Getty Images Holdings, resultados do ano fiscal de 2025 (divulgados em 16 de março de 2026): receita de US$ 981,3 milhões, alta de 4,5% em relação ao ano anterior.
5 Mordor Intelligence, mercado de fotografia de banco de imagens: US$ 5,44 bilhões em 2026, crescendo a uma CAGR de 6,86%. As estimativas de tamanho de mercado variam conforme a metodologia; é citado aqui apenas para dar a ordem de grandeza.
6 Políticas de spam da Busca Google — abuso de conteúdo em escala: gerar muitas páginas principalmente para manipular classificações e oferecer pouco valor aos usuários, sejam elas criadas por automação, esforço humano ou uma combinação dos dois.
Fontes primárias, verificadas em 18 de agosto de 2026: API do registro MCP · Especificação do MCP · Anúncio do MCP da Getty Images · Documentação da API Unsplash · Documentação da API Pexels · Documentação da API Pixabay · API Openverse · Políticas de spam do Google · Documentação da API & MCP do Pexafy. As contagens do Openverse, as contagens de resultados do Pexafy e todas as latências neste artigo são valores ao vivo capturados naquele dia; os limites de plano são lidos do catálogo de preços ao vivo no momento da renderização.
Perguntas frequentes
Por que APIs de banco de imagens não retornam nada quando um agente de IA faz a busca?
elderly couple), o mesmo catálogo retornou centenas. O Pixabay limita a consulta a 100 caracteres, o que a maioria dos briefings de agentes já excede por si só. Um mecanismo semântico incorpora a frase inteira, então cláusulas como “tired” ou “at night” mudam o ranking em vez de quebrar a correspondência.Existe um servidor MCP oficial para Unsplash, Pexels ou Pixabay?
Quanto custa o servidor MCP da Getty Images, e quem pode usá-lo?
O que uma API de busca de imagens precisa ter para ser utilizável por um agente de IA?
Um assistente de IA pode buscar fotos e exibi-las dentro da conversa?
mcp.pexafy.com/mcp expõe três ferramentas somente leitura — search_photos (uma frase), search_photos_by_image (uma imagem de referência, opcionalmente ajustada com palavras) e get_similar_photos — e retorna resultados numerados com miniaturas renderizadas inline em clientes que suportam MCP Apps. Os resultados são classificados como #1, #2, #3…, então “mais parecido com #3” funciona sem copiar identificadores. O login é OAuth 2.1 em uma janela do navegador; clientes sem OAuth podem enviar uma chave de API como bearer token em vez disso.