🔌 MCP серверы
MCP (Model Context Protocol) — протокол подключения внешних инструментов к Claude Code. Три точки входа в глобальном конфиге + project-scope серверы через .mcp.json.
~/.claude/settings.json и иерархию CLAUDE.md.
Теперь разберёмся с MCP: что это, как работает экономия токенов, и какие серверы нужны для каких задач.
🏗️ Архитектура: три точки входа
На этом сервере MCP организован в три уровня. Глобальные серверы — в ~/.claude.json, проектные — в .mcp.json каждого проекта.
│
├── Tool Search (автоматически, ~5 700 токенов при старте)
│ └── подгружает схемы инструментов по запросу — не грузит всё сразу
│
├── ~/.claude.json — глобальные (3 entry-point):
│ ├── ruflo · HTTP → localhost:3100 · агенты, swarm, vector memory
│ ├── MCP_DOCKER · docker mcp gateway run · 7 серверов в контейнерах:
│ │ ├── context7 · fetch · memory · node-sandbox
│ │ ├── playwright · sequentialthinking · youtube_transcript
│ └── powershell · npx mcp-powershell-exec · Windows-команды
│
└── .mcp.json — project-scope (только для этого проекта):
├── laravel-boost · cmd /c docker exec <app> php artisan boost:mcp
├── postgres · npx @modelcontextprotocol/server-postgres <url>
└── mysql / tavily / gsc / ... — по необходимости
⚡ Tool Search — экономия токенов
MCP_TOOL_SEARCH=1 устарела с CC 1.0+ (январь 2026) — убрана из конфига.
Когда нужен конкретный инструмент — CC запрашивает его схему у нужного сервера и подгружает. Playwright (23 инструмента) грузится только когда вы просите «открой браузер», context7 — когда «найди документацию по Laravel».
🌐 Глобальные MCP серверы
Прописаны в ~/.claude.json. Доступны во всех проектах автоматически.
Что внутри Docker Gateway
| Сервер | Инструментов | Назначение |
|---|---|---|
context7 | 2 | Актуальная документация: Laravel, Vue, Nuxt, FastAPI, React... |
fetch | 1 | HTTP-запросы из изолированного контейнера |
memory | 9 | KV-хранилище между сессиями (entities + relations) |
node-code-sandbox | 7 | Безопасное выполнение JS без выхода в сеть |
playwright | 23 | Браузерная автоматизация, E2E тесты, скриншоты |
sequentialthinking | 1 | Пошаговый структурированный анализ задач |
youtube_transcript | 4 | Транскрипты YouTube видео |
📁 Project-scope MCP серверы
Прописываются в .mcp.json в корне проекта. Активны только в этом проекте.
📊 Матрица: что где прописывать
| MCP сервер | Laravel | Nuxt/Vue | Python | Где прописан |
|---|---|---|---|---|
ruflo |
✅ | ✅ | ✅ | ~/.claude.json (глобально) |
MCP_DOCKER (context7, playwright...) |
✅ | ✅ | ✅ | ~/.claude.json (глобально) |
powershell |
✅ | ✅ | ✅ | ~/.claude.json (глобально) |
laravel-boost |
✅ | ❌ | ❌ | .mcp.json (только Laravel) |
postgres |
✅ | ❌ | ✅ | .mcp.json (проекты с PG) |
mysql |
✅ | ❌ | ❌ | .mcp.json (Laravel/Bitrix) |
claude-in-chrome |
✅ | ✅ | ❌ | .mcp.json (UI-проекты) |
google-search-console |
❌ | ❌ | ✅ | .mcp.json (SEO) |
⚙️ Шаблоны .mcp.json
Laravel + laravel-boost + PostgreSQL (как notal)
cmd /c docker, не просто docker!
На Windows "command": "docker" не работает напрямую из MCP — нужен cmd /c как оболочка.
Иначе laravel-boost не запустится.
Laravel + MySQL (Bitrix)
SEO проект
🐳 Docker: только через MCP
mcp__docker__* инструменты.
На Windows Bash не видит docker без PATH-хака, MCP — всегда надёжнее.
| Задача | ❌ Bash (заблокирован) | ✅ MCP инструмент |
|---|---|---|
| Выполнить команду в контейнере | docker exec app php artisan... |
mcp__docker__docker_exec |
| Логи контейнера | docker logs app |
mcp__docker__docker_container_logs |
| Список контейнеров | docker ps |
mcp__docker__docker_list_containers |
| Перезапуск контейнера | docker restart app |
mcp__docker__docker_restart_container |
| Compose управление | docker compose restart |
mcp__docker__docker_compose_restart |
laravel/boost можно только через PowerShell/cmd (не Bash):
docker exec -u root <container> composer require --dev laravel/boost
Это разовая операция, после неё — всё управление через mcp__laravel-boost__*.
📐 Где что хранится
.gitignore. Пароли БД, API ключи — только в .mcp.json, не в глобальный конфиг.🔧 Отладка MCP
| Проблема | Причина | Решение |
|---|---|---|
| MCP сервер не видно в /mcp | Конфиг в неправильном файле | Глобальные → ~/.claude.json; проектные → .mcp.json |
| laravel-boost не запускается | Контейнер не запущен или неверное имя | Проверить mcp__docker__docker_list_containers, исправить имя в .mcp.json |
| laravel-boost: ошибка запуска на Windows | "command": "docker" без cmd оболочки |
Заменить на "command": "cmd", "args": ["/c", "docker", ...] |
| postgres MCP не видит БД | Неверный хост/порт в URL | Порт пробрасывается на хост — использовать localhost:5435, не docker-internal |
| Docker Gateway (MCP_DOCKER) не стартует | Docker Desktop не запущен | Запустить Docker Desktop, дождаться статуса Running |
| MCP_DOCKER: сервер падает с EOF | Сервер требует конфига через GUI (напр. filesystem) | Настроить через Docker Desktop → MCP Toolkit → CONFIG или убрать из registry.yaml |
| claude-in-chrome завис после алерта | JavaScript alert заблокировал события браузера | Закрыть диалог вручную в браузере, пересоздать вкладку |
| ruflo: ошибка авторизации | Bearer токен не совпадает | Токен в ~/.claude.json должен совпадать с RUFLO_TOKEN в docker-compose.yml |
✅ Итог
Глобальные MCP прописаны раз и работают во всех проектах. Для каждого Laravel-проекта — свой .mcp.json с именем контейнера и URL базы. Следующий шаг — Hooks для автоматизации.