MCP-Rezepte
MCP-Rezepte
Fünf kopierfertige Prompts, die du in jedem MCP-kompatiblen Client (Claude Desktop, Claude Code, Cursor, Windsurf, VS Code) nach der Installation des FourA-MCP-Servers ausführen kannst.
Jedes Rezept orchestriert eines oder mehrere der Tools foura_single, foura_proxy und foura_browser für eine typische Scraping-Aufgabe. Zwei Möglichkeiten zur Nutzung:
- Den integrierten Prompt aufrufen: Jeder MCP-Client stellt vom Server bereitgestellte Prompts als Slash-Befehl oder im
/prompts-Panel dar. Wähle den Prompt aus, fülle die Argumente aus und starte ihn. Der MCP-Server gibt den vorlagenbasierten Workflow zurück, das LLM führt ihn mit den richtigen Tools aus. - Kopiere den Text unten in deinen eigenen Chat. Gleicher Effekt, aber weniger direkt auffindbar.
Der MCP-Server liefert diese als native Prompts aus: scrape_product_page, extract_article, monitor_pricing, check_endpoint_health, bulk_fetch_urls.
Hinweis zu großen Seiten (v0.2.0+): Standardmäßig werden Response-Bodys unabhängig von der Größe inline in
structuredContentzurückgegeben. Dies funktioniert in jedem MCP-Client, einschließlich Claude Desktop. Wenn du einen Client nutzt, der MCPresources/readunterstützt, UND du bei großen Seiten Token sparen möchtest, übergiboffload_large: trueim Tool-Aufruf. Antworten >= 50 KB werden dann alsresource_linkbereitgestellt, den dein Client bei Bedarf abruft. Die unten stehenden integrierten Prompts setzen den Standard (inline) voraus.
1. Eine Produktseite scrapen
Für E-Commerce-Produktdetailseiten, einschließlich Single-Page-Apps und Seiten hinter Anti-Bot-Herausforderungen.
Integriert: scrape_product_page(url)
Manueller Prompt:
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": "..."}
Wann dies das richtige Rezept ist: ein Preisvergleichs-Agent, ein Benachrichtiger für wieder verfügbare Bestände, eine Tabelle zur Wettbewerbsanalyse.
2. Einen Artikel extrahieren
Für Nachrichtenartikel, Blogbeiträge, technische Dokumentationen, also alles, bei dem du sauberen Lesetext ohne Navigation, Werbung und Footer-Rauschen haben möchtest.
Integriert: extract_article(url)
Manueller Prompt:
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": "..."}
Wann dies das richtige Rezept ist: ein Zusammenfassungs-Tool für Recherchen, ein RSS-Feed für eine einzelne Website, ein täglicher Nachrichten-Digest.
3. Einen Preis überwachen
Für Preisseiten und Produktangebote, optional mit Vergleich gegenüber einem Zielpreis.
Integriert: monitor_pricing(url, target_price?)
Manueller Prompt:
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"}
Wann dies das richtige Rezept ist: ein Spar-Alarm-Agent, ein Reisepreis-Beobachter, ein B2B-Wettbewerber-Preistracker.
4. Endpoint-Status prüfen
Für Uptime-Probes und die Validierung von API-Endpoints.
Integriert: check_endpoint_health(url, expected_text?)
Manueller Prompt:
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}
Wann dies das richtige Rezept ist: ein externer Uptime-Monitor, ein Deployment-Smoke-Test, ein Drittanbieter-API-Watchdog.
5. Eine Liste von URLs parallel abrufen
Für Batch-Jobs, bei denen du Metadaten zu vielen URLs erhalten möchtest, ohne deren Bodys inline einzubinden.
Integriert: bulk_fetch_urls(urls)
Manueller Prompt:
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.
Wann dies das richtige Rezept ist: eine Sitemap-Erreichbarkeitsprüfung, ein Link-Rot-Audit, eine Überprüfung, welche dieser 50 Produkt-URLs noch existieren.
6. Eine Proxy-IP über mehrere Aufrufe hinweg sperren (toolübergreifend)
Wenn aufeinanderfolgende Aufrufe so aussehen müssen, als kämen sie vom selben Client (zum Beispiel beim Scrapen eines mehrstufigen Checkout-Flows oder beim Abrufen der JS-Assets einer Seite nach dem Rendern), wähle einen funktionierenden Proxy und verwende dessen ID wieder.
Manueller Prompt:
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.
Wann dies das richtige Rezept ist: beim Scrapen von Seiten, bei denen der Session-Status an die IP gebunden ist, beim Abrufen von CSS/JS-Subressourcen nach dem Rendern, beim A/B-Testing des Verhaltens einer Website aus einem bestimmten Land oder bei jedem Flow mit mehreren Aufrufen, bei dem du einen vorhersagbaren Ausgangspunkt wünschst.
7. WAF-Challenge-Kette (Tier-1: Vercel / Cloudflare / Akamai)
Das kanonische Muster für Websites hinter einer Tier-1-WAF-Challenge (Vercel Security Checkpoint, Cloudflare „Just a moment“, Akamai Bot Manager). Der direkte Aufruf von foura_browser für diese Ziele erfasst in der Regel die Challenge-Seite und nicht den Inhalt nach der Challenge, da der Snapshot ausgelöst wird, bevor der verzögerte Reload der Challenge abgeschlossen ist. Löse dies zuerst über foura_proxy (wodurch die Challenge gelöst wird, indem viele Exit-IPs ausprobiert werden, bis eine erfolgreich ist) und übergebe dann die zurückgegebene Proxy-ID an foura_browser.
Manueller Prompt:
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.).
Auslöser, die dich zu diesem Rezept führen sollten:
foura_singlegibt den Status 429 mit dem Headerx-vercel-mitigated: challengeodercf-mitigated: challengezurück- Der Body-Titel stimmt mit
Vercel Security Checkpoint/Just a moment/Attention Required/We're verifying your browserüberein foura_browsererfasst direkt ein winziges Challenge-HTML anstelle des echten Inhalts
Wann dies das richtige Rezept ist: auf Vercel/Netlify gehostete SPAs hinter der Vercel-WAF (iqair.com, viele in React gerenderte Marketing-Websites), durch Cloudflare geschützte Shops während des Angriffsmodus, durch Akamai geschützter Einzelhandel mit hohem Traffic.
Tipps, die für alle sieben gelten
- Beginne mit foura_single. Es ist das schnellste Tool (200 ms bis 2 s) und funktioniert für die Mehrheit der öffentlichen Websites. Weiche bei 403/Captcha auf foura_proxy aus, bei fehlenden JavaScript-Inhalten auf foura_browser.
unblocker:trueist günstig. Fügt realistische Browser-Header auf Netzwerkebene hinzu. Websites, die den Zugriff über User-Agent- oder Accept-Encoding-Sniffing einschränken, lassen deine Anfrage durch.- Validierungsregeln sparen Retries. Setze
validate.data.fail:["captcha", "blocked"], damit eine offensichtlich blockierte Antwort als Fehler gewertet wird und eine Eskalation zu Retry/Proxy auslöst, anstatt als Erfolg gewertet zu werden. - Große Bodys sind standardmäßig inline (v0.2.0+). Übergib
offload_large: truein jedem Tool-Aufruf, um aufresource_link+resources/readumzuschalten und Token bei großen Seiten zu sparen. Dies ist nur in Clients nützlich, dieresources/readunterstützen (Claude Desktop tut dies derzeit nicht).
Du wünschst dir ein Rezept, das hier nicht aufgeführt ist?
Sende eine E-Mail mit dem Anwendungsfall an support@foura.ai. Der MCP-Server liefert neue Prompts im gleichen Rhythmus wie REST-API-Releases aus.