व्यक्तिगत जानकारी न लिखें, जैसे किसी क्लाइंट का नाम।

यह पृष्ठ अंग्रेज़ी से अनूदित है। अंग्रेज़ी संस्करण आधिकारिक है — यदि कुछ गलत लगे, तो अंग्रेज़ी संस्करण देखें। EN

AI एजेंट जोड़ना (MCP)

Claude, ChatGPT, Cursor या अपने एजेंट को MCP के माध्यम से अपने Business वर्कस्पेस से जोड़ें, ताकि वह क्लाइंट के दस्तावेज़ों से DS-160 फॉर्म तैयार करे और क्लाइंट लिंक भेजे।

किसी इमिग्रेशन फर्म का अपना AI एजेंट MCP (Model Context Protocol) के माध्यम से उसके DS160.io वर्कस्पेस में काम कर सकता है। क्लाइंट के दस्तावेज़ों या ईमेल से एजेंट एक फॉर्म बना सकता है, जो उत्तर उसे मिलें उन्हें भर सकता है, जाँच सकता है कि अभी क्या बाकी है, और बाकी भरने के लिए क्लाइंट को एक लिंक भेज सकता है। इसके बाद आपका स्टाफ़ आवेदन जाँचता है और स्वयं CEAC पर उस पर हस्ताक्षर करता है।

एजेंट एक Business वर्कस्पेस से जुड़ता है और केवल वही कर सकता है जिसकी आप अनुमति देते हैं। वह जो कुछ भी कर सकता है, वह DS160.io API का भी एक एंडपॉइंट है।

शुरू करने से पहले

  • एक Business वर्कस्पेस। MCP Business वर्कस्पेस पर उपलब्ध है।
  • स्वामी या एडमिन की पहुँच। केवल वर्कस्पेस के स्वामी और एडमिन ही API कुंजियाँ बना सकते हैं या किसी कनेक्शन की अनुमति दे सकते हैं।
  • एक MCP क्लाइंट। Claude Code, Cursor, VS Code, Codex और Windsurf API कुंजी से जुड़ते हैं। claude.ai और ChatGPT DS160.io में साइन इन करके जुड़ते हैं।

सर्वर का पता है:

https://www.ds160.io/api/mcp

यही पता इस्तेमाल करें, भले ही आपके वर्कस्पेस का अपना डोमेन हो।

API कुंजी से जोड़ें

  1. कार्यक्षेत्र सेटिंग्स → टीम और एक्सेस → API कुंजियाँ खोलें और API कुंजी बनाएँ पर क्लिक करें।
  2. कुंजी का नाम एजेंट के नाम पर रखें (उदाहरण के लिए Claude Code, इनटेक टीम), MCP प्रीसेट चुनें और कुंजी बनाएँ। प्रीसेट runs:write को छोड़कर हर scope चुनता है; जिस scope की एजेंट को ज़रूरत नहीं है, उसे हटा दें।
  3. सीक्रेट कॉपी करें। यह ds160_sk_ से शुरू होता है और केवल एक बार दिखाया जाता है।
  4. सर्वर को अपने क्लाइंट में जोड़ें, सीक्रेट को Authorization हेडर में रखकर। Claude Code में:
claude mcp add --transport http ds160 https://www.ds160.io/api/mcp --header "Authorization: Bearer ds160_sk_…"

दूसरे क्लाइंट यही पता और हेडर अपनी सेटिंग्स में लेते हैं। Cursor में (.cursor/mcp.json):

{
    "mcpServers": {
        "ds160": {
            "url": "https://www.ds160.io/api/mcp",
            "headers": { "Authorization": "Bearer ds160_sk_…" }
        }
    }
}

VS Code में (.vscode/mcp.json), वही url और headers "servers" के अंतर्गत "type": "http" के साथ जोड़ें। सीक्रेट को उन फ़ाइलों से बाहर रखें जिन्हें आप commit करते हैं: जहाँ आपका क्लाइंट environment variables या सीक्रेट इनपुट का समर्थन करता हो, वहाँ उसका उपयोग करें।

claude.ai या ChatGPT जोड़ें

claude.ai और ChatGPT कोई कुंजी नहीं भेजते। वे इसके बजाय DS160.io में साइन इन करके जुड़ते हैं:

  1. claude.ai या ChatGPT में https://www.ds160.io/api/mcp को custom connector के रूप में जोड़ें।
  2. पूछे जाने पर अपने खाते से DS160.io में साइन इन करें।
  3. वह Business वर्कस्पेस चुनें जिसमें एजेंट काम करेगा।
  4. वह जो अनुमतियाँ माँगता है उनकी समीक्षा करें, फिर अनुमति देने के लिए क्लिक करें।

