Практическая реализация — это момент, когда сила 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 по производительности и надежности
Model Context Protocol предлагает официальные SDK для нескольких языков:
В этом разделе представлены практические примеры реализации MCP на разных языках программирования. Образцы кода находятся в каталоге samples, организованном по языкам.
В репозитории есть примерные реализации на следующих языках:
Каждый пример демонстрирует ключевые концепции MCP и шаблоны реализации для конкретного языка и экосистемы.
MCP-серверы могут реализовывать любую комбинацию следующих функций:
Ресурсы предоставляют контекст и данные для пользователя или модели ИИ:
- Репозитории документов
- Базы знаний
- Структурированные источники данных
- Файловые системы
Подсказки — это шаблоны сообщений и рабочих процессов для пользователей:
- Предопределённые шаблоны диалогов
- Руководства по взаимодействию
- Специализированные структуры диалогов
Инструменты — это функции, которые модель ИИ может выполнять:
- Утилиты для обработки данных
- Интеграции с внешними API
- Вычислительные возможности
- Функции поиска
Официальный репозиторий C# SDK содержит несколько примеров, демонстрирующих разные аспекты MCP:
- Базовый MCP клиент: простой пример создания MCP клиента и вызова инструментов
- Базовый MCP сервер: минимальная реализация сервера с базовой регистрацией инструментов
- Продвинутый MCP сервер: полнофункциональный сервер с регистрацией инструментов, аутентификацией и обработкой ошибок
- Интеграция с ASP.NET: примеры интеграции с ASP.NET Core
- Шаблоны реализации инструментов: различные подходы к реализации инструментов разной сложности
MCP C# SDK находится в превью, и API могут изменяться. Мы будем регулярно обновлять этот блог по мере развития SDK.
-
Создание вашего первого MCP сервера.
Для полного набора примеров реализации на C# посетите официальный репозиторий с примерами C# SDK
Java SDK предлагает надежные возможности реализации MCP с корпоративными функциями.
- Интеграция со Spring Framework
- Строгая типизация
- Поддержка реактивного программирования
- Полноценная обработка ошибок
Для полного примера реализации на Java смотрите Java sample в каталоге с примерами.
JavaScript SDK предоставляет легковесный и гибкий подход к реализации MCP.
- Поддержка Node.js и браузера
- API на основе Promise
- Простая интеграция с Express и другими фреймворками
- Поддержка WebSocket для потоковой передачи
Для полного примера реализации на JavaScript смотрите JavaScript sample в каталоге с примерами.
Python SDK предлагает питонический подход к реализации MCP с отличной интеграцией с ML-фреймворками.
- Поддержка async/await с asyncio
- Интеграция с FastAPI
- Простая регистрация инструментов
- Нативная интеграция с популярными ML-библиотеками
Для полного примера реализации на Python смотрите Python sample в каталоге с примерами.
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, function app (с кодом) и всех необходимых ресурсов Azure
azd up
Эта команда должна развернуть все облачные ресурсы в Azure
-
В новом окне терминала установите и запустите MCP Inspector
npx @modelcontextprotocol/inspector
Вы увидите интерфейс, похожий на:
-
Нажмите CTRL и кликните, чтобы открыть веб-приложение MCP Inspector по URL, который отображает приложение (например, http://127.0.0.1:6274/#resources)
-
Установите тип транспорта в
SSE -
Введите URL вашего работающего SSE-эндпоинта API Management, который отображается после команды
azd up, и нажмите Connect:https://<apim-servicename-from-azd-output>.azure-api.net/mcp/sse
-
Список инструментов. Нажмите на инструмент и выберите Run Tool.
Если все шаги выполнены правильно, вы подключитесь к MCP-серверу и сможете вызвать инструмент.
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-сервера.
-
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-приложений
- Переиспользуемые шаблоны подсказок обеспечивают последовательное взаимодействие с ИИ
- Хорошо спроектированные рабочие процессы позволяют координировать сложные задачи с использованием нескольких инструментов
- Реализация MCP требует учета безопасности, производительности и обработки ошибок
Спроектируйте практический рабочий процесс MCP, решающий реальную задачу в вашей области:
- Определите 3-4 инструмента, которые помогут решить эту задачу
- Создайте диаграмму рабочего процесса, показывающую взаимодействие этих инструментов
- Реализуйте базовую версию одного из инструментов на предпочитаемом языке
- Создайте шаблон подсказки, который поможет модели эффективно использовать ваш инструмент
Далее: Продвинутые темы
Отказ от ответственности:
Этот документ был переведен с помощью сервиса автоматического перевода Co-op Translator. Несмотря на наши усилия по обеспечению точности, просим учитывать, что автоматические переводы могут содержать ошибки или неточности. Оригинальный документ на его исходном языке следует считать авторитетным источником. Для получения критически важной информации рекомендуется обращаться к профессиональному человеческому переводу. Мы не несем ответственности за любые недоразумения или неправильные толкования, возникшие в результате использования данного перевода.


