Vigil's MCP server
Vigil runs a Model Context Protocol server at https://puzaricloud.in/mcp (Streamable HTTP). Connect it from Claude, ChatGPT, Cursor, VS Code or Zed by signing in to Vigil (OAuth), or with an API key, and your assistant can read incidents, monitors, servers, logs, error issues with stack traces, slow queries and traces, and acknowledge incidents, without leaving the editor.
Connect with sign-in (Claude, ChatGPT, Cursor)
- Claude (claude.ai, Desktop, mobile): Settings → Connectors → Add custom connector, and paste
https://puzaricloud.in/mcp. - Claude Code:
claude mcp add --transport http vigil https://puzaricloud.in/mcp, then run/mcpto sign in. - ChatGPT, Cursor, VS Code: add a remote MCP server with the same URL.
- Your browser opens Vigil: sign in (password, Google or GitHub) and choose what the app may do. Read access is always included; tick "Allow acknowledging incidents" if you want it to acknowledge.
The app only sees what your role can see and can't change monitors, channels, billing or your team. Access tokens last an hour and refresh automatically; disconnect any app under Settings → API keys → Connected AI apps.
Or use an API key
Create a key in Settings → API keys (read-only is enough unless the assistant should acknowledge incidents) and add it to your client's configuration:
{"mcpServers": {"vigil": {"url": "https://puzaricloud.in/mcp",
"headers": {"Authorization": "Bearer vgk_your_key"}}}}
Self-hosted edition: use your own instance's URL instead of puzaricloud.in. The server speaks JSON-RPC 2.0 over Streamable HTTP (stateless, no SSE) and supports initialize, tools/list and tools/call; OAuth discovery lives at /.well-known/oauth-protected-resource/mcp. Data handling: privacy policy.
Tools (14)
| Tool | What it returns | Access |
|---|---|---|
| vigil_status | Workspace summary: monitors up/down, servers online/offline, open incidents, error events in the last hour. | read |
| list_incidents | Incidents (open by default) with id, title, kind, started, acknowledged, cause. | read |
| get_incident | One incident with its cause, timeline and related monitor/server. | read |
| acknowledge_incident | Acknowledge an incident (pauses repeat alerts and escalation). Requires a read/write key. | write |
| list_monitors | Monitors with state, last error, latency; optional name filter. | read |
| list_servers | Servers with online state, CPU/memory/disk, agent version, tags. | read |
| server_details | Latest sample of one server: host facts, CPU/mem/disk/load, top processes, failed services, pending updates, listening ports, docker containers. | read |
| search_logs | Search shipped log lines (full text) across servers for the last N hours. | read |
| list_errors | Application error issues (Sentry-compatible projects): title, count, users, first/last seen, status. | read |
| get_error_issue | One error issue with the latest event: exception, stack frames with source context, breadcrumbs, request, user, tags, release. | read |
| slow_queries | Slowest database queries on a server (normalised), sorted by impact, last 24 h. | read |
| recent_traces | Stored slow/failed traces on a server with their issues (N+1, slow query); use trace_id to fetch spans. | read |
| get_trace | A stored trace's spans (name, kind, start, duration, attributes) and issues. | read |
| timeline | What happened around a moment (±minutes): incidents, failed checks, host peaks, error events, log error counts, deploys. | read |
Things to ask
- "What's broken right now?" (vigil_status, list_incidents)
- "Why did checkout get slow after the last deploy?" (recent_traces, slow_queries, timeline)
- "Show me the stack trace of the newest error in checkout-api." (list_errors, get_error_issue)
- "Search the logs on web-01 for payment_failed in the last 2 hours." (search_logs)