From 6c951a39458b15f0dc3aea1f3ebaa97bee4438b3 Mon Sep 17 00:00:00 2001 From: Vaayne Date: Mon, 29 Dec 2025 15:41:26 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=93=9D=20docs(hub):=20add=20comments=20ex?= =?UTF-8?q?plaining=20why=20hub=20is=20not=20in=20builtin=20list?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Add JSDoc to HubServer class explaining its purpose and design - Add comment to builtinMCPServers explaining hub exclusion - Hub is a meta-server for LLM code mode, auto-enabled internally --- src/main/mcpServers/hub/index.ts | 12 ++++++++++++ src/renderer/src/store/mcp.ts | 8 ++++++++ 2 files changed, 20 insertions(+) diff --git a/src/main/mcpServers/hub/index.ts b/src/main/mcpServers/hub/index.ts index 29a52bafe8..08b3372c26 100644 --- a/src/main/mcpServers/hub/index.ts +++ b/src/main/mcpServers/hub/index.ts @@ -9,6 +9,18 @@ import type { ExecInput, SearchQuery } from './types' const logger = loggerService.withContext('MCPServer:Hub') +/** + * Hub MCP Server - A meta-server that aggregates all active MCP servers. + * + * This server is NOT included in builtinMCPServers because: + * 1. It aggregates tools from all other MCP servers, not a standalone tool provider + * 2. It's designed for LLM "code mode" - enabling AI to discover and call tools programmatically + * 3. It should be auto-enabled when code mode features are used, not manually installed by users + * + * The server exposes two tools: + * - `search`: Find available tools by keywords, returns JS function signatures + * - `exec`: Execute JavaScript code that calls discovered tools + */ export class HubServer { public server: Server private toolRegistry: ToolRegistry diff --git a/src/renderer/src/store/mcp.ts b/src/renderer/src/store/mcp.ts index 3b94248401..72cb4e39dc 100644 --- a/src/renderer/src/store/mcp.ts +++ b/src/renderer/src/store/mcp.ts @@ -86,6 +86,14 @@ export { mcpSlice } // Export the reducer as default export export default mcpSlice.reducer +/** + * User-installable built-in MCP servers shown in the UI. + * + * Note: The `hub` server (@cherry/hub) is intentionally excluded because: + * - It's a meta-server that aggregates all other MCP servers + * - It's designed for LLM code mode, not direct user interaction + * - It should be auto-enabled internally when needed, not manually installed + */ export const builtinMCPServers: BuiltinMCPServer[] = [ { id: nanoid(),