Skip to content

Commit 4e06335

Browse files
author
jzhu
committed
fix gemini mcp impl
1 parent ed9fe89 commit 4e06335

1 file changed

Lines changed: 39 additions & 0 deletions

File tree

code_assistant_manager/mcp/gemini.py

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,45 @@ class GeminiMCPClient(MCPClient):
1212
def __init__(self):
1313
super().__init__("gemini")
1414

15+
def _convert_server_config_to_client_format(self, server_config) -> dict:
16+
"""
17+
Override to provide Gemini-specific server config conversion.
18+
19+
For HTTP-type servers, Gemini uses 'httpUrl' instead of 'url'.
20+
21+
Args:
22+
server_config: STDIOServerConfig or RemoteServerConfig object
23+
24+
Returns:
25+
Dict in Gemini configuration format
26+
"""
27+
if hasattr(server_config, "url") and server_config.url:
28+
# Remote/HTTP server - use Gemini's httpUrl format
29+
config = {
30+
"httpUrl": server_config.url,
31+
}
32+
if hasattr(server_config, "headers") and server_config.headers:
33+
config["headers"] = server_config.headers
34+
return config
35+
else:
36+
# STDIO server - use base implementation
37+
config = {
38+
"type": "stdio",
39+
"command": getattr(server_config, "command", "echo"),
40+
}
41+
42+
args = getattr(server_config, "args", [])
43+
if args:
44+
config["args"] = args
45+
else:
46+
config["args"] = []
47+
48+
env = getattr(server_config, "env", {})
49+
if env:
50+
config["env"] = env
51+
52+
return config
53+
1554
def add_server(self, server_name: str, scope: str = "user") -> bool:
1655
"""Add a server to Gemini config files immediately using config file editing for efficiency."""
1756
# Get server configuration from registry

0 commit comments

Comments
 (0)