🔌 Продвинутый · MCP
MCP Laravel-boost + Docker — настройка и практика
Два MCP-сервера, которые превращают Claude Code в полноценного члена команды Laravel-проекта. Laravel-boost даёт Claude прямой доступ к artisan, маршрутам и структуре Eloquent. Docker MCP позволяет управлять контейнерами прямо из чата.
laravel-boost · artisan из чата
docker mcp · контейнеры
практические примеры
🚀 MCP Laravel-boost — что это и зачем
Laravel-boost — MCP-сервер от сообщества, который подключает Claude Code напрямую к Laravel-проекту. Вместо того чтобы объяснять модели структуру роутов, модели Eloquent и доступные Artisan-команды — Claude видит это сам в реальном времени.
🛣️
Routes
Читает все маршруты через php artisan route:list. Claude знает какие endpoints есть, их middleware, контроллеры. Не нужно объяснять.
🗄️
Eloquent Models
Анализирует модели, fillable, relations, scopes. Может предложить правильный запрос или заметить что relation не определён.
⚙️
Artisan Commands
Запускает artisan-команды от имени Claude: migrate, make:model, queue:work, cache:clear. С подтверждением пользователя.
📊
Database Schema
Читает миграции и строит карту таблиц. Claude понимает структуру БД без ручного copy-paste схемы.
⚙️ Установка и настройка Laravel-boost
Установка
bash
# Глобальная установка (рекомендуется)
npm install -g mcp-laravel-boost
# Или через npx без установки
npx mcp-laravel-boost --project-path E:\project
Подключение к Claude Code
Есть два варианта подключения: глобальный — в ~/.claude/settings.json, работает для всех проектов; и проектный — в .mcp.json в корне Laravel-проекта, изолирован и переносим между командой.
Глобальный — ~/.claude/settings.json
{
"mcpServers": {
"laravel-boost": {
"command": "npx",
"args": ["-y", "mcp-laravel-boost"],
"env": {
"LARAVEL_PROJECT_PATH": "E:\\project",
"LARAVEL_PHP_PATH": "php"
}
}
}
}
Проектный — .mcp.json в корне Laravel
{
"mcpServers": {
"laravel-boost": {
"command": "npx",
"args": ["-y", "mcp-laravel-boost"],
"env": {
"LARAVEL_PROJECT_PATH": ".",
"LARAVEL_PHP_PATH": "php",
"LARAVEL_ARTISAN_ALLOWED_COMMANDS": "migrate,make:*,cache:clear,queue:restart,route:list,tinker"
}
}
}
}
⚠️
Безопасность: никогда не добавляй .mcp.json с реальными путями в git публично. Используй .gitignore для .mcp.json или храни credentials отдельно в .env.
Переменные окружения laravel-boost
| Переменная |
Описание |
Пример |
LARAVEL_PROJECT_PATH |
Путь к корню Laravel-проекта |
E:\project или . |
LARAVEL_PHP_PATH |
Путь к PHP-бинарнику |
php или C:\php\php.exe |
LARAVEL_ARTISAN_ALLOWED_COMMANDS |
Разрешённые artisan команды (whitelist) |
migrate,make:*,cache:clear |
LARAVEL_ARTISAN_REQUIRE_CONFIRMATION |
Требовать подтверждение перед выполнением |
true (рекомендуется) |
LARAVEL_READ_ONLY |
Только чтение, без выполнения artisan |
false |
💬 Практика — что спрашивать у Claude с laravel-boost
Реальные промпты которые работают
Покажи все маршруты с префиксом /api/v1 и их middleware
Создай модель Order с миграцией, fillable и relation к User
Найди все N+1 запросы в контроллерах — где не используется eager loading
Запусти php artisan migrate:status и объясни что нужно накатить
Создай scope для фильтрации активных заказов в модели Order
Покажи все маршруты без middleware auth
Сгенерируй Resource Controller для Invoice с правильными методами
Проверь есть ли дублирующиеся named routes
Запусти php artisan queue:work в фоне и мониторь ошибки
Создай Policy для модели Order с правилами для роли manager
🐳 MCP Docker — управление контейнерами из чата
Docker MCP — официальный сервер от Docker Inc., позволяет Claude Code управлять контейнерами, образами, volumes и networks. Особенно полезен при разработке: не нужно переключаться в терминал чтобы перезапустить контейнер или посмотреть логи.
🔍Просмотр: список контейнеров, образов, networks, volumes
📋Логи: читает stdout/stderr контейнеров
▶️Управление: start/stop/restart/kill контейнеров
🏗️Compose: up/down/build/ps для docker-compose проектов
🔧Exec: выполнение команд внутри контейнера
📊Stats: CPU, RAM, сеть контейнеров в реальном времени
🌐Networks: создание, подключение/отключение контейнеров
💾Volumes: управление томами данных
⚙️ Установка Docker MCP
bash
# Установка через npm
npm install -g @docker/mcp-server
# Или через Docker сам (если Docker Desktop установлен)
# Docker Desktop 4.x включает MCP автоматически
Linux / macOS — ~/.claude/settings.json
{
"mcpServers": {
"docker": {
"command": "npx",
"args": ["-y", "@docker/mcp-server"],
"env": {
"DOCKER_HOST": "unix:///var/run/docker.sock"
}
}
}
}
Windows — Docker Desktop (npipe)
{
"mcpServers": {
"docker": {
"command": "npx",
"args": ["-y", "@docker/mcp-server"],
"env": {
"DOCKER_HOST": "npipe:////./pipe/docker_engine"
}
}
}
}
💡
Windows — именованный пайп: Docker Desktop на Windows использует именованный пайп (npipe), не Unix-сокет. Если Claude не видит контейнеры — проверь DOCKER_HOST.
💬 Практика — Docker MCP в разработке Laravel
Покажи все запущенные контейнеры проекта и их статус
Перезапусти контейнер myapp-app-1 и покажи логи последних 50 строк
Выполни php artisan migrate внутри контейнера myapp-app-1
Покажи потребление CPU и RAM всех контейнеров проекта
Запусти docker-compose up -d и покажи статус всех сервисов
Найди контейнер который потребляет больше всего памяти
Выполни composer install внутри app-контейнера
Подключись к контейнеру db и выполни SHOW TABLES
🔄 Рекомендуемая конфигурация — Laravel + Docker вместе
Комбинированный .mcp.json для Laravel-проекта
Полный файл, включающий оба сервера + postgres-mcp для прямого доступа к БД:
.mcp.json — корень Laravel-проекта
{
"mcpServers": {
"laravel-boost": {
"command": "npx",
"args": ["-y", "mcp-laravel-boost"],
"env": {
"LARAVEL_PROJECT_PATH": ".",
"LARAVEL_PHP_PATH": "php",
"LARAVEL_ARTISAN_ALLOWED_COMMANDS": "migrate,make:*,cache:clear,queue:restart,route:list",
"LARAVEL_ARTISAN_REQUIRE_CONFIRMATION": "true"
}
},
"docker": {
"command": "npx",
"args": ["-y", "@docker/mcp-server"],
"env": {
"DOCKER_HOST": "npipe:////./pipe/docker_engine"
}
},
"postgres": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-postgres", "postgresql://user:pass@localhost:5432/myapp"],
"env": {}
}
}
}
⚠️
Credentials в файле: .mcp.json содержит database credentials — добавь в .gitignore. Для CI используй переменные окружения вместо хардкода.
📋 Рекомендации по Docker в разработке с CC
Паттерны которые работают
1
Один compose-файл на проект, не несколько
docker-compose.yml в корне, docker-compose.override.yml для локальных настроек. CC лучше понимает одну точку истины.
2
Называй контейнеры явно
container_name: myapp-app вместо автогенерированных имён. Claude и ты одинаково ссылаетесь на контейнер.
3
Healthcheck для каждого сервиса
CC может проверить что сервис действительно готов, а не просто запущен. Особенно важно для PostgreSQL и Redis.
4
Volumes для данных, не для кода
Код монтируй через bind mount (./:/var/www/html), данные БД — в именованный volume (postgres_data:/var/lib/postgresql/data).
5
Отдельные сети для фронта и бэка
Laravel-app в backend-network, frontend в frontend-network с gateway к backend. Изоляция и безопасность.
6
Логи в stdout, не в файлы
LARAVEL_LOG=stderr в .env контейнера. CC читает логи через Docker MCP напрямую без exec внутрь.
7
Makefile для типичных задач
make up, make down, make shell, make migrate. CC может предложить команду, но ты запускаешь через понятные алиасы.
8
Ресурсные лимиты в compose
mem_limit, cpus для каждого сервиса. Защита от утечки памяти в dev-среде.
Хороший docker-compose.yml — пример
docker-compose.yml
version: '3.8'
services:
app:
build: .
container_name: myapp-app
ports:
- "8000:8000"
volumes:
- .:/var/www/html
environment:
- APP_ENV=local
- LARAVEL_LOG=stderr
depends_on:
db:
condition: service_healthy
redis:
condition: service_started
networks:
- backend
db:
image: postgres:16-alpine
container_name: myapp-db
environment:
POSTGRES_DB: myapp
POSTGRES_USER: myapp
POSTGRES_PASSWORD: secret
volumes:
- postgres_data:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U myapp"]
interval: 5s
timeout: 5s
retries: 5
networks:
- backend
redis:
image: redis:7-alpine
container_name: myapp-redis
networks:
- backend
networks:
backend:
volumes:
postgres_data:
🔧 Диагностика — если что-то не работает
| Проблема |
Причина |
Решение |
| Laravel-boost не видит маршруты |
LARAVEL_PROJECT_PATH неверный |
Проверь путь, запусти php artisan route:list вручную |
| Artisan команда отклонена |
Не в LARAVEL_ARTISAN_ALLOWED_COMMANDS |
Добавь команду в whitelist |
| Docker MCP не видит контейнеры (Windows) |
DOCKER_HOST не настроен |
Установи npipe:////./pipe/docker_engine |
| Docker MCP не видит контейнеры (Linux) |
Нет прав на /var/run/docker.sock |
sudo usermod -aG docker $USER |
| MCP не загружается при старте CC |
Ошибка в JSON синтаксисе |
Проверить через claude mcp list |
| Artisan выполняется без подтверждения |
LARAVEL_ARTISAN_REQUIRE_CONFIRMATION не установлен |
Добавить в env: "true" |
Команды диагностики
bash
# Проверить список MCP
claude mcp list
# Проверить конкретный сервер
claude mcp get laravel-boost
# Логи MCP-сервера
claude mcp get docker --verbose
# Проверить соединение с Docker
docker ps
docker info
📚 Связанные материалы