
Company News
Socket Joins New OpenJS Program to Fund Node.js Security Work
Socket is joining the OpenJS Security Stewardship Program to fund Node.js vulnerability research, maintainer remediation, and security releases.
@statuser/mcp
Advanced tools
MCP server for Statuser.cloud — monitor servers, manage incidents and status pages from your AI client
MCP-сервер для управления Statuser из ИИ-клиента — Claude Desktop, Claude Code, Cursor, Windsurf, VS Code и любого другого, который поддерживает Model Context Protocol.
С ним ассистент умеет работать с вашим аккаунтом Statuser напрямую: смотреть текущее состояние серверов, разбирать инциденты, публиковать обновления на страницах статуса, настраивать уведомления. Всё это поверх публичного API Statuser с авторизацией по API-ключу.
[!NOTE] MCP-сервер обращается к API от имени аккаунта-владельца ключа. Все ограничения тарифа сохраняются — например, AI-саммари и кастомный домен будут доступны только если они включены в вашем плане. Сверяйтесь с инструментом
current_plan_get.
statuser.Запускается через npx -y @statuser/mcp — глобально устанавливать ничего не нужно, Docker тоже не требуется. Единственный обязательный параметр — переменная окружения STATUSER_API_KEY.
Для клиентов с поддержкой MCP-deeplink установка укладывается в нажатие кнопки. Клиент откроется, попросит API-ключ и сам сохранит конфиг.
Перед установкой создайте API-ключ в личном кабинете Statuser — клиент попросит его в момент установки. Кнопка для Cursor подставит плейсхолдер API_KEY_HERE; замените его на свой ключ в форме, которую откроет Cursor.
Для Claude Desktop, Claude Code, Windsurf, Zed и других клиентов автоустановки пока нет — там нужен ручной конфиг ниже.
Откройте Настройки → Developer → Edit Config и добавьте в claude_desktop_config.json:
{
"mcpServers": {
"statuser": {
"command": "npx",
"args": ["-y", "@statuser/mcp"],
"env": {
"STATUSER_API_KEY": "ваш_ключ"
}
}
}
}
После сохранения полностью закройте Claude Desktop (Cmd/Ctrl + Q) и откройте заново — простого закрытия окна недостаточно.
В корне проекта создайте .mcp.json:
{
"mcpServers": {
"statuser": {
"command": "npx",
"args": ["-y", "@statuser/mcp"],
"env": {
"STATUSER_API_KEY": "ваш_ключ"
}
}
}
}
Или одной командой:
claude mcp add statuser --env STATUSER_API_KEY=ваш_ключ -- npx -y @statuser/mcp
Самый быстрый путь — кнопка «Установить в Cursor» выше. Если нужно вручную, Настройки → MCP → Add new server:
{
"mcpServers": {
"statuser": {
"command": "npx",
"args": ["-y", "@statuser/mcp"],
"env": {
"STATUSER_API_KEY": "ваш_ключ"
}
}
}
}
Самый быстрый путь — кнопка «Установить в VS Code» выше. Если нужно вручную, Настройки → MCP servers → Add:
{
"statuser": {
"command": "npx",
"args": ["-y", "@statuser/mcp"],
"env": {
"STATUSER_API_KEY": "ваш_ключ"
}
}
}
Любой клиент с поддержкой MCP принимает один и тот же формат запуска:
command: npxargs: ["-y", "@statuser/mcp"]env.STATUSER_API_KEY: ваш ключНазвание поля настройки (mcpServers, mcp.servers, experimental.mcp и т.п.) различается между клиентами — сверяйтесь с их документацией.
Все параметры задаются через переменные окружения в блоке env конфига клиента.
| Переменная | Обязательно | По умолчанию | Описание |
|---|---|---|---|
STATUSER_API_KEY | да | — | API-ключ от statuser.cloud/my/account/api-keys. Без него сервер не запустится. |
STATUSER_ALLOW_WRITE | нет | 0 | Если 1, true или on — инструменты, которые создают, изменяют или удаляют данные, работают без явного подтверждения. |
STATUSER_TOOLSETS | нет | all | Список включённых групп инструментов через запятую. Значение all включает все группы. |
STATUSER_API_URL | нет | https://api.statuser.cloud | Альтернативный базовый URL. Нужен только если вы проксируете API или работаете со staging-окружением. |
Более 70 инструментов разбиты на 8 логических групп. По умолчанию включены все, но через STATUSER_TOOLSETS=... можно оставить только нужные.
Зачем это бывает удобно:
| Группа | Что включает | Примеры инструментов |
|---|---|---|
account | Профиль, тариф, режим отпуска, 2FA, привязки Telegram и MAX, история действий | account_get, current_plan_get, activity_log_list, holiday_mode_set, telegram_linked_list, max_get_link |
projects | Проекты — области внутри аккаунта: свои серверы, страницы статуса и правила уведомлений | project_list, project_create, project_delete, project_channel_list, project_channel_set |
monitors | Серверы, их проверки, heartbeat-события, история изменений DNS | monitor_list, monitor_create, monitor_pause, monitor_get_checks, monitor_get_dns_history |
incidents | Инциденты, события, AI-саммари, PDF-отчёт, удаление | incident_list, incident_get, incident_get_events, incident_generate_ai_summary, incident_get_report_pdf, incident_delete |
incident-comments | Комментарии к инцидентам с вложениями | incident_comment_create, incident_comment_upload_file, incident_comment_delete |
status-pages | Страницы статуса, группы, серверы, домены, slug, подписчики | status_page_list, status_page_create, status_page_set_groups, status_page_subscriber_list |
status-page-reports | Публикация инцидент-отчётов и плановых работ с таймлайном обновлений | status_page_incident_report_publish, status_page_maintenance_schedule, ..._update_add |
notifications | Правила нотификаций, вебхуки, email-каналы | notification_rule_set, webhook_create, notification_email_add, notification_email_confirm |
Примеры значения:
// только серверы и инциденты
"env": { "STATUSER_API_KEY": "...", "STATUSER_TOOLSETS": "monitors,incidents" }
// явно все группы — то же самое, что не задавать переменную
"env": { "STATUSER_API_KEY": "...", "STATUSER_TOOLSETS": "all" }
Если в списке указана неизвестная группа, сервер не запустится и подскажет допустимые значения.
API-ключ Statuser даёт полный доступ к аккаунту, поэтому MCP-сервер по умолчанию блокирует все инструменты, которые что-либо создают, изменяют или удаляют. Это защищает от того, чтобы ассистент случайно удалил сервер продакшна или отписал нужного человека от уведомлений.
[!IMPORTANT] Инструменты только для чтения (
*_list,*_get,monitor_get_checks,incident_get_report_pdfи подобные) работают всегда без подтверждения.
При попытке вызвать заблокированный инструмент сервер возвращает осмысленную ошибку с двумя способами разрешить вызов:
"STATUSER_ALLOW_WRITE": "1" в блоке env. Подходит, если вы доверяете ассистенту и заранее очертили его область работы через STATUSER_TOOLSETS.confirm: true к конкретному вызову. Это удобно, когда основная сессия должна оставаться read-only, но один-два изменения всё-таки нужны.Под защитой находятся в том числе:
Инструменты дополнительно помечаются MCP-аннотациями destructiveHint и readOnlyHint. Клиенты, которые их читают, добавляют поверх нашего собственный экран подтверждения.
Полный список с описанием параметров MCP-клиент покажет автоматически при подключении. Ниже — обзор по группам. Условные обозначения: ✏️ — инструмент изменяет данные, ⚠️ — действие необратимо.
| Инструмент | Что делает | Изменяет данные |
|---|---|---|
account_get | Профиль текущего аккаунта | |
account_update | Изменить имя, часовой пояс или флаг отображения AI-ассистента | ✏️ |
current_plan_get | Текущий тариф со всеми возможностями и лимитами | |
plan_list | Публичный каталог тарифов | |
holiday_mode_get | Статус режима отпуска | |
holiday_mode_set | Включить режим отпуска до указанной даты или выключить | ✏️ |
two_factor_info | Сведения о текущем втором факторе и доступных методах | |
telegram_linked_list | Привязанные Telegram-аккаунты и чаты | |
telegram_set_topic | Привязать топик в Telegram-группе для уведомлений или снять привязку | ✏️ |
max_linked_list | Привязанные аккаунты и групповые чаты MAX | |
max_get_link | Получить ссылки для привязки MAX — личного чата или групповой | |
max_unlink | Отвязать MAX-аккаунт | ✏️ |
max_set_2fa_account | Сменить MAX-аккаунт, на который приходят коды второго фактора | ✏️ |
| Инструмент | Что делает | Изменяет данные |
|---|---|---|
project_list | Проекты аккаунта — с них начинается работа с областями | |
project_create | Завести проект; лимит зависит от тарифа | ✏️ |
project_update | Переименовать проект | ✏️ |
project_delete | Удалить проект, перенеся его содержимое в другой | ✏️ ⚠️ |
project_reorder | Задать порядок проектов в панели | ✏️ |
project_channel_list | Каналы аккаунта и их положение в этом проекте | |
project_channel_set | Включить или выключить канал в проекте | ✏️ |
Проект — область внутри аккаунта: ему принадлежат серверы, страницы статуса и правила уведомлений о мониторинге. Каналы связи, тариф и API-ключи остаются общими. Вызовы без project_id читают весь аккаунт, а создают в самом старом проекте — так работали интеграции до появления проектов, и это поведение сохранено.
| Инструмент | Что делает | Изменяет данные |
|---|---|---|
monitor_list | Список всех серверов аккаунта | |
monitor_get | Полная карточка одного сервера | |
monitor_create | Добавить новый сервер — тип проверки ping, http, keyword, tcp, dns или heartbeat | ✏️ |
monitor_update | Частичное обновление настроек сервера | ✏️ |
monitor_pause | Поставить проверки на паузу или возобновить (action: pause или unpause) | ✏️ |
monitor_delete | Удалить сервер вместе со всей историей | ⚠️ |
monitor_test_notify | Отправить тестовое уведомление по всем настроенным каналам | ✏️ |
monitor_get_checks | Агрегированные результаты проверок для графиков uptime и latency | |
monitor_get_heartbeat_events | События heartbeat для серверов с protocol: heartbeat | |
monitor_get_dns_history | История изменений DNS-записей для серверов с protocol: dns |
| Инструмент | Что делает | Изменяет данные |
|---|---|---|
incident_list | Инциденты по всему аккаунту или по конкретному серверу | |
incident_get | Подробная карточка с диагностикой — скриншот, replay, ping/nmap/mtr/traceroute, тайминги | |
incident_get_events | Хронологическая лента событий — изменения статуса, уведомления, комментарии, скриншот и сетевая диагностика | |
incident_get_server | Связанный с инцидентом сервер одним запросом | |
incident_generate_ai_summary | Сгенерировать или вернуть закэшированное AI-саммари инцидента | ✏️ |
incident_rate_ai_summary | Поставить оценку AI-саммари — positive или negative | ✏️ |
incident_get_report_pdf | Скачать PDF-отчёт по инциденту — возвращается в виде Base64 | |
incident_delete | Безвозвратно удалить закрытый инцидент со всей диагностикой — аптайм пересчитается вверх | ✏️ |
| Инструмент | Что делает | Изменяет данные |
|---|---|---|
incident_comment_list | Все комментарии к инциденту | |
incident_comment_create | Создать комментарий с текстом и вложениями — можно передать локальные пути файлов, сервер загрузит их сам | ✏️ |
incident_comment_update | Отредактировать текст или список вложений | ✏️ |
incident_comment_delete | Удалить комментарий и все его файлы | ⚠️ |
incident_comment_upload_file | Загрузить локальный файл для использования как вложение | ✏️ |
| Инструмент | Что делает | Изменяет данные |
|---|---|---|
status_page_list | Все страницы статуса аккаунта | |
status_page_get | Полная конфигурация одной страницы | |
status_page_check_slug | Проверка, свободен ли slug | |
status_page_check_domain | Проверка свободного кастомного домена и правильности CNAME-записи | |
status_page_create | Создать страницу статуса | ✏️ |
status_page_update | Частично обновить настройки | ✏️ |
status_page_set_groups | Полностью заменить структуру групп и список серверов на странице | ✏️ |
status_page_publish | Опубликовать (published) или скрыть (unpublished) страницу | ✏️ |
status_page_delete | Удалить страницу | ⚠️ |
status_page_subscriber_list | Подписчики страницы (емейл, статус, даты) и сводка с лимитом | |
status_page_subscriber_export | Экспорт подписчиков в CSV | |
status_page_subscriber_delete | Удалить подписчика | ⚠️ |
Инцидент-отчёты:
| Инструмент | Что делает | Изменяет данные |
|---|---|---|
status_page_incident_report_list | Все опубликованные отчёты на странице | |
status_page_incident_report_publish | Опубликовать новый отчёт со стартовым сообщением и статусами влияния на каждый сервер | ✏️ |
status_page_incident_report_update | Изменить поля отчёта — заголовок, время начала | ✏️ |
status_page_incident_report_update_add | Добавить сообщение в таймлайн с новыми статусами серверов | ✏️ |
status_page_incident_report_update_edit | Отредактировать текст одного сообщения | ✏️ |
status_page_incident_report_update_delete | Удалить сообщение из таймлайна. Первичное сообщение удалить нельзя | ⚠️ |
status_page_incident_report_delete | Удалить отчёт целиком | ⚠️ |
Плановые работы:
| Инструмент | Что делает | Изменяет данные |
|---|---|---|
status_page_maintenance_list | Все запланированные работы на странице | |
status_page_maintenance_schedule | Запланировать работы — окно времени и список затронутых сервисов | ✏️ |
status_page_maintenance_update | Изменить поля записи о работах | ✏️ |
status_page_maintenance_update_add | Добавить сообщение в таймлайн | ✏️ |
status_page_maintenance_update_edit | Отредактировать текст одного сообщения | ✏️ |
status_page_maintenance_update_delete | Удалить сообщение из таймлайна. Первичное сообщение удалить нельзя | ⚠️ |
status_page_maintenance_delete | Удалить запись о работах целиком | ⚠️ |
Вебхуки:
| Инструмент | Что делает | Изменяет данные |
|---|---|---|
webhook_list | Все вебхуки аккаунта | |
webhook_create | Создать вебхук с подписками (service_alerts, ssl_alerts и т.д.) и опциональным секретом | ✏️ |
webhook_update | Частично обновить вебхук | ✏️ |
webhook_delete | Удалить вебхук | ⚠️ |
webhook_test | Отправить тестовый запрос в вебхук | ✏️ |
Правила нотификаций — email, telegram, max для каждого типа подписки:
| Инструмент | Что делает | Изменяет данные |
|---|---|---|
notification_rule_list | Текущая матрица правил; project_id выбирает проект для типов о мониторинге | |
notification_rule_set | Включить или выключить каналы для одного типа подписки — в проекте или в аккаунте | ✏️ |
Email-каналы:
| Инструмент | Что делает | Изменяет данные |
|---|---|---|
notification_email_list | Все email-адреса аккаунта со статусом подтверждения | |
notification_email_add | Добавить адрес и отправить на него код подтверждения | ✏️ |
notification_email_confirm | Подтвердить адрес кодом из письма | ✏️ |
notification_email_resend | Повторно отправить код подтверждения | ✏️ |
notification_email_remove | Удалить адрес из списка | ⚠️ |
Несколько фраз, которые ассистент сможет выполнить сразу после установки:
nightly-export с проверкой heartbeat, интервал 12 часов, grace 10 минут.»staging-db до конца дня.»api.example.com и сгенерируй по нему AI-саммари. Потом скачай PDF-отчёт с секциями ai_summary и diagnostics.»prod отчёт об инциденте: заголовок Расследуем повышенную задержку API, затронуты api-1 и api-2 со статусом degraded, стартовое сообщение про повышенный p95 на API-слое.»prod: завтра с 02:00 до 04:00 МСК, описание Обновление БД, затронуты сервисы api и worker.»Slack prod на https://hooks.slack.com/... с подписками service_alerts и ssl_alerts, подпиши его секретом ….»STATUSER_API_KEY is not set — переменная не передана в env MCP-клиента или клиент не был перезапущен после правки конфига. На macOS Claude Desktop иногда требуется полностью выйти через Cmd+Q.
Statuser API 401 — ключ невалиден или отозван. Перевыпустите его на statuser.cloud/my/account/api-keys.
Statuser API 403 — возможность недоступна на вашем тарифе (например, вебхуки, AI-саммари, кастомный домен) или достигнут лимит — серверов, страниц статуса, помесячная квота отчётов. Сверьтесь с инструментом current_plan_get.
Statuser API 429 (too_many_requests) — превышен лимит запросов. Сервер автоматически повторяет запрос один-два раза, дождавшись окончания окна по заголовку ratelimit-reset. Если ошибка повторяется — уменьшите частоту обращений.
Refusing to call ...: this tool performs a write/destructive operation — сработала защита от случайных изменений. Установите STATUSER_ALLOW_WRITE=1 в конфиге клиента или попросите ассистента добавить confirm: true к конкретному вызову.
STATUSER_TOOLSETS contains unknown toolsets — опечатка в названии группы. Допустимые значения перечислены в тексте ошибки и в разделе Группы инструментов.
| Компонент | Версия |
|---|---|
| Node.js | 18.17 и новее |
| MCP SDK | @modelcontextprotocol/sdk ≥ 1.0 |
| API Statuser | v1 (https://api.statuser.cloud) |
| Клиенты | Claude Desktop, Claude Code, Cursor, Windsurf, VS Code, Zed и др. |
Пакет публикуется как ESM. Если ваш MCP-клиент запускает Node более старой версии — обновите его минимум до 18.17.
Ошибки и предложения — в issues.
Общие вопросы по API — в документации Statuser или на info@statuser.cloud.
MIT — см. LICENSE.
FAQs
MCP server for Statuser.cloud — monitor servers, manage incidents and status pages from your AI client
The npm package @statuser/mcp receives a total of 1,372 weekly downloads. As such, @statuser/mcp popularity was classified as popular.
We found that @statuser/mcp demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.

Company News
Socket is joining the OpenJS Security Stewardship Program to fund Node.js vulnerability research, maintainer remediation, and security releases.

Security News
Two compromised GitHub Actions were re-enabled with malicious tags intact, exposing thousands of downstream repositories to Mini Shai-Hulud.

Research
/Security News
A malicious Firefox extension fetches its payload after installation to evade detection, steal Google session cookies, and automate account takeover.