इसके बाद एजेंट उस वर्कस्पेस में आपकी ओर से कार्य करता है। किसी कनेक्शन की अनुमति देने के लिए आपको वर्कस्पेस का स्वामी या एडमिन होना चाहिए।

Scope: हर एक क्या अनुमति देता है

Scopeएजेंट क्या कर सकता है
forms:readफॉर्म की सूची देखना, किसी फॉर्म का नाम और स्थिति पढ़ना, जाँचना कि क्या बाकी है, किसी सबमिशन पर नज़र रखना
forms:writeफॉर्म बनाना (और पढ़ना)
forms:cloneकिसी मौजूदा फॉर्म को नए फॉर्म में कॉपी करना
client-links:writeआवेदकों को भेजने के लिए क्लाइंट लिंक बनाना
answers:readकिसी फॉर्म के उत्तर पढ़ना
answers:writeकिसी फॉर्म के उत्तर लिखना और हटाना
runs:writeCEAC पर सबमिशन शुरू करना और उस पर नज़र रखना

answers:read आवेदकों का व्यक्तिगत डेटा DS160.io से बाहर भेजता है। एजेंट जो नाम, जन्मतिथियाँ, पासपोर्ट संख्याएँ, यात्रा इतिहास और हर दूसरा DS-160 उत्तर पढ़ता है, वह एजेंट को और उसे चलाने वाले को, जैसे किसी AI प्रदाता को, दिया जाता है। अपने क्लाइंट्स के डेटा के नियंत्रक के रूप में आपका वर्कस्पेस तय करता है कि इसकी अनुमति है या नहीं, और DS160.io से बाहर जाने के बाद उस डेटा के लिए वही उत्तरदायी है (देखें गोपनीयता नीति और डेटा प्रसंस्करण करार)। यदि एजेंट को केवल फॉर्म भरने हैं, तो answers:read न दें: केवल answers:write के साथ वह उत्तरों को वापस पढ़े बिना लिख सकता है।

एजेंट क्या कर सकता है और क्या नहीं

  • वह फॉर्म तैयार कर सकता है: उसे बना सकता है, क्लाइंट ने जो भेजा उससे उत्तर भर सकता है, देख सकता है कि कौन-से प्रश्न अभी बाकी हैं या अस्वीकार होंगे, और बाकी के लिए क्लाइंट को लिंक भेज सकता है।
  • वह जो भी उत्तर लिखता है उसकी जाँच होती है, वैसे ही जैसे फॉर्म एडिटर जाँचता है। टेक्स्ट बड़े अक्षरों (capitals) में सहेजा जाता है, जब तक कि प्रश्न अंग्रेज़ी के बाहर के अक्षरों की अनुमति न दे। जो उत्तर सही नहीं बैठता, वह एक कारण के साथ अस्वीकार किया जाता है, और बैच के बाकी उत्तरों पर कोई असर नहीं पड़ता।
  • हर बदलाव दर्ज होता है। फॉर्म का परिवर्तन इतिहास हर बदलाव को कुंजी के लिए “API key नाम” और कनेक्शन के लिए “सदस्य via एजेंट” के रूप में दिखाता है।
  • वह हस्ताक्षर या सबमिट नहीं कर सकता। एजेंट द्वारा शुरू किया गया सबमिशन हमेशा हस्ताक्षर से पहले रुकता है, वर्कस्पेस की सेटिंग चाहे जो हो: एक व्यक्ति आवेदन जाँचता है और CEAC पर उस पर हस्ताक्षर करता है (देखें हस्ताक्षर से पहले समीक्षा)।
  • वह CEAC के कैप्चा नहीं भर सकता। सबमिशन के इंतज़ार के दौरान एक व्यक्ति उन्हें DS160.io में भरता है; सबमिशन एजेंट को बताता है कि कब और कहाँ किसी व्यक्ति की ज़रूरत है।
  • फॉर्म बनाने का बिल लगता है, ऐप में फॉर्म बनाने की तरह ही: बनाया गया या क्लोन किया गया हर फॉर्म एक बनाए गए फॉर्म के रूप में गिना जाता है।
  • वह केवल अपने वर्कस्पेस में काम करता है। वह दूसरे वर्कस्पेस नहीं देख सकता, और किसी दूसरे वर्कस्पेस का फॉर्म “नहीं मिला” के रूप में बताया जाता है।

टूल

