Поделиться через


Начало работы с .NET AI и протоколом контекста модели

Протокол контекста модели (MCP) — это открытый протокол, предназначенный для стандартизации интеграции между приложениями ИИ и внешними инструментами и источниками данных. С помощью MCP разработчики могут улучшить возможности моделей искусственного интеллекта, что позволяет им создавать более точные, релевантные и контекстно-соответствующих ответы.

Например, с помощью MCP можно подключить LLM к ресурсам, таким как:

  • Документирование баз данных или служб хранилища.
  • Веб-API, предоставляющие бизнес-данные или логику.
  • Средства, управляющие файлами или выполняющие локальные задачи на устройстве пользователя.

Многие продукты Майкрософт уже поддерживают MCP, в том числе:

С помощью пакета SDK ДЛЯ C# MCP можно быстро создавать собственные интеграции MCP и переключаться между различными моделями ИИ без существенных изменений кода.

Архитектура клиента-сервера MCP

MCP использует архитектуру клиентского сервера, которая позволяет приложению с поддержкой искусственного интеллекта (узлу) подключаться к нескольким серверам MCP через клиенты MCP:

  • Узлы MCP: средства ИИ, редакторы кода или другое программное обеспечение, которые улучшают свои модели ИИ с помощью контекстных ресурсов через MCP. Например, GitHub Copilot в Visual Studio Code может выступать в качестве узла MCP и использовать клиенты и серверы MCP для расширения возможностей.
  • Клиенты MCP: клиенты, используемые ведущим приложением для подключения к серверам MCP для получения контекстных данных.
  • СЕРВЕРы MCP: службы, предоставляющие клиентам возможности через MCP. Например, сервер MCP может предоставлять абстракцию с использованием REST API или локального источника данных для предоставления бизнес-данных модели ИИ.

На следующей схеме показана эта архитектура:

Схема, показывающая шаблон архитектуры MCP, включая узлы, клиенты и серверы.

Клиент и сервер MCP могут обмениваться набором стандартных сообщений:

Сообщение Описание
InitializeRequest Этот запрос отправляется клиентом на сервер при первом подключении, запрашивая его начало инициализации.
ListToolsRequest Клиент отправляет запрос списка инструментов на сервер.
CallToolRequest Используется клиентом для вызова средства, предоставленного сервером.
ListResourcesRequest Запрос, отправленный клиентом для получения списка доступных ресурсов сервера.
ReadResourceRequest Отправляется клиентом на сервер для чтения определенного URI ресурса.
ListPromptsRequest Запрос, отправленный клиентом, для получения списка доступных подсказок и шаблонов подсказок с сервера.
GetPromptRequest Используется клиентом для получения запроса, предоставленного сервером.
PingRequest Проверка связи, выполняемая сервером или клиентом, чтобы убедиться, что другая сторона находится в рабочем состоянии.
CreateMessageRequest Запрос сервера на выборку LLM через клиент. Клиент имеет полное усмотрение по выбору модели. Клиент также должен сообщить пользователю перед началом выборки, чтобы позволить ему проверить запрос (с участием человека) и решить, следует ли его утвердить.
SetLevelRequest Запрос клиента на сервер, чтобы включить или настроить ведение журнала.

Разработка с помощью пакета SDK для C# MCP

Как разработчик .NET, вы можете использовать MCP, создавая клиенты и серверы MCP для улучшения ваших приложений с помощью пользовательских интеграций. MCP снижает сложность подключения модели искусственного интеллекта к различным средствам, службам и источникам данных.

Официальный пакет SDK ДЛЯ C# MCP доступен через NuGet и позволяет создавать клиенты и серверы MCP для приложений и библиотек .NET. Пакет SDK поддерживается через совместную работу между корпорацией Майкрософт, Anthropic и организацией открытого протокола MCP.

Чтобы приступить к работе, добавьте пакет SDK ДЛЯ C# MCP в проект:

dotnet add package ModelContextProtocol --prerelease

Вместо создания уникальных соединителей для каждой точки интеграции часто можно использовать или ссылаться на предварительно созданные интеграции из различных поставщиков, таких как GitHub и Docker:

Интеграция с Microsoft.Extensions.AI

Пакет SDK для MCP C# зависит от библиотек Microsoft.Extensions.AI для обработки различных взаимодействий и задач ИИ. Эти библиотеки расширений предоставляют основные типы и абстракции для работы со службами ИИ, поэтому разработчики могут сосредоточиться на программировании на концептуальных возможностях ИИ, а не на конкретных платформах или реализациях поставщика.

Просмотрите зависимости пакета SDK для C# MCP на странице пакета NuGet.

Дополнительные ресурсы разработки .NET MCP

Различные средства, службы и ресурсы обучения доступны в экосистемах .NET и Azure, которые помогают создавать клиенты и серверы MCP или интегрировать с существующими серверами MCP.

Приступая к работе со следующими средствами разработки:

Дополнительные сведения о .NET и MCP см. в следующих ресурсах: