Документация

Всё что нужно для старта с mttrly.

Руководство по быстрому старту

Три шага: создать аккаунт, установить обязательный агент и запустить первую проверку.

Шаг 1: Создай аккаунт

Зарегистрируйся по email. Telegram можно подключить позже для мобильных алертов и approval; Slack и Discord — limited beta для выбранных клиентов.

Шаг 2: Установи агента

Открой Add server в аккаунте и скопируй token-specific installer из onboarding. Команда уникальна для этого подключения и устанавливает обязательный systemd-агент.

app.mttrly.com → Add server → Copy install command

Шаг 3: Проверь подключение

Открой дашборд или Telegram и выполни /healthcheck. В MCP-enabled IDE вызови mttrly_get_server_status. Если агент вернул актуальные CPU, память и диск, подключение готово.

Справочник по командам

Актуальный стартовый набор messenger-команд. Полный каталог, доступный аккаунту, покажет /help в подключённом канале.

$ /healthcheck

Запустить общую проверку сервера: load, память, диск и настроенный HTTP healthcheck.

Example:

/healthcheck
$ /status

Показать подробный systemd-статус одного сервиса.

Options:

  • <service>Точное имя systemd-сервиса

Example:

/status nginx
$ /logs

Получить ограниченный снимок journal-логов одного сервиса.

Options:

  • <service>Точное имя systemd-сервиса

Example:

/logs nginx
$ /restart

Запросить перезапуск systemd-сервиса. Это approval-required действие; флага обхода подтверждения нет.

Options:

  • <service>Точное allowlisted-имя systemd-сервиса

Example:

/restart nginx
$ /setup_deploy

Создать deploy profile с существующим app path, build/restart-шагами и healthcheck. После настройки deploy запрашивается обычной фразой.

Example:

/setup_deploy

Настройка

Hosted settings и deploy profiles настраиваются в аккаунте и guided chat flows. Общего файла /etc/mttrly/config.yaml у агента нет.

Модель конфигурации: Hosted account settings и сгенерированные файлы агента в /etc/mttrly

Hosted server settings

Добавляй и выбирай серверы в дашборде или подключённом мессенджере. Installer записывает server-specific identity files; не копируй токены между серверами.

app.mttrly.com → Servers → Add server
/etc/mttrly/allowed-services.conf

Systemd wrappers разрешают state-changing действия только для точных unit names из этого allowlist. Одно имя сервиса на строку.

nginx
myapp.service
redis-server
Deploy profile

Настрой существующее приложение через /setup_deploy и меняй профиль через /deploy_config. Профиль хранится в hosted configuration, а не как кастомный YAML playbook на агенте.

/setup_deploy
/deploy_config

Модель безопасности

Безопасность встроена в архитектуру mttrly.

Только исходящие соединения

Агент сам устанавливает зашифрованное исходящее соединение. Новый входящий управляющий порт mttrly не требуется; существующие правила файрвола и порты приложений остаются под твоим контролем.

Подтверждение опасных действий

Approval-required restart, deploy и script-действия обычно создают pending action. Явно авторизованный bounded Investigation только для mttrly_execute_command и узко настроенная preauthorization — отдельные исключения; оба остаются в аудите.

Ограниченные права

Агент работает от отдельного service user и использует scoped wrappers для привилегированных операций. Точные права зависят от capabilities, включённых для сервера.

Зашифрованный транспорт и явная граница данных

Агент использует зашифрованный транспорт. Релевантные диагностические фрагменты и операционные записи могут обрабатываться или храниться для диагностики и аудита. Не помещай секреты в prompts и logs; актуальная граница данных описана в Privacy Policy.

Ротация токенов

Если токен мог утечь, ротируй его через authenticated account flow. Предыдущий credential инвалидируется в рамках ротации.

Решение проблем

Частые проблемы и их решения.

Агент не подключается

  • Проверь, разрешены ли исходящие WebSocket-соединения (порт 443)
  • Убедись, что API-токен правильный
  • Проверь логи агента: journalctl -u mttrly

Команды зависают

  • Возможно, сервер под высокой нагрузкой
  • Проверь сетевое подключение
  • Перезапусти агента: systemctl restart mttrly

Ошибки доступа

  • Убедись, что пользователь mttrly имеет доступ к управляемому сервису
  • Добавь sudo-права для нужных команд в /etc/sudoers.d/mttrly

MCP-сервер

Подключение mttrly к AI-ассистентам кодинга через Model Context Protocol. Endpoint: https://api.mttrly.com/mcp

Подключение

