可观察性MCP堆栈
建筑
此图表遵循 依赖(伞)模式 --使用的方法相同 kube-prometheus-stack 和 loki-stack官方上游图表作为子部分包括在内:
| 子图 | 源 | 版本 | 端口 |
|---|---|---|---|
grafana-mcp | 格拉法纳社区/掌舵人图表 | 0.7.2(应用程序版本0.11.1) | 8000 |
mcp-victoriametrics | 维多利亚指标社区/mcp维多利亚指标 | 0.1.0(应用程序版本1.15.0) | 8080 |
observability-mcp/
├── Chart.yaml # Dependencies declared here
├── Chart.lock # Lock file (auto-generated)
├── values.yaml # Unified config for both subcharts
├── templates/
│ ├── _helpers.tpl
│ └── NOTES.txt
└── charts/
├── grafana-mcp/ # Official Grafana MCP chart (from Helm repo)
│ ├── Chart.yaml
│ ├── values.yaml
│ └── templates/
└── mcp-victoriametrics/ # Official VM MCP chart (vendored from GitHub)
├── Chart.yaml
├── values.yaml
└── templates/先决条件
- 库贝内特斯>=1.25
- Helm>=3.x
- 正在运行的Grafana实例(用于Grafana-mcp)
- 正在运行的VictoriaMetrics实例或VictoriaMmetrics云帐户(适用于mcp-VictoriaMetrics)
快速开始
1.更新依赖关系
cd observability-mcp
helm dependency update .2.安装
# Both MCP servers (self-hosted VictoriaMetrics)
helm install mcp ./observability-mcp \
--set "grafana-mcp.grafana.apiKey=" \
--set "mcp-victoriametrics.vm.entrypoint=http://vmselect:8481" \
--namespace mcp --create-namespace
# Both MCP servers (VictoriaMetrics Cloud)
helm install mcp ./observability-mcp \
--set "grafana-mcp.grafana.apiKey=" \
--set "mcp-victoriametrics.vm.cloudAPIKey=" \
--namespace mcp --create-namespace3.验证
kubectl get pods -n mcp
kubectl get svc -n mcp4.接入(端口转发)
# Grafana MCP
kubectl port-forward svc/mcp-grafana-mcp 8000:8000 -n mcp
# VictoriaMetrics MCP
kubectl port-forward svc/mcp-mcp-victoriametrics 8080:8080 -n mcp启用/禁用组件
每个子部分都可以独立切换:
# Only deploy Grafana MCP
grafana-mcp:
enabled: true
mcp-victoriametrics:
enabled: false# Or via CLI
helm install mcp ./observability-mcp \
--set "mcp-victoriametrics.enabled=false" \
--set "grafana-mcp.grafana.apiKey="配置
所有值都通过子部件名称作为键前缀传递给子部件。看 values.yaml 对于完整的注释配置。
Grafana MCP——必需设置
| 参数 | 说明 |
|---|---|
grafana-mcp.grafana.url | Grafana实例URL(默认值: http://grafana:3000) |
grafana-mcp.grafana.apiKey | 服务帐户令牌(图表创建密钥) |
grafana-mcp.grafana.apiKeySecret.name | 或引用现有的秘密 |
grafana-mcp.grafana.apiKeySecret.key | 现有密钥内的密钥 |
VictoriaMetrics MCP——必需设置
选择一种模式:
自托管的维多利亚指标:
| 参数 | 说明 |
|---|---|
mcp-victoriametrics.vm.entrypoint | VM入口点URL(必需) |
mcp-victoriametrics.vm.type | single 或 cluster (默认值: single) |
mcp-victoriametrics.vm.bearerToken | 身份验证令牌(字符串或 valueFrom 地图) |
维多利亚指标云:
| 参数 | 说明 |
|---|---|
mcp-victoriametrics.vm.cloudAPIKey | 云API密钥(启用云模式) |
工具访问控制
Grafana MCP
控制哪些MCP工具类别处于活动状态的两种互补机制:
黑名单模式 --通过以下方式禁用特定类别 --disable-:
grafana-mcp:
disabledCategories:
- write # read-only mode, no create/update/delete
- admin # hide team/role/permission tools
- incident # hide incident management tools可用类别: search, datasource, incident, prometheus, loki, elasticsearch, alerting, dashboard, folder, oncall, asserts, sift, admin, pyroscope, navigation, proxied, annotations, rendering, cloudwatch, examples, clickhouse, searchlogs, runpanelquery, write (横向)。
白名单模式 --仅通过以下方式启用特定类别 extraArgs:
grafana-mcp:
extraArgs:
- --enabled-tools=search,datasource,prometheus,loki,dashboard默认启用的类别: search, datasource, incident, prometheus, loki, alerting, dashboard, folder, oncall, asserts, sift, pyroscope, navigation, proxied, annotations, rendering.
默认情况下未启用: elasticsearch, admin, cloudwatch, clickhouse, examples, searchlogs, runpanelquery.
维多利亚指标MCP
通过环境变量禁用细粒度工具级别:
mcp-victoriametrics:
mcp:
mode: sse
disable:
tools: # disable individual tools by name
- some_tool_name
resources: false # set true to disable all MCP resources
heartbeatInterval: 30s安全(门卫/PSS限制)
这两个子部分都具有满足Kubernetes Pod安全标准的强化安全默认值 受限的 轮廓:
| 控制 | 值 |
|---|---|
runAsNonRoot | true |
runAsUser / runAsGroup | 1000 |
fsGroup | 1000 |
readOnlyRootFilesystem | true |
allowPrivilegeEscalation | false |
capabilities.drop | [ALL] |
seccompProfile.type | RuntimeDefault |
seLinuxOptions.level | s0:c123,c456 (占位符--根据您的集群进行调整) |
所有安全上下文都设置为 吊舱高度 和 集装箱液位.
备注:seLinuxOptions.level是一个占位符。替换s0:c123,c456使用集群SELinux策略的实际MCS标签。
健康探测器
| 组件 | 活性 | 准备状态 |
|---|---|---|
| 端口上的grafana-mcp | TCP套接字 mcp-http | 端口上的TCP套接字 mcp-http |
| mcp胜利指标 | HTTP GET /health/liveness | HTTP获取 /health/readiness |
资源
这两个子部分都有默认的资源请求和限制:
resources:
requests:
cpu: 100m
memory: 128Mi
limits:
cpu: 500m
memory: 512Mi入口
两个子部件都支持Ingress(默认情况下禁用):
grafana-mcp:
ingress:
enabled: true
className: nginx
hosts:
- host: mcp-grafana.example.com
paths:
- path: /
pathType: Prefix
tls:
- secretName: mcp-grafana-tls
hosts:
- mcp-grafana.example.com
mcp-victoriametrics:
ingress:
enabled: true
className: nginx
hosts:
- host: mcp-vm.example.com
paths:
- path: /
pathType: ImplementationSpecificVictoriaMetrics MCP还支持Gateway API HTTPRoute:
mcp-victoriametrics:
route:
enabled: true
parentRefs:
- name: my-gateway
sectionName: http升级上游图表
# 1. Edit Chart.yaml — bump the version
# 2. For grafana-mcp (from Helm repo):
helm dependency update ./observability-mcp
# 3. For mcp-victoriametrics (vendored):
# Replace charts/mcp-victoriametrics/ with the new version from upstream
# Then run:
helm dependency update ./observability-mcp