MCP-сервер
Подключить Claude Code, Claude Desktop или Cursor к Joppa через MCP-сервер: процессы, логи, .env, диагностика, аналитика, сервисы и проекты — инструмент за инструментом.
joppa mcp — это сервер MCP (Model Context Protocol) на stdio. Через него ИИ-ассистент делает то, что вы делаете в течение дня: запускает и перезапускает серверы разработки ваших проектов, читает их логи, выясняет, почему домен не отвечает, правит .env, подключает базу данных, смотрит аналитику, запускает сервисы и создаёт проекты.
Подключить ассистента
Проще всего: Настройки › Командная строка › Подключить ассистентов. Или из терминала:
joppa mcp install # Claude Code, Claude Desktop и Cursor — те, что установлены
joppa mcp install --client cursor --dry-run # показывает, что будет записано
joppa mcp uninstall
| Клиент | Где регистрируется Joppa |
|---|---|
| Claude Code | claude mcp add --scope user, иначе его файл конфигурации |
| Claude Desktop | claude_desktop_config.json |
| Cursor | ~/.cursor/mcp.json |
Записывается только запись mcpServers.joppa, остальная часть файла не меняется. Затем перезапустите ассистента.
--client принимает claude-code, claude-desktop, cursor или all.
Инструменты
Процессы
Процессы проекта: его серверы разработки, воркеры и сервисы Docker Compose, как они настроены на вкладке Процессы.
| Инструмент | Назначение |
|---|---|
list_processes |
Процессы проекта (или всех проектов): состояние, команда, порт, ведущие к ним домены, pid, время работы, перезапуски после сбоя, ошибка; asleep для процесса в спящем режиме, его действия и те, что выполняются, sleepAfterMinutes, когда его серверы разработки переходят в спящий режим |
start_process |
Запускает процесс (и те, от которых он зависит) или весь проект без process (как Запустить всё, включая связанные сервисы) |
stop_process |
Останавливает процесс или весь проект |
restart_process |
Перезапускает процесс или все процессы проекта, которые работают или отмечены |
process_logs |
Последние строки процесса или всех процессов (с их именем в начале строки): lines (по умолчанию 100, не больше 2 000), grep, чтобы оставить только строки с определённым текстом |
run_process_action |
Запускает действие процесса (migrate, seed, test…) и возвращает то, что оно вывело, дождавшись его завершения (wait_seconds: по умолчанию 60, не больше 600, 0 — не ждать) |
start_process и restart_process ждут, пока процессы ответят или упадут (wait_seconds: по умолчанию 20, не больше 120, 0 — не ждать), и возвращают их состояние вместе с последними строками логов упавших процессов.
Диагностика
| Инструмент | Назначение |
|---|---|
diagnose |
Почему домен (или каждый домен проекта) не отвечает |
diagnose проходит путь запроса и для каждого звена сообщает, в порядке ли оно и как его исправить: домен включён, прокси работает, имя разрешается в 127.0.0.1, CA доверенный и сертификат действителен, порт сервера разработки отвечает, состояние процесса, который Joppa запускает на этом порту (упал, остановлен, порт занят другой программой, с его последними строками), затем ответ через прокси (502, хост отклонён Vite…).
.env
| Инструмент | Назначение |
|---|---|
get_env |
.env проекта, секреты скрыты, если не указан reveal |
set_env |
Записывает, изменяет (values) или удаляет (unset) переменные |
link_service |
Связывает проект с сервисом и записывает его переменные (DATABASE_URL, REDIS_URL…), заменяя сервис того же типа |
unlink_service |
Отвязывает сервис: ключи, у которых всё ещё значение от Joppa, получают значение из .env.example или удаляются |
Эти три инструмента записывают так же, как редактор .env (см. Что гарантирует Joppa): меняются только нужные строки, исходный файл копируется в .env.joppa-backup при первой записи, и ничего не записывается, если файл тем временем изменился на диске. Они возвращают diff, секреты скрыты, если не указан reveal; dry_run показывает diff, ничего не записывая.
Аналитика
| Инструмент | Назначение |
|---|---|
get_analytics |
Сводка аналитики проекта или домена за 15m, 1h (по умолчанию), 24h или 7d: запросы, доля ошибок, задержки p50/p95/p99, доступность, самые медленные пути, пути с ошибками с примером запроса, серии запросов к одному и тому же пути (N+1) |
get_analytics входит в Joppa Pro, как и вкладка «Аналитика»; в бесплатной версии инструмент отвечает, что эта функция входит в Joppa Pro.
Общий доступ
| Инструмент | Назначение |
|---|---|
share_start |
Открывает доступ к домену (или первому активному домену проекта): mode lan (по умолчанию, бесплатно) — в локальной сети, или public — через туннель (Joppa Pro) с provider (cloudflared по умолчанию, ngrok, localhost-run, pinggy); install_cloudflared скачивает его, если его нет. Возвращает адрес, а адрес туннеля — после его открытия |
share_stop |
Закрывает доступ к домену: mode lan, public или оба |
share_status |
Домены с открытым доступом, их адреса и состояние туннелей |
Ассистент открывает публичную ссылку, только если вы его об этом попросите: у кого есть ссылка, тот попадает на ваш сервер разработки.
Laravel Boost
Laravel Boost даёт ассистенту инструменты для приложения Laravel: версии PHP и Laravel, схема базы и запросы только на чтение, последняя ошибка, журнал, абсолютные URL, поиск по документации установленных версий. Там, где он включён в Joppa, MCP-сервер Joppa передаёт его инструменты — для любого проекта Laravel и из любой папки.
| Инструмент | Назначение |
|---|---|
list_boost_tools |
С project: инструменты Boost в этом проекте и их аргументы (Joppa при необходимости запускает его сервер). Без него: проекты, где установлен Boost, включён ли он и его состояние |
call_boost_tool |
Запускает инструмент Boost (project, tool, arguments) и возвращает его ответ как есть; wait_seconds: 60 по умолчанию, не больше 110 |
Если Boost выключен для проекта, инструмент отвечает, где его включить: вы сами решаете, какие проекты может опрашивать ассистент.
Проекты, сервисы и прокси
| Инструмент | Назначение |
|---|---|
get_status |
Состояние прокси, CA, проектов и сервисов |
list_projects |
Проекты, их домены и их состояние |
list_services |
Сервисы и их состояние |
start_service, stop_service |
Запускает или останавливает сервис |
service_logs |
Логи сервиса (lines: по умолчанию 100, не больше 2 000) |
list_databases |
Базы данных сервера и их URL |
create_database |
Создаёт базу данных (service, name, extensions) |
start_proxy, stop_proxy |
Запускает или останавливает прокси |
set_route_enabled |
Включает или выключает домен |
add_project |
Добавляет папку с обнаруженными или заданными доменами |
add_service |
Добавляет сервис (engine, version, port, start) |
list_templates |
Шаблоны проектов и их параметры |
create_project |
Создаёт проект из шаблона (dry_run, чтобы увидеть команды) |
create_project_status |
Отслеживает или отменяет идущее создание |
open_app |
Показывает окно Joppa |
Проект указывается по имени, идентификатору или одному из его доменов; сервис — как в команде joppa; процесс — по имени на вкладке Процессы (web, api, queue…).
Примеры запросов
- «Перезапусти сервер разработки
acmeи покажи ошибки из логов.» - «Почему
api.acme.testбольше не отвечает?» - «Дай мне публичную ссылку на
app.acme.test, чтобы показать клиенту.» - «Поставь
APP_DEBUGвtrueв.envпроектаblog, затем перезапусти его.» - «Подключи
acmeк PostgreSQL с базойacme.» - «Какие маршруты
api.acme.testбыли самыми медленными за последний час? Есть ли N+1?» - «Запусти PostgreSQL и создай базу
blogс pgvector.» - «Создай проект Astro
docsв~/Codeи добавь его в Joppa.» - «Какие столбцы у таблицы
ordersвboutique? И какая последняя ошибка в её журнале?»