Skip to content

GeminiMCP 调用失败:Both GOOGLE_API_KEY and GEMINI_API_KEY are set #1

Description

@ziyangxiao70-cell

问题描述

通过 Claude Code 调用 mcp__gemini__gemini 工具时,返回错误:

{"success": false, "error": "Both GOOGLE_API_KEY and GEMINI_API_KEY are set. Using GOOGLE_API_KEY."}

环境信息

  • 操作系统:Windows 11
  • Gemini CLI 版本:0.17.1
  • GeminiMCP:最新版 (通过 git+https://github.com/GuDaStudio/geminimcp.git 安装)
  • 安装方式claude mcp add gemini -s user --transport stdio -- uvx --from git+https://github.com/GuDaStudio/geminimcp.git geminimcp

复现步骤

  1. 安装 GeminiMCP
  2. 通过 Claude Code 调用 mcp__gemini__gemini 工具
  3. 收到上述错误

调查结果

✅ 直接调用 Gemini CLI 成功

$ gemini --prompt "你好,这是一个测试" -o stream-json

输出正常的 JSON 格式数据,包括 session_idagent_messages

❌ 通过 MCP 调用失败

通过 Claude Code MCP 调用时,GeminiMCP 返回错误。

环境变量检查

通过 PowerShell 检查环境变量(用户级和系统级),均未设置:

[System.Environment]::GetEnvironmentVariable('GOOGLE_API_KEY', 'User')  #
[System.Environment]::GetEnvironmentVariable('GEMINI_API_KEY', 'User')  #

分析

查看 server.py 源代码,发现错误处理逻辑:

except json.JSONDecodeError as error:
    err_message = line
    success = False
    break

这表明 Gemini CLI 输出了一行非 JSON 格式的警告信息:"Both GOOGLE_API_KEY and GEMINI_API_KEY are set. Using GOOGLE_API_KEY.",导致 GeminiMCP 解析失败。

可能的原因

  1. uvx 或 MCP 环境可能设置了某些环境变量
  2. Gemini CLI 在特定条件下输出了警告信息(即使环境变量实际未设置)
  3. 需要在 GeminiMCP 中过滤或忽略非 JSON 格式的警告信息

建议的解决方案

run_shell_command 函数中,可以考虑:

  1. 过滤掉非 JSON 格式的警告信息
  2. 或者在调用 Gemini CLI 时禁用警告输出
  3. 或者在解析前验证行是否为有效 JSON

请求协助

请问是否有其他用户遇到类似问题?是否有推荐的解决方案?

感谢!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions