fix(cli): modify exp mcp configure to also read claude API key from CLAUDE_API_KEY env (#17229)

Currently you have to set `CODER_MCP_CLAUDE_API_KEY`, which can be
obnoxious.
This commit is contained in:
Cian Johnston
2025-04-03 09:45:17 +01:00
committed by GitHub
parent 998724de91
commit 4aa45a5c43

View File

@ -110,12 +110,14 @@ func (*RootCmd) mcpConfigureClaudeDesktop() *serpent.Command {
func (*RootCmd) mcpConfigureClaudeCode() *serpent.Command { func (*RootCmd) mcpConfigureClaudeCode() *serpent.Command {
var ( var (
apiKey string claudeAPIKey string
claudeConfigPath string claudeConfigPath string
claudeMDPath string claudeMDPath string
systemPrompt string systemPrompt string
appStatusSlug string appStatusSlug string
testBinaryName string testBinaryName string
deprecatedCoderMCPClaudeAPIKey string
) )
cmd := &serpent.Command{ cmd := &serpent.Command{
Use: "claude-code <project-directory>", Use: "claude-code <project-directory>",
@ -140,6 +142,14 @@ func (*RootCmd) mcpConfigureClaudeCode() *serpent.Command {
} else { } else {
configureClaudeEnv["CODER_AGENT_TOKEN"] = agentToken configureClaudeEnv["CODER_AGENT_TOKEN"] = agentToken
} }
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 != "" { if appStatusSlug != "" {
configureClaudeEnv["CODER_MCP_APP_STATUS_SLUG"] = appStatusSlug configureClaudeEnv["CODER_MCP_APP_STATUS_SLUG"] = appStatusSlug
} }
@ -151,7 +161,7 @@ func (*RootCmd) mcpConfigureClaudeCode() *serpent.Command {
if err := configureClaude(fs, ClaudeConfig{ if err := configureClaude(fs, ClaudeConfig{
// TODO: will this always be stable? // TODO: will this always be stable?
AllowedTools: []string{`mcp__coder__coder_report_task`}, AllowedTools: []string{`mcp__coder__coder_report_task`},
APIKey: apiKey, APIKey: claudeAPIKey,
ConfigPath: claudeConfigPath, ConfigPath: claudeConfigPath,
ProjectDirectory: projectDirectory, ProjectDirectory: projectDirectory,
MCPServers: map[string]ClaudeConfigMCP{ MCPServers: map[string]ClaudeConfigMCP{
@ -191,11 +201,18 @@ func (*RootCmd) mcpConfigureClaudeCode() *serpent.Command {
Default: filepath.Join(os.Getenv("HOME"), ".claude", "CLAUDE.md"), Default: filepath.Join(os.Getenv("HOME"), ".claude", "CLAUDE.md"),
}, },
{ {
Name: "api-key", Name: "claude-api-key",
Description: "The API key to use for the Claude Code server.", Description: "The API key to use for the Claude Code server. This is also read from CLAUDE_API_KEY.",
Env: "CODER_MCP_CLAUDE_API_KEY", Env: "CLAUDE_API_KEY",
Flag: "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(&deprecatedCoderMCPClaudeAPIKey),
Hidden: true,
}, },
{ {
Name: "system-prompt", Name: "system-prompt",