Ресурсы (resources)
Данные, которые читает приложение
Ресурсы дают приложению структурированный доступ к информации, которую оно может передать модели как контекст: файлы, ответы API, схемы баз данных. Приложение само решает, как использовать данные: выбрать фрагменты, найти по векторному поиску или отдать модели целиком.
Как это устроено#
У каждого ресурса есть уникальный URI (например, file:///path/to/document.md) и тип MIME. Ресурсы бывают двух видов.
- Прямые ресурсы имеют фиксированные URI и указывают на конкретные данные. Пример:
calendar://events/2024. - Шаблоны ресурсов задают динамические URI с параметрами для гибких запросов. Пример:
travel://activities/{city}/{category}; конкретный вариант —travel://activities/barcelona/museums.
Шаблоны содержат метаданные (название, описание, ожидаемый тип MIME), поэтому их можно находить и понимать без документации:
{
"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 («Транспорты»).
Подписка на изменения#
Чтобы следить за конкретными ресурсами, клиент отправляет запрос subscriptions/listen и перечисляет URI в фильтре resourceSubscriptions. Когда наблюдаемый ресурс меняется, сервер доставляет notifications/resources/updated в открытом потоке. Подробнее: «Шаблоны обмена».
Автодополнение параметров#
Для динамических ресурсов можно подсказывать допустимые значения параметров. Когда пользователь вводит «Par» в weather://forecast/{city}, система может предложить «Paris» или «Park City». Так пользователю не нужно знать точный формат.
Модель взаимодействия#
Ресурсы управляются приложением, поэтому способы показа свободны:
- деревья и списки для просмотра в привычном виде папок;
- поиск и фильтры;
- автоматическое включение в контекст или умные предложения по эвристикам либо выбору ИИ;
- ручной или массовый выбор нескольких ресурсов.
Протокол не навязывает интерфейс: это может быть выбор с предпросмотром, предложения по ходу разговора или интеграция с файловыми менеджерами.
Ошибка «ресурс не найден»#
В ревизии 2026-07-28 код ошибки «ресурс не найден» изменён с -32002 на -32602 (неверные параметры), чтобы согласовать с JSON-RPC. Клиентам СЛЕДУЕТ по-прежнему принимать -32002 от серверов прежних версий. Подробнее: «Ошибки».