Otel mcp
MCP服务器,用于通过OIDC身份验证查询Prometheus指标和Loki日志。
特性
- 查询Prometheus指标(PromQL)
- 查询Loki日志(LogQL)
- 用于K8s部署的HTTP API
- 服务发现(指标、标签、日志流)
快速开始
地方发展
# 1. Install
git clone
cd otel-mcp
uv sync
# 2. Configure .env
cp .env.example .env
# Edit .env with your Prometheus/Loki URLs
# 3. Run (stdio mode for local MCP)
uv run python -m src.server生产(Kubernetes+Authentik)
看 K8S_部署.md 获取完整部署指南。
# Build and deploy
docker build -t your-registry/otel-mcp:latest .
kubectl apply -f k8s/
# Access at https://otel-mcp.your-domain.com可用工具
普罗米修斯(5个工具)
query_prometheus-执行PromQL即时查询query_prometheus_range-查询时间范围内的指标list_metrics-列出可用指标list_label_values-获取标签值(发现服务)list_labels-列出所有标签名称
洛基(4工具)
query_loki-执行LogQL查询search_logs-使用过滤器进行简单的日志搜索list_log_labels-列出日志流标签list_log_label_values-获取日志标签值
用法
生产:带有Authentik OAuth代理的K8s
在Authentik后面部署HTTP服务器进行身份验证。
看 K8S_部署.md 完成设置。
# Build and deploy
docker build -t registry/otel-mcp:latest .
kubectl apply -f k8s/
# Use the API
curl -H "Authorization: Bearer YOUR_TOKEN" \
https://otel-mcp.your-domain.com/tools
curl -X POST https://otel-mcp.your-domain.com/call \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"tool": "query_prometheus", "arguments": {"query": "up"}}'本地:MCP标准(开发)
适用于Claude Desktop等本地MCP客户端。
# Run stdio server
uv run python -m src.server
# Claude Desktop config
{
"mcpServers": {
"otel-mcp": {
"command": "uv",
"args": ["--directory", "/path/to/otel-mcp", "run", "python", "-m", "src.server"],
"env": {
"PROMETHEUS_URL": "http://localhost:9090",
"LOKI_URL": "http://localhost:3100"
}
}
}
}配置选项
| 变量 | 默认值 | 描述 |
|---|---|---|
PROMETHEUS_URL | http://localhost:9090 | 普罗米修斯端点 |
LOKI_URL | http://localhost:3100 | 洛基终点 |
MCP_AUTH_ENABLED | false | 启用OIDC身份验证 |
MCP_OIDC_ISSUER | OIDC提供商URL | |
MCP_OIDC_CLIENT_ID | OAuth2客户端ID | |
MCP_OIDC_AUDIENCE | - | 代币受众(可选) |
LOG_LEVEL | INFO | 日志记录级别 |
QUERY_TIMEOUT | 30 | 查询超时(秒) |
后端身份验证
Prometheus/Loki支持基本身份验证和承载令牌:
# Basic Auth
PROMETHEUS_AUTH_TYPE=basic
PROMETHEUS_USERNAME=admin
PROMETHEUS_PASSWORD=secret
# Bearer Token
LOKI_AUTH_TYPE=bearer
LOKI_BEARER_TOKEN=your-token查询示例
# List services
{"tool": "list_label_values", "arguments": {"label": "job"}}
# Query CPU usage
{"tool": "query_prometheus", "arguments": {"query": "rate(cpu_usage[5m])"}}
# Search error logs
{"tool": "search_logs", "arguments": {"search_text": "error", "start": "1h"}}许可证
麻省理工学院
