En esta página
Cursor IDE es excelente razonando sobre tu código, pero no puede ver la web en vivo. Añade CrawlForge a través de la integración con el Model Context Protocol de Cursor y el Composer gana 26 herramientas de scraping: sin script de Python, sin curl, sin salir del editor.
// ~/.cursor/mcp.json
{
"mcpServers": {
"crawlforge": {
"command": "crawlforge-mcp-server",
"env": { "CRAWLFORGE_API_KEY": "cf_live_your_key" }
}
}
}Esta guía recorre paso a paso la configuración del web scraping en Cursor IDE, con ejemplos ejecutables para investigación, extracción estructurada y monitorización de la competencia.
Índice
- ¿Por qué hacer scraping dentro de Cursor?
- Requisitos previos
- Paso 1: Instala el MCP server
- Paso 2: Configura los ajustes MCP de Cursor
- Paso 3: Reinicia y verifica
- Paso 4: Tu primer scrape en Composer
- Ejemplo completo: crea un rastreador de precios de la competencia
- Flujo de trabajo: usa los scrapes para escribir código
- Solución de problemas
- Preguntas frecuentes
¿Por qué hacer scraping dentro de Cursor?
Cursor Composer trata las MCP tools como acciones de primera clase: elige la herramienta adecuada para cada tarea, pasa argumentos tipados y reincorpora los resultados a la conversación. Cuando haces scraping de sitios web en Cursor IDE a través de CrawlForge, los datos extraídos quedan disponibles de inmediato para que Cursor genere tests, escriba interfaces de TypeScript o actualice dashboards. Sin copiar y pegar, sin cambiar de contexto.
Si ya usas las reglas de Cursor para moldear el comportamiento del Composer, las MCP tools encajan a la perfección: las reglas describen cómo programar, las herramientas exponen qué puede hacer el Composer.
Requisitos previos
- Cursor IDE 0.42+ -- descárgalo de cursor.com
- Node.js 18+ --
node --versionpara comprobarlo - Cuenta de CrawlForge -- gratis en crawlforge.dev/signup
Paso 1: Instala el MCP server
npm install -g crawlforge-mcp-serverConfirma que está en tu PATH:
which crawlforge-mcp-server
# /usr/local/bin/crawlforge-mcp-serverPaso 2: Configura los ajustes MCP de Cursor
Cursor lee los MCP servers desde ~/.cursor/mcp.json. Créalo si no existe:
mkdir -p ~/.cursor
touch ~/.cursor/mcp.jsonPega esta configuración (reemplaza la clave):
{
"mcpServers": {
"crawlforge": {
"command": "crawlforge-mcp-server",
"env": {
"CRAWLFORGE_API_KEY": "cf_live_your_key_here"
}
}
}
}En Windows el archivo está en %USERPROFILE%\.cursor\mcp.json y el comando debería ser crawlforge-mcp-server.cmd.
Paso 3: Reinicia y verifica
- Cierra Cursor por completo (
Cmd+Qen macOS). - Vuelve a abrir el proyecto.
- Ve a Settings -> Features -> MCP. Deberías ver
crawlforgecon un punto verde y 26 herramientas listadas.
Si el server está en rojo o la lista de herramientas está vacía, salta a Solución de problemas.
Paso 4: Tu primer scrape en Composer
Abre el Composer (Cmd+I) y pega:
Use CrawlForge to fetch https://news.ycombinator.com and list the top 5 story titles.
Cursor llamará a fetch_url (1 credit) y mostrará la respuesta. Cuando apruebes la llamada a la herramienta, el Composer analizará el HTML y devolverá una lista limpia.
Ejemplo completo: crea un rastreador de precios de la competencia
Supongamos que quieres rastrear los cambios de precios en un SaaS de la competencia. Abre el Composer y pega:
Use scrape_structured to pull pricing from https://competitor.example.com/pricing.
Fields: plan (h3), price (.price), features (ul li).
Then generate a TypeScript type for the response.
Cursor lanza una llamada a scrape_structured con tus selectores, devuelve JSON y emite este TypeScript en el siguiente bloque del editor:
// types/competitor-pricing.ts
export interface CompetitorPricingTier {
plan: string;
price: string;
features: string[];
}
export interface CompetitorPricingResponse {
data: CompetitorPricingTier[];
scraped_at: string;
}
// lib/fetch-competitor-pricing.ts
import { CompetitorPricingResponse } from '@/types/competitor-pricing';
export async function fetchCompetitorPricing(): Promise<CompetitorPricingResponse> {
const response = await fetch('https://crawlforge.dev/api/v1/tools/scrape_structured', {
method: 'POST',
headers: {
'Authorization': `Bearer ${process.env.CRAWLFORGE_API_KEY}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
url: 'https://competitor.example.com/pricing',
selectors: {
plan: '.pricing-card h3',
price: '.pricing-card .price',
features: '.pricing-card ul li',
},
}),
});
if (!response.ok) {
throw new Error(`Scrape failed: ${response.statusText}`);
}
return response.json();
}Coste total: 2 credits por ejecución. Prográmalo con Vercel Cron o GitHub Actions y tendrás un rastreador de precios dentro del plan gratuito.
Flujo de trabajo: usa los scrapes para escribir código
El verdadero potencial está en alimentar los datos extraídos a la generación de código de Cursor. Patrones probados:
- Generación de tipos a partir de APIs en vivo: "Fetch
https://api.example.com/users, then generate a Zod schema matching the response." - Fixtures de tests a partir de páginas reales: "Scrape the top 3 articles from Hacker News and save them as JSON fixtures in
tests/fixtures/." - Extracción de documentación: "Use
extract_contenton the React docs foruseState, then write an idiomatic example that matches." - Paridad de funciones con la competencia: "Use
map_siteon competitor.com and flag any URL patterns we do not have in our own sitemap."
Cada patrón cuesta de 1 a 5 credits por ejecución y te mantiene dentro de Cursor.
Resumen de costes en credits
| Operación | Herramienta | Credits |
|---|---|---|
| Obtener HTML | fetch_url | 1 |
| Texto limpio | extract_text | 1 |
| Artículo legible | extract_content | 2 |
| Extracción con selectores CSS | scrape_structured | 2 |
| Descubrimiento de sitemap | map_site | 2 |
| Búsqueda web | search_web | 5 |
| SPA con clics | scrape_with_actions | 5 |
| Evasión anti-bot | stealth_mode | 5 |
Solución de problemas
Lista de herramientas vacía en los ajustes de Cursor -- Cursor cachea la configuración MCP. Cierra por completo (Cmd+Q) y vuelve a abrir. Revisa ~/.cursor/logs/ por si hay errores de análisis.
"Command not found: crawlforge-mcp-server" -- El bin global de npm no está en el PATH de Cursor. Soluciónalo poniendo una ruta absoluta en mcp.json: "command": "/usr/local/bin/crawlforge-mcp-server".
Cada llamada devuelve 401 -- Falta la API key o sigue siendo el marcador de posición. Verifícalo con: curl -H "Authorization: Bearer $CRAWLFORGE_API_KEY" https://crawlforge.dev/api/v1/credits/balance.
Cursor pide aprobación en cada llamada a herramienta -- Es el comportamiento por defecto esperado. Activa "Auto-approve for trusted servers" en los ajustes de MCP si quieres que el Composer ejecute los scrapes en silencio.
El Composer ignora la herramienta MCP -- Indícalo de forma explícita: "Use CrawlForge's scrape_structured tool to...". A veces Cursor recurre por defecto a su obtención web integrada, que es menos capaz.
Próximos pasos
- Lee la guía de reglas de Cursor para optimizar el comportamiento del Composer en el scraping
- Explora el resumen de las 26 herramientas para ver qué más puedes automatizar
- Consulta los docs de primeros pasos para la referencia de la API y los precios en credits
- Compara proveedores en alternativa a Firecrawl
Empieza gratis con 1.000 credits en crawlforge.dev/signup.
Pruébalo tú mismo — sin necesidad de registrarte
Ejecuta cualquiera de las 27 herramientas de scraping y extracción de CrawlForge en el playground y luego empieza gratis con 1,000 credits.
1,000 credits gratis • Se recargan cada mes • No se requiere tarjeta de crédito
Etiquetas
Sobre el autor
Mantente al día con los últimos artículos
Recibe tutoriales, novedades del producto y consejos de web scraping en tu bandeja de entrada.
Sin spam. Cancela tu suscripción cuando quieras.