Crawlforge MCP

28 herramientas web nativas de MCP para Claude, Cursor y cualquier cliente MCP: scrape y crawl para obtener Markdown limpio o JSON basado en esquemas, extrae con selectores CSS o en inglés sencillo, verifica el ranking orgánico real de Google, analiza documentos, monitorea cambios en páginas, realiza investigación profunda de múltiples fuentes, y entrega a un agente autónomo un prompt sin URLs. La extracción LLM usa por defecto Ollama local — sin clave LLM, nada sale de tu máquina. Licencia MIT. 1,000 créditos gratuitos únicos, sin tarjeta.

Documentación

CrawlForge MCP Server

28 herramientas de web scraping, crawling, deep-research y extracción autónoma para Claude, Cursor y cualquier cliente MCP.
Markdown limpio y JSON estructurado desde cualquier sitio. Comienza con 1,000 créditos gratis — sin necesidad de tarjeta de crédito.

License: MIT Node.js Version MCP Protocol npm version npm downloads GitHub stars

Danos una estrella en GitHub para seguir el proyecto — realmente ayuda a que otros lo descubran.

Tabla de Contenidos

🎯 ¿Por qué CrawlForge?

  • 28 herramientas nativas MCP — scraping, crawling, búsqueda, seguimiento real de posiciones en el SERP de Google, deep research, un agent autónomo, un scrape unificado multi-formato, procesamiento de documentos, navegación sigilosa y más, invocables directamente desde tu asistente de IA.
  • Nivel gratuito generoso — 1,000 créditos para comenzar al instante, sin tarjeta de crédito. La concesión es única en lugar de mensual, y los créditos nunca caducan.
  • LLM local por defectoextract_with_llm funciona con un modelo local Ollama de fábrica: sin clave de API de LLM, sin costo por token, y tus datos nunca salen de tu máquina. La nube (OpenAI/Anthropic) es opcional.
  • Salida lista para LLM — Markdown limpio, JSON estructurado (basado en esquemas), capturas de pantalla, enlaces y metadatos desde una sola consulta.
  • agent autónomo — describe lo que necesitas en lenguaje natural; planifica, recopila y da forma a una respuesta bajo límites estrictos impuestos por el orquestador (máximo de pasos/URLs/tiempo) — no se requieren URLs.
  • Seguridad reforzada — protección SSRF en cada solicitud, lista blanca de backend con cierre por defecto, lista blanca de acciones verificadas para automatización del navegador y control de créditos por herramienta.
  • Funciona dondequiera que MCP funcione — Claude Desktop, Claude Code, Cursor y cualquier otro cliente habilitado para MCP, configurado con un solo comando.

📊 CrawlForge vs. alternativas

CrawlForge MCPFirecrawlAPI de scraping crudo
Servidor MCP nativo✅ 28 herramientas
Nivel gratuito✅ 1,000 créditos, acumulablesLimitadoVaría
Extracción LLM local / autoalojada (Ollama)✅ por defecto, $0/token
Agente autónomo (sin necesidad de URLs)agent
Deep research con verificación de fuentesdeep_researchParcial
Automatización / acciones del navegadorscrape_with_actionsVaría
Motores de sigilo / anti-detección✅ Chromium + CamoufoxComplemento
Plantillas de sitios predefinidas✅ 10 sitios
LicenciaMITAGPL-3.0Propietaria

La comparación refleja las capacidades documentadas públicamente al momento de escribir. CrawlForge tiene licencia MIT y es MCP-primero — construido para conectarse directamente a los asistentes de codificación de IA.

🚀 Inicio Rápido (2 Minutos)

1. Instalar desde NPM

npm install -g crawlforge-mcp-server

2. Configura tu Clave de API (requerida)

Cada herramienta requiere una clave de API de CrawlForge — las cuentas nuevas reciben 1,000 créditos de prueba gratuitos para comenzar:

npx crawlforge-setup

Esto:

  • Te guiará para obtener tu clave de API gratuita
  • Configurará tus credenciales de forma segura
  • Configurará automáticamente Claude Code y Cursor (si están instalados)
  • Verificará que tu configuración funcione

¿No tienes una clave de API? Obtén una gratis en https://www.crawlforge.dev/signup

Configuración en un solo paso (v4.6.0+): crawlforge init detecta tu clave de API, instala la habilidad del agente y fusiona de forma idempotente el bloque de configuración MCP en Claude Code, Claude Desktop y Cursor. Usa crawlforge init --all --yes para configurar cada cliente detectado de forma no interactiva.

3. Configura tu IDE (si no se configuró automáticamente)

🤖 Para Claude Desktop

Añade a claude_desktop_config.json:

{
  "mcpServers": {
    "crawlforge": {
      "command": "npx",
      "args": ["-y", "crawlforge-mcp-server"]
    }
  }
}

Ubicación:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%/Claude/claude_desktop_config.json
  • Linux: ~/.config/Claude/claude_desktop_config.json

Reinicia Claude Desktop para activarlo.

🖥️ Para Claude Code CLI (Configurado automáticamente)

El asistente de configuración configura automáticamente Claude Code añadiendo a ~/.claude.json:

{
  "mcpServers": {
    "crawlforge": {
      "type": "stdio",
      "command": "crawlforge-mcp"
    }
  }
}

Después de la configuración, reinicia Claude Code para activarlo.

💻 Para Cursor IDE (Configurado automáticamente)

El asistente de configuración configura automáticamente Cursor añadiendo a ~/.cursor/mcp.json:

{
  "mcpServers": {
    "crawlforge": {
      "type": "stdio",
      "command": "crawlforge-mcp"
    }
  }
}

Reinicia Cursor para activarlo.

🔁 Para n8n (automatización de flujos de trabajo)

El nodo integrado MCP Client Tool de n8n se conecta a través de HTTP Streamable (funciona en n8n Cloud y autoalojado). Ejecuta el servidor en modo HTTP:

export CRAWLFORGE_API_KEY=your_api_key
npm run start:http    # Streamable HTTP endpoint at http://localhost:10000/mcp

Luego apunta el nodo MCP Client Tool a http://<host>:10000/mcp con transporte HTTP Streamable y una credencial Bearer configurada con la misma clave de API. En n8n autoalojado puedes usar en su lugar el nodo comunitario n8n-nodes-mcp a través de STDIO (npx -y crawlforge-mcp-server).

Guía completa: docs/n8n-integration.md

¿Qué comando de lanzamiento? npx -y crawlforge-mcp-server no requiere instalación global y siempre ejecuta la versión publicada (recomendado para Claude Desktop). Para una instalación global (npm i -g crawlforge-mcp-server), usa el binario dedicado crawlforge-mcp — se resuelve en tu PATH, por lo que sobrevive a los cambios de versión de Node/nvm. El comando simple crawlforge aún inicia el servidor cuando un cliente MCP lo invoca a través de stdio (compatibilidad hacia atrás para configuraciones creadas antes de v4.2.5); de forma interactiva es la CLI — ejecuta crawlforge mcp para iniciar el servidor manualmente.

📊 Herramientas Disponibles

CrawlForge requiere una clave de API de CrawlForge — cada herramienta se mide y consume créditos. Las cuentas nuevas reciben 1,000 créditos de prueba gratuitos para comenzar. Obtén una clave en crawlforge.dev/signup.

Todas las Herramientas (se requiere clave de API)

