Overview
What is pmcp?
pmcp is a Golang-based Model Context Protocol (MCP) server implementation for Prometheus that enables natural language interactions with Prometheus metrics and queries. Built with Go 1.23+, it provides a type-safe interface fully compatible with the Prometheus HTTP API v1 and works with MCP-compatible clients like Claude Desktop.
How to use pmcp?
Install via Docker, pre-built binary, building from source, or go install. Run with prometheus-mcp-server --prom-addr="http://localhost:9090" for default stdio transport, or specify --transport=http and --mcp-addr for HTTP/SSE. See command line flags: -prom-addr, -transport, -mcp-addr, -help, -version.
Key features of pmcp
- Golang implementation for performance and type safety
- Complete Prometheus HTTP API v1 coverage
- Instant and range query execution
- Metadata, target, rule, and alert discovery
- TSDB administration (snapshots, series deletion, tombstones)
- Multiple transports: HTTP, SSE, and stdio
Use cases of pmcp
- Query Prometheus metrics using natural language through MCP clients
- Monitor Prometheus targets, rules, and alerting configurations
- Retrieve historical metric data over defined time ranges
- Manage TSDB operations like snapshots and series deletion
- Integrate Prometheus with MCP-compatible desktop or web clients
FAQ from pmcp
What are the requirements to run pmcp?
Go 1.23.0 or higher, a running Prometheus server (v2.x), and a compatible MCP client (e.g., Claude Desktop).
What transport options are available?
pmcp supports three transports: stdio (default for desktop clients), http, and sse (SSE is deprecated). Use the --transport flag to choose.
Does pmcp support all Prometheus API endpoints?
Yes, pmcp maintains 100% compatibility with the Prometheus HTTP API v1. It covers queries, metadata, rules, alerts, status, TSDB administration, and management APIs.
Can I use pmcp with Claude Desktop?
Yes, pmcp is designed for seamless communication with MCP-compatible clients like Claude Desktop, typically using the stdio transport when launched as a subprocess.