Skill MCP в этой задаче — расширение MCP Skills, через которое сервер публикует инструкции Agent Skills для клиента как ресурсы. Клиент обнаруживает запись через `skills/list`, уточняет её через `skills/get`, читает `SKILL.md` через `resources/read` и сверяет содержимое с манифестом. Поддержку расширения и источник навыка проверяют до загрузки на каждом подключённом MCP-сервере.

Расширение протокола

TL;DR

Стабильная спецификация MCP Skills описывает транспорт навыка поверх Resources для базовой ревизии MCP 2026-07-28 и новее. Сервер объявляет расширение, клиент получает манифест и читает файлы; проверка происхождения и допуск к применению остаются отдельными действиями.

Навык здесь означает каталог инструкций с корневым `SKILL.md` и возможными вспомогательными файлами. В отличие от MCP tools, навык описывает последовательность работы для агента, а инструмент выполняет конкретную операцию. Сервер может публиковать оба вида возможностей. Поддержку навыков показывает отдельное объявление расширения. Клиент сначала смотрит объявленные расширения сервера и лишь затем вызывает методы семейства `skills/`.

По стабильной спецификации расширения, сервер сообщает поддержку в `server/discover` под именем `io.modelcontextprotocol/skills` и также объявляет Resources. Обязательные методы расширения — `skills/list` и `skills/get`. Файлы читаются обычным `resources/read`; дополнительное чтение каталога доступно только при объявленном `directoryRead`. Так в рабочей схеме разделяются перечень навыков, запись одного навыка и фактическое содержимое файла.

Это отличается от локального навыка, лежащего в репозитории команды. У локального файла источник определён файловой средой, а в MCP-расширении инструкции приходят от подключённого сервера. Клиент обязан сохранять идентичность сервера вместе с URI навыка: одинаковый `skill://` адрес у разных серверов может обозначать разные материалы. Название навыка служит меткой. Автора и право на использование подтверждают по источнику.

Манифест и URI

Запись `Skill` содержит URI корневого `SKILL.md`, frontmatter и перечень ресурсов. Для обычного стабильного набора каждый файл перечислен с размером и digest. Адрес вида `skill://workflow/SKILL.md` удобен как пример; схема `skill://` рекомендована, но спецификация допускает и другие схемы. Важно проверить точный URI из записи конкретного сервера. Навык подтверждают записью сервера, помимо проверки вида адреса.

Метод `skills/list` возвращает опубликованные записи с возможной пагинацией. Для известного URI метод `skills/get` возвращает запись одного навыка, даже если тот отсутствует в частичном списке. Сама запись содержит метаданные и манифест, а текст инструкции получают отдельным `resources/read`. Такое разделение позволяет до чтения увидеть происхождение, состав файлов и размер набора. Клиент может показать эти сведения ответственному за подключение без автоматической активации навыка.

Digest фиксирует содержимое конкретного файла на уровне байтов. При чтении host сверяет размер и digest с записью; расхождение означает необходимость остановить применение и обновить запись. Для полного перечня ресурсов удобен скрипт, который сравнивает URI, размеры и digest по манифесту. Языковая модель может объяснить найденное расхождение и предложить гипотезу об обновлении, а человек сверяет список с фактическим ответом сервера. Совпавший digest подтверждает целостность пары «манифест — файл», но доверие к поставщику оценивают отдельно.

// версия набора

Сохраняйте идентичность сервера, URI и набор digest для каждого одобренного навыка. При изменении файлов запрашивайте новую запись и новое решение о загрузке.

Маршрут пилота

Для будущего пилота подойдёт тестовый навык с кратким алгоритмом классификации обезличенного обращения. Сервер публикует его `SKILL.md` и разрешённый справочный файл. Клиент проверяет объявление расширения, получает запись и показывает владельцу процесса источник, описание и состав ресурсов. Тестовый набор состоит из открытых инструкций и обезличенных данных, без рабочих ключей и скрытых команд. Такой пример позволяет изучить транспорт и доверие к инструкциям без изменения внешних систем.

  1. Проверьте, что сервер объявил `io.modelcontextprotocol/skills` и Resources. Зафиксируйте идентичность сервера и базовую ревизию протокола.
  2. Вызовите `skills/list`, найдите URI тестового `SKILL.md` и сохраните запись с перечнем файлов. Для конкретного известного URI сверьте результат `skills/get`.
  3. Покажите человеку источник, frontmatter и полный состав ресурсов. Отдельно просмотрите содержание инструкции и возможные запросы на дополнительные права.
  4. Получите `SKILL.md` через `resources/read`. Сверьте размер, digest и frontmatter; вспомогательные файлы читайте по мере надобности через тот же метод.
  5. Измените тестовый файл на стороне пилотного сервера как отдельный контролируемый сценарий. Проверьте, что прежнее одобрение требует нового рассмотрения после изменения манифеста.

