Почему я всё ещё выбираю MCP, а не Skills

Почему я всё ещё выбираю MCP, а не Skills

AI-сообщество активно продвигает Skills как новый стандарт для расширения возможностей LLM. Я с этим не согласен. Skills отлично работают как чистая передача знаний — когда нужно объяснить модели, как использовать уже установленный инструмент. Но для подключения к реальным сервисам Model Context Protocol остаётся более правильным архитектурным решением. Нам нужно строить коннекторы, а не плодить CLI.

В последнее время повсюду звучит: «MCP умер», «Skills — новый стандарт». Куда ни посмотри — кто-то торжественно хоронит MCP и добавляет SKILL.md в репозиторий. Но я — активный пользователь AI, и мне Skills не подходят. Мир, где каждая интеграция — это отдельный CLI и markdown-инструкция, меня не привлекает.

Объясню, почему универсальная ставка на Skills — это шаг назад, и почему MCP по-прежнему выигрывает по архитектуре.

Что хорошо в MCP

Суть MCP проста: это API-абстракция. LLM не нужно знать, как работает сервис — достаточно знать, что можно сделать. Хочешь взаимодействовать с DEVONthink — вызываешь devonthink.do_x(), а MCP-сервер разбирается с деталями.

Из этого разделения ответственности вытекают практические преимущества:

  1. Нет установки для удалённых серверов. Укажи клиенту URL — и всё работает.
  2. Бесшовные обновления. Когда MCP-сервер обновляется, все клиенты получают новые инструменты мгновенно. Без переустановок и обновления бинарников.
  3. Нормальная аутентификация. Auth через OAuth на уровне протокола. Клиент завершил handshake — и может делать запросы. Без токенов в plain text.
  4. Настоящая совместимость. Удалённые MCP работают откуда угодно: Mac, телефон, браузер.
  5. Изолированность. MCP выставляют контролируемый интерфейс, а не дают LLM прямой доступ к локальной среде.
  6. Умная загрузка инструментов. Современные клиенты (ChatGPT, Claude и другие) загружают инструменты только при необходимости — контекст не засоряется.
  7. Автообновление без усилий. Даже локальные MCP, установленные через npx -y или uv, могут обновляться при каждом запуске.

Что не так со Skills

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

Главная проблема: Skills предполагают, что в любой среде можно запустить произвольный CLI. Но ChatGPT не умеет этого. Perplexity — тоже. Стандартный веб-Claude — нет. Если вы не в Codex, Claude Code или Perplexity Computer, CLI-зависимый Skill мертворождённый.

Отсюда — каскад проблем:

  1. Деплой. CLI нужно публиковать, управлять версиями, устанавливать через бинарники, NPM, uv и т.д.
  2. Управление секретами. Куда класть API-токены? Если повезёт, среда поддерживает .env. Но в эфемерных окружениях секреты могут исчезнуть после перезапуска.
  3. Фрагментация экосистемы. Нет единого стандарта. npx skills работает в Codex и Claude Code, но не в Claude Cowork. У кого-то есть маркетплейс Skills, у кого-то — нет. Установка с GitHub — не везде поддерживается. Один Skill может сломаться из-за несовпадения полей в YAML.
  4. Раздутый контекст. Часто приходится загружать весь SKILL.md вместо одной сигнатуры. Как если бы человеку пришлось читать всё руководство по машине, чтобы включить car.turn_on().

Если инструкция начинается с «сначала установи CLI» — вы добавили лишний слой и шаги. Зачем, если можно использовать удалённый MCP?

Когда что использовать

MCP должен быть стандартом, когда нужно дать LLM интерфейс к сервису: сайту, приложению, базе. Сервис должен сам диктовать, какой интерфейс он выставляет.

  • Google Calendar: CLI gcal — нормально, но Skill, который учит устанавливать его и управлять токенами, — плох. Удалённый OAuth-backed MCP от Google решает это на уровне протокола и работает в любом клиенте.
  • Управление Chrome: браузер должен выставлять MCP-эндпоинт, а не полагаться на chrome-cli.
  • Отладка в Hopper: встроенный MCP с step() лучше отдельного hopper-cli.
  • Xcode: должен поставляться со встроенным MCP и нормальным auth при подключении LLM.
  • Notion: правильно запустил mcp.notion.so/mcp — без необходимости ставить notion-cli и управлять auth вручную.

Skills должны быть «чистыми» — только знания и контекст:

  • Объяснять уже установленные инструменты. Папка .claude/skills, которая учит LLM использовать curl, git, gh, gcloud — отличный сценарий. «curl MCP» не нужен. Нужно просто научить LLM строить команды.
  • Стандартизировать рабочие процессы. Skills хороши для обучения Claude внутреннему жаргону, стилю общения или структуре компании.
  • Работа с файлами. Как у Anthropic с PDF Skill: объясняет, как работать с PDF через Python.
  • Управление секретами. Skill, который говорит Claude: «используй fnox для этого репозитория, вот как» — разумно. Лучше, чем строить отдельный MCP ради get_secret().

Коннекторы vs инструкции

Может, дело в терминологии? Skills стоило бы назвать LLM_MANUAL.md, а MCP — Connectors.

У обоих есть место. В своих проектах я делаю так:

  • mcp-server-devonthink — локальный MCP-сервер для управления DEVONthink. Без CLI-обёрток, чистый инструментальный интерфейс.
  • microfn — удалённый MCP на mcp.microfn.dev, доступен любому совместимому клиенту.
  • Kikuyo — то же самое, mcp.kikuyo.dev.
  • MCP Nest — туннелирует локальные MCP через облако, делая их доступными по mcp.mcpnest.dev/mcp. Сделано для удалённого доступа без открытия своей машины.

Для microfn и Kikuyo я публиковал Skills — но они описывали CLI, а не MCP. Однако написание этой статьи помогло понять: Skill, объясняющий, как использовать MCP-сервер, имеет смысл. Не вместо MCP, а как слой знаний поверх коннектора.

Это — паттерн, который я всё чаще использую. При работе с MCP-сервером возникают неочевидности: дата в формате YYYY-MM-DD, а не YYYYMMDD; поиск обрезает результаты без параметра; инструмент называется неожиданно. Вместо того чтобы проходить это каждый раз, я прошу Claude упаковать нюансы в Skill. LLM уже знает контекст — и пишет точную шпаргалку.

Получается: Skill как шпаргалка к MCP, а не его замена. MCP отвечает за соединение и выполнение. Skill — за то, чтобы LLM не наступал на те же грабли. Их комбинация делает работу плавной.

Я продолжу поддерживать репозиторий dotfiles с Skills для частых процессов и класть .claude/skills в репозитории, чтобы направлять поведение AI.

Надеюсь, индустрия не забросит Model Context Protocol. Мечта о бесшовной AI-интеграции строится на стандартизированных интерфейсах — не на россыпи самодельных CLI. Всё ещё жду официальных MCP от Skyscanner, Booking.com, Trip.com и Agoda.

Это моё личное мнение.

Читать оригинал