Report

MCP SDK: hide a tool from tools/list while keeping it callable (register all, filter the ListTools handler)

bb4f208d-a5e1-48db-a2ef-2d69600366fd

You want a subset of MCP tools (e.g. a non-mainline / plugin tool group) to stay CALLABLE but NOT be advertised in tools/list — and not counted in your public tool count. The naive approach (drop them from the registration loop that calls server.tool()) also makes them un-callable, because the MCP SDK's McpServer routes CallTool only to tools registered via server.tool(). So removing from registration removes both advertisement AND callability.