HerramientaCréditosQué hace
fetch_url1Obtener contenido de cualquier URL
extract_text1Extraer texto limpio de páginas web
extract_links1Obtener todos los enlaces de una página
extract_metadata1Extraer metadatos de la página (título, etiquetas OG, schema.org)
scrape_template1Datos estructurados de sitios conocidos (Amazon, GitHub, LinkedIn, YouTube, Reddit, Hacker News, npm y más) sin escribir selectores
list_ollama_models1Listar los modelos Ollama instalados localmente (te ayuda a elegir un model para extract_with_llm)
get_batch_results1Recuperar resultados paginados para un trabajo batch_scrape por batchId
scrape2Extracción unificada de una sola consulta y múltiples formatos. Pasa un array formats (markdown/html/rawHtml/text/links/metadata/screenshot/json-schema) además de onlyMainContent; una sola consulta sirve cada formato solicitado con advertencias de éxito parcial por formato
scrape_structured2Extraer datos estructurados con selectores CSS
extract_content2Extracción de contenido mejorada
map_site2Descubrir y mapear la estructura del sitio web (el search= opcional clasifica las URLs descubiertas)
process_document2Procesamiento de documentos multi-formato
localization2Gestión multi-idioma y geolocalización
track_changes3Monitorear cambios de contenido a lo largo del tiempo
analyze_content3Análisis integral de contenido
extract_structured3Extracción basada en esquemas impulsada por LLM (tu propia clave de LLM u Ollama local)
extract_with_llm3Extracción en lenguaje natural. Usa por defecto un modelo Ollama local; pasa provider: "openai" | "anthropic" con la clave correspondiente para modelos en la nube (LLM externo facturado por tu proveedor)
summarize_content4Generar resúmenes inteligentes
crawl_deep4Crawling profundo de sitios web completos
search_web5Buscar en la web usando la API de Google Search
reddit_search5Buscar publicaciones/comentarios de Reddit o leer un hilo completo — reddit.com bloquea el scraping directo, por lo que consulta los archivos comunitarios Arctic Shift + PullPush (gratis, sin credenciales de Reddit). Una búsqueda en todo Reddit gasta una búsqueda web para descubrir publicaciones, por lo que tiene el precio de search_web
serp_rank5Verificar dónde se posiciona un dominio en el SERP orgánico real de Google para una palabra clave (la posición que search_web no puede dar). Impulsado por DataForSEO (DATAFORSEO_LOGIN/DATAFORSEO_PASSWORD, facturado a tu propia cuenta de DataForSEO). Devuelve { configured:false } y cobra 0 créditos hasta que se configure
batch_scrape5Procesar múltiples URLs simultáneamente
scrape_with_actions5Cadenas de automatización del navegador
generate_llms_txt5Generar pautas de interacción con IA
stealth_mode5Gestión del navegador anti-detección
agent8Investigación/extracción autónoma desde un prompt en lenguaje natural — sin necesidad de URLs. Planifica, recopila y da forma a una respuesta bajo límites de seguridad estrictos (máximo de pasos/URLs/tiempo impuestos por el orquestador, nunca por el LLM)
deep_research10Investigación en múltiples etapas con verificación de fuentes

Para la referencia completa de capacidades canónicas (todas las herramientas, comandos CLI, motores de sigilo, flujo de trabajo de investigación), consulta SKILL.md.

↑ Volver al inicio

💳 Precios

Cada herramienta se mide y requiere una clave de API. Las cuentas nuevas reciben 1,000 créditos de prueba gratuitos — sin tarjeta de crédito para comenzar.

PlanCréditosMejor Para
Gratis1,000 únicosPruebas y proyectos personales
Hobby ($19)5,000 / mesProyectos pequeños y desarrollo
Profesional ($99)50,000 / mesUso profesional y producción
Negocio ($399)250,000 / mesOperaciones a gran escala

Todos los planes incluyen:

  • Acceso a las 28 herramientas
  • Los créditos nunca caducan; los créditos de planes de pago se acumulan mes a mes
  • Acceso a la API y notificaciones webhook

Ver precios completos

🔧 Configuración Avanzada

Variables de Entorno

# Optional: Set API key via environment
export CRAWLFORGE_API_KEY="cf_live_your_api_key_here"

# Optional: Custom API endpoint (for enterprise)
export CRAWLFORGE_API_URL="https://api.crawlforge.dev"
# As of v3.0.18, this variable is validated against an allow-list of CrawlForge backend hosts.

# Optional: Local LLM (Ollama) overrides — extract_with_llm, extract_structured
# and deep_research all use Ollama when no cloud key is set
export OLLAMA_BASE_URL="http://localhost:11434"   # default; set https://ollama.com for Ollama Cloud
export OLLAMA_DEFAULT_MODEL="gemma3:4b"            # optional; unset = pick the best installed model automatically
                                                   # deep_research judges claims with gemma3:12b when it is installed (ollama pull gemma3:12b);
                                                   # conflict detection is on only with that model, or a cloud provider
export OLLAMA_EMBEDDING_MODEL="nomic-embed-text"   # default: OLLAMA_DEFAULT_MODEL; used for semantic ranking in deep_research
export OLLAMA_API_KEY="..."                        # only for authenticated endpoints (required by Ollama Cloud; a local instance needs none)
export DISABLE_OLLAMA="true"                       # skip Ollama entirely and use CSS/keyword fallbacks

