Prometheus数据检索服务器

一个用于从Prometheus数据库检索数据的模型上下文协议(MCP)服务器,支持大型语言模型(LLMs)通过预定义路由调用工具函数来检索和分析大量指标数据、搜索指标使用情况、执行复杂查询等任务。

  • by CaesarYangs
  • Python
  • 本地部署
  • 33 星标
  • 更新于
在 GitHub 查看 CaesarYangs/prometheus_mcp_server

使用说明

普罗米修斯MCP服务器

用于从Prometheus数据库检索数据的模型上下文协议(MCP)服务器。此MCP服务器使大型语言模型(LLM)能够调用工具函数,这些函数检索和分析大量指标数据,搜索指标使用情况,执行复杂查询,并通过预定义的路由执行其他相关任务,同时增强对使用情况的控制。

  • 数据检索:从Prometheus获取特定指标或数据范围。
  • 指标分析:对检索到的指标进行统计分析。
  • 使用搜索:查找和探索指标使用模式。
  • 复杂查询:执行高级PromQL查询以进行深入的数据探索。

毛细管

✅ 从Prometheus检索全面的度量信息,包括名称和描述

✅ 使用度量名称获取和分析特定度量数据

✅ 分析自定义时间范围内的度量数据

🚧 使用特定标签过滤和匹配数据(开发中)

⏳ 计划中的其他功能。..

入门指南

MCP运行需要一个python虚拟环境(venv),所有包都应该安装到这个venv中,这样MCP服务器就可以自动启动。

通过Smithery安装

通过以下方式自动安装Prometheus MCP Server for Claude Desktop 史密瑟里:

npx -y @smithery/cli install @CaesarYangs/prometheus_mcp_server --client claude

手动安装

准备python环境

cd ./src/prometheus_mcp_server
python3 -m venv .venv
# linux/macos:
source .venv/bin/activate

# windows:
.venv\Scripts\activate

然后,它就可以用作专用的python环境了。

安装所需的软件包

确保pip被正确调用。如果您的venv是在没有pip的情况下安装的,请使用以下命令手动安装:

wget https://bootstrap.pypa.io/get-pip.py
python3 get-pip.py

然后安装所有必需的软件包:

pip install -r requirements.txt

用法

使用光标环境

是否准备好更新取决于更易于使用的Cursor环境。

在“光标设置”的MCP部分设置此项:

uv --directory /path/to/prometheus_mcp_server run server.py

使用MCP客户端(包括Claude Desktop)

在以下位置配置Claude Desktop应用程序的配置 ~/Library/Application Support/Claude/claude_desktop_config.json(macos)

{
    "mcpServers": {
        "prometheus": {
            "command": "uv",
            "args": [
                "--directory",
                "/path/to/prometheus_mcp_server",
                "run",
                "server.py"
            ],
            "env": {
                "PROMETHEUS_HOST": "http://localhost:9090"
            }
        }
    }
}

独立MCP服务器

单独启动此MCP服务器:

紫外分光光度法

uv --directory /path/to/prometheus_mcp_server run server.py

这也是确保此MCP服务器可以自动启动的一种方法,因为Claude Desktop在应用程序启动时使用此ux脚本方式启动。

常规python方法

python3 server.py

贡献

欢迎投稿!以下是一个快速指南:

  1. 分叉回购
  2. 创建功能分支(git checkout -b feature/AmazingFeature)
  3. 提交您的更改(git commit -m 'Add some AmazingFeature')
  4. 推到分支(git push origin feature/AmazingFeature)
  5. 打开拉取请求

对于重大更改,请先打开一个问题来讨论您想要更改的内容。

感谢您的贡献!

许可证

MIT许可证

参考文献与致谢

本项目的灵感来自或使用以下开源项目的代码: