Skills vs MCP: Архитектурное сравнение
Updated Jul 2026
Фундаментальное различие
MCP соединяет Claude с внешними возможностями (инструменты, данные, API). Skills учат Claude, как использовать эти возможности для конкретных предметных областей.
Если MCP предоставляет «кухню и ингредиенты», то Skills предоставляют «рецепты».
Это не конкурирующие альтернативы — это взаимодополняющие уровни. Но конкретно для автоматизации браузера выбор одного из них (или обоих) имеет существенные последствия.
Как работает каждый подход
Подход MCP-сервера (например, Playwright MCP)
┌────────────────┐ stdio/SSE ┌──────────────────┐ CDP/BiDi ┌─────────┐
│ Claude Code │◄────────────────►│ MCP Server │◄─────────────►│ Browser │
│ │ │ (playwright-mcp)│ │ │
│ Tools: │ │ │ │ │
│ - browser_ │ │ Runs: │ │ │
│ navigate │ │ - Browser pool │ │ │
│ - browser_ │ │ - A11y snapshots│ │ │
│ click │ │ - State mgmt │ │ │
│ - browser_ │ │ │ │ │
│ screenshot │ │ │ │ │
│ (15-25 tools) │ │ │ │ │
└────────────────┘ └──────────────────┘ └─────────┘
Что загружается в каждый вызов API:
- 15-25 схем инструментов (~5 000-12 500 токенов)
- Дерево доступности на страницу (~2 000-10 000 токенов)
- JSON вызова/ответа инструмента (~200 токенов каждый)
Подход через Skill (например, vibe-check)
┌────────────────┐ ┌──────────────────┐ BiDi ┌─────────┐
│ Claude Code │ │ Clicker Daemon │◄────────────►│ Browser │
│ │ Bash tool │ (Go binary) │ │ │
│ Context: │────────────────► │ │ │ │
│ - SKILL.md │ "vibe-check │ Runs: │ │ │
│ (~1K tokens)│ click 'button'" │ - BiDi proxy │ │ │
│ │ │ - Actionability │ │ │
│ Tools: │◄──────────────── │ - Auto-wait │ │ │
│ - Bash │ "clicked: true" │ │ │ │
│ (1 tool) │ │ │ │ │
└────────────────┘ └──────────────────┘ └─────────┘
Что загружается в каждый вызов API:
- Содержимое SKILL.md (~1 000 токенов, один раз)
- Описание навыка в списке инструментов (~50 токенов)
- Схема инструмента Bash (~200 токенов, общая для всего использования Bash)
- Вывод команды как простой текст (~50-200 токенов)
Детальное сравнение
Экономика токенов
| Метрика | MCP (Playwright) | Skill (vibe-check) |
|---|---|---|
| Накладные расходы на схемы инструментов | ~5 000-12 500 токенов/шаг | ~50 токенов/шаг |
| Стоимость за взаимодействие | ~5 000-10 000 токенов | ~130 токенов |
| Контекст после 20 шагов | ~60-80% потреблено | ~2% потреблено |
| Остаток для рассуждений | Ограниченный | Изобилие |
Управление состоянием
| Аспект | MCP | Skill |
|---|---|---|
| Сессия браузера | Управляется сервером, постоянная | Управляется daemon, постоянная |
| Осведомлённость о состоянии страницы | Дерево доступности (богатое, семантическое) | Текст/скриншоты (простое, визуальное) |
| Непрерывность между командами | Автоматическая (MCP-сервер хранит контекст) | Автоматическая (daemon хранит браузер) |
| Инспекция состояния | Структурированные данные (роли, метки, ссылки) | Текстовый вывод + скриншоты |
Обработка ошибок
| Аспект | MCP | Skill |
|---|---|---|
| Формат ошибок | Структурированный JSON | Код выхода + текст stderr |
| Детализация ошибок | Состояние элемента, информация о селекторе, контекст страницы | Причина сбоя интерактивности |
| Восстановление агента | Богатый контекст для рассуждений | Проще, но достаточно |
Установка и поддержка
| Аспект | MCP | Skill |
|---|---|---|
| Установка | claude mcp add name -- command |
npx skills add repo --skill name |
| Зависимость во время выполнения | MCP-сервер должен быть запущен | Daemon запускается автоматически при первой команде |
| Обновления | Обновить пакет MCP-сервера | Переустановить навык (или автообновление) |
| Конфигурация | Файл конфигурации сервера (порты, путь к браузеру и т.д.) | Минимальная (флаги --headless, --oneshot) |
Матрица принятия решений: Когда что использовать
Используйте Skills (CLI), когда:
Ваш агент совмещает много задач — пишет код, запускает тесты И управляет браузером. Бюджет токенов должен быть общим.
Вы знаете селекторы — ваши тесты нацелены на конкретные CSS-селекторы, а не «найди что-то похожее на кнопку входа».
Вы в CI/CD — стоимость токенов накапливается через сотни запусков тестов. CLI-команды дёшевы.
Вам нужна компонуемость — CLI-команды объединяются с другими инструментами (grep, jq, awk) через конвейеры.
Ваши тесты процедурные — потоки «перейди сюда, кликни то, введи это, проверь то».
# Skills блещут здесь: скриптованные, известные селекторы, быстро
vibe-check navigate https://app.example.com/login
vibe-check type "#email" "test@example.com"
vibe-check type "#password" "secret"
vibe-check click "#submit"
vibe-check wait ".dashboard"
vibe-check text ".welcome-msg" # → "Welcome, Test User"
Используйте MCP, когда:
Исследовательское тестирование — вы обнаруживаете UI, а не тестируете известные потоки.
Анализ доступности — вам нужно семантическое понимание структуры страницы (ARIA-роли, метки, ориентиры).
Циклы самовосстановления — агенту нужно итеративно запрашивать структуру страницы при поломке селекторов.
Длительные автономные сессии — агент работает минутами, принимая решения на основе богатого контекста страницы.
Нетехнические пользователи — MCP позволяет «кликни большую синюю кнопку» без знания CSS-селекторов.
# MCP блещет здесь: исследовательское, семантическое понимание
User: "Go to our app and check if all form fields have proper labels"
Agent: *использует дерево доступности для поиска немаркированных полей ввода*
Agent: *рассуждает об ARIA-атрибутах*
Agent: *сообщает о нарушениях доступности*
Используйте оба, когда:
- Гибридный фреймворк — MCP для фаз обнаружения/исследования, skill для фаз выполнения.
- Разные типы тестов — Тесты доступности через MCP, функциональные тесты через skill.
- Разработка vs CI — MCP во время разработки (богатая обратная связь), skill в CI (быстро, дёшево).
Собственная оценка команды Playwright
Из официальной документации Playwright (2025/2026):
"Coding agents increasingly favor CLI-based workflows exposed as SKILLs over MCP because CLI invocations are more token-efficient — they avoid loading large tool schemas and verbose accessibility trees into the model context."
"MCP remains relevant for specialized agentic loops that benefit from persistent state, rich introspection, and iterative reasoning over page structure."
Это не стороннее мнение — это команда, создающая MCP-сервер, признающая компромисс.
Архитектурная диаграмма: Гибридный подход
┌──────────────────────────┐
│ Claude Code Agent │
│ │
│ ┌────────┐ ┌──────────┐ │
│ │ Skills │ │ MCP Tools│ │
│ │(vibe- │ │(browser_ │ │
│ │ check) │ │ a11y) │ │
│ └───┬────┘ └────┬─────┘ │
└──────┼───────────┼───────┘
│ │
Bash tool │ │ MCP protocol
│ │
┌──────▼──┐ ┌─────▼────────┐
│ Vibium │ │ Playwright │
│ Daemon │ │ MCP Server │
└────┬────┘ └──────┬───────┘
│ │
BiDi │ CDP │
│ │
┌────▼──────────────▼──────┐
│ Chrome │
└──────────────────────────┘
В этой гибридной модели:
- vibe-check обрабатывает все команды взаимодействия (navigate, click, type, screenshot) — дёшево
- Playwright MCP обрабатывает анализ доступности и обнаружение страницы — богато, но дорого
- Каждый используется там, где он сильнее
Тезис для собеседования
«Мы оценили оба подхода — MCP и CLI-навык — для автоматизации браузера. Ключевой компромисс — между богатством и эффективностью. MCP даёт семантическое понимание страницы через деревья доступности и структурированные схемы инструментов, но ценой 5 000-10 000+ токенов за взаимодействие. CLI-навыки дают 22 браузерные команды примерно за 130 токенов за взаимодействие — в 50 раз дешевле. Для 20-шагового теста MCP может потребить 80% контекстного окна, а навыки — 2%. Мы выбрали навыки как основной интерфейс для автоматизированного выполнения тестов, с MCP доступным для исследовательских фаз, где семантическое понимание страницы важно. Даже собственная команда Playwright признаёт, что CLI+Skills более эффективны по токенам для агентов, работающих с кодом.»