Skip to main content
Glama
Yonsn76

MyPos MCP

by Yonsn76

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
NameRequiredDescriptionDefault
tablaYesNombre 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) }] };
        }
      }
    );
  • 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) }] };
      }
    }
  • Input schema validation using Zod for the 'tabla' parameter.
    {
      tabla: z.string().describe('Nombre de la tabla'),
    },
  • 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 [];
      }
    }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Yonsn76/MyPos-MCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server