modelscope·@pab1it0/prometheus-mcp-server
通过标准化的Model Context Protocol接口提供对Prometheus指标和查询的访问,允许AI助手执行PromQL查询并分析指标数据。
一个用于 Prometheus 的 Model Context Protocol (MCP) 服务器。
这通过标准化的 MCP 接口提供了对您的 Prometheus 指标和查询的访问,允许 AI 助手执行 PromQL 查询并分析您的指标数据。
对 Prometheus 执行 PromQL 查询
发现和探索指标
认证支持
Docker 容器化支持
为 AI 助手提供交互式工具
工具列表是可配置的,因此您可以选择希望向 MCP 客户端提供的工具。 如果您不使用某些功能,或者不想占用太多上下文窗口,这是非常有用的。
确保您的 Prometheus 服务器可以从运行此 MCP 服务器的环境中访问。
通过 .env 文件或系统环境变量配置您的 Prometheus 服务器的环境变量:
# Required: Prometheus configuration
PROMETHEUS_URL=http://your-prometheus-server:9090
# Optional: Authentication credentials (if needed)
# Choose one of the following authentication methods if required:
# For basic auth
PROMETHEUS_USERNAME=your_username
PROMETHEUS_PASSWORD=your_password
# For bearer token auth
PROMETHEUS_TOKEN=your_token
{
"mcpServers": {
"prometheus": {
"command": "uv",
"args": [
"--directory",
"<full path to prometheus-mcp-server directory>",
"run",
"src/prometheus_mcp_server/main.py"
],
"env": {
"PROMETHEUS_URL": "http://your-prometheus-server:9090",
"PROMETHEUS_USERNAME": "your_username",
"PROMETHEUS_PASSWORD": "your_password"
}
}
}
}
注意:如果在 Claude Desktop 中看到
Error: spawn uv ENOENT,您可能需要指定uv的完整路径或在配置中设置环境变量NO_UV=1。
该项目包括 Docker 支持,以便于部署和隔离。
使用以下命令构建 Docker 镜像:
docker build -t prometheus-mcp-server .
您可以使用几种方式通过 Docker 运行服务器:
docker run -it --rm \
-e PROMETHEUS_URL=http://your-prometheus-server:9090 \
-e PROMETHEUS_USERNAME=your_username \
-e PROMETHEUS_PASSWORD=your_password \
prometheus-mcp-server
创建一个包含您的 Prometheus 凭据的 .env 文件,然后运行:
docker-compose up
要使用容器化的服务器与 Claude Desktop,更新配置以使用带有环境变量的 Docker:
{
"mcpServers": {
"prometheus": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"-e", "PROMETHEUS_URL",
"-e", "PROMETHEUS_USERNAME",
"-e", "PROMETHEUS_PASSWORD",
"prometheus-mcp-server"
],
"env": {
"PROMETHEUS_URL": "http://your-prometheus-server:9090",
"PROMETHEUS_USERNAME": "your_username",
"PROMETHEUS_PASSWORD": "your_password"
}
}
}
}
此配置通过仅使用变量名 -e 标志并将实际值放在 env 对象中,将环境变量从 Claude Desktop 传递给 Docker 容器。
关于 Docker 实现的注意事项:Docker 设置已更新,以匹配 chess-mcp 项目的结构,该结构已被证明可以与 Claude 正确工作。新的实现使用多阶段构建过程,并直接运行入口点脚本而无需中介 shell 脚本。这种方法确保了 MCP 通信中的 stdin/stdout 的正确处理。
欢迎贡献!如果您有任何建议或改进,请打开一个问题或提交一个拉取请求。
该项目使用 uv 来管理依赖项。请根据您的平台按照说明安装 uv:
curl -LsSf https://astral.sh/uv/install.sh | sh
你可以通过以下命令创建一个虚拟环境并安装依赖项:
uv venv
source .venv/bin/activate # On Unix/macOS
.venv\Scripts\activate # On Windows
uv pip install -e .
该项目采用了 src 目录结构进行组织:
prometheus-mcp-server/
├── src/
│ └── prometheus_mcp_server/
│ ├── __init__.py # Package initialization
│ ├── server.py # MCP server implementation
│ ├── main.py # Main application logic
├── Dockerfile # Docker configuration
├── docker-compose.yml # Docker Compose configuration
├── .dockerignore # Docker ignore file
├── pyproject.toml # Project configuration
└── README.md # This file
该项目包含了一个全面的测试套件,确保功能正常并有助于防止回归。
使用 pytest 运行测试:
# Install development dependencies
uv pip install -e ".[dev]"
# Run the tests
pytest
# Run with coverage report
pytest --cov=src --cov-report=term-missing
测试被分为以下几类:
在添加新功能时,请同时添加相应的测试。
| 工具 | 类别 | 描述 |
|---|---|---|
execute_query | 查询 | 对 Prometheus 执行 PromQL 即时查询 |
execute_range_query | 查询 | 使用开始时间、结束时间和步长间隔对 Prometheus 执行 PromQL 范围查询 |
list_metrics | 发现 | 列出 Prometheus 中所有可用的指标 |
get_metric_metadata | 发现 | 获取特定指标的元数据 |
get_targets | 发现 | 获取所有抓取目标的信息 |
MIT
一种用于 Grafana 的模型上下文协议(MCP)服务器。 这为您提供了对 Grafana 实例及其周边生态系统的访问。
通过可配置的MCP服务器,启用管理Jenkins操作的功能,例如列出作业、触发构建和检查构建状态。
模型上下文协议(MCP)Jenkins集成是一种开源实现,它根据Anthropic的MCP规范将Jenkins与人工智能语言模型桥接起来。该项目在保持数据隐私和安全的同时,实现了与Jenkins工具的安全、基于上下文的人工智能交互。
通过 Model Context Protocol 服务器为 Vue 应用提供应用洞察,公开组件树、状态、路由和 Pinia 数据。
# 翻译 一个通过模型上下文协议提供访问Google Search Console数据的服务器,允许用户检索和分析具有自定义维度和报告周期的搜索分析数据。
一种通过模型上下文协议服务器访问 Prometheus 指标数据的工具,允许使用自然语言与监控数据进行交互。