Построение агентов с использованием Model Context Protocol (MCP)

Построение агентов с использованием Model Context Protocol (MCP)

Дмитрий Жечков

Конспект семинара (26) Building Agents with Model Context Protocol - Full Workshop with Mahesh Murag of Anthropic - YouTube


Философия и мотивация MCP

• Основная концепция

  • Модели эффективны настолько, насколько хорош предоставленный им контекст
  • Эволюция от ручного ввода контекста к системной интеграции с данными

• Предшествующие протоколы

  • API: стандартизация взаимодействия между фронтендом и бэкендом
  • LSP (Language Server Protocol): стандартизация взаимодействия IDE с языковыми инструментами

• Проблема до MCP

  • Фрагментация подходов к построению ИИ-систем
  • Каждая команда создавала собственные реализации
  • Отсутствие стандартизации интеграции с инструментами и данными

Компоненты MCP

• Клиенты MCP

  • Приложения: Claude for Desktop, Perser, Windsurf
  • Агенты: Goose (от Block)

• Серверы MCP

  • Обертки для доступа к различным системам и инструментам
  • Базы данных, CRM, системы контроля версий и т.д.

• Три основных интерфейса

  • Инструменты (Tools)
    - Управляются моделью
    - Модель решает, когда вызывать инструменты
    - Чтение/запись данных, обновление баз данных, работа с файлами
  • Ресурсы (Resources)
    - Управляются приложением
    - Данные, предоставляемые приложению (изображения, текст, JSON)
    - Статические или динамические ресурсы
  • Промпты (Prompts)
    - Управляются пользователем
    - Предопределенные шаблоны для типовых взаимодействий
    - Slash-команды в IDE

Преимущества MCP

• Для разработчиков приложений

  • Подключение к любому серверу без дополнительной работы
  • Стандартизированная разработка ИИ

• Для поставщиков инструментов и API

  • Создание сервера один раз для использования во всех приложениях
  • Решение проблемы "N × M" (множество взаимодействий)

• Для конечных пользователей

  • Более мощные и контекстно-богатые ИИ-приложения

• Для компаний

  • Четкое разделение ответственности между командами
  • Централизованный подход к построению ИИ-приложений
  • Микро-сервисная архитектура для ИИ-систем

Внедрение и использование

• Текущее внедрение

  • Приложения и IDE
  • Более 1100 серверов, созданных сообществом
  • Официальные интеграции от компаний

• Примеры использования

  • Интеграция с GitHub для управления репозиториями
  • Работа с задачами в Asana
  • Интеграция с различными API и сервисами

MCP и агенты

• Концепция расширенной LLM

  • LLM с доступом к системам поиска, инструментам и памяти
  • MCP как нижний слой для федерации доступа

• Возможности протокола для агентов

  • Sampling
    - Сервер запрашивает выполнение LLM у клиента
    - Клиент контролирует взаимодействие с моделью
  • Композиция
    - Клиент и сервер - логическое, а не физическое разделение
    - Агенты могут быть одновременно клиентами и серверами MCP
    - Создание многоуровневых архитектур агентов

• Пример с MCP-agent

  • Фреймворк от Last Mile AI https://github.com/lastmile-ai/mcp-agent
  • Декларативное определение агентов и их задач
  • Оркестрация подагентов для выполнения сложных задач

Вот простой пример создания исследовательского агента с использованием MCP:

python
# Определение исследовательского агента
research_agent = Agent(
    name="researcher",
    system="Ты эксперт по веб-исследованиям...",
    servers=["brave", "fetch", "file_system"]
)

# Определение агента для проверки фактов
fact_checker = Agent(
    name="fact_checker",
    system="Ты эксперт по проверке фактов...",
    servers=["brave", "fetch", "file_system"]
)

# Определение агента для написания отчета
report_writer = Agent(
    name="report_writer",
    system="Ты эксперт по написанию исследовательских отчетов...",
    servers=["file_system", "fetch"]
)

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

Будущее MCP

• Удаленные серверы и аутентификация

  • Поддержка OAuth 2.0
  • Серверы, размещенные на публичных URL
  • Упрощение обнаружения и использования серверов

• Реестр MCP

  • Унифицированный сервис метаданных
  • Решение проблем обнаружения и верификации серверов
  • Поддержка версионирования

• Самостоятельно эволюционирующие агенты

  • Динамическое обнаружение новых возможностей
  • Агенты могут расширять свои возможности после инициализации

• Well-known MCP

  • Стандартный способ для сайтов объявлять о своих MCP-возможностях
  • Дополнение к реестру для обнаружения инструментов

• Дополнительные направления развития

  • Stateful vs stateless соединения
  • Потоковая передача данных
  • Пространства имен для инструментов
  • Проактивное поведение серверов

Практические аспекты

• Безопасность и управление

  • Контроль доступа к серверам
  • Верификация официальных серверов
  • Разделение ответственности между клиентом и сервером

• Отладка и наблюдаемость

  • Инструмент Inspector для просмотра логов
  • Метаданные для отладки
  • Формирующиеся лучшие практики

Интеграция с существующими системами

• Взаимодействие с агентными фреймворками

  • MCP дополняет, а не заменяет агентные фреймворки
  • Адаптеры для интеграции (например, с Langraph)

• Сочетание с Computer Use

  • MCP для API-взаимодействия
  • Computer Use для взаимодействия с UI
  • Комбинированный подход для максимальной гибкости


Report Page