
Emma Foster
Machine Learning Engineer

Integrasi solver MCP Cloudflare Turnstile memberikan batas alat yang terkendali untuk klien AI dalam menangani tantangan dalam alur kerja yang diotorisasi. CapSolver mendokumentasikan capsolver-mcp sebagai opsi untuk klien yang kompatibel dengan MCP, sementara guru AI-nya memisahkan deteksi lokal dan pengisian kembali dari pengenalan yang dilakukan oleh layanan.
Tujuan desain yang berguna adalah pemulihan, bukan penjelajahan tanpa batas. Agent Anda mendeteksi langkah yang diblokir, memeriksa cakupan, mengumpulkan parameter yang telah didokumentasikan, memanggil satu alat, memverifikasi hasil yang dikembalikan, lalu melanjutkan atau berhenti untuk tinjauan.
Sebelum menghubungkan alat, tentukan domain yang disetujui, tindakan yang diizinkan, jumlah maksimum percobaan, aturan pencatatan, dan kondisi tinjauan manusia. Klien juga membutuhkan runtime MCP yang didukung oleh hostnya dan kredensial CapSolver yang disimpan di penyimpanan rahasia; jangan pernah menyimpan kredensial nyata di prompt atau kontrol sumber.
Cloudflare menjelaskan bahwa widget Turnstile menghasilkan token yang diverifikasi server-side oleh situs, sehingga token saja bukan bukti bahwa tindakan bisnis berhasil. Lihat alur implementasi Turnstile dan ulasan Turnstile oleh pihak pembela untuk model sisi pembela.
Gunakan paket dan konfigurasi saat ini yang ditunjukkan dalam dokumentasi SDK Core CapSolver. Perintah instalasi yang tepat sengaja tidak diduplikasi di sini karena lokasi paket dan klien yang didukung dapat berubah. Setelah instalasi, konfirmasi bahwa klien menampilkan alat CapSolver yang diharapkan, lalu putuskan secara bersih sebelum menempatkan konfigurasi di lingkungan yang dibagikan.
Artikel ini tidak menjalankan handshake kredensial. Uji ini tetap menjadi kekurangan prasyarat yang terbuka; tidak ada output alat yang ditampilkan sebagai bukti langsung.
Klaim Kode Bonus CapSolver Anda
Tingkatkan anggaran otomatisasi Anda secara instan!
Gunakan kode bonus CAP26 saat menambahkan dana ke akun CapSolver Anda untuk mendapatkan tambahan 5% bonus pada setiap penyetoran — tanpa batas.
Klaim sekarang di Dashboard CapSolver Anda
Jaga kontrak yang sempit di hadapan model. Input harus mengidentifikasi halaman yang disetujui dan parameter tantangan; output harus mengekspos status dan hasil yang tidak terbaca tanpa mengulang kredensial. Agent tidak boleh menciptakan kunci situs, jenis tugas, atau respons keberhasilan.
Loop yang kuat memiliki lima status: detected, authorized, submitted, verified, dan stopped. Pindah ke verified hanya setelah browser mengamati status halaman yang diharapkan. Jika tugas masih diproses, polling dalam anggaran tetap berdasarkan siklus tugas CapSolver. Berhenti pada kesalahan berulang alih-alih menciptakan loop ulang coba tak terbatas.
Pisahkan kesalahan konfigurasi dari kegagalan tantangan. Parameter yang hilang harus gagal sebelum panggilan API apa pun. Kesalahan layanan harus mempertahankan identifikasi korelasi tetapi merahasiakan kredensial dan token yang dikembalikan. Ketidakcocokan browser harus mempertahankan tangkapan layar atau asersi DOM hanya ketika bukti tersebut tidak mengandung data sensitif.
Untuk konteks protokol, pengantar MCP resmi menggambarkan batas klien-server. Batas ini berguna untuk penerapan kebijakan karena agen dapat ditolak akses ke alat kecuali permintaan memenuhi daftar izin Anda.
Layanan MCP CapSolver dibangun di atas SDK inti yang digunakan oleh integrasi Python langsung. Instal paket yang didukung browser hanya di lingkungan terisolasi, lalu paparkan alat melalui konfigurasi klien MCP Anda. Paket resmi saat ini diinstal dari GitHub bukan PyPI:
python -m venv .venv
source .venv/bin/activate
pip install "capsolver-core[playwright] @ git+https://github.com/capsolver-ai/capsolver-core.git"
playwright install chromium
Simpan CAPSOLVER_API_KEY di penyimpanan rahasia host. Jangan tempatkan nilai tersebut di JSON MCP, artikel, repositori sumber, atau argumen yang terlihat model. Alat harus menerima referensi halaman atau informasi tantangan yang terstruktur, sementara host menyuntikkan kredensial di luar konteks model.
Host MCP dapat mengevaluasi objek kebijakan sebelum mengirimkan. Konfigurasi berikut adalah kebijakan aplikasi ilustratif, bukan payload API CapSolver:
{
"allowedDomains": ["staging.example.com"],
"allowedCaptchaTypes": ["cloudflare"],
"maxAttempts": 2,
"timeoutSeconds": 120,
"requireHumanReviewForStateChange": true,
"logToken": false
}
Validasi file ini dengan pemuat konfigurasi Anda saat startup. Tolak bidang yang tidak dikenal sehingga kesalahan ketik tidak secara diam-diam menonaktifkan kontrol.
Ketika aplikasi Anda sudah mengetahui URL situs dan kunci situs, CapSolver mendokumentasikan AntiTurnstileTaskProxyLess. Bidang tugas yang diperlukan adalah type, websiteURL, dan websiteKey; metadata.action dan metadata.cdata opsional ketika nilai-nilai tersebut ada pada widget.
import os
import time
import requests
API = "https://api.capsolver.com"
def solve_turnstile(website_url: str, website_key: str) -> str:
client_key = os.environ["CAPSOLVER_API_KEY"]
create = requests.post(
f"{API}/createTask",
json={
"clientKey": client_key,
"task": {
"type": "AntiTurnstileTaskProxyLess",
"websiteURL": website_url,
"websiteKey": website_key,
},
},
timeout=30,
).json()
if create.get("errorId"):
raise RuntimeError(create.get("errorDescription", "createTask failed"))
task_id = create["taskId"]
deadline = time.monotonic() + 120
while time.monotonic() < deadline:
result = requests.post(
f"{API}/getTaskResult",
json={"clientKey": client_key, "taskId": task_id},
timeout=30,
).json()
if result.get("errorId"):
raise RuntimeError(result.get("errorDescription", "getTaskResult failed"))
if result.get("status") == "ready":
return result["solution"]["token"]
time.sleep(3)
raise TimeoutError("Turnstile task exceeded the polling budget")
Kode ini diperiksa sintaksnya tetapi tidak dijalankan dengan kredensial dalam artikel ini. Terapkan token yang dikembalikan hanya di dalam alur kerja yang diotorisasi, lalu verifikasi status halaman yang dihasilkan.
Jalur pemulihan MCP terbaik adalah kecil cukup untuk diaudit: satu domain yang disetujui, satu jenis tugas yang didokumentasikan, satu anggaran ulang coba, dan satu pengecekan halaman. Perluas cakupan hanya setelah log menunjukkan mengapa kegagalan terjadi. Tinjau FAQ CapSolver dan artikel otomasi terkait https://www.capsolver.com/blog/ saat merencanakan dukungan operasional.
Untuk alur kerja agen yang diotorisasi, CapSolver dapat menjadi komponen pengenalan, sementara aplikasi Anda tetap bertanggung jawab atas izin, penanganan sesi, validasi, dan berhenti dengan aman.
P: Apakah MCP sendiri menyelesaikan Cloudflare Turnstile?
Tidak. MCP mendefinisikan pola koneksi alat; layanan CapSolver yang dikonfigurasi melakukan pengenalan sementara klien mengontrol deteksi, parameter, dan penggunaan hasil.
P: Apakah agen dapat memanggil alat di situs mana pun?
Tidak. Batasi panggilan ke situs dan tindakan yang Anda izinkan untuk otomasi, dan berhenti ketika izin tidak jelas.
P: Apa yang membuktikan alur kerja berhasil?
Browser harus mengamati status halaman setelah verifikasi yang diharapkan; token yang dikembalikan sendiri tidak cukup.
P: Apakah token muncul di log?
Tidak. Pertimbangkan kredensial dan token yang dikembalikan sebagai rahasia dan catat hanya metadata operasional yang telah dihilangkan.
Bangun pemecah Cloudflare Turnstile Scrapy dengan penyerahan sesi CapSolver, middleware pengunduh, batas coba ulang, dan verifikasi konten.

Panduan perbaikan berbasis trace untuk agen Cursor yang terkena Cloudflare, berfokus pada parameter Turnstile, validasi lalu lintas, kuki, sinyal 403/429, dan aturan henti planner.
