From d64e49e893ac83c8c1b3970f1c537b1197450be5 Mon Sep 17 00:00:00 2001 From: Levi Neely Date: Wed, 1 Apr 2026 00:51:32 +0200 Subject: [PATCH] Fix MCP subprocess env: start from os.Environ(), append extras The loop was calling append(os.Environ(), ...) on each iteration, discarding all but the last extra env var. Start cmd.Env from os.Environ() once, then append each configured key=value pair. Co-Authored-By: Claude Sonnet 4.6 --- mcp/transport.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mcp/transport.go b/mcp/transport.go index 1d6a831..d65e804 100644 --- a/mcp/transport.go +++ b/mcp/transport.go @@ -21,8 +21,9 @@ func NewSTDIOTransport(command string, args []string, env map[string]string) *ST // Connect launches the subprocess and returns a connected Client. func (t *STDIOTransport) Connect() (*Client, error) { cmd := exec.Command(t.command, t.args...) + cmd.Env = os.Environ() for k, v := range t.env { - cmd.Env = append(os.Environ(), fmt.Sprintf("%s=%s", k, v)) + cmd.Env = append(cmd.Env, fmt.Sprintf("%s=%s", k, v)) } stdin, err := cmd.StdinPipe()