This Helm chart deploys the GitLab MCP (Model Context Protocol) server based on the iwakitakuma/gitlab-mcp Docker image to a Kubernetes cluster.
- Kubernetes 1.16+
- Helm 3.2.0+
To install the chart with the release name gitlab-mcp:
helm install gitlab-mcp ./charts/gitlabThe command deploys the GitLab MCP server on the Kubernetes cluster in the default configuration. The Parameters section lists the parameters that can be configured during installation.
To uninstall/delete the gitlab-mcp deployment:
helm delete gitlab-mcpThe command removes all the Kubernetes components associated with the chart and deletes the release.
| Name | Description | Value |
|---|---|---|
replicaCount |
Number of GitLab MCP replicas to deploy | 1 |
nameOverride |
String to partially override gitlab-mcp.fullname | "" |
fullnameOverride |
String to fully override gitlab-mcp.fullname | "" |
| Name | Description | Value |
|---|---|---|
image.repository |
GitLab MCP image repository | iwakitakuma/gitlab-mcp |
image.tag |
GitLab MCP image tag (immutable tags are recommended) | 2.0.7 |
image.pullPolicy |
GitLab MCP image pull policy | IfNotPresent |
imagePullSecrets |
GitLab MCP image pull secrets | [] |
| Name | Description | Value |
|---|---|---|
serviceAccount.create |
Specifies whether a service account should be created | true |
serviceAccount.annotations |
Annotations to add to the service account | {} |
serviceAccount.name |
The name of the service account to use | "" |
| Name | Description | Value |
|---|---|---|
service.type |
GitLab MCP service type | ClusterIP |
service.port |
GitLab MCP service HTTP port | 3002 |
| Name | Description | Value |
|---|---|---|
livenessProbe.enabled |
Enable liveness probe | true |
livenessProbe.port |
Port used by the liveness probe | nil |
livenessProbe.initialDelaySeconds |
Delay before the liveness probe starts | 60 |
livenessProbe.periodSeconds |
Frequency of the liveness probe | 30 |
livenessProbe.timeoutSeconds |
Timeout for the liveness probe | 10 |
livenessProbe.failureThreshold |
Number of consecutive failures before marking the pod as unhealthy | 3 |
readinessProbe.enabled |
Enable readiness probe | true |
readinessProbe.port |
Port used by the readiness probe | nil |
readinessProbe.initialDelaySeconds |
Delay before the readiness probe starts | 15 |
readinessProbe.periodSeconds |
Frequency of the readiness probe | 10 |
readinessProbe.timeoutSeconds |
Timeout for the readiness probe | 10 |
readinessProbe.failureThreshold |
Number of consecutive failures before marking the pod as unready | 3 |
Both probes use the /health endpoint by default and inherit service.port.
| Name | Description | Value |
|---|---|---|
ingress.enabled |
Enable ingress record generation for GitLab MCP | false |
ingress.className |
IngressClass that will be be used to implement the Ingress | "" |
ingress.annotations |
Additional annotations for the Ingress resource | {} |
ingress.path |
Base path for the service | / |
ingress.pathType |
Path matching behavior | Prefix |
ingress.hosts |
List of hostnames | ["gitlab-mcp.local"] |
ingress.tls |
TLS configuration for ingress | [] |
When ingress.path is not /, the annotation nginx.ingress.kubernetes.io/use-regex: "true" is automatically added.
| Name | Description | Value |
|---|---|---|
env |
Environment variables to be set on the container | {} |
envSecrets |
Environment variables from external secrets | {} |
secretEnv |
Environment variables to be set from created secret | {} |
| Name | Description | Value |
|---|---|---|
autoscaling.enabled |
Enable Horizontal Pod Autoscaler (HPA) | false |
autoscaling.minReplicas |
Minimum number of GitLab MCP replicas | 1 |
autoscaling.maxReplicas |
Maximum number of GitLab MCP replicas | 100 |
autoscaling.targetCPUUtilizationPercentage |
Target CPU utilization percentage | 80 |
autoscaling.targetMemoryUtilizationPercentage |
Target Memory utilization percentage | "" |
The GitLab MCP server requires access to GitLab. You can configure this using environment variables:
-
Using plain environment variables (not recommended for production):
env: GITLAB_URL: "https://gitlab.com" GITLAB_TOKEN: "your-gitlab-token"
-
Using secrets (recommended for production):
secretEnv: data: GITLAB_TOKEN: "your-gitlab-token" env: GITLAB_URL: "https://gitlab.com"
To access the GitLab MCP server from outside the cluster, you can:
-
Use port forwarding (for development):
kubectl port-forward svc/gitlab-mcp 8080:8080
-
Enable ingress (for production):
ingress: enabled: true className: "nginx" path: / hosts: - gitlab-mcp.your-domain.com
-
Use LoadBalancer service type:
service: type: LoadBalancer
kubectl get pods -l app.kubernetes.io/name=mcp-gitlab-helmkubectl logs -l app.kubernetes.io/name=mcp-gitlab-helmhelm test gitlab-mcp