Начало / Понятия
Понятия
Основные объекты и роли протокола
Сервер предоставляет функциональность через три «строительных блока»: инструменты, ресурсы и шаблоны запросов. Этот раздел собирает основные понятия, а отдельные страницы разбирают главные из них подробно.
Словарь понятий#
| Понятие | Что это |
|---|---|
| Хост (host) | ИИ-приложение, которое подключается к серверам MCP и координирует клиентов. |
| Клиент (client) | Компонент хоста, который держит соединение с одним сервером и получает от него контекст. |
| Сервер (server) | Программа, которая предоставляет контекст клиентам. Бывает локальной (stdio) и удалённой (Streamable HTTP). |
Обнаружение (server/discover) |
Запрос, по которому клиент узнаёт поддерживаемые версии протокола, возможности и сведения о сервере. |
| Инструменты (tools) | Функции с типизированными входом и выходом, которые вызывает приложение по решению модели. |
| Ресурсы (resources) | Данные для чтения, которые определяет URI. Бывают прямыми и шаблонными. |
| Шаблоны запросов (prompts) | Параметризованные шаблоны, которые пользователь вызывает явно. |
| Запрос данных у пользователя (elicitation). Способ, которым сервер просит у пользователя недостающие данные или подтверждение действия. С ревизии 2026-07-28 строится на многошаговых запросах. В глоссарии (elicitation) | Способ, которым сервер просит у пользователя недостающие данные или подтверждение. |
| Расширение (extension). Необязательная возможность поверх базового протокола, которую клиент и сервер объявляют явно, например Tasks или MCP Apps. В глоссарии (extension) | Необязательная возможность поверх базового протокола, например Tasks или MCP Apps. Объявляется в поле extensions в возможностях. |
_meta |
Поле для служебных данных, которые клиент и сервер прикрепляют к запросам и ответам, включая версию протокола. |
Кто что контролирует#
У каждого примитива свой «хозяин»:
- Инструменты управляются моделью: она сама решает, когда их вызвать. Но спецификация рекомендует, чтобы человек мог отклонить вызов.
- Ресурсы управляются приложением: оно решает, какие данные и как показать модели.
- Шаблоны управляются пользователем: их нужно вызвать явно, например через слэш-команду.
Как это работает вместе#
Типичное взаимодействие выглядит так.
- Знакомство (необязательно). Клиент запрашивает
server/discoverи узнаёт версии, возможности и название сервера. Можно обойтись без этого шага: каждый запрос и так несёт версию и возможности клиента. - Перечни. Клиент запрашивает
tools/list,resources/listилиprompts/listи узнаёт, что доступно. - Работа. Приложение вызывает инструмент (
tools/call), читает ресурс (resources/read) или получает шаблон (prompts/get). - Изменения. Если нужно следить за изменениями, клиент открывает поток
subscriptions/listenи выбирает типы уведомлений.
Если серверу по ходу запроса нужны данные от пользователя, он не посылает отдельный запрос, а возвращает промежуточный результат input_required, и клиент повторяет исходный запрос с ответом. Подробнее: «Шаблоны обмена».
Что читать дальше#
- Обнаружение: что возвращает
server/discover. - Инструменты: поля, результаты, ошибки.
- Ресурсы: URI, шаблоны, подписки.
- Шаблоны запросов: аргументы и вызов.