|
| 1 | +# grafana-mcp |
| 2 | + |
| 3 | +MCP server for Grafana. |
| 4 | + |
| 5 | +## Source Code |
| 6 | + |
| 7 | +* <https://github.com/grafana/mcp-grafana> |
| 8 | +* <https://github.com/grafana/helm-charts> |
| 9 | + |
| 10 | +## Requirements |
| 11 | + |
| 12 | +Kubernetes: `^1.8.0-0` |
| 13 | + |
| 14 | +## Chart Repo |
| 15 | + |
| 16 | +Add the following repo to use the chart: |
| 17 | + |
| 18 | +```console |
| 19 | +helm repo add grafana https://grafana.github.io/helm-charts |
| 20 | +``` |
| 21 | + |
| 22 | +## Installing the Chart |
| 23 | + |
| 24 | +To install the chart with the release name `my-release`: |
| 25 | + |
| 26 | +```console |
| 27 | +helm install --set grafana.apiKey=<Grafana_ApiKey> my-release grafana/grafana-mcp |
| 28 | +``` |
| 29 | + |
| 30 | +## Uninstalling the Chart |
| 31 | + |
| 32 | +To uninstall/delete the my-release deployment: |
| 33 | + |
| 34 | +```console |
| 35 | +helm delete my-release |
| 36 | +``` |
| 37 | + |
| 38 | +The command removes all the Kubernetes components associated with the chart and deletes the release. |
| 39 | + |
| 40 | +## Values |
| 41 | + |
| 42 | +| Key | Type | Default | Description | |
| 43 | +|-----|------|---------|-------------| |
| 44 | +| affinity | object | `{}` | Affinity | |
| 45 | +| annotations | object | `{}` | Deployment annotations | |
| 46 | +| automountServiceAccountToken | bool | `true` | Automount service account token | |
| 47 | +| containerSecurityContext | object | `{"allowPrivilegeEscalation":false,"capabilities":{"drop":["ALL"]},"readOnlyRootFilesystem":true,"runAsGroup":1000,"runAsNonRoot":true,"runAsUser":1000}` | Container security context | |
| 48 | +| debug | bool | `false` | Enable debug mode | |
| 49 | +| deploymentStrategy | object | `{"rollingUpdate":{"maxSurge":"25%","maxUnavailable":"25%"},"type":"RollingUpdate"}` | Deployment strategy | |
| 50 | +| disabledCategories | list | `[]` | Categories to disable (e.g., oncall, incident, sift) | |
| 51 | +| dnsConfig | object | `{}` | DNS config | |
| 52 | +| dnsPolicy | string | `""` | DNS policy | |
| 53 | +| env | object | `{}` | Environment variables | |
| 54 | +| envFrom | list | `[]` | Environment variables from ConfigMaps or Secrets | |
| 55 | +| envValueFrom | object | `{}` | Environment variables from other sources | |
| 56 | +| extraArgs | list | `[]` | Additional command line arguments | |
| 57 | +| extraContainers | list | `[]` | Extra containers | |
| 58 | +| extraInitContainers | list | `[]` | Extra init containers | |
| 59 | +| grafana | object | `{"apiKey":"","apiKeySecret":{"key":"","name":""},"url":"http://grafana:3000"}` | Grafana connection configuration | |
| 60 | +| grafana.apiKey | string | `""` | Grafana ApiKey (if not using a secret) | |
| 61 | +| grafana.apiKeySecret | object | `{"key":"","name":""}` | Secret containing the Grafana API key | |
| 62 | +| grafana.apiKeySecret.key | string | `""` | Key within the secret that contains the API key | |
| 63 | +| grafana.apiKeySecret.name | string | `""` | Name of the secret containing the API key | |
| 64 | +| grafana.url | string | `"http://grafana:3000"` | Grafana URL (should point to the main Grafana service) | |
| 65 | +| hostAliases | list | `[]` | Host aliases | |
| 66 | +| image | object | `{"pullPolicy":"IfNotPresent","registry":"docker.io","repository":"mcp/grafana","tag":"latest"}` | Image configuration | |
| 67 | +| image.pullPolicy | string | `"IfNotPresent"` | Image pull policy | |
| 68 | +| image.registry | string | `"docker.io"` | The Docker registry | |
| 69 | +| image.repository | string | `"mcp/grafana"` | The Docker repository | |
| 70 | +| image.tag | string | `"latest"` | Image tag | |
| 71 | +| imagePullSecrets | list | `[]` | Image pull secrets | |
| 72 | +| ingress | object | `{"annotations":{},"className":"","enabled":false,"hosts":[{"host":"mcp-grafana.local","paths":[{"path":"/","pathType":"Prefix"}]}],"labels":{},"tls":[]}` | Ingress configuration | |
| 73 | +| ingress.annotations | object | `{}` | Ingress annotations | |
| 74 | +| ingress.className | string | `""` | Ingress class name | |
| 75 | +| ingress.enabled | bool | `false` | Enable ingress | |
| 76 | +| ingress.hosts | list | `[{"host":"mcp-grafana.local","paths":[{"path":"/","pathType":"Prefix"}]}]` | Ingress hosts | |
| 77 | +| ingress.labels | object | `{}` | Ingress labels | |
| 78 | +| ingress.tls | list | `[]` | Ingress TLS configuration | |
| 79 | +| initContainers | list | `[]` | Init containers | |
| 80 | +| labels | object | `{}` | Deployment labels | |
| 81 | +| lifecycle | object | `{}` | Lifecycle hooks | |
| 82 | +| livenessProbe | object | `{}` | MCP server Liveness probe configuration | |
| 83 | +| nodeSelector | object | `{}` | Node selector | |
| 84 | +| podAnnotations | object | `{}` | Pod annotations | |
| 85 | +| podLabels | object | `{}` | Pod labels | |
| 86 | +| priorityClassName | string | `""` | Priority class name | |
| 87 | +| readinessProbe | object | `{}` | MCP server Readiness probe configuration | |
| 88 | +| replicas | int | `1` | Number of replicas for the MCP server | |
| 89 | +| resources | object | `{}` | Resource requests and limits | |
| 90 | +| runtimeClassName | string | `""` | Runtime class name | |
| 91 | +| schedulerName | string | `""` | Scheduler name | |
| 92 | +| securityContext | object | `{"fsGroup":1000,"runAsGroup":1000,"runAsNonRoot":true,"runAsUser":1000}` | Pod security context | |
| 93 | +| service | object | `{"annotations":{},"clusterIP":"","enabled":true,"externalIPs":[],"externalName":"","extraPorts":[],"labels":{},"loadBalancerIP":"","loadBalancerSourceRanges":[],"nodePort":"","port":8000,"sessionAffinity":"","sessionAffinityConfig":{},"type":"ClusterIP"}` | Service configuration | |
| 94 | +| service.annotations | object | `{}` | Service annotations | |
| 95 | +| service.clusterIP | string | `""` | Cluster IP (if type is ClusterIP) | |
| 96 | +| service.enabled | bool | `true` | Enable service | |
| 97 | +| service.externalIPs | list | `[]` | External IPs | |
| 98 | +| service.externalName | string | `""` | External name (if type is ExternalName) | |
| 99 | +| service.extraPorts | list | `[]` | Extra ports | |
| 100 | +| service.labels | object | `{}` | Service labels | |
| 101 | +| service.loadBalancerIP | string | `""` | Load balancer IP | |
| 102 | +| service.loadBalancerSourceRanges | list | `[]` | Load balancer source ranges | |
| 103 | +| service.nodePort | string | `""` | Node port (if type is NodePort or LoadBalancer) | |
| 104 | +| service.port | int | `8000` | Service port | |
| 105 | +| service.sessionAffinity | string | `""` | Session affinity | |
| 106 | +| service.sessionAffinityConfig | object | `{}` | Session affinity config | |
| 107 | +| service.type | string | `"ClusterIP"` | Service type | |
| 108 | +| serviceAccount | object | `{"annotations":{},"automountServiceAccountToken":false,"enabled":true,"labels":{},"name":""}` | Service account Configuration | |
| 109 | +| serviceAccount.annotations | object | `{}` | Annotations for the service account | |
| 110 | +| serviceAccount.automountServiceAccountToken | bool | `false` | Automount service account token | |
| 111 | +| serviceAccount.enabled | bool | `true` | Enable service account | |
| 112 | +| serviceAccount.labels | object | `{}` | Labels for the service account | |
| 113 | +| serviceAccount.name | string | `""` | Name of the service account | |
| 114 | +| startupProbe | object | `{}` | MCP server Startup probe configuration | |
| 115 | +| tolerations | list | `[]` | Tolerations | |
| 116 | +| topologySpreadConstraints | list | `[]` | Topology spread constraints | |
| 117 | +| volumeMounts | list | `[]` | Volume mounts | |
| 118 | +| volumes | list | `[]` | Volumes | |
0 commit comments