aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/preload.ts
diff options
context:
space:
mode:
authorClawd <ai@clawd.bot>2026-03-01 10:15:14 -0800
committerClawd <ai@clawd.bot>2026-03-01 10:15:14 -0800
commit044d628a47f063bcbbd9adba7860542156a0c66e (patch)
tree9796fa37fc048a9613710e13bdb6b0ea29caa6b1 /src/main/preload.ts
parent66a73c463468bfcaad5627ca26fb25215f47d256 (diff)
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
Diffstat (limited to 'src/main/preload.ts')
-rw-r--r--src/main/preload.ts12
1 files changed, 12 insertions, 0 deletions
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 {
63 // Dialogs 63 // Dialogs
64 selectDirectory: () => Promise<string | null>; 64 selectDirectory: () => Promise<string | null>;
65 65
66 // MCP
67 discoverMcpTools: (config: {
68 type: "stdio" | "sse" | "http";
69 command?: string;
70 args?: string[];
71 env?: Record<string, string>;
72 url?: string;
73 }) => Promise<{ tools: Array<{ name: string; description?: string }>; error?: string }>;
74
66 // Window 75 // Window
67 toggleMaximize: () => Promise<void>; 76 toggleMaximize: () => Promise<void>;
68 onWindowMaximized: (cb: (isMaximized: boolean) => void) => () => void; 77 onWindowMaximized: (cb: (isMaximized: boolean) => void) => () => void;
@@ -132,6 +141,9 @@ const api: ClaudeFlowAPI = {
132 return result; 141 return result;
133 }, 142 },
134 143
144 // MCP
145 discoverMcpTools: (config) => ipcRenderer.invoke("mcp:discoverTools", config),
146
135 // Window 147 // Window
136 toggleMaximize: () => ipcRenderer.invoke("window:toggleMaximize"), 148 toggleMaximize: () => ipcRenderer.invoke("window:toggleMaximize"),
137 onWindowMaximized: (cb) => { 149 onWindowMaximized: (cb) => {