Часть II · Контекст и конфигурация · Глава 04
04

MCP: внешние инструменты

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

~13 минут источник: best-practice/claude-mcp Claude Code v2.1.179
§1 · Зачем

Дать Claude твои инструменты

Model Context Protocol — это стандарт, по которому Claude Code подключается к внешним инструментам, базам и API. С ним агент перестаёт быть заперт в файлах проекта: он ищет и пишет в Slack, гоняет запросы в BigQuery, тянет ошибки из Sentry, водит браузер. Сервер один раз описывается в конфиге и коммитится в репозиторий, так что инструменты появляются у всей команды.

Claude Code пользуется всеми твоими инструментами. Он постоянно ищет и постит в Slack через MCP, гоняет запросы BigQuery для аналитики, забирает логи ошибок из Sentry. Конфиг Slack лежит в .mcp.json и шарится с командой.
Boris Cherny · создатель Claude Code

Дальше начинается соблазн натащить всё подряд. Это ошибка: каждый сервер добавляет инструменты, а каждый инструмент стоит контекста и внимания модели. Сообщество это уже прошло.

Переборщил с 15 MCP-серверами, думая, что больше — лучше. В итоге пользуюсь только четырьмя каждый день.
r/mcp · 682 апвоута
§2 · Серверы на каждый день

Пять, которые окупают место

Эти пять покрывают рабочий цикл: узнать, отладить, задокументировать. Остальное добавляй точечно под конкретную задачу, а не на всякий случай.

Пять серверов и зачем они
СерверЧто делает
Context7Тянет актуальные доки библиотек в контекст. Лечит галлюцинации API из устаревших данных обучения. Сообщество зовёт его лучшим MCP для кода.
PlaywrightАвтоматизация браузера: реализовать, протестировать и проверить UI самому. Скриншоты, навигация, формы.
Claude in ChromeПодключение к твоему реальному Chrome: консоль, сеть, DOM. Видеть то, что видит пользователь.
DeepWikiСтруктурная вики по любому GitHub-репо: архитектура, поверхность API, связи.
ExcalidrawГенерит архитектурные схемы и флоучарты в стиле рисунка от руки прямо из промпта.
Context7 в этой книге

Context7 настолько полезен, что для документации библиотек его берут вместо веб-поиска: твои данные обучения могут не знать про свежие изменения API, а он подтягивает текущие доки. Если правишь незнакомую либу, начни с него.

§3 · Конфигурация

.mcp.json и секреты

Серверы бывают двух типов: stdio (харнесс запускает локальный процесс через npx, python или бинарь) и http (подключение к удалённому URL). Описываются в .mcp.json в корне репозитория.

.mcp.jsonmcp
{ "mcpServers": {
  "context7":   { "command": "npx", "args": ["-y", "@upstash/context7-mcp"] },
  "playwright": { "command": "npx", "args": ["-y", "@playwright/mcp"] },
  "remote-api": { "type": "http", "url": "https://mcp.example.com/mcp?token=${MCP_API_TOKEN}" }
} }
# секрет ${MCP_API_TOKEN} подставляется из окружения — не коммить ключи в файл
Ключи через подстановку переменных окружения, а не в открытом виде. OAuth-серверы по спецификации RFC 9728 проходят авторизацию сами, без хелпер-скриптов.

Одобрение и разрешения

Чужие серверы из .mcp.json по умолчанию спрашивают подтверждение. Управляется это настройками, а доступ к самим инструментам — обычными правилами разрешений из Главы 03 по схеме mcp__сервер__тул.

.claude/settings.jsonapproval + perms
"enabledMcpjsonServers": ["context7", "playwright"],   # аллоулист серверов
"permissions": {
  "allow": [ "mcp__context7__*", "mcp__playwright__browser_snapshot" ],
  "deny":  [ "mcp__dangerous-server__*" ]
}
§4 · Скоупы и загрузка

Где живут серверы и сколько весят

MCP-серверы определяются на трёх уровнях, как и почти всё в Главе 03. Более узкий уровень перебивает более широкий.

Три скоупа · приоритет: субагент > проект > пользователь
СкоупГдеЗачем
Проект.mcp.json в корнеКомандные серверы, в git.
Пользователь~/.claude.jsonЛичные серверы во всех проектах.
Субагентfrontmatter, поле mcpServersСерверы под конкретного агента.
Почему «больше = лучше» бьёт по контексту

По умолчанию определения MCP-инструментов отложены: они грузятся в контекст по требованию через поиск инструментов, а не все сразу. Поставишь alwaysLoad: true — инструменты сервера грузятся на старте всегда, и каждый из них съедает место, которое могло бы пойти на разговор. Бери alwaysLoad только для того, что нужно буквально каждый ход. Это и есть техническая причина правила «15 серверов вредят»: дело не в числе серверов, а в том, сколько инструментов висит в окне.

Приятная мелочь: .mcp.json перечитывается на лету. Действие «Reconnect» в /mcp заново читает файл с диска, так что добавить или поправить сервер можно без перезапуска сессии.

Шпаргалка главы

Шесть тезисов на вынос

  1. MCP даёт Claude инструменты за пределами файлов: браузер, базы, доки, Slack, логи. Коммить в .mcp.json — получает вся команда.
  2. Меньше — лучше. Пять рабочих серверов (Context7, Playwright, Chrome, DeepWiki, Excalidraw) против пятнадцати «на всякий».
  3. Цикл: исследовать (Context7/DeepWiki) → отладить (Playwright/Chrome) → задокументировать (Excalidraw).
  4. Два типа: stdio (локальный процесс) и http (удалённый URL). Секреты через ${ENV}, не в открытом виде.
  5. Разрешения по схеме mcp__сервер__тул, аллоулист серверов в settings.
  6. Инструменты отложены и грузятся по требованию. alwaysLoad ест контекст: включай только для нужного каждый ход.