# Введение

Зачем нужен MCP и как он устроен

> Страница сайта MCP Docs — неофициального перевода документации Model Context Protocol (https://mcpdocs.ru/intro/). Тип: Перевод. Основа: Архитектура MCP (документация 2026-07-28) (https://modelcontextprotocol.io/docs/2026-07-28/learn/architecture). Ревизия спецификации 2026-07-28, сверено 05.10.2026.

Model Context Protocol (MCP) — открытый протокол, по которому ИИ-приложения получают контекст от внешних серверов: инструменты, данные и шаблоны запросов. Он описывает только обмен контекстом и не диктует, как приложение использует языковую модель и распоряжается полученным контекстом.

> **Заметка переводчика.** Слово «контекст» здесь шире, чем «история диалога»: это всё, что сервер может дать приложению, от функций для вызова до содержимого файлов и баз данных.

## Из чего состоит проект

- **Спецификация MCP.** Требования к реализации клиентов и серверов.
- **SDK.** Библиотеки для разных языков программирования, реализующие протокол.
- **Инструменты разработки.** Например, MCP Inspector для проверки серверов.
- **Эталонные серверы.** Примеры реализаций серверов MCP.

## Участники

MCP построен по схеме «клиент — сервер». ИИ-приложение, например Claude Code или Claude Desktop, подключается к одному или нескольким серверам MCP. Для каждого сервера приложение создаёт отдельного клиента, и у каждой пары «клиент — сервер» своё соединение.

- **Хост MCP (host)**. ИИ-приложение, которое координирует одного или нескольких клиентов.
- **Клиент MCP (client)**. Компонент, который держит соединение с сервером и получает от него контекст для хоста.
- **Сервер MCP (server)**. Программа, которая предоставляет контекст клиентам.

Например, Visual Studio Code выступает хостом. Когда он подключается к серверу Sentry, среда выполнения создаёт клиента для этого соединения. Подключение ко второму серверу, например к серверу файловой системы, создаёт второго клиента.

Слово «сервер» относится к программе, которая отдаёт контекст, и не говорит, где она запущена. Локальный сервер работает на той же машине и использует транспорт stdio, а удалённый сервер работает на чужой платформе и использует Streamable HTTP. Локальный сервер обычно обслуживает одного клиента, удалённый — многих.

## Два слоя



- **Слой данных** определяет протокол обмена на основе JSON-RPC 2.0: обнаружение (`server/discover`), возможности сервера (инструменты, ресурсы, шаблоны), возможности клиента, служебные функции вроде уведомлений и отчётов о ходе работы.
- **Транспортный слой** определяет каналы обмена: установку соединения, обрамление сообщений и авторизацию. Формат сообщений JSON-RPC 2.0 одинаков для всех транспортов.

Концептуально слой данных внутренний, а транспортный внешний. Транспорты описаны на странице [«Транспорты»](https://mcpdocs.ru/protocol/transports/).

## Три примитива сервера

Примитивы определяют, что клиенты и серверы могут предложить друг другу. Сервер может открыть три основных примитива.

| Примитив | Что это | Кто управляет |
| --- | --- | --- |
| Инструменты (tools) | Функции, которые приложение вызывает, чтобы выполнить действие: операции с файлами, вызовы API, запросы к базам данных. | Модель |
| Ресурсы (resources) | Источники данных, которые дают приложению контекст: содержимое файлов, записи баз данных, ответы API. | Приложение |
| Шаблоны запросов (prompts) | Готовые шаблоны, которые помогают структурировать взаимодействие с моделью: системные подсказки, примеры. | Пользователь |

У каждого примитива есть методы обнаружения (`*/list`), получения (`*/get`, `resources/read`) и, для инструментов, выполнения (`tools/call`). Благодаря `*/list` перечни могут быть динамическими. Подробно: [«Понятия»](https://mcpdocs.ru/concepts/).

## Что у клиента

Клиент может открыть серверу запрос данных у пользователя (elicitation): так сервер просит недостающие данные или подтверждение действия. Начиная с версии 2026-07-28 такие запросы доставляются по шаблону многошагового запроса (MRTR), описанному на странице [«Шаблоны обмена»](https://mcpdocs.ru/protocol/patterns/).

Устарели с версии 2026-07-28 и не рекомендованы для новых реализаций: **сэмплинг** (sampling, запрос ответа языковой модели у клиента), **корневые каталоги** (roots) и **журналирование** (logging, передача журналов клиенту). Подробнее: [«Миграция»](https://mcpdocs.ru/migration/#ustarevshie-vozmozhnosti).

## MCP и A2A

MCP подключает агента к инструментам и данным, а [A2A](https://a2adocs.ru/) связывает агентов между собой. Протоколы дополняют друг друга. Сравнение, таблица различий и типичные заблуждения: страница [«MCP и A2A»](https://mcpprotocol.ru/mcp-vs-a2a/) справочника mcpprotocol.ru (то же со стороны A2A: [a2aprotocol.ru](https://a2aprotocol.ru/a2a-vs-mcp/)).

## Что читать дальше

- [Понятия](https://mcpdocs.ru/concepts/): сервер, обнаружение, инструменты, ресурсы, шаблоны.
- [Протокол](https://mcpdocs.ru/protocol/): сообщения, поля `_meta`, версии.
- [Миграция на 2026-07-28](https://mcpdocs.ru/migration/): если вы работаете с серверами прежней ревизии.
