diff --git a/src/mcp_integration/__init__.py b/src/mcp_integration/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/src/mcp_integration/client_manager.py b/src/mcp_integration/client_manager.py deleted file mode 100644 index 5f282702b..000000000 --- a/src/mcp_integration/client_manager.py +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/mcp_integration/config_loader.py b/src/mcp_integration/config_loader.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/src/mcp_integration/tool_wrapper.py b/src/mcp_integration/tool_wrapper.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/src/plugin_system/core/mcp_client_manager.py b/src/plugin_system/core/mcp_client_manager.py index 02bd0eaa3..de19383fe 100644 --- a/src/plugin_system/core/mcp_client_manager.py +++ b/src/plugin_system/core/mcp_client_manager.py @@ -10,7 +10,7 @@ from pathlib import Path from typing import Any import mcp.types -from fastmcp.client import Client, StreamableHttpTransport +from fastmcp.client import Client, StdioTransport, StreamableHttpTransport from src.common.logger import get_logger @@ -169,11 +169,17 @@ class MCPClientManager: client = Client(transport, timeout=server_config.timeout) - elif transport_type == "sse": - from fastmcp.client import SSETransport + elif transport_type == "stdio": + # stdio 传输:通过标准输入输出与本地进程通信 + command = server_config.transport_config.get("command") + args = server_config.transport_config.get("args", []) - url = server_config.transport_config["url"] - client = Client(SSETransport(url), timeout=server_config.timeout) + if not command: + raise ValueError("stdio 传输需要提供 'command' 参数") + + # 创建 stdio 传输 + transport = StdioTransport(command, args) + client = Client(transport, timeout=server_config.timeout) else: raise ValueError(f"不支持的传输类型: {transport_type}")