MCP: как AI подключается к внешнему миру
Что такое MCP (Model Context Protocol), как он работает, зачем нужен и почему стал стандартом подключения AI к внешним инструментам. Архитектура, примеры, практика.
Языковые модели умеют генерировать текст, писать код и анализировать данные. Но попросите ChatGPT прочитать файл с вашего диска или отправить сообщение в Slack — и он разведёт руками. LLM живут в изоляции: у них нет доступа к вашим данным, инструментам и сервисам. Model Context Protocol (MCP) решает именно эту проблему — он даёт AI стандартный способ подключения к внешнему миру.
В этой статье разберём, что такое MCP, как устроена его архитектура, какие задачи он решает и почему за полтора года существования стал отраслевым стандартом, который поддерживают Anthropic, OpenAI, Google и Microsoft.
Проблема: каждая интеграция — с нуля
До появления MCP каждый разработчик, который хотел подключить LLM к внешнему сервису, писал собственный «мост». Нужен доступ к GitHub? Пишем адаптер. К базе данных? Ещё один адаптер. К файловой системе? Третий. У каждого AI-провайдера — свой формат вызова функций (function calling), свои ограничения, свой API.
Ситуация напоминала мир до USB: у каждого устройства — свой разъём, свой кабель, свой протокол. MCP стал тем самым «USB-портом» для AI.
Результат — фрагментация. Тысячи одноразовых интеграций, которые ломаются при обновлении модели, не переносятся между провайдерами и требуют постоянной поддержки.
Что такое MCP и как он устроен
Model Context Protocol (MCP) — открытый протокол, представленный Anthropic в ноябре 2024 года. Он стандартизирует способ взаимодействия LLM-приложений с внешними данными, инструментами и сервисами.
MCP использует клиент-серверную архитектуру поверх JSON-RPC 2.0:
graph LR
U[Пользователь] --> H[Host-приложение
Claude Desktop, IDE, агент]
H --> C1[MCP-клиент]
H --> C2[MCP-клиент]
H --> C3[MCP-клиент]
C1 --> S1[MCP-сервер
GitHub]
C2 --> S2[MCP-сервер
PostgreSQL]
C3 --> S3[MCP-сервер
Файловая система]
S1 --> D1[(GitHub API)]
S2 --> D2[(База данных)]
S3 --> D3[(Локальные файлы)]
Три ключевых компонента:
- Host — приложение, в котором работает LLM (Claude Desktop, VS Code с Copilot, кастомный агент). Управляет жизненным циклом подключений.
- MCP-клиент — модуль внутри хоста, который устанавливает соединение «один к одному» с конкретным MCP-сервером.
- MCP-сервер — лёгкая программа, которая предоставляет доступ к конкретному сервису или источнику данных через стандартный протокол.
Три примитива MCP
Протокол определяет три базовых примитива — это «строительные блоки», из которых собирается любая интеграция:
| Примитив | Кто управляет | Назначение | Пример |
|---|---|---|---|
| Tools (инструменты) | Модель | Действия, которые AI может вызывать | Отправить сообщение, создать файл, выполнить SQL-запрос |
| Resources (ресурсы) | Приложение | Данные для чтения, идентифицируемые по URI | Содержимое файла, запись в БД, лог API |
| Prompts (промпты) | Пользователь | Шаблоны взаимодействия | «Проанализируй этот PR», «Суммаризируй канал» |
Tools — самый мощный примитив. Модель автоматически обнаруживает доступные инструменты, понимает их описание и решает, какой вызвать для решения задачи пользователя. Это именно то, что делает AI-агентов по-настоящему автономными.
Как это работает на практике
Разберём конкретный сценарий. Допустим, разработчик спрашивает Claude: «Найди все открытые баги с меткой critical в нашем репозитории и создай сводку».
Вот что происходит под капотом:
- Обнаружение — клиент при подключении запрашивает у MCP-сервера GitHub список доступных инструментов (
tools/list). - Выбор — модель анализирует запрос и решает вызвать инструмент
search_issuesс параметрамиlabel:critical, state:open. - Выполнение — MCP-сервер выполняет запрос к GitHub API и возвращает результат.
- Обработка — модель получает данные, формирует сводку и отвечает пользователю.
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "search_issues",
"arguments": {
"query": "label:critical state:open",
"repo": "myorg/myproject"
}
},
"id": 1
}
Всё это происходит в рамках одного диалога — пользователь просто задаёт вопрос на естественном языке, а MCP обеспечивает «мост» между моделью и реальным сервисом.
Экосистема: серверы, клиенты, кто это использует
Популярные MCP-серверы
По состоянию на апрель 2026 года в экосистеме более 5 000 MCP-серверов. Вот ключевые категории:
| Категория | Серверы | Что делают |
|---|---|---|
| Разработка | GitHub, Git, Sentry | Управление репозиториями, code review, трекинг ошибок |
| Базы данных | PostgreSQL, SQLite, MongoDB | Запросы к БД на естественном языке |
| Коммуникации | Slack, Gmail, Google Calendar | Чтение и отправка сообщений, управление событиями |
| Файлы и хранилища | Filesystem, Google Drive, S3 | Чтение, создание и организация файлов |
| Веб и поиск | Brave Search, Fetch, Playwright | Поиск, скрейпинг, браузерная автоматизация |
| Мониторинг | Sentry, Datadog, Grafana | Анализ логов и метрик |
| Память | Memory (Knowledge Graph) | Персистентная память агентов между сессиями |
Официальные reference-серверы от Anthropic доступны на GitHub и лицензированы под MIT.
Кто поддерживает MCP
Принятие протокола крупнейшими игроками произошло стремительно:
- Март 2025 — OpenAI добавил поддержку MCP в Agents SDK, Responses API и десктопный ChatGPT
- Апрель 2025 — Google DeepMind подтвердил поддержку MCP в Gemini
- Май 2025 — Microsoft анонсировал интеграцию MCP в Windows 11 на Build 2025
- Декабрь 2025 — Anthropic передал MCP в Agentic AI Foundation (AAIF) под управлением Linux Foundation. Соучредители — Anthropic, Block и OpenAI; поддержка от Google, Microsoft, AWS, Cloudflare и Bloomberg
К марту 2026 года MCP SDK набрал более 97 миллионов установок в месяц. Протокол перестал быть экспериментом одной компании — это отраслевой стандарт.
Как написать свой MCP-сервер
Создать MCP-сервер проще, чем кажется. Официальные SDK доступны для Python и TypeScript. Вот минимальный пример на Python:
from mcp.server import Server
from mcp.types import Tool, TextContent
server = Server("my-weather-server")
@server.tool()
async def get_weather(city: str) -> list[TextContent]:
"""Получить текущую погоду для указанного города."""
# Здесь вызов реального API погоды
weather_data = await fetch_weather_api(city)
return [TextContent(
type="text",
text=f"Погода в {city}: {weather_data['temp']}°C, {weather_data['description']}"
)]
if __name__ == "__main__":
server.run()
Этого достаточно, чтобы любой MCP-совместимый клиент (Claude Desktop, Cursor, VS Code) мог обнаружить инструмент get_weather и вызывать его по запросу пользователя.
Транспорт
MCP поддерживает два основных транспорта:
- stdio — сервер запускается как дочерний процесс, общение через stdin/stdout. Идеален для локальных инструментов.
- HTTP + SSE (Streamable HTTP) — сервер работает как HTTP-endpoint. Подходит для удалённых серверов и продакшн-деплоя.
В спецификации от ноября 2025 года также добавлена поддержка асинхронных операций и stateless-режима, что критично для масштабирования в enterprise-сценариях.
Зачем это нужно: сценарии применения
MCP меняет подход к построению AI-систем. Вот ключевые сценарии:
AI-агенты для разработки. Cursor, Windsurf, Claude Code используют MCP для доступа к файловой системе, Git, терминалу и внешним API. Агент не просто генерирует код — он читает проект, запускает тесты, создаёт коммиты.
Корпоративные ассистенты. Подключение LLM к внутренним системам компании: CRM, базы знаний, тикет-системы. Вместо «выгрузи данные и вставь в промпт» — прямой доступ через MCP.
Автоматизация рабочих процессов. Цепочки из нескольких MCP-серверов: агент читает письма (Gmail-сервер), создаёт задачи (Linear-сервер), уведомляет команду (Slack-сервер) — всё в рамках одного диалога.
Аналитика данных. Подключение к базам данных позволяет задавать вопросы на естественном языке и получать ответы, основанные на реальных данных, без написания SQL вручную.
graph TD
A[Пользователь: Подготовь отчёт по продажам] --> B[AI-агент]
B --> C[MCP: PostgreSQL
Запрос данных о продажах]
B --> D[MCP: Google Sheets
Создание таблицы]
B --> E[MCP: Slack
Отправка отчёта в канал]
C --> B
D --> B
E --> F[Отчёт доставлен]
Что дальше: роадмап 2026
Протокол активно развивается. Согласно официальному роадмапу на 2026 год, ключевые направления:
- Авторизация и аутентификация — стандартизированный механизм OAuth 2.1 для безопасного подключения к удалённым серверам
- Реестр серверов — официальный каталог проверенных MCP-серверов с метаданными и рейтингами
- Мультимодальность — передача изображений, аудио и видео через MCP
- Agent-to-agent коммуникация — возможность для AI-агентов взаимодействовать друг с другом через MCP
Передача протокола в Linux Foundation гарантирует, что MCP останется открытым стандартом и не станет инструментом vendor lock-in.
Заключение
MCP решил фундаментальную проблему AI-индустрии: отсутствие стандартного способа подключения моделей к внешнему миру. Вместо тысяч одноразовых интеграций — единый протокол с тремя чёткими примитивами (Tools, Resources, Prompts), клиент-серверной архитектурой и поддержкой всех ключевых игроков рынка.
Для разработчика MCP означает: написал сервер один раз — он работает с Claude, ChatGPT, Gemini и любым другим MCP-совместимым клиентом. Для бизнеса: AI-агенты получают контролируемый доступ к корпоративным системам без самописных мостов. Для индустрии: общий фундамент, на котором строится следующее поколение AI-приложений.
Если вы строите что-то с использованием LLM и вам нужен доступ к внешним данным или инструментам — MCP уже не опция, а стандарт.
Источники
- Introducing the Model Context Protocol — Anthropic
- Model Context Protocol — Official Specification
- Model Context Protocol — Wikipedia
- Why the Model Context Protocol Won — The New Stack
- Donating the Model Context Protocol and establishing the Agentic AI Foundation
- MCP's biggest growing pains for production use will soon be solved — The New Stack
- Model Context Protocol Servers — GitHub