From acde6b37d6addb2df1a20ec44bda8b80002c8fbf Mon Sep 17 00:00:00 2001 From: josedario87 Date: Fri, 13 Feb 2026 05:42:17 -0600 Subject: [PATCH] feat: Add dynamic MCP tool registration per page - webmcp.ts: Add tool tracking, unregisterTool(), clearAllTools() - tools/canvasTools.ts: render_html, render_vue_component - tools/componentTools.ts: save/load/list/delete_vue_component - tools/themeTools.ts: get_design_tokens, get_active_theme, set_theme_variable, save_theme - tools/globalTools.ts: get_current_page, navigate_to, list_available_tools - toolRegistry.ts: Orchestrates tool registration per page - App.vue: Initializes WebMCP once, watches route for tool changes - Canvas.vue: Removed tool registration (now handled by registry) Tools are now registered when entering a page and unregistered when leaving. Refresh initializes tools correctly for the current page. Co-Authored-By: Claude Opus 4.5 --- .claude/settings.local.json | 5 +- frontend/src/App.vue | 27 +- frontend/src/components/Canvas.vue | 7 +- frontend/src/services/canvasTools.ts | 316 ------------------ frontend/src/services/toolRegistry.ts | 143 ++++++++ frontend/src/services/tools/canvasTools.ts | 146 ++++++++ frontend/src/services/tools/componentTools.ts | 147 ++++++++ frontend/src/services/tools/globalTools.ts | 107 ++++++ frontend/src/services/tools/themeTools.ts | 139 ++++++++ frontend/src/services/webmcp.ts | 47 ++- server/agent-ui.db | Bin 36864 -> 45056 bytes 11 files changed, 759 insertions(+), 325 deletions(-) delete mode 100644 frontend/src/services/canvasTools.ts create mode 100644 frontend/src/services/toolRegistry.ts create mode 100644 frontend/src/services/tools/canvasTools.ts create mode 100644 frontend/src/services/tools/componentTools.ts create mode 100644 frontend/src/services/tools/globalTools.ts create mode 100644 frontend/src/services/tools/themeTools.ts diff --git a/.claude/settings.local.json b/.claude/settings.local.json index 8077561..cdc5a0c 100644 --- a/.claude/settings.local.json +++ b/.claude/settings.local.json @@ -22,7 +22,10 @@ "Bash(C:Usersjodar.bunbinbun.exe create vite . --template vue-ts)", "mcp__agent-ui___webmcp_get-token", "mcp__agent-ui___webmcp_quitar-tool", - "mcp__agent-ui__localhost_3000-render_html" + "mcp__agent-ui__localhost_3000-render_html", + "mcp__agent-ui__localhost_4100-navigate_to", + "mcp__agent-ui__localhost_4100-get_design_tokens", + "mcp__agent-ui__localhost_4100-set_theme_variable" ] }, "enableAllProjectMcpServers": true, diff --git a/frontend/src/App.vue b/frontend/src/App.vue index a3080ff..129fad6 100644 --- a/frontend/src/App.vue +++ b/frontend/src/App.vue @@ -1,8 +1,33 @@