Công thức MCP
Công thức MCP
Năm prompt có sẵn để sao chép và chạy bên trong bất kỳ client nào tương thích với MCP (Claude Desktop, Claude Code, Cursor, Windsurf, VS Code) sau khi cài đặt FourA MCP server.
Mỗi công thức điều phối một hoặc nhiều công cụ foura_single, foura_proxy, foura_browser cho một tác vụ scraping phổ biến. Có hai cách để sử dụng chúng:
- Gọi prompt tích hợp sẵn (mọi client MCP đều hiển thị các prompt do server cung cấp dưới dạng lệnh gạch chéo hoặc bảng điều khiển
/prompts). Chọn prompt, điền các đối số và chạy. MCP server sẽ trả về workflow theo mẫu, LLM sẽ thực thi nó với các công cụ phù hợp. - Sao chép văn bản bên dưới vào đoạn chat của bạn. Hiệu quả tương tự nhưng ít trực quan hơn.
MCP server cung cấp sẵn các prompt này dưới dạng native: scrape_product_page, extract_article, monitor_pricing, check_endpoint_health, bulk_fetch_urls.
Lưu ý về các trang lớn (v0.2.0+): theo mặc định, các response body sẽ được trả về inline trong
structuredContentbất kể kích thước (điều này hoạt động trên mọi client MCP bao gồm cả Claude Desktop). Nếu bạn đang sử dụng một client hỗ trợ MCPresources/readVÀ muốn tiết kiệm token trên các trang lớn, hãy truyềnoffload_large: truetrong lệnh gọi công cụ. Các response >= 50 KB sau đó sẽ được trả về dưới dạng mộtresource_linkmà client của bạn sẽ tải khi có nhu cầu. Các prompt tích hợp sẵn bên dưới giả định cấu hình mặc định (inline).
1. Scrape trang sản phẩm
Dành cho các trang chi tiết sản phẩm thương mại điện tử, bao gồm cả các trang web single-page-app và các trang nằm sau các thử thách chống bot.
Tích hợp sẵn: scrape_product_page(url)
Prompt thủ công:
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": "..."}
Khi nào nên dùng công thức này: agent so sánh giá, trình thông báo có hàng trở lại, bảng tính phân tích cạnh tranh.
2. Trích xuất bài viết
Dành cho các bài báo, bài viết blog, tài liệu kỹ thuật, hoặc bất kỳ nội dung nào bạn muốn lấy văn bản đọc sạch sẽ mà không có thanh điều hướng, quảng cáo và các thành phần gây nhiễu ở footer.
Tích hợp sẵn: extract_article(url)
Prompt thủ công:
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": "..."}
Khi nào nên dùng công thức này: công cụ tóm tắt nghiên cứu, RSS của một trang web cụ thể, bản tin tin tức hàng ngày.
3. Theo dõi giá
Dành cho các trang giá cả và ưu đãi sản phẩm, hỗ trợ tùy chọn so sánh với mức giá mục tiêu.
Tích hợp sẵn: monitor_pricing(url, target_price?)
Prompt thủ công:
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"}
Khi nào nên dùng công thức này: agent cảnh báo tiết kiệm, trình theo dõi giá vé du lịch, trình theo dõi giá của đối thủ cạnh tranh B2B.
4. Kiểm tra trạng thái hoạt động của endpoint
Dành cho việc kiểm tra uptime và xác thực API endpoint.
Tích hợp sẵn: check_endpoint_health(url, expected_text?)
Prompt thủ công:
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}
Khi nào nên dùng công thức này: trình giám sát uptime bên ngoài, smoke test khi deploy, trình giám sát API bên thứ ba.
5. Tải song song danh sách URL
Dành cho các tác vụ hàng loạt khi bạn muốn lấy metadata của nhiều URL mà không cần chèn trực tiếp body của chúng.
Tích hợp sẵn: bulk_fetch_urls(urls)
Prompt thủ công:
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.
Khi nào nên dùng công thức này: quét khả năng truy cập sitemap, kiểm tra liên kết hỏng (link-rot), kiểm tra xem "URL nào trong số 50 URL sản phẩm này vẫn tồn tại".
6. Khóa một IP proxy qua nhiều cuộc gọi (cross-tool)
Khi bạn cần các cuộc gọi liên tiếp trông như thể chúng đến từ cùng một client (ví dụ: scraping luồng thanh toán nhiều bước, hoặc lấy các tài nguyên JS của một trang sau khi render nó), hãy chọn một proxy đang hoạt động và sử dụng lại ID của nó.
Prompt thủ công:
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.
Khi nào nên dùng công thức này: scraping các trang có trạng thái session gắn liền với IP, tải các tài nguyên phụ CSS/JS sau khi render, thử nghiệm A/B về cách một trang web hoạt động từ một quốc gia cụ thể, hoặc bất kỳ luồng gọi nhiều bước nào mà bạn muốn kiểm soát được IP đầu ra.
7. Chuỗi vượt thử thách WAF (tier-1: Vercel / Cloudflare / Akamai)
Mẫu chuẩn dành cho các trang web nằm sau thử thách WAF tier-1 (Vercel Security Checkpoint, Cloudflare 'Just a moment', Akamai Bot Manager). Việc gọi trực tiếp foura_browser tới các mục tiêu này thường chỉ chụp lại trang thử thách thay vì nội dung sau thử thách (snapshot được kích hoạt trước khi quá trình tải lại bị trì hoãn của thử thách hoàn tất). Hãy giải quyết bằng foura_proxy trước (giúp vượt qua thử thách bằng cách thử nhiều IP đầu ra cho đến khi có một IP thành công), sau đó truyền ID proxy nhận được vào foura_browser.
Prompt thủ công:
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.).
Nếu foura_proxy vẫn thất bại sau 30 lần thử với cùng một lỗi chặn, rào cản có thể là danh sách cho phép (allowlist) theo quốc gia / ASN (các nhà cái được cấp phép theo quốc gia, trang web chính phủ). Việc xoay vòng proxy sẽ không bao giờ có tác dụng, hãy chuyển hướng chiến lược (nguồn dữ liệu khác, thỏa thuận đối tác, v.v.).
Các dấu hiệu cho thấy bạn nên sử dụng công thức này:
foura_singletrả về status 429 với headerx-vercel-mitigated: challengehoặccf-mitigated: challenge- Tiêu đề body khớp với
Vercel Security Checkpoint/Just a moment/Attention Required/We're verifying your browser foura_browsertrực tiếp chụp lại một đoạn HTML thử thách nhỏ thay vì nội dung thực tế
Khi nào nên dùng công thức này: các SPAs được host trên Vercel/Netlify nằm sau Vercel WAF (iqair.com, nhiều trang web marketing được render bằng React), các cửa hàng được bảo vệ bởi Cloudflare trong thời gian bật chế độ tấn công (attack-mode), các trang bán lẻ có lưu lượng truy cập cao được bảo vệ bởi Akamai.
Các mẹo áp dụng cho cả bảy công thức
- Bắt đầu với foura_single. Đây là công cụ nhanh nhất (200ms-2s) và hoạt động hiệu quả với phần lớn các trang web công cộng. Chuyển sang foura_proxy khi gặp lỗi 403/captcha, và foura_browser khi thiếu nội dung JavaScript.
unblocker:truerất tối ưu. Bổ sung các browser header thực tế ở cấp độ truyền dẫn; các trang web chặn dựa trên User-Agent hoặc kiểm tra accept-encoding sẽ cho phép request của bạn đi qua.- Các quy tắc xác thực giúp tiết kiệm lượt thử lại. Thiết lập
validate.data.fail:["captcha", "blocked"]để một response bị chặn rõ ràng được tính là thất bại và kích hoạt thử lại/chuyển tiếp proxy, thay vì được phân tích cú pháp như một thành công. - Các body lớn được để inline theo mặc định (v0.2.0+). Truyền
offload_large: truetrong bất kỳ cuộc gọi công cụ nào để chuyển sangresource_link+resources/readnhằm tiết kiệm token trên các trang lớn (chỉ hữu ích trong các client hỗ trợresources/read, Claude Desktop hiện tại chưa hỗ trợ).
Bạn muốn một công thức không có ở đây?
Hãy gửi email đến support@foura.ai kèm theo trường hợp sử dụng của bạn. MCP server sẽ cung cấp các prompt mới theo cùng chu kỳ phát hành của REST API.