这是一个用Go语言编写的Prometheus Model Context Protocol (MCP)服务器。该服务器使AI助手能够通过标准化的MCP接口查询和分析Prometheus指标。
# 克隆仓库
git clone https://github.com/cgoolsby/prometheus-mcp.git
cd prometheus-mcp
# 构建项目
go build -o prometheus-mcp ./cmd/server
# 运行服务器
./prometheus-mcp
服务器可以通过环境变量进行配置:
PROMETHEUS_HOST:你的Prometheus实例的基本URL(默认:http://localhost:9090)此MCP服务器可以与支持Model Context Protocol的AI助手一起使用,例如Claude。
~/Library/Application Support/Claude/claude_desktop_config.json{
"mcpServers": {
"prometheus-mcp-server": {
"command": "/path/to/prometheus-mcp",
"env": {
"PROMETHEUS_HOST": "http://your-prometheus-instance:9090"
}
}
}
}
服务器提供以下功能:
mcp__instant_query:执行即时PromQL查询mcp__range_query:在一段时间内执行范围PromQL查询mcp__get_series:通过标签匹配器查找系列mcp__get_label_values:获取特定标签的值mcp__get_metadata:获取指标元数据mcp__get_targets:获取抓取目标信息m_cpc__get_alerts`:获取警报信息mcp__get_rules:获取记录和警报规则的信息mcp__get_status:获取Prometheus服务器的状态信息# 运行测试
go test ./...
# 构建项目
go build -o prometheus-mcp ./cmd/server
# 运行端到端测试
./scripts/e2e_test.sh
# 或者
make e2e-test
此仓库包含提交前钩子以确保代码质量。要启用它们,请运行:
git config core.hooksPath .githooks
您可以在提交前钩子中跳过端到端测试,设置一个环境变量:
SKIP_E2E_TESTS=true git commit -m "您的提交消息"
有关如何使用Prometheus MCP服务器与本地Prometheus实例和Ollama集成LLM的详细教程,请参阅docs/tutorial.md文件。
MIT
├── cmd/ # 命令行应用程序
│ └── server/ # 主MCP服务器应用程序
├── docs/ # 文档
│ └── tutorial.md # 使用服务器的教程
├── examples/ # 示例代码
│ └── demo.go # 展示MCP服务器使用的Go示例
├── internal/ # 内部包
│ └── server/ # 服务器实现
├── pkg/ # 公共包
│ ├── mcp/ # MCP协议实现
│ └── prometheus/ # Prometheus客户端
├── scripts/ # 实用脚本
│ └── e2e_test.sh # 端到端测试脚本
└── .githooks/ # Git钩子
└── pre-commit # 质量检查的提交前钩子
欢迎贡献!请遵循以下步骤进行贡献:
make test 和 make e2e-test)此项目遵循标准的Go编码约定。请确保您的代码:
go fmt 格式化go vet如果您发现了一个bug或有功能请求,请创建一个包含以下信息的问题: