Почему CLI, а не MCP?
Чему вы научитесь
Этот урок поможет вам понять:
- ✅ Различия в позиционировании MCP и системы навыков
- ✅ Почему CLI больше подходит для загрузки навыков
- ✅ Философию дизайна OpenSkills
- ✅ Технические принципы системы навыков
Ваша текущая проблема
Вы можете задаться вопросом:
- "Почему не использовать более современный протокол MCP?"
- "Не слишком ли устарел подход CLI?"
- "Не лучше ли MCP соответствует эпохе ИИ?"
Этот урок поможет вам понять технические соображения, лежащие в основе этих решений по дизайну.
Основной вопрос: Что такое навык?
Прежде чем обсуждать CLI vs MCP, давайте поймём сущность "навыка".
Сущность навыка
Определение навыка
Навык — это комбинация статических инструкций + ресурсов, включая:
SKILL.md: подробные руководства и промптыreferences/: справочная документацияscripts/: исполняемые скриптыassets/: изображения, шаблоны и другие ресурсы
Навык не является динамической службой, API в реальном времени или инструментом, требующим запуска сервера.
Официальный дизайн Anthropic
Система навыков Anthropic изначально основана на файловой системе:
- Навыки существуют в виде файлов
SKILL.md - Описываются через XML-блок
<available_skills> - ИИ-агент читает содержимое файлов в контент по требованию
Это определяет, что выбор технологий для системы навыков должен быть совместим с файловой системой.
MCP vs OpenSkills: Сравнение позиционирования
| Размерность | MCP (Model Context Protocol) | OpenSkills (CLI) |
|---|---|---|
| Сценарии использования | Динамические инструменты, вызовы API в реальном времени | Статические инструкции, документация, скрипты |
| Требования к запуску | Требуется MCP-сервер | Без сервера (только файлы) |
| Поддержка агентов | Только агенты с поддержкой MCP | Все агенты, способные читать AGENTS.md |
| Сложность | Требует развёртывания и обслуживания сервера | Нулевая конфигурация, готово к использованию |
| Источник данных | Получение в реальном времени с сервера | Чтение из локальной файловой системы |
| Зависимость от сети | Требуется | Не требуется |
| **Загрузка навыков | Через протокол | Через чтение файлов |
Почему CLI больше подходит для системы навыков?
1. Навыки — это файлы
MCP требует сервера: нужно развёртывать MCP-сервер, обрабатывать запросы, ответы, рукопожатие протокола...
CLI требует только файлов:
# Навыки хранятся в файловой системе
.claude/skills/pdf/
├── SKILL.md # Основной файл инструкций
├── references/ # Справочная документация
│ └── pdf-format-spec.md
├── scripts/ # Исполняемые скрипты
│ └── extract-pdf.py
└── assets/ # Файлы ресурсов
└── pdf-icon.pngПреимущества:
- ✅ Нулевая конфигурация, без сервера
- ✅ Навыки могут быть версионированы
- ✅ Работает офлайн
- ✅ Простое развёртывание
2. Универсальность: все агенты могут использовать
Ограничения MCP:
Только агенты, поддерживающие протокол MCP, могут использовать его. Если Cursor, Windsurf, Aider и другие агенты каждый реализуют MCP, это приведёт к:
- Дублированию разработки
- Проблемам совместимости протоколов
- Сложностям синхронизации версий
Преимущества CLI:
Любой агент, способный выполнять команды shell, может использовать:
# Вызов через Claude Code
npx openskills read pdf
# Вызов через Cursor
npx openskills read pdf
# Вызов через Windsurf
npx openskills read pdfНулевая стоимость интеграции: агенту нужно только уметь выполнять команды shell.
3. Соответствие официальному дизайну
Система навыков Anthropic изначально основана на файловой системе, а не на MCP:
<!-- Описание навыков в AGENTS.md -->
<available_skills>
<skill>
<name>pdf</name>
<description>Comprehensive PDF manipulation toolkit...</description>
<location>project</location>
</skill>
</available_skills>Способ вызова:
# Официальный способ вызова
npx openskills read pdfOpenSkills полностью следует официальному дизайну Anthropic, обеспечивая совместимость.
4. Прогрессивная загрузка (Progressive Disclosure)
Основное преимущество системы навыков: загрузка по требованию, сохранение чистого контекста.
Реализация CLI:
# Загрузка содержимого навыка только при необходимости
npx openskills read pdf
# Вывод: полное содержимое SKILL.md в стандартный выводВызовы MCP:
Если реализовать через MCP, нужно:
- Управлять списком навыков на сервере
- Реализовать логику загрузки по требованию
- Обрабатывать управление контекстом
А подход CLI естественным образом поддерживает прогрессивную загрузку.
Сценарии использования MCP
Проблемы, которые решает MCP, отличаются от системы навыков:
| Проблемы, решаемые MCP | Пример |
|---|---|
| Вызовы API в реальном времени | Вызов OpenAI API, запросы к базе данных |
| Динамические инструменты | Калькуляторы, службы преобразования данных |
| Интеграция удалённых служб | Операции Git, системы CI/CD |
| Управление состоянием | Инструменты, требующие поддержания состояния сервера |
Эти сценарии требуют сервера и протокола, MCP — правильный выбор.
Система навыков vs MCP: Не конкуренция
Ключевой тезис: MCP и система навыков решают разные проблемы, это не альтернатива.
Позиционирование системы навыков
[Статические инструкции] → [SKILL.md] → [Файловая система] → [Загрузка CLI]Сценарии использования:
- Руководства и лучшие практики
- Документация и справочные материалы
- Статические скрипты и шаблоны
- Конфигурации, требующие версионирования
Позиционирование MCP
[Динамические инструменты] → [MCP-сервер] → [Вызов протокола] → [Ответ в реальном времени]Сценарии использования:
- Вызовы API в реальном времени
- Запросы к базам данных
- Удалённые службы с состоянием
- Сложные вычисления и преобразования
Комплементарность
OpenSkills не исключает MCP, а сосредотачивается на загрузке навыков:
ИИ-агент
├─ Система навыков (OpenSkills CLI) → Загрузка статических инструкций
└─ MCP-инструменты → Вызов динамических службОни дополняют, а не заменяют друг друга.
Практические примеры: когда использовать что?
Пример 1: Вызовы операций Git
❌ Не подходит для системы навыков:
- Операции Git динамические, требуют взаимодействия в реальном времени
- Зависят от состояния Git-сервера
✅ Подходит для MCP:
# Вызов через MCP-инструмент
git:checkout(branch="main")Пример 2: Руководство по обработке PDF
❌ Не подходит для MCP:
- Руководства статические
- Не требуют запуска сервера
✅ Подходит для системы навыков:
# Загрузка через CLI
npx openskills read pdf
# Вывод: подробные шаги обработки PDF и лучшие практикиПример 3: Запросы к базе данных
❌ Не подходит для системы навыков:
- Требуется подключение к базе данных
- Результаты динамические
✅ Подходит для MCP:
# Вызов через MCP-инструмент
database:query(sql="SELECT * FROM users")Пример 4: Стандарты проверки кода
❌ Не подходит для MCP:
- Стандарты проверки — статическая документация
- Требуется версионирование
✅ Подходит для системы навыков:
# Загрузка через CLI
npx openskills read code-review
# Вывод: подробный чек-лист проверки кода и примерыБудущее: Интеграция MCP и системы навыков
Возможные направления развития
MCP + Система навыков:
# Навык ссылается на MCP-инструменты
npx openskills read pdf-tool
# Содержимое SKILL.md
Этот навык требует использования MCP-инструментов:
1. Используйте mcp:pdf-extract для извлечения текста
2. Используйте mcp:pdf-parse для разбора структуры
3. Используйте скрипты из этого навыка для обработки результатовПреимущества:
- Навыки предоставляют высокоуровневые инструкции и лучшие практики
- MCP обеспечивает низкоуровневые динамические инструменты
- Комбинация делает их более мощными
Текущий этап
OpenSkills выбирает CLI, потому что:
- Система навыков уже является зрелой файловой системой
- Реализация CLI проста и универсальна
- Не нужно ждать реализации поддержки MCP в разных агентах
Итог урока
Основные причины выбора CLI вместо MCP в OpenSkills:
Основные причины
- ✅ Навыки — статические файлы: без сервера, хранение в файловой системе
- ✅ Более универсально: все агенты могут использовать, без зависимости от протокола MCP
- ✅ Соответствует официальному дизайну: система навыков Anthropic основана на файловой системе
- ✅ Нулевая конфигурация: без сервера, готово к использованию
MCP vs Система навыков
| MCP | Система навыков (CLI) |
|---|---|
| Динамические инструменты | Статические инструкции |
| Требует сервера | Только файловая система |
| API в реальном времени | Документация и скрипты |
| Требует поддержки протокола | Нулевая стоимость интеграции |
Не конкуренция, а дополнение
- MCP решает проблемы динамических инструментов
- Система навыков решает проблемы статических инструкций
- Они могут использоваться вместе
Связанные материалы
Приложение: Ссылки на исходный код
Нажмите, чтобы просмотреть расположение исходного кода
Дата обновления: 2026-01-24
| Функция | Путь к файлу | Строки |
|---|---|---|
| Точка входа CLI | src/cli.ts | 39-80 |
| Команда чтения | src/commands/read.ts | 1-50 |
| Генерация AGENTS.md | src/utils/agents-md.ts | 23-93 |
Ключевые решения по дизайну:
- Подход CLI: загрузка навыков через
npx openskills read <name> - Хранение в файловой системе: навыки хранятся в
.claude/skills/или.agent/skills/ - Универсальная совместимость: вывод в XML-формате, полностью соответствующем Claude Code