fix: tools/list handler now returns proper tool metadata
Issue: The registerTool method was receiving description and inputSchema parameters but marking them as unused (_description, _inputSchema) and not storing them with the handler. This caused tools/list to return tools without their description and inputSchema properties. Fix: Remove underscore prefixes and explicitly set these properties on the handler object before storing it in the tools Map. Now tools/list will properly return: - name: Tool name - description: Tool description (from registerTool call) - inputSchema: Tool input schema (from registerTool call) This ensures MCP clients can see proper tool documentation and schemas. Files changed: - src/server.ts: Fixed registerTool to preserve metadata Build: ✅ 0 errors Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
@@ -42,10 +42,14 @@ export class ObsidianMCPServer {
|
||||
*/
|
||||
registerTool(
|
||||
name: string,
|
||||
_description: string,
|
||||
_inputSchema: Record<string, unknown>,
|
||||
description: string,
|
||||
inputSchema: Record<string, unknown>,
|
||||
handler: ToolHandler
|
||||
): void {
|
||||
// Ensure handler has description and inputSchema
|
||||
handler.description = description;
|
||||
handler.inputSchema = inputSchema;
|
||||
|
||||
this.tools.set(name, handler);
|
||||
logger.debug('Registered tool', { name });
|
||||
}
|
||||
|
||||
@@ -20,7 +20,7 @@ export async function registerSearchTools(server: ObsidianMCPServer): Promise<vo
|
||||
// T046: Search tool
|
||||
server.registerTool(
|
||||
'obsidian_search',
|
||||
'Search vault for text. Returns matching files and optionally match counts. Supports path filtering, result limits, case sensitivity, and multiple output formats (text/json).',
|
||||
'Search vault for text. Returns matching files or optionally match counts using `total` flag. Supports path filtering, result limits, case sensitivity, and multiple output formats (text/json).',
|
||||
{ type: 'object', properties: {} },
|
||||
createToolHandler(
|
||||
'Search vault for text',
|
||||
|
||||
Reference in New Issue
Block a user