🐛 fix: 修复 MCP 服务器配置处理逻辑,确保正确处理空 mcpServers 情况并优化代码可读性
This commit is contained in:
@@ -95,11 +95,10 @@ class MCPClient:
|
||||
mcp_server_config (dict): Configuration for the MCP server. See https://modelcontextprotocol.io/quickstart/server
|
||||
"""
|
||||
cfg = mcp_server_config.copy()
|
||||
print(cfg)
|
||||
if "mcpServers" in cfg:
|
||||
if "mcpServers" in cfg and len(cfg["mcpServers"]) > 0:
|
||||
key_0 = list(cfg["mcpServers"].keys())[0]
|
||||
cfg = cfg["mcpServers"][key_0]
|
||||
cfg.pop("active", None)
|
||||
cfg.pop("active", None) # Remove active flag from config
|
||||
server_params = mcp.StdioServerParameters(
|
||||
**cfg,
|
||||
)
|
||||
@@ -279,7 +278,7 @@ class FuncCall:
|
||||
self.func_list = [
|
||||
f
|
||||
for f in self.func_list
|
||||
if not (f.origin == "mcp")
|
||||
if f.origin != "mcp"
|
||||
]
|
||||
|
||||
async def _init_mcp_client_task_wrapper(
|
||||
|
||||
@@ -107,7 +107,7 @@ class ToolsRoute(Route):
|
||||
for key, value in server_data.items():
|
||||
if key not in ["name", "active", "tools"]: # 排除特殊字段
|
||||
if key == "mcpServers":
|
||||
key_0 = list(server_data["mcpServers"].keys())[0]
|
||||
key_0 = list(server_data["mcpServers"].keys())[0] # 不考虑为空的情况
|
||||
server_config = server_data["mcpServers"][key_0]
|
||||
else:
|
||||
server_config[key] = value
|
||||
@@ -168,7 +168,7 @@ class ToolsRoute(Route):
|
||||
for key, value in server_data.items():
|
||||
if key not in ["name", "active", "tools"]: # 排除特殊字段
|
||||
if key == "mcpServers":
|
||||
key_0 = list(server_data["mcpServers"].keys())[0]
|
||||
key_0 = list(server_data["mcpServers"].keys())[0] # 不考虑为空的情况
|
||||
server_config = server_data["mcpServers"][key_0]
|
||||
else:
|
||||
server_config[key] = value
|
||||
|
||||
@@ -408,7 +408,7 @@ export default {
|
||||
setInterval(() => {
|
||||
this.getServers();
|
||||
this.getTools();
|
||||
}, 5000); // 每10秒刷新一次服务器列表
|
||||
}, 5000); // 每 5 秒刷新一次服务器列表
|
||||
|
||||
},
|
||||
|
||||
|
||||
Reference in New Issue
Block a user