Построение агентов с использованием 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
- Комбинированный подход для максимальной гибкости