Skip to main content
Glama
Yonsn76

MyPos MCP

by Yonsn76

eliminarClaveForanea

Remove a foreign key constraint from a database table to modify relationships, requiring explicit confirmation to prevent orphaned data and maintain referential integrity.

Instructions

Sigue estas reglas OBLIGATORIAS para eliminar una clave foránea: ADVERTENCIA INICIAL: Informa al usuario que eliminar una clave foránea puede llevar a datos huérfanos y romper la integridad referencial. CONFIRMACIÓN EXPLÍCITA: Para proceder, el usuario DEBE escribir la frase exacta: "Confirmar eliminación de la clave foránea [nombreFK] de la tabla [nombreTabla]". VERIFICACIÓN ESTRICTA: No ejecutes la eliminación si la confirmación no es exacta. USO: Especifica la tabla y el nombre de la clave foránea a eliminar. EJEMPLO: "Elimina la clave foránea fk_cliente de la tabla ventas."

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
nombreYesNombre de la clave foránea
tablaYesNombre de la tabla

Implementation Reference

  • The handler function that validates inputs, constructs the appropriate SQL ALTER TABLE statement to drop the foreign key constraint (depending on MySQL or other DB), executes it via query_runner, and returns success or error messages.
    async ({ tabla, nombre }) => { try { if (!tabla || !nombre) { return { isError: true, content: [{ type: 'text', text: 'Debes proporcionar la tabla y el nombre de la clave foránea.' }] }; } let sql; if (db_type === 'mysql') { sql = `ALTER TABLE ${quoteIdent(tabla)} DROP FOREIGN KEY ${quoteIdent(nombre)}`; } else { sql = `ALTER TABLE ${quoteIdent(tabla)} DROP CONSTRAINT ${quoteIdent(nombre)}`; } await query_runner.runQuery(sql); return { content: [{ type: 'text', text: 'Clave foránea eliminada exitosamente.' }] }; } catch (e) { return { isError: true, content: [{ type: 'text', text: 'Error al eliminar clave foránea: ' + (e.message || e) }] }; } }
  • Zod schema defining the input parameters: 'tabla' (table name) and 'nombre' (foreign key name).
    { tabla: z.string().describe('Nombre de la tabla'), nombre: z.string().describe('Nombre de la clave foránea'), },
  • mcp_server.js:622-651 (registration)
    The server.tool registration call that defines the tool name, detailed description with safety rules and confirmation requirements, schema, and inline handler function.
    server.tool( 'eliminarClaveForanea', 'Sigue estas reglas OBLIGATORIAS para eliminar una clave foránea:\n' + 'ADVERTENCIA INICIAL: Informa al usuario que eliminar una clave foránea puede llevar a datos huérfanos y romper la integridad referencial.\n' + 'CONFIRMACIÓN EXPLÍCITA: Para proceder, el usuario DEBE escribir la frase exacta: "Confirmar eliminación de la clave foránea [nombreFK] de la tabla [nombreTabla]".\n' + 'VERIFICACIÓN ESTRICTA: No ejecutes la eliminación si la confirmación no es exacta.\n' + 'USO: Especifica la tabla y el nombre de la clave foránea a eliminar.\n' + 'EJEMPLO: "Elimina la clave foránea fk_cliente de la tabla ventas."', { tabla: z.string().describe('Nombre de la tabla'), nombre: z.string().describe('Nombre de la clave foránea'), }, async ({ tabla, nombre }) => { try { if (!tabla || !nombre) { return { isError: true, content: [{ type: 'text', text: 'Debes proporcionar la tabla y el nombre de la clave foránea.' }] }; } let sql; if (db_type === 'mysql') { sql = `ALTER TABLE ${quoteIdent(tabla)} DROP FOREIGN KEY ${quoteIdent(nombre)}`; } else { sql = `ALTER TABLE ${quoteIdent(tabla)} DROP CONSTRAINT ${quoteIdent(nombre)}`; } await query_runner.runQuery(sql); return { content: [{ type: 'text', text: 'Clave foránea eliminada exitosamente.' }] }; } catch (e) { return { isError: true, content: [{ type: 'text', text: 'Error al eliminar clave foránea: ' + (e.message || e) }] }; } } );

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