MCP против Function Calling и OpenAPI — когда что применять?
Что делает каждая модель взаимодействия
MCP, function calling и OpenAPI tools — это три подхода, которые позволяют моделям взаимодействовать с внешними возможностями. Они определяют, как LLM обнаруживает, вызывает и комбинирует обращения к сервисам или локальному коду, но различаются по области применения, переносимости и операционным требованиям.
Кратко о каждом подходе
MCP (Model Context Protocol): Открытый, транспорно-агностичный протокол, стандартизирующий обнаружение и вызов инструментов, ресурсов и подсказок между хостами и серверами. Подходит для портативных, межхостовых интеграций и каталога повторно используемых серверов.
Function Calling: Функция, управляемая провайдером, где модель выбирает объявленную функцию по JSON Schema и возвращает аргументы — выполнение берет на себя рантайм приложения. Идеален для локальных приложений с низкой задержкой.
OpenAPI Tools: Использует спецификацию OpenAPI 3.1 как контракт для HTTP-сервисов и позволяет инструментам и агентам генерировать вызываемые инструменты. Подходит для наборов HTTP-сервисов с требованием управляемых контрактов и схем безопасности.
Ключевые различия
- Контракт интерфейса: MCP оперирует моделью данных протокола для инструментов и ресурсов, function calling использует JSON Schema на функцию, OpenAPI опирается на OAS 3.1.
- Обнаружение: MCP поддерживает динамическое обнаружение через tools/list, function calling требует статического списка, а OpenAPI получает инструменты из OAS-каталога.
- Вызов: MCP использует tools/call поверх JSON-RPC сессии, function calling предполагает, что модель вернет выбранную функцию и аргументы для выполнения приложением, OpenAPI Tools делают HTTP-запросы к операциям по OAS.
- Оркестрация: MCP роутит между серверами и инструментами на хосте, function calling ориентирован на локальную логику приложения, а инструменты на базе OpenAPI используют агентские тулкиты для маршрутизации намерений в операции.
- Транспорт и переносимость: MCP работает по stdio или вариантам HTTP и рассчитан на кросс-хостовое использование; function calling обычно внутрипередает данные через API поставщика и менее переносим; OpenAPI опирается на HTTP(S) и нейтрален к поставщикам, но требует слоя оркестрации.
Сильные стороны и ограничения
MCP
- Сильные стороны: стандартизированное обнаружение и вызов, повторное использование серверов, подходит для мульти-инструментальной оркестрации, растущая поддержка в проектах вроде Semantic Kernel и Cursor.
- Ограничения: требует запуска серверов и реализации политик хоста по идентификации, согласию и песочнице, а также управления жизненным циклом сессий и маршрутизацией.
Function Calling
- Сильные стороны: минимальные затраты на интеграцию, быстрый цикл управления для низкой задержки, простая валидация через JSON Schema.
- Ограничения: каталоги локальны для приложения и непереносимы без переопределения под другого поставщика, ограниченные возможности встроенного обнаружения и управления.
OpenAPI Tools
- Сильные стороны: зрелые контракты, встроенные схемы безопасности вроде OAuth2 и ключей, богатые инструменты и генерация агентов из OAS.
- Ограничения: OAS описывает HTTP-контракты, но не обеспечивает агентного control loop — нужен отдельный оркестратор или хост.
Безопасность и управление
- MCP: применять политики хоста по спискам разрешенных серверов, областям доступа инструментов, запрашивать согласие пользователя и использовать эпемерные учетные данные. При платформенной поддержке акцент на реестре и явных запросах согласия.
- Function Calling: строго валидировать аргументы по схемам, поддерживать белые списки и логировать вызовы для аудита.
- OpenAPI Tools: использовать схемы безопасности OAS, шлюзы и валидацию по схемам; ограничивать тулкиты, которые позволяют произвольные запросы.
Сигналы экосистемы и переносимость
- MCP: поддерживается в Microsoft Semantic Kernel и Cursor, есть сигналы о более широкой поддержке на уровне платформ.
- Function Calling: доступно у основных поставщиков LLM и легко принимается для локальных приложений.
- OpenAPI Tools: множество стэков могут генерировать инструменты из OAS, OpenAPI остается стандартом для HTTP-контрактов.
Правила выбора
- Function Calling подойдет для локальной автоматизации с небольшим набором действий и жесткими требованиями по задержке. Держите схемы компактными, валидируйте строго и тестируйте цикл.
- MCP лучше для кросс-рантаймовой переносимости и общих интеграций между агентами, IDE, рабочими столами и бэкендами, когда нужна стандартизированная схема обнаружения и вызова.
- OpenAPI Tools рекомендуются для корпоративных наборов HTTP-сервисов, где важны формальные контракты, схемы безопасности и централизованное управление. Используйте OAS как источник правды и применяйте шлюзы и оркестраторы.
Гибридные подходы и рекомендации
Частая практическая схема гибридная: храните OAS-спецификации как канонический источник контрактов, экспонируйте сервисы через MCP-сервер для портативности и при необходимости монтируйте критичные по задержке функции как function calls в конкретных продуктах. Это дает баланс между управлением, переносимостью и производительностью.