Skip to content

Commit de4f587

Browse files
committed
Refactor tool management: Optimize tool validation and enablement logic by caching tool list
1 parent 5a8aadd commit de4f587

2 files changed

Lines changed: 5 additions & 4 deletions

File tree

Unity-MCP-Plugin/Assets/root/Editor/Scripts/UnityMcpPluginEditor.Config.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
using System.IO;
1414
using System.Linq;
1515
using System.Text.Json;
16-
using com.IvanMurzak.Unity.MCP.Runtime.Utils;
1716
using Microsoft.Extensions.Logging;
1817
using UnityEngine;
1918

Unity-MCP-Plugin/Assets/root/Runtime/UnityMcpPlugin.Build.cs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -169,9 +169,12 @@ protected virtual void ApplyConfigToMcpPlugin(IMcpPlugin mcpPlugin)
169169
var enabledToolsOverride = unityConnectionConfig.EnabledToolsOverride;
170170
if (enabledToolsOverride != null)
171171
{
172+
var allTools = toolManager.GetAllTools().ToList();
173+
var enabledSet = new HashSet<string>(enabledToolsOverride, StringComparer.OrdinalIgnoreCase);
174+
172175
// Validate requested tool IDs against the registered tool list
173176
var allToolNames = new HashSet<string>(
174-
toolManager.GetAllTools().Select(t => t.Name!),
177+
allTools.Select(t => t.Name!),
175178
StringComparer.OrdinalIgnoreCase);
176179
foreach (var requestedId in enabledToolsOverride)
177180
{
@@ -181,8 +184,7 @@ protected virtual void ApplyConfigToMcpPlugin(IMcpPlugin mcpPlugin)
181184
}
182185

183186
// Apply: enable only tools in the override list, disable all others
184-
var enabledSet = new HashSet<string>(enabledToolsOverride, StringComparer.OrdinalIgnoreCase);
185-
foreach (var tool in toolManager.GetAllTools())
187+
foreach (var tool in allTools)
186188
{
187189
var isEnabled = enabledSet.Contains(tool.Name!);
188190
toolManager.SetToolEnabled(tool.Name!, isEnabled);

0 commit comments

Comments
 (0)