
Rajinder Singh
Deep Learning Researcher

FetchURL वेब सामग्री प्राप्त कर सकता है, लेकिन एक कार्य प्रवाह को एक 403 त्रुटि, खाली आउटपुट, एक चुनौती पृष्ठ, या अपेक्षित साक्ष्य की कमी वाली सामग्री को स्वीकृति चरण से पहले अस्वीकृत करना चाहिए।Kimi Code CLI फाइलें पढ़ सकता है, शेल कमांड चला सकता है, वेब पृष्ठ डाउनलोड कर सकता है, और MCP उपकरणों का उपयोग कर सकता है। यह उपयोगकर्ता-अनुमोदित वेब सामग्री पर निर्भर कोडिंग कार्यों के लिए उपयोगी है। कठिन मामला हमेशा एक कठिन नेटवर्क विफलता नहीं होता है। एक अनुरोध एक 403, लगभग खाली बॉडी, या एक चुनौती पृष्ठ लौटा सकता है जो एक ढीले नियमों वाले एजेंट के लिए सामग्री के रूप में दिखाई दे सकता है।
एक विश्वसनीय कार्य प्रवाह एजेंट के संदर्भ में प्रवेश करने से पहले इस परिणाम को वर्गीकृत करना चाहिए। जब विफलता एक अनुमोदित वातावरण में एक समर्थित CAPTCHA होती है, तो CapSolver एक नियंत्रित बरामदी क्षमता के रूप में एक MCP सीमा के पीछे रह सकता है। यह असीमित पुनर्प्रयास या अनुमति के स्थानापन्न के रूप में नहीं होना चाहिए।
Kimi Code CLI में CAPTCHA निपटान का अर्थ है कि वेब अनुरोध अपेक्षित साक्ष्य उत्पन्न नहीं करता है, अनुमोदित और समर्थित चुनौती को एक नियंत्रित उपकरण में रूट करना, फिर से पृष्ठ की पुष्टि करना। यह प्रत्येक डाउनलोड विफलता को CAPTCHA के रूप में नहीं मानता है या मॉडल को उपकरण कॉल करने के लिए बार-बार अनुमति नहीं देता है जब तक कुछ बदल नहीं जाता।
आधिकारिक Kimi Code भंडार में वेब-पेज डाउनलोड, MCP, कौशल और प्लगइन के साथ CLI की क्षमताओं की सूची है। इसके निर्मित उपकरण संदर्भ में FetchURL के साथ एक url इनपुट है और पृष्ठ सामग्री इसका आउटपुट है। HTML को बॉडी पाठ में बदल दिया जाता है, जबकि साधारण पाठ और मार्कडाउन को पारित कर दिया जाता है।
यह संधि जानबूझकर छोटी है। यह यह गारंटी नहीं देता कि वापसी पाठ अभिप्रेत दस्तावेज है, न ही एक संरचित { status, text } उत्तर की परिभाषा करता है। यदि एक होस्ट वर्चुअल एपीआई एचटीटीपी स्थिति या परिवहन त्रुटियां प्रस्तुत करता है, तो एडैप्टर में उन्हें सामान्य बनाएं। फिर एजेंट के परिणाम के उपभोग से पहले परिवहन साक्ष्य और सामग्री अर्थ की पुष्टि करें।
| सीमा | इनपुट | आउटपुट | रोकने की स्थिति |
|---|---|---|---|
| फेच एडैप्टर | URL और अपेक्षित साक्ष्य | सामान्य स्थिति, पाठ, और त्रुटि | अमान्य URL, अंतिम HTTP स्थिति, या नीति अस्वीकृति |
| परिणाम वैधानिक | सामान्य डाउनलोड परिणाम | accepted, recoverable, या terminal |
असमर्थ या अस्पष्ट विफलता |
| MCP बरामदी | अनुमोदित URL, चुनौती साक्ष्य, प्रयास संख्या | संरचित बरामदी परिणाम | अनुमति की कमी, असमर्थ चुनौती, अंतिम उपकरण त्रुटि, या समाप्ति |
| सत्यापन फेच | समान URL और सामग्री नियम | सत्यापित सामग्री या विफलता साक्ष्य | एक प्रयास के बाद अपेक्षित सामग्री अभी भी अनुपस्थित |
इस विभाजन ने मॉडल के लिए एक छोटा निर्णय अंतराल प्रदान किया। यह केवल जब वैधानिक ने एक बरामदी अवस्था उत्पन्न की होगी, तभी बरामदी की मांग कर सकता है; नियंत्रक, न कि मॉडल, बजट के नियम को लागू करता है।
इस पैटर्न का उपयोग केवल विज्ञापन या अनुमोदित ऑटोमेशन के लिए करें। तकनीकी पहुंच निजी, सीमित, संवेदनशील या अनुमोदित डेटा के लिए अनुमति नहीं देती है। बरामदी पथ को सक्रिय करने से पहले लक्ष्य की शर्तों, लागू नीतियों, डेटा नियमों और दर सीमाओं की समीक्षा करें।
आपके पास होना चाहिए:
capsolver-core पैकेज के लिए Python 3.10 या नए।capsolver-core और capsolver-mcp पैकेज, CapSolver MCP सेवा गाइड से।.kimi-code/mcp.json में कमिट नहीं करें।Kimi के आधिकारिक MCP कॉन्फ़िगरेशन गाइड में उपयोगकर्ता-स्तर और परियोजना-स्तर के mcp.json फाइलें समर्थित हैं। परियोजना कॉन्फ़िगरेशन को विश्वास करें, और व्यक्तिगत MCP उपकरण कॉल को अनुमोदन की आवश्यकता हो सकती है। इस अनुमोदन सीमा को बनाए रखें: व्यापक वाइल्डकार्ड नियमों से बचें, सर्वर कमांड की समीक्षा करें, और केवल आवश्यक उपकरणों की अनुमति दें।
इस लेख के लिए अलगाव परीक्षण में Kimi Code CLI 0.38.0, capsolver-core 0.1.0, और capsolver-mcp 0.1.0 का उपयोग किया गया था। Python 3.12 पर 26 अगस्त 2026 को, एक असीमित स्थापना ने MCP 2.1.1 चुना, जबकि वर्तमान CapSolver MCP पैकेज ने MCP 1.x FastMCP मॉड्यूल का आयात किया। mcp<2 के साथ पिन करने से MCP 1.29.1 उत्पन्न हुआ और इस अलगाव फिक्सचर में दस्तावेजीकृत कमांड वापस आ गई।
इस पिन को एक तारीख वाला अस्थायी समाधान के रूप में लें, न कि एक लंबे समय तक आवश्यकता। वर्तमान आधिकारिक पैकेज देखें और जब उनके निर्भरता सीमा MCP 2.x के समर्थन करते हैं, तो इसे हटा दें।
CapSolver को Kimi Code के मानक MCP कॉन्फ़िगरेशन के माध्यम से जोड़ा जा सकता है; यह एक मूल लिमिटेड Kimi एकीकरण का दावा नहीं है। एक अलगाव वाले वातावरण बनाएं और दस्तावेजीकृत पैकेज स्थापित करें:
python3.12 -m venv .venv-capsolver-mcp
.venv-capsolver-mcp/bin/python -m pip install \
"mcp<2" \
"capsolver-core @ git+https://github.com/capsolver/capsolver-core-python.git" \
"capsolver-mcp @ git+https://github.com/capsolver/capsolver-mcp.git"
.venv-capsolver-mcp/bin/capsolver-mcp --help
अपने CI सीक्रेट स्टोर या स्थानीय प्रक्रिया पर्यावरण में CAPSOLVER_API_KEY सेट करें। फिर एक परियोजना .kimi-code/mcp.json जैसा उपयोग करें:
{
"mcpServers": {
"capsolver": {
"command": "/absolute/path/to/.venv-capsolver-mcp/bin/python",
"args": ["-m", "capsolver_mcp"],
"startupTimeoutMs": 10000,
"toolTimeoutMs": 30000,
"enabledTools": [
"detect_captchas",
"solve_captcha",
"solve_on_page",
"get_balance",
"get_supported_captchas"
]
}
}
}
अपने सीक्रेट मैनेजर द्वारा CAPSOLVER_API_KEY पहले से आपूर्ति करे गए प्रक्रिया से Kimi शुरू करें; MCP उपप्रक्रिया इस पर्यावरण को विरासत में प्राप्त करती है। Kimi एक MCP सर्वर के लिए env वस्तु का समर्थन करता है, लेकिन एक वास्तविक कुंजी को परियोजना फाइल में लिखना स्रोत-नियंत्रण खतरा पैदा कर सकता है। यदि आपके डेप्लॉयमेंट को प्रक्रिया सीक्रेट्स विरासत में नहीं मिलते, तो एक सुरक्षित रनटाइम कॉन्फ़िगरेशन का उपयोग करें।
Kimi खोजे गए उपकरणों के साथ सर्वर नाम को पूर्वसर्ग करता है, इसलिए मॉडल को नाम जैसे mcp__capsolver__detect_captchas दिखाई देते हैं। इस गाइड के लिए स्थानीय हैंडशेक ने सभी पांच दस्तावेजीकृत उपकरणों की खोज की पुष्टि की। इसे वास्तविक अनुमोदित क्रेडेंशियल या अनुमोदित चुनौती फिक्सचर के बिना एक बार बरामदी करने से पहले इसे रोक दिया गया।
कार्य प्रवाह शुरू होने से पहले, get_supported_captchas कॉल करें या अपने कंट्रोलर में संस्करण-संगत अनुमति सूची लागू करें। इस एजेंट कार्य प्रवाह के लिए, अनुमति सूची केवल reCAPTCHA v2, reCAPTCHA v3 और इसके एंटरप्राइज वेरिएंट, और Cloudflare Turnstile तक सीमित रखें। यदि डिटेक्शन कुछ अन्य चीज उत्पन्न करता है, तो मानव समीक्षा के लिए रुकें।
CapSolver बोनस कोड का उपयोग करें
अपने ऑटोमेशन बजट को तुरंत बढ़ाएं!
CapSolver खाता में जमा करते समय बोनस कोड CAP26 का उपयोग करें ताकि प्रत्येक जमा पर 5% बोनस मिले — कोई सीमा नहीं।
अपने CapSolver डैशबोर्ड में अभी बोनस कोड का उपयोग करें
डेटा रिट्रीवल मेमोरी, सारांशकर्ता, या कोडिंग निर्णय तक पहुंचने से पहले एक डाउनलोड परिणाम की जांच करें। एक विश्वसनीय वर्गीकरण विभिन्न स्वतंत्र संकेतों की जांच करता है:
निम्न जांच किए गए जावास्क्रिप्ट एक एडैप्टर-स्तर का उदाहरण है। इसका { status, text } ऑब्जेक्ट एक सामान्य एप्लिकेशन संधि है, न कि बूटस्ट्रैप FetchURL स्कीमा:
const CHALLENGE_MARKERS = [
/verify you are human/i,
/captcha/i,
/cf-chl-/i,
/g-recaptcha/i,
/cf-turnstile/i,
];
export function classifyFetchResult(result, expectedTerms = []) {
const status = Number(result?.status ?? 0);
const text = String(result?.text ?? "").trim();
if (status === 403) {
return { kind: "recoverable", reason: "http_403", status };
}
if (status < 200 || status >= 400) {
return { kind: "terminal", reason: "unexpected_http_status", status };
}
if (text.length < 80) {
return { kind: "recoverable", reason: "empty_or_thin_content", status };
}
if (CHALLENGE_MARKERS.some((marker) => marker.test(text))) {
return { kind: "recoverable", reason: "challenge_page", status };
}
const missingTerms = expectedTerms.filter(
(term) => !text.toLowerCase().includes(term.toLowerCase()),
);
if (missingTerms.length > 0) {
return { kind: "recoverable", reason: "expected_content_missing", status, missingTerms };
}
return { kind: "accepted", reason: "expected_content_present", status };
}
एक मालिक फिक्सचर के साथ बाध्यता और मार्कर नियंत्रित करें, न कि अनियमित तीसरे-पक्ष पृष्ठों के साथ। एक मार्कर मिलान साक्ष्य है, न कि प्रगति की अनुमति। URL मूल, स्थिति वर्ग, सामग्री हैश, मिलान नियम और ट्रेस आईडी को रिकॉर्ड करें, लेकिन लॉग में पृष्ठ डेटा और प्रामाणिकता को लाइट करें।
व्यापक निदान के लिए, MCP CAPTCHA त्रुटि गाइड बताता है कि परिवहन, पता लगाना, हल करना और एंजेक्शन विफलताओं को कैसे अलग करें। Kimi की MCP सीमा को असीमित प्राकृतिक-भाषा निर्देश के बजाय संरचित वर्गीकरण प्राप्त करना चाहिए, जैसे "जारी रखें।"
एक सीमित नियंत्रक के पास केवल चार अंतिम परिणाम होने चाहिए: स्वीकृत, बरामदी और पुष्टि, रुका हुआ, या मानव आवश्यक। यह कभी-कभी एक MCP कॉल बिना फेंके बिना सफलता के निष्कर्ष नहीं निकालना चाहिए।
export async function runBoundedRecovery({
fetchPage,
recoverThroughMcp,
url,
expectedTerms,
authorized,
maxRecoveryAttempts = 1,
}) {
const evidence = [];
let recoveryAttempts = 0;
const first = await fetchPage(url);
const firstCheck = classifyFetchResult(first, expectedTerms);
evidence.push({ stage: "initial_fetch", check: firstCheck });
if (firstCheck.kind === "accepted") {
return { state: "accepted", recoveryAttempts, evidence };
}
if (firstCheck.kind === "terminal") {
return { state: "stopped", stopReason: firstCheck.reason, recoveryAttempts, evidence };
}
if (!authorized) {
return { state: "human_required", stopReason: "authorization_required", recoveryAttempts, evidence };
}
if (maxRecoveryAttempts < 1) {
return { state: "stopped", stopReason: "recovery_budget_exhausted", recoveryAttempts, evidence };
}
recoveryAttempts += 1;
const recovery = await recoverThroughMcp({
url,
reason: firstCheck.reason,
attempt: recoveryAttempts,
});
evidence.push({ stage: "mcp_recovery", result: recovery });
if (recovery?.status !== "recovered") {
return {
state: recovery?.retryable ? "human_required" : "stopped",
stopReason: recovery?.errorCode ?? "recovery_failed",
recoveryAttempts,
evidence,
};
}
const second = await fetchPage(url);
const secondCheck = classifyFetchResult(second, expectedTerms);
evidence.push({ stage: "verification_fetch", check: secondCheck });
if (secondCheck.kind === "accepted") {
return { state: "recovered_and_verified", recoveryAttempts, evidence };
}
return {
state: "human_required",
stopReason: "verification_failed_after_recovery",
recoveryAttempts,
evidence,
};
}
recoverThroughMcp एडैप्टर एक अनुमोदित ऑर्केस्ट्रेशन लेयर द्वारा दस्तावेजीकृत CapSolver उपकरण को बुलाता है। इसके इनपुट में अनुमोदित URL, पता लगाए गए चुनौती साक्ष्य, और प्रयास संख्या शामिल होना चाहिए। इसके आउटपुट में सफलता, एक लाइट करे गए त्रुटि कोड, और पुनर्प्रयास की संभावना को सामान्य बनाएं। एम्बेडेड सेवा-विशिष्ट कार्य इन एडैप्टर में रखें और उन्हें वर्तमान आधिकारिक दस्तावेज के साथ वैध करें, न कि मॉडल को क्षेत्रों के आविष्कार के लिए कहें।
नियंत्रक के दूसरे डाउनलोड करना अनिवार्य है। इसे पहले अनुरोध के समान अपेक्षित शब्दों और सामग्री नियमों के साथ पुष्टि करें। टोकन या उपकरण परिणाम एक मध्यवर्ती परिणाम है; पृष्ठ सामग्री स्वीकृति साक्ष्य है।
अनुमति की कमी, URL अनुमोदित मूल सेट से बाहर होने, या वैधानिक ने अंतिम परिवहन त्रुटि लौटाने पर कोई उपकरण कॉल बिना करें। उपकरण कॉल के बाद बंद करें जब चुनौती असमर्थ हो, सेवा एक पुनर्प्रयास न करने वाली त्रुटि रिपोर्ट करे, समय बजट समाप्त हो जाए, या बैलेंस जांच विफल हो जाए। एक बार बरामदी के बाद यदि सत्यापन डाउनलोड अभी भी पतला, चुनौती या अपेक्षित सामग्री की कमी हो, तो मानव के लिए आवश्यकता होगी।
इन नियमों से संदर्भ प्रदूषण रोका जाता है। केवल स्वीकृत पृष्ठ सामग्री को Kimi कार्य इतिहास या अगले डेटा संग्रह में प्रवेश करने दें। विफल बॉडी को एक अलग रखे गए साक्ष्य रिकॉर्ड में रखें जहां छोटी अवधि तक रखा जाए और लाइट कर दिया जाए।
ऑब्जर्वेबिलिटी के कारण एक चरण के राज्य बदल गए बिना गुप्त जानकारी या पूर्ण पृष्ठ बॉडी के खुलासा के बिना बताए। एक संरचित घटना प्रत्येक संक्रमण के लिए उत्पन्न करें:
{
"traceId": "retrieval-7f2c",
"stage": "verification_fetch",
"origin": "authorized.example",
"classification": "expected_content_missing",
"recoveryAttempts": 1,
"finalState": "human_required"
}
उपयोगी क्षेत्रों में सामान्यीकृत स्थिति वर्ग, वैधानिक नियम, सामग्री लंबाई, रेडैक्टेड सामग्री हैश, MCP उपकरण का नाम, लागू समय, प्रयास गणना, और अंतिम स्थिति शामिल हैं। कभी-भी API कुंजी, पूर्ण चुनौती टोकन, संवेदनशील पृष्ठ डेटा, या एक गुप्त-धारक MCP विन्यास को लॉग न करें।
मानव-आवश्यक दर, सत्यापन-असफलता दर, और उपकरण समय सीमा पर चेतावनी सेट करें। बढ़ती 403 दर एक बदले हुए एक्सेस नीति, बर्खास्त फेच एडेप्टर, या एक चुनौती के संकेत हो सकती है, इसके बिना अकेले कारण के रूप में इसकी पर्याप्त साक्ष्य नहीं होती है। सामान्य प्रोटोकॉल संदर्भ के लिए, AI प्रणालियों में MCP क्या है देखें।
इस डिज़ाइन का उपयोग सार्वजनिक, स्वामित्व वाले या स्पष्ट रूप से अनुमति वाले स्वचालन के लिए करें। लागू शर्तों, एक्सेस नियंत्रण, रोबोट्स निर्देश, दर सीमा, डेटा न्यूनतमता, और बनाए रखने की आवश्यकता का ध्यान रखें। किसी भी निजी या सीमित सामग्री के लिए CAPTCHA उपकरण का उपयोग न करें या किसी साइट द्वारा स्पष्ट रूप से अनुमति वापस ले लेने के बाद जारी रखने के लिए न करें।
एक लक्ष्य अनुमति सूची, प्रत्येक अनुमति रिकॉर्ड के मालिक, एक अवधि तिथि, और एक मार देने वाला स्विच बनाए रखें। कम अनुरोध दर का उपयोग करें और जब अनुमति हो तो स्वीकृत सार्वजनिक सामग्री को कैश करें। जब कार्यप्रवाह में मूल, उद्देश्य, डेटा श्रेणी या क्रियान्वयन आवृत्ति बदलती है, तो नई मंजूरी की आवश्यकता होती है।
MCP परत कम से कम उपकरण सेट और कम अधिकार अनुमोदन का उपयोग करना चाहिए। CapSolver गाइड फॉर AI एजेंट्स द्वारा समर्थित एजेंट वर्कफ़्लो का वर्णन किया गया है; आपके कंट्रोलर के पास अनुमति, प्रयास सीमा, आउटपुट सत्यापन और रोकने की जिम्मेदारी है।
विश्वसनीय Kimi Code CLI CAPTCHA हैंडलिंग की शुरुआत गलत सफलता को अस्वीकार करने से होती है। FetchURL साक्ष्य को सामान्यीकृत करें, अपेक्षित सामग्री की जांच करें, लक्ष्य की अनुमति दें, एक समर्थित बरीफिंग की अनुमति दें, फिर से फेच और सत्यापित करें। कोई अस्पष्ट या अभी भी चुनौतित चीजें मानव समीक्षा के लिए रुक जानी चाहिए।
सामान्य MCP सीमा Kimi के वेब वर्कफ़्लो को सेवा विवरण से अलग रखती है, जबकि राज्य मशीन पुनर्प्रयास को नियंत्रित करती है और साक्ष्य को रिकॉर्ड करती है। यदि आपके स्वीकृत एजेंट वर्कफ़्लो को दस्तावेज़ीकृत CAPTCHA बरीफिंग परत की आवश्यकता होती है, तो उत्पादन में सक्रिय करने से पहले CapSolver के साथ एक स्वामित्व फिक्सचर के साथ मूल्यांकन करें।
प्रश्न: क्या किमी कोड CLI में एक निर्मित कैपसॉल्वर एंटीग्रेशन है?
नहीं। इस गाइड में किमी कोड के दस्तावेज़ीकृत सामान्य MCP कॉन्फ़िगरेशन का उपयोग करके कैपसॉल्वर MCP सर्वर से जुड़ने के लिए किया गया है; यह एक निर्मित एंटीग्रेशन या आधिकारिक साझेदारी का दावा नहीं करता है।
प्रश्न: क्या FetchURL एक HTTP स्थिति और बॉडी ऑब्जेक्ट लौटाता है?
दस्तावेज़ीकृत बिल्ट-इन टूल संधि के अनुसार नहीं। FetchURL एक URL लेता है और पृष्ठ सामग्री लौटाता है; एक होस्ट एडेप्टर को उपलब्ध ट्रांसपोर्ट त्रुटियां या स्थिति जानकारी को सामान्यीकृत करना चाहिए जब उदाहरण वर्गीकरण लागू किया जाता है।
प्रश्न: क्या प्रत्येक किमी कोड FetchURL 403 कैप्चा बरीफिंग को ट्रिगर करता है?
नहीं। 403 कई कारणों से हो सकता है, जैसे नीति या पहुंच विफलता। प्रतिक्रिया को वर्गीकृत करें, अनुमति की पुष्टि करें, समर्थित चुनौती की पहचान करें, और कारण अस्पष्ट होने पर रुक जाएं।
प्रश्न: इस एजेंट वर्कफ़्लो में कौन से चुनौती प्रकार शामिल होते हैं?
वर्तमान में दस्तावेज़ीकृत reCAPTCHA v2, reCAPTCHA v3 शामिल हैं, जिसमें एंटरप्राइज भी शामिल है, और Cloudflare Turnstile क्षमताओं तक सीमित रखें। कोई अपरिचित प्रकार पर रुकें और रनटाइम समर्थन की पुष्टि करें।
प्रश्न: एजेंट कितने CAPTCHA बरीफिंग प्रयास करना चाहिए?
इस पैटर्न में एक बरीफिंग प्रयास के बाद एक वेरिफिकेशन फेच की अनुमति है। यदि वेरिफिकेशन विफल रहता है, तो कार्यप्रवाह रुक जाता है और मानव समीक्षा के लिए अनुरोध करता है, उपकरण कॉल दोहराने के बजाय।
प्रश्न: क्या मॉडल एमसीपी प्रतिक्रिया के आधार पर बरीफिंग सफलता का निर्णय ले सकता है?
नहीं। एमसीपी प्रतिक्रिया को एक बीच के परिणाम के रूप में विचार करें; सामग्री को स्वीकार करने से पहले अनुमति प्राप्त फेच करें और अपेक्षित पृष्ठ साक्ष्य की पुष्टि करें।
जानें कैसे LangGraph एजेंट्स में reCAPTCHA हल करें CapSolver टूल्स, ToolNode राउटिंग, सुरक्षित पैरामीटर, पुनर्प्रयास और जारी रखे जा सकने वाले वर्कफ्लो डिज़ाइन के साथ।

सीखें कैसे हल करें Cloudflare Turnstile के साथ AutoGen एजेंट्स में CapSolver, टाइप की गई टूल पंजीकरण, टोकन प्रबंधन, पुनः प्रयास और सुरक्षित वर्कफ़्लो डिज़ाइन के साथ।
