QueryInbox

Console do Google Search e Google Analytics somente leitura para agentes de IA. Um endpoint MCP remoto expõe métodos nativos de GSC, GA4 Data e GA4 Admin.

Servidor MCP hospedado

npx add-mcp 'https://queryinbox.com/mcp'

Instala no Claude Code, Codex, Cursor e outros

Documentação

[

MCP

Servidor MCP hospedado para qualquer cliente que aceite uma URL. Nada para instalar.

Conectar via MCP →

](#mcp)[

Skill para agente

Para agentes que executam comandos de shell e leem um SKILL.md, com ou sem MCP.

Instalar a skill →

](#skill)[

API REST

A camada HTTP simples por baixo de ambos. Para scripts, serviços e ferramentas personalizadas.

Chamar a API →

](#rest-api)

Criar uma chave

Abra o QueryInbox, vá em Configurações → Acesso do agente e clique em Criar chave. A chave se parece com qi_AbCdEfGh.… e é exibida apenas uma vez — copie-a antes de fechar o painel. Você pode criar várias chaves (uma por laptop, uma por agente) e revogar cada uma separadamente.

MCP

O QueryInbox serve o MCP em https://queryinbox.com/mcp (HTTP Streamable, sem sessão). Uma URL e um cabeçalho são toda a configuração: nada para instalar, e as mudanças acompanham o aplicativo.

Esta página é o guia de configuração. Para saber o que o servidor expõe em cada produto do Google — os limites que você encontrará e as perguntas que valem a pena fazer — veja as páginas do Search Console e do Google Analytics.

Claude Code

claude mcp add --transport http queryinbox https://queryinbox.com/mcp \
  --header "Authorization: Bearer qi_..."

Codex

O Codex só lê o token bearer de uma variável de ambiente, então exporte a chave primeiro:

export QUERYINBOX_API_KEY=qi_...
codex mcp add queryinbox --url https://queryinbox.com/mcp \
  --bearer-token-env-var QUERYINBOX_API_KEY

Cursor

Adicione isto a ~/.cursor/mcp.json, ou .cursor/mcp.json em um projeto:

{
  "mcpServers": {
    "queryinbox": {
      "url": "https://queryinbox.com/mcp",
      "headers": { "Authorization": "Bearer qi_..." }
    }
  }
}

opencode

Adicione um servidor remoto ao opencode.json (projeto) ou ~/.config/opencode/opencode.json:

{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "queryinbox": {
      "type": "remote",
      "url": "https://queryinbox.com/mcp",
      "headers": { "Authorization": "Bearer {env:QUERYINBOX_API_KEY}" }
    }
  }
}

pi

O MCP está integrado ao pi 0.99.0 e versões posteriores. O servidor fica em ~/.pi/agent/mcp.json; adicione -l para gravar .pi/mcp.json para o projeto atual:

pi mcp add queryinbox --url https://queryinbox.com/mcp \
  --header "Authorization=Bearer qi_..."

Outros clientes remotos

Qualquer cliente que aceite uma URL e cabeçalhos funciona da mesma forma — novas versões do Claude Desktop, plugins de IDE:

{
  "mcpServers": {
    "queryinbox": {
      "url": "https://queryinbox.com/mcp",
      "headers": { "Authorization": "Bearer qi_..." }
    }
  }
}

Clientes que só falam stdio

Conecte o endpoint remoto com o pacote da comunidade mcp-remote:

npx -y mcp-remote https://queryinbox.com/mcp \
  --header "Authorization: Bearer qi_..."

Ferramentas

FerramentaO que faz
list_resourcesLista as propriedades do Search Console e do Analytics que esta conta do QueryInbox pode ler, além do conjunto de trabalho atual do usuário. Uma chamada que cobre ambas as APIs do Google; use-a antes de escolher um site ou propriedade.
gsc_apiExecuta qualquer método somente leitura do Google Search Console. Passe o nome do método nativo e os campos de solicitação nativos desse método; tudo, exceto method e site, é encaminhado ao Google sem alterações (campos POST viram o corpo JSON, campos GET viram a string de consulta). Métodos: sites.list, sites.get, sitemaps.list, sitemaps.get, searchanalytics.query, urlInspection.index.inspect. Retorna o payload bruto do Google em data. Os dados do Search Console têm atraso de 2 a 3 dias. Chame api_reference para parâmetros e observe a cota de inspeção de URL (2.000/dia por propriedade).
ga4_dataExecuta qualquer método somente leitura da API de Dados do Google Analytics. Passe o nome do método nativo e o corpo de solicitação nativo desse método (dateRanges, dimensions: [{name}], metrics: [{name}], filters,...); tudo, exceto method e property, é encaminhado sem alterações. Métodos: properties.runReport, properties.batchRunReports, properties.runPivotReport, properties.batchRunPivotReports, properties.runRealtimeReport, properties.checkCompatibility, properties.getMetadata, properties.runFunnelReport (alfa), properties.getPropertyQuotasSnapshot (alfa). Retorna o payload bruto do Google em data. Use properties.getMetadata para descobrir nomes de dimensões e métricas.
ga4_adminExecuta qualquer método somente leitura da API de Administração do Google Analytics: descoberta de contas e propriedades, fluxos de dados, eventos-chave, eventos de conversão, dimensões personalizadas e métricas personalizadas. Eles explicam o que as dimensões e métricas dos relatórios significam (por exemplo, qual evento uma métrica de keyEvents conta). Passe o nome do método nativo e os campos de solicitação nativos; tudo, exceto method, property e account, é encaminhado sem alterações. Retorna o payload bruto do Google em data.
api_referenceA referência gerada para gsc_api, ga4_data e ga4_admin: todos os métodos disponíveis, seus caminhos, parâmetros, notas e cotas do Google. Chame-a antes de um método desconhecido ou quando um nome de método for rejeitado.

