(Klik på billedet ovenfor for at se videoen til denne lektion)
Praktisk implementering er der, hvor kraften i Model Context Protocol (MCP) bliver håndgribelig. Selvom det er vigtigt at forstå teorien og arkitekturen bag MCP, opstår den reelle værdi, når du anvender disse koncepter til at bygge, teste og implementere løsninger, der løser virkelige problemer. Dette kapitel bygger bro mellem konceptuel viden og praktisk udvikling og guider dig gennem processen med at bringe MCP-baserede applikationer til live.
Uanset om du udvikler intelligente assistenter, integrerer AI i forretningsprocesser eller bygger skræddersyede værktøjer til databehandling, giver MCP en fleksibel grundstruktur. Dets sprogagnostiske design og officielle SDK'er til populære programmeringssprog gør det tilgængeligt for en bred vifte af udviklere. Ved at udnytte disse SDK'er kan du hurtigt prototype, iterere og skalere dine løsninger på tværs af forskellige platforme og miljøer.
I de følgende afsnit finder du praktiske eksempler, kodeeksempler og implementeringsstrategier, der viser, hvordan du kan implementere MCP i C#, Java med Spring, TypeScript, JavaScript og Python. Du vil også lære, hvordan du debugger og tester dine MCP-servere, administrerer API'er og implementerer løsninger i skyen ved hjælp af Azure. Disse praktiske ressourcer er designet til at accelerere din læring og hjælpe dig med selvtillid til at bygge robuste, produktionsklare MCP-applikationer.
Denne lektion fokuserer på de praktiske aspekter af MCP-implementering på tværs af flere programmeringssprog. Vi vil udforske, hvordan man bruger MCP SDK'er i C#, Java med Spring, TypeScript, JavaScript og Python til at bygge robuste applikationer, debugge og teste MCP-servere samt skabe genanvendelige ressourcer, prompts og værktøjer.
Ved afslutningen af denne lektion vil du være i stand til at:
- Implementere MCP-løsninger ved hjælp af officielle SDK'er i forskellige programmeringssprog
- Systematisk debugge og teste MCP-servere
- Oprette og bruge serverfunktioner (Ressourcer, Prompts og Værktøjer)
- Designe effektive MCP-arbejdsgange til komplekse opgaver
- Optimere MCP-implementeringer for ydeevne og pålidelighed
Model Context Protocol tilbyder officielle SDK'er til flere sprog:
- C# SDK
- Java med Spring SDK Bemærk: kræver afhængighed af Project Reactor. (Se diskussionsemne 246.)
- TypeScript SDK
- Python SDK
- Kotlin SDK
Dette afsnit giver praktiske eksempler på implementering af MCP på tværs af flere programmeringssprog. Du kan finde kodeeksempler i samples-mappen organiseret efter sprog.
Repositoryet inkluderer eksempelimplementeringer på følgende sprog:
Hvert eksempel demonstrerer centrale MCP-koncepter og implementeringsmønstre for det specifikke sprog og økosystem.
MCP-servere kan implementere en hvilken som helst kombination af disse funktioner:
Ressourcer giver kontekst og data til brugeren eller AI-modellen:
- Dokumentarkiver
- Vidensbaser
- Strukturerede datakilder
- Filsystemer
Prompts er skabelonbeskeder og arbejdsgange til brugere:
- Foruddefinerede samtaleskabeloner
- Guidede interaktionsmønstre
- Specialiserede dialogstrukturer
Værktøjer er funktioner, som AI-modellen kan udføre:
- Databehandlingsværktøjer
- Integrationer med eksterne API'er
- Beregningskapaciteter
- Søgefunktionalitet
Det officielle C# SDK-repository indeholder flere eksempelimplementeringer, der demonstrerer forskellige aspekter af MCP:
- Grundlæggende MCP-klient: Simpelt eksempel, der viser, hvordan man opretter en MCP-klient og kalder værktøjer
- Grundlæggende MCP-server: Minimal serverimplementering med grundlæggende værktøjsregistrering
- Avanceret MCP-server: Fuldt udstyret server med værktøjsregistrering, autentifikation og fejlhåndtering
- ASP.NET-integration: Eksempler, der viser integration med ASP.NET Core
- Mønstre for værktøjsimplementering: Forskellige mønstre til implementering af værktøjer med forskellig kompleksitet
C# MCP SDK er i preview, og API'er kan ændre sig. Vi vil løbende opdatere denne blog, efterhånden som SDK'et udvikler sig.
For komplette C#-implementeringseksempler, besøg det officielle C# SDK-eksempelsrepository
Java med Spring SDK tilbyder robuste MCP-implementeringsmuligheder med funktioner i virksomhedsklasse.
- Integration med Spring Framework
- Stærk typesikkerhed
- Understøttelse af reaktiv programmering
- Omfattende fejlhåndtering
For et komplet Java med Spring-implementeringseksempel, se Java med Spring-eksempel i eksempelmappen.
JavaScript SDK giver en let og fleksibel tilgang til MCP-implementering.
- Understøttelse af Node.js og browser
- Promise-baseret API
- Nem integration med Express og andre frameworks
- WebSocket-understøttelse til streaming
For et komplet JavaScript-implementeringseksempel, se JavaScript-eksempel i eksempelmappen.
Python SDK tilbyder en Pythonisk tilgang til MCP-implementering med fremragende integrationer til ML-rammeværker.
- Async/await-understøttelse med asyncio
- FastAPI-integration
- Enkel værktøjsregistrering
- Naturlig integration med populære ML-biblioteker
For et komplet Python-implementeringseksempel, se Python-eksempel i eksempelmappen.
Azure API Management er en fremragende løsning til at sikre MCP-servere. Ideen er at placere en Azure API Management-instans foran din MCP-server og lade den håndtere funktioner, som du sandsynligvis vil have, såsom:
- Hastighedsbegrænsning
- Tokenadministration
- Overvågning
- Belastningsbalancering
- Sikkerhed
Her er et Azure-eksempel, der gør netop dette, dvs. opretter en MCP-server og sikrer den med Azure API Management.
Se, hvordan autorisationsflowet fungerer i nedenstående billede:
I det foregående billede sker følgende:
- Autentifikation/autorisation finder sted ved hjælp af Microsoft Entra.
- Azure API Management fungerer som en gateway og bruger politikker til at dirigere og administrere trafik.
- Azure Monitor logger alle forespørgsler til yderligere analyse.
Lad os se nærmere på autorisationsflowet:
Lær mere om MCP-autorisationsspecifikationen
Lad os se, om vi kan implementere det eksempel, vi nævnte tidligere:
-
Klon repoen
git clone https://github.com/Azure-Samples/remote-mcp-apim-functions-python.git cd remote-mcp-apim-functions-python -
Registrer
Microsoft.Appressourceudbyder.- Hvis du bruger Azure CLI, skal du køre
az provider register --namespace Microsoft.App --wait. - Hvis du bruger Azure PowerShell, skal du køre
Register-AzResourceProvider -ProviderNamespace Microsoft.App. Kør derefter(Get-AzResourceProvider -ProviderNamespace Microsoft.App).RegistrationStateefter et stykke tid for at kontrollere, om registreringen er fuldført.
- Hvis du bruger Azure CLI, skal du køre
-
Kør denne azd-kommando for at klargøre API Management-tjenesten, Function App (med kode) og alle andre nødvendige Azure-ressourcer
azd up
Denne kommando bør implementere alle cloud-ressourcer på Azure
-
I et nyt terminalvindue, installer og kør MCP Inspector
npx @modelcontextprotocol/inspector
Du bør se en grænseflade, der ligner:
-
CTRL-klik for at indlæse MCP Inspector-webappen fra den URL, der vises af appen (f.eks. http://127.0.0.1:6274/#resources)
-
Indstil transporttypen til
SSE -
Indstil URL'en til din kørende API Management SSE-endpoint, der vises efter
azd up, og Forbind:https://<apim-servicename-from-azd-output>.azure-api.net/mcp/sse
-
List Tools. Klik på et værktøj og Run Tool.
Hvis alle trin er udført korrekt, bør du nu være forbundet til MCP-serveren og kunne kalde et værktøj.
Remote-mcp-functions: Dette sæt af repositories er en hurtigstartsskabelon til at bygge og implementere brugerdefinerede remote MCP (Model Context Protocol) servere ved hjælp af Azure Functions med Python, C# .NET eller Node/TypeScript.
Eksemplerne giver en komplet løsning, der gør det muligt for udviklere at:
- Bygge og køre lokalt: Udvikle og debugge en MCP-server på en lokal maskine
- Implementere til Azure: Nem implementering til skyen med en simpel
azd up-kommando - Forbinde fra klienter: Forbinde til MCP-serveren fra forskellige klienter, herunder VS Codes Copilot-agenttilstand og MCP Inspector-værktøjet
- Sikkerhed som standard: MCP-serveren er sikret ved hjælp af nøgler og HTTPS
- Autentifikationsmuligheder: Understøtter OAuth ved hjælp af indbygget autentifikation og/eller API Management
- Netværksisolering: Muliggør netværksisolering ved hjælp af Azure Virtual Networks (VNET)
- Serverløs arkitektur: Udnytter Azure Functions til skalerbar, hændelsesdrevet udførelse
- Lokal udvikling: Omfattende lokal udviklings- og debug-understøttelse
- Enkel implementering: Strømlinet implementeringsproces til Azure
Repositoryet inkluderer alle nødvendige konfigurationsfiler, kildekode og infrastrukturbeskrivelser for hurtigt at komme i gang med en produktionsklar MCP-serverimplementering.
-
Azure Remote MCP Functions Python - Eksempel på implementering af MCP ved hjælp af Azure Functions med Python
-
Azure Remote MCP Functions .NET - Eksempel på implementering af MCP ved hjælp af Azure Functions med C# .NET
-
Azure Remote MCP Functions Node/Typescript - Eksempel på implementering af MCP ved hjælp af Azure Functions med Node/TypeScript.
- MCP SDK'er giver sprog-specifikke værktøjer til at implementere robuste MCP-løsninger
- Debugging og testning er afgørende for pålidelige MCP-applikationer
- Genanvendelige promptskabeloner muliggør konsistente AI-interaktioner
- Veludformede arbejdsgange kan orkestrere komplekse opgaver ved hjælp af flere værktøjer
- Implementering af MCP-løsninger kræver overvejelse af sikkerhed, ydeevne og fejlhåndtering
Design en praktisk MCP-arbejdsgang, der adresserer et virkeligt problem i din branche:
- Identificer 3-4 værktøjer, der ville være nyttige til at løse dette problem
- Opret et arbejdsgangsdiagram, der viser, hvordan disse værktøjer interagerer
- Implementer en grundlæggende version af et af værktøjerne ved hjælp af dit foretrukne sprog
- Opret en promptskabelon, der hjælper modellen med effektivt at bruge dit værktøj
Næste: Avancerede emner
Ansvarsfraskrivelse:
Dette dokument er blevet oversat ved hjælp af AI-oversættelsestjenesten Co-op Translator. Selvom vi bestræber os på nøjagtighed, skal det bemærkes, at automatiserede oversættelser kan indeholde fejl eller unøjagtigheder. Det originale dokument på dets oprindelige sprog bør betragtes som den autoritative kilde. For kritisk information anbefales professionel menneskelig oversættelse. Vi påtager os ikke ansvar for eventuelle misforståelser eller fejltolkninger, der måtte opstå som følge af brugen af denne oversættelse.



