cambiarTipoColumna
Change the data type of a column in MySQL or PostgreSQL databases. Requires explicit confirmation to prevent data loss during type conversion.
Instructions
Sigue estas reglas OBLIGATORIAS para cambiar el tipo de una columna: ADVERTENCIA INICIAL: Informa al usuario que cambiar el tipo de dato de una columna es una acción PELIGROSA que puede resultar en PÉRDIDA DE DATOS si la conversión no es compatible. CONFIRMACIÓN EXPLÍCITA: Para proceder, el usuario DEBE escribir la frase exacta: "Confirmar cambio de tipo para la columna [nombreColumna] a [nuevoTipo]". VERIFICACIÓN ESTRICTA: No ejecutes la modificación si la confirmación no es exacta. USO: Especifica la tabla, la columna y el nuevo tipo de dato. EJEMPLO: "Cambia el tipo de la columna fecha a DATE en la tabla ventas."
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| columna | Yes | Nombre de la columna a modificar | |
| nuevoTipo | Yes | Nuevo tipo de datos (ej. DATE, VARCHAR(255), INT, etc.) | |
| tabla | Yes | Nombre de la tabla |
Implementation Reference
- mcp_server.js:504-534 (registration)Full registration of the 'cambiarTipoColumna' tool including description, schema, and inline handler function.server.tool( 'cambiarTipoColumna', 'Sigue estas reglas OBLIGATORIAS para cambiar el tipo de una columna:\n' + 'ADVERTENCIA INICIAL: Informa al usuario que cambiar el tipo de dato de una columna es una acción PELIGROSA que puede resultar en PÉRDIDA DE DATOS si la conversión no es compatible.\n' + 'CONFIRMACIÓN EXPLÍCITA: Para proceder, el usuario DEBE escribir la frase exacta: "Confirmar cambio de tipo para la columna [nombreColumna] a [nuevoTipo]".\n' + 'VERIFICACIÓN ESTRICTA: No ejecutes la modificación si la confirmación no es exacta.\n' + 'USO: Especifica la tabla, la columna y el nuevo tipo de dato.\n' + 'EJEMPLO: "Cambia el tipo de la columna fecha a DATE en la tabla ventas."', { tabla: z.string().describe('Nombre de la tabla'), columna: z.string().describe('Nombre de la columna a modificar'), nuevoTipo: z.string().describe('Nuevo tipo de datos (ej. DATE, VARCHAR(255), INT, etc.)'), }, async ({ tabla, columna, nuevoTipo }) => { try { if (!tabla || !columna || !nuevoTipo) { return { isError: true, content: [{ type: 'text', text: 'Debes proporcionar la tabla, columna y el nuevo tipo.' }] }; } let sql; if (db_type === 'mysql') { sql = `ALTER TABLE ${quoteIdent(tabla)} MODIFY COLUMN ${quoteIdent(columna)} ${nuevoTipo}`; } else { sql = `ALTER TABLE ${quoteIdent(tabla)} ALTER COLUMN ${quoteIdent(columna)} TYPE ${nuevoTipo}`; } await query_runner.runQuery(sql); return { content: [{ type: 'text', text: `Tipo de columna '${columna}' cambiado a '${nuevoTipo}' exitosamente.` }] }; } catch (e) { return { isError: true, content: [{ type: 'text', text: 'Error al cambiar tipo de columna: ' + (e.message || e) }] }; } } );
- mcp_server.js:517-534 (handler)Handler function that validates inputs, constructs database-specific ALTER TABLE SQL to modify column type, executes via query_runner, and returns success/error response.async ({ tabla, columna, nuevoTipo }) => { try { if (!tabla || !columna || !nuevoTipo) { return { isError: true, content: [{ type: 'text', text: 'Debes proporcionar la tabla, columna y el nuevo tipo.' }] }; } let sql; if (db_type === 'mysql') { sql = `ALTER TABLE ${quoteIdent(tabla)} MODIFY COLUMN ${quoteIdent(columna)} ${nuevoTipo}`; } else { sql = `ALTER TABLE ${quoteIdent(tabla)} ALTER COLUMN ${quoteIdent(columna)} TYPE ${nuevoTipo}`; } await query_runner.runQuery(sql); return { content: [{ type: 'text', text: `Tipo de columna '${columna}' cambiado a '${nuevoTipo}' exitosamente.` }] }; } catch (e) { return { isError: true, content: [{ type: 'text', text: 'Error al cambiar tipo de columna: ' + (e.message || e) }] }; } } );
- mcp_server.js:512-516 (schema)Zod schema defining input parameters for the tool: tabla (string), columna (string), nuevoTipo (string).{ tabla: z.string().describe('Nombre de la tabla'), columna: z.string().describe('Nombre de la columna a modificar'), nuevoTipo: z.string().describe('Nuevo tipo de datos (ej. DATE, VARCHAR(255), INT, etc.)'), },