diff --git a/src/vs/workbench/contrib/mcp/common/mcpServer.ts b/src/vs/workbench/contrib/mcp/common/mcpServer.ts index 03271d92536..66203057607 100644 --- a/src/vs/workbench/contrib/mcp/common/mcpServer.ts +++ b/src/vs/workbench/contrib/mcp/common/mcpServer.ts @@ -255,19 +255,25 @@ export class McpServer extends Disposable implements IMcpServer { const updateTools = (tx: ITransaction | undefined) => { const toolPromise = handler.capabilities.tools ? handler.listTools({}, cts.token) : Promise.resolve([]); - const toolPromiseSafe = toolPromise.then(tools => tools.map(tool => { - if (!tool.description) { - // Ensure a description is provided for each tool, #243919 - handler.logger.warn(`Tool ${tool.name} does not have a description. Tools must be accurately described to be called`); - tool.description = ''; - } + const toolPromiseSafe = toolPromise.then(tools => { + handler.logger.info(`Discovered ${tools.length} tools`); + return tools.map(tool => { + if (!tool.description) { + // Ensure a description is provided for each tool, #243919 + handler.logger.warn(`Tool ${tool.name} does not have a description. Tools must be accurately described to be called`); + tool.description = ''; + } - return tool; - })); + return tool; + }); + }); this.toolsFromServerPromise.set(new ObservablePromise(toolPromiseSafe), tx); }; - store.add(handler.onDidChangeToolList(() => updateTools(undefined))); + store.add(handler.onDidChangeToolList(() => { + handler.logger.info('Tool list changed, refreshing tools...'); + updateTools(undefined); + })); transaction(tx => { updateTools(tx);