Skip to content

Latest commit

 

History

History
277 lines (177 loc) · 21 KB

File metadata and controls

277 lines (177 loc) · 21 KB

Практична имплементација

Како изградити, тестирати и имплементирати MCP апликације са правим алатима и радним токовима

(Кликните на слику изнад да бисте погледали видео лекцију)

Практична имплементација је место где снага Протокола Контекста Модела (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 ресурси

Протокол Контекста Модела нуди званичне SDK-ове за више језика:

Рад са MCP SDK-овима

Овај одељак пружа практичне примере имплементације MCP-а у више програмских језика. Узорци кода се налазе у директоријуму samples, организовани по језицима.

Доступни узорци

Репозиторијум укључује узорке имплементације на следећим језицима:

Сваки узорак демонстрира кључне концепте MCP-а и обрасце имплементације за одређени језик и екосистем.

Основне функције сервера

MCP сервери могу имплементирати било коју комбинацију следећих функција:

Ресурси

Ресурси пружају контекст и податке које корисник или AI модел могу користити:

  • Репозиторијуми докумената
  • Базе знања
  • Структурирани извори података
  • Фајл системи

Промптови

Промптови су унапред дефинисане поруке и радни токови за кориснике:

  • Унапред дефинисани шаблони разговора
  • Вођени обрасци интеракције
  • Специјализоване структуре дијалога

Алати

Алати су функције које AI модел може извршавати:

  • Услужни програми за обраду података
  • Интеграције са спољним API-јима
  • Рачунарске могућности
  • Функционалност претраге

Узорци имплементације: C# имплементација

Званични C# SDK репозиторијум садржи неколико узорака имплементације који демонстрирају различите аспекте MCP-а:

  • Основни MCP клијент: Једноставан пример који показује како креирати MCP клијента и позвати алате
  • Основни MCP сервер: Минимална имплементација сервера са основном регистрацијом алата
  • Напредни MCP сервер: Потпуно опремљен сервер са регистрацијом алата, аутентификацијом и обрадом грешака
  • Интеграција са ASP.NET-ом: Примери који демонстрирају интеграцију са ASP.NET Core-ом
  • Обрасци имплементације алата: Различити обрасци за имплементацију алата са различитим нивоима сложености

C# MCP SDK је у прегледној фази и API-ји могу бити измењени. Континуирано ћемо ажурирати овај блог како се SDK развија.

Кључне функције

За комплетне узорке имплементације у C#, посетите званични C# SDK репозиторијум узорака

Узорак имплементације: Java са Spring имплементација

Java са Spring SDK нуди робусне опције имплементације MCP-а са функцијама на нивоу предузећа.

Кључне функције

  • Интеграција са Spring Framework-ом
  • Јака типска сигурност
  • Подршка за реактивно програмирање
  • Свеобухватна обрада грешака

За комплетан узорак имплементације у Java са Spring-ом, погледајте Java са Spring узорак у директоријуму узорака.

Узорак имплементације: JavaScript имплементација

JavaScript SDK пружа лаган и флексибилан приступ имплементацији MCP-а.

Кључне функције

  • Подршка за Node.js и претраживаче
  • API заснован на Promise-има
  • Лака интеграција са Express-ом и другим оквирима
  • Подршка за WebSocket за стримовање

За комплетан узорак имплементације у JavaScript-у, погледајте JavaScript узорак у директоријуму узорака.

Узорак имплементације: Python имплементација

Python SDK нуди Python-ски приступ имплементацији MCP-а са одличним интеграцијама за ML оквире.

Кључне функције

  • Подршка за Async/await са asyncio
  • Интеграција са FastAPI-јем
  • Једноставна регистрација алата
  • Нативна интеграција са популарним ML библиотекама

За комплетан узорак имплементације у Python-у, погледајте Python узорак у директоријуму узорака.

Управљање API-јима

Azure API Management је одлично решење за обезбеђивање MCP сервера. Идеја је да поставите Azure API Management инстанцу испред вашег MCP сервера и дозволите јој да управља функцијама које су вам вероватно потребне, као што су:

  • Ограничење брзине
  • Управљање токенима
  • Надгледање
  • Балансирање оптерећења
  • Безбедност

Azure узорак

Ево Azure узорка који управо то ради, тј. креира MCP сервер и обезбеђује га Azure API Management-ом.

Погледајте како изгледа ток ауторизације на слици испод:

APIM-MCP

На претходној слици, дешава се следеће:

  • Аутентификација/ауторизација се обавља коришћењем Microsoft Entra.
  • Azure API Management делује као пролаз и користи политике за усмеравање и управљање саобраћајем.
  • Azure Monitor бележи све захтеве за даљу анализу.

Ток ауторизације

Детаљније погледајмо ток ауторизације:

Дијаграм секвенце

MCP спецификација ауторизације

Сазнајте више о MCP спецификацији ауторизације

Имплементација удаљеног MCP сервера на Azure

Хајде да видимо да ли можемо имплементирати узорак који смо раније поменули:

  1. Клонирајте репозиторијум

    git clone https://github.com/Azure-Samples/remote-mcp-apim-functions-python.git
    cd remote-mcp-apim-functions-python
  2. Региструјте Microsoft.App провајдера ресурса.

    • Ако користите Azure CLI, покрените az provider register --namespace Microsoft.App --wait.
    • Ако користите Azure PowerShell, покрените Register-AzResourceProvider -ProviderNamespace Microsoft.App. Затим након неког времена покрените (Get-AzResourceProvider -ProviderNamespace Microsoft.App).RegistrationState да проверите да ли је регистрација завршена.
  3. Покрените ову azd команду да обезбедите API Management услугу, Function App (са кодом) и све друге потребне Azure ресурсе

    azd up

    Ова команда би требало да имплементира све ресурсе у облаку на Azure-у.

Тестирање вашег сервера са MCP Inspector-ом

  1. У новом прозору терминала, инсталирајте и покрените MCP Inspector

    npx @modelcontextprotocol/inspector

    Требало би да видите интерфејс сличан овом:

    Повезивање са Node инспектором

  2. CTRL кликните да учитате MCP Inspector веб апликацију са URL-а који је приказан од стране апликације (нпр. http://127.0.0.1:6274/#resources)

  3. Поставите тип транспорта на SSE

  4. Поставите URL на ваш API Management SSE крајњу тачку која је приказана након azd up и Повежите се:

    https://<apim-servicename-from-azd-output>.azure-api.net/mcp/sse
  5. Листа алата. Кликните на алат и Покрените алат.

Ако су сви кораци успешно извршени, сада би требало да будете повезани са MCP сервером и да сте успели да позовете алат.

MCP сервери за Azure

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 сервера.

Кључни закључци

  • MCP SDK-ови пружају алате специфичне за језик за имплементацију робусних MCP решења
  • Процес дебаговања и тестирања је критичан за поуздане MCP апликације
  • Поново употребљиви шаблони промптова омогућавају доследне AI интеракције
  • Добро дизајнирани радни токови могу оркестрирати сложене задатке користећи више алата
  • Имплементација MCP решења захтева разматрање безбедности, перформанси и обраде грешака

Вежба

Дизајнирајте практичан MCP радни ток који решава стварни проблем у вашој области:

  1. Идентификујте 3-4 алата који би били корисни за решавање овог проблема
  2. Креирајте дијаграм радног тока који показује како ови алати међусобно делују
  3. Имплементирајте основну верзију једног од алата користећи ваш омиљени језик
  4. Креирајте шаблон промпта који би помогао моделу да ефика

Одрицање од одговорности:
Овај документ је преведен коришћењем услуге за превођење помоћу вештачке интелигенције Co-op Translator. Иако настојимо да обезбедимо тачност, молимо вас да имате у виду да аутоматски преводи могу садржати грешке или нетачности. Оригинални документ на његовом изворном језику треба сматрати меродавним извором. За критичне информације препоручује се професионални превод од стране људи. Не преузимамо одговорност за било каква погрешна тумачења или неспоразуме који могу настати услед коришћења овог превода.