MCP Inspector er et essentielt debugging-værktøj, der giver dig mulighed for interaktivt at teste og fejlfinde dine MCP-servere uden behov for en fuld AI-host-applikation. Tænk på det som "Postman for MCP" - det giver en visuel grænseflade til at sende forespørgsler, se svar og forstå, hvordan din server opfører sig.
Når du bygger MCP-servere, vil du ofte støde på disse udfordringer:
- "Kører min server overhovedet?" - Inspector viser forbindelsesstatus
- "Er mine værktøjer registreret korrekt?" - Inspector viser alle tilgængelige værktøjer
- "Hvad er svarkonfigurationen?" - Inspector viser komplette JSON-svar
- "Hvorfor virker dette værktøj ikke?" - Inspector viser detaljerede fejlmeddelelser
- Node.js 18+ installeret
- npm (medfølger Node.js)
- En MCP-server til test (se Modul 3.1 - Første Server)
npx @modelcontextprotocol/inspectornpm install -g @modelcontextprotocol/inspector
mcp-inspectorcd your-mcp-server-project
npm install --save-dev @modelcontextprotocol/inspectorTilføj til package.json:
{
"scripts": {
"inspector": "mcp-inspector"
}
}For servere, der kommunikerer via standard input/output:
# Python server
npx @modelcontextprotocol/inspector python -m your_server_module
# Node.js server
npx @modelcontextprotocol/inspector node ./build/index.js
# Med miljøvariabler
OPENAI_API_KEY=xxx npx @modelcontextprotocol/inspector python server.pyFor servere, der kører som HTTP-tjenester:
-
Start din server først:
python server.py # Server kører på http://localhost:8080 -
Start Inspector og forbind:
npx @modelcontextprotocol/inspector --sse http://localhost:8080/sse
Når Inspector starter, vil du se en webgrænseflade (typisk på http://localhost:5173):
┌─────────────────────────────────────────────────────────────┐
│ MCP Inspector [Connected ✅] │
├─────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ 🔧 Tools │ │ 📄 Resources│ │ 💬 Prompts │ │
│ │ (3) │ │ (2) │ │ (1) │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ │
│ │
│ ┌───────────────────────────────────────────────────────┐ │
│ │ 📋 Message Log │ │
│ │ ─────────────────────────────────────────────────── │ │
│ │ → initialize │ │
│ │ ← initialized (server info) │ │
│ │ → tools/list │ │
│ │ ← tools (3 tools) │ │
│ └───────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────┘
- Klik på fanen Tools
- Inspector kalder automatisk
tools/list - Du vil se alle registrerede værktøjer med:
- Værktøjsnavn
- Beskrivelse
- Inputskema (parametre)
- Vælg et værktøj fra listen
- Udfyld de krævede parametre i formularen
- Klik på Run Tool
- Se svaret i resultatpanelet
Eksempel: Test af en regnemaskine-værktøj
Tool: add
Parameters:
a: 25
b: 17
Response:
{
"content": [
{
"type": "text",
"text": "42"
}
]
}
Når et værktøj fejler, viser Inspector:
Error Response:
{
"error": {
"code": -32602,
"message": "Invalid params: 'b' is required"
}
}
Almindelige fejlkoder:
| Kode | Betydning |
|---|---|
| -32700 | Parse-fejl (ugyldig JSON) |
| -32600 | Ugyldig forespørgsel |
| -32601 | Metode ikke fundet |
| -32602 | Ugyldige parametre |
| -32603 | Intern fejl |
- Klik på fanen Resources
- Inspector kalder
resources/list - Du vil se:
- Ressource-URI'er
- Navne og beskrivelser
- MIME-typer
- Vælg en ressource
- Klik på Read Resource
- Se det returnerede indhold
Eksempel output:
Resource: file:///config/settings.json
Content-Type: application/json
{
"config": {
"debug": true,
"maxConnections": 10
}
}
- Klik på fanen Prompts
- Inspector kalder
prompts/list - Se tilgængelige promptskabeloner
- Vælg en prompt
- Udfyld eventuelle nødvendige argumenter
- Klik på Get Prompt
- Se de gengivne prompt-beskeder
Meddelelsesloggen viser alle MCP-protokolbeskeder:
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":[...]}}
- Forespørgsel/svar-par: Hver
→skal have et matchende← - Fejlmeddelelser: Kig efter
"error"i svarene - Timing: Store pauser kan indikere performance-problemer
- Protokolversion: Sørg for, at server og klient er enige om version
Du kan køre Inspector direkte fra VS Code:
Tilføj til .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"
}
]
}Tilføj til .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"
}
}
}
]
}Symptomer: Inspector viser "Disconnected" eller hænger på "Connecting..."
Tjekliste:
- ✅ Er serverkommandoen korrekt?
- ✅ Er alle afhængigheder installeret?
- ✅ Er serverstien absolut eller relativ til den aktuelle mappe?
- ✅ Er nødvendige miljøvariabler sat?
Debug trin:
# Test server manuelt først
python -c "import your_server_module; print('OK')"
# Tjek for importfejl
python -m your_server_module 2>&1 | head -20
# Bekræft at MCP SDK er installeret
pip show mcpSymptomer: Fanen Tools viser en tom liste
Mulige årsager:
- Værktøjer ikke registreret under serverinitialisering
- Serveren gik ned efter opstart
tools/listhandler returnerer tom array
Debug trin:
- Tjek meddelelsesloggen for
tools/listsvar - Tilføj logging til dit værktøjsregistreringskode
- Bekræft at
@mcp.tool()dekoratorer er til stede (Python)
Symptomer: Kald til værktøj returnerer fejlrespons
Debug-tilgang:
- Læs fejlmeddelelsen grundigt
- Tjek at parametertyper matcher skemaet
- Tilføj try/catch med detaljerede fejlmeddelelser
- Tjek serverlogs for stack traces
Eksempel på forbedret fejlhåndtering:
@mcp.tool()
async def my_tool(param1: str, param2: int) -> str:
try:
# Værktøjslogik her
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}")Symptomer: Ressource returneres, men indhold er tomt eller null
Tjekliste:
- ✅ Filsti eller URI er korrekt
- ✅ Server har tilladelse til at læse ressourcen
- ✅ Ressourceindhold returneres korrekt
npx @modelcontextprotocol/inspector \
--sse http://localhost:8080/sse \
--header "Authorization: Bearer your-token"DEBUG=mcp* npx @modelcontextprotocol/inspector python server.pyInspector kan eksportere meddelelseslogs til senere analyse:
- Klik på Export Log i meddelelsespanelet
- Gem JSON-filen
- Del med teammedlemmer til fejlfinding
- Test tidligt og ofte - Brug Inspector under udvikling, ikke kun når noget går galt
- Start simpelt - Test basal forbindelse før komplekse værktøjskald
- Tjek skemaet - Mange fejl skyldes uoverensstemmelser i parametertyper
- Læs fejlmeddelelser - MCP-fejl er ofte beskrivende
- Hold Inspector åben - Det hjælper med at fange problemer under udvikling
Du har fuldført Modul 3: Kom godt i gang! Fortsæt din læring:
Ansvarsfraskrivelse: Dette dokument er blevet oversat ved hjælp af AI-oversættelsestjenesten Co-op Translator. Selvom vi bestræber os på nøjagtighed, bedes du være opmærksom på, at automatiserede oversættelser kan indeholde fejl eller unøjagtigheder. Det oprindelige dokument på originalsproget bør betragtes som den autoritative kilde. For kritisk information anbefales professionel menneskelig oversættelse. Vi påtager os intet ansvar for eventuelle misforståelser eller fejltolkninger, der opstår som følge af brugen af denne oversættelse.