# MCP Skills: что подключать под задачу и когда сервер, а когда навык

> MCP даёт Claude доступ к файлам, Git, API и внешним сервисам. Skill задаёт повторяемый способ работы, формат результата и чек-лист.

Источник: https://vibeceh.ru/guides/mcp-protiv-skills-chto-podklyuchat
Автор: Сергей Мазур · опубликовано 2026-08-08

Если в запросе **skills mcp** смешались в одну непонятную настройку, держи простое правило: MCP даёт Claude доступ к внешней системе, данным или действию, а Skill объясняет, как выполнять повторяемую задачу. Для файлов, Git и API нужен MCP. Для таблиц по одному шаблону, ревью и чек-листа нужен Skill.

## Что такое MCP и Skills и зачем их различать?

В запросе **ai skills mcp** [MCP](/concepts/mcp) подключает AI-приложение к внешним системам, файлам, базам, инструментам и действиям. Skill добавляет специализированные знания и повторяемый workflow. MCP отвечает на вопрос «к чему Claude получает доступ», Skill - «как Claude должен выполнить задачу». В одной работе они могут использоваться вместе.

Если Claude должен прочитать файл на диске, найти данные в базе или создать запись во внешнем сервисе, ему нужен доступ. Его даёт MCP.

Когда Claude уже видит нужные файлы, но каждый раз по-разному анализирует таблицу, оформляет презентацию или проводит ревью, проблема в другом. Нужна инструкция с понятным порядком действий. Её можно положить в Skill.

Вот как сам Anthropic определяет MCP:

MCP (Model Context Protocol) is an open-source standard for connecting AI applications to external systems. Using MCP, AI applications like Claude or ChatGPT can connect to data sources (e.g. local files, databases), tools (e.g. search engines, calculators) and workflows (e.g. specialized prompts) - enabling them to access key information and perform tasks.

[Skill](/guides/skills-navyki-pervyy-navyk-dlya-claude-code-bez-kashi) - это папка с инструкциями, шаблонами и порядком действий. Его точка входа - файл `SKILL.md`. Внутри есть описание и инструкции.

Разница важна, когда садишься настраивать **skills mcp** под свою задачу. Подключение к Google Drive достаточно оформить как MCP. Инструкцию «сначала прочитай строки, потом проверь формулы, затем выдай таблицу ошибок» удобнее вынести в отдельный Skill.

Модель может автоматически выбрать Skill, если описание подходит под запрос. Но это не обещание, что пересекающиеся Skills всегда будут выбраны правильно. Если запуск критичен, есть явный вызов через slash-команду.

## Чем MCP отличается от Skill в реальной задаче?

В сравнении **skills vs mcp** и в любом запросе **skills mcp** главный критерий один: нужен доступ к новой системе или нужен способ выполнить задачу. MCP подключает ресурс, сервис, API, базу, Git или отдельный процесс. Skill задаёт инструкции, шаблоны, формат результата и последовательность действий поверх уже доступных инструментов (подробнее о различии [MCP и Skills](/guides/mcp-protiv-skills-gde-khranit-instruktsiyu-dlya-claude-code)).

