Рецепты MCP

Рецепты MCP

Пять готовых к копированию промптов, которые можно запустить в любом MCP-совместимом клиенте (Claude Desktop, Claude Code, Cursor, Windsurf, VS Code) после установки FourA MCP server.

Каждый рецепт координирует работу одного или нескольких инструментов foura_single, foura_proxy, foura_browser для решения типовой задачи парсинга. Есть два способа их использования:

  1. Вызов встроенного промпта (каждый MCP-клиент отображает предоставляемые сервером промпты в виде слэш-команд или панели /prompts). Выберите промпт, заполните аргументы и запустите его. MCP-сервер вернет шаблонный рабочий процесс, а LLM выполнит его с помощью подходящих инструментов.
  2. Копирование текста ниже в ваш чат. Тот же эффект, но менее очевидный способ.

MCP-сервер поставляет их как встроенные промпты: scrape_product_page, extract_article, monitor_pricing, check_endpoint_health, bulk_fetch_urls.

Примечание для больших страниц (v0.2.0+): по умолчанию тела ответов возвращаются встроенными в structuredContent независимо от размера (это работает во всех MCP-клиентах, включая Claude Desktop). Если вы используете клиент с поддержкой MCP resources/read И хотите сэкономить токены на больших страницах, передайте offload_large: true в вызове инструмента. Ответы размером >= 50 КБ будут возвращаться в виде resource_link, которую ваш клиент загрузит по запросу. Встроенные промпты ниже предполагают поведение по умолчанию (встроенные ответы).

1. Парсинг страницы товара

Для страниц с описанием товаров в интернет-магазинах, включая одностраничные приложения (SPA) и страницы, защищенные от ботов.

Встроенный: scrape_product_page(url)

Промпт для ручного ввода:

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

Когда подходит этот рецепт: агент сравнения цен, уведомления о поступлении товара в продажу, таблица конкурентного анализа.

2. Извлечение статьи

Для новостных статей, записей в блогах, технической документации и любых страниц, где нужен чистый текст для чтения без навигации, рекламы и лишнего содержимого в футере.

Встроенный: extract_article(url)

Промпт для ручного ввода:

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

Когда подходит этот рецепт: суммаризатор исследований, RSS для отдельного сайта, ежедневный дайджест новостей.

3. Мониторинг цен

Для страниц с ценами и товарных предложений, с возможностью сравнения с целевой ценой.

Встроенный: monitor_pricing(url, target_price?)

Промпт для ручного ввода:

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

Когда подходит этот рецепт: агент оповещения о скидках, отслеживание цен на билеты, мониторинг цен B2B-конкурентов.

4. Проверка работоспособности endpoint

Для проверки доступности (uptime) и валидации API endpoint.

Встроенный: check_endpoint_health(url, expected_text?)

Промпт для ручного ввода:

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}

Когда подходит этот рецепт: внешний мониторинг доступности, дымовое тестирование (smoke test) после деплоя, контроль сторонних API.

5. Параллельная загрузка списка URL

Для пакетных задач, когда требуются метаданные о множестве URL без загрузки их тел в ответе.

Встроенный: bulk_fetch_urls(urls)

Промпт для ручного ввода:

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.

Когда подходит этот рецепт: проверка доступности карты сайта (sitemap), аудит нерабочих ссылок, проверка в стиле «какие из этих 50 URL товаров все еще существуют».

6. Привязка proxy IP для нескольких вызовов (cross-tool)

Если вам нужно, чтобы последовательные вызовы выглядели так, будто они исходят от одного клиента (например, при парсинге многоэтапного процесса оформления заказа или получении JS-ресурсов страницы после ее рендеринга), выберите один рабочий proxy и используйте его ID повторно.

Промпт для ручного ввода:

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.

Когда подходит этот рецепт: парсинг страниц, где состояние сессии привязано к IP, загрузка дополнительных ресурсов CSS/JS после рендеринга, A/B-тестирование поведения сайта из определенной страны или любой процесс с несколькими вызовами, где требуется предсказуемый исходящий IP.

7. Цепочка обхода WAF (tier-1: Vercel / Cloudflare / Akamai)

Канонический паттерн для сайтов за защитой tier-1 WAF (Vercel Security Checkpoint, Cloudflare 'Just a moment', Akamai Bot Manager). Прямой вызов foura_browser для таких целей обычно возвращает страницу проверки, а не контент после нее (снимок экрана создается до того, как завершится отложенная перезагрузка страницы проверки). Решите задачу сначала через foura_proxy (который обходит проверку, перебирая множество исходящих IP, пока один не сработает), а затем передайте полученный ID proxy в foura_browser.

Промпт для ручного ввода:

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

Признаки того, что вам нужен этот рецепт:

  • foura_single возвращает статус 429 с header x-vercel-mitigated: challenge или cf-mitigated: challenge
  • Заголовок в теле ответа соответствует Vercel Security Checkpoint / Just a moment / Attention Required / We're verifying your browser
  • foura_browser напрямую получает небольшой HTML проверки вместо реального контента

Когда подходит этот рецепт: SPA на хостинге Vercel/Netlify за защитой Vercel WAF (iqair.com, многие маркетинговые сайты на React), магазины под защитой Cloudflare в режиме атаки (attack-mode), сайты розничной торговли с высокой посещаемостью под защитой Akamai.

Советы, применимые ко всем рецептам

  • Начинайте с foura_single. Это самый быстрый инструмент (от 200 мс до 2 с), который подходит для большинства публичных сайтов. Переходите на foura_proxy при ошибках 403/captcha, и на foura_browser, если отсутствует контент, требующий JavaScript.
  • unblocker:true практически не требует ресурсов. Он добавляет реалистичные заголовки браузера на сетевом уровне. Сайты, ограничивающие доступ по User-Agent или анализирующие accept-encoding, пропустят ваш request.
  • Правила валидации экономят попытки. Установите validate.data.fail:["captcha", "blocked"], чтобы явно заблокированный response считался ошибкой и запускал повторную попытку или переключение на proxy, а не обрабатывался как успешный.
  • Большие тела ответов по умолчанию встраиваются (v0.2.0+). Передайте offload_large: true в любом вызове инструмента, чтобы переключиться на resource_link + resources/read для экономии токенов на больших страницах (полезно только в клиентах с поддержкой resources/read, Claude Desktop в данный момент ее не поддерживает).

Нужен рецепт, которого здесь нет?

Напишите на support@foura.ai с описанием вашего сценария использования. Новые промпты для MCP server выпускаются с той же периодичностью, что и релизы REST API.

Обновлено: 1 июля 2026 г.