🚀 Prometheus MCP Server
Prometheus MCP Server 是一個模型上下文協議(MCP)服務器,它能讓 AI 助手與 Prometheus 實現無縫集成,支持通過自然語言與監控基礎設施進行交互。藉助該服務器,你可以通過 Visual Studio Code、Cursor、Windsurf、Claude Desktop 等 MCP 客戶端輕鬆查詢、發現和分析指標。
🚀 快速開始
首先,將 Prometheus MCP 服務器與你的客戶端進行安裝。典型的配置如下:
{
"mcpServers": {
"prometheus": {
"command": "npx",
"args": ["prometheus-mcp@latest", "stdio"],
"env": {
"PROMETHEUS_URL": "http://localhost:9090"
}
}
}
}
在 VS Code 中安裝
code --add-mcp '{"name":"prometheus","command":"npx","args":["prometheus-mcp@latest","stdio"],"env":{"PROMETHEUS_URL":"http://localhost:9090"}}'
code-insiders --add-mcp '{"name":"prometheus","command":"npx","args":["prometheus-mcp@latest","stdio"],"env":{"PROMETHEUS_URL":"http://localhost:9090"}}'
安裝完成後,Prometheus MCP 服務器即可在 VS Code 中與你的 GitHub Copilot 代理一起使用。
在 Cursor 中安裝
前往 Cursor Settings
→ MCP
→ Add new MCP Server
。你可以自行命名,使用 command
類型並輸入命令 npx prometheus-mcp
。也可以通過點擊 Edit
來驗證配置或添加命令參數。
{
"mcpServers": {
"prometheus": {
"command": "npx",
"args": ["prometheus-mcp@latest", "stdio"],
"env": {
"PROMETHEUS_URL": "http://localhost:9090"
}
}
}
}
在 Windsurf 中安裝
遵循 Windsurf MCP 文檔進行操作,使用以下配置:
{
"mcpServers": {
"prometheus": {
"command": "npx",
"args": ["prometheus-mcp@latest", "stdio"],
"env": {
"PROMETHEUS_URL": "http://localhost:9090"
}
}
}
}
在 Claude Desktop 中安裝
Claude Desktop 支持兩種安裝方法:
選項 1:DXT 擴展
最簡單的安裝方式是使用預構建的 DXT 擴展:
- 從 發佈頁面 下載最新的
.dxt
文件。
- 雙擊下載的文件進行自動安裝。
- 在擴展設置中配置你的 Prometheus URL。
選項 2:開發者設置
對於高級用戶或需要自定義配置的情況,可以手動配置 MCP 服務器:
- 打開 Claude Desktop 設置。
- 導航到 Developer 部分。
- 添加以下 MCP 服務器配置:
{
"mcpServers": {
"prometheus": {
"command": "npx",
"args": ["prometheus-mcp@latest", "stdio"],
"env": {
"PROMETHEUS_URL": "http://localhost:9090"
}
}
}
}
✨ 主要特性
- 快速輕量:與 Prometheus 直接進行 API 集成,無需複雜解析。
- 對大語言模型友好:結構化的 JSON 響應經過優化,便於 AI 助手使用。
- 可配置功能:可根據安全和運營需求啟用或禁用工具類別。
- 雙傳輸支持:支持 stdio 和 HTTP 兩種傳輸方式,具備最大兼容性。
📦 安裝指南
系統要求
- Node.js 20.19.0 或更高版本
- 能夠訪問 Prometheus 服務器
- 需安裝 VS Code、Cursor、Windsurf、Claude Desktop 或其他 MCP 客戶端
安裝命令
具體安裝命令可參考快速開始部分的不同客戶端安裝步驟。
📚 詳細文檔
配置
Prometheus MCP 服務器支持以下參數,可在上述 JSON 配置的 "args"
列表中提供:
> npx prometheus-mcp@latest --help
Commands:
stdio Start Prometheus MCP server using stdio transport
http Start Prometheus MCP server using HTTP transport
Options:
--help Show help [boolean]
--version Show version number [boolean]
環境變量
你還可以使用環境變量來配置服務器:
PROMETHEUS_URL
- Prometheus 服務器的 URL
ENABLE_DISCOVERY_TOOLS
- 設置為 "false" 可禁用發現工具(默認值:true)
ENABLE_INFO_TOOLS
- 設置為 "false" 可禁用信息工具(默認值:true)
ENABLE_QUERY_TOOLS
- 設置為 "false" 可禁用查詢工具(默認值:true)
獨立 MCP 服務器
當在服務器環境中運行或需要使用 HTTP 傳輸時,可使用 http
命令啟動 MCP 服務器:
npx prometheus-mcp@latest http --port 3000
然後在你的 MCP 客戶端配置中,將 url
設置為 HTTP 端點:
{
"mcpServers": {
"prometheus": {
"command": "npx",
"args": ["mcp-remote", "http://localhost:3000/mcp"]
}
}
}
Docker 部署
使用 Docker 運行 Prometheus MCP 服務器:
{
"mcpServers": {
"prometheus": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"--init",
"--pull=always",
"-e",
"PROMETHEUS_URL=http://host.docker.internal:9090",
"ghcr.io/idanfishman/prometheus-mcp",
"stdio"
]
}
}
}
工具
Prometheus MCP 服務器提供了 10 個工具,分為三個可配置的類別:
發現
用於探索 Prometheus 基礎設施的工具:
信息
用於訪問 Prometheus 服務器信息的工具:
-
prometheus_runtime_info
- 描述:獲取 Prometheus 運行時信息
- 參數:無
- 只讀:true
-
prometheus_build_info
- 描述:獲取 Prometheus 構建信息
- 參數:無
- 只讀:true
查詢
用於執行 Prometheus 查詢的工具:
-
prometheus_query
- 描述:執行即時 Prometheus 查詢
- 參數:
query
(字符串):Prometheus 查詢表達式
time
(字符串,可選):查詢的時間參數(RFC3339 格式)
- 只讀:true
-
prometheus_query_range
- 描述:執行 Prometheus 範圍查詢
- 參數:
query
(字符串):Prometheus 查詢表達式
start
(字符串):開始時間戳(RFC3339 或 Unix 時間戳)
end
(字符串):結束時間戳(RFC3339 或 Unix 時間戳)
step
(字符串):查詢分辨率步長
- 只讀:true
示例用法
以下是一些你可以與 AI 助手進行交互的示例:
基本查詢
- "Show me all available metrics in Prometheus"(顯示 Prometheus 中所有可用的指標)
- "What's the current CPU usage across all instances?"(所有實例的當前 CPU 使用率是多少?)
- "Get the memory usage for the last hour"(獲取過去一小時的內存使用情況)
發現和探索
- "List all scrape targets and their status"(列出所有抓取目標及其狀態)
- "What labels are available for the
http_requests_total
metric?"(http_requests_total
指標有哪些可用的標籤?)
- "Show me all metrics related to 'cpu'"(顯示所有與 "cpu" 相關的指標)
高級分析
- "Compare CPU usage between production and staging environments"(比較生產環境和暫存環境的 CPU 使用率)
- "Show me the top 10 services by memory consumption"(顯示內存消耗排名前十的服務)
- "What's the error rate trend for the API service over the last 24 hours?"(API 服務在過去 24 小時內的錯誤率趨勢如何?)
安全考慮
- 網絡訪問:服務器需要網絡訪問你的 Prometheus 實例。
- 資源使用:範圍查詢可能會消耗大量資源,請監控你的 Prometheus 服務器負載。
故障排除
連接問題
- 驗證你的 Prometheus 服務器在配置的 URL 上是否可訪問。
- 檢查防火牆設置和網絡連接。
- 確保 Prometheus API 已啟用(默認端口為 9090)。
權限錯誤
- 驗證 MCP 服務器是否有網絡訪問 Prometheus 的權限。
- 檢查你的 Prometheus 設置是否需要身份驗證。
工具可用性
📄 許可證
本項目採用 MIT 許可證 - 詳情請參閱 LICENSE 文件。
支持
本項目是為 Prometheus 和 MCP 社區精心打造的 ❤️