Skip to content

Latest commit

 

History

History
272 lines (178 loc) · 13 KB

File metadata and controls

272 lines (178 loc) · 13 KB

Praktična implementacija

Praktična implementacija je mjesto gdje snaga Model Context Protocola (MCP) postaje opipljiva. Iako je važno razumjeti teoriju i arhitekturu MCP-a, prava vrijednost dolazi kada ove koncepte primijenite za izgradnju, testiranje i implementaciju rješenja koja rješavaju stvarne probleme. Ova poglavlja premošćuju jaz između konceptualnog znanja i praktičnog razvoja, vodeći vas kroz proces oživljavanja aplikacija temeljenih na MCP-u.

Bilo da razvijate inteligentne asistente, integrirate AI u poslovne tokove rada ili gradite prilagođene alate za obradu podataka, MCP pruža fleksibilnu osnovu. Njegov dizajn neovisan o jeziku i službeni SDK-ovi za popularne programske jezike čine ga dostupnim širokom spektru programera. Korištenjem ovih SDK-ova možete brzo napraviti prototip, iterirati i skalirati svoja rješenja na različitim platformama i okruženjima.

U sljedećim odjeljcima pronaći ćete praktične primjere, uzorke koda i strategije implementacije koje pokazuju kako primijeniti MCP u C#, Javi, TypeScriptu, JavaScriptu i Pythonu. Također ćete naučiti kako otklanjati pogreške i testirati MCP servere, upravljati API-jima i implementirati rješenja u oblaku koristeći Azure. Ovi praktični resursi osmišljeni su da ubrzaju vaše učenje i pomognu vam samouvjereno graditi robusne, spremne za produkciju MCP aplikacije.

Pregled

Ova lekcija fokusira se na praktične aspekte implementacije MCP-a u više programskih jezika. Istražit ćemo kako koristiti MCP SDK-ove u C#, Javi, TypeScriptu, JavaScriptu i Pythonu za izgradnju robusnih aplikacija, otklanjanje pogrešaka i testiranje MCP servera te kreiranje ponovljivih resursa, promptova i alata.

Ciljevi učenja

Do kraja ove lekcije moći ćete:

  • Implementirati MCP rješenja koristeći službene SDK-ove u različitim programskim jezicima
  • Sustavno otklanjati pogreške i testirati MCP servere
  • Kreirati i koristiti značajke servera (Resurse, Prompte i Alate)
  • Dizajnirati učinkovite MCP tokove rada za složene zadatke
  • Optimizirati MCP implementacije za performanse i pouzdanost

Službeni SDK resursi

Model Context Protocol nudi službene SDK-ove za više jezika:

Rad s MCP SDK-ovima

Ovaj odjeljak pruža praktične primjere implementacije MCP-a u više programskih jezika. Uzorke koda možete pronaći u direktoriju samples organiziranom po jezicima.

Dostupni uzorci

Repozitorij uključuje primjere implementacija na sljedećim jezicima:

Svaki primjer demonstrira ključne MCP koncepte i obrasce implementacije za taj specifični jezik i ekosustav.

Osnovne značajke servera

MCP serveri mogu implementirati bilo koju kombinaciju ovih značajki:

Resursi

Resursi pružaju kontekst i podatke koje korisnik ili AI model mogu koristiti:

  • Spremišta dokumenata
  • Baze znanja
  • Strukturirani izvori podataka
  • Datotečni sustavi

Prompti

Prompti su predlošci poruka i tokova rada za korisnike:

  • Unaprijed definirani predlošci razgovora
  • Vođeni obrasci interakcije
  • Specijalizirane strukture dijaloga

Alati

Alati su funkcije koje AI model može izvršavati:

  • Alati za obradu podataka
  • Integracije s vanjskim API-jima
  • Računalne mogućnosti
  • Funkcionalnost pretraživanja

Primjeri implementacije: C#

Službeni C# SDK repozitorij sadrži nekoliko primjera implementacija koje pokazuju različite aspekte MCP-a:

  • Osnovni MCP klijent: Jednostavan primjer kako kreirati MCP klijenta i pozivati alate
  • Osnovni MCP server: Minimalna implementacija servera s osnovnom registracijom alata
  • Napredni MCP server: Server s punim značajkama, uključujući registraciju alata, autentifikaciju i rukovanje pogreškama
  • Integracija s ASP.NET: Primjeri integracije s ASP.NET Core
  • Obrasci implementacije alata: Razni obrasci za implementaciju alata različitih razina složenosti

MCP C# SDK je u preview fazi i API-ji se mogu mijenjati. Ovaj blog ćemo kontinuirano ažurirati kako SDK bude napredovao.

Ključne značajke

Za potpune primjere implementacije u C#, posjetite službeni repozitorij C# SDK primjera

Primjer implementacije: Java implementacija

Java SDK nudi robusne opcije implementacije MCP-a s enterprise značajkama.

Ključne značajke

  • Integracija sa Spring Frameworkom
  • Snažna tipizacija
  • Podrška za reaktivno programiranje
  • Sveobuhvatno rukovanje pogreškama

Za potpuni primjer implementacije u Javi, pogledajte Java primjer u direktoriju uzoraka.

Primjer implementacije: JavaScript implementacija

JavaScript SDK pruža lagan i fleksibilan pristup implementaciji MCP-a.

Ključne značajke

  • Podrška za Node.js i preglednike
  • API baziran na Promise-ima
  • Jednostavna integracija s Expressom i drugim frameworkima
  • Podrška za WebSocket za streaming

Za potpuni primjer implementacije u JavaScriptu, pogledajte JavaScript primjer u direktoriju uzoraka.

Primjer implementacije: Python implementacija

Python SDK nudi pitoničan pristup implementaciji MCP-a s izvrsnim integracijama za ML frameworke.

Ključne značajke

  • Podrška za async/await s asyncio
  • Integracija s FastAPI-jem
  • Jednostavna registracija alata
  • Izvorna integracija s popularnim ML bibliotekama

Za potpuni primjer implementacije u Pythonu, pogledajte Python primjer u direktoriju uzoraka.

Upravljanje API-jima

Azure API Management je izvrsno rješenje za osiguranje MCP servera. Ideja je postaviti Azure API Management instancu ispred vašeg MCP servera i dopustiti joj da upravlja značajkama koje ćete vjerojatno htjeti, kao što su:

  • ograničavanje brzine (rate limiting)
  • upravljanje tokenima
  • nadzor
  • balansiranje opterećenja
  • sigurnost

Azure primjer

Evo Azure primjera koji radi upravo to, tj. kreira MCP server i osigurava ga Azure API Managementom.

Pogledajte kako autorizacijski tijek izgleda na slici ispod:

APIM-MCP

Na prethodnoj slici događa se sljedeće:

  • Autentikacija/Autorizacija se odvija pomoću Microsoft Entra.
  • Azure API Management djeluje kao gateway i koristi politike za usmjeravanje i upravljanje prometom.
  • Azure Monitor bilježi sve zahtjeve za daljnju analizu.

Tijek autorizacije

Pogledajmo tijek autorizacije detaljnije:

Sequence Diagram

MCP specifikacija autorizacije

Saznajte više o MCP specifikaciji autorizacije

Implementacija udaljenog MCP servera na Azure

Pogledajmo možemo li implementirati ranije spomenuti primjer:

  1. Klonirajte repozitorij

    git clone https://github.com/Azure-Samples/remote-mcp-apim-functions-python.git
    cd remote-mcp-apim-functions-python
  2. Registrirajte Microsoft.App resource providera.

    • Ako koristite Azure CLI, pokrenite az provider register --namespace Microsoft.App --wait.
    • Ako koristite Azure PowerShell, pokrenite Register-AzResourceProvider -ProviderNamespace Microsoft.App. Nakon nekog vremena provjerite status registracije naredbom (Get-AzResourceProvider -ProviderNamespace Microsoft.App).RegistrationState.
  3. Pokrenite ovu azd naredbu za provisioniranje API Management servisa, funkcijske aplikacije (s kodom) i svih ostalih potrebnih Azure resursa

    azd up

    Ova naredba bi trebala implementirati sve cloud resurse na Azureu

