Vigilo
Push-notification channel used to alert the user when a monitor goes down or an incident is opened, including the agent's structured incident report.
Runs Vigilo's AI incident-investigation agent entirely locally. The agent is configured with an Ollama preset (e.g. llama3.2) and uses it to re-run checks, probe related endpoints, inspect monitor history and write structured incident reports with severity, probable cause and recommended next steps.
Serves as the LLM backend for the incident-investigation agent through any OpenAI-compatible API (OpenAI, Groq, OpenRouter, LM Studio, vLLM) by setting a base URL and API key, so the agent can analyze outages and produce structured incident reports.
Notification channel used to ping the user the moment a monitor goes down or an incident is opened, delivering the agent's incident report.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Vigilois anything down right now?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
⚡ Vigilo
Your self-hosted AI on-call engineer. Uptime monitoring that doesn't just tell you something broke — it investigates why and reports back, using your own local LLM.
Monitoring · AI incident reports · MCP-native · Public status page · 100% self-hosted
Quick start · How the agent works · MCP · Screenshots

🔥 Why Vigilo
PagerDuty charges per user. StatusPage costs $99/mo. n8n is a behemoth for a simple "watch my stuff" job. And when your API dies at 3am, none of them tell you why.
Vigilo is one small self-hosted service that:
📡 Monitors HTTP(s) endpoints and TCP ports on a schedule, with retries, keyword checks and expected status codes
🚨 Opens incidents and pings you (webhook / Telegram / ntfy) the moment something goes down
🤖 Investigates with an AI agent — it re-runs checks, probes related endpoints, inspects history, checks the blast radius across your other monitors, then writes a structured report: severity, probable cause, recommended next steps
🧠 Runs on your local LLM (Ollama, LM Studio) or any OpenAI-compatible API — no data ever leaves your machine if you don't want it to
🔌 Is MCP-native — Vigilo exposes its own MCP server (
/mcp), so Claude (or any MCP client) can ask "is anything down?"; and it can consume remote MCP servers as extra tools for the agent🌍 Publishes a status page at
/status— the $99/mo SaaS, self-hosted and free
Related MCP server: uptimepage
🚀 Quick start
No build step. No npm install. Zero dependencies.
git clone https://github.com/temmeik/vigilo.git
cd vigilo
node server.js
# ➜ Dashboard: http://localhost:4242
# ➜ Status page: http://localhost:4242/statusor with Docker:
docker compose up -d # set ADMIN_PASSWORD in .env first (see .env.example)First launch asks you to create an admin password. Then hit Load demo monitors to see it alive in 10 seconds.
Turn on the AI (local, 2 minutes)
# 1. Install Ollama → https://ollama.com
ollama pull llama3.2
# 2. In Vigilo: Settings → AI Agent → preset "Ollama (local)" → Test connection → SaveAny OpenAI-compatible API works too: OpenAI, Groq, OpenRouter, LM Studio, vLLM — just paste the base URL and key.
🤖 How the agent works
When a monitor goes down, the agent gets a tool loop (max N iterations, you decide):
Tool | What it does |
| Probe the failing URL, health endpoints, dependencies |
| See when degradation started and how it trended |
| Check the blast radius — is the whole host down or one service? |
| Force a fresh check to confirm |
| Deliver the structured verdict |
your MCP tools | Any tool from MCP servers you connect in Settings |
The report lands in the incident timeline and in your notifications:

🔌 Plug it into Claude (MCP)
Vigilo is an MCP server. Add it to your MCP client config:
{
"mcpServers": {
"vigilo": {
"url": "http://localhost:4242/mcp",
"headers": { "Authorization": "Bearer <your-api-key>" }
}
}
}Then just ask Claude: "anything down right now?" — it will call get_status_summary and get_incidents. Tools exposed: list_monitors, get_monitor, get_incidents, trigger_check, get_status_summary.
(API key is in Settings → API & MCP access.)
🌍 Status page

Toggle any monitor to public and it appears on /status with a 90-day uptime bar, uptime percentages and incident history. No login required. Link it in your app's footer.
📸 Screenshots
Dashboard | Agent settings |
|
|
🧱 Architecture
Zero npm dependencies — the entire backend is plain Node.js (≥18): scheduler, check engine, agent loop, MCP client and server, SSE hub, auth (scrypt + session cookies), JSON storage with atomic flushes
One process —
node server.jsis everything; data lives in./data/vigilo.jsonLive UI — hand-rolled vanilla-JS SPA, Server-Sent Events push every state change instantly, offline-friendly (no CDN, no fonts, no tracking)
State machine — heartbeat → consecutive failures → incident → agent escalation → auto-resolve on recovery
🗺️ Roadmap
SQLite storage backend (optional, for big fleets)
DNS / ICMP / Docker container monitors
Agent "suggested fix" actions (restart container via MCP tool)
Multi-user + read-only team seats
Status page custom domains & theming
🛠️ Development
node --watch server.js # auto-restart on changes
npm run mock-llm # fake OpenAI-compatible LLM on :4243 for testing the agent
npm test # 28-assertion e2e suite (needs server + mock-llm running)⚖️ License
MIT — do whatever you want, a star is appreciated ⭐
This server cannot be deployed
Maintenance
Related MCP Connectors
- sentinelOAuthio.rootstuff
Uptime, SSL, DNS and domain monitoring you can talk to from Claude or any MCP client.
Monitor websites, APIs, and servers: create monitors, triage incidents, and query uptime stats.
Status pages and uptime monitoring: read status, monitors and incidents; open incidents.
Self-hostable uptime monitoring: create checks, read incidents, manage status pages.
Related MCP Servers
- FlicenseNot gradedqualityCmaintenanceMCP server for managing self-hosted Uptime Kuma monitors and querying uptime statistics from Claude.-

uptimepageofficial
AlicenseNot gradedqualityAmaintenanceMCP server for Uptimepage uptime monitoring. An LLM client can read your monitors and incidents, run a check on demand, and post incident updates. Writes need an OAuth login and a scoped token, and each one is logged.41AGPL 3.0- FlicenseNot gradedqualityCmaintenanceUptime, SSL, DNS and domain monitoring you can talk to: check, create and manage monitors for all your client sites from Claude, ChatGPT, or any MCP client.1-
- AlicenseAqualityBmaintenanceConnects MCP-capable AI clients to a monitoring API to inspect cron and recurring-task checks, with opt-in mutations for pings, integrations, and check changes.31MIT
