Труды КНЦ (Технические науки вып.3/2025(16))

Во время инициализации менеджер клиентов MCP приложения ИИ устанавливает соединения с настроенными серверами и сохраняет их возможности для последующего использования. Приложение использует эту информацию, чтобы определить, какие серверы могут предоставлять определенные типы функций (инструменты, ресурсы, подсказки) и поддерживают ли они обновления в реальном времени. Обнаружение инструментов Запрос «tools/list» прост и не содержит параметров. Ответ содержит массив «инструменты», который предоставляет полные метаданные о каждом доступном инструменте. Эта структура на основе массива позволяет серверам одновременно предоставлять несколько инструментов, сохраняя при этом четкие границы между различными функциями. Приложение AI извлекает доступные инструменты со всех подключенных серверов MCP и объединяет их в единый реестр инструментов, к которому имеет доступ языковая модель. Это позволяет LLM получать список доступных действий и автоматически генерировать соответствующие вызовы инструментов во время диалогов. Ответ на выполнение инструмента Ответ демонстрирует гибкую систему контента MCP: 1. Массив ' content': ответы инструмента возвращают массив объектов контента, что позволяет создавать ответы в различных форматах (текст, изображения, ресурсы и т. д.). 2. Типы контента: каждый объект контента имеет поле type'. В этом примере '"type": "text"' обозначает простой текстовый контент, но MCP поддерживает различные типы контента для различных вариантов использования. 3. Структурированный вывод: ответ предоставляет полезную информацию, которую приложение ИИ может использовать в качестве контекста для взаимодействия с языковой моделью. Этот шаблон выполнения позволяет приложениям ИИ динамически вызывать функции сервера и получать структурированные ответы, которые можно интегрировать в диалоги с языковыми моделями. Когда языковая модель решает использовать инструмент во время диалога, приложение ИИ перехватывает вызов инструмента, направляет его на соответствующий сервер MCP, выполняет его и возвращает результаты обратно в LLM в рамках потока диалога. Это позволяет LLM получать доступ к данным в режиме реального времени и выполнять действия во внешнем мире. MCP поддерживает уведомления в режиме реального времени, позволяющие серверам информировать клиентов об изменениях без явного запроса. Это демонстрирует систему уведомлений — ключевую функцию, обеспечивающую синхронизацию и быстрое реагирование подключений MCP. Уведомления об изменении списка инструментов При изменении доступных инструментов сервера, например при появлении новых функций, изменении существующих инструментов или их временной недоступности, сервер может заблаговременно уведомить подключенных клиентов. Ключевые особенности уведомлений MCP: 1. Ответ не требуется: в уведомлении отсутствует поле 'id '. Это соответствует семантике уведомлений JSON-RPC 2.0, где ответ не ожидается и не отправляется. 2. На основе возможностей: Это уведомление отправляется только серверами, которые объявили "listChanged": true в своих возможностях инструментов во время инициализации (как показано на шаге 1). 3. Управляемое событиями: сервер решает, когда отправлять уведомления, основываясь на изменениях внутреннего состояния, что делает соединения MCP динамичными и отзывчивыми. Получив уведомление, клиент обычно реагирует, запрашивая обновленный список инструментов. Это создает цикл обновления, который поддерживает актуальность информации клиента о доступных инструментах: Эта система уведомлений критически важна по нескольким причинам: 1) динамические среды: инструменты могут появляться и исчезать в зависимости от состояния сервера, внешних зависимостей или прав пользователя; 2) эффективность: клиентам не нужно спрашивать об изменениях, они Труды Кольского научного центра РАН. Серия: Технические науки. 2025. Т. 16, № 3. С. 5-21. Transactions of the Kola Science Centre of RAS. Series: Engineering Sciences. 2025. Vol. 16, No. 3. P. 5-21. © Федоров А. М., Датьев И. О., Илясов М. О., Вишняков И. Г., Базегский М. О., Фигуркин Д. С., Любимова К. Д., 2025 10

RkJQdWJsaXNoZXIy MTUzNzYz