apiVersion: toolhive.stacklok.dev/v1beta1 kind: MCPServer metadata: name: argocd-mcp namespace: toolhive-system spec: # argoproj-labs MCP server for Argo CD. The image entrypoint already launches # the server (default stdio transport); ToolHive proxies it to streamable-http # at http://mcp-argocd-mcp-proxy.mcp-services:8080/mcp. # NOTE: do NOT set args — the image ENTRYPOINT is `node` and any args replace # the script path (e.g. "stdio" -> node stdio -> "Cannot find module /app/stdio"). image: ghcr.io/argoproj-labs/mcp-for-argocd:v0.7.0 transport: stdio proxyMode: streamable-http proxyPort: 8080 groupRef: name: homelab-core env: - name: ARGOCD_BASE_URL value: http://argocd-server.argocd.svc.cluster.local # argocd-server serves a self-signed cert in-cluster. - name: NODE_TLS_REJECT_UNAUTHORIZED value: "0" # Start read-only; drop this to enable sync/write tools later. - name: MCP_READ_ONLY value: "true" # ToolHive 0.28.3 does not translate spec.secrets into the workload, so inject # the token natively on the `mcp` container via podTemplateSpec. podTemplateSpec: spec: groupRef: name: homelab-core containers: - name: mcp env: - name: ARGOCD_API_TOKEN valueFrom: secretKeyRef: name: argocd-mcp-secret key: token permissionProfile: type: builtin name: network resources: requests: cpu: 100m memory: 128Mi limits: cpu: 500m memory: 512Mi