Skip to main content
Glama
pyrrhuladev

@tickwatch/mcp

by pyrrhuladev
README.md
> **Это зеркало.** Исходники живут в приватном монорепозитории
> Tickwatch, в `apps/mcp`, и приезжают сюда автоматически.
> История здесь перезаписывается при каждой выкладке — присланный
> сюда PR или коммит пропадёт. Вопросы и предложения:
> <alex@pyrrhula.dev>.

# @tickwatch/mcp

MCP-сервер [Tickwatch](https://tickwatch.dev) — мониторинг cron-задач из ассистента.

## Зачем

Два сценария, ради которых он сделан:

- **Разбор инцидента.** «Почему ночной бэкап упал?» — ассистент достаёт монитор,
  последние запуски и хвост вывода задачи, не заставляя открывать панель.
- **Заведение мониторов.** «Я добавил cron-задачу, поставь на неё мониторинг» —
  ассистент создаёт монитор с тем же расписанием и возвращает готовую строку
  с `curl`.

## Подключение

Нужен ключ API из настроек воркспейса. Для разбора инцидентов достаточно ключа
только на чтение: инструменты, меняющие состояние, при таком ключе не появятся.

```json
{
  "mcpServers": {
    "tickwatch": {
      "command": "npx",
      "args": ["-y", "@tickwatch/mcp"],
      "env": { "TICKWATCH_TOKEN": "twk_…" }
    }
  }
}
```

`TICKWATCH_API_URL` можно переопределить — например, чтобы указать на локальный
экземпляр при разработке. По умолчанию `https://tickwatch.dev/api/v1`.

## Инструменты

| Инструмент       | Право | Что делает                                           |
| ---------------- | ----- | ---------------------------------------------------- |
| `list_monitors`  | read  | Мониторы с текущим состоянием                        |
| `get_monitor`    | read  | Один монитор с настройками и адресом пинга           |
| `get_runs`       | read  | Последние запуски: код возврата, длительность, вывод |
| `list_incidents` | read  | Инциденты, в том числе только открытые               |
| `get_workspace`  | read  | Тариф, права ключа, использование                    |
| `create_monitor` | write | Заводит монитор и отдаёт адрес пинга                 |
| `pause_monitor`  | write | Пауза и возврат в работу                             |
| `ack_incident`   | write | Отметка «уже разбираемся»                            |

## О чём стоит знать

`get_runs` передаёт модели сохранённый вывод ваших задач — это stderr с вашего
сервера. Там попадаются пути, имена баз и иногда то, чему в переписке
с ассистентом не место.

Ключ на запись даёт ассистенту право удалять мониторы. Начинайте с ключа только
на чтение.

Сервер работает поверх публичного REST API и не имеет собственного доступа
к данным: всё, что он может, ограничено правами ключа. Отзыв ключа в панели
немедленно останавливает и его.