MCP-сервер mttrly использует HTTP-транспорт с аутентификацией OAuth 2.1. Добавь его в клиент:

Claude Codebash
claude mcp add mttrly --transport http https://api.mttrly.com/mcp

OAuth-авторизация откроется в браузере автоматически.

Cursorjson
{
  "mcpServers": {
    "mttrly": {
      "url": "https://api.mttrly.com/mcp"
    }
  }
}

Cursor → Settings → Cursor Settings → MCP → Add server.

Claude Desktopconnector
Settings -> Connectors -> Add custom connector -> https://api.mttrly.com/mcp

Используй Connectors UI в Claude Desktop или Claude.ai.

OpenAI Codextoml
[mcp_servers.mttrly]
url = "https://api.mttrly.com/mcp"

Добавь в ~/.codex/config.toml. Запусти codex mcp login mttrly для OAuth.

Аутентификация

Поддерживаются два режима аутентификации:

OAuth 2.1 (рекомендуется)

Стандартный OAuth flow с PKCE S256. JWT-токены подписаны RS256. Issuer: https://app.mttrly.com. Audience: https://api.mttrly.com/mcp. MCP-клиенты обрабатывают это автоматически — ты просто подтверждаешь вход в браузере.

API Key

Bearer-токен с префиксом mtr_. Передавай как Authorization: Bearer mtr_your_key. Доступен в дашборде.

Неавторизованные запросы возвращают 401 с заголовком WWW-Authenticate, указывающим на OAuth discovery endpoint.

Справочник инструментов

40 инструментов организованы по уровню доступа. Всегда вызывай mttrly_get_capabilities первым, чтобы проверить план и доступные инструменты.

Доступно на всех планах

mttrly_get_capabilities

Текущий план, доступные инструменты, ограниченные инструменты и лимиты плана. Вызывай первым.

mttrly_list_servers

Список всех подключённых серверов со статусом (online/offline).

mttrly_get_server_status

Детальный статус сервера: CPU, RAM, диск и количество активных алертов.

server_idstringrequiredID сервера из mttrly_list_servers
mttrly_get_alerts

Алерты (инциденты) сервера с фильтрацией по severity/status. Retention ограничен планом.

server_idstringrequiredID сервера
limitnumberoptionalМакс. алертов, 1–500. По умолчанию: 20
since_daysnumberoptionalГлубина поиска в днях, 1–30. По умолчанию: 7
statusstringoptionalФильтр: active | resolved | all. По умолчанию: all
mttrly_quick_triage

Детерминированный Watchdog-safe first-pass triage. Использует простое сопоставление симптомов, а не AI-investigation.

server_idstringrequiredID сервера
symptomstringoptionalНеобязательная подсказка о симптоме, максимум 500 символов
mttrly_list_playbooks

Список доступных плейбуков с категориями и требованиями подтверждения.

server_idstringoptionalОпциональный фильтр по серверу
categorystringoptionalФильтр: monitoring, logs, services, nginx_certs, docker, scheduling, config, security, fix, maintenance или all. По умолчанию: all

Требуется план Deployment Bro

mttrly_run_diagnostic

Запустить недеструктивное диагностическое расследование на сервере. Требуется Deployment Bro или выше; действует 30-секундный кулдаун на сервер.

server_idstringrequiredID сервера
descriptionstringrequiredОписание проблемы, напр. "высокий CPU", "nginx не отвечает", "диск заполняется". Макс. 2000 символов.
mttrly_run_playbook

Выполнить плейбук на сервере. Read-only плейбуки выполняются сразу. Опасные возвращают pending_approval — вызови mttrly_approve_action после подтверждения пользователя.

server_idstringrequiredID сервера
playbook_idstringrequiredID плейбука из mttrly_list_playbooks
parametersobjectoptionalKey-value параметры, напр. {"service": "nginx"}. Проверь mttrly_list_playbooks для списка параметров
mttrly_execute_command

Запрос на ограниченное выполнение команды на сервере. Если есть подходящий playbook, предпочитай mttrly_run_playbook. Требует подтверждения или явного investigation bypass, а выполнение записывается в audit log.

server_idstringrequiredID сервера
commandstringrequiredКоманда, запрошенная для выполнения с подтверждением
reasonstringoptionalОпциональная причина выполнения (записывается в аудит-лог, если указана)
mttrly_get_pending_actions

Список действий, ожидающих подтверждения.

server_idstringoptionalОпциональный фильтр по серверу
mttrly_approve_action

Подтвердить или отклонить pending action. Вызывай только после явного подтверждения пользователя. Блокирует до завершения выполнения (до 60с).