Вызов `resources/read` сам по себе только доставляет содержимое. Активацию выполняет собственный механизм host после проверки записи и требуемого согласия пользователя. Этот порядок важен для безопасного теста: можно прочитать файл для инспекции, сохранив его статус обычного внешнего текста. Содержание навыка рассматривают как недоверенный материал. Если текст просит запускать скрипт либо расширять файловые полномочия, решение проходит отдельный допуск и серверную проверку прав.

Проверка результата состоит из журнала: какой сервер предложил URI, какая запись получена, какие файлы прочитаны и кто разрешил загрузку. Для полного набора скрипт сопоставляет манифест и считанные байты, а модель помогает человеку сформулировать причину возможного расхождения. Про общую конструкцию серверных возможностей есть материал о собственном MCP-сервере; здесь проверяется публикация инструкций через расширение.

● Discovery · 1 час · бесплатно

Хотите проверить публикацию навыков на тестовом сервере?

Прийти на Discovery →

Доверие и допуск

Манифест нужен для контроля изменений, однако digest приходит с того же сервера, что и файл. Совпадение хешей показывает согласованность ответа, а происхождение и намерение автора устанавливают по отдельной процедуре доверия. Host показывает пользователю сервер-источник и содержимое навыка до загрузки. Совпадающие названия на разных серверах различают по паре «сервер, URI». Подмена локального навыка одноимённым MCP-ресурсом должна блокироваться правилами host.

ПроверкаЧто сверятьРешение
ОбъявлениеРасширение и поддержка ResourcesРазрешить чтение метаданных
ПроисхождениеИдентичность сервера и URIПоказать владельцу навыка
ЦелостностьРазмер, digest, frontmatterЗагрузить только совпавший набор
ПолномочияИнструкции и запрашиваемые инструментыПодтвердить отдельно или отклонить

Особого внимания требуют поля, обещающие модели дополнительные инструменты. По спецификации поле `allowed-tools` в навыке с MCP-источником требует отдельного согласия на расширение полномочий. То же касается выполнения кода на стороне host. Право читать внешний ресурс, запускать программу или менять данные определяют политика host и сервер. При отказе фиксируют правило и источник попытки, сохраняя журнал без чувствительного содержимого.

Если сервер публикует динамическое содержимое с `resources: "dynamic"`, у записи нет устойчивого перечня digest для связывания одобрения с набором файлов. Для пилота выберите стабильный манифест; динамический вариант требует отдельной оценки риска. После смены списка файлов или digest прежнее сохранённое согласие теряет силу по правилам расширения. Так выявляют обновление содержимого. Доверие к самому серверу оценивают отдельно.

Приёмка пилота

Пилот принимают по наблюдаемому маршруту публикации и загрузки навыка. Сервер должен объявить расширение, вернуть запись по URI, отдать файл как ресурс и пройти сверку содержимого. Отдельные отрицательные проверки включают неизвестный URI, изменённый digest и попытку получить лишнее право из инструкции. Ответственный человек подтверждает, что инспектировал источник и состав навыка перед решением о загрузке.

В протоколе полезно сохранять идентичность сервера, URI, описание навыка, манифест, результат проверки байтов и решение о допуске. При новой версии тот же процесс повторяют для обновлённого набора ресурсов. Испытание проходит на тестовом сервере и обезличенных данных, а использование в рабочем контуре обсуждают только после оценки источника. Полезность инструкции проверяют на отдельном эталонном задании с ручной оценкой.

Стоимость внедрения зависит от поддержки расширения у host и сервера, проверки происхождения, настройки прав и сопровождения версий. Тарифы и смету обсуждают по составу работ без числовых обещаний. Для команды, которая хочет связать навыки с задачами агента, полезна страница про внедрение ИИ-агентов. На обсуждении стоит сразу обозначить владельца инструкций, порядок проверки обновлений и допустимые инструменты.

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

Частые вопросы

Skill MCP входит в каждый MCP-сервер?
Нет. Это отдельное расширение. Сервер объявляет `io.modelcontextprotocol/skills` вместе с Resources, после чего клиент может обращаться к `skills/list` и `skills/get`.
Что возвращает skills/get?
Метаданные одного навыка и манифест его файлов. Текст `SKILL.md` клиент получает через `resources/read` по URI ресурса.
Зачем проверять digest навыка?
Размер и digest помогают обнаружить расхождение между записью и полученным файлом. Доверие к источнику проверяют отдельно: обе части приходят от одного сервера.
Чтение SKILL.md включает навык?
Обычный `resources/read` доставляет файл для просмотра. Загрузку выполняет механизм host после проверки записи и нужного согласия; права на инструменты рассматривают отдельно.
От чего зависит стоимость публикации навыков?
От возможностей клиента и сервера, числа проверяемых файлов, политики доступа и порядка обновления. Состав проекта определяют после выбора тестового навыка и критериев приёмки.