diff --git a/Services/ClaudeCliService.cs b/Services/ClaudeCliService.cs index c1f8b44..922e5c9 100644 --- a/Services/ClaudeCliService.cs +++ b/Services/ClaudeCliService.cs @@ -410,14 +410,19 @@ public class ClaudeCliService tools.Add("mcp__gott-remote__memory_list"); } // Benutzerdefinierte MCP-Server: alle Tools je Server erlauben. - // Glob mcp__** ist bewusst locker (fängt Casing-/Präfix-Varianten ab, - // z.B. Servername "unity" vs. tatsächlicher Tool-Präfix "UnityMCP"). + // WICHTIG: Die CLI-Permission-Engine vergleicht den SERVER-Namen per strenger + // Gleichheit (Regel wird als mcp____ geparst; ein '*' wirkt NUR im + // Tool-Teil, NICHT im Server-Teil). Ein Glob wie "mcp__**" würde zu einem + // Server namens "**" parsen und NIE matchen. Daher exakte Form + // "mcp____*" (exakter Server + alle Tools) – dieselbe Form wie web-search-prime. + // Konsequenz: Der eingetragene Name MUSS dem echten Tool-Präfix entsprechen + // (z.B. "UnityMCP", nicht "Unity"). if (mcpServerNames != null) { foreach (var mcpName in mcpServerNames) { if (!string.IsNullOrWhiteSpace(mcpName)) - tools.Add($"mcp__*{mcpName}*"); + tools.Add($"mcp__{mcpName}__*"); } } args.Add("--allowed-tools"); diff --git a/wwwroot/index.html b/wwwroot/index.html index de7e37e..c86aa30 100644 --- a/wwwroot/index.html +++ b/wwwroot/index.html @@ -175,7 +175,7 @@
- Pro Eintrag: Name, URL (http/sse) und optionaler Token. Tools werden headless als mcp__*<name>* freigegeben. + Pro Eintrag: Name, URL (http/sse) und optionaler Token. Der Name muss exakt dem Tool-Präfix entsprechen (z.B. UnityMCP, nicht Unity). Tools werden headless als mcp__<name>__* freigegeben.
Kein Bot zugewiesen