Skip to content

Latest commit

 

History

History
272 lines (178 loc) · 20.2 KB

File metadata and controls

272 lines (178 loc) · 20.2 KB

Практическа реализация

Практическата реализация е моментът, в който силата на Model Context Protocol (MCP) става осезаема. Докато разбирането на теорията и архитектурата зад MCP е важно, истинската стойност се проявява, когато прилагате тези концепции за изграждане, тестване и внедряване на решения, които решават реални проблеми. Тази глава преодолява пропастта между концептуалните знания и практическата разработка, като ви води през процеса на създаване на приложения, базирани на MCP.

Независимо дали разработвате интелигентни асистенти, интегрирате AI в бизнес процеси или създавате персонализирани инструменти за обработка на данни, MCP осигурява гъвкава основа. Неговият езиково независим дизайн и официални SDK-та за популярни програмни езици го правят достъпен за широк кръг разработчици. Използвайки тези SDK-та, можете бързо да прототипирате, итеративно да развивате и мащабирате решенията си на различни платформи и среди.

В следващите секции ще намерите практически примери, образци на код и стратегии за внедряване, които показват как да приложите MCP на C#, Java, TypeScript, JavaScript и Python. Ще научите също как да отстранявате грешки и тествате MCP сървъри, да управлявате API-та и да внедрявате решения в облака с Azure. Тези практически ресурси са създадени, за да ускорят вашето обучение и да ви помогнат уверено да изграждате стабилни, готови за продукция MCP приложения.

Преглед

Този урок се фокусира върху практическите аспекти на реализацията на MCP на няколко програмни езика. Ще разгледаме как да използваме MCP SDK-та на C#, Java, TypeScript, JavaScript и Python за изграждане на стабилни приложения, отстраняване на грешки и тестване на MCP сървъри, както и създаване на повторно използваеми ресурси, prompts и инструменти.

Цели на обучението

След края на този урок ще можете да:

  • Реализирате MCP решения с помощта на официални SDK-та на различни програмни езици
  • Систематично да отстранявате грешки и тествате MCP сървъри
  • Създавате и използвате сървърни функции (Ресурси, Prompts и Инструменти)
  • Проектирате ефективни MCP работни потоци за сложни задачи
  • Оптимизирате реализациите на MCP за производителност и надеждност

Официални SDK ресурси

Model Context Protocol предлага официални SDK-та за няколко езика:

Работа с MCP SDK-та

Тази секция предоставя практически примери за реализация на MCP на няколко програмни езика. Можете да намерите примерен код в директорията samples, организиран по езици.

Налични примери

Репозиторият включва примерни реализации на следните езици:

Всеки пример демонстрира ключови концепции и модели за реализация на MCP за съответния език и екосистема.

Основни сървърни функции

MCP сървърите могат да реализират всякаква комбинация от следните функции:

Ресурси

Ресурсите предоставят контекст и данни, които потребителят или AI моделът използват:

  • Хранилища с документи
  • Бази знания
  • Структурирани източници на данни
  • Файлови системи

Prompts

Prompts са шаблонирани съобщения и работни потоци за потребители:

  • Предварително дефинирани шаблони за разговор
  • Водени модели на взаимодействие
  • Специализирани структури за диалог

Инструменти

Инструментите са функции, които 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 сървъри. Идеята е да поставите Azure API Management пред вашия MCP сървър и да му позволите да управлява функции, които вероятно ще искате, като:

  • ограничаване на честотата на заявките
  • управление на токени
  • мониторинг
  • балансиране на натоварването
  • сигурност

Azure пример

Ето един Azure пример, който прави точно това, т.е. създаване на MCP сървър и осигуряване с Azure API Management.

Вижте как протича процесът на упълномощаване на следващата снимка:

APIM-MCP

На горната снимка се случва следното:

  • Аутентикация/упълномощаване чрез Microsoft Entra.
  • Azure API Management действа като шлюз и използва политики за насочване и управление на трафика.
  • Azure Monitor записва всички заявки за по-нататъшен анализ.

Поток на упълномощаване

Нека разгледаме по-подробно потока на упълномощаване:

Sequence Diagram

Спецификация за MCP упълномощаване

Научете повече за MCP Authorization specification

Внедряване на отдалечен 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 app (с код) и всички други необходими 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 сървъра от различни клиенти, включително Copilot агент режим на VS Code и инструмента MCP Inspector

Основни функции:

  • Сигурност по дизайн: MCP сървърът е защитен с ключове и HTTPS
  • Опции за удостоверяване: Поддържа OAuth чрез вградено удостоверяване и/или API Management
  • Мрежова изолация: Позволява мрежова изолация чрез Azure Virtual Networks (VNET)
  • Безсървърна архитектура: Използва Azure Functions за мащабируемо, събитийно ориентирано изпълнение
  • Локална разработка: Пълна поддръжка за локална разработка и отстраняване на грешки
  • Лесно внедряване: Оптимизиран процес за внедряване в Azure

Репозиторият включва всички необходими конфигурационни файлове, изходен код и инфраструктурни дефиниции, за да започнете бързо с продукционно готова MCP сървърна реализация.

Основни изводи

  • MCP SDK-тата предоставят езиково специфични инструменти за реализиране на стабилни MCP решения
  • Процесът на отстраняване на грешки и тестване е критичен за надеждни MCP приложения
  • Повторно използваемите шаблони за prompts осигуряват последователни AI взаимодействия
  • Добре проектираните работни потоци могат да оркестрират сложни задачи с множество инструменти
  • Реализирането на MCP решения изисква внимание към сигурността, производителността и обработката на грешки

Упражнение

Проектирайте практичен MCP работен поток, който решава реален проблем във вашата област:

  1. Идентифицирайте 3-4 инструмента, които биха били полезни за решаването на този проблем
  2. Създайте диаграма на работния поток, показваща как тези инструменти взаимодействат
  3. Реализирайте основна версия на един от инструментите, използвайки предпочитания от вас език
  4. Създайте шаблон за prompt, който да помогне на модела ефективно да използва вашия инструмент

Допълнителни ресурси


Следва: Разширени теми

Отказ от отговорност:
Този документ е преведен с помощта на AI преводаческа услуга Co-op Translator. Въпреки че се стремим към точност, моля, имайте предвид, че автоматизираните преводи могат да съдържат грешки или неточности. Оригиналният документ на неговия роден език трябва да се счита за авторитетен източник. За критична информация се препоръчва професионален човешки превод. Ние не носим отговорност за никакви недоразумения или неправилни тълкувания, произтичащи от използването на този превод.