Agent Skills проти MCP: як вибрати правильний інтерфейс
Пояснюємо різницю між agent skills і MCP: порівнюємо інструкції, підключення інструментів, межі безпеки, versioning і випадки, коли варто поєднати обидва підходи для надійних AI-агентів.
Рішення між agent skills і MCP часто подають як вибір між двома способами «надати AI інструменти». Такий підхід неповний. Skill і сервер Model Context Protocol розв’язують різні рівні задачі: перший навчає агента працювати в певній предметній області, а другий надає можливості й контекст через стандартизоване підключення.
Dockup використовує SKILL.md, оскільки його основний інтерфейс — наявний інструмент командного рядка. Skill навчає Claude Code і Codex безпечно використовувати цей CLI: завжди запитувати JSON, проходити автентифікацію без взаємодії з користувачем, визначати точні цілі, чекати на фінальні стани deployment і зупинятися перед руйнівними операціями.
Що таке agent skill і чому важливий SKILL.md?
Agent skill — це каталог робочих інструкцій і допоміжних матеріалів, які агент може завантажити, коли завдання відповідає призначенню skill. SKILL.md — точка входу: його frontmatter описує можливість, а основний текст пояснює workflow, обмеження, приклади та правила прийняття рішень.
Skill особливо корисний, коли виконуваний інтерфейс уже існує. Агенту не потрібен новий protocol adapter лише для запуску добре спроєктованого CLI. Йому потрібні точні відомості про таке:
- Які команди є authoritative.
- Які flags потрібні для машинного використання.
- Як працює автентифікація в sandbox.
- Які outputs підтверджують успіх.
- Які дії потребують участі людини.
- Де можуть з’явитися secrets.
- Як діагностувати типові збої.
Встановлення Dockup навмисно просте:
npm install -g dockup-cli
dockup skill install
dockup skill status --json
Одна canonical копія записується до ~/.agents/skills/dockup/ і підключається одночасно до Claude Code та Codex. Skill постачається всередині пакета CLI, а dockup update оновлює їх разом. Таке рішення щодо пакування запобігає типовій проблемі: інструкції описують команди, яких немає у встановленого binary.
Skill не є deployment engine. CLI виконує операції, виводить JSON і повертає exit codes. Skill — це інструкція з експлуатації, якої дотримується агент.
Що таке Model Context Protocol?
Model Context Protocol, який зазвичай називають MCP, — це відкритий protocol для підключення AI-застосунку до зовнішніх інструментів, ресурсів і prompts через client-server architecture. MCP server може надавати callable tools, доступні для читання resources і reusable prompts. MCP client усередині agent host виявляє та викликає ці можливості.
MCP цінний, коли системі потрібна надійна protocol boundary замість локального виконання shell-команд. Приклади:
- Віддалений SaaS API, який має надавати ретельно типізовані операції.
- Data source, що надає ресурси для перегляду.
- Desktop-застосунок, якому потрібне виявлення інструментів без постачання CLI.
- Central service, яким користуються багато agent hosts і операційних систем.
- Інтеграція, у якій сервер має опосередковувати роботу з credentials і policy.
Сервер керує реалізацією кожного tool. Agent host бачить оголошені name, description, input schema і output. Transport, lifecycle та authorization залежать від обраного MCP setup.
MCP автоматично не забезпечує domain judgment. Сервер може надати delete_service, але агенту все одно потрібна policy щодо того, коли видалення доречне. І навпаки, skill може пояснити workflow, але не створить можливостей, яких немає в underlying CLI або API.
Чим agent skills і MCP відрізняються на практиці?
Найзрозуміліше порівнювати їх за відповідальністю:
| Вимір | Agent skill / SKILL.md | MCP server |
|---|---|---|
| Основне завдання | Навчати workflow і обмежень | Надавати tools, resources і prompts |
| Виконання | Використовує наявні CLI, файли, API або застосунки | Сервер реалізує callable capabilities |
| Виявлення | Агент завантажує відповідні інструкції skill | Client виявляє можливості сервера |
| Deployment | Зазвичай каталог, встановлений разом із пакетом | Локальний або віддалений server process |
| Version risk | Інструкції можуть розійтися з tool | Схема сервера може розійтися з поведінкою backend |
| Найкраще підходить | Для наявного інтерфейсу, якому потрібні експертні інструкції з експлуатації | Коли можливості потребують стандартизованої protocol boundary |
| Фокус безпеки | Behavioral rules і безпека команд | Підключення, довіра до сервера, scopes і authorization tools |
| Offline/local use | Чудово працює з локальними CLI | Можливий із локальним MCP server |
| Повторне використання в різних clients | Копіювання або пакування skill для кожного host | Один сервер може підтримувати багато сумісних clients |
Жодна з колонок не є inherently більш «agentic». Надійність залежить від відповідності інтерфейсу системі.
Для Dockup CLI уже має 135 команд, structured JSON, справжні exit codes, стандартний deploy timeout 900 секунд, secret masking і confirmation gates. Обгортання кожної команди в інший локальний server додало б translation layer, не змінюючи underlying deployment truth. Skill добре підходить, оскільки навчає агента користуватися наявним executable contract.
Віддалена платформа без CLI може дійти протилежного висновку. MCP server може надати відсутній typed tool surface і залишити API credentials поза shell environment агента.
Коли використовувати skill, MCP або обидва підходи?
Використовуйте лише skill, якщо виконуються всі наведені умови:
- Зрілий CLI або локальний застосунок уже надає потрібні можливості.
- Agent host має право його виконувати.
- Machine-readable output і exit semantics достатні.
- Основна прогалина — procedural knowledge, а не connectivity.
- Пакування може підтримувати узгодженість інструкцій із executable.
Використовуйте лише MCP, коли агенту потрібне protocol-native підключення, а сам server може надати достатньо контексту для безпечної роботи. Це поширений варіант для read-heavy доступу до даних, remote services і застосунків, яким потрібен стабільний cross-client tool interface.
Використовуйте обидва підходи, коли protocol tools потребують детальнішого operating playbook. MCP server може надавати безпечні типізовані primitives, а skill — пояснювати багатокроковий business workflow, правила escalation і критерії validation. Skill може підказати агенту, коли і навіщо викликати кожен MCP tool.
Combined architecture може виглядати так:
User request
↓
Skill: workflow, policy, validation rules
↓
MCP client: discovers typed capabilities
↓
MCP server: authenticates and executes
↓
External system
CLI-centered architecture простіша:
User request
↓
Skill: workflow, policy, validation rules
↓
CLI: JSON output + exit code + wait semantics
↓
Platform API
Складність має бути виправдана boundary, яку вона покращує. Додавання MCP лише тому, що це модно, може створити ще один process для deployment, authentication, monitoring і versioning.
Приклади вибору
| Ситуація | Краща starting point | Причина |
|---|---|---|
| Локальний deployment CLI із JSON output | Skill | Connectivity уже існує |
| Корпоративна knowledge base зі структурованими resources | MCP | Resource discovery має центральне значення |
| Database administration API без CLI | MCP | Типізовані remote operations корисні |
| Складний release runbook на основі наявних інструментів | Skill | Головна потреба — cross-tool procedure |
| Регульовані remote operations плюс детальна policy | Обидва | Server забезпечує scope, skill спрямовує поведінку |
| Разова персональна automation | Skill або direct CLI | Найменші operational overhead |
Правильна відповідь може змінитися з часом. Команда може почати зі skill навколо CLI, а потім додати MCP server, коли стануть важливими remote multi-client access або centralized credential mediation.
Як порівнюються security і trust boundaries?
Skills — це інструкції, тому їхній trust risk подібний до ризику документації коду, яка впливає на операції. Шкідливий або недбалий skill може вказати агенту розкрити secrets, вимкнути safeguards або виконати destructive commands. Перевіряйте весь каталог, а не лише його назву.
Під час перевірки skill зверніть увагу на такі питання:
- Хто його опублікував?
- Чи викликає він команди за межами заявленого призначення?
- Чи вказує він агенту виводити tokens або credentials?
- Чи обходить він confirmations?
- Чи походять приклади команд зі встановленої версії?
- Чи можуть updates замінити skill без review?
- Чи визначає skill обмежений процес target discovery?
MCP створює trust boundary сервера. Client має знати, до якого server він підключається, які tools той надає, які дані залишають машину і як визначено authorization scopes. Server може змінити поведінку за незмінного tool name, тому provenance deployment і server versioning мають значення.
Під час перевірки MCP зверніть увагу на такі питання:
- Server локальний чи віддалений?
- Хто ним керує?
- Як зберігаються та ротуються credentials?
- Які tool calls можуть змінювати або видаляти дані?
- Чи валідовуються tool inputs на стороні сервера?
- Чи вважаються outputs untrusted content?
- Чи можна провести audit кожного call?
- Чи може client обмежити доступні tools?
Agent host не повинен ототожнювати «виявлено через MCP» із «безпечне». Стандартизація protocol покращує interoperability, але не робить кожен server trustworthy.
Skill Dockup містить кілька правил безпеки: використовувати DOCKUP_TOKEN замість interactive login, ніколи не виводити credentials, знаходити targets за допомогою dockup services --json, використовувати --wait і зупинятися на needs_confirm. CLI підсилює ці інструкції, маскуючи secrets і відмовляючись від destructive operations без explicit approval. Цю defense-in-depth модель описано в матеріалі production guardrails for AI agents.
Як мають працювати versioning і failure recovery?
Version drift можливий в обох підходах, але проявляється по-різному.
Skill може застаріти, коли описана команда змінюється. Найкращий спосіб зменшити цей ризик — пакувати skill разом із executable та оновлювати їх через єдиний release process. Dockup використовує саме цю модель. Агент може перевірити встановлений skill:
dockup skill status --json
Оновлення синхронно оновлює CLI і bundled skill:
dockup update
MCP client може виявити поточні tool schemas сервера, але сумісність схем не гарантує semantic compatibility. Tool може зберегти ті самі inputs, водночас змінивши authorization, side effects, latency або interpretation output. Server має публікувати versions, за можливості зберігати backward compatibility і повертати structured errors.
Обробка failures також відрізняється. CLI природно надає process exit codes. MCP tool call так само потребує чіткого application-level result. В обох випадках агент не повинен робити висновок про успіх на основі transport-level acknowledgment.
Корисний reliability checklist:
| Вимога | Реалізація Skill + CLI | Реалізація MCP |
|---|---|---|
| Capability discovery | CLI schema | Server tool list |
| Structured output | JSON/NDJSON | Typed tool result |
| Failure signal | Non-zero exit + code | Explicit error result |
| Long operation | --wait / documented stream | Progress або completion protocol |
| Secret protection | Masking і дисципліна stderr | Server-side redaction |
| Destructive approval | CLI confirmation gate | Server policy або client confirmation |
| Audit | Platform audit log | Server і backend audit logs |
| Version check | Skill/binary status | Server metadata і schemas |
Інтерфейс має ускладнювати помилкове повідомлення про успіх більше, ніж повідомлення про failure.
Яку архітектуру має обрати production team?
Почніть із визначення реальної прогалини.
Обирайте skill-first architecture, якщо команда вже довіряє CLI та експлуатує його. Інвестуйте в його machine contract: JSON, справжні exit codes, стабільні error codes, version-aligned instructions і confirmation. Потім пакуйте skill разом із цим tool. Це найкоротший шлях для Claude Code deployment і Codex deployment через Dockup.
Обирайте MCP-first, якщо можливість за своєю природою є remote, resource-oriented або shared між багатьма clients. Ставтеся до server як до production software: автентифікуйте його, обмежуйте scopes, monitor-те та перевіряйте кожну mutation.
Обирайте обидва підходи, коли policy і connectivity є незалежно складними. Чітко розподіліть відповідальність. Skill не має дублювати server implementation, а server description не має перетворюватися на розлогий operational manual.
Практичний evaluation workshop
Проведіть невеликий proof з однією read operation, одним reversible write, однією long-running operation і однією destructive operation, яку потрібно заблокувати. Оцініть кожен дизайн за такими критеріями:
- Як агент виявляє операцію.
- Як надаються credentials.
- Як підтверджується успіх.
- Як класифікується failure.
- Як людина схвалює небезпечну дію.
- Як отримуються logs і audit evidence.
- Як підтримується узгодженість versions.
- Як integration видаляється без залишків.
Не ухвалюйте рішення лише за diagram. Спостерігайте за failure paths. Дизайн, який виглядає елегантно на happy path, може стати неоднозначним, коли deployment завершується timeout, server disconnects або instruction file відстає на один release.
Dockup CLI reference — конкретний приклад skill-backed CLI contract. У ширшій статті про AI-powered development пояснюється, чому ці інтерфейси важливі, адже agents беруть на себе дедалі більшу частину development loop.
Враховуйте operational ownership
Власник integration важливий не менше, ніж її architecture. Skill навколо CLI зазвичай успадковує installation, release і support process цього CLI. Команда, яка публікує binary, може постачати відповідні instructions і тестувати їх разом.
MCP server створює окремий production component. Хтось має відповідати за hosting, certificates або local process startup, authentication, monitoring, incident response, schema compatibility і dependency updates. Ці інвестиції можуть бути виправданими, коли server є важливою shared boundary. Але це непотрібний overhead, якщо він лише пересилає local calls до вже достатнього executable.
Під час evaluation зафіксуйте, хто відповідає за кожен layer:
| Layer | Skill-first owner | MCP-first owner |
|---|---|---|
| Domain instructions | Skill publisher | Client prompt або companion skill |
| Executable behavior | CLI publisher | MCP server team |
| Credential handling | CLI і runtime environment | Server і client connection |
| Availability | Local executable і platform API | Server process, transport і backend |
| Schema compatibility | CLI release process | MCP server release process |
| Incident evidence | CLI output і platform audit | Client logs, server logs і backend audit |
Ця ownership table часто допомагає розв’язати суперечку agent skills проти MCP краще, ніж checklist можливостей.
Оцінюйте latency і failure surfaces
Локальний виклик skill плюс CLI має короткий шлях: agent host, process, platform API. MCP path може додати server startup, transport negotiation, remote routing і ще один authentication layer. Це не обов’язково погано, але кожен елемент створює окрему failure surface.
Тестуйте disconnection, expired credentials, malformed inputs, partial long-running operations і server upgrades. Агент має вміти визначити, чи стався failure на рівні host, protocol connection, server або external platform. Generic result «tool failed» для production work недостатній.
Для тривалих deployments interface має зберігати terminal-state semantics. Незалежно від того, чи це CLI --wait operation, чи MCP tool із progress, агент не повинен перетворювати acknowledgment на success. Вибір agent skills проти MCP не скасовує цієї вимоги.
Плануйте portability без втрати truth
MCP може покращити portability між сумісними clients, оскільки той самий server рекламує tools через shared protocol. Skills також можуть бути portable, коли кілька agents підтримують один каталог і conventions SKILL.md, як це роблять Claude Code і Codex у моделі встановлення Dockup.
Portability корисна лише за умови точного збереження semantics. Tool із назвою deploy має визначати, чи повертається він після постановки в queue, чи після переходу системи в healthy state. Інструкція skill «виконай deploy і перевір результат» має посилатися на команду, яка справді може надати таке підтвердження.
Найкращий дизайн зберігає domain truth близько до executable layer і використовує higher layer для пояснення intent. У порівнянні agent skills проти MCP ні standardized protocol, ні добре написаний instruction file не компенсують неоднозначну backend operation.
Виведіть workflow у production
Використовуйте найпростішу architecture, яка створює trustworthy boundary. Для Dockup встановіть packaged skill і залиште CLI executable source of deployment truth.
npm install -g dockup-cli
dockup skill install
Перша команда встановлює CLI. Друга встановлює відповідний Dockup skill для Claude Code і Codex. Почніть безкоштовно на app.dockup.ai.
FAQ
Agent skills і MCP — це одне й те саме?
Ні. Skill переважно надає instructions і operating knowledge. MCP надає protocol для відкриття tools, resources і prompts через client-server connection.
Чи виконує файл SKILL.md команди самостійно?
Ні. Він пояснює агенту, як використовувати underlying capabilities, як-от CLI, files, APIs або MCP tools. Дію виконує executable interface.
Коли skill кращий за MCP?
Skill часто є простішим вибором, коли зрілий локальний CLI уже надає secure, machine-readable operations, а бракує саме workflow guidance.
Чи може агент використовувати skill і MCP разом?
Так. Skill може описувати multi-step workflow і policy, а MCP server — надавати typed tools і resources, які використовує цей workflow.
Чому Dockup постачає свій skill усередині CLI package?
Пакування разом дає змогу dockup update одним кроком оновлювати executable та його instructions, зменшуючи ризик того, що skill описує іншу версію команди.
