раздел 07 · подстраница 1

Установка MCP-серверов

MCP (Model Context Protocol) - стандарт от Anthropic для подключения внешних инструментов к LLM. Через MCP Claude умеет работать с GitHub, браузером, Postgres, Slack, Notion и сотней других сервисов. Установка - одна команда.

Зачем

Без MCP Claude умеет только то, что встроено в CLI: файлы, bash, веб. Через MCP можно подключить любой сервис: ваш Postgres, Sentry, Linear, Yandex Metrika, корпоративный API. Один протокол - все инструменты.

Базовая команда

claude mcp add <name> --transport <stdio|http> -- <command-or-url>

Примеры:

# GitHub (локальный stdio-сервер через npm)
claude mcp add github --transport stdio -- npx -y @modelcontextprotocol/server-github

# Playwright (для управления браузером)
claude mcp add playwright --transport stdio -- npx -y @playwright/mcp@latest

# Удалённый HTTP-сервер
claude mcp add internal-api --transport http -- https://mcp.company.com/api

После установки - перезапустить Claude (или дёрнуть /mcp для проверки).

Транспорты: stdio vs http

| Транспорт | Что это | Когда | | --------- | ---------------------------------------- | ----------------------------------------------------- | | stdio | Локальный процесс, общение через pipe | Большинство open-source MCP, npm-пакеты, ваши скрипты | | http | Удалённый HTTP-эндпоинт | Облачные сервисы, корпоративные MCP-шлюзы |

stdio проще и быстрее, не надо хостить. http - для централизованных корпоративных MCP, к которым подключаются десятки сотрудников.

Scope: где будет жить сервер

claude mcp add <name> --scope user --transport stdio -- <cmd>
claude mcp add <name> --scope project --transport stdio -- <cmd>
claude mcp add <name> --scope local --transport stdio -- <cmd>

| Scope | Файл | Зона действия | | --------- | ----------------------------------- | --------------------------- | | user | ~/.claude.json | Везде, под вашим юзером | | project | <project>/.mcp.json | Этот репо, коммитится в git | | local | <project>/.claude/settings.local.json | Только вы, в этом проекте |

По дефолту scope local. Для своих личных серверов лучше user. Для командных - project.

Просмотр списка

claude mcp list

Вывод:

NAME         SCOPE    TRANSPORT  STATUS    COMMAND
github       user     stdio      connected npx -y @modelcontextprotocol/server-github
playwright   user     stdio      connected npx -y @playwright/mcp@latest
postgres     project  stdio      connected npx -y @modelcontextprotocol/server-postgres

Если STATUS не connected - смотрите логи (claude --debug или /mcp в чате).

Удаление

claude mcp remove <name>
claude mcp remove github --scope user

Передача переменных окружения

Большинство MCP-серверов требуют токены/ключи. Прокидываются через --env:

claude mcp add github --transport stdio \
  --env GITHUB_TOKEN=ghp_xxxxxxxxxxxxxxxx \
  -- npx -y @modelcontextprotocol/server-github

claude mcp add postgres --transport stdio \
  --env POSTGRES_URL=postgres://user:pass@localhost/db \
  -- npx -y @modelcontextprotocol/server-postgres

Лучше не хардкодить, а через подстановку из shell:

claude mcp add github --transport stdio \
  --env GITHUB_TOKEN="$GITHUB_TOKEN" \
  -- npx -y @modelcontextprotocol/server-github

Полный сценарий: подключаем GitHub

# 1. Сгенерировать токен на github.com/settings/tokens (классический, scope: repo, read:org)
export GITHUB_TOKEN=ghp_xxxxxxxx

# 2. Добавить MCP-сервер
claude mcp add github --transport stdio --scope user \
  --env GITHUB_TOKEN="$GITHUB_TOKEN" \
  -- npx -y @modelcontextprotocol/server-github

# 3. Проверить
claude mcp list

# 4. Запустить Claude и проверить в чате
claude
> /mcp
# должен показать github connected

В чате можно дёргать:

> Покажи мои открытые PR в pdoronin/admin.pavel-doronin.com
> Создай issue в этом репо: "Migrate to Next.js 16"
> Что нового в последнем релизе vercel/next.js?

Проверка работоспособности

> /mcp

Покажет статус каждого сервера: connected / authenticating / failed. Из той же команды можно перезапустить упавший сервер.

Антипаттерны

  • Класть токены прямо в команду через --env TOKEN=ghp_... - утечёт в shell history и в ~/.claude.json. Используйте ${GITHUB_TOKEN} или secret manager.
  • Подключать сразу 10 серверов - инструментов будет тысяча, контекст забьётся служебными descriptions. Подключайте под задачу.
  • Не указывать --scope - попадёте в local и удивитесь, что в другом проекте сервера нет.
  • Использовать stdio для тяжёлых серверов на каждый Claude-сессию - npm будет ставить пакет каждый раз. Установите глобально или используйте bunx/pnpm dlx.

Полезные ссылки