# Optional: Cloud LLM keys — only needed when you pass provider: "openai" or "anthropic"
export OPENAI_API_KEY="sk-..."
export ANTHROPIC_API_KEY="sk-ant-..."

# Optional: limit which tools this client sees — by name, by group, or both (comma-separated)
export CRAWLFORGE_TOOLS="scrape,search_web,extract_content"
export CRAWLFORGE_TOOL_GROUPS="basic,search,scrape"   # unset = all tools; unknown names/groups are ignored with a warning

# Optional: deep_research stealth extraction fallback (v4.6.6) — see below
export RESEARCH_STEALTH_ENGINE="auto"      # auto (default) | camoufox | chromium
export RESEARCH_STEALTH_FALLBACK="true"    # set to "false" to disable entirely
export RESEARCH_MAX_STEALTH_RETRIES="8"    # cap on stealth retries per research run

Características de la Especificación MCP

CrawlForge sigue la especificación MCP actual (2025-06-18) más extensiones experimentales seleccionadas:

  • Salida estructuradascrape, map_site, serp_rank, reddit_search, search_web, extract_structured y crawl_deep devuelven structuredContent analizable por máquina junto con el texto habitual, validado contra un outputSchema publicado; los clientes heredados siguen funcionando con el texto.
  • Errores autocorregibles — la entrada de herramienta no válida ahora regresa como un resultado isError: true que el modelo llamador puede leer y reintentar, en lugar de un error de protocolo JSON-RPC crudo.
  • Esquemas de herramientas JSON Schema 2020-12, ordenamiento determinista de tools/list (amigable con la caché de prompts del cliente) y sugerencias de resultados almacenables en caché en herramientas de solo lectura.
  • Iconos en el servidor, sus herramientas y sus prompts.
  • Tareas asíncronas (experimental) en las cuatro herramientas de larga duración — crawl_deep, batch_scrape, deep_research, agent — para clientes que admiten sondeo; los resultados síncronos aún se devuelven para clientes que no lo admiten.

Consulta docs/mcp-spec-adoption.md para ejemplos a nivel de protocolo y notas de compatibilidad con clientes.

Inicio rápido con LLM local (extract_with_llm con Ollama)

extract_with_llm usa por defecto un modelo Ollama local — sin clave de proveedor de LLM, sin costos de LLM por token y sin que los datos salgan de tu máquina (el costo de créditos de CrawlForge aún aplica).

# 1. Install Ollama:  https://ollama.com
# 2. Pull any model from https://ollama.com/library
ollama pull llama3.2

# 3. Discover what's installed (from your MCP client)
#    list_ollama_models()

# 4. Extract — defaults to Ollama with the model from step 2
#    extract_with_llm({ url: "https://example.com", prompt: "…", model: "llama3.2" })

Extracción sigilosa para deep_research (Camoufox)

deep_research reintenta automáticamente las fuentes que bloquean la ruta de obtención normal (Reddit, Quora, foros y páginas protegidas por Cloudflare/DataDome devuelven HTTP 403) mediante un navegador real con huella digital, y luego vuelve a extraer del HTML renderizado. Está limitado (RESEARCH_MAX_STEALTH_RETRIES, valor predeterminado 8, más un tiempo de espera por página) y es perezoso: la pila del navegador solo se carga cuando una fuente está realmente bloqueada.

Selección del motor (RESEARCH_STEALTH_ENGINE):

  • auto (predeterminado) — prefiere Camoufox (anti-detección de Firefox), con respaldo a Chromium sigiloso y luego a obtención simple.
  • camoufox — fuerza Camoufox.
  • chromium — fuerza el motor Chromium sigiloso.

Chromium sin interfaz gráfica no puede superar los desafíos modernos (Cloudflare Turnstile, DataDome) — Camoufox sí puede. En las pruebas, recuperó páginas de Quora y Trustpilot que de otro modo estaban completamente bloqueadas. Para habilitarlo, instala la dependencia opcional y ejecuta su descarga binaria única:

# Camoufox is declared as an optional dependency, so a normal install already pulls it.
# If you installed with --no-optional, add it explicitly:
npm install camoufox

# One-time download of the Camoufox Firefox binary (~130 MB):
npx camoufox fetch

