From 4417b61fd18e23ec6eec391ec9b544d20c7fe6f9 Mon Sep 17 00:00:00 2001 From: "Junyan Qin (Chin)" Date: Sun, 20 Apr 2025 15:01:54 +0800 Subject: [PATCH] feat: read mcp servers from config.yaml (#1320) --- pkg/core/app.py | 2 +- pkg/core/notes/n003_print_version.py | 4 ++-- pkg/provider/tools/loaders/mcp.py | 4 ++-- templates/config.yaml | 2 ++ 4 files changed, 7 insertions(+), 5 deletions(-) diff --git a/pkg/core/app.py b/pkg/core/app.py index e8409741..1c4042f8 100644 --- a/pkg/core/app.py +++ b/pkg/core/app.py @@ -71,7 +71,7 @@ class Application: sensitive_meta: config_mgr.ConfigManager = None - instance_secret_meta: config_mgr.ConfigManager = None + instance_secret_meta: config_mgr.ConfigManager = None # deprecated pipeline_config_meta_trigger: config_mgr.ConfigManager = None pipeline_config_meta_safety: config_mgr.ConfigManager = None diff --git a/pkg/core/notes/n003_print_version.py b/pkg/core/notes/n003_print_version.py index 6eed21d6..91208fdf 100644 --- a/pkg/core/notes/n003_print_version.py +++ b/pkg/core/notes/n003_print_version.py @@ -10,7 +10,7 @@ from .. import note, app @note.note_class("PrintVersion", 3) class PrintVersion(note.LaunchNote): - """打印版本信息 + """Print Version Information """ async def need_show(self) -> bool: @@ -18,4 +18,4 @@ class PrintVersion(note.LaunchNote): async def yield_note(self) -> typing.AsyncGenerator[typing.Tuple[str, int], None]: - yield f"当前版本:{self.ap.ver_mgr.get_current_version()}", logging.INFO + yield f"Current Version: {self.ap.ver_mgr.get_current_version()}", logging.INFO diff --git a/pkg/provider/tools/loaders/mcp.py b/pkg/provider/tools/loaders/mcp.py index 6813ea37..6bda7f89 100644 --- a/pkg/provider/tools/loaders/mcp.py +++ b/pkg/provider/tools/loaders/mcp.py @@ -108,7 +108,7 @@ class RuntimeMCPSession: """关闭工具""" await self.session._exit_stack.aclose() -# @loader.loader_class("mcp") +@loader.loader_class("mcp") class MCPLoader(loader.ToolLoader): """MCP 工具加载器。 @@ -126,7 +126,7 @@ class MCPLoader(loader.ToolLoader): async def initialize(self): - for server_config in self.ap.provider_cfg.data.get("mcp", {}).get("servers", []): + for server_config in self.ap.instance_config.data.get("mcp", {}).get("servers", []): if not server_config["enable"]: continue session = RuntimeMCPSession(server_config["name"], server_config, self.ap) diff --git a/templates/config.yaml b/templates/config.yaml index 0037cf06..553d54b6 100644 --- a/templates/config.yaml +++ b/templates/config.yaml @@ -9,6 +9,8 @@ command: concurrency: pipeline: 20 session: 1 +mcp: + servers: [] proxy: http: '' https: ''