टूलयह क्या करता हैScope
list_formsवर्कस्पेस के फॉर्म की सूची, सबसे नया पहलेforms:read
get_formकिसी एक फॉर्म का नाम, स्थिति और सहमति पढ़ता हैforms:read
create_formएक फॉर्म बनाता है (प्रति बनाए गए फॉर्म बिल)forms:write
clone_formकिसी फॉर्म को नए फॉर्म में कॉपी करता है, चाहें तो कुछ सेक्शन छोड़करforms:clone
create_client_linkकिसी फॉर्म के लिए क्लाइंट लिंक बनाता हैclient-links:write
search_docsइन दस्तावेज़ों में खोजता है, प्रति कुंजी या कनेक्शन दिन में 200 खोजकोई भी
describe_form_pagesफॉर्म के पेज और हर प्रश्न की सूची देता है: उसका उत्तर पथ, प्रकार, क्या वह आवश्यक है, ड्रॉपडाउन के मान और हर उत्तर से खुलने वाले प्रश्न, साथ में हर उत्तर प्रकार का JSONकोई भी
get_answersकिसी फॉर्म के उत्तर पढ़ता है, पूरे फॉर्म के लिए या एक पेज के लिएanswers:read
set_answersप्रति कॉल 200 तक उत्तर क्रम से लिखता है: हर उत्तर लिखा जाता है, हटाया जाता है (मान null) या एक कोड और कारण के साथ अस्वीकार किया जाता हैanswers:write
get_form_progressहर सेक्शन के लिए: उसकी स्थिति, बिना उत्तर वाले आवश्यक प्रश्न और पथ के अनुसार समस्याएँ; और क्या फॉर्म पूरा हैforms:read, answers:read या answers:write
start_runचुने गए कांसुलेट के लिए CEAC पर सबमिशन शुरू करता है; हस्ताक्षर से पहले रुकता हैruns:write
get_runकिसी सबमिशन की स्थिति, वह कहाँ है इसका सारांश, क्या किसी व्यक्ति की ज़रूरत है, और उसका लिंकruns:write या forms:read

पहुँच निरस्त करना

  • एक कुंजी: इसे कार्यक्षेत्र सेटिंग्स → टीम और एक्सेस → API कुंजियाँ में निरस्त करें। एजेंट की अगली कॉल अस्वीकार कर दी जाती है।
  • एक कनेक्शन (claude.ai, ChatGPT): इसे खाता और सुरक्षा में, या पूरे वर्कस्पेस के लिए कार्यक्षेत्र सेटिंग्स में निरस्त करें। दोनों मौजूदा कनेक्शन की सूची दिखाते हैं।

अगर कोई कुंजी लीक हुई हो सकती है या कोई एजेंट अब इस्तेमाल नहीं होता, तो तुरंत निरस्त करें।

एजेंट को आवेदक की दी गई जानकारी तक सीमित रखें

DS-160 पर आवेदक हस्ताक्षर करता है, जो घोषित करता है कि हर उत्तर सत्य है। अपने एजेंट को बताएँ कि वह केवल उसी से उत्तर दे जो आवेदक ने आपको दिया है (उनके दस्तावेज़, ईमेल और उत्तर), और कभी भी अनुमान न लगाए या उत्तर न गढ़े। जहाँ वह निश्चित न हो, वहाँ उसे प्रश्न खाली छोड़ना चाहिए, ताकि get_form_progress उसे बाकी के रूप में दिखाए और क्लाइंट या आपका स्टाफ़ उसका उत्तर दे। किसी के हस्ताक्षर करने से पहले फॉर्म की समीक्षा करें।

समस्या निवारण

समस्याक्या करें
क्लाइंट कहता है कि वह जुड़ नहीं सकता, या 401 मिलता हैजाँचें कि पता https://www.ds160.io/api/mcp है और हेडर पूरे सीक्रेट के साथ Authorization: Bearer <secret> है। निरस्त की गई कुंजी फिर से इस्तेमाल नहीं हो सकती: नई बनाएँ।
कोई टूल कहता है कि कोई scope नहीं हैकुंजी या कनेक्शन के पास वह scope नहीं है। उस scope के साथ एक कुंजी बनाएँ (या फिर से जोड़ें और उसकी अनुमति दें), फिर पुरानी को निरस्त करें।
कोई उत्तर अस्वीकार होता हैउसका कारण पढ़ें। सही पथ और ड्रॉपडाउन द्वारा स्वीकार किए जाने वाले मानों के लिए describe_form_pages का उपयोग करें।
start_run अस्वीकार होता हैget_form_progress हर सेक्शन में बताता है कि क्या बाकी है या गलत है। उसे भरें, फिर सबमिशन दोबारा शुरू करें। अगर फॉर्म का कोई सबमिशन पहले से चल रहा है, तो get_run से उस पर नज़र रखें।
सबमिशन needsPerson के साथ रुका हैकोई व्यक्ति DS160.io में सबमिशन का लिंक खोलकर कैप्चा भरता है। सबमिशन हस्ताक्षर के लिए तैयार होने पर कोई व्यक्ति आवेदन जाँचता है और CEAC पर उस पर हस्ताक्षर करता है।