Przepisy MCP

Przepisy MCP

Pięć gotowych do wklejenia promptów, które możesz uruchomić w dowolnym kliencie zgodnym z MCP (Claude Desktop, Claude Code, Cursor, Windsurf, VS Code) po zainstalowaniu serwera MCP FourA.

Każdy przepis koordynuje jedno lub więcej narzędzi spośród foura_single, foura_proxy, foura_browser do typowych zadań scrapowania. Możesz ich użyć na dwa sposoby:

  1. Wywołaj wbudowany prompt (każdy klient MCP udostępnia prompty dostarczane przez serwer jako komendę z ukośnikiem lub w panelu /prompts). Wybierz prompt, uzupełnij argumenty i uruchom go. Serwer MCP zwróci szablon przepływu pracy, a LLM wykona go za pomocą odpowiednich narzędzi.
  2. Skopiuj tekst poniżej do swojego czatu. Efekt będzie ten sam, ale trudniej go odkryć.

Serwer MCP dostarcza je jako natywne prompty: scrape_product_page, extract_article, monitor_pricing, check_endpoint_health, bulk_fetch_urls.

Uwaga dotycząca dużych stron (v0.2.0+): domyślnie treści odpowiedzi wracają w linii (inline) w structuredContent bez względu na rozmiar. Działa to w każdym kliencie MCP, w tym w Claude Desktop. Jeśli korzystasz z klienta obsługującego MCP resources/read i chcesz zaoszczędzić tokeny na dużych stronach, przekaż offload_large: true w wywołaniu narzędzia. Odpowiedzi o rozmiarze >= 50 KB zostaną wtedy zwrócone jako resource_link, który Twój klient pobierze na żądanie. Poniższe wbudowane prompty zakładają zachowanie domyślne (inline).

1. Scrapowanie strony produktu

Dla stron szczegółów produktów e-commerce, w tym witryn typu single-page-app oraz stron zabezpieczonych systemami anti-bot.

Wbudowany: scrape_product_page(url)

Prompt ręczny:

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": "..."}

Kiedy użyć tego przepisu: agent porównujący ceny, powiadomienia o dostępności produktu, arkusz analizy konkurencji.

2. Ekstrakcja artykułu

Dla artykułów, wpisów na blogach, dokumentacji technicznej i wszystkiego, z czego chcesz wyciągnąć czysty tekst do czytania bez nawigacji, reklam i szumu w stopce.

Wbudowany: extract_article(url)

Prompt ręczny:

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": "..."}

Kiedy użyć tego przepisu: narzędzie do podsumowywania materiałów, własny kanał RSS dla wybranej witryny, codzienny przegląd wiadomości.

3. Monitorowanie ceny

Dla stron z cennikami i ofertami produktów, z opcjonalnym porównaniem z ceną docelową.

Wbudowany: monitor_pricing(url, target_price?)

Prompt ręczny:

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"}

Kiedy użyć tego przepisu: agent powiadamiający o obniżkach cen, monitor cen biletów lotniczych, śledzenie cen konkurencji B2B.

4. Sprawdzanie stanu endpointu

Do monitorowania dostępności (uptime) i walidacji endpointów API.

Wbudowany: check_endpoint_health(url, expected_text?)

Prompt ręczny:

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}

Kiedy użyć tego przepisu: zewnętrzny monitor uptime, testy dymne (smoke tests) po wdrożeniu, monitorowanie zewnętrznych API.

5. Równoległe pobieranie listy adresów URL

Do zadań wsadowych, w których potrzebujesz metadanych o wielu adresach URL bez pobierania ich pełnej zawartości.

Wbudowany: bulk_fetch_urls(urls)

Prompt ręczny:

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.

Kiedy użyć tego przepisu: sprawdzanie dostępności adresów z mapy witryny (sitemap), audyt niedziałających linków (link-rot), weryfikacja typu „które z tych 50 adresów URL produktów nadal istnieją”.

