list-available-tools
Discover and filter available tools on the MCP Firebird server by category, enabling efficient access to database and metadata utilities for Firebird SQL workflows.
Instructions
Lista todas las herramientas disponibles en el servidor MCP
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| category | No | Filtrar por categoría (database, metadata) |
Implementation Reference
- src/tools/metadata.ts:90-126 (handler)The handler function that lists all available tools (database and metadata), optionally filtered by category, and returns formatted text output.handler: async (args: { category?: string }) => { try { const allTools = new Map([...databaseTools, ...tools]); let toolsList = Array.from(allTools.entries()); if (args.category) { if (args.category === 'database') { toolsList = Array.from(databaseTools.entries()); } else if (args.category === 'metadata') { toolsList = Array.from(tools.entries()); } } const toolsInfo = toolsList.map(([name, tool]) => ({ name, title: tool.title || name, description: tool.description, category: databaseTools.has(name) ? 'database' : 'metadata' })); return { content: [{ type: 'text', text: `Herramientas disponibles${args.category ? ` (categoría: ${args.category})` : ''}:\n\n${formatForClaude(toolsInfo)}` }] }; } catch (error) { logger.error('Error listing tools:', { error }); return { content: [{ type: 'text', text: `Error listando herramientas: ${error instanceof Error ? error.message : String(error)}` }], isError: true }; } }
- src/tools/metadata.ts:87-89 (schema)Zod input schema defining an optional 'category' parameter for filtering tools.inputSchema: z.object({ category: z.string().optional().describe('Filtrar por categoría (database, metadata)') }),
- src/tools/metadata.ts:84-127 (registration)Registration of the 'list-available-tools' tool definition in the metadata tools map within setupMetadataTools function.tools.set('list-available-tools', { title: 'List Available Tools', description: 'Lista todas las herramientas disponibles en el servidor MCP', inputSchema: z.object({ category: z.string().optional().describe('Filtrar por categoría (database, metadata)') }), handler: async (args: { category?: string }) => { try { const allTools = new Map([...databaseTools, ...tools]); let toolsList = Array.from(allTools.entries()); if (args.category) { if (args.category === 'database') { toolsList = Array.from(databaseTools.entries()); } else if (args.category === 'metadata') { toolsList = Array.from(tools.entries()); } } const toolsInfo = toolsList.map(([name, tool]) => ({ name, title: tool.title || name, description: tool.description, category: databaseTools.has(name) ? 'database' : 'metadata' })); return { content: [{ type: 'text', text: `Herramientas disponibles${args.category ? ` (categoría: ${args.category})` : ''}:\n\n${formatForClaude(toolsInfo)}` }] }; } catch (error) { logger.error('Error listing tools:', { error }); return { content: [{ type: 'text', text: `Error listando herramientas: ${error instanceof Error ? error.message : String(error)}` }], isError: true }; } } });