Add enable-toggles for mcp servers and particular tools
This commit is contained in:
parent
4989a0898f
commit
7d04a7227d
|
|
@ -166,11 +166,19 @@ def fetch_mcp_tools(server_config, debug_callback=None):
|
|||
# Получаем кастомные описания из конфига
|
||||
fetched_tools_ui = server_config.get("fetchedTools", [])
|
||||
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:
|
||||
# Если инструмент отключен в настройках плагина — пропускаем
|
||||
if not enabled_tools.get(t.name, True):
|
||||
continue
|
||||
|
||||
# Если есть кастомное описание и оно не пустое - используем его
|
||||
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))
|
||||
|
||||
|
|
|
|||
|
|
@ -253,6 +253,10 @@ def get_dynamic_tools(obsidian_settings: dict, debug_callback=None):
|
|||
# Инициализация внутренних MCP серверов
|
||||
mcp_servers = obsidian_settings.get("mcpServers", [])
|
||||
for mcp_server in mcp_servers:
|
||||
# Пропускаем отключенные серверы
|
||||
if not mcp_server.get("isEnabled", True):
|
||||
continue
|
||||
|
||||
mcp_tools = fetch_mcp_tools(mcp_server, debug_callback)
|
||||
tools.extend(mcp_tools)
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user