From 044d628a47f063bcbbd9adba7860542156a0c66e Mon Sep 17 00:00:00 2001 From: Clawd Date: Sun, 1 Mar 2026 10:15:14 -0800 Subject: feat(mcp): add tool discovery and per-tool permissions - Add MCP protocol client for tool discovery (initialize + tools/list) - Show discovered tools in settings UI with enable/disable checkboxes - Build explicit allowedTools list from enabled MCP tools - Remove bypassPermissions hack - now uses proper tool allowlisting - Format: mcp__servername__toolname for SDK allowedTools --- src/main/preload.ts | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'src/main/preload.ts') diff --git a/src/main/preload.ts b/src/main/preload.ts index 44467db..e7ee0aa 100644 --- a/src/main/preload.ts +++ b/src/main/preload.ts @@ -63,6 +63,15 @@ export interface ClaudeFlowAPI { // Dialogs selectDirectory: () => Promise; + // MCP + discoverMcpTools: (config: { + type: "stdio" | "sse" | "http"; + command?: string; + args?: string[]; + env?: Record; + url?: string; + }) => Promise<{ tools: Array<{ name: string; description?: string }>; error?: string }>; + // Window toggleMaximize: () => Promise; onWindowMaximized: (cb: (isMaximized: boolean) => void) => () => void; @@ -132,6 +141,9 @@ const api: ClaudeFlowAPI = { return result; }, + // MCP + discoverMcpTools: (config) => ipcRenderer.invoke("mcp:discoverTools", config), + // Window toggleMaximize: () => ipcRenderer.invoke("window:toggleMaximize"), onWindowMaximized: (cb) => { -- cgit v1.2.3