Recetas MCP
Recetas MCP
Cinco prompts listos para pegar que puede ejecutar dentro de cualquier cliente compatible con MCP (Claude Desktop, Claude Code, Cursor, Windsurf, VS Code) después de instalar el servidor MCP de FourA.
Cada receta orquesta uno o más de foura_single, foura_proxy, foura_browser para una tarea común de scraping. Dos formas de usarlas:
- Invocar el prompt integrado: cada cliente MCP muestra los prompts proporcionados por el servidor como un comando de barra diagonal o un panel
/prompts. Seleccione el prompt, complete los argumentos y ejecútelo. El servidor MCP devuelve el flujo de trabajo con plantilla; el LLM lo ejecuta con las herramientas adecuadas. - Copiar la prosa a continuación en su propio chat. Mismo efecto, menos visible.
El servidor MCP incluye estos prompts de forma nativa: scrape_product_page, extract_article, monitor_pricing, check_endpoint_health, bulk_fetch_urls.
Nota sobre páginas grandes (v0.2.0+): de forma predeterminada, los cuerpos de las response se devuelven insertados (inline) en
structuredContentindependientemente de su tamaño, lo cual funciona en todos los clientes MCP, incluido Claude Desktop. Si utiliza un cliente compatible conresources/readde MCP Y desea ahorrar tokens en páginas grandes, paseoffload_large: trueen la llamada a la herramienta. Las response de >= 50 KB se enviarán como unresource_linkque su cliente recuperará bajo demanda. Los prompts integrados a continuación asumen el comportamiento predeterminado (inline).
1. Scrapear una página de producto
Para páginas de detalles de productos de comercio electrónico, incluidos sitios de aplicaciones de una sola página (SPA) y páginas detrás de desafíos anti-bot.
Integrado: scrape_product_page(url)
Prompt manual:
Fetch the product page at <URL> using foura_browser — most product pages are single-page apps and need JavaScript to render.
From the response body extract:
- product title
- price (with currency)
- primary product image URL (absolute, not relative)
- availability / stock status
- product SKU or ID if visible
Return as JSON: {"title": "...", "price": 0, "currency": "USD", "image_url": "...", "in_stock": true, "sku": "..."}
Cuándo es la receta adecuada: un agente de comparación de precios, un notificador de stock disponible, una hoja de cálculo de análisis competitivo.
2. Extraer un artículo
Para artículos de noticias, publicaciones de blog, documentación técnica o cualquier contenido donde desee texto de lectura limpio sin navegación, anuncios ni ruido en el pie de página.
Integrado: extract_article(url)
Prompt manual:
Fetch <URL> using foura_single with unblocker:true. Most news and blog sites are server-rendered, so HTTP is fastest (200ms-2s).
If foura_single returns a 403, captcha page, or empty content, retry the same URL with foura_proxy (maxTries:3) — it routes through a rotating proxy pool.
From the response, extract:
- headline (the main H1, not the page title bar)
- author byline (may be inside .author, [rel=author], itemprop)
- publication date (look for <time>, .published, or JSON-LD)
- main article body (strip navigation, ads, related-content, footer, comments)
- canonical URL (rel=canonical or og:url)
Return as JSON: {"title": "...", "author": "...", "date_published": "ISO8601", "body": "...", "canonical_url": "..."}
Cuándo es la receta adecuada: un resumidor de investigación, un RSS de un solo sitio, un resumen diario de noticias.
3. Monitorear un precio
Para páginas de precios y ofertas de productos, con comparación opcional frente a un precio objetivo.
Integrado: monitor_pricing(url, target_price?)
Prompt manual:
Use foura_proxy with maxTries:5 and unblocker:true to fetch <URL>. Pricing pages often have aggressive bot detection, so go through the proxy pool from the start.
Extract the current price (look for visible $/€/£ amounts, JSON-LD Offer schema, [itemprop=price]).
If a target price is provided, compare: report whether current is below/at/above target and the absolute difference.
Return as JSON: {"url": "...", "current_price": 0.00, "currency": "USD", "target_price": 0, "difference": 0, "status": "below|at|above"}
Cuándo es la receta adecuada: un agente de alertas de ahorro, un vigilante de tarifas de viaje, un rastreador de precios de competidores B2B.
4. Verificar el estado de un endpoint
Para sondas de tiempo de actividad (uptime) y validación de endpoints de API.
Integrado: check_endpoint_health(url, expected_text?)
Prompt manual:
Use foura_single with GET on <URL>, timeout_ms:5000, and validate.status.accept:[200]. If an expected substring is provided, also set validate.data.accept:["<EXPECTED>"] so the request only counts as success when the body contains it.
Report:
- reachable (true if any response came back, false on connection error/timeout)
- status_code (HTTP code from target)
- total_time_ms (from the total_time field)
- validation_passed (true if status + body validation conditions were met)
Return as JSON: {"url": "...", "reachable": true, "status_code": 200, "total_time_ms": 0, "validation_passed": true}
Cuándo es la receta adecuada: un monitor de tiempo de actividad externo, una prueba de humo de despliegue, un vigilante de API de terceros.
5. Obtener una lista de URLs en paralelo
Para tareas por lotes (batch) donde desea metadatos sobre muchas URLs sin incluir sus cuerpos inline.
Integrado: bulk_fetch_urls(urls)
Prompt manual:
Parse the following comma-separated URLs and fetch each one concurrently using foura_single (unblocker:true).
URLs: <COMMA_SEPARATED>
For any URL that returns 403, captcha page, or empty body — retry that single URL with foura_proxy (maxTries:3).
Return a JSON array, one entry per URL in input order:
[{"url": "...", "status": 200, "success": true, "body_size_bytes": 0, "via": "single|proxy", "error": null}, ...]
Do NOT inline full response bodies in the output — only metadata. If you need body content, call foura_single individually after this report.
Cuándo es la receta adecuada: un barrido de accesibilidad de sitemaps, una auditoría de enlaces rotos, una verificación de "cuáles de estas 50 URLs de productos aún existen".
6. Bloquear una IP de proxy en múltiples llamadas (cross-tool)
Cuando necesite que las llamadas consecutivas parezcan provenir del mismo cliente (por ejemplo, al scrapear un flujo de pago de varios pasos o al capturar los recursos JS de una página después de renderizarla), elija un proxy que funcione y reutilice su ID.
Prompt manual:
First, call foura_proxy with maxTries:5 and a quick probe URL (httpbin.org/ip is fine) to find a working proxy. Capture the returned `proxy` ID (looks like "4DZ3VE").
Then for every follow-up call:
- HTTP request: foura_single with the SAME `proxy` value — same exit IP, you preserve any IP-based session.
- Rendered page: foura_browser with the SAME `proxy` value — the browser exits through the same pool IP.
If a specific proxy ID starts failing mid-workflow, call foura_proxy again with ignoreProxies:["<failed_id>"] to get a fresh one.
Cuándo es la receta adecuada: scrapear páginas donde el estado de la sesión está vinculado a la IP, obtener subrecursos CSS/JS después de renderizar, realizar pruebas A/B sobre cómo se comporta un sitio desde un país específico, o cualquier flujo de múltiples llamadas donde desee una salida (egress) predecible.
7. Cadena de desafíos WAF (tier-1: Vercel / Cloudflare / Akamai)
El patrón canónico para sitios detrás de un desafío WAF de nivel 1 (Vercel Security Checkpoint, Cloudflare 'Just a moment', Akamai Bot Manager). Llamar a foura_browser directamente contra estos objetivos generalmente captura la página del desafío en lugar del contenido posterior al desafío, ya que la captura se realiza antes de que se complete la recarga diferida del desafío. Resuélvalo primero a través de foura_proxy (que supera el desafío probando muchas IPs de salida hasta que una pasa) y luego encadene el ID de proxy devuelto en foura_browser.
Prompt manual:
Step 1 — find an exit IP that clears the challenge:
foura_proxy({
maxTries: 30, // tier-1 WAFs typically need this range
request: { method: "GET", url: "<TARGET_URL>", unblocker: true }
})
On success the response carries `proxy: "<BASE36_ID>"`. Capture it.
Step 2 — render the post-challenge page through the same IP:
foura_browser({
url: "<TARGET_URL>",
proxy: "<BASE36_ID>" // reuse the cleared exit
})
If foura_proxy still fails after 30 attempts with the same block,
the gate is likely a country / ASN allowlist (country-licensed
bookmakers, government sites). Rotation will never help — pivot
strategy (different data source, partner agreement, etc.).
Desencadenantes que deberían dirigirle a esta receta:
foura_singledevuelve el estado 429 con el headerx-vercel-mitigated: challengeocf-mitigated: challenge- El título del cuerpo coincide con
Vercel Security Checkpoint/Just a moment/Attention Required/We're verifying your browser foura_browsercaptura directamente un HTML de desafío diminuto en lugar del contenido real
Cuándo es la receta adecuada: SPAs alojadas en Vercel/Netlify detrás de Vercel WAF (iqair.com, muchos sitios de marketing renderizados con React), tiendas protegidas por Cloudflare durante períodos de modo de ataque, comercio minorista de alto tráfico protegido por Akamai.
Consejos aplicables a las siete recetas
- Comience con foura_single. Es la herramienta más rápida (200 ms a 2 s) y funciona para la mayoría de los sitios públicos. Pase a foura_proxy en caso de 403/captcha, y a foura_browser si falta contenido de JavaScript.
unblocker:truees económico. Agrega headers de navegador realistas a nivel de red; los sitios que restringen el acceso según el User-Agent o la detección de accept-encoding permitirán el paso de su request.- Las reglas de validación ahorran reintentos. Establezca
validate.data.fail:["captcha", "blocked"]para que una response obviamente bloqueada se considere un fallo y active el reintento o la escalación al proxy, en lugar de interpretarse como un éxito. - Los cuerpos grandes están insertados (inline) de forma predeterminada (v0.2.0+). Pase
offload_large: trueen cualquier llamada a la herramienta para cambiar aresource_link+resources/readpara ahorrar tokens en páginas grandes (solo es útil en clientes compatibles conresources/read; Claude Desktop actualmente no lo es).
¿Desea una receta que no está aquí?
Envíe un correo electrónico a support@foura.ai con su caso de uso. El servidor MCP publica nuevos prompts con la misma frecuencia que los lanzamientos de la API REST.