columnasDeTabla
Retrieve all column names from a specific database table to understand its structure before querying or inserting data.
Instructions
Sigue estas reglas para listar columnas: PROPÓSITO: Obtener una lista con los nombres de todas las columnas de una tabla específica. USO: Útil para conocer la estructura de una tabla antes de realizar una consulta o inserción. EJEMPLO: "¿Cuáles son las columnas de la tabla ventas?"
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| tabla | Yes | Nombre de la tabla |
Implementation Reference
- mcp_server.js:82-106 (registration)Registration of the 'columnasDeTabla' tool, including input schema, description, and handler function that fetches and formats table columns.server.tool( 'columnasDeTabla', 'Sigue estas reglas para listar columnas:\n' + 'PROPÓSITO: Obtener una lista con los nombres de todas las columnas de una tabla específica.\n' + 'USO: Útil para conocer la estructura de una tabla antes de realizar una consulta o inserción.\n' + 'EJEMPLO: "¿Cuáles son las columnas de la tabla ventas?"', { tabla: z.string().describe('Nombre de la tabla'), }, async ({ tabla }) => { try { const columns = await query_runner.getTableColumns(tabla); if (!columns || columns.length === 0) { return { content: [{ type: 'text', text: `La tabla '${tabla}' no tiene columnas.` }] }; } return { content: [ { type: 'text', text: `Columnas de la tabla '${tabla}':\n` + columns.map(col => `- ${col}`).join('\n') } ] }; } catch (e) { return { isError: true, content: [{ type: 'text', text: 'Error al listar columnas: ' + (e.message || e) }] }; } } );
- mcp_server.js:91-105 (handler)The main handler logic for executing the tool, which calls getTableColumns and formats the response.async ({ tabla }) => { try { const columns = await query_runner.getTableColumns(tabla); if (!columns || columns.length === 0) { return { content: [{ type: 'text', text: `La tabla '${tabla}' no tiene columnas.` }] }; } return { content: [ { type: 'text', text: `Columnas de la tabla '${tabla}':\n` + columns.map(col => `- ${col}`).join('\n') } ] }; } catch (e) { return { isError: true, content: [{ type: 'text', text: 'Error al listar columnas: ' + (e.message || e) }] }; } }
- mcp_server.js:88-90 (schema)Input schema validation using Zod for the 'tabla' parameter.{ tabla: z.string().describe('Nombre de la tabla'), },
- db_runners/QueryRunner.js:101-117 (helper)Supporting method in QueryRunner class that retrieves column names for a given table, used by the tool handler. Supports MySQL and PostgreSQL.async getTableColumns(table) { try { if (this.db_type === 'mysql') { const [cols] = await this.pool.execute(`SHOW COLUMNS FROM \`${table}\``); return cols.map(c => c.Field); } else { // pg const res = await this.pool.query(` SELECT column_name FROM information_schema.columns WHERE table_name = $1 `, [table]); return res.rows.map(c => c.column_name); } } catch (error) { // Si la tabla no existe, retornamos un array vacío return []; } }