From 9b6004fe96015a73e2dbf1fd60fc2c0fc95804cb Mon Sep 17 00:00:00 2001 From: Cian Johnston Date: Wed, 2 Apr 2025 17:35:57 +0100 Subject: [PATCH 1/2] fix(cli): exp mcp configure: also read claude API key from canonical CLAUDE_API_KEY env --- cli/exp_mcp.go | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/cli/exp_mcp.go b/cli/exp_mcp.go index 0c06cfb30da01..865848a004218 100644 --- a/cli/exp_mcp.go +++ b/cli/exp_mcp.go @@ -110,7 +110,8 @@ func (*RootCmd) mcpConfigureClaudeDesktop() *serpent.Command { func (*RootCmd) mcpConfigureClaudeCode() *serpent.Command { var ( - apiKey string + claudeAPIKey string + claudeAPIKeyAlt string claudeConfigPath string claudeMDPath string systemPrompt string @@ -140,6 +141,9 @@ func (*RootCmd) mcpConfigureClaudeCode() *serpent.Command { } else { configureClaudeEnv["CODER_AGENT_TOKEN"] = agentToken } + if claudeAPIKey == "" && claudeAPIKeyAlt == "" { + cliui.Warnf(inv.Stderr, "Neither CODER_MCP_CLAUDE_API_KEY nor CLAUDE_API_KEY are set.") + } if appStatusSlug != "" { configureClaudeEnv["CODER_MCP_APP_STATUS_SLUG"] = appStatusSlug } @@ -151,7 +155,7 @@ func (*RootCmd) mcpConfigureClaudeCode() *serpent.Command { if err := configureClaude(fs, ClaudeConfig{ // TODO: will this always be stable? AllowedTools: []string{`mcp__coder__coder_report_task`}, - APIKey: apiKey, + APIKey: claudeAPIKey, ConfigPath: claudeConfigPath, ProjectDirectory: projectDirectory, MCPServers: map[string]ClaudeConfigMCP{ @@ -191,11 +195,18 @@ func (*RootCmd) mcpConfigureClaudeCode() *serpent.Command { Default: filepath.Join(os.Getenv("HOME"), ".claude", "CLAUDE.md"), }, { - Name: "api-key", - Description: "The API key to use for the Claude Code server.", - Env: "CODER_MCP_CLAUDE_API_KEY", + Name: "claude-api-key", + Description: "The API key to use for the Claude Code server. This is also read from CLAUDE_API_KEY.", + Env: "CLAUDE_API_KEY", Flag: "claude-api-key", - Value: serpent.StringOf(&apiKey), + Value: serpent.StringOf(&claudeAPIKey), + }, + { + Name: "mcp-claude-api-key", + Description: "Hidden alias for CLAUDE_API_KEY. This will be removed in a future version.", + Env: "CODER_MCP_CLAUDE_API_KEY", + Value: serpent.StringOf(&claudeAPIKeyAlt), + Hidden: true, }, { Name: "system-prompt", From f14f8c02a64849d6f1a0999268c34aae2dc302ad Mon Sep 17 00:00:00 2001 From: Cian Johnston Date: Wed, 2 Apr 2025 17:46:16 +0100 Subject: [PATCH 2/2] fixup! fix(cli): exp mcp configure: also read claude API key from canonical CLAUDE_API_KEY env --- cli/exp_mcp.go | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/cli/exp_mcp.go b/cli/exp_mcp.go index 865848a004218..2726f2a3d53cc 100644 --- a/cli/exp_mcp.go +++ b/cli/exp_mcp.go @@ -111,12 +111,13 @@ func (*RootCmd) mcpConfigureClaudeDesktop() *serpent.Command { func (*RootCmd) mcpConfigureClaudeCode() *serpent.Command { var ( claudeAPIKey string - claudeAPIKeyAlt string claudeConfigPath string claudeMDPath string systemPrompt string appStatusSlug string testBinaryName string + + deprecatedCoderMCPClaudeAPIKey string ) cmd := &serpent.Command{ Use: "claude-code ", @@ -141,8 +142,13 @@ func (*RootCmd) mcpConfigureClaudeCode() *serpent.Command { } else { configureClaudeEnv["CODER_AGENT_TOKEN"] = agentToken } - if claudeAPIKey == "" && claudeAPIKeyAlt == "" { - cliui.Warnf(inv.Stderr, "Neither CODER_MCP_CLAUDE_API_KEY nor CLAUDE_API_KEY are set.") + if claudeAPIKey == "" { + if deprecatedCoderMCPClaudeAPIKey == "" { + cliui.Warnf(inv.Stderr, "CLAUDE_API_KEY is not set.") + } else { + cliui.Warnf(inv.Stderr, "CODER_MCP_CLAUDE_API_KEY is deprecated, use CLAUDE_API_KEY instead") + claudeAPIKey = deprecatedCoderMCPClaudeAPIKey + } } if appStatusSlug != "" { configureClaudeEnv["CODER_MCP_APP_STATUS_SLUG"] = appStatusSlug @@ -205,7 +211,7 @@ func (*RootCmd) mcpConfigureClaudeCode() *serpent.Command { Name: "mcp-claude-api-key", Description: "Hidden alias for CLAUDE_API_KEY. This will be removed in a future version.", Env: "CODER_MCP_CLAUDE_API_KEY", - Value: serpent.StringOf(&claudeAPIKeyAlt), + Value: serpent.StringOf(&deprecatedCoderMCPClaudeAPIKey), Hidden: true, }, { pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy