Outscraper MCP Server
Accede a datos de Google Maps, reseñas, información estructurada por IA y leads de negocios a través del servidor Outscraper MCP, diseñado para una integración fluida con agentes de IA y flujos de trabajo de automatización.
Documentación
Outscraper MCP
Servidor MCP oficial para Outscraper.
Conecta agentes de IA a Outscraper para descubrimiento de negocios, inteligencia de Google Maps, enriquecimiento de empresas y contactos, análisis de reseñas, búsqueda y extracción web estructurada.
Ideal para
- prospección de negocios locales y generación de leads
- inteligencia de lugares, fotos y reseñas de Google Maps
- enriquecimiento de empresas y contactos a partir de dominios conocidos
- flujos de trabajo de recopilación de datos asíncronos con sondeo
- extracción de información estructurada de una sola página
No es ideal para
- automatización de navegador o interacción de UI en varios pasos
- integraciones SaaS genéricas basadas en OAuth
- búsqueda arbitraria de documentos fuera de la superficie de datos de Outscraper
- sesiones de rastreo web que requieren un navegador persistente
Flujos de trabajo comunes
- encuentra negocios con
businesses_search, luego enriquece un registro elegido conbusinesses_get - busca lugares en Google Maps, luego obtén reseñas o fotos para análisis de reputación
- enriquece un dominio de empresa, valida correos electrónicos y verifica la cobertura de contactos
- envía trabajos asíncronos y luego hazles sondeo con
requests_get - extrae datos estructurados de una página con
ai_scraper
Expone herramientas MCP listas para producción para:
- descubrimiento y enriquecimiento de negocios
- lugares, reseñas, fotos y detección de cadenas de Google Maps
- información de empresas, correos electrónicos, validación de correos y enriquecimiento de teléfonos
- búsqueda de Google Search y Google Images
- datos de Yellow Pages, Booking, Yelp, Tripadvisor, Trustpilot e Indeed
- verificación de saldo de cuenta y gestión del ciclo de vida de solicitudes asíncronas
El servidor admite transportes stdio y HTTP, instalación basada en npm, autenticación alojada por encabezado o URL, y una forma de resultado normalizada structuredContent para clientes y agentes MCP.
Qué hace
Este servidor MCP expone fuentes de datos de Outscraper y flujos de trabajo de enriquecimiento a clientes compatibles con MCP.
Está diseñado para:
- descubrimiento de negocios y lugares
- recuperación de reseñas y fotos de Google Maps
- enriquecimiento de contactos y empresas
- extracción estructurada asistida por IA de una sola página con
ai_scraper - envío de solicitudes asíncronas y sondeo a través de
requests_get
En la práctica, el servidor actúa como una capa MCP delgada sobre la API de Outscraper:
- los clientes MCP llaman a herramientas en este servidor
- el servidor se autentica con una clave de API de Outscraper
- las solicitudes se reenvían a los endpoints de Outscraper
- los resultados se devuelven en un envoltorio de herramienta MCP normalizado
Inicio rápido
set OUTSCRAPER_API_KEY=YOUR_API_KEY
npx -y outscraper-mcp
Para clientes MCP, configura:
- comando:
npx - argumentos:
["-y", "outscraper-mcp"] - entorno:
OUTSCRAPER_API_KEY=YOUR_API_KEY
Para flujos de trabajo orientados a tareas, ejemplos de copiar y pegar y habilidades de agente de ejemplo, consulta la carpeta examples.
Herramientas actuales
pingbusinesses_searchbusinesses_getai_scrapergoogle_maps_searchgoogle_maps_reviewscompany_insightsemails_and_contactsemails_validatorgoogle_maps_photoschain_infoyellowpages_searchbooking_reviewsphones_enrichertp_data(alias heredado paratrustpilot_data)trustpilot_datatp_reviews(alias heredado paratrustpilot_reviews)trustpilot_reviewsyelp_reviewstripadvisor_searchtripadvisor_reviewsgoogle_searchgoogle_search_imagesindeed_searchbalance_getrequests_getrequests_listrequests_delete
Estas herramientas están alineadas con las formas actuales documentadas de la API de Outscraper, incluyendo:
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- enriquecimiento documentado de
ai_chain_infomediantegoogle-maps-search GET /profile/balanceGET /requests/{requestId}DELETE /requests/{requestId}GET /requests
Forma unificada de resultado de herramienta
Cada herramienta ahora devuelve el mismo envoltorio estructurado:
{
"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 cuando la respuesta es un envío asíncrono o expone metadatos de solicitud asíncrona.
Modo de ejecución
Las herramientas capaces de asíncrono ahora aceptan:
{
"execution_mode": "auto"
}
Valores disponibles:
auto: deja que el servidor MCP elija síncrono o asíncronosync: fuerza el modo de respuesta directaasync: fuerza el modo de envío asíncrono
El booleano antiguo async todavía se acepta por compatibilidad, pero execution_mode ahora tiene prioridad.
Instalación
La forma recomendada de usar este servidor MCP es desde npm.
Ejecutar desde npm
npx -y outscraper-mcp
Proporciona OUTSCRAPER_API_KEY a través de la configuración de tu cliente MCP o del entorno de shell.
El servidor carga automáticamente .env al inicio mediante dotenv.
En Windows, si un cliente no puede encontrar npx, usa la ruta completa de Node.js en su lugar, por ejemplo:
{
"command": "C:\\Program Files\\nodejs\\npx.cmd",
"args": ["-y", "outscraper-mcp"]
}
Seguridad
Los problemas sensibles a la seguridad deben informarse según SECURITY.md.
Modos de conexión
El servidor actualmente admite estos patrones de conexión:
1. MCP stdio local
Ideal para:
- Claude Desktop
- Claude Code
- Cursor
- VS Code
- Windsurf
- desarrollo MCP local
Fuente de autenticación:
- variable de entorno
OUTSCRAPER_API_KEY
Transporte:
- proceso local sobre stdio
2. HTTP Streamable sin estado remoto
Ideal para:
- endpoints MCP alojados
- n8n
- proxy inverso o implementación basada en dominio
- uso remoto contenerizado
Fuente de autenticación cuando CLOUD_SERVICE=true:
X-OUTSCRAPER-API-KEYX-API-KEYAuthorization: Bearer <api-key>- autenticación por ruta
/v1/mcp/<api-key>
Transporte:
- HTTP
POST /mcp - HTTP
POST /v1/mcp/<api-key>
3. HTTP/SSE con estado remoto
Ideal para:
- uso de MCP basado en sesiones
- clientes que dependen de la semántica de transporte HTTP con estado
Fuente de autenticación cuando CLOUD_SERVICE=true:
- las mismas opciones de autenticación por encabezado o URL que HTTP sin estado
Transporte:
POST /mcpGET /mcpDELETE /mcp- y el mismo patrón de ruta
/v1/mcp/<api-key>
Nota:
- el modo con estado almacena sesiones en la memoria del proceso, por lo que es más adecuado para una instancia única o implementación con sesiones fijas que para escalado horizontal
Conector ChatGPT
Si quieres conectar este servidor a ChatGPT como conector MCP remoto, la forma alojada más simple es:
https://your-domain.example/v1/mcp/YOUR_API_KEY
Configuración recomendada:
- Implementa el servidor sobre HTTPS detrás de un dominio real o proxy inverso.
- Habilita el modo alojado con
CLOUD_SERVICE=true. - Usa la ruta de autenticación por URL si el conector no puede adjuntar encabezados de autenticación personalizados.
- Prefiere autenticación por encabezado para clientes servidor a servidor cuando haya encabezados personalizados disponibles.
Valores típicos del conector:
- Nombre:
Outscraper MCP - Descripción:
Business discovery, Google Maps data, enrichment, search, and AI scraping - URL del servidor MCP:
https://your-domain.example/v1/mcp/YOUR_API_KEY - Autenticación:
None
Notas:
- La autenticación por URL es la opción más conveniente para configuraciones tipo conector, pero es menos privada que la autenticación por encabezado porque las URLs tienen más probabilidad de aparecer en registros.
- Evita túneles temporales que inyecten páginas de advertencia del navegador a menos que tu conector pueda omitirlas limpiamente.
Modo de autenticación por encabezado alojado
Si quieres comportamiento alojado, habilita:
set CLOUD_SERVICE=true
Entonces el llamador HTTP puede enviar la clave de API de Outscraper en uno de estos encabezados:
Authorization: Bearer <api-key>X-API-KEY: <api-key>X-OUTSCRAPER-API-KEY: <api-key>
En el modo HTTP CLOUD_SERVICE=true, los encabezados de solicitud se usan como fuente de la clave de API. En el modo stdio local, OUTSCRAPER_API_KEY sigue siendo necesario.
Las solicitudes HTTP sin una de estas formas de autenticación se rechazan antes de que comience el procesamiento MCP.
Modo de autenticación por URL alojado
Para conectores estilo ChatGPT u otras configuraciones alojadas que no pueden enviar encabezados personalizados, también puedes pasar la clave de API en la ruta:
http://localhost:3000/v1/mcp/YOUR_API_KEY
Esta ruta admite el mismo comportamiento MCP que /mcp, pero autentica desde la ruta de URL cuando CLOUD_SERVICE=true.
Para integraciones servidor a servidor, la autenticación por encabezado sigue siendo preferida porque las claves de API basadas en URL tienen más probabilidad de aparecer en registros.
Ejecutar con 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 autenticación por URL alojado:
http://localhost:3000/v1/mcp/YOUR_API_KEY
Endpoint de salud:
http://localhost:3000/health
Ejecutar con Docker Compose
Este repositorio también incluye un docker-compose.yml para implementaciones alojadas/contenerizadas:
docker compose up --build -d
Comportamiento predeterminado del contenedor:
- vincula
3000:3000 - habilita
CLOUD_SERVICE=true - habilita HTTP Streamable sin estado
- escucha en
0.0.0.0 - usa
https://api.outscraper.comcomo URL base de la API ascendente
Endpoints:
http://localhost:3000/mcp
http://localhost:3000/v1/mcp/YOUR_API_KEY
http://localhost:3000/health
Notas importantes para el uso de Docker:
- este archivo compose está destinado al acceso remoto alojado, no a clientes stdio locales
- por defecto espera que los llamadores se autentiquen por solicitud, no a través de una única clave de API para todo el servidor
- si pones el servicio detrás de un dominio o proxy inverso, prefiere autenticación por encabezado para uso servidor a servidor
- la autenticación por URL está disponible principalmente para flujos de conector que no pueden adjuntar encabezados personalizados
Ejecutar con modo HTTP/SSE con estado
Este modo usa gestión de sesiones local:
set SSE_LOCAL=true
set HOST=localhost
set PORT=3000
npx -y outscraper-mcp
También puedes habilitar el mismo modo con:
set HTTP_STATEFUL_SERVER=true
set HOST=localhost
set PORT=3000
npx -y outscraper-mcp
En este modo el servidor acepta:
POST /mcppara inicializar y solicitudes posterioresGET /mcppara el flujo de sesiónDELETE /mcppara la terminación de sesión
La sesión se rastrea a través del encabezado mcp-session-id.
La autenticación por URL alojada también funciona en modo con estado a través de:
http://localhost:3000/v1/mcp/YOUR_API_KEY
Configuración del cliente
Claude Desktop
Añade esto a tu configuración MCP de Claude Desktop:
{
"mcpServers": {
"outscraper": {
"command": "npx",
"args": ["-y", "outscraper-mcp"],
"env": {
"OUTSCRAPER_API_KEY": "YOUR_API_KEY"
}
}
}
}
Claude Code
Añade el servidor con la CLI de Claude Code:
claude mcp add outscraper -e OUTSCRAPER_API_KEY=YOUR_API_KEY -- npx -y outscraper-mcp
Cursor
Añade esto a tu configuración MCP global:
{
"mcpServers": {
"outscraper": {
"command": "npx",
"args": ["-y", "outscraper-mcp"],
"env": {
"OUTSCRAPER_API_KEY": "YOUR_API_KEY"
}
}
}
}
Windsurf
Añade esto a tu configuración 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
Usa la forma de comando stdio estándar:
{
"mcpServers": {
"outscraper": {
"command": "npx",
"args": ["-y", "outscraper-mcp"],
"env": {
"OUTSCRAPER_API_KEY": "YOUR_API_KEY"
}
}
}
}
n8n
Para n8n u otros clientes MCP HTTP, ejecuta el servidor en 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
Luego usa:
http://localhost:3000/mcp
Ejemplos de herramientas
Buscar negocios con filtros estructurados
{
"filters": {
"country_code": "US",
"states": ["NY"],
"cities": ["New York"],
"types": ["restaurant", "cafe"]
},
"fields": ["name", "phone", "website", "address", "rating", "reviews"],
"limit": 25
}
El soporte de query en lenguaje natural en /businesses actualmente depende del comportamiento del analizador de Outscraper. En pruebas en vivo, los filters estructurados fueron confiables mientras que los valores de query de forma libre a menudo devolvían Could not parse query into a valid request format.
Extraer datos estructurados con 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"
}
Usa execution_mode: "async" si quieres un id de solicitud y planeas hacer sondeo más tarde con requests_get.
Obtener un negocio
{
"business_id": "YOUR_BUSINESS_ID",
"fields": ["name", "phone", "website", "address", "rating", "reviews"]
}
Buscar en Google Maps
{
"query": ["restaurants brooklyn usa"],
"limit": 20,
"language": "en",
"region": "us"
}
Obtener reseñas de Google Maps
{
"query": ["ChIJrc9T9fpYwokRdvjYRHT8nI4"],
"reviews_limit": 20,
"sort": "newest",
"language": "en"
}
Obtener información de empresas
{
"query": ["outscraper.com"],
"fields": ["name", "description", "industry"],
"execution_mode": "async"
}
Encontrar correos electrónicos y contactos
{
"query": ["outscraper.com"],
"preferred_contacts": ["technical", "decision makers"],
"execution_mode": "sync"
}
Validar direcciones de correo electrónico
{
"query": ["support@outscraper.com"],
"execution_mode": "sync"
}
Obtener fotos de Google Maps
{
"query": ["NoMad Restaurant, NY, USA"],
"photos_limit": 5,
"limit": 1,
"execution_mode": "sync"
}
Obtener información de cadenas
{
"query": ["Starbucks, New York, NY, USA"],
"limit": 1,
"execution_mode": "sync"
}
Obtener datos de negocios de Trustpilot
{
"query": ["outscraper.com"],
"execution_mode": "sync"
}
Buscar en Google
{
"query": ["outscraper"],
"pages_per_query": 1,
"execution_mode": "sync"
}
Buscar en Google Images
{
"query": ["outscraper"],
"limit": 5,
"execution_mode": "sync"
}
Buscar en Indeed
{
"query": ["https://www.indeed.com/jobs?q=software+engineer&l=New+York%2C+NY"],
"limit": 10,
"execution_mode": "sync"
}
Verificar saldo de cuenta
{}
Eliminar solicitud asíncrona
{
"request_id": "YOUR_REQUEST_ID"
}
Limitaciones conocidas
businesses_searchfunciona de manera confiable confiltersestructurados, pero los valores dequeryde formato libre en/businessespueden fallar conCould not parse query into a valid request format.. Este comportamiento se reprodujo contra la API en vivo, no solo dentro de la capa MCP.ai_scraperfunciona mejor a través dePOSTcon un cuerpo JSON. En la validación en vivo,POSTaceptópromptyschemade manera confiable, mientras que las variantes deGETalrededor deschemayquery_schemano coincidieron con el mismo comportamiento de manera consistente.- Cuando los ejemplos de OpenAPI de Outscraper y el comportamiento de la API en vivo difieren, el comportamiento del endpoint en vivo debe tratarse como la fuente de verdad.
businesses_searchse expone intencionalmente aquí como una herramienta MCP síncrona porque la forma actual de OpenAPI de/businessesse basa en el cuerpo de la solicitud y no demostró ser un flujo de trabajo asíncrono estable durante la validación en vivo.execution_mode="auto"está impulsado por heurísticas. Está diseñado para elegir un valor predeterminado práctico, pero los llamadores que necesitan un comportamiento determinista deben usar explícitamentesyncoasync.- El modo alojado HTTP requiere encabezados de autenticación correctos cuando
CLOUD_SERVICE=true; el modo stdio aún esperaOUTSCRAPER_API_KEYen el entorno del proceso. chain_infose implementa a partir del enriquecimiento documentado deai_chain_infoengoogle-maps-search, porque Outscraper actualmente no describe un endpoint independiente dechain info.builtwithno se expone actualmente como una herramienta porque Outscraper actualmente no documenta un endpoint dedicado de BuiltWith.
Notas de Selección de Herramientas
- Use
businesses_searchpara el descubrimiento estructurado de negocios con filtros y paginación por cursor. - Use
businesses_getuna vez que ya tenga un ID de negocio concreto. - Use
google_maps_searchpara el descubrimiento de lugares estilo Google Maps a partir de consultas de búsqueda humanas. - Use
google_maps_reviewscuando el usuario necesite específicamente datos de reseñas en lugar de descubrimiento de lugares. - Use
company_insightspara firmografía y enriquecimiento de perfiles de empresas. - Use
emails_and_contactspara el descubrimiento de contactos a partir de dominios conocidos. - Use
requests_get,requests_listyrequests_deletesolo para la gestión del ciclo de vida asíncrono. - Use
balance_getpara verificaciones de cuenta y facturación, no para la recuperación de datos de negocios.
Notas
- El servidor admite stdio, HTTP Streamable sin estado y modo HTTP/SSE local con estado.
CLOUD_SERVICE=truepermite la resolución de claves de API basada en encabezados para solicitudes HTTP.- Para la publicación en npm, el contenido del paquete se limita intencionalmente a artefactos de ejecución y documentación.
- Los fragmentos de configuración específicos del cliente en este README están pensados como plantillas prácticas; la interfaz de configuración exacta y los nombres de las claves de configuración pueden variar ligeramente entre clientes y versiones de MCP.