Testiranje vašeg servera s MCP Inspectorom

  1. U novom terminal prozoru, instalirajte i pokrenite MCP Inspector

    npx @modelcontextprotocol/inspector

    Trebali biste vidjeti sučelje slično ovom:

    Connect to Node inspector

  2. CTRL klikom otvorite MCP Inspector web aplikaciju s URL-a koji aplikacija prikazuje (npr. http://127.0.0.1:6274/#resources)

  3. Postavite tip transporta na SSE

  4. Postavite URL na vaš aktivni API Management SSE endpoint prikazan nakon azd up i Povežite se:

    https://<apim-servicename-from-azd-output>.azure-api.net/mcp/sse
  5. Popis alata. Kliknite na alat i Pokreni alat.

Ako su svi koraci prošli uspješno, sada ste povezani s MCP serverom i uspjeli ste pozvati alat.

MCP serveri za Azure

Remote-mcp-functions: Ovaj skup repozitorija je predložak za brzo pokretanje za izgradnju i implementaciju prilagođenih udaljenih MCP (Model Context Protocol) servera koristeći Azure Functions s Python, C# .NET ili Node/TypeScript.

Primjeri pružaju kompletno rješenje koje omogućuje programerima da:

  • Izgrade i pokrenu lokalno: razvijaju i otklanjaju pogreške MCP servera na lokalnom računalu
  • Implementiraju na Azure: jednostavno implementiraju u oblak s jednom azd up naredbom
  • Povežu se s klijentima: povezuju se s MCP serverom iz različitih klijenata uključujući VS Code-ov Copilot agent mod i MCP Inspector alat

Ključne značajke:

  • Sigurnost po dizajnu: MCP server je osiguran pomoću ključeva i HTTPS-a
  • Opcije autentikacije: podržava OAuth koristeći ugrađenu autentikaciju i/ili API Management
  • Izolacija mreže: omogućuje mrežnu izolaciju koristeći Azure Virtual Networks (VNET)
  • Serverless arhitektura: koristi Azure Functions za skalabilno, događajima vođeno izvršavanje
  • Lokalni razvoj: sveobuhvatna podrška za lokalni razvoj i otklanjanje pogrešaka
  • Jednostavna implementacija: pojednostavljen proces implementacije na Azure

Repozitorij uključuje sve potrebne konfiguracijske datoteke, izvorni kod i definicije infrastrukture za brzo započinjanje s produkcijski spremnom MCP server implementacijom.

Ključne spoznaje

  • MCP SDK-ovi pružaju jezično specifične alate za implementaciju robusnih MCP rješenja
  • Proces otklanjanja pogrešaka i testiranja je ključan za pouzdane MCP aplikacije
  • Ponovno upotrebljivi predlošci promptova omogućuju dosljedne AI interakcije
  • Dobro dizajnirani tokovi rada mogu orkestrirati složene zadatke koristeći više alata
  • Implementacija MCP rješenja zahtijeva razmatranje sigurnosti, performansi i rukovanja pogreškama

Vježba

Dizajnirajte praktični MCP tok rada koji rješava stvarni problem u vašem području:

  1. Identificirajte 3-4 alata koji bi bili korisni za rješavanje tog problema
  2. Izradite dijagram toka rada koji prikazuje kako ti alati međusobno djeluju
  3. Implementirajte osnovnu verziju jednog od alata koristeći željeni programski jezik
  4. Kreirajte predložak prompta koji će pomoći modelu da učinkovito koristi vaš alat

Dodatni resursi


Sljedeće: Napredne teme

Odricanje od odgovornosti:
Ovaj dokument je preveden korištenjem AI usluge za prevođenje Co-op Translator. Iako težimo točnosti, imajte na umu da automatski prijevodi mogu sadržavati pogreške ili netočnosti. Izvorni dokument na izvornom jeziku treba smatrati službenim i autoritativnim izvorom. Za kritične informacije preporučuje se profesionalni ljudski prijevod. Ne snosimo odgovornost za bilo kakve nesporazume ili pogrešna tumačenja koja proizlaze iz korištenja ovog prijevoda.