action_idstringrequiredID действия из mttrly_run_playbook, mttrly_execute_command или mttrly_get_pending_actions
decisionstringrequiredapprove = выполнить, reject = отменить
mttrly_get_audit_log

Аудит-трейл сервера — подтверждения действий, выполнения команд, запуски плейбуков, авто-фиксы.

server_idstringrequiredID сервера
limitnumberoptionalМакс. записей, 1–200. По умолчанию: 50
sincestringoptionalISO 8601 timestamp — записи после этого времени

Workflow подтверждения

Approval-required действия обычно следуют двухэтапному паттерну:

1.Вызови mttrly_run_playbook или mttrly_execute_command для действия, требующего подтверждения → получи action_id и описание.
2.Покажи детали действия пользователю и спроси подтверждение.
3.Вызови mttrly_approve_action с action_id и решением (approve/reject).
4.Если одобрено, инструмент блокирует до завершения выполнения (до 60с) и возвращает результат.

Read-only плейбуки выполняются сразу без подтверждения. Явно авторизованный Investigation bypass применяется только к mttrly_execute_command и остаётся server-scoped, time-limited, action-limited и audited. Проверь requires_approval из mttrly_list_playbooks.

Коды ошибок

Все ошибки возвращают JSON-объект с code, message и suggested_action.

PLAN_REQUIRED

Инструмент требует более высокий план. Ответ содержит URL для апгрейда.

Сообщи пользователю об ограничении плана и покажи ссылку на апгрейд.

SERVER_OFFLINE

Агент на сервере не подключён.

Проверь, запущен ли агент на сервере.

SERVER_NOT_FOUND

Неверный server_id.

Вызови mttrly_list_servers чтобы увидеть доступные ID серверов.

DIAGNOSTIC_COOLDOWN

30-секундный кулдаун диагностики на сервере не истёк.

Подожди окончания кулдауна перед повторным запросом.

DOCKER_NOT_AVAILABLE

Запрошен Docker-плейбук, но Docker не установлен на сервере.

Пропусти Docker-плейбуки или установи Docker на сервер.

ACTION_EXPIRED

Pending action превысил TTL 30 минут и был автоматически отменён.

Повтори исходную команду или плейбук для создания нового pending action.

RATE_LIMITED

API-ключ превысил лимит 60 запросов в минуту. Возвращает HTTP 429.

Подожди сброса окна rate limit (1 минута) и повтори.

VALIDATION_ERROR

Тело запроса не прошло валидацию (напр. пропущено обязательное поле, description свыше 2000 символов).

Проверь параметры запроса по схеме инструмента.

TIMEOUT

Запрос превысил таймаут (по умолчанию 60с).

Повтори запрос.

Лимиты

Глобальный: 60 запросов в минуту на API-ключ. Превышение возвращает HTTP 429 с кодом RATE_LIMITED. Окно сбрасывается через 1 минуту.
mttrly_run_diagnostic: 30-секундный кулдаун на сервер. Возвращает DIAGNOSTIC_COOLDOWN при раннем вызове.
mttrly_approve_action: блокирует до 60 секунд, ожидая завершения выполнения.
Look-back запроса алертов ограничен тарифом (Watchdog: 7 дней; Deployment Bro и Crew: 30 дней). Это лимит запроса, а не обещание срока хранения.

Лимиты планов

Конкретные ограничения ресурсов по планам, контролируемые API:

ЛимитWatchdog (бесплатно)Deployment Bro (3900₽/мес)Deployment Crew (9900₽/мес)
Серверы139
Строк логов за запрос50500500
Look-back запроса алертов7 дней30 дней30 дней
Scheduled checks5Без ограничений

Матрица доступа по планам

ИнструментWatchdog (бесплатно)Deployment Bro (3900₽/мес)Deployment Crew (9900₽/мес)
mttrly_get_capabilities
mttrly_list_servers
mttrly_get_server_status
mttrly_get_alerts
mttrly_quick_triage
mttrly_run_diagnostic
mttrly_list_playbooks
mttrly_run_playbook
mttrly_execute_command
mttrly_get_pending_actions
mttrly_approve_action
mttrly_get_audit_log

* Deployment Crew имеет тот же набор MCP-инструментов, что и Deployment Bro, плюс: до 9 серверов сейчас; командный доступ и webhook-интеграции выкатываются поэтапно.

Готов проверить документацию на реальном сервере?

Создай аккаунт по email. Onboarding покажет token-specific команду для обязательного outbound-агента.