Skip to content

KUBECONFIG env variable not honored in npx child process #67

Closed
@adietish

Description

@adietish

Steps:

  1. ASSERT: have the KUBECONFIG env var set:
KUBECONFIG=${HOME}/.kube/config:${HOME}/.kube/minikube.yaml

config:

apiVersion: "v1"
kind: "Config"
current-context: "minikube"
preferences: {}

minikube.yaml

apiVersion: v1
clusters:
- cluster:
    certificate-authority: /Users/adietish/.minikube/ca.crt
    extensions:
    - extension:
        last-update: Wed, 08 Jan 2025 15:05:54 CET
        provider: minikube.sigs.k8s.io
        version: v1.34.0
      name: cluster_info
    server: https://127.0.0.1:41825
  name: minikube
contexts:
- context:
    cluster: minikube
    extensions:
    - extension:
        last-update: Wed, 08 Jan 2025 15:05:54 CET
        provider: minikube.sigs.k8s.io
        version: v1.34.0
      name: context_info
    namespace: kube-node-lease
    user: minikube
  name: minikube
kind: Config
preferences: {}
users:
- name: minikube
  user:
    client-certificate: /Users/adietish/.minikube/profiles/minikube/client.crt
    client-key: /Users/adietish/.minikube/profiles/minikube/client.key
  1. ASSERT: have kubernetes mcp server added to the vscode config:
"mcp": {
	"servers": {
		"kubernetes": {
			"command": "npx",
			"args": [
				"kubernetes-mcp-server@latest"
			]
		}
  1. EXEC: start the kubernetes mcp server (json editor for the settings.json file displays a "Start" hint on top of the property)

Result:
The mcp server fails to start because it cannot find the context that the config file is pointing to

2025-04-30 16:11:50.259 [warning] Failed to parse message: "Failed to initialize MCP server: invalid configuration: [context was not found for specified context: kind-kind-cluster, cluster has no server defined]\n"
2025-04-30 16:11:50.262 [warning] [server stderr] node:child_process:921
2025-04-30 16:11:50.262 [warning] [server stderr]     throw err;
2025-04-30 16:11:50.262 [warning] [server stderr]     ^
2025-04-30 16:11:50.262 [warning] [server stderr] 
2025-04-30 16:11:50.262 [warning] [server stderr] Error: Command failed: /Users/adietish/.npm/_npx/acdc49484db51b02/node_modules/kubernetes-mcp-server-darwin-arm64/bin/kubernetes-mcp-server-darwin-arm64
2025-04-30 16:11:50.262 [warning] [server stderr]     at genericNodeError (node:internal/errors:983:15)
2025-04-30 16:11:50.262 [warning] [server stderr]     at wrappedFn (node:internal/errors:537:14)
2025-04-30 16:11:50.262 [warning] [server stderr]     at checkExecSyncError (node:child_process:882:11)
2025-04-30 16:11:50.262 [warning] [server stderr]     at Object.execFileSync (node:child_process:918:15)
2025-04-30 16:11:50.263 [warning] [server stderr]     at Object.<anonymous> (/Users/adietish/.npm/_npx/acdc49484db51b02/node_modules/kubernetes-mcp-server/bin/index.js:24:14)
2025-04-30 16:11:50.263 [warning] [server stderr]     at Module._compile (node:internal/modules/cjs/loader:1734:14)
2025-04-30 16:11:50.263 [warning] [server stderr]     at Object..js (node:internal/modules/cjs/loader:1899:10)
2025-04-30 16:11:50.263 [warning] [server stderr]     at Module.load (node:internal/modules/cjs/loader:1469:32)
2025-04-30 16:11:50.263 [warning] [server stderr]     at Function._load (node:internal/modules/cjs/loader:1286:12)
2025-04-30 16:11:50.263 [warning] [server stderr]     at TracingChannel.traceSync (node:diagnostics_channel:322:14) {
2025-04-30 16:11:50.263 [warning] [server stderr]   status: 1,
2025-04-30 16:11:50.263 [warning] [server stderr]   signal: null,
2025-04-30 16:11:50.263 [warning] [server stderr]   output: [ null, null, null ],
2025-04-30 16:11:50.263 [warning] [server stderr]   pid: 33753,
2025-04-30 16:11:50.263 [warning] [server stderr]   stdout: null,
2025-04-30 16:11:50.263 [warning] [server stderr]   stderr: null
2025-04-30 16:11:50.263 [warning] [server stderr] }
2025-04-30 16:11:50.263 [warning] [server stderr] 
2025-04-30 16:11:50.263 [warning] [server stderr] Node.js v23.9.0
2025-04-30 16:11:50.270 [info] Connection state: Error Process exited with code 1

Once you add the context to the config file (instead of having it in a separate file), the mcp server starts just fine.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions