Watch Tower
Pluggable notification hub for AI agents and apps. One MCP server + one REST API, fan out to multiple channels.
Channels
| Channel | Required env | Notes |
|---|---|---|
telegram | TELEGRAM_BOT_TOKEN, TELEGRAM_CHAT_ID | Bot UI + native file uploads |
bale | BALE_BOT_TOKEN, BALE_CHAT_ID | Telegram-compatible BotAPI |
pushover | PUSHOVER_APP_TOKEN, PUSHOVER_USER_KEY | Priority maps from level |
gotify | GOTIFY_URL, GOTIFY_APP_TOKEN | Files sent as inline text fallback |
ntfy | NTFY_TOPIC (+ optional URL/auth) | Native Title / Priority / Tags |
Quick start
git clone https://github.com/MMTE/watch-tower.git
cd watch-tower
cp .env.example .env # fill in only the channels you want
npm install
npm start # REST API + Telegram bot
npm run mcp # MCP server over stdio (for AI agents)
Surfaces
- REST API —
POST /api/send,/alert,/log,/file. API-key auth. - MCP server (stdio) — stdio transport for local AI agent use. Tools:
send_message,send_alert,send_log,send_file,list_channels. - MCP server (HTTP) —
POST /mcpStreamable HTTP transport. Same tools, remote-accessible. API-key auth via header, query param, or Bearer token. - Status page —
GET /status— public HTML page showing version, uptime, memory, and per-channel state. No auth required. - Telegram bot —
/start,/ping,/status,/channels,/help.