# 🌐 Modul 2: MCP med grunderna i Microsoft Foundry Toolkit [![Duration](https://img.shields.io/badge/Duration-20%20minutes-blue.svg)]() [![Difficulty](https://img.shields.io/badge/Difficulty-Intermediate-yellow.svg)]() [![Prerequisites](https://img.shields.io/badge/Prerequisites-Module%201%20Complete-orange.svg)]() ## 📋 InlĂ€rningsmĂ„l I slutet av denna modul kommer du att kunna: - ✅ FörstĂ„ Model Context Protocol (MCP) arkitektur och fördelar - ✅ Utforska Microsofts MCP-server ekosystem - ✅ Integrera MCP-servrar med Microsoft Foundry Toolkit Agent Builder - ✅ Bygga en funktionell webblĂ€sarautomationsagent med Playwright MCP - ✅ Konfigurera och testa MCP-verktyg inom dina agenter - ✅ Exportera och distribuera MCP-drivna agenter för produktionsanvĂ€ndning ## 🎯 Bygga vidare pĂ„ Modul 1 I Modul 1 bemĂ€strade vi grunderna i Microsoft Foundry Toolkit och skapade vĂ„r första Python-agent. Nu ska vi **superladda** dina agenter genom att koppla dem till externa verktyg och tjĂ€nster via revolutionerande **Model Context Protocol (MCP)**. TĂ€nk pĂ„ detta som att uppgradera frĂ„n en enkel minirĂ€knare till en fullstĂ€ndig dator – dina AI-agenter fĂ„r förmĂ„gan att: - 🌐 Surfa och interagera med webbplatser - 📁 FĂ„ Ă„tkomst till och hantera filer - 🔧 Integrera med företagsystem - 📊 Bearbeta realtidsdata frĂ„n API:er ## 🧠 FörstĂ„ Model Context Protocol (MCP) ### 🔍 Vad Ă€r MCP? Model Context Protocol (MCP) Ă€r **"USB-C för AI-applikationer"** – en revolutionerande öppen standard som kopplar Stora SprĂ„kmodeller (LLM:er) till externa verktyg, datakĂ€llor och tjĂ€nster. Precis som USB-C eliminerade kabelkaos genom att erbjuda en universell kontakt, eliminerar MCP komplexitet i AI-integration genom ett standardiserat protokoll. ### 🎯 Problemet som MCP löser **Före MCP:** - 🔧 Specialanpassade integrationer för varje verktyg - 🔄 LeverantörslĂ„sning med proprietĂ€ra lösningar - 🔒 SĂ€kerhetsrisker frĂ„n ad hoc-anslutningar - ⏱ MĂ„nader av utveckling för grundlĂ€ggande integrationer **Med MCP:** - ⚡ Plug-and-play verktygsintegration - 🔄 Leverantörsoberoende arkitektur - đŸ›Ąïž Inbyggda sĂ€kerhetsbĂ€sta praxis - 🚀 Minuter för att lĂ€gga till nya funktioner ### đŸ—ïž Djupdykning i MCP-arkitektur MCP följer en **klient-server-arkitektur** som skapar ett sĂ€kert, skalbart ekosystem: ```mermaid graph TB A[AI-applikation/Agent] --> B[MCP-klient] B --> C[MCP-server 1: Filer] B --> D[MCP-server 2: Webb-API:er] B --> E[MCP-server 3: Databas] B --> F[MCP-server N: Anpassade verktyg] C --> G[Lokalt filsyste m] D --> H[Externa API:er] E --> I[Databassystem] F --> J[Företagssystem] ``` **🔧 KĂ€rnkomponenter:** | Komponent | Roll | Exempel | |-----------|------|---------| | **MCP Hosts** | Applikationer som konsumerar MCP-tjĂ€nster | Claude Desktop, VS Code, Microsoft Foundry Toolkit | | **MCP Clients** | Protokollhanterare (1:1 med servrar) | Inbyggda i host-applikationer | | **MCP Servers** | Exponerar funktionalitet via standardprotokoll | Playwright, Files, Azure, GitHub | | **Transport Layer** | Kommunikationsmetoder | stdio, HTTP, WebSockets | ## 🏱 Microsofts MCP Server Ekosystem Microsoft leder MCP-ekosystemet med en omfattande svit av företagsklassade servrar som adresserar verkliga affĂ€rsbehov. ### 🌟 Utvalda Microsoft MCP-servrar #### 1. ☁ Azure MCP Server **🔗 Repository**: [azure/azure-mcp](https://github.com/azure/azure-mcp) **🎯 Syfte**: Omfattande Azure-resurshantering med AI-integration **✹ Nyckelfunktioner:** - Deklarativ infrastrukturprovisionering - Realtidsövervakning av resurser - Rekommendationer för kostnadsoptimering - SĂ€kerhetskontroller av efterlevnad **🚀 AnvĂ€ndningsomrĂ„den:** - Infrastruktur som kod med AI-assistans - Automatiserad resurs skalning - Molnkostnadsoptimering - DevOps arbetsflödesautomation #### 2. 📊 Microsoft Dataverse MCP **📚 Dokumentation**: [Microsoft Dataverse Integration](https://go.microsoft.com/fwlink/?linkid=2320176) **🎯 Syfte**: Naturligt sprĂ„kgrĂ€nssnitt för affĂ€rsdata **✹ Nyckelfunktioner:** - Naturliga sprĂ„kfrĂ„gor mot databaser - FörstĂ„else för affĂ€rskontext - Anpassade promptmallar - Företagsdatahantering **🚀 AnvĂ€ndningsomrĂ„den:** - AffĂ€rsintelligensrapportering - Kunddataanalys - Insikter i sĂ€ljpipeline - FörfrĂ„gningar kring efterlevnadsdata #### 3. 🌐 Playwright MCP Server **🔗 Repository**: [microsoft/playwright-mcp](https://github.com/microsoft/playwright-mcp) **🎯 Syfte**: WebblĂ€sarautomation och webbinmatningsfunktioner **✹ Nyckelfunktioner:** - Cross-browser automation (Chrome, Firefox, Safari) - Intelligens för elementigenkĂ€nning - SkĂ€rmdump- och PDF-generering - Övervakning av nĂ€tverkstrafik **🚀 AnvĂ€ndningsomrĂ„den:** - Automatiserade testarbetsflöden - Webbskrapning och datautvinning - UI/UX-övervakning - Automatiserad konkurrensanalys #### 4. 📁 Files MCP Server **🔗 Repository**: [microsoft/files-mcp-server](https://github.com/microsoft/files-mcp-server) **🎯 Syfte**: Intelligenta filsystemoperationer **✹ Nyckelfunktioner:** - Deklarativ filhantering - InnehĂ„llssynkronisering - Integrerad versionshantering - Metadatautvinning **🚀 AnvĂ€ndningsomrĂ„den:** - Dokumenthantering - Kodförvaringsorganisation - Arbetsflöden för innehĂ„llspublicering - Filhantering i datapipelines #### 5. 📝 MarkItDown MCP Server **🔗 Repository**: [microsoft/markitdown](https://github.com/microsoft/markitdown) **🎯 Syfte**: Avancerad Markdown-behandling och manipulation **✹ Nyckelfunktioner:** - Rik Markdown-parsing - Formatkonvertering (MD ↔ HTML ↔ PDF) - Analys av innehĂ„llsstruktur - Mallbearbetning **🚀 AnvĂ€ndningsomrĂ„den:** - Arbetsflöden för teknisk dokumentation - InnehĂ„llshanteringssystem - Rapportgenerering - Automatisering av kunskapsbas #### 6. 📈 Clarity MCP Server **📩 Paket**: [@microsoft/clarity-mcp-server](https://www.npmjs.com/package/@microsoft/clarity-mcp-server) **🎯 Syfte**: Webbstatistik och insikter om anvĂ€ndarbeteende **✹ Nyckelfunktioner:** - Heatmap-analys - Inspelningar av anvĂ€ndarsessioner - PrestandamĂ„tt - Analys av konverteringstrattar **🚀 AnvĂ€ndningsomrĂ„den:** - Webbplatsoptimering - Forskning kring anvĂ€ndarupplevelse - A/B testanalys - AffĂ€rsintelligensdashboard ### 🌍 Community-ekosystemet Utöver Microsofts servrar inkluderar MCP-ekosystemet: - **🐙 GitHub MCP**: Förvarshantering och kodanalys - **đŸ—„ïž Databas-MCPs**: PostgreSQL, MySQL, MongoDB-integrationer - **☁ Molnleverantörs-MCPs**: AWS, GCP, Digital Ocean-verktyg - **📧 Kommunikations-MCPs**: Slack, Teams, E-post-integrationer ## đŸ› ïž Praktiskt Laboratorium: Bygga en webblĂ€sarautomationsagent **🎯 ProjektmĂ„l**: Skapa en intelligent webblĂ€sarautomationsagent med Playwright MCP-server som kan navigera pĂ„ webbplatser, extrahera information och utföra komplexa webbinteraktioner. ### 🚀 Fas 1: Agentens grundlĂ€ggande uppsĂ€ttning #### Steg 1: Initiera din agent 1. **Öppna Microsoft Foundry Toolkit Agent Builder** 2. **Skapa Ny Agent** med följande konfiguration: - **Namn**: `BrowserAgent` - **Modell**: VĂ€lj GPT-4o ![BrowserAgent](../../../../translated_images/sv/BrowserAgent.09c1adde5e136573.webp) ### 🔧 Fas 2: MCP-integrationsarbetsflöde #### Steg 3: LĂ€gg till MCP-serverintegration 1. **Navigera till Verktygssektionen** i Agent Builder 2. **Klicka pĂ„ "Add Tool"** för att öppna integrationsmenyn 3. **VĂ€lj "MCP Server"** frĂ„n tillgĂ€ngliga alternativ ![AddMCP](../../../../translated_images/sv/AddMCP.afe3308ac20aa944.webp) **🔍 FörstĂ„ verktygstyper:** - **Inbyggda verktyg**: Förkonfigurerade Microsoft Foundry Toolkit-funktioner - **MCP-servrar**: Externa tjĂ€nsteintegrationer - **Anpassade API:er**: Egna tjĂ€nsteendpoints - **Funktionanrop**: Direkt Ă„tkomst till modellfunktioner #### Steg 4: Val av MCP-server 1. **VĂ€lj alternativet "MCP Server"** för att fortsĂ€tta ![AddMCPServer](../../../../translated_images/sv/AddMCPServer.69b911ccef872cbd.webp) 2. **BlĂ€ddra i MCP-katalogen** för att utforska tillgĂ€ngliga integrationer ![MCPCatalog](../../../../translated_images/sv/MCPCatalog.a817d05314569900.webp) ### 🎼 Fas 3: Playwright MCP-konfiguration #### Steg 5: VĂ€lj och konfigurera Playwright 1. **Klicka pĂ„ "Use Featured MCP Servers"** för att fĂ„ Ă„tkomst till Microsofts verifierade servrar 2. **VĂ€lj "Playwright"** frĂ„n listan med utvalda servrar 3. **Acceptera standard MCP ID** eller anpassa för din miljö ![MCPID](../../../../translated_images/sv/MCPID.67d446052979e819.webp) #### Steg 6: Aktivera Playwright-funktioner **🔑 Viktigt steg**: VĂ€lj **ALLA** tillgĂ€ngliga Playwright-metoder för maximal funktionalitet ![Tools](../../../../translated_images/sv/Tools.3ea23c447b4d9fec.webp) **đŸ› ïž Viktiga Playwright-verktyg:** - **Navigering**: `goto`, `goBack`, `goForward`, `reload` - **Interaktion**: `click`, `fill`, `press`, `hover`, `drag` - **Extrahering**: `textContent`, `innerHTML`, `getAttribute` - **Validering**: `isVisible`, `isEnabled`, `waitForSelector` - **FĂ„ngst**: `screenshot`, `pdf`, `video` - **NĂ€tverk**: `setExtraHTTPHeaders`, `route`, `waitForResponse` #### Steg 7: Verifiera integrationsframgĂ„ng **✅ FramgĂ„ngsindikatorer:** - Alla verktyg syns i Agent Builder-grĂ€nssnittet - Inga felmeddelanden i integrationspanelen - Playwright-serverstatus visar "Connected" ![AgentTools](../../../../translated_images/sv/AgentTools.053cfb96a17e0219.webp) **🔧 Felsökning av vanliga problem:** - **Anslutningen misslyckades**: Kontrollera internetanslutning och brandvĂ€ggsinstĂ€llningar - **Saknade verktyg**: SĂ€kerstĂ€ll att alla funktioner valdes under instĂ€llningen - **Behörighetsfel**: Verifiera att VS Code har nödvĂ€ndiga systembehörigheter ### 🎯 Fas 4: Avancerad promptdesign #### Steg 8: Designa intelligenta systemprompter Skapa sofistikerade prompts som utnyttjar Playwrights fulla kapacitet: ```markdown # Web Automation Expert System Prompt ## Core Identity You are an advanced web automation specialist with deep expertise in browser automation, web scraping, and user experience analysis. You have access to Playwright tools for comprehensive browser control. ## Capabilities & Approach ### Navigation Strategy - Always start with screenshots to understand page layout - Use semantic selectors (text content, labels) when possible - Implement wait strategies for dynamic content - Handle single-page applications (SPAs) effectively ### Error Handling - Retry failed operations with exponential backoff - Provide clear error descriptions and solutions - Suggest alternative approaches when primary methods fail - Always capture diagnostic screenshots on errors ### Data Extraction - Extract structured data in JSON format when possible - Provide confidence scores for extracted information - Validate data completeness and accuracy - Handle pagination and infinite scroll scenarios ### Reporting - Include step-by-step execution logs - Provide before/after screenshots for verification - Suggest optimizations and alternative approaches - Document any limitations or edge cases encountered ## Ethical Guidelines - Respect robots.txt and rate limiting - Avoid overloading target servers - Only extract publicly available information - Follow website terms of service ``` #### Steg 9: Skapa dynamiska anvĂ€ndarprompter Designa prompts som demonstrerar olika funktioner: **🌐 Exempel pĂ„ webbanalys:** ```markdown Navigate to github.com/kinfey and provide a comprehensive analysis including: 1. Repository structure and organization 2. Recent activity and contribution patterns 3. Documentation quality assessment 4. Technology stack identification 5. Community engagement metrics 6. Notable projects and their purposes Include screenshots at key steps and provide actionable insights. ``` ![Prompt](../../../../translated_images/sv/Prompt.bfc846605db4999f.webp) ### 🚀 Fas 5: Körning och testning #### Steg 10: Kör din första automation 1. **Klicka pĂ„ "Run"** för att starta automationssekvensen 2. **Övervaka realtidskörningen**: - Chrome-webblĂ€sare startar automatiskt - Agenten navigerar till mĂ„lsidan - SkĂ€rmdumpar tas för varje steg - Analysresultaten strömmas i realtid ![Browser](../../../../translated_images/sv/Browser.ec011d0bd64d0d11.webp) #### Steg 11: Analysera resultat och insikter Granska omfattande analys i Agent Builder-grĂ€nssnittet: ![Result](../../../../translated_images/sv/Result.8638f2b6703e9ea6.webp) ### 🌟 Fas 6: Avancerade funktioner och distribution #### Steg 12: Export och produktiondistribution Agent Builder stödjer flera distributionsalternativ: ![Code](../../../../translated_images/sv/Code.d9eeeead0b96db0c.webp) ## 🎓 Sammanfattning Modul 2 & NĂ€sta steg ### 🏆 UppnĂ„tt MĂ„l: MCP Integration Master **✅ BemĂ€strade fĂ€rdigheter:** - [ ] FörstĂ„ MCP-arkitektur och fördelar - [ ] Navigera i Microsofts MCP-serverekosystem - [ ] Integrera Playwright MCP med Microsoft Foundry Toolkit - [ ] Bygga avancerade webblĂ€sarautomationsagenter - [ ] Avancerad promptdesign för webbautomation ### 📚 Ytterligare resurser - **🔗 MCP-specifikation**: [Officiell protokolldokumentation](https://modelcontextprotocol.io/) - **đŸ› ïž Playwright API**: [FullstĂ€ndig metodreferens](https://playwright.dev/docs/api/class-playwright) - **🏱 Microsoft MCP-servrar**: [Guide för företagsintegration](https://github.com/microsoft/mcp-servers) - **🌍 Community-exempel**: [MCP Server Galleri](https://github.com/modelcontextprotocol/servers) **🎉 Grattis!** Du har framgĂ„ngsrikt bemĂ€strat MCP-integration och kan nu bygga produktionsklara AI-agenter med externa verktygsfunktioner! ### 🔜 FortsĂ€tt till nĂ€sta modul Redo att ta dina MCP-kunskaper till nĂ€sta nivĂ„? FortsĂ€tt till **[Modul 3: Avancerad MCP-utveckling med Microsoft Foundry Toolkit](../lab3/README.md)** dĂ€r du lĂ€r dig att: - Skapa egna anpassade MCP-servrar - Konfigurera och anvĂ€nda den senaste MCP Python SDK - SĂ€tta upp MCP Inspector för felsökning - BemĂ€stra avancerade arbetsflöden för MCP-serverutveckling - Bygga en Weather MCP Server frĂ„n grunden --- **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.