---
title: Статус-страница, которую читают не только люди
description: У статуса сервиса больше одного читателя — кроме человека его читают дашборды, интеграции и ИИ-ассистенты. JSON, RSS/Atom, бейдж, виджет и MCP — как отдать статус в машиночитаемом виде и зачем это в эпоху агентов.
source: https://pingvera.ru/blog/mashinochitaemaya-status-stranica.html
---
# Статус-страница, которую читают не только люди

Статус-страницу принято рисовать для человека: полоски аптайма, понятные компоненты, баннер инцидента. Всё правильно — человек её главный читатель. Но не единственный. Тот же статус хотят читать **машины**: дашборд внутренней вики, чтобы показать зелёную точку рядом с сайтом; скрипт, который дёргает подрядчика в чат; и — всё чаще — ИИ-ассистент, которому проще спросить «что сейчас лежит?», чем открывать вкладку. И вот для них HTML-страница бесполезна: её нельзя надёжно распарсить, она меняет вёрстку, она про пиксели, а не про факты.

Поэтому у хорошей статус-страницы есть второй, машиночитаемый слой. Разберём, из чего он состоит в Pingvera и зачем каждый кусок нужен.

## JSON: статус как данные

Самое прямое — отдать текущий статус компонентов машинам в виде JSON, а не HTML. Никакого парсинга разметки: запросил — получил структуру «компонент → статус». Это то, из чего собираются все встройки: виджет на сайте клиента, плитка в Grafana, проверка в чужом скрипте.

Смысл в том, что **формат стабилен, а вёрстка — нет**. Дизайн статус-страницы может поменяться завтра, а поле «status» в JSON останется прежним. Интеграции, построенные на HTML-скрейпинге, ломаются от любого редизайна; построенные на JSON — нет.

## RSS/Atom: события, которые сами приходят

Второй формат — лента событий (инциденты открылись, обновились, закрылись; анонсы плановых работ) в виде Atom/RSS. Это скучная, проверенная временем технология, и в этом её сила: ленту умеют читать буквально все — от почтовых агрегаторов до автоматизаций вроде «новое событие → сообщение в рабочий чат». Не нужно писать интеграцию под каждый инструмент: даёшь ссылку на ленту, дальше он сам.

Для студии это удобный способ доставить статус клиента туда, где команда и так работает, без ещё одного дашборда, который никто не открывает.

## Бейдж и виджет: статус там, где его ищут

Иногда отдельная страница избыточна — статус хочется показать _внутри_ чего-то ещё. Для этого есть два лёгких способа встройки:

- **SVG-бейдж** — маленькая картинка текущего статуса, вставляется обычным тегом `<img>` куда угодно: в подвал сайта, в README репозитория, во внутренний портал. Обновляется сама.
- **JS-виджет** — блок со статусом, который встраивается как `iframe` и сам подстраивает высоту под содержимое. Полезно, когда нужно показать не одну точку, а панель компонентов прямо на странице.

Оба формата — про то, чтобы статус жил там, где на него посмотрят, а не только по отдельному адресу.

## MCP: статус прямо в ИИ-ассистенте

Самый новый читатель статуса — языковая модель. Разработчик и так полдня сидит в Claude Code, Cursor или другом ассистенте; спросить «какие сайты сейчас в сбое у моих клиентов?» прямо там естественнее, чем идти кликать по вкладкам. А «какой аптайм был у сайта клиента X за месяц и что падало?» ассистент ещё и сам скомпонует в абзац для письма клиенту.

Чтобы это работало, статус (и мониторинг вокруг него) должен быть доступен модели через стандартный протокол. Pingvera отдаёт его через **MCP** (Model Context Protocol): подключаете MCP-сервер к ассистенту одной командой — и «что сейчас лежит?» в чате превращается в реальный запрос к вашим данным. Важная деталь: доступ **только на чтение** — ассистент видит статусы и события, но ничего не может изменить или запустить. Как это устроено и как подключить — в отдельной статье [«Мониторинг в вашем ИИ-ассистенте»](https://pingvera.ru/blog/monitoring-v-ii-assistente-mcp.html).

А тем моделям, что MCP пока не говорят (GigaChat, YandexGPT), тот же статус доступен через обычный REST с OpenAPI-описанием — им это удобнее для function calling. Одни и те же данные, разные двери.

## Приватность: машиночитаемость не должна быть дырой

Важный нюанс, который легко упустить. Если статус-страница закрыта паролем (внутренние сервисы, закрытый B2B), то бесполезно прятать саму страницу, но оставлять открытыми её RSS, бейдж и виджет — данные утекли бы в обход пароля. Поэтому у приватных страниц **машиночитаемые выходы отключаются автоматически**. Приватный статус остаётся приватным — и это тоже часть правильной конструкции, а не то, о чём приходится помнить руками.

## Зачем это всё именно сейчас

Ещё пару лет назад «машиночитаемый статус» был нишевой опцией для интеграторов. Сегодня всё больше рутины уходит агентам: они собирают отчёты, дёргают уведомления, отвечают на «а сайт работает?» без человека. Такому агенту нужен статус в формате, который он поймёт с первого раза, а не скриншот страницы. Статус-страница, у которой есть JSON, лента, бейдж и MCP, — это статус, готовый к тому, что его читатель всё чаще не человек.

Человеку по-прежнему нужна красивая страница. Просто теперь рядом с ней должен лежать тот же статус — но в виде фактов, а не пикселей.

## Частые вопросы

**Как получить статус сервиса в машиночитаемом виде?**

У статус-страницы Pingvera есть JSON-эндпоинт с текущим статусом компонентов, лента событий Atom/RSS, SVG-бейдж для встройки картинкой и JS-виджет. Этого достаточно, чтобы показывать статус на другом сайте, в вики или собирать его в свои инструменты без парсинга HTML.

**Можно ли спросить статус у ИИ-ассистента?**

Да. Pingvera предоставляет MCP-сервер: подключив его к Claude, Cursor или другому MCP-клиенту, можно прямо в чате спросить «какие сайты сейчас в сбое?» — ассистент прочитает мониторинг (только чтение) и ответит человеческим языком.

**Что с приватными статус-страницами?**

У страниц, закрытых паролем, машиночитаемые выходы (RSS, бейдж, виджет) отключаются автоматически — иначе статус утекал бы в обход пароля. Приватный статус остаётся приватным.