6. Blokowanie IP proxy dla wielu wywołań (cross-tool)

Gdy kolejne wywołania muszą wyglądać tak, jakby pochodziły od tego samego klienta (na przykład podczas scrapowania wieloetapowego procesu zakupowego lub pobierania zasobów JS strony po jej wyrenderowaniu), wybierz jedno działające proxy i używaj ponownie jego identyfikatora.

Prompt ręczny:

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.

Kiedy użyć tego przepisu: scrapowanie stron, na których stan sesji jest powiązany z IP, pobieranie podzasobów CSS/JS po wyrenderowaniu, testy A/B zachowania witryny z określonego kraju lub dowolny wieloetapowy przepływ, w którym potrzebujesz przewidywalnego adresu wyjściowego (egress).

7. Łańcuch wyzwań WAF (tier-1: Vercel / Cloudflare / Akamai)

Kanoniczny wzorzec dla stron zabezpieczonych wyzwaniami WAF klasy tier-1, takimi jak Vercel Security Checkpoint, Cloudflare „Just a moment” czy Akamai Bot Manager. Bezpośrednie wywołanie foura_browser dla takich celów zazwyczaj zwraca stronę z wyzwaniem zamiast właściwej treści, ponieważ zrzut ekranu (snapshot) jest wykonywany przed zakończeniem opóźnionego przeładowania po rozwiązaniu wyzwania. Rozwiąż ten problem najpierw za pomocą foura_proxy (które omija zabezpieczenie, próbując wielu wyjściowych adresów IP, aż jeden zadziała), a następnie przekaż zwrócony identyfikator proxy do foura_browser.

Prompt ręczny:

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.).

Sygnały wskazujące, że należy użyć tego przepisu:

  • foura_single zwraca status 429 z nagłówkiem x-vercel-mitigated: challenge lub cf-mitigated: challenge
  • Tytuł w treści strony (body) pasuje do Vercel Security Checkpoint / Just a moment / Attention Required / We're verifying your browser
  • foura_browser bezpośrednio pobiera uproszczony kod HTML wyzwania zamiast właściwej treści

Kiedy użyć tego przepisu: aplikacje SPA hostowane na Vercel/Netlify za Vercel WAF (iqair.com, wiele stron marketingowych renderowanych w React), sklepy chronione przez Cloudflare w trybie ataku (attack-mode), witryny handlowe o dużym natężeniu ruchu chronione przez Akamai.

Wskazówki dotyczące wszystkich siedmiu przepisów

  • Zacznij od foura_single. To najszybsze narzędzie (200 ms do 2 s) i działa na większości publicznych stron. Przejdź do foura_proxy w przypadku błędu 403/captcha, a do foura_browser, gdy brakuje treści generowanych przez JavaScript.
  • unblocker:true jest tani. Dodaje realistyczne nagłówki przeglądarki na poziomie sieciowym. Strony, które blokują ruch na podstawie User-Agent lub analizy accept-encoding, przepuszczą Twoje żądanie.
  • Reguły walidacji oszczędzają próby. Ustaw validate.data.fail:["captcha", "blocked"], aby ewidentnie zablokowana odpowiedź była traktowana jako błąd i wyzwalała ponowną próbę lub eskalację do proxy, zamiast być interpretowana jako sukces.
  • Duże treści są domyślnie przesyłane w linii (v0.2.0+). Przekaż offload_large: true w dowolnym wywołaniu narzędzia, aby przełączyć się na resource_link + resources/read i zaoszczędzić tokeny na dużych stronach (jest to przydatne tylko w klientach obsługujących resources/read, Claude Desktop obecnie tego nie wspiera).

Chcesz przepis, którego tu nie ma?

Napisz na adres support@foura.ai i opisz swój przypadek użycia. Nowe prompty dla serwera MCP są wydawane z tą samą częstotliwością, co aktualizacje REST API.

Aktualizacja: 1 lipca 2026