(Кликните на слику изнад да бисте погледали видео лекцију)
Практична имплементација је место где снага Протокола Контекста Модела (MCP) постаје опипљива. Иако је разумевање теорије и архитектуре MCP-а важно, права вредност се појављује када примените ове концепте за изградњу, тестирање и имплементацију решења која решавају стварне проблеме. Ово поглавље премошћује јаз између концептуалног знања и практичног развоја, водећи вас кроз процес оживљавања апликација заснованих на MCP-у.
Без обзира да ли развијате интелигентне асистенте, интегришете вештачку интелигенцију у пословне токове или градите прилагођене алате за обраду података, MCP пружа флексибилну основу. Његов дизајн независан од језика и званични SDK-ови за популарне програмске језике чине га доступним широком спектру програмера. Коришћењем ових SDK-ова можете брзо прототипирати, итеративно развијати и скалирати своја решења на различитим платформама и окружењима.
У наредним одељцима наћи ћете практичне примере, узорке кода и стратегије имплементације које демонстрирају како применити MCP у C#, Java са Spring-ом, TypeScript-у, JavaScript-у и Python-у. Такође ћете научити како да дебагујете и тестирате MCP сервере, управљате API-јима и имплементирате решења у облаку користећи Azure. Ови практични ресурси су дизајнирани да убрзају ваше учење и помогну вам да са самопоуздањем изградите робусне, продукцијски спремне MCP апликације.
Ова лекција се фокусира на практичне аспекте имплементације MCP-а у више програмских језика. Истражићемо како користити MCP SDK-ове у C#, Java са Spring-ом, TypeScript-у, JavaScript-у и Python-у за изградњу робусних апликација, дебаговање и тестирање MCP сервера, као и креирање поново употребљивих ресурса, промптова и алата.
До краја ове лекције, бићете у могућности да:
- Имплементирате MCP решења користећи званичне SDK-ове у различитим програмским језицима
- Систематски дебагујете и тестирате MCP сервере
- Креирате и користите серверске функције (Ресурсе, Промптове и Алате)
- Дизајнирате ефикасне MCP радне токове за сложене задатке
- Оптимизујете MCP имплементације за перформансе и поузданост
Протокол Контекста Модела нуди званичне SDK-ове за више језика:
- C# SDK
- Java са Spring SDK Напомена: захтева зависност од Project Reactor. (Погледајте дискусију, питање 246.)
- TypeScript SDK
- Python SDK
- Kotlin SDK
Овај одељак пружа практичне примере имплементације MCP-а у више програмских језика. Узорци кода се налазе у директоријуму samples, организовани по језицима.
Репозиторијум укључује узорке имплементације на следећим језицима:
Сваки узорак демонстрира кључне концепте MCP-а и обрасце имплементације за одређени језик и екосистем.
MCP сервери могу имплементирати било коју комбинацију следећих функција:
Ресурси пружају контекст и податке које корисник или AI модел могу користити:
- Репозиторијуми докумената
- Базе знања
- Структурирани извори података
- Фајл системи
Промптови су унапред дефинисане поруке и радни токови за кориснике:
- Унапред дефинисани шаблони разговора
- Вођени обрасци интеракције
- Специјализоване структуре дијалога
Алати су функције које AI модел може извршавати:
- Услужни програми за обраду података
- Интеграције са спољним API-јима
- Рачунарске могућности
- Функционалност претраге
Званични C# SDK репозиторијум садржи неколико узорака имплементације који демонстрирају различите аспекте MCP-а:
- Основни MCP клијент: Једноставан пример који показује како креирати MCP клијента и позвати алате
- Основни MCP сервер: Минимална имплементација сервера са основном регистрацијом алата
- Напредни MCP сервер: Потпуно опремљен сервер са регистрацијом алата, аутентификацијом и обрадом грешака
- Интеграција са ASP.NET-ом: Примери који демонстрирају интеграцију са ASP.NET Core-ом
- Обрасци имплементације алата: Различити обрасци за имплементацију алата са различитим нивоима сложености
C# MCP SDK је у прегледној фази и API-ји могу бити измењени. Континуирано ћемо ажурирати овај блог како се SDK развија.
- C# MCP Nuget ModelContextProtocol
- Изградња вашег првог MCP сервера.
За комплетне узорке имплементације у C#, посетите званични C# SDK репозиторијум узорака
Java са Spring SDK нуди робусне опције имплементације MCP-а са функцијама на нивоу предузећа.
- Интеграција са Spring Framework-ом
- Јака типска сигурност
- Подршка за реактивно програмирање
- Свеобухватна обрада грешака
За комплетан узорак имплементације у Java са Spring-ом, погледајте Java са Spring узорак у директоријуму узорака.
JavaScript SDK пружа лаган и флексибилан приступ имплементацији MCP-а.
- Подршка за Node.js и претраживаче
- API заснован на Promise-има
- Лака интеграција са Express-ом и другим оквирима
- Подршка за WebSocket за стримовање
За комплетан узорак имплементације у JavaScript-у, погледајте JavaScript узорак у директоријуму узорака.
Python SDK нуди Python-ски приступ имплементацији MCP-а са одличним интеграцијама за ML оквире.
- Подршка за Async/await са asyncio
- Интеграција са FastAPI-јем
- Једноставна регистрација алата
- Нативна интеграција са популарним ML библиотекама
За комплетан узорак имплементације у Python-у, погледајте Python узорак у директоријуму узорака.
Azure API Management је одлично решење за обезбеђивање MCP сервера. Идеја је да поставите Azure API Management инстанцу испред вашег MCP сервера и дозволите јој да управља функцијама које су вам вероватно потребне, као што су:
- Ограничење брзине
- Управљање токенима
- Надгледање
- Балансирање оптерећења
- Безбедност
Ево Azure узорка који управо то ради, тј. креира MCP сервер и обезбеђује га Azure API Management-ом.
Погледајте како изгледа ток ауторизације на слици испод:
На претходној слици, дешава се следеће:
- Аутентификација/ауторизација се обавља коришћењем Microsoft Entra.
- Azure API Management делује као пролаз и користи политике за усмеравање и управљање саобраћајем.
- Azure Monitor бележи све захтеве за даљу анализу.
Детаљније погледајмо ток ауторизације:
Сазнајте више о MCP спецификацији ауторизације
Хајде да видимо да ли можемо имплементирати узорак који смо раније поменули:
-
Клонирајте репозиторијум
git clone https://github.com/Azure-Samples/remote-mcp-apim-functions-python.git cd remote-mcp-apim-functions-python -
Региструјте
Microsoft.Appпровајдера ресурса.- Ако користите Azure CLI, покрените
az provider register --namespace Microsoft.App --wait. - Ако користите Azure PowerShell, покрените
Register-AzResourceProvider -ProviderNamespace Microsoft.App. Затим након неког времена покрените(Get-AzResourceProvider -ProviderNamespace Microsoft.App).RegistrationStateда проверите да ли је регистрација завршена.
- Ако користите Azure CLI, покрените
-
Покрените ову azd команду да обезбедите API Management услугу, Function App (са кодом) и све друге потребне Azure ресурсе
azd up
Ова команда би требало да имплементира све ресурсе у облаку на Azure-у.
-
У новом прозору терминала, инсталирајте и покрените MCP Inspector
npx @modelcontextprotocol/inspector
Требало би да видите интерфејс сличан овом:
-
CTRL кликните да учитате MCP Inspector веб апликацију са URL-а који је приказан од стране апликације (нпр. http://127.0.0.1:6274/#resources)
-
Поставите тип транспорта на
SSE -
Поставите URL на ваш API Management SSE крајњу тачку која је приказана након
azd upи Повежите се:https://<apim-servicename-from-azd-output>.azure-api.net/mcp/sse
-
Листа алата. Кликните на алат и Покрените алат.
Ако су сви кораци успешно извршени, сада би требало да будете повезани са MCP сервером и да сте успели да позовете алат.
Remote-mcp-functions: Овај сет репозиторијума представља брзи почетни шаблон за изградњу и имплементацију прилагођених удаљених MCP (Model Context Protocol) сервера користећи Azure Functions са Python-ом, C# .NET-ом или Node/TypeScript-ом.
Узорак пружа комплетно решење које омогућава програмерима да:
- Изграде и покрену локално: Развијају и дебагују MCP сервер на локалној машини
- Имплементирају на Azure: Лако имплементирају у облак једноставном
azd upкомандом - Повежу се са клијентима: Повежу MCP сервер са различитим клијентима, укључујући VS Code Copilot agent mode и MCP Inspector алат
- Безбедност по дизајну: MCP сервер је обезбеђен коришћењем кључева и HTTPS-а
- Опције аутентификације: Подржава OAuth користећи уграђену аутентификацију и/или API Management
- Изолација мреже: Омогућава изолацију мреже коришћењем Azure виртуелних мрежа (VNET)
- Серверлес архитектура: Користи Azure Functions за скалабилно, догађајима вођено извршавање
- Локални развој: Свеобухватна подршка за локални развој и дебаговање
- Једноставна имплементација: Поједностављен процес имплементације на Azure
Репозиторијум укључује све потребне конфигурационе фајлове, изворни код и дефиниције инфраструктуре за брзи почетак рада са продукцијски спремном имплементацијом MCP сервера.
-
Azure Remote MCP Functions Python - Узорак имплементације MCP-а користећи Azure Functions са Python-ом
-
Azure Remote MCP Functions .NET - Узорак имплементације MCP-а користећи Azure Functions са C# .NET-ом
-
Azure Remote MCP Functions Node/Typescript - Узорак имплементације MCP-а користећи Azure Functions са Node/TypeScript-ом.
- MCP SDK-ови пружају алате специфичне за језик за имплементацију робусних MCP решења
- Процес дебаговања и тестирања је критичан за поуздане MCP апликације
- Поново употребљиви шаблони промптова омогућавају доследне AI интеракције
- Добро дизајнирани радни токови могу оркестрирати сложене задатке користећи више алата
- Имплементација MCP решења захтева разматрање безбедности, перформанси и обраде грешака
Дизајнирајте практичан MCP радни ток који решава стварни проблем у вашој области:
- Идентификујте 3-4 алата који би били корисни за решавање овог проблема
- Креирајте дијаграм радног тока који показује како ови алати међусобно делују
- Имплементирајте основну верзију једног од алата користећи ваш омиљени језик
- Креирајте шаблон промпта који би помогао моделу да ефика
Одрицање од одговорности:
Овај документ је преведен коришћењем услуге за превођење помоћу вештачке интелигенције Co-op Translator. Иако настојимо да обезбедимо тачност, молимо вас да имате у виду да аутоматски преводи могу садржати грешке или нетачности. Оригинални документ на његовом изворном језику треба сматрати меродавним извором. За критичне информације препоручује се професионални превод од стране људи. Не преузимамо одговорност за било каква погрешна тумачења или неспоразуме који могу настати услед коришћења овог превода.