Sin el binario de Camoufox, deep_research recurre silenciosamente a Chromium sigiloso y luego a la obtención simple — sin errores, solo menor recuperación en sitios muy protegidos. Desactiva todo el mecanismo de respaldo con RESEARCH_STEALTH_FALLBACK=false.

Nota: Los bloqueos duros por reputación de IP (p. ej., el 403 perimetral de Reddit) resisten el sigilo sin interfaz gráfica desde cualquier IP y requieren proxies residenciales/móviles, que CrawlForge no proporciona. Consulta docs/stealth-engines.md para más detalles.

Configuración manual

Tu configuración se almacena en ~/.crawlforge/config.json:

{
  "apiKey": "cf_live_...",
  "userId": "user_...",
  "email": "you@example.com"
}

📖 Ejemplos de uso

Una vez configurado, usa estas herramientas en tu asistente de IA:

"Search for the latest AI news"
"Extract all links from example.com"
"Crawl the documentation site and summarize it"
"Monitor this page for changes"
"Extract product prices from this e-commerce site"

🔒 Seguridad y privacidad

  • Autenticación segura: Se requieren claves API para todas las herramientas medidas
  • Almacenamiento local: Las claves API se almacenan de forma segura en ~/.crawlforge/config.json
  • Solo HTTPS: Todas las conexiones usan HTTPS cifrado
  • Sin retención de datos: No almacenamos datos extraídos, solo registros de uso
  • Límite de velocidad: Protección integrada contra el abuso
  • Cumplimiento: Respeta robots.txt y los requisitos del RGPD

Seguridad y aprobaciones

  • Aplicación de SSRF: Cada URL extraída se valida antes de enviar la solicitud — solo http/https; bloquea loopback, RFC1918, rangos IPv6 privados/de enlace local, endpoints de metadatos en la nube (GCP, Azure) y puertos peligrosos (SSH, SMTP, DNS, MySQL, Postgres, Redis, MongoDB, etc.). Las redirecciones se vuelven a validar en cada salto, con un máximo de 5.
  • Protección del endpoint de backend (v3.0.18): Las llamadas propias del servidor a CrawlForge.dev usan una lista de permitidos separada de cierre ante fallo ({crawlforge.dev, www.crawlforge.dev, api.crawlforge.dev}, HTTPS obligatorio). Establecer CRAWLFORGE_API_URL en un host arbitrario se bloquea en el momento del análisis.
  • Lista de acciones permitidas: scrape_with_actions acepta solo 7 tipos de acción (wait, click, type, press, scroll, screenshot, executeJavaScript). No existen primitivas de descarga, escritura de archivos ni navegación arbitraria entre páginas.
  • Puerta de JavaScript: La acción executeJavaScript lanza una excepción de forma predeterminada. Establece ALLOW_JAVASCRIPT_EXECUTION=true en el momento de la implementación para habilitarla (no recomendado en producción).
  • Inducción MCP (v3.6.0): Cuatro herramientas solicitan confirmación del usuario antes de ejecutar operaciones costosas — deep_research (>50 URL), batch_scrape (modo sincronizado, >25 URL), crawl_deep (proyección de >500 páginas), extract_structured (el esquema tiene >3 campos obligatorios sin LLM configurado). Las situaciones de crédito bajo también inducen. La confirmación es de mejor esfuerzo: si el cliente MCP no admite la inducción, la herramienta continúa (apertura ante fallo).
  • Control de crédito por herramienta: Cada herramienta está envuelta con withAuth() y se mide: los créditos se verifican y deducen antes de la ejecución, y se requiere una clave API válida para cada herramienta (cierre ante fallo desde v3.0.18).

Consulta docs/sandboxing-and-approvals.md para la referencia completa.

Actualizaciones de seguridad

v3.0.3 (2025-10-01): Se eliminó la vulnerabilidad de omisión de autenticación. Todos los usuarios deben autenticarse con claves API válidas.

Para la política de seguridad completa y cómo informar una vulnerabilidad, consulta SECURITY.md.

↑ Volver arriba

🆘 Soporte

📄 Licencia

Licencia MIT: consulta el archivo LICENSE para más detalles.

🤝 Contribuciones

¡Las contribuciones son bienvenidas! Lee primero nuestra Guía de contribuciones.


Hecho con ❤️ por el equipo de CrawlForge

Sitio web | Documentación | Referencia de API