From 709c324e18f33a1e7a88a0cdd94b2fb6d19cf5ae Mon Sep 17 00:00:00 2001 From: Soulter <905617992@qq.com> Date: Sat, 12 Apr 2025 18:19:06 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B=20fix:=20=E4=BF=AE=E5=A4=8D=20MCP?= =?UTF-8?q?=20=E6=9C=8D=E5=8A=A1=E5=99=A8=E9=85=8D=E7=BD=AE=E5=A4=84?= =?UTF-8?q?=E7=90=86=E9=80=BB=E8=BE=91=EF=BC=8C=E7=A1=AE=E4=BF=9D=E6=AD=A3?= =?UTF-8?q?=E7=A1=AE=E5=A4=84=E7=90=86=E7=A9=BA=20mcpServers=20=E6=83=85?= =?UTF-8?q?=E5=86=B5=E5=B9=B6=E4=BC=98=E5=8C=96=E4=BB=A3=E7=A0=81=E5=8F=AF?= =?UTF-8?q?=E8=AF=BB=E6=80=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- astrbot/core/provider/func_tool_manager.py | 7 +++---- astrbot/dashboard/routes/tools.py | 4 ++-- dashboard/src/views/ToolUsePage.vue | 2 +- 3 files changed, 6 insertions(+), 7 deletions(-) diff --git a/astrbot/core/provider/func_tool_manager.py b/astrbot/core/provider/func_tool_manager.py index 0de8a9054..53f5048fa 100644 --- a/astrbot/core/provider/func_tool_manager.py +++ b/astrbot/core/provider/func_tool_manager.py @@ -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( diff --git a/astrbot/dashboard/routes/tools.py b/astrbot/dashboard/routes/tools.py index 2bf1b6e18..9a3c5aa53 100644 --- a/astrbot/dashboard/routes/tools.py +++ b/astrbot/dashboard/routes/tools.py @@ -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 diff --git a/dashboard/src/views/ToolUsePage.vue b/dashboard/src/views/ToolUsePage.vue index 1d27811d6..a3121f0f6 100644 --- a/dashboard/src/views/ToolUsePage.vue +++ b/dashboard/src/views/ToolUsePage.vue @@ -408,7 +408,7 @@ export default { setInterval(() => { this.getServers(); this.getTools(); - }, 5000); // 每10秒刷新一次服务器列表 + }, 5000); // 每 5 秒刷新一次服务器列表 },