From 63d8f2bdfcec02581e83ca4adfe42c4b167ab78a Mon Sep 17 00:00:00 2001 From: Kevin Lin Date: Tue, 25 Nov 2025 16:16:20 -0800 Subject: [PATCH] fix: Tool name mismatch (#123) --- src/tools/manager.ts | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/src/tools/manager.ts b/src/tools/manager.ts index b6cc8dd..5c80d53 100644 --- a/src/tools/manager.ts +++ b/src/tools/manager.ts @@ -289,23 +289,29 @@ export async function loadSpecificTools(toolNames: string[]): Promise { continue; } - const definition = TOOL_DEFINITIONS[name as ToolName]; + // Map server-facing name to our internal tool name + const internalName = getInternalToolName(name); + + const definition = TOOL_DEFINITIONS[internalName as ToolName]; if (!definition) { - console.warn(`Tool ${name} not found in definitions, skipping`); + console.warn( + `Tool ${name} (internal: ${internalName}) not found in definitions, skipping`, + ); continue; } if (!definition.impl) { - throw new Error(`Tool implementation not found for ${name}`); + throw new Error(`Tool implementation not found for ${internalName}`); } const toolSchema: ToolSchema = { - name, + name: internalName, description: definition.description, input_schema: definition.schema, }; - toolRegistry.set(name, { + // Register under the internal name so later lookups using mapping succeed + toolRegistry.set(internalName, { schema: toolSchema, fn: definition.impl, }); @@ -730,7 +736,9 @@ export function getToolSchemas(): ToolSchema[] { * @returns The tool schema or undefined if not found */ export function getToolSchema(name: string): ToolSchema | undefined { - return toolRegistry.get(name)?.schema; + // Accept either server-facing or internal names + const internalName = getInternalToolName(name); + return toolRegistry.get(internalName)?.schema; } /**