![Мужчина закрывает лицо рядом со схемой различий MCP и Skill.](https://s3.regru.cloud/crossmark/statejnik/images/guides/mcp-protiv-skills-chto-podklyuchat/kadr-1.webp)

Представь задачу: «Возьми таблицу продаж, найди строки со статусом “оплачен”, посчитай сумму и подготовь отчёт».

Если таблица лежит в папке, к которой Claude ещё не имеет доступа, сначала нужен MCP. Он даст возможность читать и менять файлы в разрешённом месте.

Когда файл уже доступен, но нужен одинаковый процесс обработки, добавляй Skill. В нём можно зафиксировать:

- какие листы читать;
- какие строки отбирать;
- какие формулы проверять;
- в каком формате выдавать результат;
- какие ошибки показывать отдельно.

За внешнее действие отвечает MCP. Skill определяет порядок и правила.

| Задача | Что подключать |
|---|---|
| Прочитать файлы в разрешённой папке | Filesystem MCP |
| Загрузить веб-страницу | Fetch MCP |
| Посмотреть историю и diff репозитория | Git MCP |
| Найти файл в Google Drive | MCP-коннектор |
| Создать тикет в Jira или Linear | MCP-коннектор |
| Обработать Excel по одной схеме | XLSX Skill |
| Создать презентацию по шаблону | PPTX Skill |
| Всегда делать ревью по чек-листу | Собственный Skill |
| Выполнить локальный скрипт как часть повторяемой процедуры | Skill, если скрипт относится к workflow |
| Дать этому скрипту доступ к внешнему сервису | Skill вместе с MCP |

Граница видна на примере Git и запроса **skills mcp**. Сам доступ к локальному репозиторию и операции Git остаются MCP. Правило «перед commit сначала покажи diff» можно вынести в Skill.

Та же схема работает с API. Ключ, OAuth-настройки и сам доступ к API не кладутся в Skill. Инструкция, как проверить ответ API и оформить ошибку, может лежать в Skill.

Задачу с недоступными для Claude данными через Skill не решить. MCP подключай для внешнего доступа, а одного текста с инструкциями для этого недостаточно.

## Что есть что: MCP, Skills и connectors?

Запрос **mcp skills connectors что есть что** сводится к трём уровням. MCP - открытый стандарт, по которому AI-приложение подключается к внешним системам. Коннектор - готовое подключение к конкретному сервису. Skill - папка с инструкциями, знаниями, шаблонами и workflow, которая объясняет Claude, как работать.

MCP задаёт общий способ общения AI-приложения с внешней системой. Сервер MCP может предоставить:

- tools - вызываемые действия;
- resources - данные для чтения;
- prompts - готовые промпты с параметрами.

Коннектор - уже собранный вариант подключения. Например, через коннектор Claude может работать с Linear, Slack или Google Drive. В карточке коннектора описываются сценарии использования, права чтения и записи, а также доступность.

У этих трёх уровней разные роли.

MCP - стандарт и механизм подключения.  
Коннектор - готовая интеграция с сервисом.  
Skill - инструкции и процесс.

Коннектор может использовать MCP внутри. Skill сохраняет свою роль инструкции, даже если в нём упоминается конкретный сервис.

Если в Skill лежит текст «создай задачу в Linear», сам по себе этот текст не даёт доступа к Linear. Нужен MCP-коннектор или другой доступный инструмент. Skill может добавить порядок: какие поля заполнить, как назвать тикет и что проверить перед отправкой.

## Что выбрать для файлов, Git, таблиц и внешних сервисов?

Для файлов выбирай Filesystem MCP, для веб-страниц - Fetch MCP, для локального репозитория - Git MCP. Для Excel и презентаций используй XLSX Skill и PPTX Skill, потому что они задают повторяемый процесс работы с файлами. Для API, баз, Slack, Google Drive и других внешних сервисов нужен MCP или готовый MCP-коннектор.

### Файлы

Filesystem MCP даёт Claude доступ к чтению, записи, поиску и перемещению файлов в разрешённых папках. Это доступ к ресурсу.

Оставляй его как MCP. Инструкция «сначала перечисли файлы, потом прочитай только конфигурацию» может дополнительно лежать в Skill.

Пример локального запуска:

```bash
npx -y @modelcontextprotocol/server-filesystem /путь/к/папке
```

Путь должен указывать на папку, к которой ты действительно хочешь дать доступ. Не подключай весь диск без конкретной причины.

### Веб-страницы

Fetch MCP скачивает веб-страницу и превращает HTML в Markdown. Внешний сервис здесь нужен для получения сетевого содержимого.

Для веб-страниц действует тот же принцип. Skill может описать, что делать после загрузки: выделить факты, собрать таблицу или проверить ссылки.

### Git

Git MCP работает с локальными Git-репозиториями и автоматизирует операции Git. Сам доступ к истории, веткам и diff не надо переписывать в Skill.

А вот процесс можно вынести отдельно:

- перед изменениями показать состояние репозитория;
- после правки показать diff;
- не создавать commit без проверки;
- в описании commit указать конкретное изменение.

Это повторяемая инструкция. Новый доступ здесь не появляется.

### Таблицы

XLSX Skill задаёт Claude рабочий процесс для создания, чтения, анализа и редактирования Excel-файлов. В его инструкции есть зависимости вроде `openpyxl`, `pandas` и инструменты для пересчёта формул.

Если задача звучит как «каждый раз обработай Excel по одной схеме», выбирай Skill. MCP не нужен только потому, что файл имеет расширение `.xlsx`.

### Презентации

PPTX Skill описывает правила создания, чтения и редактирования PowerPoint-файлов. Он отвечает за порядок действий и оформление.

Это Skill. Новый внешний сервис не появляется. Claude получает инструкцию, как работать с уже доступным файлом.

### Внешние сервисы

Для Slack, Google Drive, Jira, Linear, API и баз данных нужен MCP. Такой доступ может включать чтение, создание, изменение или отправку данных. Конкретные права зависят от подключения.

Anthropic reviews connectors against its listing criteria before adding them to the Anthropic Directory, but does not security-audit or manage any MCP server.

Проверяй, какие права выдаёт подключение. Не добавляй интеграцию только потому, что она «может пригодиться».

На этом месте я останавливаюсь и сначала собираю минимальный набор: Filesystem MCP, Git MCP при работе с репозиторием и один Skill под повторяемую задачу. Остальные подключения добавляй только после конкретного сценария.

Связка **skills mcp** и готовых серверов становится понятнее, когда ты собираешь их руками вместо заучивания определений. На практикуме я показываю эту связку на реальных задачах: доступ к данным, инструкции для агента, проверка результата и защита от лишних прав.

## Как подключить MCP и добавить Skill по порядку?

Сначала выбери область MCP: local для личной настройки, project для конфигурации в репозитории или user для всех проектов. Затем проверь `.mcp.json`, подключи сервер и подтверди его использование. После этого создай папку Skill с файлом `SKILL.md`, добавь frontmatter и проверь вызов через список Skills или slash-команду.

![Кот одобряет три шага подключения MCP и добавления Skill.](https://s3.regru.cloud/crossmark/statejnik/images/guides/mcp-protiv-skills-chto-podklyuchat/kadr-2.webp)

Для одного проекта используй project scope. Его конфигурация хранится в `.mcp.json` в корне проекта. Для личного подключения во всех проектах подходит user scope. Local scope действует только для текущего проекта.

Не смешивай scope без причины. MCP, добавленный в одном проекте, не обязан появиться в другом.

Пример подключения серверного процесса в project scope:

   ```bash
   claude mcp add --scope project filesystem -- npx -y @modelcontextprotocol/server-filesystem /путь/к/папке
   ```

В project scope файл должен лежать рядом с исходниками верхнего уровня, а Claude Code нужно запускать из этого проекта.

   ```text
   project/
   ├── .mcp.json
   ├── src/
   └── package.json
   ```

Проверь список серверов:

   ```bash
   cd project
   claude mcp list
   ```

Внутри сессии используй:

   ```text
   /mcp
   ```

Перед использованием project-scoped серверов из `.mcp.json` Claude Code запрашивает подтверждение. Подтверди сервер только после проверки команды, пути и прав.

Опции Claude Code ставь до имени сервера, а команду сервера и её аргументы передавай после разделителя `--`.

   ```bash
   claude mcp add \
     --scope project \
     filesystem \
     -- npx -y @modelcontextprotocol/server-filesystem /путь/к/папке
   ```

Если серверу нужна переменная окружения, передай её явно:

   ```bash
   export API_KEY="..."
   claude mcp add \
     --scope user \
     --env API_KEY="$API_KEY" \
     api \
     -- npx -y some-mcp-server
   ```

Для проектного Skill используй каталог `.claude/skills/`. Внутри каждого навыка должна быть отдельная папка и файл с точным именем `SKILL.md`.

   ```text
   .claude/
   └── skills/
       └── review-ui/
           └── SKILL.md
   ```

Не создавай одиночный файл `.claude/skills/review-ui.md`. Имя `SKILL.md` сохраняй в исходном регистре.

В начале файла добавь YAML frontmatter с полями `name` и `description`. Описание должно говорить, по каким словам и задачам Claude стоит выбрать Skill.

   ```md
   ---
   name: review-ui
   description: Use when the user asks to review UI changes for layout, accessibility, or responsive issues.
   ---

   # Review UI

   1. Read the changed files.
   2. Check layout, accessibility, and responsive behavior.
   3. Return findings with file paths and concrete fixes.
   ```

Если в описании есть подходящие слова, попроси Claude выполнить соответствующую задачу и посмотри, применил ли он Skill. Для проверки без автоматического выбора вызови его явно.

   ```text
   /review-ui
   ```

Если каталог `.claude/skills/` создан уже после запуска сессии и Skill не появился, перезапусти Claude Code или выполни:

   ```text
   /clear
   ```

После изменения уже загруженного Skill вызови его снова. Claude Code не перечитывает файл автоматически на каждом следующем сообщении.

API-ключи и OAuth-настройки не добавляй в `.mcp.json`, если файл попадёт в репозиторий. Для личных секретов используй local или user scope. В проектную конфигурацию выноси только безопасную структуру подключения.

## Почему Skill не запускается или MCP не виден?

Если Skill не виден, проверь папку `.claude/skills/имя/SKILL.md`, регистр имени файла и наличие frontmatter. Если Skill виден, но не запускается, сделай описание конкретнее или вызови его явно. Если MCP пропал, проверь scope, корень проекта, расположение `.mcp.json`, относительные пути и переменные окружения.

![Собака встревоженно смотрит на ошибки в настройке Skill и MCP.](https://s3.regru.cloud/crossmark/statejnik/images/guides/mcp-protiv-skills-chto-podklyuchat/kadr-3.webp)

### Skill не появляется в списке

Рабочая структура выглядит так:

```text
.claude/
└── skills/
    └── investigate-failing-test/
        └── SKILL.md
```

Типичные ошибки:

```text
.claude/skills/investigate-failing-test.md
.claude/skills/investigate-failing-test/skill.md
.claude/skills/investigate-failing-test/SKILL.txt
```

Имя файла чувствительно к регистру. Точка входа должна называться `SKILL.md`.

В начале файла должен быть frontmatter:

```yaml
---
name: investigate-failing-test
description: Use when the user says a test is failing, broken, red, or asks to investigate a failing test.
---
```

Если верхнего каталога `.claude/skills/` не было при старте сессии, создай его и перезапусти Claude Code. Альтернатива - выполнить `/clear`.

### Skill виден, но не выбирается

Слишком общее описание не помогает модели понять момент запуска.

Плохой вариант:

```yaml
description: Helps with development.
```

Более конкретный вариант:

```yaml
description: Use when the user says a test is failing, broken, red, or asks to investigate a failing test. Reproduce the failure before changing code.
```

Описание должно называть событие запуска, тип задачи и первое действие. «Работа с кодом» слишком широко. «Разобрать красный тест и сначала воспроизвести ошибку» уже привязано к ситуации.

Проверь и frontmatter. Если добавлен параметр:

```yaml
disable-model-invocation: true
```

модель не должна запускать такой Skill сама. Вызови его явно:

```text
/investigate-failing-test
```

Даже подходящее описание не даёт гарантии автоматического запуска при пересечении нескольких Skills. Для критичного процесса используй явную команду, hook или другой механизм с проверяемым результатом.

### Skill изменён, но старые инструкции остались

После вызова содержимое `SKILL.md` уже попадает в текущий контекст. Изменение файла не означает, что Claude заменит ранее загруженный текст.

Сделай так:

1. Снова вызови Skill через `/имя-навыка`.
2. Если контекст сильно сжат, повтори вызов.
3. Новую версию проверяй отдельным вызовом, а не старым уже загруженным.

### MCP не виден в другом проекте

Проверь scope. Local действует только в текущем проекте. Project привязан к конкретному репозиторию через `.mcp.json`. User доступен во всех проектах пользователя.

Посмотри список из того же каталога, где запускаешь Claude:

```bash
cd project
claude mcp list
```

Если сервер нужен во всех проектах:

```bash
claude mcp add --scope user github -- npx -y @modelcontextprotocol/server-github
```

Если сервер нужен только этому репозиторию:

```bash
claude mcp add --scope project github -- npx -y @modelcontextprotocol/server-github
```

### `.mcp.json` лежит не там

Project-scoped конфигурация должна быть в корне проекта:

```text
project/
├── .mcp.json
├── src/
└── package.json
```

Запуск Claude из соседнего каталога может привести к тому, что конфигурация не будет найдена. Перейди в корень и проверь сервер через `claude mcp list` или `/mcp`.

После изменения подтверждения можно сбросить командой:

```bash
claude mcp reset-project-choices
```

### Относительный путь указывает не туда

Относительные пути в `command` и `args` считаются от каталога, из которого запущен Claude Code. Не от каталога `.mcp.json`.

Такой вариант сломается, если запуск произойдёт из другого места:

```json
{
  "mcpServers": {
    "my-server": {
      "command": "python",
      "args": ["servers/main.py"]
    }
  }
}
```

Используй абсолютный путь или `${CLAUDE_PROJECT_DIR}`:

```json
{
  "mcpServers": {
    "my-server": {
      "command": "python",
      "args": ["${CLAUDE_PROJECT_DIR}/servers/main.py"]
    }
  }
}
```

Для диагностики запуска:

```bash
claude --debug mcp
```

Если MCP подключился, но инструменты не появились, проверь stderr процесса.

### Переменная окружения не раскрылась

Проверь, что переменная существует в окружении процесса Claude Code:

```bash
export API_KEY="..."
claude
```

В конфигурации допустим такой синтаксис:

```json
{
  "mcpServers": {
    "api": {
      "command": "npx",
      "args": ["-y", "some-mcp-server"],
      "env": {
        "API_KEY": "${API_KEY}"
      }
    }
  }
}
```

Для значения по умолчанию:

```json
{
  "env": {
    "DATA_DIR": "${DATA_DIR:-./data}"
  }
}
```

Если обязательная переменная не задана и у неё нет значения, Claude Code не сможет разобрать конфигурацию. Секреты не храни в общем `.mcp.json`.

## Что оставить, а что убрать из списка подключений?

Оставляй MCP, если он даёт доступ к файлам, Git, API, базе или внешнему сервису и выполняет действия. Переноси в Skills инструкции, шаблоны, чек-листы, формат ответа и повторяемые процессы. Не держи подключения без конкретной задачи: проверь их права и убери дублирующие серверы.

Для быстрой очистки пройдись по каждому подключению и задай один вопрос: «Что нового Claude получает благодаря этому серверу?»

Если ответ связан с ресурсом или действием, оставляй MCP:

- файлы в разрешённой папке;
- локальный Git;
- база данных;
- внешний API;
- браузер или сетевой доступ;
- Slack, Jira, Linear, Google Drive;
- отдельный локальный процесс.

Если ответ связан только с правилами, переноси содержимое в Skill:

- инструкция;
- шаблон;
- формат ответа;
- чек-лист;
- повторяемый workflow;
- процедура анализа;
- последовательность команд.

| Оставить как MCP | Перенести в Skill |
|---|---|
| Filesystem MCP | Правила работы с файлами |
| Fetch MCP | Порядок анализа загруженной страницы |
| Git MCP | Чек-лист перед commit |
| Подключение к API | Инструкция проверки ответа API |
| Доступ к базе | Шаблон отчёта по данным |
| Google Drive или Slack | Правила обработки найденных данных |
| Внешний сервис с OAuth | Сценарий работы после авторизации |

Несколько MCP-серверов с одинаковым доступом обычно не нужны. Сервер «на будущее» тоже не добавляй. MCP-серверы требуют доверия и проверки прав. Наличие подключения в каталоге не заменяет такую проверку.

`everything` MCP подходит для экспериментов, потому что показывает возможности протокола. Постоянно держать его не надо: это тестовый сервер для проверки возможностей. Рабочую задачу он не решает.

`time` оставляй, если реально нужны часовые пояса. Если правило сводится к фразе «всегда показывай время в моём часовом поясе», его можно оформить как инструкцию.

Template Skill используй как основу для собственного навыка:

```md
---
name: template-skill
description: Replace with description of the skill and when Claude should use it.
---

# Insert instructions below

Add the repeatable workflow here.
```

Я начинаю с небольшого набора:

- Filesystem MCP;
- Git MCP, если Claude работает с репозиторием;
- один-два собственных Skills;
- XLSX Skill, если таблицы входят в регулярную работу.

Остальное добавляй после конкретной задачи. Так проще понять, что именно сломалось, когда Claude снова сделал не то.

## Вопросы и ответы

MCP и Skills решают разные задачи. MCP подключает Claude к внешним системам, данным и действиям. Skill добавляет специализированные знания, шаблоны и повторяемый workflow. В одной задаче они могут работать вместе: MCP даёт доступ к таблице или API, а Skill задаёт порядок обработки результата.

Skill описывает способ выполнения задачи. MCP даёт доступ к ресурсу, сервису или инструменту. Если Claude уже видит файл, но должен обрабатывать его по чек-листу, нужен Skill. Если Claude не видит базу, Git, API или внешний сервис, нужен MCP.

Skill может использовать инструменты, которые уже подключены через MCP. Например, MCP даёт доступ к Google Drive, а Skill описывает, какие документы искать и в каком формате собрать итог. Skill не заменяет авторизацию и сам по себе не открывает доступ к внешнему сервису.

Выбор зависит от задачи. Для файлов, Git, баз, API, браузера и внешних сервисов подключай MCP. Для шаблонов, инструкций, чек-листов, формата результата и повторяемых процессов создавай Skill. Иногда нужны оба варианта.

Skill - это папка с точкой входа `SKILL.md`, описанием и инструкциями для повторяемой работы. MCP - стандарт подключения AI-приложения к внешним системам. Один задаёт процесс, другой даёт доступ к данным и действиям.

MCP расширяет доступ Claude к внешнему миру. Skill расширяет способ работы Claude с уже доступными инструментами. Пример: Git MCP позволяет работать с репозиторием, а Skill может потребовать показать diff перед commit.

AI Skills добавляют специализированные знания и workflow. MCP подключает источники данных, инструменты и внешние системы. Когда Skill должен обработать данные из внешнего сервиса, обычно нужны Skill для процесса и MCP для доступа.

В фактуре для этой статьи нет официального описания Hooks и точной границы между Hooks, Skills и MCP. Подтверждённое различие такое: MCP подключает внешние системы, а Skill задаёт знания и workflow. Для Hooks нужен отдельный первоисточник Claude Code, поэтому я не приписываю ему неподтверждённые функции.

MCP - открытый стандарт подключения. Коннектор - готовое подключение к конкретному сервису, например Slack или Google Drive. Skill - набор инструкций, шаблонов и workflow. Коннектор может использовать MCP внутри, но Skill не заменяет доступ к сервису.

Используй MCP, когда Claude должен читать, искать, менять или отправлять данные во внешней системе. Используй Skill, когда Claude уже получил доступ, но должен действовать по одному процессу. Если нужны и доступ, и процесс, подключай MCP вместе со Skill.

- [Model Context Protocol - Anthropic](https://docs.anthropic.com/en/docs/mcp)
- [Use connectors to extend Claude's capabilities](https://support.claude.com/en/articles/11176164-use-connectors-to-extend-claude-s-capabilities)
- [Connect Claude Code to tools via MCP](https://code.claude.com/docs/en/mcp)
- [Security - Claude Code Docs](https://code.claude.com/docs/en/security)
- [Use skills in Claude](https://support.claude.com/en/articles/12512180-use-skills-in-claude)
- [How to create custom skills](https://support.claude.com/en/articles/12512198-use-custom-skills)
- [Filesystem MCP Server](https://github.com/modelcontextprotocol/servers/blob/main/src/filesystem/README.md)
- [Fetch MCP Server](https://github.com/modelcontextprotocol/servers/blob/main/src/fetch/README.md)
- [Anthropic XLSX Skill](https://github.com/anthropics/skills/blob/main/skills/xlsx/SKILL.md)
- [Anthropic PPTX Skill](https://github.com/anthropics/skills/blob/main/skills/pptx/SKILL.md)
- [Anthropic Template Skill](https://github.com/anthropics/skills/blob/main/template/SKILL.md)
- [Debug your configuration - Claude Code Docs](https://code.claude.com/docs/en/debug-your-config)
- [Extend Claude with skills - Claude Code Docs](https://code.claude.com/docs/en/slash-commands)
- [Claude Code issue #9716](https://github.com/anthropics/claude-code/issues/9716)
- [Claude Code issue #21428](https://github.com/anthropics/claude-code/issues/21428)
- [Claude Code issue #19054](https://github.com/anthropics/claude-code/issues/19054)
- [Claude Code issue #3321](https://github.com/anthropics/claude-code/issues/3321)
- [Claude Code issue #1254](https://github.com/anthropics/claude-code/issues/1254)
