Files
2026-07-13 13:31:35 +08:00

20 KiB

MCP Inspector सँग डिबगिङ

MCP Inspector एक अनिवार्य डिबगिङ उपकरण हो जुनले तपाईंलाई पूर्ण AI होस्ट एप्लिकेसन बिना नै तपाईंको MCP सर्भरहरू अन्तरक्रियात्मक रूपमा परीक्षण गर्न र समस्या समाधान गर्न अनुमति दिन्छ। यसलाई "MCP को लागि Postman" को रूपमा सोच्नुहोस् - यसले अनुरोधहरू पठाउन, प्रतिक्रिया हेर्न, र तपाईंको सर्भर कसरी व्यवहार गर्छ बुझ्न दृश्यात्मक इन्टरफेस प्रदान गर्दछ।

किन MCP Inspector प्रयोग गर्ने?

MCP सर्भरहरू निर्माण गर्दा, तपाईंले प्रायः यी चुनौतीहरू सामना गर्नुहुनेछ:

  • "के मेरो सर्भर चलिरहेको छ?" - Inspector जडान स्थिति देखाउँछ
  • "के मेरा उपकरणहरू सही रूपमा दर्ता भएका छन्?" - Inspector सबै उपलब्ध उपकरणहरू सूचीबद्ध गर्दछ
  • "प्रतिक्रिया स्वरूप के हो?" - Inspector पूर्ण JSON प्रतिक्रिया देखाउँछ
  • "किन यो उपकरण काम गरिरहेको छैन?" - Inspector विस्तृत त्रुटि सन्देशहरू देखाउँछ

पूर्व आवश्यकताहरू

  • 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

# नोड.जेस सर्भर
npx @modelcontextprotocol/inspector node ./build/index.js

# वातावरण चरहरूसँग
OPENAI_API_KEY=xxx npx @modelcontextprotocol/inspector python server.py

SSE/HTTP सर्भरहरू (नेटवर्क)

HTTP सेवा को रूपमा चलिरहेका सर्भरहरू लागि:

  1. पहिले तपाईंको सर्भर सुरु गर्नुहोस्:

    python server.py  # सर्भर http://localhost:8080 मा चलिरहेको छ
    
  2. Inspector सुरु गर्नुहोस् र जडान गर्नुहोस्:

    npx @modelcontextprotocol/inspector --sse http://localhost:8080/sse
    

Inspector इन्टरफेस अवलोकन

