20 KiB
MCP इनस्पेक्टरसह डीबगिंग
MCP इनस्पेक्टर हा एक महत्त्वाचा डीबगिंग टूल आहे जो तुम्हाला तुमच्या MCP सर्व्हरशी इंटरऍक्टिव्हली टेस्ट आणि त्रुटी शोधण्याची परवानगी देतो, पूर्ण AI होस्ट अॅप्लिकेशनशिवाय. याला "MCP साठी पोस्टमन" म्हणून विचार करा - हे विनंत्या पाठवण्यासाठी, प्रतिसाद पहाण्यासाठी आणि तुमचा सर्व्हर कसा वागत आहे हे समजून घेण्यासाठी एक दृश्य इंटरफेस प्रदान करते.
MCP इनस्पेक्टर का वापरावा?
MCP सर्व्हर तयार करताना, तुम्हाला अनेकदा खालील समस्या येतात:
- "माझा सर्व्हर चालू आहे का?" - इनस्पेक्टर कनेक्शन स्थिती दाखवतो
- "माझी साधने बरोबर नोंदणीकृत झाली आहेत का?" - इनस्पेक्टर सर्व उपलब्ध साधने यादीत दाखवतो
- "प्रतिसादाचा फॉर्मॅट काय आहे?" - इनस्पेक्टर पूर्ण JSON प्रतिसाद दाखवतो
- "ही साधन काम का करत नाही?" - इनस्पेक्टर तपशीलवार त्रुटी संदेश दाखवतो
पूर्वआवश्यकता
- Node.js 18+ स्थापित केलेले
- npm (Node.js सोबत येते)
- तपासणीसाठी एक MCP सर्व्हर (पाहा Module 3.1 - First Server)
स्थापना
पर्याय 1: npx सह चालवा (जलद चाचणीसाठी शिफारस केली आहे)
npx @modelcontextprotocol/inspector
पर्याय 2: जागतिकरित्या इंस्टॉल करा
npm install -g @modelcontextprotocol/inspector
mcp-inspector
पर्याय 3: तुमच्या प्रोजेक्टमध्ये जोडा
cd your-mcp-server-project
npm install --save-dev @modelcontextprotocol/inspector
package.json मध्ये जोडा:
{
"scripts": {
"inspector": "mcp-inspector"
}
}
तुमच्या सर्व्हरशी कनेक्ट करणे
stdio सर्व्हर (स्थानिक प्रक्रिया)
ज्या सर्व्हर्सना मानक इनपुट/आउटपुटद्वारे संवाद साधावा लागतो:
# पायथन सर्व्हर
npx @modelcontextprotocol/inspector python -m your_server_module
# Node.js सर्व्हर
npx @modelcontextprotocol/inspector node ./build/index.js
# पर्यावरण चलांसह
OPENAI_API_KEY=xxx npx @modelcontextprotocol/inspector python server.py
SSE/HTTP सर्व्हर (नेटवर्क)
ज्या सर्व्हर्स HTTP सेवा म्हणून चालतात:
-
प्रथम तुमचा सर्व्हर सुरू करा:
python server.py # सर्व्हर http://localhost:8080 वर चालू आहे -
इनस्पेक्टर लॉन्च करा आणि कनेक्ट करा:
npx @modelcontextprotocol/inspector --sse http://localhost:8080/sse
इनस्पेक्टर इंटरफेस विहंगावलोकन
इनस्पेक्टर सुरू केल्यावर, तुम्हाला वेब इंटरफेस दिसेल (साधारणपणे http://localhost:5173 वर):
┌─────────────────────────────────────────────────────────────┐
│ MCP Inspector [Connected ✅] │
├─────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ 🔧 Tools │ │ 📄 Resources│ │ 💬 Prompts │ │
│ │ (3) │ │ (2) │ │ (1) │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ │
│ │
│ ┌───────────────────────────────────────────────────────┐ │
│ │ 📋 Message Log │ │
│ │ ─────────────────────────────────────────────────── │ │
│ │ → initialize │ │
│ │ ← initialized (server info) │ │
│ │ → tools/list │ │
│ │ ← tools (3 tools) │ │
│ └───────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────┘
टूल्सची चाचणी
उपलब्ध टूल्सची यादी
- Tools टॅब क्लिक करा
- इनस्पेक्टर आपोआप
tools/listकॉल करतो - तुम्हाला नोंदणीकृत सर्व टूल्स बघायला मिळतील:
- टूल नाव
- वर्णन
- इनपुट स्कीमा (पॅरामीटर्स)
टूल वापरणे
- यादीतील टूल निवडा
- फॉर्ममध्ये आवश्यक पॅरामीटर्स भरा
- Run Tool क्लिक करा
- निकाल पॅनेलमध्ये प्रतिसाद पहा
उदाहरण: कॅल्क्युलेटर टूलची चाचणी
Tool: add
Parameters:
a: 25
b: 17
Response:
{
"content": [
{
"type": "text",
"text": "42"
}
]
}
टूल त्रुटी डीबगिंग
जेव्हा टूल अयशस्वी होते, इनस्पेक्टर दाखवतो:
Error Response:
{
"error": {
"code": -32602,
"message": "Invalid params: 'b' is required"
}
}
सामान्य त्रुटी कोड:
| कोड | अर्थ |
|---|---|
| -32700 | पार्स त्रुटी (अवैध JSON) |
| -32600 | अवैध विनंती |
| -32601 | मेथड सापडले नाही |
| -32602 | अवैध पॅराम्स |
| -32603 | अंतर्गत त्रुटी |
रिसोर्सेसची चाचणी
रिसोर्सेसची यादी
- Resources टॅब क्लिक करा
- इनस्पेक्टर
resources/listकॉल करतो - तुम्हाला दिसतील:
- रिसोर्स URI
- नावे आणि वर्णन
- MIME प्रकार
रिसोर्स वाचणे
- रिसोर्स निवडा
- Read Resource क्लिक करा
- परत आलेले कंटेंट बघा
उदाहरण निकाल:
Resource: file:///config/settings.json
Content-Type: application/json
{
"config": {
"debug": true,
"maxConnections": 10
}
}
प्रॉम्प्ट्सची चाचणी
प्रॉम्प्ट्सची यादी
- Prompts टॅब क्लिक करा
- इनस्पेक्टर
prompts/listकॉल करतो - उपलब्ध प्रॉम्प्ट टेम्प्लेट्स बघा
प्रॉम्प्ट मिळवणे
- प्रॉम्प्ट निवडा
- आवश्यक आर्ग्युमेंट्स भरा
- Get Prompt क्लिक करा
- रेंडर केलेली प्रॉम्प्ट मेसेजेस पाहा
मेसेज लॉग विश्लेषण
मेसेज लॉग सर्व MCP प्रोटोकॉल मेसेजेस दाखवतो:
14:32:01 → {"jsonrpc":"2.0","id":1,"method":"initialize",...}
14:32:01 ← {"jsonrpc":"2.0","id":1,"result":{"protocolVersion":"2025-11-25",...}}
14:32:02 → {"jsonrpc":"2.0","id":2,"method":"tools/list"}
14:32:02 ← {"jsonrpc":"2.0","id":2,"result":{"tools":[...]}}
14:32:05 → {"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"add",...}}
14:32:05 ← {"jsonrpc":"2.0","id":3,"result":{"content":[...]}}
काय पाहावे
- विनंती/प्रतिसाद जोड्या: प्रत्येक
→साठी समतुल्य←असले पाहिजे - त्रुटी संदेश: प्रतिसादांमध्ये
"error"पहा - वेळ बाबत: मोठे अंतर कामगिरीची समस्या दर्शवू शकते
- प्रोटोकॉल आवृत्ती: सर्व्हर आणि क्लायंट आवृत्तीत सहमती आवश्यक
VS कोड इंटीग्रेशन
तुम्ही थेट VS कोडमधून इनस्पेक्टर चालवू शकता:
launch.json वापरून
.vscode/launch.json मध्ये जोडा:
{
"version": "0.2.0",
"configurations": [
{
"name": "Debug with MCP Inspector",
"type": "node",
"request": "launch",
"runtimeExecutable": "npx",
"runtimeArgs": [
"@modelcontextprotocol/inspector",
"python",
"${workspaceFolder}/server.py"
],
"console": "integratedTerminal"
},
{
"name": "Debug SSE Server with Inspector",
"type": "chrome",
"request": "launch",
"url": "http://localhost:5173",
"preLaunchTask": "Start MCP Inspector"
}
]
}
Tasks वापरून
.vscode/tasks.json मध्ये जोडा:
{
"version": "2.0.0",
"tasks": [
{
"label": "Start MCP Inspector",
"type": "shell",
"command": "npx @modelcontextprotocol/inspector node ${workspaceFolder}/build/index.js",
"isBackground": true,
"problemMatcher": {
"pattern": {
"regexp": "^$"
},
"background": {
"activeOnStart": true,
"beginsPattern": "Inspector",
"endsPattern": "listening"
}
}
}
]
}
सामान्य डीबगिंग परिस्थिती
परिस्थिती 1: सर्व्हर कनेक्ट होत नाही
लक्षणे: इनस्पेक्टर "Disconnected" दाखवतो किंवा "Connecting..." वर अडकतो
तपासणी यादी:
- ✅ सर्व्हर कमांड योग्य आहे का?
- ✅ सर्व अवलंबित्वे स्थापित आहेत का?
- ✅ सर्व्हर पथ सापेक्ष की पूर्ण आहे?
- ✅ आवश्यक पर्यावरण व्हेरिएबल्स सेट आहेत का?
डीबग स्टेप्स:
# सर्व्हर प्रथम मॅन्युअली तपासा
python -c "import your_server_module; print('OK')"
# आयात त्रुटींसाठी तपासा
python -m your_server_module 2>&1 | head -20
# MCP SDK स्थापित असल्याची खात्री करा
pip show mcp
परिस्थिती 2: टूल्स दिसत नाहीत
लक्षणे: Tools टॅब रिकामी यादी दाखवते
संभाव्य कारणे:
- सर्व्हर सुरुवातीस टूल्स नोंदणीकृत नाहीत
- सर्व्हर सुरुवातीनंतर क्रॅश झाला
tools/listहँडलर रिकामी सूची देत आहे
डीबग स्टेप्स:
- मेसेज लॉगमध्ये
tools/listप्रतिसाद तपासा - तुमच्या टूल नोंदणी कोडमध्ये लॉगिंग जोडा
@mcp.tool()डेकोरेटर्स तपासा (पायथन)
परिस्थिती 3: टूल त्रुटी परत करते
लक्षणे: टूल कॉल त्रुटी प्रतिसाद देतो
डीबग दृष्टिकोन:
- त्रुटी संदेश काळजीपूर्वक वाचा
- पॅरामीटर प्रकार स्कीमाशी जुळतात का तपासा
- तपशीलवार त्रुटी संदेशांसाठी try/catch जोडा
- सर्व्हर लॉग्समध्ये स्टॅक ट्रेस तपासा
चांगले उदाहरण त्रुटी हाताळणी:
@mcp.tool()
async def my_tool(param1: str, param2: int) -> str:
try:
# साधन तर्क येथे
result = process(param1, param2)
return str(result)
except ValueError as e:
raise McpError(f"Invalid parameter: {e}")
except Exception as e:
raise McpError(f"Tool failed: {type(e).__name__}: {e}")
परिस्थिती 4: रिसोर्स कंटेंट रिकामी
लक्षणे: रिसोर्स परत येतो पण कंटेंट रिकामी किंवा null आहे
तपासणी यादी:
- ✅ फाइल पथ किंवा URI योग्य आहे का?
- ✅ सर्व्हरला रिसोर्स वाचण्याची परवानगी आहे का?
- ✅ रिसोर्स कंटेंट योग्यरित्या परत येत आहे का?
प्रगत इनस्पेक्टर वैशिष्ट्ये
कस्टम हेडर्स (SSE)
npx @modelcontextprotocol/inspector \
--sse http://localhost:8080/sse \
--header "Authorization: Bearer your-token"
सविस्तर लॉगिंग
DEBUG=mcp* npx @modelcontextprotocol/inspector python server.py
सत्रे रेकॉर्ड करणे
इनस्पेक्टर संदेश लॉग नंतरच्या विश्लेषणासाठी निर्यात करू शकतो:
- मेसेज पॅनेलमध्ये Export Log क्लिक करा
- JSON फाइल जतन करा
- डीबगिंगसाठी टीम सदस्यांशी शेअर करा
सर्वोत्तम सराव
- लवकर आणि नेहमी टेस्ट करा - विकासादरम्यान इनस्पेक्टर वापरा, फक्त त्रुटी आल्यावर नाही
- सोप्या गोष्टींपासून प्रारंभ करा - कॉम्प्लेक्स टूल कॉल्सच्या आधी मूलभूत कनेक्टिव्हिटी तपासा
- स्कीमा तपासा - अनेक त्रुटी पॅरामीटर प्रकार न जुळल्यामुळे होतात
- त्रुटी संदेश वाचा - MCP त्रुटी सहसा वर्णनात्मक असतात
- इनस्पेक्टर उघडे ठेवा - विकास करताना समस्या पटकन पकडण्यास मदत होते
पुढे काय
तुम्ही Module 3: Getting Started पूर्ण केले आहे! तुमचे शिक्षण पुढे सुरू ठेवा:
अतिरिक्त संदर्भ
अस्वीकरण: हा दस्तऐवज AI अनुवाद सेवा Co-op Translator वापरून अनुवादित करण्यात आला आहे. आम्ही अचूकतेसाठी प्रयत्न करतो, पण कृपया लक्षात घ्या की स्वयंचलित अनुवादात चुका किंवा अचूकतेत त्रुटी असू शकतात. मूळ दस्तऐवज त्याच्या मूळ भाषेमध्ये अधिकृत स्रोत मानला जावा. महत्त्वपूर्ण माहितीसाठी व्यावसायिक मानवी अनुवाद करण्याचा सल्ला दिला जातो. या अनुवादाचा वापर केल्यामुळे उद्भवणाऱ्या कोणत्याही गैरसमजुती किंवा चुकीच्या अर्थ लागण्याची जबाबदारी आम्ही घेत नाही.