prometheus-mcp-server

prometheus-mcp-server

2

The prometheus-mcp-server is a TypeScript-based Model Context Protocol server designed to enable interaction with Prometheus metrics and data. It facilitates integration with Claude using various PromQL queries and provides essential functions for metadata access and status monitoring.

prometheus-mcp-server

Prometheus MCP Server

A Model Context Protocol (MCP) server for interacting with Prometheus metrics and data.

This is a TypeScript-based MCP server that implements a Prometheus API interface. It provides a bridge between Claude and your Prometheus server through the Model Context Protocol (MCP).

Features

  • Instant Queries: Execute PromQL queries at a specific time
  • Range Queries: Execute PromQL queries over a time period
  • Series Discovery: Find series by label matchers
  • Label Exploration: Get label names and values
  • Metadata Access: Get metadata for metrics
  • Target Information: Get information about scrape targets
  • Alerts & Rules: Get information about alerts and recording rules
  • Status Information: Get Prometheus server status information

Installation

# Install globally
npm install -g prometheus-mcp-server

# Or install locally
npm install prometheus-mcp-server

# Or use npx to run without installation
npx prometheus-mcp-server

Usage with Claude

To use with Claude Desktop, add the server config:

On MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json On Windows: %APPDATA%/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "prometheus-mcp-server": {
      "command": "/path/to/prometheus-mcp-server/build/index.js",
      "env": {
        "PROMETHEUS_HOST": "http://your-prometheus-instance:9090"
      }
    }
  }
}

Using with npx

You can also use npx in your Claude Desktop configuration:

{
  "mcpServers": {
    "prometheus-mcp-server": {
      "command": "npx prometheus-mcp-server",
      "env": {
        "PROMETHEUS_HOST": "http://your-prometheus-instance:9090"
      }
    }
  }
}

Configuration

The server requires the following environment variable:

  • PROMETHEUS_HOST: The base URL of your Prometheus instance (default: http://localhost:9090)

Available Functions

The server provides the following functions:

  • mcp__instant_query: Execute an instant PromQL query
  • mcp__range_query: Execute a range PromQL query over a time period
  • mcp__get_series: Find series by label matchers
  • mcp__get_label_values: Get values for a specific label
  • mcp__get_metadata: Get metadata for metrics
  • mcp__get_targets: Get information about scrape targets
  • mcp__get_alerts: Get information about alerts
  • mcp__get_rules: Get information about recording and alerting rules
  • mcp__get_status: Get status information about the Prometheus server

Development

# Install dependencies
npm install

# Build the project
npm run build

# Start the server
npm start

# Debug
npm run dev:debug

Debugging

Since MCP servers communicate over stdio, debugging can be challenging. You can use the following npm scripts for debugging:

# Inspect mode
npm run inspect

# Inspect with breakpoints
npm run inspect-debug

License

ISC

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.