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", [])
|
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))
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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)
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user