🔌 MCP серверы
MCP (Model Context Protocol) — протокол, позволяющий Claude Code подключать внешние инструменты. Каждый MCP-сервер расширяет возможности Claude специализированными командами.
MCP_TOOL_SEARCH=1 — обязательная переменная! Включает ленивую загрузку схем MCP-инструментов. Без неё Claude загружает схемы ВСЕХ инструментов сразу → −47–95% токенов экономится при включённом режиме.
📋 Все MCP серверы
Serena
uvx --from serena-agent serena
per-project
LSP-powered навигация по коду. Понимает PHP/Python/TypeScript как IDE. Переходы к определениям, поиск использований, переименование символов. Работает через Language Server Protocol.
Context7
npx @upstash/context7-mcp@latest
per-project
Актуальная документация фреймворков. Загружает документы по запросу: Laravel 11, Vue 3, Nuxt 3, FastAPI, Pydantic v2. Обновляется автоматически.
laravel-boost
docker exec backend php artisan boost:mcp
per-project
MCP внутри Laravel-контейнера. Даёт прямой доступ к роутам, Eloquent моделям, событиям, конфигурации и Artisan командам. Экономит тысячи токенов vs чтения PHP файлов.
postgres-mcp Pro
uvx --from postgres-mcp postgres-mcp
per-project
Безопасный доступ к PostgreSQL в режиме read-only. Флаг
--access-mode=restricted блокирует DDL и DML. Через роль claude_readonly — двойная защита.claude-mem
npx claude-mem mcp
per-project
Персистентная память между сессиями. Claude помнит архитектурные решения, незавершённые задачи, контекст проекта. Особенно ценно при длинных задачах с компактацией контекста.
chrome-devtools
npx chrome-devtools-mcp@latest
per-project (только frontend)
Инспекция DOM, снимки экрана, консоль Chrome. Только для UI-работы с Nuxt/Vue. НЕ смешивать с Playwright в одной сессии!
docker-mcp
npx docker-mcp@latest
глобальный
Управление Docker контейнерами через SDK. Все docker команды через этот MCP: exec, logs, ps, compose, networks. На Windows единственный надёжный способ.
ruflo
npx ruflo@latest
глобальный
Мульти-агентная оркестрация, память агентов, swarm координация, task management. Для сложных многошаговых задач с несколькими параллельными агентами.
📊 Матрица: какой MCP для какого проекта
| MCP сервер | Laravel | Nuxt/Vue | Python ETL | Где прописан |
|---|---|---|---|---|
serena |
✅ | ✅ | ✅ | .mcp.json (каждый проект) |
context7 |
✅ | ✅ | ✅ | .mcp.json (каждый проект) |
laravel-boost |
✅ | ❌ | ❌ | .mcp.json (только Laravel) |
postgres-mcp |
✅ | ❌ | ✅ | .mcp.json (проекты с PG) |
claude-mem |
✅ | ✅ | ✅ | .mcp.json (каждый проект) |
chrome-devtools |
❌ | ✅ | ❌ | .mcp.json (только frontend) |
docker-mcp |
✅ | ✅ | ✅ | settings.local.json (глобально) |
ruflo |
✅ | ✅ | ✅ | settings.local.json (глобально) |
⚙️ Структура .mcp.json
Laravel проект — полный шаблон
// E:\Clients\myproject\.mcp.json
{
"_comment": "Per-project MCP для Laravel. Изменить имя контейнера и пароль БД.",
"mcpServers": {
"serena": {
"command": "uvx",
"args": [
"--from", "serena-agent",
"serena", "start-mcp-server",
"--context", "ide-assistant",
"--project", "E:\\Clients\\myproject"
]
},
"context7": {
"command": "npx",
"args": ["-y", "@upstash/context7-mcp@latest"]
},
"laravel-boost": {
"command": "docker",
"args": ["exec", "-i", "myproject-backend-1", "php", "artisan", "boost:mcp"]
},
"postgres-pro": {
"command": "uvx",
"args": ["--from", "postgres-mcp", "postgres-mcp", "--access-mode=restricted"],
"env": {
"DATABASE_URI": "postgresql://claude_readonly:REPLACE@host.docker.internal:5432/mydb"
}
},
"claude-mem": {
"command": "npx",
"args": ["-y", "claude-mem", "mcp"]
}
}
}
📐 Приоритеты загрузки MCP
Claude Code загружает MCP-конфиги в порядке возрастания приоритета (более специфичные перекрывают общие):
// Порядок загрузки (низший → высший приоритет):
1. ~/.claude/settings.json // Глобальные (Антропик defaults)
2. ~/.claude/settings.local.json // Глобальные личные (docker, ruflo)
3. ./.claude/settings.json // Проектные (в репо)
4. ./.claude/settings.local.json // Проектные личные (в .gitignore)
5. ./.mcp.json // Per-project MCP (высший приоритет)
Никогда не коммитить секреты! Файл
.mcp.json с паролями БД должен быть в .gitignore. Пароли — через переменные окружения или отдельный .mcp.local.json.🔧 Отладка MCP
| Проблема | Причина | Решение |
|---|---|---|
| MCP не запускается | uvx/npx не в PATH | Проверить where uvx, переустановить uv: pip install uv |
| laravel-boost не отвечает | Контейнер не запущен | mcp__docker__docker_list_containers — проверить статус |
| postgres-mcp отказывает в доступе | Неправильный пароль или хост | Проверить host.docker.internal и порт 5432 |
| MCP инструменты не видны | MCP_TOOL_SEARCH=1 не выставлен | Добавить в settings.json env секцию |
| chrome-devtools не находит Chrome | Chrome не запущен | Запустить Chrome с --remote-debugging-port=9222 |