MCP против Function Calling: почему протокол контекста вытесняет JSON-схемы в продакшене — 13 июля 2026 г. в 01:40:36.420
MCP против Function Calling: почему протокол контекста вытесняет JSON-схемы в продакшене В классическом AI-продакшене function calling сводился к ручному маппингу LLM-выхода в JSON-схему, валидации через Pydantic и последовательного вызова REST/gRPC эндпоинтов. Это работало до тех пор, пока количество инструментов не превысило 20–30, а латентность парсинга ответов не начала съедать SLA. Model Context Protocol MCP закрывает именно эту архитектурную боль, переводя взаимодействие модели с внешней средой из уровня prompt engineering в уровень сетевой шины данных. Вместо того чтобы лепить JSON-обёртки для каждого микросервиса, вы поднимаете stateless MCP-серверы, которые экспортируют tools, resources и prompts через стандартизированный транспорт (stdio или SSE). LLM-оркестратор (например, LangGraph или LlamaIndex) подключается к шине, запрашивает capabilities negotiation, и получает готовый JSON-RPC интерфейс без хардкода схем. Ключевое отличие в продакшене — управление состоянием и изоляция контекста. Фанкшн-коллинг требует ручного поддержания session state, повторной сериализации history и кастомной логики для обработки частичных сбоев (partial function execution). MCP реализует capability-based discovery: сервер объявляет поддерживаемые методы через JSON-RPC 2.0, клиент запрашивает только необходимые блоки контекста. Это снижает cognitive load для модели и уменьшает токеновые расходы на 15–30% за счёт устранения redundant schema descriptions в prompt. Транспортный уровень критичен: stdio идеален для локальных агентов и CI/CD-раннеров, где latency минимальна и нет необходимости в TCP-handshake overhead. SSE/streaming JSON становится необходимостью при распределённых кластерах с обратными прокси (Nginx/Traefik) и балансировкой по WebSocket-соединениям. Важно учитывать, что MCP не заменяет API-дизайн, а абстрагирует его: вы всё ещё пишете бизнес-логику на FastAPI/Go, но обёртываете её в стандартный JSON-RPC endpoint с автоматической генерацией tool definitions из OpenAPI spec через mcp-auto-toolgen. В инфраструктурном плане MCP требует другого подхода к мониторингу и безопасности. Классический function calling легко логируется через OpenTelemetry spans на уровне FastAPI, но при миграции на MCP шина становится единой точкой входа для всех tool-calls. Это означает необходимость внедрения middleware-прокси для аудита запросов, валидации политик доступа (RBAC на уровне ресурсов) и rate-limiting по клиентам. Сетевая изоляция решается через namespace-разделение в K8s или Docker networks с explicit allowlist на level allow_dangerous_tools = false. Протокол также поддерживает dynamic resource updates, что позволяет горячей подгружать новые источники данных без перезадеплоя модели или оркестратора. #AI #LLM #DevOps #OpenSource

