Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Протокол контекста модели (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 могут обмениваться набором стандартных сообщений:
Сообщение | Описание |
---|---|
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.
Приступая к работе со следующими средствами разработки:
- Семантическое ядро позволяет добавлять плагины для серверов MCP. Семантический ядро поддерживает как локальные серверы MCP через стандартные операции ввода-вывода, так и удаленные серверы, которые подключаются через протокол SSE по протоколу HTTPS.
- Удаленные серверы MCP функций Azure объединяют стандарты MCP с гибкой архитектурой Функций Azure. Посетите пример репозитория функций Remote MCP для примеров кода.
- Azure MCP Server реализует спецификацию MCP для простого подключения агентов ИИ к ключевым службам Azure, таким как служба хранилища Azure, Cosmos DB и многое другое.
Дополнительные сведения о .NET и MCP см. в следующих ресурсах:
- Компания Microsoft заключает партнерство с компанией Anthropic для того, чтобы создать официальный пакет SDK C# для протокола контекста модели
- Создание сервера протокола контекста модели (MCP) в C#
- MCP C# SDK README