MCP server for AI-driven Alertmanager — alert triage, silences, routing, and governance
275
A comprehensive Model Context Protocol (MCP) server that gives AI assistants the power to triage alerts, manage silences, inspect routing, and govern Alertmanager operations — from on-call summarization to notification pipeline testing.
backend_id on every call — no hidden defaults.This Docker image runs an MCP server that connects to your Alertmanager instance(s). AI assistants (Claude, Cline, Cursor, or any MCP client) connect to the server over HTTP, SSE, or stdio.
docker run --rm -it \
-p 8769:8769 \
-e ALERTMANAGER_BASE_URL=http://host.docker.internal:9093 \
-e MCP_TRANSPORT=http \
talkopsai/alertmanager-mcp-server:latest
The server is now listening on http://localhost:8769/mcp.
Then configure your MCP client to connect:
{
"mcpServers": {
"alertmanager": {
"url": "http://localhost:8769/mcp",
"description": "MCP Server for Alertmanager alert triage, silence management, and routing"
}
}
}
Connect to multiple Alertmanager backends simultaneously:
docker run --rm -it \
-p 8769:8769 \
-e MCP_TRANSPORT=http \
-e ALERTMANAGER_BACKENDS='[
{"id": "prod", "base_url": "https://alertmanager-prod.example.com"},
{"id": "staging", "base_url": "https://alertmanager-staging.example.com"}
]' \
talkopsai/alertmanager-mcp-server:latest
To use this image over stdio transport directly inside Claude Desktop:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"alertmanager-mcp-server": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e", "ALERTMANAGER_BASE_URL=http://host.docker.internal:9093",
"-e", "MCP_TRANSPORT=stdio",
"-e", "MCP_LOG_LEVEL=INFO",
"talkopsai/alertmanager-mcp-server:latest"
]
}
}
}
| Variable | Default | Description |
|---|---|---|
MCP_TRANSPORT | http | Transport protocol: http, sse, streamable-http, or stdio |
MCP_HOST | 0.0.0.0 | Host interface to bind to |
MCP_PORT | 8769 | Port for HTTP server |
MCP_PATH | /mcp | MCP endpoint path |
MCP_LOG_LEVEL | INFO | Log level: DEBUG, INFO, WARNING, ERROR |
MCP_LOG_FORMAT | json | Log format: json or text |
| Variable | Default | Description |
|---|---|---|
ALERTMANAGER_BASE_URL | http://localhost:9093 | Alertmanager HTTP API base URL |
ALERTMANAGER_BACKEND_ID | default | Backend identifier used in tool calls |
ALERTMANAGER_DISPLAY_NAME | (empty) | Human-readable backend name |
ALERTMANAGER_AUTH_HEADER | (empty) | Authorization header (e.g. Bearer <token>) |
ALERTMANAGER_VERIFY_SSL | true | Verify SSL certificates |
ALERTMANAGER_TIMEOUT | 30 | HTTP timeout for Alertmanager API calls (seconds) |
ALERTMANAGER_BACKENDS | (empty) | JSON array for multi-backend config (overrides single-backend vars) |
| Variable | Default | Description |
|---|---|---|
AM_MAX_SILENCE_MINUTES | 1440 | Maximum silence duration in minutes (24h default) |
AM_SILENCE_WARNING_THRESHOLD | 50 | Warn if a silence would affect ≥ N alerts |
latest — Latest stable release0.1.0 — Initial release| Tool | Description |
|---|---|
am_list_alerts | List alerts with label/state filters and pagination |
am_list_alert_groups | List alert groups as computed by Alertmanager |
am_push_test_alert | Fire a synthetic test alert to verify notification integrations |
| Tool | Description |
|---|---|
am_list_silences | List silences with optional state filter and pagination |
am_create_silence | Create a silence with duplicate detection |
am_update_silence | Update an existing silence (extend duration or modify end time) |
am_expire_silence | Expire a silence to reactivate alert notifications |
| Tool | Description |
|---|---|
am_preview_silence | Preview blast radius of a silence before creating it |
am_silence_alert | Create a narrowly-scoped silence for a specific alert |
| Tool | Description |
|---|---|
am_explain_routing | Simulate routing for a label set with human-readable explanation |
am_audit_default_route | Show alerts hitting the default route (misconfigurations) |
| Tool | Description |
|---|---|
am_list_recent_changes | List recent silence changes within a time window |
am_validate_silence_policy | Validate a proposed silence against organizational policy |
| Tool | Description |
|---|---|
am_summarize_oncall | Generate a human-readable on-call summary of active alerts |
| Resource | Description |
|---|---|
am://system/backends | All backends with health status — start here |
am://system/status | Version, uptime, cluster info, and config summary |
am://system/receivers | Configured receivers (Slack, PagerDuty, email, webhook) |
am://system/config | Routing tree and inhibition rules (secrets redacted) |
am://system/audit-log | Recent MCP-initiated operations |
am://alerts/active | Snapshot of active alerts |
am://alerts/groups | Alert groups as computed by Alertmanager |
am://silences/active | Snapshot of active silences |
am://best-practices | Alerting best practices |
am://onboarding-guide | Alert onboarding guide |
am_preview_silence before creating silences in production.am_push_test_alert will trigger downstream integrations (Slack, PagerDuty, email).services:
alertmanager-mcp-server:
image: talkopsai/alertmanager-mcp-server:latest
ports:
- "8769:8769"
environment:
- ALERTMANAGER_BASE_URL=http://alertmanager:9093
- MCP_TRANSPORT=http
- MCP_LOG_LEVEL=INFO
depends_on:
- alertmanager
alertmanager:
image: prom/alertmanager:latest
ports:
- "9093:9093"
volumes:
- ./alertmanager.yml:/etc/alertmanager/alertmanager.yml
If you find this MCP server useful, consider leaving a ⭐ on the GitHub repository!
Content type
Image
Digest
sha256:1de1c8576…
Size
72.2 MB
Last updated
4 months ago
docker pull talkopsai/alertmanager-mcp-server