Google Search MCP
Um servidor leve de Model Context Protocol (MCP) que permite que modelos de IA pesquisem na web usando a API Google Custom Search.
Documentação
🔍 Um servidor MCP que permite que qualquer cliente de IA compatível com MCP pesquise na web ao vivo através da API JSON de Pesquisa Personalizada do Google — via stdio, plug-and-play.
🧭 Sumário
- 🧭 Sumário
- ✨ Visão Geral
- ⚙️ Requisitos
- 🔧 Configuração da Pesquisa Personalizada do Google
- ⚠️ Limites de Taxa e Cota
- 📦 Instalação
- ▶️ Executar
- 🐳 Executar com Docker
- 🔌 Configuração do Cliente MCP
- 🧩 Usando Este Servidor no Seu Próprio Projeto
- 🛠️ Ferramenta Disponível
- 🧪 Testar com o MCP Inspector
- 📁 Estrutura do Projeto
- 🤝 Contribuindo
- 📄 Licença
- 👤 Autor
✨ Visão Geral
Este servidor preenche a lacuna entre agentes de IA e conhecimento web em tempo real. Ele fala o Model Context Protocol (MCP) via stdio, para que qualquer cliente compatível possa chamar uma única ferramenta —
search_google— e receber resultados de pesquisa limpos e estruturados diretamente do Google.
┌─────────────────┐ stdio (MCP) ┌──────────────────────┐ HTTPS ┌───────────────────┐
│ MCP Client │ ───────────────────────▶ │ Google Search MCP │ ──────────────────▶ │ Google Custom │
│ (Claude, etc.) │ ◀─────────────────────── │ Server │ ◀────────────────── │ Search JSON API │
└─────────────────┘ results └──────────────────────┘ results └───────────────────┘
⚙️ Requisitos
| Requisito | Detalhes |
|---|---|
| 🟢 Node.js | v18 ou mais recente |
| 🔑 Chave da API do Google | Com acesso à API JSON de Pesquisa Personalizada |
| 🆔 ID do Mecanismo de Busca | De um Mecanismo de Pesquisa Programável do Google (cx) |
🔧 Configuração da Pesquisa Personalizada do Google
- Crie um projeto no Google Cloud Console
- Ative o
Custom Search APIpara esse projeto - Gere uma chave de API
- Crie um Mecanismo de Pesquisa Programável e copie seu ID do Mecanismo de Busca
⚠️ Limites de Taxa e Cota
O nível gratuito da API JSON de Pesquisa Personalizada do Google permite 100 consultas por dia. Quando esse limite é atingido, a API retorna um erro 429 e o search_google responderá com uma mensagem de erro em vez de resultados.
- Precisa de mais? Você pode ativar a cobrança no seu projeto do Google Cloud para até 10.000 consultas/dia (pagas, com preço por consulta).
- Verifique seu uso atual no Google Cloud Console em APIs & Services → Custom Search API → Quotas.
📦 Instalação
npm install
Crie um arquivo .env na raiz do projeto:
GOOGLE_API_KEY=your_google_api_key
SEARCH_ENGINE_ID=your_search_engine_id
⚠️
Nunca envie o
.envnem exponha sua chave de API no controle de versão.
▶️ Executar
Desenvolvimento (execute TypeScript diretamente):
npm start
Produção (compile e depois execute a saída compilada):
npm run build
node build/index.js
ℹ️ O servidor registra status e erros no
stderr, mantendo ostdoutlimpo para mensagens do protocolo MCP.
🐳 Executar com Docker
Prefere contêineres? Você pode compilar e executar este servidor sem instalar o Node.js localmente.
Compile a imagem:
docker build -t google-search-mcp .
Execute-o (certifique-se de que seu arquivo .env esteja configurado primeiro — veja Instalação):
docker run -i --rm --env-file .env google-search-mcp
⚠️
A flag
-ié obrigatória — este é um servidor MCP baseado em stdio e precisa de um fluxo interativo para se comunicar com o cliente.
Ou use Docker Compose:
services:
google-search-mcp:
build: .
stdin_open: true
tty: true
env_file:
- .env
docker compose up --build
Aponte seu cliente MCP para o Docker
{
"mcpServers": {
"google-search": {
"command": "docker",
"args": ["run", "-i", "--rm", "--env-file", ".env", "google-search-mcp"]
}
}
}
🔌 Configuração do Cliente MCP
Após compilar o projeto, registre o servidor com um cliente compatível com MCP usando o ponto de entrada compilado:
{
"mcpServers": {
"google-search": {
"command": "node",
"args": ["/absolute/path/to/Google-Search-MCP/build/index.js"],
"env": {
"GOOGLE_API_KEY": "your_google_api_key",
"SEARCH_ENGINE_ID": "your_search_engine_id"
}
}
}
}
Ou mantenha as credenciais no .env do projeto e inicie a partir do diretório do projeto:
{
"mcpServers": {
"google-search": {
"command": "node",
"args": ["/absolute/path/to/Google-Search-MCP/build/index.js"]
}
}
}
🧩 Usando Este Servidor no Seu Próprio Projeto
Este servidor não está vinculado a um único cliente — qualquer host compatível com MCP pode iniciá-lo e chamar o search_google. Para usá-lo em outro lugar:
- Clone e compile este repositório (ou puxe a imagem Docker — veja Executar com Docker).
- Aponte a configuração do seu cliente MCP para o ponto de entrada compilado (
build/index.js) ou o comando Docker, usando o mesmo JSON mostrado em Configuração do Cliente MCP. - Clientes suportados — qualquer ferramenta que fale MCP via stdio funciona, incluindo:
- Chamando programaticamente — se você está construindo seu próprio cliente/agente MCP em código, conecte um
ClientMCP viaStdioClientTransportapontado parabuild/index.js, depois chame a ferramentasearch_googlecomo qualquer outra ferramenta MCP. Veja a documentação do SDK TypeScript do MCP para exemplos do lado do cliente.
Cada cliente tem seu próprio local e formato de arquivo de configuração para
mcpServers— verifique a documentação desse cliente para saber exatamente onde colar o bloco JSON.
🛠️ Ferramenta Disponível
search_google
Pesquisa no Google Custom Search pela consulta fornecida e retorna os 3 principais resultados.
Entrada
{
"query": "latest TypeScript release"
}
Saída
Cada resultado inclui:
- 📌
title - 🔗
link - 📝
snippet
Se nada for encontrado, a ferramenta responde com No results found.
🧪 Testar com o MCP Inspector
npm run build
npx @modelcontextprotocol/inspector node build/index.js
Certifique-se de que suas variáveis de ambiente estejam definidas antes de iniciar o inspector.
📁 Estrutura do Projeto
📦 Google-Search-MCP
├── 📂 src
│ └── index.ts # MCP server implementation
├── 📂 build # Compiled JavaScript and type declarations
├── .env # Local environment config (not committed)
└── README.md
🤝 Contribuindo
Contribuições, relatórios de bugs e solicitações de recursos são bem-vindos!
- Encontrou um bug ou tem uma ideia? Abra uma issue descrevendo-o.
- Quer contribuir com código?
- Faça um fork do repositório
2. Crie uma branch (
git checkout -b feature/your-feature) 3. Faça suas alterações e teste localmente (npm startoudocker compose up --build) 4. Faça commit e push, depois abra um Pull Request
- Faça um fork do repositório
2. Crie uma branch (
Por favor, mantenha os PRs focados — um recurso ou correção por PR facilita a revisão.
📄 Licença
Este projeto está licenciado sob a Licença MIT.