Prometheus Alertmanager MCP is a Model Context Protocol (MCP) server for Prometheus Alertmanager. It enables AI assistants and tools to query and manage Alertmanager resources programmatically and securely.
- Query Alertmanager status, alerts, silences, receivers, and alert groups
 - Create, update, and delete silences
 - Create new alerts
 - Authentication support (Basic auth via environment variables)
 - Docker containerization support
 
- Python 3.12+
 - uv (for fast dependency management).
 - Docker (optional, for containerized deployment).
 - Ensure your Prometheus Alertmanager server is accessible from the environment where you'll run this MCP server.
 
To install Prometheus Alertmanager MCP Server for Claude Desktop automatically via Smithery:
npx -y @smithery/cli install @ntk148v/alertmanager-mcp-server --client claude- Clone the repository:
 
# Clone the repository
$ git clone https://github.com/ntk148v/alertmanager-mcp-server.git- Configure the environment variables for your Prometheus server, either through a .env file or system environment variables:
 
# Set environment variables (see .env.sample)
ALERTMANAGER_URL=http://your-alertmanager:9093
ALERTMANAGER_USERNAME=your_username  # optional
ALERTMANAGER_PASSWORD=your_password  # optional- Add the server configuration to your client configuration file. For example, for Claude Desktop:
 
{
  "mcpServers": {
    "alertmanager": {
      "command": "uv",
      "args": [
        "--directory",
        "<full path to alertmanager-mcp-server directory>",
        "run",
        "src/alertmanager_mcp_server/server.py"
      ],
      "env": {
        "ALERTMANAGER_URL": "http://your-alertmanager:9093s",
        "ALERTMANAGER_USERNAME": "your_username",
        "ALERTMANAGER_PASSWORD": "your_password"
      }
    }
  }
}- Or install it using make command:
 
$ make install- Restart Claude Desktop to load new configuration.
 - You can now ask Claude to interact with Alertmanager using natual language:
- "Show me current alerts"
 - "Filter alerts related to CPU issues"
 - "Get details for this alert"
 - "Create a silence for this alert for the next 2 hours"
 
 
- Run it with pre-built image (or you can build it yourself):
 
$ docker run -e ALERTMANAGER_URL=http://your-alertmanager:9093 \
    -e ALERTMANAGER_USERNAME=your_username \
    -e ALERTMANAGER_PASSWORD=your_password \
    -p 8000:8000 ghcr.io/ntk148v/alertmanager-mcp-server- Running with Docker in Claude Desktop:
 
{
  "mcpServers": {
    "alertmanager": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "-e", "ALERTMANAGER_URL",
        "-e", "ALERTMANAGER_USERNAME",
        "-e", "ALERTMANAGER_PASSWORD",
        "ghcr.io/ntk148v/alertmanager-mcp-server:latest"
      ],
      "env": {
        "ALERTMANAGER_URL": "http://your-alertmanager:9093s",
        "ALERTMANAGER_USERNAME": "your_username",
        "ALERTMANAGER_PASSWORD": "your_password"
      }
    }
  }
}This configuration passes the environment variables from Claude Desktop to the Docker container by using the -e flag with just the variable name, and providing the actual values in the env object.
The MCP server exposes tools for querying and managing Alertmanager, following its API v2:
- Get status: 
get_status() - List alerts: 
get_alerts() - List silences: 
get_silences() - Create silence: 
post_silence(silence_dict) - Delete silence: 
delete_silence(silence_id) - List receivers: 
get_receivers() - List alert groups: 
get_alert_groups() 
See src/alertmanager_mcp_server/server.py for full API details.
Contributions are welcome! Please open an issue or submit a pull request if you have any suggestions or improvements.
This project uses uv to manage dependencies. Install uv following the instructions for your platform.
# Clone the repository
$ git clone https://github.com/ntk148v/alertmanager-mcp-server.git
$ cd alertmanager-mcp-server
$ make setup
# Run test
$ make test
# Run in development mode
$ mcp dev
$ TRANSPORT_MODE=sse mcp dev
# Install in Claude Desktop
$ make install
