# 🔧 Modul 3: Avancerad MCP-utveckling med Microsoft Foundry Toolkit ![Duration](https://img.shields.io/badge/Duration-20_minutes-blue?style=flat-square) ![Microsoft Foundry Toolkit](https://img.shields.io/badge/Microsoft_Foundry_Toolkit-Required-orange?style=flat-square) ![Python](https://img.shields.io/badge/Python-3.10+-green?style=flat-square) ![MCP SDK](https://img.shields.io/badge/MCP_SDK-1.9.3-purple?style=flat-square) ![Inspector](https://img.shields.io/badge/MCP_Inspector-0.14.0-blue?style=flat-square) ## 🎯 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 1. **Starta Agent Builder** i VS Code via Microsoft Foundry Toolkit-tillĂ€gget 2. **Skapa en ny agent** med följande konfiguration: - Agentnamn: `WeatherAgent` ![Agent Creation](../../../../translated_images/sv/Agent.c9c33f6a412b4cde.webp) ### Steg 2: Initiera MCP Server-projekt 1. **Navigera till Tools** → **Add Tool** i Agent Builder 2. **VĂ€lj "MCP Server"** bland alternativen 3. **VĂ€lj "Create A new MCP Server"** 4. **VĂ€lj templaten `python-weather`** 5. **Döp din server:** `weather_mcp` ![Python Template Selection](../../../../translated_images/sv/Pythontemplate.9d0a2913c6491500.webp) ### Steg 3: Öppna och granska projektet 1. **Öppna det genererade projektet** i VS Code 2. **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](../../../../10-StreamliningAIWorkflowsBuildingAnMCPServerWithAIToolkit/lab3/code/weather_mcp/pyproject.toml) #### 4b. Uppdatera Inspector-konfiguration **Redigera `inspector/package.json`:** uppdatera [./code/weather_mcp/inspector/package.json](../../../../10-StreamliningAIWorkflowsBuildingAnMCPServerWithAIToolkit/lab3/code/weather_mcp/inspector/package.json) #### 4c. Uppdatera Inspector-beroenden **Redigera `inspector/package-lock.json`:** uppdatera [./code/weather_mcp/inspector/package-lock.json](../../../../10-StreamliningAIWorkflowsBuildingAnMCPServerWithAIToolkit/lab3/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`:** ```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:** ```bash uv sync ``` **Installera Inspector-beroenden:** ```bash cd inspector npm install ``` ### Steg 7: Felsök med Agent Builder 1. **Tryck pĂ„ F5** eller anvĂ€nd konfigurationen **"Debug in Agent Builder"** 2. **VĂ€lj sammansatt konfiguration** frĂ„n felsökningspanelen 3. **VĂ€nta pĂ„ att servern startar** och att Agent Builder öppnas 4. **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 ``` ![Agent Builder Debug Result](../../../../translated_images/sv/Result.6ac570f7d2b1d538.webp) ### Steg 8: Felsök med MCP Inspector 1. **AnvĂ€nd konfigurationen "Debug in Inspector"** (Edge eller Chrome) 2. **Öppna Inspector-grĂ€nssnittet** pĂ„ `http://localhost:6274` 3. **Utforska den interaktiva testmiljön:** - Visa tillgĂ€ngliga verktyg - Testa körning av verktyg - Övervaka nĂ€tverksförfrĂ„gningar - Felsök serversvar ![MCP Inspector Interface](../../../../translated_images/sv/Inspector.5672415cd02fe873.webp) --- ## 🎯 Viktiga lĂ€randemĂ„l Genom att slutföra denna labb har du: - [x] **Skapat en anpassad MCP-server** med Microsoft Foundry Toolkit-templates - [x] **Uppgraderat till senaste MCP SDK** (v1.9.3) för förbĂ€ttrad funktionalitet - [x] **Konfigurerat professionella felsökningsarbetsflöden** för bĂ„de Agent Builder och Inspector - [x] **StĂ€llt in MCP Inspector** för interaktiv servertestning - [x] **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](https://modelcontextprotocol.io/docs/sdk/python) - [Microsoft Foundry Toolkit Extension Guide](https://code.visualstudio.com/docs/ai/ai-toolkit) - [VS Code Debugging Dokumentation](https://code.visualstudio.com/docs/editor/debugging) - [Model Context Protocol Specifikation](https://modelcontextprotocol.io/docs/concepts/architecture) --- **🎉 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](../lab4/README.md)** 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](https://github.com/Azure/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.