Claude Desktop MCP काम नहीं कर रहा? Config और HTTP सर्वर के लिए समाधान
Claude Desktop में कोई टूल नहीं दिख रहा या "server disconnected" लिखा आ रहा है? इन जाँचों को क्रम से करें: ऐप को पूरी तरह रीस्टार्ट करें, config JSON ठीक करें, PATH और spawn npx ENOENT एरर सुधारें, फिर connectors या mcp-remote से HTTP और remote सर्वर सेट करें, और MCP Inspector तथा curl से सब कुछ जाँचें।
आपका MCP सर्वर कल तक ठीक चल रहा था। आज Claude Desktop में कोई टूल नहीं दिख रहा, "Server disconnected" का बैनर आ रहा है, या कुछ भी नहीं दिख रहा, और एक धुंधली एरर के अलावा कोई सुराग नहीं है जो किसी ओर इशारा करे। यह लगभग हर उस व्यक्ति के साथ होता है जो लोकल सर्वर जोड़ता है, और इसका कारण लगभग हमेशा इन पाँच में से एक होता है: टूटा हुआ claude_desktop_config.json, ऐसा कमांड जिसे ऐप ढूँढ नहीं पाता, ऐसा सर्वर जो stdout पर गलत टेक्स्ट प्रिंट करता है, गलत तरीके से जोड़ा गया HTTP सर्वर, या ऐसा ऐप जिसे कभी पूरी तरह रीस्टार्ट नहीं किया गया।
यह लेख हर विफलता को उसी क्रम में समझाता है जिस क्रम में आपको उन्हें जाँचना चाहिए, साथ में सटीक JSON, पाथ और कमांड दिए गए हैं जिन्हें आप सीधे पेस्ट कर सकते हैं। ऊपर से शुरू करें और जैसे ही आपके टूल दिखने लगें, वहीं रुक जाएँ। ज़्यादातर समाधानों में पाँच मिनट से कम लगते हैं।
आप क्या देख रहे हैं
सबसे संभावित कारण
यहाँ जाएँ
config बदलने के बाद कोई टूल नहीं
ऐप पूरी तरह बंद नहीं हुआ, या गलत फ़ाइल एडिट हुई
पहले बुनियादी बातें जाँचें
अमान्य JSON के बारे में लाल बैनर
ट्रेलिंग कॉमा, स्मार्ट कोट्स, अकेले बैकस्लैश
टूटा हुआ Config JSON ठीक करें
लॉग में spawn npx ENOENT
Claude को Node या npx नहीं मिल रहा
कमांड और स्टार्टअप एरर ठीक करें
लॉग में Unexpected token
सर्वर लॉग stdout पर लिखता है
Stdout साफ़ रखें
url एंट्री कुछ नहीं करती
HTTP सर्वर config फ़ाइल में नहीं जोड़े जाते
HTTP और remote सर्वर ठीक करें
💡 तुरंत जवाब: Claude Desktop को ट्रे या मेनू बार से बंद करें (सिर्फ़ विंडो नहीं), अपने config को JSON validator से चलाएँ, npx की जगह उसका absolute path लिखें, और remote सर्वर Settings, Connectors से जोड़ें, config फ़ाइल से नहीं। सिर्फ़ इतना करने से ज़्यादातर मामले ठीक हो जाते हैं।
पहले बुनियादी बातें जाँचें
JSON की एक भी लाइन छूने से पहले, सामान्य कारणों को खारिज कर लें। असफल सेटअप का सबसे बड़ा हिस्सा इन्हीं की वजह से होता है, किसी असली बग की वजह से कम।
Claude Desktop को पूरी तरह बंद करें
विंडो बंद करना ऐप को बंद करना नहीं है। Windows पर ऐप सिस्टम ट्रे में चलता रहता है, और macOS पर Cmd+Q दबाने तक चलता रहता है। Claude Desktop config सिर्फ़ लॉन्च के समय पढ़ता है, इसलिए चालू रहते हुए आपने जो भी बदलाव किए, वे नज़रअंदाज़ हो जाते हैं।
ट्रे आइकन पर राइट-क्लिक करें (या मेनू बार का इस्तेमाल करें), Quit चुनें, दो सेकंड रुकें, फिर ऐप दोबारा खोलें। हर बदलाव के बाद ऐसा करें, भले ही वह एक अक्षर का ही क्यों न हो।
सही config फ़ाइल खोलें
फ़ाइल को हाथ से ढूँढने की कोशिश न करें। Settings खोलें, Developer चुनें, और Edit Config दबाएँ। इससे वही सटीक फ़ाइल खुलती है जिसे ऐप पढ़ता है। आम तौर पर ये लोकेशन ऐसी दिखती हैं:
💡 अगर आप फ़ाइल एडिट करते हैं और कुछ नहीं बदलता, तो हो सकता है आप उस कॉपी को एडिट कर रहे हों जिसे ऐप इस्तेमाल ही नहीं करता। कुछ पैकेज्ड Windows इंस्टॉल ऐप डेटा को अलग फ़ोल्डर में भेज देते हैं। Edit Config हमेशा सही फ़ाइल खोलता है।
एक न्यूनतम सेटअप ऐसा दिखता है जो काम करता है। अगर यह लोड हो जाता है और आपकी फ़ाइल लोड नहीं होती, तो इन दोनों फ़ाइलों के बीच का अंतर ही आपका बग है।
हर लोकल सर्वर अपना लॉग लिखता है, जिसका नाम mcp-server-NAME.log होता है, और उसके साथ एक सामान्य mcp.log भी होता है। Settings, Developer में हर सर्वर यह भी दिखाता है कि वह चल रहा है या विफल हो गया है, ताकि आप एक नज़र में देख सकें कि समस्या कौन-सी एंट्री में है।
यह सब एक साथ पकड़ने का सबसे तेज़ तरीका है कि काम पार्सर से करवाया जाए। Python में पहले से एक पार्सर आता है:
python -m json.tool claude_desktop_config.json
अगर यह आपकी फ़ाइल वापस प्रिंट कर देता है, तो सिंटैक्स सही है। अगर यह लाइन नंबर के साथ एरर दिखाता है, तो सीधे उसी लाइन पर जाएँ।
Windows पाथ और बैकस्लैश
बैकस्लैश JSON का escape character है, इसलिए C:\Users\Ana अमान्य है, क्योंकि \U कोई असली escape नहीं है। आपके पास दो सुरक्षित विकल्प हैं:
हर बैकस्लैश को दोगुना करें:C:\\Users\\Ana\\notes-server\\index.js
फ़ॉरवर्ड स्लैश इस्तेमाल करें:C:/Users/Ana/notes-server/index.js
Windows लगभग हर मामले में फ़ॉरवर्ड स्लैश स्वीकार करता है, और इनमें गलती होने की संभावना भी कम होती है। JSON स्ट्रिंग के अंदर फ़ोल्डर नामों में स्पेस ठीक हैं, लेकिन पहले पाथ को टर्मिनल में जाँच लें।
कमांड और स्टार्टअप एरर ठीक करें
Config मान्य है, ऐप रीस्टार्ट हो चुका है, और सर्वर फिर भी फ़ेल हो रहा है। अब समस्या प्रोसेस में है।
spawn npx ENOENT क्यों होता है
ENOENT का मतलब है "ऐसी कोई फ़ाइल या डायरेक्टरी नहीं है।" Dock या Start menu से खोला गया Claude Desktop आपकी shell profile नहीं पढ़ता, इसलिए उसे वह PATH नहीं दिखता जो आपके टर्मिनल में होता है। अगर आपने Node nvm, fnm, asdf या Volta से इंस्टॉल किया है, तो binaries ऐसे फ़ोल्डर में होते हैं जिसकी जानकारी सिर्फ़ आपकी shell को है। कमांड आपके टर्मिनल में चलता है और ऐप के अंदर फ़ेल होता है, इसी वजह से यह इतना उलझाने वाला लगता है।
Node के लिए absolute पाथ इस्तेमाल करें
अपने टर्मिनल से पूछें कि binary असल में कहाँ है:
which npx # macOS
where npx # Windows
फिर पूरा पाथ command में पेस्ट करें। चूँकि npx को खुद node ढूँढना होता है, इसलिए env में PATH एंट्री जोड़ें जिसमें वही फ़ोल्डर शामिल हो:
node --version भी चलाकर देखें। npx से लॉन्च होने वाले कई सर्वरों को Node के हालिया LTS वर्ज़न की ज़रूरत होती है, और पुराना सिस्टम इंस्टॉल एक आम छिपा कारण है।
Windows cmd रैपर
Windows पर npx असल में npx.cmd नाम की batch फ़ाइल है, और उसे सीधे लॉन्च करने पर विफलता हो सकती है। शेल उसे सही तरीके से हल कर सके, इसके लिए उसे cmd /c में लपेटें:
यह उन लोगों के साथ होता है जो अपना सर्वर खुद लिखते हैं। stdio सर्वर stdout पर JSON-RPC messages के ज़रिए Claude से बात करता है, और वहाँ कुछ और जाने की अनुमति नहीं है। एक भी भटकी हुई console.log("server started") स्ट्रीम को बिगाड़ देती है, और ऐप Unexpected token एरर के साथ कनेक्शन तोड़ देता है।
भाषा
गलत
सही
Node.js
console.log("ready")
console.error("ready")
Python
print("ready")
print("ready", file=sys.stderr)
कोई भी
stdout पर debug आउटपुट
सब कुछ stderr या लॉग फ़ाइल में भेजें
💡 कुछ लाइब्रेरी import होते समय बैनर या deprecation warning प्रिंट करती हैं। अगर लॉग में ऐसा टेक्स्ट दिखे जो आपने नहीं लिखा, तो सर्वर को टर्मिनल में चलाएँ और पहले protocol message से पहले जो दिखता है उसे देखें।
HTTP और remote सर्वर ठीक करें
HTTP सर्वर सबसे ज़्यादा उलझन पैदा करते हैं, क्योंकि config फ़ाइल देखने में उन्हें जोड़ने की जगह लगती है। पर है नहीं।
Config फ़ाइल सिर्फ़ लोकल सर्वर चलाती है
mcpServers के अंदर की एंट्री आपकी मशीन पर एक प्रोग्राम लॉन्च करती हैं और stdin तथा stdout के ज़रिए उससे बात करती हैं। वे किसी वेब पते पर कॉल नहीं करतीं। उस ब्लॉक में "url": "https://example.com/mcp" जोड़ना HTTP से जुड़ी सबसे आम गलती है, क्योंकि ऐप उस एंट्री का इस्तेमाल कर ही नहीं सकता।
कस्टम connector जोड़ें
Remote सर्वर Connectors से जुड़ते हैं। कस्टम connectors Pro, Max, Team और Enterprise प्लान पर उपलब्ध हैं, और Team या Enterprise में किसी organization owner को पहले connector जोड़ना पड़ सकता है।
Settings खोलें और Connectors चुनें।
Add custom connector दबाएँ।
सर्वर के endpoint का HTTPS पता पेस्ट करें, जो अक्सर /mcp पर खत्म होता है।
अगर सर्वर OAuth माँगे, तो साइन इन करें।
नई चैट में टूल्स मेनू से connector चालू करें।
Streamable HTTP endpoint को लक्ष्य बनाएँ। जो सर्वर सिर्फ़ पुराने SSE transport को समझता है, वह अक्सर मेल नहीं खाता। जब connector फ़ेल हो, तो यह टेबल कारण को सीमित करने में मदद करती है:
दिखने वाली एरर
संभावित कारण
समाधान
401 या 403
टोकन गायब, एक्सपायर, या साइन इन पूरा नहीं हुआ
connector हटाएँ, दोबारा जोड़ें, OAuth प्रॉम्प्ट पूरा करें
404
गलत पाथ
/sse की जगह /mcp आज़माएँ, या सर्वर के docs देखें
Timeout या connection refused
सर्वर सिर्फ़ localhost पर सुन रहा है या firewall के पीछे है
उसे पहुँच में आने वाले HTTPS पते पर प्रकाशित करें, या ब्रिज करें
Certificate error
Self-signed या एक्सपायर्ड certificate
मान्य certificate इस्तेमाल करें
कनेक्ट होता है पर टूल नहीं दिखते
टूल लिस्ट माँगने पर सर्वर फ़ेल होता है
सर्वर के अपने लॉग देखें
जब कोई कस्टम connector कनेक्ट होने से इनकार करता है, तो सबसे आम दोषी localhost से बंधा सर्वर होता है, क्योंकि यह पता वहाँ से अलग अर्थ रखता है जहाँ से अनुरोध आता है।
mcp-remote से ब्रिज करें
जब सर्वर निजी हो, लोकल हो, या किसी header की ज़रूरत हो, तब mcp-remote पैकेज stdio ब्रिज की तरह काम करता है। Claude इसे किसी दूसरे लोकल सर्वर की तरह लॉन्च करता है, और यह ट्रैफ़िक को आपके HTTP endpoint तक भेजता है:
यहाँ दो बातें मायने रखती हैं। पहली, header लिखें तो colon के बाद कोई स्पेस न रखें, और असली वैल्यू env में रखें। Windows पर npx शुरू होने पर args के अंदर के स्पेस बिगड़ सकते हैं, और यह लेआउट उस बग से बच जाता है। दूसरी, mcp-remote में केवल-HTTP या केवल-SSE व्यवहार थोपने के विकल्प हैं, इसलिए जब डिफ़ॉल्ट negotiation गलत transport चुने, तो उसका README देखें। पिछले हिस्सों की सारी बातें अब भी लागू हैं: पूरी तरह रीस्टार्ट करें, absolute पाथ इस्तेमाल करें, लॉग पढ़ें।
Claude के बाहर सर्वर जाँचें
जब आप यह तय न कर पाएँ कि दोष सर्वर का है या ऐप का, तो ऐप को बीच से हटा दें।
MCP Inspector चलाएँ
आधिकारिक MCP Inspector किसी सर्वर से जुड़ता है और उसके टूल एक ब्राउज़र टैब में सूचीबद्ध करता है:
Accept header गायब है, या endpoint कोई दूसरा method चाहता है
Timeout
Network, firewall या DNS
Claude के अंदर PicassoIA टूल्स इस्तेमाल करें
कनेक्टर काम करने लगें, तो असली फ़ायदा उन्हें इस्तेमाल करने में है। PicassoIA एक MCP कनेक्शन देता है, ताकि Claude चैट के अंदर आपके लिए तस्वीरें और क्लिप बना सके। यह कनेक्शन चार मॉडल उपलब्ध कराता है:
जनरेशन जॉब एसिंक्रोनस होते हैं। टूल तुरंत एक prediction ID लौटाता है, और फिर Claude स्टेटस तब तक जाँचता है जब तक जॉब सफल या विफल न हो जाए। यही डिज़ाइन "यह अटक गया" वाली ज़्यादातर रिपोर्ट्स की वजह समझाता है।
जॉब अब भी रनिंग दिखा रहा है: Claude से उसी मौजूदा prediction की ID से स्टेटस जाँचने को कहें। वही प्रॉम्प्ट फिर से भेजने से सिर्फ़ दूसरा जॉब शुरू होता है।
कई जॉब एक साथ चलने पर विफलता: एक अकाउंट एक समय में अधिकतम पाँच predictions चला सकता है, और यह सीमा हर कनेक्शन में साझा होती है, इसलिए पाँच या उससे कम रखें।
कनेक्ट करने के बाद टूल गायब: टूल्स मेनू से connector चालू करें और नई चैट खोलें।
पक्का नहीं कि आपका प्लान क्या अनुमति देता है: Claude से अपने अकाउंट की जानकारी देखने को कहें, या अपने PicassoIA अकाउंट में MCP connections पेज देखें।
PicassoIA पर Claude Sonnet 5 इस्तेमाल करें
ऐसा config जो सही दिखता है और फिर भी फ़ेल होता है, तो उसे दूसरी नज़र के हवाले करें। Claude Sonnet 5 PicassoIA पर चलता है और कोड डीबग करने के लिए बना है, और यह एरर बैनर के स्क्रीनशॉट भी पढ़ सकता है।
प्रॉम्प्ट भरें। अपना config, लॉग की आख़िरी 30 लाइनें, अपना operating system, अपना Node वर्ज़न, और आपको क्या होने की उम्मीद थी, सब पेस्ट करें। पहले हर टोकन हटा दें।
स्क्रीनशॉट जोड़ें।image फ़ील्ड एरर की तस्वीर स्वीकार करता है। अगर स्केल होने के बाद टेक्स्ट धुंधला लगे, तो max_image_resolution को उसके 0.5 मेगापिक्सल डिफ़ॉल्ट से ऊपर बढ़ाएँ।
effort सेट करें। डिफ़ॉल्ट low सबसे तेज़ है। जब कई सर्वर आपस में इंटरैक्ट करते हों या कारण साफ़ न हो, तो high पर जाएँ।
सिस्टम प्रॉम्प्ट जोड़ें। कुछ ऐसा: "You are an MCP troubleshooting assistant. Return the corrected JSON first, then a short list of causes."
जनरेट करें और तुलना करें। जवाब की तुलना अपनी फ़ाइल से करें, एक बार में एक बदलाव लागू करें, और हर बदलाव के बाद ऐप को पूरी तरह रीस्टार्ट करें।
💡 कभी भी किसी चैट विंडो में लाइव टोकन न पेस्ट करें। उनकी जगह YOUR_TOKEN लिखें, और असली वैल्यू केवल अपनी लोकल फ़ाइल में वापस रखें।
आपके सर्वर चल रहे हैं, टूल दिख रहे हैं, और मुश्किल हिस्सा पीछे छूट चुका है। अब दस मिनट मज़े के हिस्से में लगाएँ। PicassoIA Image खोलें और ऐसे दृश्य का प्रॉम्प्ट लिखें जिसे आप सचमुच दीवार पर टाँगना चाहेंगे। फिर PicassoIA Image Editor Pro से उसे सुधारें, और नतीजे को PicassoIA Video से जीवंत करें।
वही प्रॉम्प्ट तीन स्टाइल में आज़माएँ, कैमरा का कोण बदलें, रोशनी को भोर से शाम में बदलें, और तुलना करें। इसमें अच्छा बनने का सबसे तेज़ तरीका है कई छोटे प्रयोग करना और वे नतीजे रखना जो आपको चौंकाएँ। जब आपको और विकल्प चाहिए हों, तो picassoia.com/en/all-models पर सभी मॉडल देखें और Picasso IA पर अपने अगले प्रोजेक्ट के लिए सही मॉडल खोजें।