Skill para agente

Para qualquer agente que execute comandos de shell e leia um SKILL.md. A skill ensina ao agente as chamadas REST que o MCP encapsula, e a chave continua sendo o único segredo necessário.

Instalação

A skill é servida em /skills/queryinbox e sua referência de métodos gerada em /skills/queryinbox/reference — abra-as no navegador primeiro, se quiser, e depois instale ambas no diretório de skills do seu harness:

# pi
mkdir -p ~/.pi/agent/skills/queryinbox
curl -fsSL https://queryinbox.com/skills/queryinbox \
  -o ~/.pi/agent/skills/queryinbox/SKILL.md
curl -fsSL https://queryinbox.com/skills/queryinbox/reference \
  -o ~/.pi/agent/skills/queryinbox/reference.md

# Claude Code
mkdir -p ~/.claude/skills/queryinbox
curl -fsSL https://queryinbox.com/skills/queryinbox \
  -o ~/.claude/skills/queryinbox/SKILL.md
curl -fsSL https://queryinbox.com/skills/queryinbox/reference \
  -o ~/.claude/skills/queryinbox/reference.md

# other harnesses that read the shared skills directory
mkdir -p ~/.agents/skills/queryinbox
curl -fsSL https://queryinbox.com/skills/queryinbox \
  -o ~/.agents/skills/queryinbox/SKILL.md
curl -fsSL https://queryinbox.com/skills/queryinbox/reference \
  -o ~/.agents/skills/queryinbox/reference.md

Atualizar a skill depois é o mesmo par de curls.

Armazenamento da chave

A skill lê QUERYINBOX_API_KEY quando definida e usa um arquivo como fallback, então a chave continua funcionando entre terminais e agentes iniciados por GUI sem tocar no seu perfil de shell:

mkdir -p ~/.config/queryinbox
printf '%s\n' 'qi_...' > ~/.config/queryinbox/api-key
chmod 600 ~/.config/queryinbox/api-key

Prefere uma variável de ambiente? Torne-a persistente em vez de exportá-la por shell: macOS/zsh ~/.zshrc, Linux/bash ~/.bashrc, fish set -Ux, Windows PowerShell setx, ou as próprias configurações de ambiente do seu harness (para Claude Code, o bloco env em ~/.claude/settings.json).

API REST

O MCP é um encapsulamento desses endpoints, e a skill os documenta. Há uma rota por API do Google; method nomeia o endpoint a ser chamado e todos os outros campos são a solicitação nativa desse endpoint — campos POST viram o corpo JSON, campos GET viram a string de consulta. Envie a chave como token bearer; o seletor site ou property aceita um valor completo ou uma substring única e é resolvido antes da chamada.

curl -s https://queryinbox.com/api/agent/resources \
  -H "Authorization: Bearer $QUERYINBOX_API_KEY"

curl -s https://queryinbox.com/api/agent/gsc \
  -H "Authorization: Bearer $QUERYINBOX_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"method":"searchanalytics.query","site":"example.com",
       "startDate":"2026-09-01","endDate":"2026-09-28",
       "dimensions":["query"],"rowLimit":20}'

curl -s https://queryinbox.com/api/agent/ga4 \
  -H "Authorization: Bearer $QUERYINBOX_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"method":"properties.runReport","property":"example.com",
       "dateRanges":[{"startDate":"2026-09-01","endDate":"2026-09-28"}],
       "dimensions":[{"name":"date"}],
       "metrics":[{"name":"sessions"},{"name":"activeUsers"}]}'

Também disponíveis: POST /api/agent/ga4/admin para configuração e metadados de propriedades (fluxos de dados, eventos-chave, dimensões personalizadas) e POST /api/agent/reference para a lista completa de métodos com parâmetros e cotas.

Erros

HTTPCódigoSignificado
400invalid_requestO corpo está malformado ou um campo obrigatório está ausente ( method, ou o seletor que um método precisa)
400method_not_availableO método não faz parte da superfície somente leitura (gravações, configuração de contas ou exportações que criam estado)
401invalid_api_keyA chave está errada ou revogada — crie uma nova em Configurações
404site_not_found, site_ambiguous, property_not_found, property_ambiguousOs seletores não corresponderam a nada ou a vários recursos; o corpo lista os candidatos
409reauth_requiredA chave está correta, mas a autorização subjacente do Google expirou ou foi revogada. Entre novamente no QueryInbox; a resposta traz um reauthUrl, e a mesma chave continua funcionando depois
429rate_limitedMais de 120 solicitações em um minuto — recue
429google_quota_exceededCota própria do Google (por exemplo, a inspeção de URL de 2.000/dia por propriedade) — recue, respeitando retryAfter quando presente
502google_errorO próprio Google falhou ou rejeitou a consulta

Bom saber

  • Somente leitura. Uma chave pode ler as APIs de leitura do Search Console e do Analytics cobertas por esses dois escopos; alguns endpoints são deliberadamente excluídos (configuração de contas, exportações que criam estado). Nada é gravado de volta no Google.
  • As chaves não expiram sozinhas. Revogue-as em Configurações a qualquer momento, ou use Desconectar Google para remover a autorização do Google e todas as chaves de uma vez.
  • O Search Console tem atraso de 2 a 3 dias, e o dia mais recente é parcial. O Analytics relata por dia; um relatório em tempo real (properties.runRealtimeReport) cobre os últimos 30 minutos.
  • O agente nunca vê sua senha ou tokens do Google — apenas esta chave. Revogar a chave corta o acesso imediatamente.