Add enable-toggles for mcp servers and particular tools

This commit is contained in:
dimitrievgs 2026-06-14 23:16:30 +03:00
parent 4989a0898f
commit 7d04a7227d
2 changed files with 13 additions and 1 deletions

View File

@ -166,11 +166,19 @@ def fetch_mcp_tools(server_config, debug_callback=None):
# Получаем кастомные описания из конфига # Получаем кастомные описания из конфига
fetched_tools_ui = server_config.get("fetchedTools", []) fetched_tools_ui = server_config.get("fetchedTools", [])
custom_descriptions = {t.get("name"): t.get("customDescription") for t in fetched_tools_ui} custom_descriptions = {t.get("name"): t.get("customDescription") for t in fetched_tools_ui}
enabled_tools = {t.get("name"): t.get("isEnabled", True) for t in fetched_tools_ui}
for t in raw_tools: for t in raw_tools:
# Если инструмент отключен в настройках плагина — пропускаем
if not enabled_tools.get(t.name, True):
continue
# Если есть кастомное описание и оно не пустое - используем его # Если есть кастомное описание и оно не пустое - используем его
c_desc = custom_descriptions.get(t.name) c_desc = custom_descriptions.get(t.name)
final_description = c_desc if c_desc and c_desc.strip() else t.description if c_desc and c_desc.strip():
final_description = f"{t.description}\n\nДОПОЛНИТЕЛЬНЫЕ ИНСТРУКЦИИ:\n{c_desc.strip()}"
else:
final_description = t.description
wrapped_tools.append(create_mcp_tool(server_config, t.name, final_description, t.inputSchema, full_env, args, debug_callback)) wrapped_tools.append(create_mcp_tool(server_config, t.name, final_description, t.inputSchema, full_env, args, debug_callback))

View File

@ -253,6 +253,10 @@ def get_dynamic_tools(obsidian_settings: dict, debug_callback=None):
# Инициализация внутренних MCP серверов # Инициализация внутренних MCP серверов
mcp_servers = obsidian_settings.get("mcpServers", []) mcp_servers = obsidian_settings.get("mcpServers", [])
for mcp_server in mcp_servers: for mcp_server in mcp_servers:
# Пропускаем отключенные серверы
if not mcp_server.get("isEnabled", True):
continue
mcp_tools = fetch_mcp_tools(mcp_server, debug_callback) mcp_tools = fetch_mcp_tools(mcp_server, debug_callback)
tools.extend(mcp_tools) tools.extend(mcp_tools)