Skip to content

Commit da3a2f3

Browse files
fix: sse url to claude desktop is not converted
1 parent 0f24080 commit da3a2f3

File tree

2 files changed

+18
-8
lines changed

2 files changed

+18
-8
lines changed

src/mcpm/clients/managers/claude_desktop.py

Lines changed: 17 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,10 @@
44

55
import logging
66
import os
7-
from typing import Any, Dict
7+
from typing import Any, Dict, override
88

99
from mcpm.clients.base import JSONClientManager
10-
from mcpm.schemas.server_config import ServerConfig
10+
from mcpm.schemas.server_config import ServerConfig, SSEServerConfig, STDIOServerConfig
1111
from mcpm.utils.router_server import format_server_url_with_proxy_headers
1212

1313
logger = logging.getLogger(__name__)
@@ -116,8 +116,18 @@ def is_server_disabled(self, server_name: str) -> bool:
116116
def _format_router_server(self, profile_name, base_url) -> ServerConfig:
117117
return format_server_url_with_proxy_headers(self.client_key, profile_name, base_url)
118118

119-
# Uses base class implementation of remove_server
120-
121-
# Uses base class implementation of get_server
122-
123-
# Uses base class implementation of list_servers
119+
@override
120+
def to_client_format(self, server_config: ServerConfig) -> Dict[str, Any]:
121+
if isinstance(server_config, SSEServerConfig):
122+
# use mcp proxy to convert to stdio as sse is not supported for claude desktop yet
123+
return self.to_client_format(
124+
STDIOServerConfig(
125+
name=server_config.name,
126+
command="uvx",
127+
args=[
128+
"mcp-proxy",
129+
server_config.url,
130+
],
131+
)
132+
)
133+
return super().to_client_format(server_config)

src/mcpm/router/transport.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ def patch_meta_data(body: bytes, **kwargs) -> bytes:
3232
data = json.loads(body.decode("utf-8"))
3333

3434
for key, value in kwargs.items():
35-
data["params"]["_meta"][key] = value
35+
data["params"].setdefault("_meta", {})[key] = value
3636
return json.dumps(data).encode("utf-8")
3737

3838

0 commit comments

Comments
 (0)