WatchFor
WatchFor: мониторинг аптайма сайтов, API и MCP-серверов через ассистента
Что умеет
- Смотреть сводку по состоянию всех мониторов
- Диагностировать и подтверждать инциденты
- Создавать и настраивать мониторы для разных типов проверок
- Настраивать алерты и контакты для уведомлений
Какие данные видит
Доступ к аккаунту WatchFor выдаётся через OAuth 2.1 или API-ключ с правами read/write.
Нужен ли аккаунт
Не нужен: сервер работает без входа
WatchFor следит за доступностью сайтов, API, SSL-сертификатов, DNS и cron-задач. MCP-сервер даёт 37 инструментов: сводку по состоянию инфраструктуры, диагностику инцидентов, управление мониторами по 25 типам проверок и настройку алертов в Slack, Discord и Telegram.
Как подключить
Как подключить WatchFor к Claude
Адрес сервера, который нужно вставить в настройках Claude:
https://watchfor--hello-65wl.run.tools
- Откройте Claude (сайт claude.ai или приложение для компьютера).
- Перейдите в Настройки → Коннекторы (в английском интерфейсе: Settings → Connectors).
- Нажмите Добавить пользовательский коннектор (Add custom connector).
- Вставьте адрес сервера, скопированный ниже, в поле URL удалённого MCP-сервера и нажмите Добавить.
- В чате нажмите + → Коннекторы и включите новый коннектор.
Пользовательские коннекторы доступны на тарифах Free, Pro, Max, Team и Enterprise. На Free можно добавить только один. В Team и Enterprise коннектор сначала добавляет владелец организации в Настройки организации → Коннекторы.
Авторизация
После нажатия Добавить откроется окно входа в сервис. Войдите под своим аккаунтом и подтвердите доступ. Пароль Claude не видит.
Как подключить WatchFor к ChatGPT
Адрес сервера, который нужно вставить в настройках ChatGPT:
https://watchfor--hello-65wl.run.tools
- Откройте ChatGPT в браузере (chatgpt.com). Нужен тариф Plus, Pro, Business, Enterprise или Edu.
- Один раз включите режим разработчика: Настройки → Приложения → Дополнительные настройки → Режим разработчика (Settings → Apps → Advanced settings → Developer mode).
- Откройте Настройки → Коннекторы и нажмите Создать (Create).
- Заполните форму: Название (любое), Описание (одна фраза, что делает сервис), URL MCP-сервера (скопируйте ниже).
- В поле Аутентификация выберите OAuth, если сервис требует вход, иначе Нет. Нажмите Создать.
- В новом чате откройте + → Приложения/Коннекторы и включите коннектор.
Название раздела у OpenAI менялось (Connectors → Apps/Plugins). Если пункт называется иначе, ищите «режим разработчика» в настройках. В рабочих пространствах Business/Enterprise администратор должен разрешить пользовательские коннекторы.
Авторизация
При первом использовании ChatGPT откроет окно входа в сервис. Войдите и подтвердите доступ.
Как подключить WatchFor к Cursor
Адрес сервера, который нужно вставить в настройках Cursor:
https://watchfor--hello-65wl.run.tools
Быстрый способ: нажмите кнопку Открыть в Cursor ниже, Cursor сам предложит добавить сервер.
Вручную:
- В Cursor откройте Settings → Cursor Settings → MCP и нажмите Add new global MCP server.
- Вставьте JSON, скопированный ниже, в открывшийся файл
~/.cursor/mcp.json(для одного проекта:.cursor/mcp.jsonв корне проекта). - Сохраните файл. Сервер появится в списке MCP; при необходимости пройдите авторизацию по кнопке рядом с ним.
Авторизация
Если сервис требует вход, рядом с сервером в списке MCP появится кнопка авторизации.
Список инструментов сервера (37)
Технические названия из tools/list. Нужны только разработчикам.
| get_summary | One-call organization snapshot: monitor status counts (up/down/paused/unknown + health score), active incident counts and open maintenance windows. Start here for 'how is my infrastructure right now?'. |
| get_incident_stats | Aggregate incident statistics over a period: totals by severity, MTTR (mean time to resolve), MTBF and the five most unstable monitors. |
| get_plan | Current subscription plan with limits (-1 = unlimited, 0 = feature off) and live usage counts. |
| list_monitors | List monitors (cursor-paginated, slim items: id/name/type/target/status/tags — use get_monitor for full detail). Filter by type, status, tag, or search by name/target with q. |
| get_monitor | Get one monitor by id — includes config and available_metrics (the alert metrics valid for its type). |
| get_monitor_types | Discovery catalog of all 25 monitor types: target format, default alert rules, per-type alert metrics (exact `metric` strings, operators, value types) and config fields. Consult this BEFORE creating monitors or alert rules. |
| create_monitor | Create a monitor (write scope). Location ids come from list_locations; check get_monitor_types for the target format and config fields of the chosen type. Interval is seconds and is validated against the plan's per-type minimum. |
| update_monitor | Update monitor fields (write scope). Send only what changes. In config, a key set to null is removed; omitted alerting-owned keys are preserved. |
| set_monitor_paused | Pause or resume a monitor (write scope). Idempotent. |
| delete_monitor | Permanently delete a monitor (write scope). Removes its scheduler job, alert rules and open incidents. This cannot be undone — confirm with the user before calling unless they explicitly asked for deletion. |
| run_check_now | Dispatch an immediate on-demand check for a monitor (write scope, plan-limited per hour). The result lands in get_monitor_checks within ~a minute. |
| get_monitor_uptime | Uptime percentage and check totals for a monitor over a period (scheduled maintenance excluded). |
| get_monitor_checks | Recent check results for a monitor (status, latency, per-location performance). Pass success=false to fetch only FAILED checks — one-call failure forensics. hours widens the window (up to 720). |
| list_locations | Probe locations available for monitors — use these ids in create_monitor's locations array. |
| list_alert_rules | List a monitor's alert rules (system defaults + custom). Rules define when incidents fire. |
| create_alert_rule | Create an alert rule on a monitor (write scope). `metric` must come from the monitor type's alert metrics (see get_monitor_types or get_monitor.available_metrics); value is always a string. At most one rule per metric per severity — a duplicate returns the existing rule's id, PATCH via the REST API instead. |
| update_alert_rule | Update an alert rule (write scope) — fix a noisy threshold, change severity, or enable/disable. Send only the fields that change; metric/operator/value are validated against the monitor type's catalog. |
| delete_alert_rule | Delete a custom alert rule (write scope). System default rules cannot be deleted (403) — disable them with update_alert_rule enabled=false instead. |
| list_contacts | Alert recipients (people) with their group memberships — answers 'who gets notified?'. Cursor-paginated. |
| get_contact | One contact's detail: name, email, phone, group memberships. |
| create_contact | Create an alert recipient (write scope). Optionally place them straight into notification groups (ids from list_contact_groups). Duplicate email (case-insensitive) returns the existing-contact conflict. |
| update_contact | Update a contact (write scope). Send only what changes; group_ids replaces ALL memberships ([] removes from every group, omitted keeps them). |
| delete_contact | Delete a contact (write scope) — removes them from all notification groups. Irreversible; confirm with the user unless they explicitly asked. |
| list_contact_groups | Notification groups (contact groups) — where alerts are delivered. Use these ids to answer 'where do alerts for this monitor go?' (monitor config's notificationGroupIds) or when wiring alert rules to a specific audience. |
| get_contact_group | One notification group's detail INCLUDING its member list (who exactly gets paged). |
| create_contact_group | Create a notification group (write scope), optionally with initial members (contact ids from list_contacts). |
| update_contact_group | Update a notification group (write scope). contact_ids replaces the FULL member list ([] empties the group, omitted keeps it). |
| delete_contact_group | Delete a notification group (write scope). The org's default group cannot be deleted (conflict). Monitors routed to it stop notifying through it — confirm with the user first. |
| list_incidents | List incidents newest first (cursor-paginated). Filter by status (firing/acknowledged/resolved), severity, a single monitor (monitor_id) and a started_at time range (since/until). Each incident carries the rule that fired (name/metric/operator/value) and duration_seconds. |
| get_incident | Full detail of one incident: what fired, trigger values, confirmations, timeline. |
| acknowledge_incident | Acknowledge a firing incident (write scope) — pauses repeat notifications while someone investigates. |
| resolve_incident | Manually resolve an incident (write scope). Accepted asynchronously — the alerting engine's failure state is reset; if the underlying problem persists the incident will re-fire. |
| list_notifications | Alerting delivery history — every notification attempt with channel, delivery status (sent/failed/silenced), severity, incident and monitor. Answers 'did the Slack alert actually go out?' and 'which deliveries are failing?'. Filter by status/channel_type/monitor_id/incident_id/time. |
| list_activity | The organization's audit trail — who changed what and when (monitors, alert rules, contacts, maintenance, channels; dashboard AND API actions). Great for correlating incidents with recent config changes. Filter by entity_type/entity_id or a time range. |
| list_maintenance_windows | List scheduled maintenance windows, most recent first. |
| create_maintenance_window | Schedule a maintenance window (write scope): alerts are suppressed and downtime excluded from uptime for the covered monitors during the window. Times are ISO 8601; duration in minutes. |
| delete_maintenance_window | Cancel a maintenance window (write scope) — removes future occurrences and lifts any active silences. Use when a window was scheduled with a wrong time or is no longer needed. |