🔧 Modul 3: Avancerad MCP-utveckling med Microsoft Foundry Toolkit
🎯 Läromål
I slutet av denna labb kommer du att kunna:
- ✅ Skapa anpassade MCP-servrar med Microsoft Foundry Toolkit
- ✅ Konfigurera och använda den senaste MCP Python SDK (v1.9.3)
- ✅ Ställa in och använda MCP Inspector för felsökning
- ✅ Felsöka MCP-servrar i både Agent Builder och Inspector-miljöer
- ✅ Förstå avancerade arbetsflöden för MCP-serverutveckling
📋 Förkunskaper
- Slutfört Lab 2 (MCP Fundamentals)
- VS Code med Microsoft Foundry Toolkit-tillägg installerat
- Python 3.10+ miljö
- Node.js och npm för Inspector-installation
🏗️ Vad du kommer att bygga
I denna labb kommer du att skapa en Weather MCP Server som demonstrerar:
- Anpassad MCP-serverimplementation
- Integration med Microsoft Foundry Toolkit Agent Builder
- Professionella felsökningsarbetsflöden
- Moderna MCP SDK-användningsmönster
🔧 Översikt av kärnkomponenter
🐍 MCP Python SDK
Model Context Protocol Python SDK tillhandahåller grunden för att bygga anpassade MCP-servrar. Du använder version 1.9.3 med utökade felsökningsmöjligheter.
🔍 MCP Inspector
Ett kraftfullt felsökningsverktyg som erbjuder:
- Realtidsövervakning av servern
- Visualisering av verktygskörningar
- Inspektion av nätverksförfrågningar/svar
- Interaktiv testmiljö
📖 Steg-för-steg-implementering
Steg 1: Skapa en WeatherAgent i Agent Builder
- Starta Agent Builder i VS Code via Microsoft Foundry Toolkit-tillägget
- Skapa en ny agent med följande konfiguration:
- Agentnamn:
WeatherAgent
- Agentnamn:
Steg 2: Initiera MCP Server-projekt
- Navigera till Tools → Add Tool i Agent Builder
- Välj "MCP Server" bland alternativen
- Välj "Create A new MCP Server"
- Välj templaten
python-weather - Döp din server:
weather_mcp
Steg 3: Öppna och granska projektet
- Öppna det genererade projektet i VS Code
- Granska projektstrukturen:
weather_mcp/ ├── src/ │ ├── __init__.py │ └── server.py ├── inspector/ │ ├── package.json │ └── package-lock.json ├── .vscode/ │ ├── launch.json │ └── tasks.json ├── pyproject.toml └── README.md
Steg 4: Uppgradera till senaste MCP SDK
🔍 Varför uppgradera? Vi vill använda senaste MCP SDK (v1.9.3) och Inspector-tjänsten (0.14.0) för förbättrade funktioner och bättre felsökningsmöjligheter.
4a. Uppdatera Python-beroenden
Redigera pyproject.toml: uppdatera ./code/weather_mcp/pyproject.toml
4b. Uppdatera Inspector-konfiguration
Redigera inspector/package.json: uppdatera ./code/weather_mcp/inspector/package.json
4c. Uppdatera Inspector-beroenden
Redigera inspector/package-lock.json: uppdatera ./code/weather_mcp/inspector/package-lock.json
📝 Observera: Denna fil innehåller omfattande beroendedefinitioner. Nedan visas den viktiga strukturen - hela innehållet säkerställer korrekt beroendehantering.
⚡ Full Package Lock: Den kompletta package-lock.json innehåller ~3000 rader med beroendedefinitioner. Ovan visas huvudsaklig struktur - använd den tillhandahållna filen för fullständig beroendehantering.
Steg 5: Konfigurera felsökning i VS Code
Obs: Vänligen kopiera filen till angiven sökväg för att ersätta motsvarande lokala fil
5a. Uppdatera lanseringskonfiguration
Redigera .vscode/launch.json:
{
"version": "0.2.0",
"configurations": [
{
"name": "Attach to Local MCP",
"type": "debugpy",
"request": "attach",
"connect": {
"host": "localhost",
"port": 5678
},
"presentation": {
"hidden": true
},
"internalConsoleOptions": "neverOpen",
"postDebugTask": "Terminate All Tasks"
},
{
"name": "Launch Inspector (Edge)",
"type": "msedge",
"request": "launch",
"url": "http://localhost:6274?timeout=60000&serverUrl=http://localhost:3001/sse#tools",
"cascadeTerminateToConfigurations": [
"Attach to Local MCP"
],
"presentation": {
"hidden": true
},
"internalConsoleOptions": "neverOpen"
},
{
"name": "Launch Inspector (Chrome)",
"type": "chrome",
"request": "launch",
"url": "http://localhost:6274?timeout=60000&serverUrl=http://localhost:3001/sse#tools",
"cascadeTerminateToConfigurations": [
"Attach to Local MCP"
],
"presentation": {
"hidden": true
},
"internalConsoleOptions": "neverOpen"
}
],
"compounds": [
{
"name": "Debug in Agent Builder",
"configurations": [
"Attach to Local MCP"
],
"preLaunchTask": "Open Agent Builder",
},
{
"name": "Debug in Inspector (Edge)",
"configurations": [
"Launch Inspector (Edge)",
"Attach to Local MCP"
],
"preLaunchTask": "Start MCP Inspector",
"stopAll": true
},
{
"name": "Debug in Inspector (Chrome)",
"configurations": [
"Launch Inspector (Chrome)",
"Attach to Local MCP"
],
"preLaunchTask": "Start MCP Inspector",
"stopAll": true
}
]
}
Redigera .vscode/tasks.json:
{
"version": "2.0.0",
"tasks": [
{
"label": "Start MCP Server",
"type": "shell",
"command": "python -m debugpy --listen 127.0.0.1:5678 src/__init__.py sse",
"isBackground": true,
"options": {
"cwd": "${workspaceFolder}",
"env": {
"PORT": "3001"
}
},
"problemMatcher": {
"pattern": [
{
"regexp": "^.*$",
"file": 0,
"location": 1,
"message": 2
}
],
"background": {
"activeOnStart": true,
"beginsPattern": ".*",
"endsPattern": "Application startup complete|running"
}
}
},
{
"label": "Start MCP Inspector",
"type": "shell",
"command": "npm run dev:inspector",
"isBackground": true,
"options": {
"cwd": "${workspaceFolder}/inspector",
"env": {
"CLIENT_PORT": "6274",
"SERVER_PORT": "6277",
}
},
"problemMatcher": {
"pattern": [
{
"regexp": "^.*$",
"file": 0,
"location": 1,
"message": 2
}
],
"background": {
"activeOnStart": true,
"beginsPattern": "Starting MCP inspector",
"endsPattern": "Proxy server listening on port"
}
},
"dependsOn": [
"Start MCP Server"
]
},
{
"label": "Open Agent Builder",
"type": "shell",
"command": "echo ${input:openAgentBuilder}",
"presentation": {
"reveal": "never"
},
"dependsOn": [
"Start MCP Server"
],
},
{
"label": "Terminate All Tasks",
"command": "echo ${input:terminate}",
"type": "shell",
"problemMatcher": []
}
],
"inputs": [
{
"id": "openAgentBuilder",
"type": "command",
"command": "ai-mlstudio.agentBuilder",
"args": {
"initialMCPs": [ "local-server-weather_mcp" ],
"triggeredFrom": "vsc-tasks"
}
},
{
"id": "terminate",
"type": "command",
"command": "workbench.action.tasks.terminate",
"args": "terminateAll"
}
]
}
🚀 Köra och testa din MCP-server
Steg 6: Installera beroenden
Efter konfigurationsändringarna, kör följande kommandon:
Installera Python-beroenden:
uv sync
Installera Inspector-beroenden:
cd inspector
npm install
Steg 7: Felsök med Agent Builder
- Tryck på F5 eller använd konfigurationen "Debug in Agent Builder"
- Välj sammansatt konfiguration från felsökningspanelen
- Vänta på att servern startar och att Agent Builder öppnas
- Testa din väder-MCP-server med naturliga språkfrågor
Skriv in en prompt som denna
SYSTEM_PROMPT
You are my weather assistant
USER_PROMPT
How's the weather like in Seattle
Steg 8: Felsök med MCP Inspector
- Använd konfigurationen "Debug in Inspector" (Edge eller Chrome)
- Öppna Inspector-gränssnittet på
http://localhost:6274 - Utforska den interaktiva testmiljön:
- Visa tillgängliga verktyg
- Testa körning av verktyg
- Övervaka nätverksförfrågningar
- Felsök serversvar
🎯 Viktiga lärandemål
Genom att slutföra denna labb har du:
- Skapat en anpassad MCP-server med Microsoft Foundry Toolkit-templates
- Uppgraderat till senaste MCP SDK (v1.9.3) för förbättrad funktionalitet
- Konfigurerat professionella felsökningsarbetsflöden för både Agent Builder och Inspector
- Ställt in MCP Inspector för interaktiv servertestning
- Behärskat VS Code felsökningskonfigurationer för MCP-utveckling
🔧 Avancerade funktioner som utforskats
| Funktion | Beskrivning | Användningsfall |
|---|---|---|
| MCP Python SDK v1.9.3 | Senaste protokollimplementationen | Modern serverutveckling |
| MCP Inspector 0.14.0 | Interaktivt felsökningsverktyg | Realtidstestning av server |
| VS Code Debugging | Integrerad utvecklingsmiljö | Professionellt felsökningsflöde |
| Agent Builder Integration | Direkt Microsoft Foundry Toolkit-anslutning | End-to-end agenttestning |
📚 Ytterligare resurser
- MCP Python SDK Dokumentation
- Microsoft Foundry Toolkit Extension Guide
- VS Code Debugging Dokumentation
- Model Context Protocol Specifikation
🎉 Grattis! Du har framgångsrikt slutfört Lab 3 och kan nu skapa, felsöka och distribuera anpassade MCP-servrar med professionella utvecklingsarbetsflöden.
🔜 Fortsätt till nästa modul
Redo att tillämpa dina MCP-kunskaper i ett verkligt utvecklingsflöde? Fortsätt till Modul 4: Praktisk MCP-utveckling - Anpassad GitHub Clone-server där du kommer att:
- Bygga en produktionsredo MCP-server som automatiserar GitHub-repositorieoperationer
- Implementera funktionalitet för att klona GitHub-repositorier via MCP
- Integrera anpassade MCP-servrar med VS Code och GitHub Copilot Agent Mode
- Testa och distribuera anpassade MCP-servrar i produktionsmiljöer
- Lära dig praktisk arbetsflödesautomation för utvecklare
Ansvarsfriskrivning: Detta dokument har översatts med hjälp av AI-översättningstjänsten Co-op Translator. Även om vi strävar efter noggrannhet, var vänlig notera att automatiska översättningar kan innehålla fel eller brister. Det ursprungliga dokumentet på dess modersmål bör betraktas som den auktoritativa källan. För kritisk information rekommenderas professionell mänsklig översättning. Vi ansvarar inte för några missförstånd eller feltolkningar som uppstår till följd av användningen av denna översättning.



