Hace unos días le pregunté a un crawl terminado de 85.261 URLs quién enlazaba a una página rota. Me contestó en segundos: los 30 enlaces salían de una sola plantilla. No abrí la interfaz de Screaming Frog. No exporté un CSV. El crawl estaba en un servidor sin pantalla, a 2.000 kilómetros de mi teclado.
Si buscas cómo conectar Claude al Screaming Frog de tu ordenador, ya hay buenas guías en español y no voy a repetirlas:
- El tutorial completo de Alberto Fernández (el más veterano en el oficio).
- La guía visual de Chesus Rodrigo (la más completa para empezar sin programar, con Search Console y Ahrefs incluidos).
- El artículo de Donlinking.
- El vídeo de Carlos Ortega, que llegó el mismo día del lanzamiento del MCP de Screaming Frog.
Trilogía sobre Screaming Frog en modo Headless
Esta serie consta de tres partes:
- Instalar Screaming Frog headless en un VPS
- Conectar GA4 y Search Console al crawl
- Levantar el servidor MCP y hablar con tus crawls ← estás aquí
Esta guía empieza donde las cuatro guías mencionadas terminan: el servidor MCP de Screaming Frog corriendo en modo headless, en un VPS, crawls a partir de cron.
Para la operación headless por CLI a secas — sin MCP — la referencia es Chris Lever, que lleva tiempo enseñando a orquestar el crawler desde n8n y scripts.
Este artículo se mete en el que falta: qué pasa cuando enciendes el MCP en Screaming Frog headless (sin pantalla).
Ese cruce no lo documenta nadie — ni la ayuda del propio CLI (--help) — y arranca con un error que te vas a comer en el minuto uno.
Por qué en un servidor (y no en tu portátil)
La versión de escritorio ya funciona. Entonces, ¿para qué complicarse?
- Tu desktop o portátil «duermen»; el VPS no. Un crawl de un día entero no sobrevive a una tapa cerrada ni a un cambio de wifi.
- Es donde ya viven tus datos. Si tus crawls corren por cron para alimentar n8n en un servidor (los míos, cada lunes), llevar el crawl al escritorio para preguntarle es remar contra corriente. Lo natural es preguntar donde está.
- El crawl se paga una vez; las preguntas son gratis. Un rastreo de 85.000 URLs son 24 horas de trabajo de máquina. Hecho en el servidor de madrugada, queda guardado — y el MCP te deja interrogarlo mil veces sin re-rastrear nada.
Requisitos para levantar el servidor MCP
- Screaming Frog 24.0 o superior con licencia de pago (el modo headless no arranca sin ella). El MCP llegó en la 24.0, el 19 de mayo de 2026.
- Screaming Frog ya instalado y corriendo en modo headless en tu VPS. Si no lo tienes, empieza por la Parte 1 de esta serie: instalarlo y operarlo — esta guía arranca exactamente donde termina aquella.
- Un VPS Linux con 4-8 GB de RAM (mi crawl de 85k corre en 8 GB con heap de 2 GB) y disco para el modo base de datos (mi crawl ocupa 1,9 GB).
- Un cliente MCP: Claude Code en el propio servidor (lo que uso yo) o Claude Desktop en tu ordenador vía túnel SSH. Ambos abajo.
Paso 1 — El error que nadie documenta: el MCP exige modo base de datos
Lanza el servidor MCP con la configuración de fábrica y te estrellas contra esto:
FATAL - SeoSpider failed to start
Spider MCP server needs to be run in DB mode
Ninguna guía lo menciona, porque en escritorio mucha gente ya trabaja en modo base de datos sin saberlo.
En un servidor recién instalado, no.
La cura está en ~/.ScreamingFrogSEOSpider/spider.config:
storage.mode=DB
Y aquí, una trampa dentro de la trampa: el valor es DB, literal.
Si escribes DATABASE no falla con error: suelta un aviso en el log y sigue con el valor por defecto.
Media hora de mi vida.
Y un tercer matiz que te ahorrará un susto: si tus crawls nocturnos corren en modo memoria (el de fábrica), este cambio lo heredan — la siguiente pasada de cron rastreará en modo BD, con su disco y su ritmo.
Anota el valor que tenías y devuélvelo (storage.mode=MEMORY) al apagar el servidor MCP. Yo lo hago cada vez: mi flota del lunes corre en memoria.
Paso 2 — Meter un crawl ya hecho en la base de datos
Si tus crawls por cron guardan proyecto (--save-crawl), tienes ficheros .seospider.
Para permitir que el MCP sea capaz de interrogarlos hay que importarlos a la base de datos, y aquí va otro descubrimiento de trinchera: si arrancas con el flag del MCP puesto, la importación no se ejecuta.
Hay que hacerla en dos tiempos.
Primero, importación en frío (una sola vez por crawl — 5 minutos para 1,2 GB):
screamingfrogseospider --headless --load-crawl /ruta/crawl.seospider --export-tabs "Internal:HTML" --output-folder /tmp --overwrite
El export pequeño es el pretexto: obliga al programa a cargar el fichero, y al estar en modo DB, la carga lo deja importado para siempre.
¿Por qué el rodeo? Porque el CLI actual no trae un parámetro de importación directa: no existe nada del estilo «–import-to-db». El export diminuto es la palanca que fuerza la carga. El día que Screaming Frog lo añada, este truco se jubila; mientras tanto, es el único camino que he encontrado.
Y segundo, ya con el crawl dentro de la base de datos, arrancar el servidor MCP — esta vez sí, con su flag puesto.
Eso es justo el paso siguiente, y ahora sí funciona: el MCP se encuentra el crawl esperándole, en vez de tener que importarlo él.
Por qué separarlos es lo que abre este paso: con el flag del MCP puesto, la importación no llega a ejecutarse.
Primero se importa. Después se sirve. Nunca las dos cosas a la vez.
⚠️ Sobre copiar comandos de esta guía (o de cualquiera): un comando copiado de una web puede fallar por detalles invisibles — comillas que el navegador convierte en curvas, saltos de línea que se pierden al pegar, o versiones distintas del programa. Si algo no funciona a la primera, no te pelees a ciegas: contrasta el comando con la ayuda oficial (--help) o pásaselo a tu IA de cabecera para que lo revise antes de reintentar.
Paso 3 — Arrancar el servidor MCP
screamingfrogseospider --headless --load-crawl /ruta/crawl.seospider --mcp-streamable-http-server
(El argumento de crawl hace de billete de entrada: sin él, el modo headless se niega a arrancar el servidor.)
En el log verás levantar un Tomcat embebido:
Tomcat started on port 11435 (http)
INFO: Initializing ProtocolHandler ["http-nio-127.0.0.1-11435"]
Dos cosas importantes de esas líneas: el puerto (en mi instalación, 11435; las guías de escritorio citan 3435 — compruébalo siempre en tu log) y el 127.0.0.1: escucha solo en localhost.
Paso 4 — Verificar que el servidor no escucha a internet
Tu VPS tiene IP pública. El servidor MCP da acceso de lectura y escritura a un directorio del sistema, y ejecuta scripts.
Antes de conectar nada, verifica que NO escucha hacia fuera:
ss -tlnp | grep 11435
# LISTEN 127.0.0.1:11435 ← esto es lo que quieres ver
Si algún día necesitas acceder desde tu ordenador, jamás abras el puerto: túnel SSH y punto (siguiente paso).
Y cuando termines de trabajar, apaga el servidor — por PID, no con pkill a lo loco:
ps aux | grep "[S]creamingFrogSEOSpider.jar" # localiza el PID
kill <PID>
Y toda esta liturgia — activar el modo base de datos, arrancar el servidor y dejarlo todo como estaba al terminar — cabe en un guion de veinte líneas. Este wrapper respalda tu spider.config, anota el modo que tenías, levanta el MCP en primer plano y, cuando lo cortas con Ctrl+C (o el proceso muere por lo que sea), restaura el modo original él solo. El olvido del Paso 1 deja de ser posible, y tus crawls de cron duermen tranquilos:
#!/bin/bash
# mcp-frog.sh — levanta el MCP de Screaming Frog y deja todo como estaba al salir
# Uso: ./mcp-frog.sh /ruta/crawl.seospider
set -euo pipefail
CONFIG="$HOME/.ScreamingFrogSEOSpider/spider.config"
CRAWL="${1:?Uso: $0 /ruta/crawl.seospider}"
# 1. Copia de seguridad + anotar el modo original (el que sea, no un valor supuesto)
cp "$CONFIG" "$CONFIG.bak-$(date +%F)"
MODO_ORIGINAL=$(grep '^storage.mode=' "$CONFIG" | cut -d= -f2 || true)
MODO_ORIGINAL=${MODO_ORIGINAL:-MEMORY}
restaurar() {
sed -i "s/^storage.mode=.*/storage.mode=$MODO_ORIGINAL/" "$CONFIG"
echo "spider.config restaurado a storage.mode=$MODO_ORIGINAL"
}
trap restaurar EXIT # se dispara al salir: Ctrl+C, kill o fin normal
# 2. Modo base de datos, el que exige el MCP (Paso 1)
sed -i "s/^storage.mode=.*/storage.mode=DB/" "$CONFIG"
# 3. Servidor en PRIMER PLANO: al cortarlo muere el java y salta la restauración
screamingfrogseospider --headless --load-crawl "$CRAWL" --mcp-streamable-http-server
Fíjate en que aquí no hay ningún pkill: el servidor corre en primer plano, así que Ctrl+C mata exactamente ese proceso y ninguno más — si esa noche tienes un crawl de cron corriendo, ni se entera.
Paso 5 — Conectar Claude
Dónde vive tu Claude decide cuál de las dos vías te toca. El servidor no se mueve: lo que cambia es desde dónde le hablas.
Opción A — Claude Code en el propio VPS (mi caso: el asistente vive en la misma máquina que los crawls):
claude mcp add --transport http seospider http://127.0.0.1:11435/mcp
Opción B — Claude Desktop desde tu ordenador, con el servidor lejos: primero el túnel, luego la misma configuración que ya conoces de las guías de escritorio, apuntando al túnel:
ssh -N -L 11435:127.0.0.1:11435 root@tu-vps
{ "mcpServers": { "seospider-vps": {
"command": "npx",
"args": ["mcp-remote", "http://localhost:11435/mcp"] } } }
Para Claude, el crawl del servidor es ahora indistinguible de uno local.
Las 29 herramientas, y las cuatro que cambian cómo trabajas
Las guías mencionan «cerca de 30 herramientas». Son 29 exactas, y este es el censo completo sacado del propio servidor:
Lo que importa no es el inventario, sino en qué se agrupan — porque de los cinco bloques, solo uno cambia de verdad cómo trabajas.
Cinco herramientas controlan el rastreo (lanzar, pausar, reanudar, limpiar, consultar el progreso) y otras tres gestionan los crawls guardados en la base de datos. Útiles, pero es lo que ya hacías por línea de comandos.
Cuatro son el interrogatorio fino, y son las joyas: te dan los orígenes de los enlaces entrantes o salientes de cualquier URL —el dato que ningún CSV trae—, la ficha completa de una URL, su HTML almacenado y la captura guardada de la página.
Nueve producen informes y exports, incluida la que exporta por elemento y filtro (del tipo «solo los 4xx» o «solo los títulos duplicados») y las cuatro que sirven para descubrir qué informes, exports, filtros y campos existen.
Y ocho son el taller: ejecutar scripts Node, instalar paquetes, leer y escribir ficheros dentro de un directorio acotado, abrir URLs. Con eso Claude se monta sus propios análisis en vez de pedirte los datos masticados.
El propio servidor se presenta con una instrucción reveladora: para crawls grandes, recomienda exportar a fichero y orquestar con scripts Node en vez de volcar datos a la conversación — ahorro de contexto. Es el patrón correcto y viene de fábrica.
Caso real: de una pregunta a un mapa de redirecciones facturable
El crawl: una tienda online, 85.261 URLs, 500 páginas en 404.
El CSV decía cuántos enlaces internos recibía cada 404 — pero no desde dónde, y sin el origen no puedes arreglar la causa.
Prompts reales de la sesión (cópialos adaptados):
Lista los crawls disponibles en la base de datos.
Carga el crawl con [id] y dame los enlaces entrantes (inlinks, categoría Hyperlink) de [URL rota].
Agrupa las fuentes por patrón de URL.
De los 404 del crawl, ¿cuáles reciben más de 10 enlaces internos?
Para cada uno, dime desde qué plantilla o sección se le enlaza.
Resultado del interrogatorio: de 273 páginas rotas con enlaces entrantes, solo DOS eran fixes de plantilla — una URL malformada que la plantilla de una categoría repetía en sus 28 páginas de paginación, y un menú de sección con un enlace muerto.
Todos los demás enlaces rotos venían de posts antiguos del blog, que el propio 301 cura sin editar nada.
Sin el MCP, ese diagnóstico habría sido un bulk export masivo más horas de cruce — o peor: un presupuesto de «limpieza manual de 273 enlaces» que no hacía falta. Con él, salió un entregable de 113 redirecciones de precisión en una tarde.
Otro interrogatorio, esta vez con Search Console conectado — este del crawl de mi propio temassobresalud.com, sitio distinto al de la tienda:
Ranki MCP: la otra mitad del stack (demanda real, no rastreo)
Screaming Frog MCP te dice qué hay roto en tu sitio. No te dice si alguien busca lo que acabas de arreglar.
Alejandro González ha creado Ranki, una herramienta potentísima y con una relación calidad/precio de diez.
Para eso monté también el MCP de Ranki (investigación de keywords + auditoría de sitio) en la misma sesión de Claude Code, y sin salir del chat le hice la pregunta que da pie a este mismo artículo:
¿Cuánto se busca "screaming frog mcp" en España?
Respuesta real: un término de nicho, 10-20 búsquedas al mes la mayoría de los meses — pero en mayo de 2026, el mes en que Screaming Frog metió el MCP en la versión 24.0, la búsqueda se disparó a 110 y bajó a 70 en junio.
Tendencia trimestral, +250%. Interanual, +600%.
Nicho, sí; nicho que está naciendo, también — y quien busca esto ya sabe exactamente lo que quiere (intención informacional, cero ruido comercial).
Dos matices de Ranki MCP antes de usarlo en producción.
El primero: no todas las familias tienen los mismos permisos.
El Site Audit no es gratis: exige al menos el plan Esencial de pago (todavía no hay tier gratuito, me lo confirmó el propio Alejandro), y además el proyecto tiene que existir de antes desde el panel — ahí el MCP interroga, no crea.
El seguimiento de posiciones, en cambio, se monta entero desde la conversación: proyecto, listas y keywords.
Las herramientas de investigación de keywords (esta consulta incluida) cuestan crédito de API por llamada.
Con el plan Esencial ya contratado, vigilar tu propia web no gasta crédito de API aparte; el crédito extra solo se quema cuando preguntas por el mercado: el gasto se concentra donde de verdad aporta.
Las 38 herramientas de Ranki MCP, y cuál de ellas te cuesta dinero
De Screaming Frog ya has visto el catálogo completo más arriba. El de Ranki no lo ha publicado nadie —ni su propia documentación, que enseña la auditoría y para de contar—, así que aquí va el censo entero, agrupado por familia y, lo que de verdad importa, por lo que cuesta cada una:
Quince herramientas montan y leen el seguimiento de posiciones, once hacen lo propio con la vigilancia en buscadores de IA y cinco con la auditoría de sitio: las tres familias van contra el cupo del plan, sin tocar tu cartera de créditos — pero la auditoría exige de entrada al menos el plan Esencial de pago, todavía sin tier gratuito. La investigación de keywords —siete herramientas— es la única que cuesta crédito por llamada, un crédito cada vez, que es justo cuando dejas de mirarte el ombligo y preguntas por el mercado.
Tres avisos que van con el catálogo. El primero: esto no es de solo lectura. Ahí dentro hay siete herramientas que borran proyectos, listas y keywords, y borran de verdad. El segundo, el que duele si no lo lees a tiempo: de una lista ya creada, update_list solo deja cambiar la frecuencia. Nombre, ubicación, dispositivo e idioma son de fábrica; si te equivocas al crearla, toca borrar y rehacer.
Y el tercero, del lado de Claude Code: con un MCP que borra conectado, ni se te ocurra trabajar con banderas de auto-aprobación indiscriminada. Que cada operación pida confirmación no es fricción, es el cinturón: borrar un proyecto con todo su histórico de posiciones debe costar, como mínimo, que tú lo veas venir y digas que sí.
El formulario de cinco minutos, dicho en una frase
Montar un seguimiento de posiciones a mano son dos pasos de formulario: nombre del proyecto, nombre de la lista, dominio, dispositivo, ubicación, idioma, frecuencia, y luego pegar las keywords en un cuadro de texto. Repetido por cada lista.
Con el MCP conectado, eso se dice. Le pedí que montara el seguimiento de una web mía: un proyecto, dos listas —una de auditoría SEO y otra de GEO y AEO—, trece keywords repartidas, en mi plaza real, escritorio, español, una vez por semana. Salió sin abrir el navegador, con sus identificadores de vuelta para comprobarlo.
Los tres que uso a diario, para que los copies:
Lista mis proyectos de seguimiento en Ranki y dime cuántas keywords tengo en cada uno.
Crea un seguimiento para midominio.com con dos listas, una de auditoría SEO y otra de GEO y AEO, en mi ciudad, escritorio, español, una vez por semana.
Léeme la lista [id] y dime si está midiendo de verdad: cuántas keywords tienen posición y cuántas están vacías.
El tercero es el que destapó lo que viene ahora.
Y no, la gracia no es ahorrarse cinco minutos de clics: cinco minutos no le cambian la vida a nadie y no voy a fingir lo contrario. La gracia es dónde ocurre la frase. Ocurre en el mismo hilo donde estabas mirando el crawl: terminas de ver qué plantilla arrastra treinta enlaces rotos y, sin cambiar de ventana ni de cabeza, pones a vigilar las keywords de esa sección. El seguimiento deja de ser una tarea que se pospone —porque implica ir a otro sitio, rellenar un formulario y volver— y pasa a ser una frase más de la conversación que ya estabas teniendo. Es la misma diferencia que separa exportar un CSV de preguntarle al crawl.
El desplegable que te deja ciego cinco semanas
El otro sitio donde se nota es cuando algo va mal, porque puedes preguntar por qué.
Tenía desde junio una lista vigilando diez keywords de un sitio mío. Le pedí que me la leyera y me la contó tal cual: rastreo puntual, última medición la de ayer, y las diez posiciones vacías. No una posición mala: vacía. El primer impulso fue pensar que el rastreo estaba roto.
No lo estaba. En ese formulario hay un campo llamado «Frecuencia de seguimiento» que parece una decisión de cadencia —cada cuánto quiero que mire— y en realidad es una decisión de profundidad:
Yo la tenía a tres veces por semana convencido de estar comprando lo mejor: más mediciones, más control. Lo que había comprado era un instrumento que solo mira los diez primeros resultados, no me encontraba —porque todavía no estoy ahí— y anotaba nada, tres veces por semana, con mucha puntualidad.
La cura fue otra frase, en el mismo hilo, sin abrir el panel. Y la regla que saco vale para cualquier herramienta con este canje: si tu sitio aún no rankea, ver lejos importa más que ver a menudo. Una medición semanal a cien resultados te dice que has pasado del puesto 87 al 61, que es justo la señal que necesitas para saber si lo que haces funciona; tres mediciones semanales a diez resultados te dicen «nada, nada, nada» con mucha puntualidad. La frecuencia alta se gana más tarde, cuando ya peleas dentro del top 10 y lo que quieres vigilar es el vaivén.
Diagnóstico y cura en la misma conversación en la que estaba escribiendo este artículo.
Claude Code hablando con dos MCP a la vez
Nada nuevo que instalar para juntar los dos servidores: un claude mcp add por cada uno, y la conversación pasa de rastreo técnico a demanda de mercado sin cambiar de ventana. En la práctica: le pides a Screaming Frog MCP el mapa de enlaces rotos de una plantilla, y en el mismo hilo le preguntas a Ranki MCP si esa plantilla ataca términos con volumen real antes de decidir si el arreglo merece la pena facturarlo aparte. Rastreo más demanda más orquestación en un solo chat — eso es lo que separa «tengo el dato» de «sé qué hacer con el dato».
Limitaciones honestas (agosto 2026)
- Instancia única: si tu servidor lanza crawls por cron de madrugada, el servidor MCP no puede quedarse encendido a esas horas — compiten por la instancia. Lo mejor es esperar a que comiences tu faena diaria para interrogar al crawl.
- Las sesiones MCP caducan entre llamadas espaciadas; los clientes normales (Claude Code/Desktop) lo gestionan solos, pero si hablas el protocolo a mano lo notarás.
- Tras cargar un crawl grande, el spider queda ocupado ~1 minuto («SEO Spider is busy»); los reintentos son normales.
- La conversación con Claude pasa por la API del modelo: los DATOS del crawl están en tu servidor, pero lo que Claude analiza en el chat, no. Igual que en escritorio.
- Configurar el rastreo fino (JS rendering, exclusiones) sigue siendo trabajo de config/GUI. El MCP interroga de maravilla; configurar, lo justo.
Preguntas frecuentes sobre el uso de MCP en Screaming Frog Headless
- ¿Necesito la GUI para algo? Para autorizar las credenciales de Google la primera vez y para escribir configs complejas, sí — en tu ordenador. El servidor nunca la necesita.
- ¿Funciona con la versión gratuita? No: el headless exige licencia de pago.
- ¿Y si mi crawl lo hizo la versión de escritorio? Igual: copia el
.seospideral VPS e impórtalo (Paso 2). - ¿Cuánta RAM necesito? Regla de andar por casa: mi crawl de 85k URLs vive con heap de 2 GB en modo DB. El heap se ajusta en
~/.screamingfrogseospider(minúsculas — fichero distinto del directorio de config, sí, lo sé). - ¿Puedo usar las APIs de GA4 y Search Console? Sí. Los datos de ambas se incorporan al crawl como columnas de cada URL, así que viajan dentro del
.seospidery siguen ahí cuando lo interrogas — eso es lo que te permite preguntar cosas como «de las páginas rotas, cuáles recibían visitas». La autorización de las credenciales se hace una sola vez desde la interfaz, en tu ordenador (ver la primera pregunta de esta lista). El proceso completo lo cuento en la Parte 2 de esta serie. - ¿Esto sustituye a mi pipeline de exports/CSV? No. El pipeline produce el informe recurrente sin que nadie pregunte nada; el MCP responde preguntas que el informe no previó. Se complementan — y lo segundo es lo que se nota en una llamada con cliente.
Últimas palabras sobre hablar con tus crawls usando MCPs
Los tutoriales de escritorio te enseñan a hablar con el Screaming Frog que estás mirando. Esto es otra cosa: hablar con el crawl que tu servidor hizo solo, de madrugada, mientras dormías — y, en el mismo chat, con la demanda real de mercado que ese crawl te dejó por arreglar — y que va a seguir respondiendo preguntas semanas después sin re-rastrear una sola URL.
El diagnóstico deja de ser un entregable que se exporta. Pasa a ser una conversación con datos que ya pagaste.
Esto es lo que hay detrás de mis auditorías: no un checklist, una conversación con tus datos. Si quieres que le haga estas preguntas a TU web, empieza por la auditoría gratuita de dummyseo — de entrada tienes 800 URLs, 300 más que la versión gratuita y el crawl lo pone mi servidor.












