MCP-Server: URL optional – URL-lose Einträge als reine Allowlist-Freigabe
Entkoppelt "Server erzeugen" von "Server erlauben": Ein MCP-Eintrag ohne URL erzeugt keinen eigenen (kollidierenden) HTTP-Server mehr, steuert aber weiterhin die Allowlist-Freigabe mcp__<name>__* bei. Gedacht für extern (z.B. stdio via ~/.claude.json) laufende Server, die gott nur erlauben, aber nicht selbst starten soll – sonst kollidiert gotts URL-Server mit dem gleichnamigen externen und der Server verschwindet ganz. - ParseMcpServers: Url optional (null erlaubt), nur Name+leer wird verworfen - Frontend: Name genügt, URL-Placeholder + Hinweistext angepasst Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
1 parent
9d21138e62
commit
4d29b09488
3 files changed
+13
-9
No files matched your search
+2
-2
@@ -172,10 +172,10 @@
|
||||
<label>Benutzerdefinierte Befehle</label>
|
||||
<div class="custom-commands" id="customCommandsList"></div>
|
||||
<button type="button" id="addCommandBtn" class="add-cmd-btn">+ Befehl hinzufügen</button>
|
||||
<label>MCP-Server <small>(optional, URL-basiert)</small></label>
|
||||
<label>MCP-Server <small>(optional)</small></label>
|
||||
<div class="mcp-servers" id="mcpServersList"></div>
|
||||
<button type="button" id="addMcpServerBtn" class="add-cmd-btn">+ MCP-Server hinzufügen</button>
|
||||
<small class="form-hint">Pro Eintrag: Name, URL (http/sse) und optionaler Token. Der Name muss <b>exakt</b> dem Tool-Präfix entsprechen (z.B. <code>UnityMCP</code>, nicht <code>Unity</code>). Tools werden headless als <code>mcp__<name>__*</code> freigegeben.</small>
|
||||
<small class="form-hint">Pro Eintrag: Name, optionale URL (http/sse) und optionaler Token. Der Name muss <b>exakt</b> dem Tool-Präfix entsprechen (z.B. <code>UnityMCP</code>, nicht <code>Unity</code>); Tools werden headless als <code>mcp__<name>__*</code> freigegeben. <b>URL leer lassen</b>, wenn der Server bereits extern läuft (z.B. stdio via <code>~/.claude.json</code>) – dann gibt gott ihn nur frei und erzeugt <b>keinen</b> eigenen, kollidierenden Server.</small>
|
||||
<label>Telegram Bot</label>
|
||||
<div id="telegramBotSelectCard" class="agent-select-card">
|
||||
<div class="agent-select-empty"><i class="fa fa-paper-plane"></i> Kein Bot zugewiesen</div>
|
||||
|
||||
@@ -12,7 +12,7 @@ function createMcpServerRow(container, name, url, token) {
|
||||
item.innerHTML = `
|
||||
<div class="mcp-server-fields">
|
||||
<input type="text" class="mcp-name" placeholder="Name (z.B. UnityMCP)" value="${esc(name)}" autocomplete="off">
|
||||
<input type="text" class="mcp-url" placeholder="URL (z.B. http://localhost:8080)" value="${esc(url)}" autocomplete="off">
|
||||
<input type="text" class="mcp-url" placeholder="URL (optional – leer = nur Freigabe)" value="${esc(url)}" autocomplete="off">
|
||||
<input type="password" class="mcp-token" placeholder="Token (optional)" value="${esc(token)}" autocomplete="off">
|
||||
</div>
|
||||
<button type="button" class="remove-mcp-btn icon-btn"><i class="fa fa-times"></i></button>
|
||||
@@ -29,8 +29,8 @@ function getMcpServersFromUI(container) {
|
||||
var name = item.querySelector('.mcp-name').value.trim();
|
||||
var url = item.querySelector('.mcp-url').value.trim();
|
||||
var token = item.querySelector('.mcp-token').value.trim();
|
||||
// Nur vollständige Einträge (Name + URL) übernehmen.
|
||||
if (name && url) servers.push({ name: name, url: url, token: token || null });
|
||||
// Name genügt. Ohne URL = reiner Freigabe-Eintrag (kein eigener Server, nur Allowlist).
|
||||
if (name) servers.push({ name: name, url: url || null, token: token || null });
|
||||
}
|
||||
return servers.length > 0 ? servers : null;
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user