Praktisk implementation
(Klicka på bilden ovan för att se video av denna lektion)
Praktisk implementation är där kraften i Model Context Protocol (MCP) blir påtaglig. Medan förståelsen av teorin och arkitekturen bakom MCP är viktig, uppstår det verkliga värdet när du tillämpar dessa koncept för att bygga, testa och distribuera lösningar som löser verkliga problem. Detta kapitel överbryggar gapet mellan konceptuell kunskap och praktisk utveckling och guidar dig genom processen att ge liv åt MCP-baserade applikationer.
Oavsett om du utvecklar intelligenta assistenter, integrerar AI i affärsflöden eller bygger specialanpassade verktyg för databehandling, erbjuder MCP en flexibel grund. Dess språkoberoende design och officiella SDK:er för populära programmeringsspråk gör det tillgängligt för en bred krets utvecklare. Genom att utnyttja dessa SDK:er kan du snabbt prototypa, iterera och skala dina lösningar över olika plattformar och miljöer.
I följande avsnitt hittar du praktiska exempel, kodexempel och distributionsstrategier som visar hur du implementerar MCP i C#, Java med Spring, TypeScript, JavaScript och Python. Du kommer också lära dig hur du felsöker och testar dina MCP-servrar, hanterar API:er och distribuerar lösningar till molnet med Azure. Dessa praktiska resurser är utformade för att påskynda din inlärning och hjälpa dig att tryggt bygga robusta, produktionsklara MCP-applikationer.
Översikt
Denna lektion fokuserar på praktiska aspekter av MCP-implementation över flera programmeringsspråk. Vi kommer att utforska hur du använder MCP SDK:er i C#, Java med Spring, TypeScript, JavaScript och Python för att bygga robusta applikationer, felsöka och testa MCP-servrar samt skapa återanvändbara resurser, prompts och verktyg.
Lärandemål
I slutet av denna lektion kommer du att kunna:
- Implementera MCP-lösningar med officiella SDK:er i olika programmeringsspråk
- Felsöka och testa MCP-servrar systematiskt
- Skapa och använda serverfunktioner (Resurser, Prompts och Verktyg)
- Designa effektiva MCP-arbetsflöden för komplexa uppgifter
- Optimera MCP-implementationer för prestanda och tillförlitlighet
Officiella SDK-resurser
Model Context Protocol erbjuder officiella SDK:er för flera språk (i linje med MCP Specification 2025-11-25):
- C# SDK
- Java med Spring SDK Obs: kräver beroende av Project Reactor. (Se diskussionsfråga 246.)
- TypeScript SDK
- Python SDK
- Kotlin SDK
- Go SDK
Arbeta med MCP SDK:er
Detta avsnitt ger praktiska exempel på att implementera MCP med flera programmeringsspråk. Du kan hitta kodexempel i samples-katalogen organiserad efter språk.
Tillgängliga exempel
Förrådet inkluderar exempelimplementationer i följande språk:
Varje exempel demonstrerar nyckelbegrepp och implementationsmönster för MCP för det specifika språket och ekosystemet.
Praktiska guider
Ytterligare guider för praktisk MCP-implementation:
- Pagination and Large Result Sets - Hantera kursorbasserad paginering för verktyg, resurser och stora dataset
Kärnfunktioner för servern
MCP-servrar kan implementera en kombination av dessa funktioner:
Resurser
Resurser ger kontext och data för användaren eller AI-modellen att använda:
- Dokumentförråd
- Kunskapsbaser
- Strukturerade datakällor
- Filsystem
Prompts
Prompts är mallade meddelanden och arbetsflöden för användare:
- Fördefinierade konversationsmallar
- Vägledda interaktionsmönster
- Specialiserade dialogstrukturer
Verktyg
Verktyg är funktioner för AI-modellen att exekvera:
- Databehandlingsverktyg
- Integrationer med externa API:er
- Beräkningsmöjligheter
- Sökmöjligheter
Exempelimplementationer: C# Implementation
Det officiella C# SDK-förrådet innehåller flera exempelimplementationer som demonstrerar olika aspekter av MCP:
- Grundläggande MCP-klient: Enkel exempel som visar hur man skapar en MCP-klient och anropar verktyg
- Grundläggande MCP-server: Minimal serverimplementering med grundläggande verktygsregistrering
- Avancerad MCP-server: Fullfjädrad server med verktygsregistrering, autentisering och felhantering
- ASP.NET-integration: Exempel som demonstrerar integration med ASP.NET Core
- Verktygsimplementeringsmönster: Olika mönster för att implementera verktyg med olika komplexitetsnivåer
MCP C# SDK är i förhandsversion och API:erna kan förändras. Vi kommer att kontinuerligt uppdatera denna blogg i takt med att SDK utvecklas.
Nyckelfunktioner
För kompletta C# implementationsexempel, besök det officiella C# SDK-exempelförrådet
Exempelimplementation: Java med Spring Implementation
Java med Spring SDK erbjuder robusta MCP-implementationsalternativ med företagsklassfunktioner.
Nyckelfunktioner
- Integration med Spring Framework
- Stark typ-säkerhet
- Stöd för reaktiv programmering
- Omfattande felhantering
För en komplett Java med Spring implementation, se Java med Spring-exempel i exempel-katalogen.
Exempelimplementation: JavaScript Implementation
JavaScript SDK ger ett lättviktigt och flexibelt tillvägagångssätt för MCP-implementation.
Nyckelfunktioner
- Stöd för Node.js och webbläsare
- Promise-baserat API
- Enkel integration med Express och andra ramverk
- WebSocket-stöd för strömning
För ett komplett JavaScript-implementationsprov, se JavaScript-exempel i exempel-katalogen.
Exempelimplementation: Python Implementation
Python SDK erbjuder ett pythoniskt tillvägagångssätt för MCP-implementation med utmärkta ML-ramverksintegrationer.
Nyckelfunktioner
- Async/await-stöd med asyncio
- FastAPI-integration
- Enkel verktygsregistrering
- Naturlig integration med populära ML-bibliotek
För ett komplett Python-implementationsprov, se Python-exempel i exempel-katalogen.
API-hantering
Azure API Management är ett utmärkt svar på hur vi kan säkra MCP-servrar. Idén är att sätta en Azure API Management-instans framför din MCP-server och låta den hantera funktioner du sannolikt vill ha som:
- begränsning av antal anrop
- token-hantering
- övervakning
- lastbalansering
- säkerhet
Azure-exempel
Här är ett Azure-exempel som gör precis det, dvs skapar en MCP-server och säkrar den med Azure API Management.
Se hur auktoriseringsflödet sker i bilden nedan:
I bilden ovan sker följande:
- Autentisering/Auktorisering sker med Microsoft Entra.
- Azure API Management agerar som en gateway och använder policies för att styra och hantera trafik.
- Azure Monitor loggar alla förfrågningar för vidare analys.
Auktoriseringsflöde
Låt oss titta närmare på auktoriseringsflödet:
MCP auktoriseringsspecifikation
Läs mer om MCP Authorization specification
Distribuera Remote MCP Server till Azure
Låt oss se om vi kan distribuera exemplet vi nämnde tidigare:
-
Klona förrådet
git clone https://github.com/Azure-Samples/remote-mcp-apim-functions-python.git cd remote-mcp-apim-functions-python -
Registrera
Microsoft.App-resursleverantör.- Om du använder Azure CLI, kör
az provider register --namespace Microsoft.App --wait. - Om du använder Azure PowerShell, kör
Register-AzResourceProvider -ProviderNamespace Microsoft.App. Kör sedan(Get-AzResourceProvider -ProviderNamespace Microsoft.App).RegistrationStateefter en stund för att kontrollera om registreringen är klar.
- Om du använder Azure CLI, kör
-
Kör detta azd-kommando för att provisionera API Management-tjänsten, funktionsappen (med kod) och alla andra nödvändiga Azure-resurser
azd upDetta kommando bör distribuera alla molnresurser på Azure
Testa din server med MCP Inspector
-
I ett nytt terminalfönster, installera och kör MCP Inspector
npx @modelcontextprotocol/inspectorDu bör se ett gränssnitt som liknar:
-
CTRL-klicka för att ladda MCP Inspector webbappen från den URL som visas av appen (t.ex. http://127.0.0.1:6274/#resources)
-
Ställ in transporttypen till
SSE -
Ange URL:en till din körande API Management SSE-endpoint som visas efter
azd upoch Anslut:https://<apim-servicename-from-azd-output>.azure-api.net/mcp/sse -
Lista verktyg. Klicka på ett verktyg och Kör verktyg.
Om alla steg fungerat bör du nu vara ansluten till MCP-servern och ha kunnat anropa ett verktyg.
MCP-servrar för Azure
Remote-mcp-functions: Denna uppsättning förråd är snabbstartsmallar för att bygga och distribuera anpassade fjärr-MCP (Model Context Protocol) servrar med Azure Functions med Python, C# .NET eller Node/TypeScript.
Exemplen erbjuder en komplett lösning som låter utvecklare:
- Bygga och köra lokalt: Utveckla och felsöka en MCP-server på en lokal maskin
- Distribuera till Azure: Enkel distribution till molnet med ett enkelt
azd up-kommando - Ansluta från klienter: Anslut till MCP-servern från olika klienter inklusive VS Code:s Copilot agentläge och MCP Inspector-verktyget
Nyckelfunktioner
- Säkerhet som standard: MCP-servern är säkrad med nycklar och HTTPS
- Autentiseringsalternativ: Stöder OAuth med inbyggd auth och/eller API Management
- Nätverksisolering: Tillåter nätverksisolering med Azure Virtual Networks (VNET)
- Serverless-arkitektur: Utnyttjar Azure Functions för skalbar, händelsedriven körning
- Lokal utveckling: Omfattande stöd för lokal utveckling och felsökning
- Enkel distribution: Strömlinjeformad distributionsprocess till Azure
Förrådet innehåller alla nödvändiga konfigurationsfiler, källkod och infrastrukturbeskrivningar för att snabbt komma igång med en produktionsklar MCP-serverimplementation.
-
Azure Remote MCP Functions Python - Exempelimplementation av MCP med Azure Functions och Python
-
Azure Remote MCP Functions .NET - Exempelimplementation av MCP med Azure Functions och C# .NET
-
Azure Remote MCP Functions Node/Typescript - Exempelimplementation av MCP med Azure Functions och Node/TypeScript.
Viktiga lärdomar
- MCP SDK:er erbjuder språk-specifika verktyg för att implementera robusta MCP-lösningar
- Felsöknings- och testprocessen är avgörande för pålitliga MCP-applikationer
- Återanvändbara promptmallar möjliggör konsekventa AI-interaktioner
- Väl utformade arbetsflöden kan orkestrera komplexa uppgifter med flera verktyg
- Implementering av MCP-lösningar kräver hänsyn till säkerhet, prestanda och felhantering
Övning
Designa ett praktiskt MCP-arbetsflöde som adresserar ett verkligt problem inom ditt område:
- Identifiera 3-4 verktyg som skulle vara användbara för att lösa detta problem
- Skapa ett arbetsflödesdiagram som visar hur dessa verktyg interagerar
- Implementera en grundläggande version av ett av verktygen med ditt föredragna språk
- Skapa en promptmall som hjälper modellen att effektivt använda ditt verktyg
Ytterligare resurser
Vad är nästa
Nästa: Avancerade ämnen
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 originalspråk bör betraktas som den auktoritativa källan. För viktig 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.



