# Ресурсы (resources)

Данные, которые читает приложение

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

Ресурсы дают приложению структурированный доступ к информации, которую оно может передать модели как контекст: файлы, ответы API, схемы баз данных. Приложение само решает, как использовать данные: выбрать фрагменты, найти по векторному поиску или отдать модели целиком.

## Как это устроено

У каждого ресурса есть уникальный URI (например, `file:///path/to/document.md`) и тип MIME. Ресурсы бывают двух видов.

- **Прямые ресурсы** имеют фиксированные URI и указывают на конкретные данные. Пример: `calendar://events/2024`.
- **Шаблоны ресурсов** задают динамические URI с параметрами для гибких запросов. Пример: `travel://activities/{city}/{category}`; конкретный вариант — `travel://activities/barcelona/museums`.

Шаблоны содержат метаданные (название, описание, ожидаемый тип MIME), поэтому их можно находить и понимать без документации:

```json
{
  "uriTemplate": "weather://forecast/{city}/{date}",
  "name": "weather-forecast",
  "title": "Weather Forecast",
  "description": "Get weather forecast for any city and date",
  "mimeType": "application/json"
}
```

## Методы

| Метод | Назначение | Что возвращает |
| --- | --- | --- |
| `resources/list` | Список прямых ресурсов. | Массив описаний ресурсов. |
| `resources/templates/list` | Список шаблонов ресурсов. | Массив определений шаблонов. |
| `resources/read` | Чтение содержимого ресурса. | Данные ресурса с метаданными. |
| `subscriptions/listen` | Слежение за изменениями. | Поток уведомлений об обновлении. |

Результаты `resources/list`, `resources/templates/list` и `resources/read` несут обязательные поля `ttlMs` и `cacheScope` для кэширования. Заголовок `Mcp-Name` при чтении ресурса по HTTP содержит URI ([«Транспорты»](https://mcpdocs.ru/protocol/transports/#standartnye-zagolovki-zaprosa)).

## Подписка на изменения

Чтобы следить за конкретными ресурсами, клиент отправляет запрос `subscriptions/listen` и перечисляет URI в фильтре `resourceSubscriptions`. Когда наблюдаемый ресурс меняется, сервер доставляет `notifications/resources/updated` в открытом потоке. Подробнее: [«Шаблоны обмена»](https://mcpdocs.ru/protocol/patterns/#podpiska-na-izmeneniya-subscriptions-listen).

> **Заметка переводчика.** До ревизии 2026-07-28 для этого служили методы `resources/subscribe` и `resources/unsubscribe`. В новой ревизии они заменены на `subscriptions/listen`.

## Автодополнение параметров

Для динамических ресурсов можно подсказывать допустимые значения параметров. Когда пользователь вводит «Par» в `weather://forecast/{city}`, система может предложить «Paris» или «Park City». Так пользователю не нужно знать точный формат.

## Модель взаимодействия

Ресурсы **управляются приложением**, поэтому способы показа свободны:

- деревья и списки для просмотра в привычном виде папок;
- поиск и фильтры;
- автоматическое включение в контекст или умные предложения по эвристикам либо выбору ИИ;
- ручной или массовый выбор нескольких ресурсов.

Протокол не навязывает интерфейс: это может быть выбор с предпросмотром, предложения по ходу разговора или интеграция с файловыми менеджерами.

## Ошибка «ресурс не найден»

В ревизии 2026-07-28 код ошибки «ресурс не найден» изменён с `-32002` на `-32602` (неверные параметры), чтобы согласовать с JSON-RPC. Клиентам СЛЕДУЕТ по-прежнему принимать `-32002` от серверов прежних версий. Подробнее: [«Ошибки»](https://mcpdocs.ru/protocol/errors/).
