list-available-tools
Discover available tools in the MCP Firebird server to access, analyze, and manipulate Firebird SQL databases through natural language.
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 core handler function that lists all available database and metadata tools, optionally filtered by 'category' (database or metadata), 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 schema defining the optional 'category' input 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)Registers the 'list-available-tools' tool definition (including inline handler and schema) in the metadata tools Map returned by setupMetadataTools.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 }; } } });