
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 Code, Cursor, VS Code, Windsurf, Claude Desktop и любого другого, который поддерживает Model Context Protocol.
С ним ассистент работает с вашим аккаунтом Statuser напрямую: смотрит состояние серверов, разбирает инциденты, публикует обновления на страницах статуса, настраивает уведомления. Всё это поверх публичного API Statuser с авторизацией по API-ключу.
Подключить сервер можно двумя способами, инструменты в обоих одни и те же:
https://mcp.statuser.cloud — ничего не нужно устанавливать: клиент ходит на наш сервер с вашим ключом в заголовке.npx -y @statuser/mcp — сервер работает на вашей машине, нужен Node.js.[!NOTE] MCP-сервер обращается к API от имени аккаунта-владельца ключа. Все ограничения тарифа сохраняются — например, AI-саммари и кастомный домен будут доступны только если они включены в вашем плане. Сверяйтесь с инструментом
current_plan_get.
https://mcp.statuser.cloud с заголовком Authorization: Bearer ваш_ключ; готовые конфиги — ниже.statuser.Если клиент подключает только локальные серверы — например, Claude Desktop, — используйте локальный запуск через npx.
| Параметр | Значение |
|---|---|
| Адрес | https://mcp.statuser.cloud |
| Транспорт | Streamable HTTP |
| Авторизация | заголовок Authorization: Bearer ваш_ключ |
claude mcp add --transport http statuser https://mcp.statuser.cloud --header "Authorization: Bearer ваш_ключ"
С флагом --scope user сервер будет доступен во всех проектах, с --scope project — запишется в .mcp.json проекта. Файл с ключом не коммитьте в репозиторий.
В ~/.cursor/mcp.json — для всех проектов, или в .cursor/mcp.json — для одного:
{
"mcpServers": {
"statuser": {
"url": "https://mcp.statuser.cloud",
"headers": {
"Authorization": "Bearer ваш_ключ"
}
}
}
}
В .vscode/mcp.json. VS Code спросит ключ при первом подключении, в самом файле его не будет:
{
"inputs": [
{
"type": "promptString",
"id": "statuser_api_key",
"description": "API-ключ Statuser (https://statuser.cloud/my/account/api-keys)",
"password": true
}
],
"servers": {
"statuser": {
"type": "http",
"url": "https://mcp.statuser.cloud",
"headers": {
"Authorization": "Bearer ${input:statuser_api_key}"
}
}
}
}
В mcp_config.json — в актуальных версиях это ~/.config/devin/mcp_config.json, в Windows %APPDATA%\devin\mcp_config.json. У удалённого сервера поле называется serverUrl, а не url:
{
"mcpServers": {
"statuser": {
"serverUrl": "https://mcp.statuser.cloud",
"headers": {
"Authorization": "Bearer ваш_ключ"
}
}
}
}
Подойдёт любой клиент, который подключается к удалённому MCP-серверу по Streamable HTTP и умеет передавать заголовок: укажите адрес и заголовок из таблицы выше. Устаревший транспорт SSE сервер не поддерживает.
Сервер опубликован в официальном реестре MCP как io.github.statuser-cloud/mcp: клиенты, которые берут серверы оттуда, найдут его сами и спросят только ключ.
https://mcp.statuser.cloud/?toolsets=monitors,incidents. Значения те же, что в таблице групп.confirm: true: переменной STATUSER_ALLOW_WRITE, как при локальном запуске, здесь нет. Подробнее — в разделе Защита от случайных изменений.incident_comment_upload_file и поле attached_local_files у incident_comment_create есть только при локальном запуске; вложения по готовым ссылкам работают.429 до конца окна.Запускается через npx -y @statuser/mcp — глобально устанавливать ничего не нужно, Docker тоже не требуется. Нужен Node.js 18.17 или новее. Единственный обязательный параметр — переменная окружения 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-окружением. |
Больше 80 инструментов разбиты на 8 логических групп. По умолчанию включены все; оставить только нужные можно переменной STATUSER_TOOLSETS при локальном запуске или параметром ?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" }
По адресу — то же самое параметром: https://mcp.statuser.cloud/?toolsets=monitors,incidents.
Если в списке указана неизвестная группа, сервер не запустится и подскажет допустимые значения.
API-ключ Statuser даёт полный доступ к аккаунту, поэтому MCP-сервер по умолчанию блокирует все инструменты, которые что-либо создают, изменяют или удаляют. Это защищает от того, чтобы ассистент случайно удалил сервер продакшна или отписал нужного человека от уведомлений.
[!IMPORTANT] Инструменты только для чтения (
*_list,*_get,monitor_get_checks,incident_get_report_pdfи подобные) работают всегда без подтверждения.
При попытке вызвать заблокированный инструмент сервер возвращает осмысленную ошибку с двумя способами разрешить вызов:
"STATUSER_ALLOW_WRITE": "1" в блоке env. Подходит, если вы доверяете ассистенту и заранее очертили его область работы через STATUSER_TOOLSETS.confirm: true к конкретному вызову. Это удобно, когда основная сессия должна оставаться read-only, но один-два изменения всё-таки нужны.При подключении по адресу работает только второй способ: переменной окружения у удалённого сервера нет, каждое изменение подтверждается confirm: true.
Под защитой находятся в том числе:
Инструменты дополнительно помечаются 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 — сработала защита от случайных изменений. Попросите ассистента добавить confirm: true к конкретному вызову; при локальном запуске можно вместо этого установить STATUSER_ALLOW_WRITE=1 в конфиге клиента.
Missing or malformed API key — при подключении по адресу клиент не передал заголовок Authorization: Bearer ваш_ключ или передал его в другом виде. Проверьте, что слово Bearer стоит перед ключом через пробел.
The API key is invalid, expired or revoked — клиент подключается по адресу, но ключ отозван или истёк. Перевыпустите его на statuser.cloud/my/account/api-keys.
Too many requests with an invalid API key from this address — с вашего адреса пришло больше 30 запросов с неверным ключом за 10 минут. Исправьте ключ и подождите столько секунд, сколько указано в заголовке Retry-After.
Клиент не подключается по адресу и получает 405 — он пытается открыть устаревший SSE-поток. Выберите в настройках клиента транспорт Streamable HTTP (часто он называется просто HTTP).
STATUSER_TOOLSETS contains unknown toolsets — опечатка в названии группы. Допустимые значения перечислены в тексте ошибки и в разделе Группы инструментов.
| Компонент | Версия |
|---|---|
| Подключение по адресу | без установки; клиент с Streamable HTTP и заголовками |
| Node.js | 18.17 и новее — только для локального запуска |
| MCP SDK | @modelcontextprotocol/sdk ≥ 1.0 |
| API Statuser | v1 (https://api.statuser.cloud) |
| Клиенты | Claude Code, Cursor, VS Code, Windsurf — по адресу и локально; Claude Desktop, Zed — локально |
Пакет публикуется как ESM. Если ваш MCP-клиент запускает Node более старой версии — обновите его минимум до 18.17 или подключитесь по адресу.
Ошибки и предложения — в issues. Об уязвимостях сообщайте приватно — см. SECURITY.md.
Общие вопросы по 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 25 weekly downloads. As such, @statuser/mcp popularity was classified as not 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.