Skip to content

Latest commit

 

History

History
272 lines (178 loc) · 19.7 KB

File metadata and controls

272 lines (178 loc) · 19.7 KB

Практична примена

Практична примена је место где моћ Model Context Protocol-а (MCP) постаје опипљива. Иако је важно разумети теорију и архитектуру иза MCP-а, права вредност се открива када примените ове концепте за изградњу, тестирање и имплементацију решења која решавају стварне проблеме. Ово поглавље повезује концептуално знање и практични развој, водећи вас кроз процес оживљавања апликација заснованих на MCP-у.

Без обзира да ли развијате интелигентне асистенте, интегришете вештачку интелигенцију у пословне токове или правите прилагођене алате за обраду података, MCP пружа флексибилну основу. Његов језички неутралан дизајн и званични SDK-ови за популарне програмске језике чине га приступачним широком спектру програмера. Користећи ове SDK-ове, можете брзо направити прототип, итерирати и скалирати своја решења на различитим платформама и окружењима.

У наредним одељцима пронаћи ћете практичне примере, узорке кода и стратегије имплементације које показују како применити MCP у C#, Java, TypeScript, JavaScript и Python-у. Такође ћете научити како да отклањате грешке и тестирате MCP сервере, управљате API-јима и имплементирате решења у облак користећи Azure. Ови практични ресурси су осмишљени да убрзају ваше учење и помогну вам да са самопоуздањем изградите поуздане MCP апликације спремне за продукцију.

Преглед

Ова лекција се фокусира на практичне аспекте имплементације MCP-а у више програмских језика. Истражићемо како користити MCP SDK-ове у C#, Java, TypeScript, JavaScript и Python-у за изградњу поузданих апликација, отклањање грешака и тестирање MCP сервера, као и креирање поновно употребљивих ресурса, упита и алата.

Циљеви учења

До краја ове лекције, моћи ћете да:

  • Имплементирате MCP решења користећи званичне SDK-ове у различитим програмским језицима
  • Систематски отклањате грешке и тестирате MCP сервере
  • Креирате и користите серверске функције (Ресурсе, Упите и Алате)
  • Дизајнирате ефикасне MCP токове рада за сложене задатке
  • Оптимизујете MCP имплементације за перформансе и поузданост

Званични SDK ресурси

Model Context Protocol нуди званичне SDK-ове за више језика:

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

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

Доступни примери

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

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

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

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

Ресурси

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

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

Упити

Упити су шаблонизоване поруке и токови рада за кориснике:

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

Алати

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

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

Пример имплементације: C#

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

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

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

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

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

Пример имплементације: Java

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

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

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

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

Пример имплементације: JavaScript

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

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

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

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

Пример имплементације: Python

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

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

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

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

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

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

  • ограничење брзине (rate limiting)
  • управљање токенима
  • мониторинг
  • баланс оптерећења
  • безбедност

Azure пример

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

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

APIM-MCP

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

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

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

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

Sequence Diagram

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 resource provider.

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

    azd up

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

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

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

    npx @modelcontextprotocol/inspector

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

    Connect to Node inspector

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

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

  4. Set the URL to your running API Management SSE endpoint displayed after azd up и кликните на Connect:

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

Ако су сви кораци успешно извршени, сада сте повезани на 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 агент мод и MCP Inspector алат

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

  • Безбедност по дизајну: MCP сервер је обезбеђен коришћењем кључева и HTTPS-а
  • Опције аутентификације: подршка за OAuth користећи уграђену аутентификацију и/или API Management
  • Изолација мреже: омогућава изолацију мреже коришћењем Azure Virtual Networks (VNET)
  • Серверлес архитектура: користи Azure Functions за скалабилно, на догађајима засновано извршавање
  • Локални развој: свеобухватна подршка за локални развој и отклањање грешака
  • Једноставна имплементација: поједностављен процес деплоја на Azure

Репозиторијум укључује све потребне конфигурационе фајлове, изворни код и инфраструктурне дефиниције за брз почетак са продукцијски спремном MCP сервер имплементацијом.

Главне поуке

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

Вежба

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

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

Додатни ресурси


Следеће: Напредне теме

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