Официальный MCP-сервер Statuser
개요
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. - Список серверов, их статусы, графики проверок и heartbeat-событий, история изменений DNS, добавление и редактирование серверов, постановка на паузу и тестовые уведомления. - Подробная карточка с диагностикой и таймингами по каждой локации, AI-саммари, PDF-отчёт, комментарии с вложениями.
README
MCP-сервер Statuser
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.
Что внутри
- Мониторинг сервисов. Список серверов, их статусы, графики проверок и heartbeat-событий, история изменений DNS, добавление и редактирование серверов, постановка на паузу и тестовые уведомления.
- Инциденты. Подробная карточка с диагностикой и таймингами по каждой локации, AI-саммари, PDF-отчёт, комментарии с вложениями.
- Страницы статуса. Создание и настройка, управление группами и серверами, публикация инцидент-отчётов и плановых работ с таймлайном обновлений.
- Уведомления. Правила нотификаций по типам подписок (email, Telegram, MAX и рабочие чаты — Mattermost, Rocket.Chat, Пачка, Discord, Slack), управление вебхуками, добавление и подтверждение email-каналов.
- Аккаунт и проекты. Профиль, тариф и фичи, режим отпуска, 2FA, привязки Telegram и MAX, история действий, проекты.
[!NOTE] MCP-сервер обращается к API от имени аккаунта-владельца ключа. Все ограничения тарифа сохраняются — например, AI-саммари и кастомный домен будут доступны только если они включены в вашем плане. Сверяйтесь с инструментом
current_plan_get.
Содержание
- Быстрый старт
- Подключение по адресу
- Локальный запуск через npx
- Настройки
- Группы инструментов
- Защита от случайных изменений
- Инструменты
- Примеры запросов к ассистенту
- Что делать при ошибках
- Совместимость
- Лицензия
Быстрый старт
- Создайте API-ключ в панели управления Statuser.
- Добавьте сервер в MCP-клиент. Проще всего — по адресу
https://mcp.statuser.cloudс заголовкомAuthorization: Bearer ваш_ключ; готовые конфиги — ниже. - Перезапустите клиент. Инструменты появятся под именем
statuser.
Если клиент подключает только локальные серверы — например, Claude Desktop, — используйте локальный запуск через npx.
Подключение по адресу
| Параметр | Значение |
|---|---|
| Адрес | https://mcp.statuser.cloud |
| Транспорт | Streamable HTTP |
| Авторизация | заголовок Authorization: Bearer ваш_ключ |
Claude Code
claude mcp add --transport http statuser https://mcp.statuser.cloud --header "Authorization: Bearer ваш_ключ"
С флагом --scope user сервер будет доступен во всех проектах, с --scope project — запишется в .mcp.json проекта. Файл с ключом не коммитьте в репозиторий.
Cursor
В ~/.cursor/mcp.json — для всех проектов, или в .cursor/mcp.json — для одного:
{
"mcpServers": {
"statuser": {
"url": "https://mcp.statuser.cloud",
"headers": {
"Authorization": "Bearer ваш_ключ"
}
}
}
}
VS Code
В .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}"
}
}
}
}
Windsurf (Devin Desktop)
В 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: клиенты, которые берут серверы оттуда, найдут его сами и спросят только ключ.
Что стоит знать
- Клиенты, которые умеют только OAuth, пока не подключатся. ChatGPT и пользовательские коннекторы Claude Desktop и claude.ai не передают собственный API-ключ в заголовке. Для Claude Desktop есть локальный запуск.
- Группы инструментов выбираются параметром в адресе:
https://mcp.statuser.cloud/?toolsets=monitors,incidents. Значения те же, что в таблице групп. - Изменения данных подтверждаются в каждом вызове аргументом
confirm: true: переменнойSTATUSER_ALLOW_WRITE, как при локальном запуске, здесь нет. Подробнее — в разделе Защита от случайных изменений. - Локальные файлы недоступны: сервер работает не на вашей машине.
incident_comment_upload_fileи полеattached_local_filesуincident_comment_createесть только при локальном запуске; вложения по готовым ссылкам работают. - Лимиты те же, что у API, но считаются на ключ, а не на адрес. После 30 запросов с неверным ключом за 10 минут адрес получает
429до конца окна. - Ключ уходит на наш сервер так же, как при обращении к API напрямую. MCP-сервер его не сохраняет и не пишет в логи; действия видны в истории действий аккаунта от имени ключа.
Локальный запуск через npx
Запускается через 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 и других клиентов автоустановки пока нет — там нужен ручной конфиг ниже.
Claude Desktop
Откройте Настройки → Developer → Edit Config и добавьте в claude_desktop_config.json:
{
"mcpServers": {
"statuser": {
"command": "npx",
"args": ["-y", "@statuser/mcp"],
"env": {
"STATUSER_API_KEY": "ваш_ключ"
}
}
}
}
После сохранения полностью закройте Claude Desktop (Cmd/Ctrl + Q) и откройте заново — простого закрытия окна недостаточно.
Claude Code
В корне проекта создайте .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
Самый быстрый путь — кнопка «Установить в Cursor» выше. Если нужно вручную, Настройки → MCP → Add new server:
{
"mcpServers": {
"statuser": {
"command": "npx",
"args": ["-y", "@statuser/mcp"],
"env": {
"STATUSER_API_KEY": "ваш_ключ"
}
}
}
}
VS Code (GitHub Copilot Chat и другие MCP-расширения)
Самый быстрый путь — кнопка «Установить в VS Code» выше. Если нужно вручную, Настройки → MCP servers → Add:
{
"statuser": {
"command": "npx",
"args": ["-y", "@statuser/mcp"],
"env": {
"STATUSER_API_KEY": "ваш_ключ"
}
}
}
Настройки
При локальном запуске параметры задаются переменными окружения в блоке 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= в адресе.
Зачем это бывает удобно:
- меньше инструментов в контексте — ассистент точнее выбирает подходящий;
- меньше токенов в системном промпте клиента;
- если ключ имеет доступ ко всему API, а вам нужны только серверы — можно показать ассистенту только их.
| Группа | Что включает | Примеры инструментов |
|---|---|---|
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.
Под защитой находятся в том числе:
- удаление серверов, страниц статуса, комментариев, отчётов и плановых работ;
- удаление вебхуков и email-каналов;
- постановка серверов на паузу и снятие;
- публикация и скрытие страниц статуса;
- включение режима отпуска;
- отправка тестовых уведомлений.
Инструменты дополнительно помечаются MCP-аннотациями destructiveHint и readOnlyHint. Клиенты, которые их читают, добавляют поверх нашего собственный экран подтверждения.
Инструменты
Полный список с описанием параметров MCP-клиент покажет автоматически при подключении. Ниже — обзор по группам. Условные обозначения: ✏️ — инструмент изменяет данные, ⚠️ — действие необратимо.
Примеры запросов к ассистенту
Несколько фраз, которые ассистент сможет выполнить сразу после установки:
- «Покажи все серверы, которые сейчас не отвечают.»
- «Заведи сервер
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, подпиши его секретом….» - «Включи режим отпуска до понедельника, 9 утра.»
Что делать при ошибках
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 или на [email protected].
Лицензия
MIT — см. LICENSE.
설치
npx -y @statuser/mcp설정
{
"mcpServers": {
"statuser": {
"url": "https://mcp.statuser.cloud",
"headers": {
"Authorization": "Bearer ваш_ключ"
}
}
}
}