Inspector सुरु हुँदा, तपाईं वेब इन्टरफेस देख्नुहुनेछ (सामान्यतया http://localhost:5173 मा):

┌─────────────────────────────────────────────────────────────┐
│  MCP Inspector                              [Connected ✅]   │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  ┌─────────────┐  ┌─────────────┐  ┌─────────────┐         │
│  │   🔧 Tools  │  │ 📄 Resources│  │ 💬 Prompts  │         │
│  │    (3)      │  │    (2)      │  │    (1)      │         │
│  └─────────────┘  └─────────────┘  └─────────────┘         │
│                                                             │
│  ┌───────────────────────────────────────────────────────┐ │
│  │  📋 Message Log                                       │ │
│  │  ─────────────────────────────────────────────────── │ │
│  │  → initialize                                         │ │
│  │  ← initialized (server info)                          │ │
│  │  → tools/list                                         │ │
│  │  ← tools (3 tools)                                    │ │
│  └───────────────────────────────────────────────────────┘ │
│                                                             │
└─────────────────────────────────────────────────────────────┘

उपकरणहरूको परीक्षण

उपलब्ध उपकरणहरूको सूची

  1. Tools ट्याबमा क्लिक गर्नुहोस्
  2. Inspector स्वतः tools/list कल गर्छ
  3. तपाईंले सबै दर्ता गरिएका उपकरणहरू देख्नुहुनेछ:
    • उपकरण नाम
    • विवरण
    • इनपुट स्कीमा (प्यारामिटरहरू)

उपकरण बोलाउने

  1. सूचीबाट उपकरण चयन गर्नुहोस्
  2. फारममा आवश्यक प्यारेमिटरहरू भर्नुहोस्
  3. Run Tool मा क्लिक गर्नुहोस्
  4. नतिजा प्यानेलमा प्रतिक्रिया हेर्नुहोस्

उदाहरण: क्यालकुलेटर उपकरण परीक्षण

Tool: add
Parameters:
  a: 25
  b: 17

Response:
{
  "content": [
    {
      "type": "text",
      "text": "42"
    }
  ]
}

उपकरण त्रुटिहरू डिबगिङ

जब कुनै उपकरण असफल हुन्छ, Inspector देखाउँछ:

Error Response:
{
  "error": {
    "code": -32602,
    "message": "Invalid params: 'b' is required"
  }
}

सामान्य त्रुटि कोडहरू:

कोड अर्थ
-32700 पार्स त्रुटि (अवैध JSON)
-32600 अवैध अनुरोध
-32601 मेथड फेला परेन
-32602 अवैध प्यारामिटरहरू
-32603 भित्री त्रुटि

स्रोतहरू परीक्षण

स्रोतहरूको सूची

  1. Resources ट्याबमा क्लिक गर्नुहोस्
  2. Inspector resources/list कल गर्छ
  3. तपाईंले देख्नुहुनेछ:
    • स्रोत URI हरू
    • नाम र विवरणहरू
    • MIME प्रकारहरू

स्रोत पढ्ने

  1. स्रोत चयन गर्नुहोस्
  2. Read Resource मा क्लिक गर्नुहोस्
  3. प्रदान गरिएको सामग्री हेर्नुहोस्

उदाहरण आउटपुट:

Resource: file:///config/settings.json
Content-Type: application/json

{
  "config": {
    "debug": true,
    "maxConnections": 10
  }
}

प्रम्प्टहरू परीक्षण

प्रम्प्टहरूको सूची

  1. Prompts ट्याबमा क्लिक गर्नुहोस्
  2. Inspector prompts/list कल गर्छ
  3. उपलब्ध प्रम्प्ट टेम्प्लेटहरू हेर्नुहोस्

प्रम्प्ट प्राप्त गर्ने

  1. प्रम्प्ट चयन गर्नुहोस्
  2. आवश्यक तर्कहरू भर्नुहोस्
  3. Get Prompt मा क्लिक गर्नुहोस्
  4. तयार गरिएको प्रम्प्ट सन्देशहरू हेर्नुहोस्

सन्देश लग विश्लेषण

सन्देश लगले सबै 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 Code एकीकरण

तपाईं Inspector सिधै VS Code बाट चलाउन सक्नुहुन्छ:

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: सर्भर जडान हुँदैन

लक्षणहरू: Inspector ले "Disconnected" देखाउँछ वा "Connecting..." मा अट्छ

जाँचसूची:

  1. सर्भर कमाण्ड सहि छ?
  2. सबै निर्भरताहरू स्थापना गरिएका छन्?
  3. सर्भर पथ पूर्ण वा हालको डाइरेक्ट्री सँग सम्बन्धित छ?
  4. आवश्यक वातावरण चरहरू सेट छन्?

डिबग कदमहरू:

# प्राथमिक रूपमा सर्भर म्यानुअली परीक्षण गर्नुहोस्
python -c "import your_server_module; print('OK')"

# इम्पोर्ट त्रुटिहरू जाँच गर्नुहोस्
python -m your_server_module 2>&1 | head -20

# MCP SDK इन्स्टल गरिएको छ कि छैन सुनिश्चित गर्नुहोस्
pip show mcp

अवस्था 2: उपकरणहरू देखिँदैनन्

लक्षणहरू: उपकरण ट्याब खाली देखिन्छ

संभावित कारणहरू:

  1. सर्भर सुरुआत गर्दा उपकरणहरू दर्ता भएनन्
  2. सर्भर स्टार्टअप पछि क्र्यास भयो
  3. tools/list ह्यान्डलरले खाली एरे फर्काउँदैछ

डिबग कदमहरू:

  1. सन्देश लगमा tools/list प्रतिक्रिया जाँच्नुहोस्
  2. तपाईंको उपकरण दर्ता कोडमा लगिङ थप्नुहोस्
  3. @mcp.tool() डेकोरेटरहरू छन् कि छैनन् जाँच गर्नुहोस् (Python)

अवस्था 3: उपकरणले त्रुटि फर्काउँछ

लक्षणहरू: उपकरण कलले त्रुटि प्रतिक्रिया दिन्छ

डिबग उपायहरू:

  1. त्रुटि सन्देश ध्यानपूर्वक पढ्नुहोस्
  2. प्यारामिटर प्रकारहरू स्कीमासँग मिल्छन् कि छैनन् जाँच गर्नुहोस्
  3. विस्तृत त्रुटि सन्देशसहित try/catch थप्नुहोस्
  4. सर्भर लगहरूमा स्ट्याक ट्रेसहरू जाँच गर्नुहोस्

सुधारिएको त्रुटि ह्यान्डलिङ उदाहरण:

@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 छ

जाँचसूची:

  1. फाइल पथ वा URI सहि छ
  2. सर्भरले स्रोत पढ्न अनुमति छ
  3. स्रोत सामग्री सहि तरिकाले फर्काइँदैछ

उन्नत Inspector विशेषताहरू

कस्टम हेडरहरू (SSE)

npx @modelcontextprotocol/inspector \
  --sse http://localhost:8080/sse \
  --header "Authorization: Bearer your-token"

विस्तृत लगिङ

DEBUG=mcp* npx @modelcontextprotocol/inspector python server.py

सेसन रेकर्डिङ

Inspector संदेश लगहरू पछि विश्लेषणका लागि निर्यात गर्न सक्छ:

  1. सन्देश प्यानलमा Export Log मा क्लिक गर्नुहोस्
  2. JSON फाइल बचत गर्नुहोस्
  3. डिबगिङको लागि टोली सदस्यहरूसँग साझा गर्नुहोस्

उत्तम अभ्यासहरू

  1. छिटो र बारम्बार परीक्षण गर्नुहोस् - विकासको क्रममा Inspector प्रयोग गर्नुहोस्, केवल समस्या आएपछि होइन
  2. सरलबाट सुरु गर्नुहोस् - जटिल उपकरण कल गर्नुअघि आधारभूत जडान परीक्षण गर्नुहोस्
  3. स्कीमा जाँच गर्नुहोस् - धेरै त्रुटिहरू प्यारामिटर प्रकार मिल्न नपाउँदा आउँछन्
  4. त्रुटि सन्देशहरू पढ्नुहोस् - MCP त्रुटिहरू प्रायः व्याख्यात्मक हुन्छन्
  5. Inspector खोलिएको राख्नुहोस् - विकासक्रममा समस्या पत्ता लगाउन मद्दत गर्छ

अब के?

तपाईंले Module 3: Getting Started पूरा गर्नुभयो! सिकाइ जारी राख्नुहोस्:


थप स्रोतहरू


अस्वीकरण: यस दस्तावेजलाई AI अनुवाद सेवा Co-op Translator प्रयोग गरी अनुवाद गरिएको हो। हामी शुद्धताको कोशिश गर्छौं, तर कृपया जान्नुस् कि स्वचालित अनुवादमा त्रुटि वा अशुद्धता हुनसक्छ। मूल दस्तावेज यसको मूल भाषामा आधिकारिक स्रोतको रूपमा मान्नुपर्छ। महत्वपूर्ण जानकारीका लागि पेशेवर मानव अनुवाद सिफारिस गरिन्छ। यस अनुवादको प्रयोगबाट उत्पन्न हुने कुनै पनि गलत बुझाइ वा व्याख्याका लागि हामी जिम्मेवार छैनौं।