Outscraper MCP Server
Acesse dados do Google Maps, avaliações, insights estruturados por IA e leads de negócios através do servidor Outscraper MCP, projetado para integração perfeita com agentes de IA e fluxos de automação.
Documentação
Outscraper MCP
Servidor MCP oficial para Outscraper.
Conecte agentes de IA ao Outscraper para descoberta de negócios, inteligência do Google Maps, enriquecimento de empresas e contatos, análise de avaliações, pesquisa e extração estruturada da web.
Melhor Para
- prospecção de negócios locais e geração de leads
- inteligência de lugares, fotos e avaliações do Google Maps
- enriquecimento de empresas e contatos a partir de domínios conhecidos
- fluxos de trabalho assíncronos de coleta de dados com polling
- extração de informações estruturadas de uma única página
Não Ideal Para
- automação de navegador ou interação de UI em várias etapas
- integrações SaaS genéricas baseadas em OAuth
- busca arbitrária de documentos fora da superfície de dados do Outscraper
- sessões de rastreamento de sites que exigem um navegador persistente
Fluxos de Trabalho Comuns
- encontre negócios com
businesses_search, depois enriqueça um registro escolhido combusinesses_get - pesquise lugares no Google Maps e depois busque avaliações ou fotos para análise de reputação
- enriqueça um domínio de empresa, valide e-mails e verifique a cobertura de contatos
- envie trabalhos assíncronos e depois faça polling com
requests_get - extraia dados estruturados de uma página com
ai_scraper
Ele expõe ferramentas MCP prontas para produção para:
- descoberta e enriquecimento de negócios
- lugares, avaliações, fotos e detecção de cadeias do Google Maps
- insights de empresas, e-mails, validação de e-mail e enriquecimento de telefones
- Pesquisa Google e pesquisa de Imagens Google
- dados de Yellow Pages, Booking, Yelp, Tripadvisor, Trustpilot e Indeed
- verificações de saldo da conta e gerenciamento do ciclo de vida de solicitações assíncronas
O servidor suporta transportes stdio e HTTP, instalação baseada em npm, autenticação hospedada por cabeçalho ou URL e um formato de resultado normalizado structuredContent para clientes e agentes MCP.
O Que Ele Faz
Este servidor MCP expõe fontes de dados e fluxos de trabalho de enriquecimento do Outscraper para clientes compatíveis com MCP.
Ele foi projetado para:
- descoberta de negócios e lugares
- recuperação de avaliações e fotos do Google Maps
- enriquecimento de contatos e empresas
- extração estruturada assistida por IA de uma única página com
ai_scraper - envio de solicitações assíncronas e polling por meio de
requests_get
Na prática, o servidor atua como uma camada MCP fina sobre a API do Outscraper:
- clientes MCP chamam ferramentas neste servidor
- o servidor autentica com uma chave de API do Outscraper
- as solicitações são encaminhadas para endpoints do Outscraper
- os resultados são retornados em um envelope de ferramenta MCP normalizado
Início Rápido
set OUTSCRAPER_API_KEY=YOUR_API_KEY
npx -y outscraper-mcp
Para clientes MCP, configure:
- comando:
npx - argumentos:
["-y", "outscraper-mcp"] - env:
OUTSCRAPER_API_KEY=YOUR_API_KEY
Para fluxos de trabalho orientados a tarefas, exemplos de copiar e colar e habilidades de agente de exemplo, consulte a pasta examples.
Ferramentas Atuais
pingbusinesses_searchbusinesses_getai_scrapergoogle_maps_searchgoogle_maps_reviewscompany_insightsemails_and_contactsemails_validatorgoogle_maps_photoschain_infoyellowpages_searchbooking_reviewsphones_enrichertp_data(alias legado paratrustpilot_data)trustpilot_datatp_reviews(alias legado paratrustpilot_reviews)trustpilot_reviewsyelp_reviewstripadvisor_searchtripadvisor_reviewsgoogle_searchgoogle_search_imagesindeed_searchbalance_getrequests_getrequests_listrequests_delete
Essas ferramentas estão alinhadas aos formatos atuais documentados da API do Outscraper, incluindo:
POST /businessesPOST /ai-scraperGET /businesses/{business_id}GET /google-maps-searchGET /google-maps-photosGET /google-searchGET /google-search-imagesGET /yellowpages-searchGET /booking-reviewsGET /phones-enricherGET /trustpilotGET /trustpilot-reviewsGET /yelp-reviewsGET /tripadvisor-searchGET /tripadvisor-reviewsGET /indeed-searchGET /google-maps-reviewsGET /company-insightsGET /emails-and-contactsGET /email-validator- enriquecimento documentado de
ai_chain_infoviagoogle-maps-search GET /profile/balanceGET /requests/{requestId}DELETE /requests/{requestId}GET /requests
Formato Unificado de Resultado de Ferramenta
Toda ferramenta agora retorna o mesmo envelope estruturado:
{
"data": {},
"meta": {
"service": "company_insights",
"operation": "get"
},
"async": {
"id": "request-id",
"status": "Pending",
"results_location": "https://api.outscraper.com/requests/request-id",
"is_async_submission": true,
"next_step": "Call requests_get with request_id=\"request-id\" to check progress."
}
}
async está presente quando a resposta é um envio assíncrono ou expõe metadados de solicitação assíncrona.
Modo de Execução
Ferramentas com capacidade assíncrona agora aceitam:
{
"execution_mode": "auto"
}
Valores disponíveis:
auto: deixe o servidor MCP escolher síncrono ou assíncronosync: forçar modo de resposta diretaasync: forçar modo de envio assíncrono
O antigo booleano async ainda é aceito para compatibilidade, mas execution_mode agora tem prioridade.
Instalação
A maneira recomendada de usar este servidor MCP é via npm.
Executar a partir do npm
npx -y outscraper-mcp
Forneça OUTSCRAPER_API_KEY por meio da configuração do seu cliente MCP ou do ambiente de shell.
O servidor carrega automaticamente .env na inicialização via dotenv.
No Windows, se um cliente não conseguir encontrar npx, use o caminho completo do Node.js, por exemplo:
{
"command": "C:\\Program Files\\nodejs\\npx.cmd",
"args": ["-y", "outscraper-mcp"]
}
Segurança
Problemas sensíveis à segurança devem ser relatados de acordo com SECURITY.md.
Modos de Conexão
O servidor atualmente suporta estes padrões de conexão:
1. MCP stdio local
Melhor para:
- Claude Desktop
- Claude Code
- Cursor
- VS Code
- Windsurf
- desenvolvimento MCP local
Fonte de autenticação:
- variável de ambiente
OUTSCRAPER_API_KEY
Transporte:
- processo local via stdio
2. HTTP Streamable sem estado remoto
Melhor para:
- endpoints MCP hospedados
- n8n
- proxy reverso ou implantação baseada em domínio
- uso remoto em contêineres
Fonte de autenticação quando CLOUD_SERVICE=true:
X-OUTSCRAPER-API-KEYX-API-KEYAuthorization: Bearer <api-key>- autenticação por caminho
/v1/mcp/<api-key>
Transporte:
- HTTP
POST /mcp - HTTP
POST /v1/mcp/<api-key>
3. HTTP/SSE com estado remoto
Melhor para:
- uso MCP baseado em sessão
- clientes que dependem da semântica de transporte HTTP com estado
Fonte de autenticação quando CLOUD_SERVICE=true:
- as mesmas opções de autenticação por cabeçalho ou URL do HTTP sem estado
Transporte:
POST /mcpGET /mcpDELETE /mcp- e o mesmo padrão de rota
/v1/mcp/<api-key>
Nota:
- o modo com estado armazena sessões na memória do processo, portanto é mais adequado para uma única instância ou implantação com sessão fixa do que para escalonamento horizontal
Conector ChatGPT
Se você quiser conectar este servidor ao ChatGPT como um conector MCP remoto, a forma hospedada mais simples é:
https://your-domain.example/v1/mcp/YOUR_API_KEY
Configuração recomendada:
- Implante o servidor via HTTPS atrás de um domínio real ou proxy reverso.
- Ative o modo hospedado com
CLOUD_SERVICE=true. - Use a rota de autenticação por URL se o conector não puder anexar cabeçalhos de autenticação personalizados.
- Prefira autenticação por cabeçalho para clientes servidor a servidor quando cabeçalhos personalizados estiverem disponíveis.
Valores típicos do conector:
- Nome:
Outscraper MCP - Descrição:
Business discovery, Google Maps data, enrichment, search, and AI scraping - URL do servidor MCP:
https://your-domain.example/v1/mcp/YOUR_API_KEY - Autenticação:
None
Notas:
- A autenticação por URL é a opção mais conveniente para configuração estilo conector, mas é menos privada que a autenticação por cabeçalho porque URLs têm maior probabilidade de aparecer em logs.
- Evite túneis temporários que injetam páginas de aviso do navegador, a menos que seu conector possa ignorá-los de forma limpa.
Modo de Autenticação por Cabeçalho Hospedado
Se você quiser comportamento hospedado, ative:
set CLOUD_SERVICE=true
Então o chamador HTTP pode enviar a chave de API do Outscraper em um destes cabeçalhos:
Authorization: Bearer <api-key>X-API-KEY: <api-key>X-OUTSCRAPER-API-KEY: <api-key>
No modo HTTP CLOUD_SERVICE=true, os cabeçalhos da solicitação são usados como fonte da chave de API. No modo stdio local, OUTSCRAPER_API_KEY ainda é necessário.
Solicitações HTTP sem uma dessas formas de autenticação são rejeitadas antes do início do processamento MCP.
Modo de Autenticação por URL Hospedado
Para conectores estilo ChatGPT ou outras configurações hospedadas que não podem enviar cabeçalhos personalizados, você também pode passar a chave de API no caminho:
http://localhost:3000/v1/mcp/YOUR_API_KEY
Esta rota suporta o mesmo comportamento MCP que /mcp, mas autentica a partir do caminho da URL quando CLOUD_SERVICE=true.
Para integrações servidor a servidor, a autenticação por cabeçalho ainda é preferida porque chaves de API baseadas em URL têm maior probabilidade de aparecer em logs.
Executar com HTTP Streamable
set HTTP_STREAMABLE_SERVER=true
set HOST=localhost
set PORT=3000
npx -y outscraper-mcp
Endpoint MCP:
http://localhost:3000/mcp
Endpoint de autenticação por URL hospedado:
http://localhost:3000/v1/mcp/YOUR_API_KEY
Endpoint de saúde:
http://localhost:3000/health
Executar com Docker Compose
Este repositório também inclui um docker-compose.yml para implantações hospedadas/em contêineres:
docker compose up --build -d
Comportamento padrão do contêiner:
- vincula
3000:3000 - ativa
CLOUD_SERVICE=true - ativa HTTP Streamable sem estado
- escuta em
0.0.0.0 - usa
https://api.outscraper.comcomo URL base da API upstream
Endpoints:
http://localhost:3000/mcp
http://localhost:3000/v1/mcp/YOUR_API_KEY
http://localhost:3000/health
Notas importantes para uso com Docker:
- este arquivo compose é destinado a acesso remoto hospedado, não a clientes stdio locais
- por padrão, espera que os chamadores autentiquem por solicitação, não por uma única chave de API para todo o servidor
- se você colocar o serviço atrás de um domínio ou proxy reverso, prefira autenticação por cabeçalho para uso servidor a servidor
- a autenticação por URL está disponível principalmente para fluxos de conector que não podem anexar cabeçalhos personalizados
Executar com Modo HTTP/SSE com Estado
Este modo usa gerenciamento de sessão local:
set SSE_LOCAL=true
set HOST=localhost
set PORT=3000
npx -y outscraper-mcp
Você também pode ativar o mesmo modo com:
set HTTP_STATEFUL_SERVER=true
set HOST=localhost
set PORT=3000
npx -y outscraper-mcp
Neste modo, o servidor aceita:
POST /mcppara inicialização e solicitações subsequentesGET /mcppara o fluxo da sessãoDELETE /mcppara encerramento da sessão
A sessão é rastreada por meio do cabeçalho mcp-session-id.
A autenticação por URL hospedada também funciona no modo com estado por meio de:
http://localhost:3000/v1/mcp/YOUR_API_KEY
Configuração do Cliente
Claude Desktop
Adicione isto à sua configuração MCP do Claude Desktop:
{
"mcpServers": {
"outscraper": {
"command": "npx",
"args": ["-y", "outscraper-mcp"],
"env": {
"OUTSCRAPER_API_KEY": "YOUR_API_KEY"
}
}
}
}
Claude Code
Adicione o servidor com a CLI do Claude Code:
claude mcp add outscraper -e OUTSCRAPER_API_KEY=YOUR_API_KEY -- npx -y outscraper-mcp
Cursor
Adicione isto à sua configuração MCP global:
{
"mcpServers": {
"outscraper": {
"command": "npx",
"args": ["-y", "outscraper-mcp"],
"env": {
"OUTSCRAPER_API_KEY": "YOUR_API_KEY"
}
}
}
}
Windsurf
Adicione isto à sua configuração MCP:
{
"mcpServers": {
"outscraper": {
"command": "npx",
"args": ["-y", "outscraper-mcp"],
"env": {
"OUTSCRAPER_API_KEY": "YOUR_API_KEY"
}
}
}
}
VS Code
Para settings.json:
{
"mcp": {
"inputs": [
{
"type": "promptString",
"id": "outscraperApiKey",
"description": "Outscraper API Key",
"password": true
}
],
"servers": {
"outscraper": {
"command": "npx",
"args": ["-y", "outscraper-mcp"],
"env": {
"OUTSCRAPER_API_KEY": "${input:outscraperApiKey}"
}
}
}
}
}
Cline / Roo Code / other command-based MCP clients
Use o formato de comando stdio padrão:
{
"mcpServers": {
"outscraper": {
"command": "npx",
"args": ["-y", "outscraper-mcp"],
"env": {
"OUTSCRAPER_API_KEY": "YOUR_API_KEY"
}
}
}
}
n8n
Para n8n ou outros clientes MCP HTTP, execute o servidor no modo HTTP Streamable:
set HTTP_STREAMABLE_SERVER=true
set HOST=localhost
set PORT=3000
set OUTSCRAPER_API_KEY=YOUR_API_KEY
npx -y outscraper-mcp
Então use:
http://localhost:3000/mcp
Exemplos de Ferramentas
Pesquisar negócios com filtros estruturados
{
"filters": {
"country_code": "US",
"states": ["NY"],
"cities": ["New York"],
"types": ["restaurant", "cafe"]
},
"fields": ["name", "phone", "website", "address", "rating", "reviews"],
"limit": 25
}
O suporte a query em linguagem natural em /businesses atualmente depende do comportamento do próprio parser do Outscraper. Em testes ao vivo, filters estruturados foram confiáveis, enquanto valores de query de forma livre frequentemente retornavam Could not parse query into a valid request format.
Extrair dados estruturados com AI Scraper
{
"query": "https://outscraper.com",
"prompt": "Extract company name, company description, and people mentioned on the page.",
"schema": {
"type": "object",
"required": [],
"properties": {
"company_name": { "type": "string" },
"company_description": { "type": "string" },
"people": {
"type": "array",
"items": { "type": "string" }
}
}
},
"execution_mode": "sync"
}
Use execution_mode: "async" se você quiser um ID de solicitação e planejar fazer polling mais tarde com requests_get.
Obter um negócio
{
"business_id": "YOUR_BUSINESS_ID",
"fields": ["name", "phone", "website", "address", "rating", "reviews"]
}
Pesquisar no Google Maps
{
"query": ["restaurants brooklyn usa"],
"limit": 20,
"language": "en",
"region": "us"
}
Buscar avaliações do Google Maps
{
"query": ["ChIJrc9T9fpYwokRdvjYRHT8nI4"],
"reviews_limit": 20,
"sort": "newest",
"language": "en"
}
Obter insights de empresas
{
"query": ["outscraper.com"],
"fields": ["name", "description", "industry"],
"execution_mode": "async"
}
Encontrar e-mails e contatos
{
"query": ["outscraper.com"],
"preferred_contacts": ["technical", "decision makers"],
"execution_mode": "sync"
}
Validar endereços de e-mail
{
"query": ["support@outscraper.com"],
"execution_mode": "sync"
}
Buscar fotos do Google Maps
{
"query": ["NoMad Restaurant, NY, USA"],
"photos_limit": 5,
"limit": 1,
"execution_mode": "sync"
}
Obter informações de cadeia
{
"query": ["Starbucks, New York, NY, USA"],
"limit": 1,
"execution_mode": "sync"
}
Obter dados de negócios do Trustpilot
{
"query": ["outscraper.com"],
"execution_mode": "sync"
}
Pesquisar no Google
{
"query": ["outscraper"],
"pages_per_query": 1,
"execution_mode": "sync"
}
Pesquisar no Google Imagens
{
"query": ["outscraper"],
"limit": 5,
"execution_mode": "sync"
}
Pesquisar no Indeed
{
"query": ["https://www.indeed.com/jobs?q=software+engineer&l=New+York%2C+NY"],
"limit": 10,
"execution_mode": "sync"
}
Verificar saldo da conta
{}
Excluir solicitação assíncrona
{
"request_id": "YOUR_REQUEST_ID"
}
Limitações Conhecidas
businesses_searchfunciona de forma confiável comfiltersestruturados, mas valores dequeryde formato livre em/businessespodem falhar comCould not parse query into a valid request format.Esse comportamento foi reproduzido contra a API ao vivo, não apenas dentro da camada MCP.ai_scraperfunciona melhor através dePOSTcom corpo JSON. Na validação ao vivo,POSTaceitouprompteschemade forma confiável, enquanto variantes deGETem torno deschemaequery_schemanão corresponderam ao mesmo comportamento de forma consistente.- Quando os exemplos do OpenAPI do Outscraper e o comportamento da API ao vivo diferem, o comportamento do endpoint ao vivo deve ser tratado como a fonte da verdade.
businesses_searché intencionalmente exposto aqui como uma ferramenta MCP síncrona porque o formato OpenAPI atual de/businessesé baseado em corpo de requisição e não se mostrou um fluxo de trabalho estável no estilo assíncrono durante a validação ao vivo.execution_mode="auto"é orientado por heurística. Ele foi projetado para escolher um padrão prático, mas chamadores que precisam de comportamento determinístico devem usar explicitamentesyncouasync.- O modo hospedado HTTP requer cabeçalhos de autenticação corretos quando
CLOUD_SERVICE=true; o modo stdio ainda esperaOUTSCRAPER_API_KEYno ambiente do processo. chain_infoé implementado a partir do enriquecimento documentado deai_chain_infoemgoogle-maps-search, porque o Outscraper atualmente não descreve um endpoint independente dechain info.builtwithnão é atualmente exposto como uma ferramenta porque o Outscraper atualmente não documenta um endpoint dedicado do BuiltWith.
Notas de Seleção de Ferramentas
- Use
businesses_searchpara descoberta estruturada de negócios com filtros e paginação por cursor. - Use
businesses_getquando você já tiver um ID de negócio concreto. - Use
google_maps_searchpara descoberta de lugares no estilo Google Maps a partir de consultas de pesquisa humanas. - Use
google_maps_reviewsquando o usuário precisar especificamente de dados de avaliações em vez de descoberta de lugares. - Use
company_insightspara firmografia e enriquecimento de perfil de empresas. - Use
emails_and_contactspara descoberta de contatos a partir de domínios conhecidos. - Use
requests_get,requests_listerequests_deleteapenas para gerenciamento do ciclo de vida assíncrono. - Use
balance_getpara verificações de conta e cobrança, não para recuperação de dados de negócios.
Notas
- O servidor suporta stdio, HTTP Streamable sem estado e modo local HTTP/SSE com estado.
CLOUD_SERVICE=truepermite a resolução de chave de API baseada em cabeçalho para requisições HTTP.- Para publicação no npm, o conteúdo do pacote é intencionalmente limitado a artefatos de runtime e documentação.
- Os trechos de configuração específicos de clientes neste README são destinados a servir como modelos práticos; a interface exata de configurações e os nomes das chaves de configuração podem variar ligeiramente entre clientes e versões do MCP.