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
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.
⭐ Danos una estrella en GitHub para seguir el proyecto — realmente ayuda a que otros lo descubran.
Tabla de Contenidos
- ¿Por qué CrawlForge?
- CrawlForge vs. alternativas
- Inicio Rápido (2 Minutos)
- Herramientas Disponibles
- Precios
- Configuración Avanzada
- Ejemplos de Uso
- Seguridad y Privacidad
- Soporte
- Contribuciones
🎯 ¿Por qué CrawlForge?
- 28 herramientas nativas MCP — scraping, crawling, búsqueda, seguimiento real de posiciones en el SERP de Google, deep research, un
agentautónomo, unscrapeunificado 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 defecto —
extract_with_llmfunciona 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.
agentautó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 MCP | Firecrawl | API de scraping crudo | |
|---|---|---|---|
| Servidor MCP nativo | ✅ 28 herramientas | ✅ | ❌ |
| Nivel gratuito | ✅ 1,000 créditos, acumulables | Limitado | Varí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 fuentes | ✅ deep_research | Parcial | ❌ |
| Automatización / acciones del navegador | ✅ scrape_with_actions | ✅ | Varía |
| Motores de sigilo / anti-detección | ✅ Chromium + Camoufox | ✅ | Complemento |
| Plantillas de sitios predefinidas | ✅ 10 sitios | ❌ | ❌ |
| Licencia | MIT | AGPL-3.0 | Propietaria |
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 initdetecta 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. Usacrawlforge init --all --yespara 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-serverno 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 dedicadocrawlforge-mcp— se resuelve en tuPATH, por lo que sobrevive a los cambios de versión de Node/nvm. El comando simplecrawlforgeaú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 — ejecutacrawlforge mcppara 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)
| Herramienta | Créditos | Qué hace |
|---|---|---|
fetch_url | 1 | Obtener contenido de cualquier URL |
extract_text | 1 | Extraer texto limpio de páginas web |
extract_links | 1 | Obtener todos los enlaces de una página |
extract_metadata | 1 | Extraer metadatos de la página (título, etiquetas OG, schema.org) |
scrape_template | 1 | Datos estructurados de sitios conocidos (Amazon, GitHub, LinkedIn, YouTube, Reddit, Hacker News, npm y más) sin escribir selectores |
list_ollama_models | 1 | Listar los modelos Ollama instalados localmente (te ayuda a elegir un model para extract_with_llm) |
get_batch_results | 1 | Recuperar resultados paginados para un trabajo batch_scrape por batchId |
scrape | 2 | Extracció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_structured | 2 | Extraer datos estructurados con selectores CSS |
extract_content | 2 | Extracción de contenido mejorada |
map_site | 2 | Descubrir y mapear la estructura del sitio web (el search= opcional clasifica las URLs descubiertas) |
process_document | 2 | Procesamiento de documentos multi-formato |
localization | 2 | Gestión multi-idioma y geolocalización |
track_changes | 3 | Monitorear cambios de contenido a lo largo del tiempo |
analyze_content | 3 | Análisis integral de contenido |
extract_structured | 3 | Extracción basada en esquemas impulsada por LLM (tu propia clave de LLM u Ollama local) |
extract_with_llm | 3 | Extracció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_content | 4 | Generar resúmenes inteligentes |
crawl_deep | 4 | Crawling profundo de sitios web completos |
search_web | 5 | Buscar en la web usando la API de Google Search |
reddit_search | 5 | Buscar 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_rank | 5 | Verificar 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_scrape | 5 | Procesar múltiples URLs simultáneamente |
scrape_with_actions | 5 | Cadenas de automatización del navegador |
generate_llms_txt | 5 | Generar pautas de interacción con IA |
stealth_mode | 5 | Gestión del navegador anti-detección |
agent | 8 | Investigació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_research | 10 | Investigació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.
💳 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.
| Plan | Créditos | Mejor Para |
|---|---|---|
| Gratis | 1,000 únicos | Pruebas y proyectos personales |
| Hobby ($19) | 5,000 / mes | Proyectos pequeños y desarrollo |
| Profesional ($99) | 50,000 / mes | Uso profesional y producción |
| Negocio ($399) | 250,000 / mes | Operaciones 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
🔧 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 estructurada —
scrape,map_site,serp_rank,reddit_search,search_web,extract_structuredycrawl_deepdevuelvenstructuredContentanalizable por máquina junto con el texto habitual, validado contra unoutputSchemapublicado; los clientes heredados siguen funcionando con el texto. - Errores autocorregibles — la entrada de herramienta no válida ahora regresa como un resultado
isError: trueque 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
403perimetral 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). EstablecerCRAWLFORGE_API_URLen un host arbitrario se bloquea en el momento del análisis. - Lista de acciones permitidas:
scrape_with_actionsacepta 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
executeJavaScriptlanza una excepción de forma predeterminada. EstableceALLOW_JAVASCRIPT_EXECUTION=trueen 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.
🆘 Soporte
- Documentación: https://www.crawlforge.dev/docs
- Problemas: GitHub Issues
- Correo electrónico: support@crawlforge.dev
- Discord: Únete a nuestra comunidad
📄 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