# Понятия

Основные объекты и роли протокола

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

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

## Словарь понятий

| Понятие | Что это |
| --- | --- |
| Хост (host) | ИИ-приложение, которое подключается к серверам MCP и координирует клиентов. |
| Клиент (client) | Компонент хоста, который держит соединение с одним сервером и получает от него контекст. |
| Сервер (server) | Программа, которая предоставляет контекст клиентам. Бывает локальной (stdio) и удалённой (Streamable HTTP). |
| [Обнаружение](https://mcpdocs.ru/concepts/discovery/) (`server/discover`) | Запрос, по которому клиент узнаёт поддерживаемые версии протокола, возможности и сведения о сервере. |
| [Инструменты](https://mcpdocs.ru/concepts/tools/) (tools) | Функции с типизированными входом и выходом, которые вызывает приложение по решению модели. |
| [Ресурсы](https://mcpdocs.ru/concepts/resources/) (resources) | Данные для чтения, которые определяет URI. Бывают прямыми и шаблонными. |
| [Шаблоны запросов](https://mcpdocs.ru/concepts/prompts/) (prompts) | Параметризованные шаблоны, которые пользователь вызывает явно. |
| Запрос данных у пользователя (elicitation) | Способ, которым сервер просит у пользователя недостающие данные или подтверждение. |
| Расширение (extension) | Необязательная возможность поверх базового протокола, например Tasks или MCP Apps. Объявляется в поле `extensions` в возможностях. |
| `_meta` | Поле для служебных данных, которые клиент и сервер прикрепляют к запросам и ответам, включая версию протокола. |

> **Заметка переводчика.** Слово prompt в русскоязычных текстах встречается как «промпт», «подсказка» и «шаблон». Здесь для примитива MCP используется «шаблон запроса», чтобы отличать его от текста, который пользователь пишет модели.

## Кто что контролирует

У каждого примитива свой «хозяин»:

- **Инструменты** управляются моделью: она сама решает, когда их вызвать. Но спецификация рекомендует, чтобы человек мог отклонить вызов.
- **Ресурсы** управляются приложением: оно решает, какие данные и как показать модели.
- **Шаблоны** управляются пользователем: их нужно вызвать явно, например через слэш-команду.

## Как это работает вместе

Типичное взаимодействие выглядит так.

1. **Знакомство (необязательно).** Клиент запрашивает `server/discover` и узнаёт версии, возможности и название сервера. Можно обойтись без этого шага: каждый запрос и так несёт версию и возможности клиента.
2. **Перечни.** Клиент запрашивает `tools/list`, `resources/list` или `prompts/list` и узнаёт, что доступно.
3. **Работа.** Приложение вызывает инструмент (`tools/call`), читает ресурс (`resources/read`) или получает шаблон (`prompts/get`).
4. **Изменения.** Если нужно следить за изменениями, клиент открывает поток `subscriptions/listen` и выбирает типы уведомлений.

Если серверу по ходу запроса нужны данные от пользователя, он не посылает отдельный запрос, а возвращает промежуточный результат `input_required`, и клиент повторяет исходный запрос с ответом. Подробнее: [«Шаблоны обмена»](https://mcpdocs.ru/protocol/patterns/).

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

- [Обнаружение](https://mcpdocs.ru/concepts/discovery/): что возвращает `server/discover`.
- [Инструменты](https://mcpdocs.ru/concepts/tools/): поля, результаты, ошибки.
- [Ресурсы](https://mcpdocs.ru/concepts/resources/): URI, шаблоны, подписки.
- [Шаблоны запросов](https://mcpdocs.ru/concepts/prompts/): аргументы и вызов.
