fix: resolve MCP sidecar image failures (issue #40)
Three fixes for broken MCP sidecars: 1. Remove GitHub MCP sidecar entirely - the upstream image (ghcr.io/modelcontextprotocol/servers/github) is discontinued. GitHub MCP is now accessed via Copilot API instead. 2. Fix Playwright MCP image - changed from non-existent microsoft/playwright-mcp to mcr.microsoft.com/playwright/mcp (the official Microsoft Container Registry image). 3. Fix pgtuner MCP startup command - changed --transport to --mode and added --host 0.0.0.0 to match the current pgtuner_mcp CLI. Bumps chart version to 0.3.3. Closes #40 Generated with [Claude Code](https://claude.ai/code) via [Happy](https://happy.engineering) Co-Authored-By: Claude <noreply@anthropic.com> Co-Authored-By: Happy <yesreply@happy.engineering>
This commit is contained in:
@@ -77,7 +77,7 @@ Container start
|
|||||||
| `chart/templates/pvc.yaml` | PersistentVolumeClaim for user home |
|
| `chart/templates/pvc.yaml` | PersistentVolumeClaim for user home |
|
||||||
| `chart/templates/service.yaml` | ClusterIP Service (VNC + optional SSH) |
|
| `chart/templates/service.yaml` | ClusterIP Service (VNC + optional SSH) |
|
||||||
| `chart/values.yaml` | Default Helm values |
|
| `chart/values.yaml` | Default Helm values |
|
||||||
| `.mcp.json` | MCP server connection config (Kubernetes, Flux, GitHub, Home Assistant, Playwright) |
|
| `.mcp.json` | MCP server connection config (GitHub Copilot, Kubernetes, Flux, Playwright, pgtuner) |
|
||||||
| `Makefile` | Build/deploy automation |
|
| `Makefile` | Build/deploy automation |
|
||||||
|
|
||||||
### MCP Sidecars
|
### MCP Sidecars
|
||||||
@@ -88,15 +88,14 @@ MCP (Model Context Protocol) servers run as sidecar containers in the pod, enabl
|
|||||||
|---------|-------|---------|------|----------|---------|
|
|---------|-------|---------|------|----------|---------|
|
||||||
| `kubernetes-mcp` | `quay.io/containers/kubernetes_mcp_server` | v0.0.57 | 8080 | `http://localhost:8080/sse` | Enabled |
|
| `kubernetes-mcp` | `quay.io/containers/kubernetes_mcp_server` | v0.0.57 | 8080 | `http://localhost:8080/sse` | Enabled |
|
||||||
| `flux-mcp` | `ghcr.io/controlplaneio-fluxcd/flux-operator-mcp` | v0.41.1 | 8081 | `http://localhost:8081/sse` | Enabled |
|
| `flux-mcp` | `ghcr.io/controlplaneio-fluxcd/flux-operator-mcp` | v0.41.1 | 8081 | `http://localhost:8081/sse` | Enabled |
|
||||||
| `github-mcp` | `ghcr.io/modelcontextprotocol/servers/github` | latest | 8088 | `http://localhost:8088/sse` | Disabled |
|
|
||||||
| `homeassistant-mcp` | `ghcr.io/homeassistant-ai/ha-mcp` | stable | 8087 | `http://localhost:8087/sse` | Disabled |
|
| `homeassistant-mcp` | `ghcr.io/homeassistant-ai/ha-mcp` | stable | 8087 | `http://localhost:8087/sse` | Disabled |
|
||||||
| `pgtuner-mcp` | `dog830228/pgtuner_mcp` | latest | 8085 | `http://localhost:8085/sse` | Disabled |
|
| `pgtuner-mcp` | `dog830228/pgtuner_mcp` | latest | 8085 | `http://localhost:8085/sse` | Disabled |
|
||||||
| `playwright-mcp` | `microsoft/playwright-mcp` | latest | 8086 | `http://localhost:8086/sse` | Enabled |
|
| `playwright-mcp` | `mcr.microsoft.com/playwright/mcp` | latest | 8086 | `http://localhost:8086/sse` | Enabled |
|
||||||
|
|
||||||
**Note:**
|
**Note:**
|
||||||
|
- GitHub MCP is accessed via the Copilot API (`https://api.githubcopilot.com/mcp/`), not as a sidecar
|
||||||
- Kubernetes and Flux sidecars require `clusterAccess` != `none` to be deployed (they need RBAC permissions)
|
- Kubernetes and Flux sidecars require `clusterAccess` != `none` to be deployed (they need RBAC permissions)
|
||||||
- Kubernetes and Flux sidecars inherit the pod's ServiceAccount RBAC permissions
|
- Kubernetes and Flux sidecars inherit the pod's ServiceAccount RBAC permissions
|
||||||
- GitHub sidecar uses `GITHUB_TOKEN` from the env secret (same token used for repo cloning)
|
|
||||||
- Home Assistant sidecar requires `HOMEASSISTANT_URL` and `HOMEASSISTANT_TOKEN` in the env secret
|
- Home Assistant sidecar requires `HOMEASSISTANT_URL` and `HOMEASSISTANT_TOKEN` in the env secret
|
||||||
- PostgreSQL tuner sidecar requires `DATABASE_URI` in the env secret (PostgreSQL connection string)
|
- PostgreSQL tuner sidecar requires `DATABASE_URI` in the env secret (PostgreSQL connection string)
|
||||||
- Playwright sidecar provides browser automation and web testing capabilities
|
- Playwright sidecar provides browser automation and web testing capabilities
|
||||||
@@ -109,34 +108,30 @@ To control MCP sidecars, set the `enabled` flag in your values override:
|
|||||||
# Disable all MCP sidecars
|
# Disable all MCP sidecars
|
||||||
mcp:
|
mcp:
|
||||||
sidecars:
|
sidecars:
|
||||||
kubernetes:
|
kubernetes:
|
||||||
enabled: false
|
enabled: false
|
||||||
flux:
|
flux:
|
||||||
enabled: false
|
enabled: false
|
||||||
github:
|
homeassistant:
|
||||||
enabled: false
|
enabled: false
|
||||||
homeassistant:
|
pgtuner:
|
||||||
enabled: false
|
enabled: false
|
||||||
pgtuner:
|
playwright:
|
||||||
enabled: false
|
enabled: false
|
||||||
playwright:
|
|
||||||
enabled: false
|
|
||||||
|
|
||||||
# Or selectively enable/disable
|
# Or selectively enable/disable
|
||||||
mcp:
|
mcp:
|
||||||
sidecars:
|
sidecars:
|
||||||
kubernetes:
|
kubernetes:
|
||||||
enabled: true # Keep Kubernetes MCP enabled
|
enabled: true # Keep Kubernetes MCP enabled
|
||||||
flux:
|
flux:
|
||||||
enabled: false # Disable Flux MCP
|
enabled: false # Disable Flux MCP
|
||||||
github:
|
homeassistant:
|
||||||
enabled: true # Keep GitHub MCP enabled (uses GITHUB_TOKEN)
|
enabled: true # Enable Home Assistant MCP (requires secrets)
|
||||||
homeassistant:
|
pgtuner:
|
||||||
enabled: true # Enable Home Assistant MCP (requires secrets)
|
enabled: true # Enable PostgreSQL tuner MCP (requires DATABASE_URI)
|
||||||
pgtuner:
|
playwright:
|
||||||
enabled: true # Enable PostgreSQL tuner MCP (requires DATABASE_URI)
|
enabled: true # Enable Playwright MCP for browser automation
|
||||||
playwright:
|
|
||||||
enabled: true # Enable Playwright MCP for browser automation
|
|
||||||
```
|
```
|
||||||
|
|
||||||
When deploying via Helm:
|
When deploying via Helm:
|
||||||
|
|||||||
@@ -50,7 +50,7 @@ The secret is picked up automatically via `envFrom`. Keys recognised:
|
|||||||
| `SSH_AUTHORIZED_KEYS` | Public key(s) for SSH access (required when `ssh: true`) |
|
| `SSH_AUTHORIZED_KEYS` | Public key(s) for SSH access (required when `ssh: true`) |
|
||||||
| `HOMEASSISTANT_URL` | Home Assistant URL (required when `mcpSidecars.homeassistant.enabled: true`) |
|
| `HOMEASSISTANT_URL` | Home Assistant URL (required when `mcpSidecars.homeassistant.enabled: true`) |
|
||||||
| `HOMEASSISTANT_TOKEN` | Home Assistant long-lived access token (required when `mcpSidecars.homeassistant.enabled: true`) |
|
| `HOMEASSISTANT_TOKEN` | Home Assistant long-lived access token (required when `mcpSidecars.homeassistant.enabled: true`) |
|
||||||
| `DATABASE_URI` | PostgreSQL connection string (required when `mcpSidecars.pgtuner.enabled: true`) |
|
| `DATABASE_URI` | PostgreSQL connection string (required when `mcp.sidecars.pgtuner.enabled: true`) |
|
||||||
| `PGTUNER_EXCLUDE_USERIDS` | Comma-separated PostgreSQL user OIDs to exclude from monitoring (optional) |
|
| `PGTUNER_EXCLUDE_USERIDS` | Comma-separated PostgreSQL user OIDs to exclude from monitoring (optional) |
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
@@ -200,16 +200,16 @@ The devcontainer includes MCP (Model Context Protocol) servers as sidecar contai
|
|||||||
|---------|---------|---------|
|
|---------|---------|---------|
|
||||||
| `mcp.sidecars.kubernetes.enabled` | `true` | Kubernetes API access via MCP |
|
| `mcp.sidecars.kubernetes.enabled` | `true` | Kubernetes API access via MCP |
|
||||||
| `mcp.sidecars.flux.enabled` | `true` | Flux GitOps operations via MCP |
|
| `mcp.sidecars.flux.enabled` | `true` | Flux GitOps operations via MCP |
|
||||||
| `mcp.sidecars.github.enabled` | `false` | GitHub API access via MCP (DISABLED: archived image) |
|
|
||||||
| `mcp.sidecars.homeassistant.enabled` | `false` | Home Assistant smart home control via MCP |
|
| `mcp.sidecars.homeassistant.enabled` | `false` | Home Assistant smart home control via MCP |
|
||||||
| `mcp.sidecars.pgtuner.enabled` | `false` | PostgreSQL performance tuning and analysis via MCP |
|
| `mcp.sidecars.pgtuner.enabled` | `false` | PostgreSQL performance tuning and analysis via MCP |
|
||||||
| `mcp.sidecars.playwright.enabled` | `true` | Browser automation and web testing via MCP |
|
| `mcp.sidecars.playwright.enabled` | `true` | Browser automation and web testing via MCP |
|
||||||
|
|
||||||
**Notes:**
|
**Notes:**
|
||||||
|
- GitHub MCP is accessed via the Copilot API (`https://api.githubcopilot.com/mcp/`), not as a sidecar
|
||||||
- Kubernetes and Flux sidecars require `clusterAccess` != `none` to be deployed (automatically disabled when no cluster access)
|
- Kubernetes and Flux sidecars require `clusterAccess` != `none` to be deployed (automatically disabled when no cluster access)
|
||||||
- Kubernetes and Flux sidecars inherit the pod's ServiceAccount RBAC permissions (controlled by `clusterAccess`)
|
- Kubernetes and Flux sidecars inherit the pod's ServiceAccount RBAC permissions (controlled by `clusterAccess`)
|
||||||
- Home Assistant sidecar requires `homeassistant-url` and `homeassistant-token` in the env secret
|
- Home Assistant sidecar requires `HOMEASSISTANT_URL` and `HOMEASSISTANT_TOKEN` in the env secret
|
||||||
- PostgreSQL tuner sidecar requires `database-uri` in the env secret (PostgreSQL connection string)
|
- PostgreSQL tuner sidecar requires `DATABASE_URI` in the env secret (PostgreSQL connection string)
|
||||||
- Playwright sidecar provides browser automation and web testing capabilities
|
- Playwright sidecar provides browser automation and web testing capabilities
|
||||||
|
|
||||||
**Disable MCP sidecars:**
|
**Disable MCP sidecars:**
|
||||||
@@ -309,7 +309,7 @@ mcp:
|
|||||||
playwright:
|
playwright:
|
||||||
enabled: true
|
enabled: true
|
||||||
image:
|
image:
|
||||||
repository: microsoft/playwright-mcp
|
repository: mcr.microsoft.com/playwright/mcp
|
||||||
tag: latest
|
tag: latest
|
||||||
port: 8086
|
port: 8086
|
||||||
resources:
|
resources:
|
||||||
|
|||||||
+1
-1
@@ -2,5 +2,5 @@ apiVersion: v2
|
|||||||
name: devcontainer
|
name: devcontainer
|
||||||
description: Antigravity Dev Container with Happy Coder AI assistant
|
description: Antigravity Dev Container with Happy Coder AI assistant
|
||||||
type: application
|
type: application
|
||||||
version: 0.3.2
|
version: 0.3.3
|
||||||
appVersion: "latest"
|
appVersion: "latest"
|
||||||
|
|||||||
@@ -200,43 +200,11 @@ spec:
|
|||||||
resources:
|
resources:
|
||||||
{{- toYaml .Values.mcp.sidecars.homeassistant.resources | nindent 12 }}
|
{{- toYaml .Values.mcp.sidecars.homeassistant.resources | nindent 12 }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- if .Values.mcp.sidecars.github.enabled }}
|
|
||||||
- name: github-mcp
|
|
||||||
image: "{{ .Values.mcp.sidecars.github.image.repository }}:{{ .Values.mcp.sidecars.github.image.tag }}"
|
|
||||||
imagePullPolicy: Always
|
|
||||||
args:
|
|
||||||
- --sse
|
|
||||||
- --port={{ .Values.mcp.sidecars.github.port }}
|
|
||||||
ports:
|
|
||||||
- name: github
|
|
||||||
containerPort: {{ .Values.mcp.sidecars.github.port }}
|
|
||||||
env:
|
|
||||||
- name: GITHUB_PERSONAL_ACCESS_TOKEN
|
|
||||||
valueFrom:
|
|
||||||
secretKeyRef:
|
|
||||||
name: {{ include "antigravity.envSecretName" . }}
|
|
||||||
key: GITHUB_TOKEN
|
|
||||||
optional: true
|
|
||||||
livenessProbe:
|
|
||||||
httpGet:
|
|
||||||
path: /health
|
|
||||||
port: {{ .Values.mcp.sidecars.github.port }}
|
|
||||||
initialDelaySeconds: 10
|
|
||||||
periodSeconds: 10
|
|
||||||
readinessProbe:
|
|
||||||
httpGet:
|
|
||||||
path: /health
|
|
||||||
port: {{ .Values.mcp.sidecars.github.port }}
|
|
||||||
initialDelaySeconds: 5
|
|
||||||
periodSeconds: 5
|
|
||||||
resources:
|
|
||||||
{{- toYaml .Values.mcp.sidecars.github.resources | nindent 12 }}
|
|
||||||
{{- end }}
|
|
||||||
{{- if .Values.mcp.sidecars.pgtuner.enabled }}
|
{{- if .Values.mcp.sidecars.pgtuner.enabled }}
|
||||||
- name: pgtuner-mcp
|
- name: pgtuner-mcp
|
||||||
image: "{{ .Values.mcp.sidecars.pgtuner.image.repository }}:{{ .Values.mcp.sidecars.pgtuner.image.tag }}"
|
image: "{{ .Values.mcp.sidecars.pgtuner.image.repository }}:{{ .Values.mcp.sidecars.pgtuner.image.tag }}"
|
||||||
imagePullPolicy: Always
|
imagePullPolicy: Always
|
||||||
command: ["python", "-m", "pgtuner_mcp", "--transport", "sse", "--port", "{{ .Values.mcp.sidecars.pgtuner.port }}"]
|
command: ["python", "-m", "pgtuner_mcp", "--mode", "sse", "--host", "0.0.0.0", "--port", "{{ .Values.mcp.sidecars.pgtuner.port }}"]
|
||||||
ports:
|
ports:
|
||||||
- name: pgtuner
|
- name: pgtuner
|
||||||
containerPort: {{ .Values.mcp.sidecars.pgtuner.port }}
|
containerPort: {{ .Values.mcp.sidecars.pgtuner.port }}
|
||||||
|
|||||||
@@ -177,9 +177,6 @@
|
|||||||
"homeassistant": {
|
"homeassistant": {
|
||||||
"$ref": "#/$defs/mcpSidecar"
|
"$ref": "#/$defs/mcpSidecar"
|
||||||
},
|
},
|
||||||
"github": {
|
|
||||||
"$ref": "#/$defs/mcpSidecar"
|
|
||||||
},
|
|
||||||
"pgtuner": {
|
"pgtuner": {
|
||||||
"$ref": "#/$defs/mcpSidecar"
|
"$ref": "#/$defs/mcpSidecar"
|
||||||
},
|
},
|
||||||
|
|||||||
+1
-16
@@ -123,21 +123,6 @@ mcp:
|
|||||||
memory: "256Mi"
|
memory: "256Mi"
|
||||||
cpu: "500m"
|
cpu: "500m"
|
||||||
|
|
||||||
# GitHub API access (DISABLED: archived image)
|
|
||||||
github:
|
|
||||||
enabled: false
|
|
||||||
image:
|
|
||||||
repository: ghcr.io/modelcontextprotocol/servers/github
|
|
||||||
tag: latest
|
|
||||||
port: 8088
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
memory: "64Mi"
|
|
||||||
cpu: "50m"
|
|
||||||
limits:
|
|
||||||
memory: "256Mi"
|
|
||||||
cpu: "500m"
|
|
||||||
|
|
||||||
# PostgreSQL performance tuning
|
# PostgreSQL performance tuning
|
||||||
pgtuner:
|
pgtuner:
|
||||||
enabled: false # Requires DATABASE_URI in secrets
|
enabled: false # Requires DATABASE_URI in secrets
|
||||||
@@ -157,7 +142,7 @@ mcp:
|
|||||||
playwright:
|
playwright:
|
||||||
enabled: true
|
enabled: true
|
||||||
image:
|
image:
|
||||||
repository: microsoft/playwright-mcp
|
repository: mcr.microsoft.com/playwright/mcp
|
||||||
tag: latest
|
tag: latest
|
||||||
port: 8086
|
port: 8086
|
||||||
resources:
|
resources:
|
||||||
|
|||||||
Reference in New Issue
Block a user