Skip to main content
Glama
MyPos MCP

MyPos MCP

by Yonsn76

MyPos MCP DB

Este es un proyecto de ejemplo para un Model-Context-Protocol (MCP) Server que se conecta a una base de datos.

Características

  • Se conecta a bases de datos MySQL o PostgreSQL.

  • Proporciona herramientas para interactuar con la base de datos y administrar el esquema.

Related MCP server: PostgreSQL MCP Server

Herramientas disponibles

  • listarTablas: Enumera todas las tablas en la base de datos.

  • consultarSQL: Ejecuta una consulta SELECT y devuelve los resultados.

  • columnasDeTabla: Enumera las columnas de una tabla específica.

  • crearTabla: Crea una nueva tabla a partir de un objeto de definición.

  • eliminarTabla: Elimina una tabla de la base de datos.

  • renombrarTabla: Cambia el nombre de una tabla existente.

  • agregarColumna: Agrega una nueva columna a una tabla existente.

  • eliminarColumna: Elimina una columna de una tabla.

  • renombrarColumna: Cambia el nombre de una columna en una tabla.

  • cambiarTipoColumna: Cambia el tipo de datos de una columna (por ejemplo, a DATE, VARCHAR, etc).

  • insertarDatos: Inserta uno o varios registros en una tabla.

  • crudTabla: Permite realizar operaciones CRUD (crear, leer, actualizar, borrar) en cualquier tabla.

  • agregarClaveForanea: Agrega una clave foránea (FOREIGN KEY) entre tablas.

  • eliminarClaveForanea: Elimina una clave foránea por nombre.

  • exportarTabla: Exporta los datos de una tabla o columnas específicas a CSV o JSON.

  • importarTabla: Importa datos a una tabla desde CSV o JSON, permitiendo especificar columnas.

Requisitos

  • Node.js (v16 o superior)

  • Una base de datos MySQL o PostgreSQL en ejecución.

Configuración

  1. Clonar el repositorio:

    git clone https://github.com/Yonsn76/MyPos-MCP.git
    cd MyPos-MCP
  2. Instalar dependencias:

    npm install
  3. Configurar las variables de entorno:

    Crea un archivo .env en la raíz del proyecto y añade las siguientes variables:

    DB_TYPE=mysql # o postgres
    DB_HOST=localhost
    DB_PORT=3306 # o 5432 para postgres
    DB_USER=root
    DB_PASSWORD=tu_contraseña
    DB_DATABASE=nombre_de_la_base_de_datos

Uso

Para iniciar el servidor MCP, ejecuta:

npm start

El servidor se iniciará y se conectará a la base de datos especificada en el archivo .env.

Ejemplo de Configuración MCP

Para usar este MCP, puedes agregarlo a tu configuración con el siguiente objeto:

"MyPost MCP": { 
       "type": "stdio", 
       "command": "npx", 
       "args": [ 
         "-y", 
         "node", 
         "C:/Users/Pociko/Desktop/MCP/legion-mcp/Mi-mcp/mcp_server.js"
         //Aqui va la url del directorio en la cual esta el archivo mcp_server.js
       ] 
     }

Available Tools

18 tools
agregarClaveForaneaA

Sigue estas reglas para agregar una clave foránea: PROPÓSITO: Crear una relación (clave foránea) entre dos tablas para mantener la integridad referencial. REGLA: Las tablas y columnas involucradas ya deben existir. PRECAUCIÓN: La operación puede fallar si los datos existentes violan la nueva restricción. USO: Especifica la tabla local, sus columnas, la tabla de referencia y sus columnas. EJEMPLO: "Agrega una clave foránea de cliente_id en ventas referenciando clientes(id)."

Inputs: columnas (required), columnasReferencia (required), tabla (required), tablaReferencia (required), +3 more.

agregarColumnaA

Sigue estas reglas para agregar una columna: PROPÓSITO: Agregar una nueva columna a una tabla EXISTENTE. REGLA: No la uses para crear tablas nuevas ni para modificar o eliminar columnas existentes. PRECAUCIÓN: Asegúrate de que el nombre de la tabla y la nueva columna sean correctos antes de ejecutar. EJEMPLO: "Agrega la columna email a la tabla usuarios."

Inputs: columna (required), tabla (required), tipo (required).

agregarRestriccionUnicaA

Sigue estas reglas para agregar una restricción UNIQUE: PROPÓSITO: Agregar una restricción de unicidad (UNIQUE) a una o más columnas para evitar valores duplicados. REGLA: No la uses para crear tablas o columnas. La columna ya debe existir. PRECAUCIÓN: La operación fallará si ya existen datos duplicados en la(s) columna(s) seleccionada(s). USO: Especifica la tabla y las columnas que deben ser únicas. EJEMPLO: "Haz que el campo email sea único en la tabla usuarios."

Inputs: columnas (required), tabla (required), nombre.

cambiarTipoColumnaA

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."

Inputs: columna (required), nuevoTipo (required), tabla (required).

columnasDeTablaA

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?"

Inputs: tabla (required).

consultarSQLA

Sigue estas reglas para consultar con SQL: PROPÓSITO: Ejecutar una consulta SQL de solo lectura (SELECT) para obtener datos. RESTRICCIÓN DE SEGURIDAD: Solo se permiten consultas que comiencen con SELECT. Cualquier otro tipo de consulta (INSERT, UPDATE, DELETE, DROP) será rechazado. USO: Ideal para obtener datos específicos, filtrar o unir tablas. EJEMPLO: "Muestra todos los clientes registrados."

Inputs: consulta (required).

crearTablaA

Sigue estas reglas para crear una tabla: PROPÓSITO: Crear una tabla COMPLETAMENTE NUEVA en la base de datos. REGLA: No uses esta herramienta para modificar o agregar columnas a una tabla que ya existe. La herramienta fallará si la tabla ya existe. USO: Define el nombre de la tabla y la estructura de sus columnas. EJEMPLO: "Crea la tabla productos con columnas id y nombre."

Inputs: columnas (required), nombreTabla (required).

crudTablaA

Sigue estas reglas OBLIGATORIAS para operaciones CRUD: PROPÓSITO: Realizar operaciones de Crear (create), Leer (read), Actualizar (update) o Eliminar (delete) registros en una tabla. REGLA: Esta herramienta es solo para MANIPULAR DATOS, nunca para modificar la ESTRUCTURA de la tabla (ALTER, DROP, CREATE TABLE). ACCIÓN DESTRUCTIVA (DELETE): Si la acción es "delete", es OBLIGATORIO pedir una confirmación explícita al usuario antes de ejecutar. El usuario DEBE escribir la frase exacta: "Confirmar eliminación de los registros filtrados en la tabla [nombreTabla]". Si la confirmación no es exacta, no procedas. USO: Especifica la tabla, la acción, los datos (para create/update) y el filtro (para read/update/delete). EJEMPLO: "Actualiza el email del cliente con id 5 en la tabla clientes."

Inputs: accion (required), tabla (required), datos, filtro.

eliminarClaveForaneaA

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."

Inputs: nombre (required), tabla (required).

eliminarColumnaA

Sigue estas reglas OBLIGATORIAS para eliminar una columna: ADVERTENCIA INICIAL: Informa al usuario que eliminar una columna es una acción DESTRUCTIVA y PERMANENTE que borrará todos los datos que contiene. CONFIRMACIÓN EXPLÍCITA: Para proceder, el usuario DEBE escribir la frase exacta: "Confirmar eliminación de la columna [nombreColumna] de la tabla [nombreTabla]". VERIFICACIÓN ESTRICTA: No ejecutes la eliminación si la frase de confirmación no es una coincidencia exacta. USO EXCLUSIVO: Úsala solo para eliminar columnas, no tablas ni registros. EJEMPLO: "Elimina la columna edad de la tabla clientes."

Inputs: columna (required), tabla (required).

eliminarRestriccionUnicaA

Sigue estas reglas OBLIGATORIAS para eliminar una restricción UNIQUE: ADVERTENCIA INICIAL: Informa al usuario que eliminar esta restricción permitirá datos duplicados, lo que podría afectar la integridad de los datos. CONFIRMACIÓN EXPLÍCITA: Para proceder, el usuario DEBE escribir la frase exacta: "Confirmar eliminación de la restricción [nombreRestriccion] 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 exacto de la restricción a eliminar. EJEMPLO: "Elimina la restricción única email_unique de la tabla usuarios."

Inputs: nombre (required), tabla (required).

eliminarTablaA

Sigue estas reglas OBLIGATORIAS para eliminar una tabla: ADVERTENCIA INICIAL: Informa al usuario que esta es una acción DESTRUCTIVA y PERMANENTE que no se puede deshacer. CONFIRMACIÓN EXPLÍCITA: Para proceder, el usuario DEBE escribir la frase exacta: "Confirmar eliminación de la tabla [nombreTabla]", reemplazando [nombreTabla] con el nombre de la tabla a eliminar. VERIFICACIÓN ESTRICTA: No ejecutes la eliminación si la frase de confirmación del usuario no es una coincidencia exacta. USO EXCLUSIVO: Recuerda que esta herramienta solo elimina tablas completas, NUNCA registros o columnas individuales.

Inputs: nombreTabla (required).

exportarTablaA

Sigue estas reglas para exportar una tabla: PROPÓSITO: Exportar los datos de una tabla a un formato de texto (CSV o JSON). USO: Especifica la tabla y el formato deseado. Opcionalmente, puedes indicar columnas específicas para exportar solo una parte de los datos. EJEMPLO: "Exporta la tabla clientes a CSV."

Inputs: formato (required), tabla (required), columnas.

importarTablaA

Sigue estas reglas para importar a una tabla: PROPÓSITO: Importar y insertar datos en una tabla desde un formato de texto (CSV o JSON). PRECAUCIÓN: Asegúrate de que los datos en el texto coincidan con las columnas y tipos de la tabla destino para evitar errores. USO: Proporciona el nombre de la tabla, los datos en formato de texto (string) y el formato (csv o json). EJEMPLO: "Importa los datos del archivo clientes.csv a la tabla clientes."

Inputs: datos (required), formato (required), tabla (required), columnas.

insertarDatosA

Sigue estas reglas para insertar datos: PROPÓSITO: Insertar uno o varios registros (filas) nuevos en una tabla. REGLA: Solo debe usarse para agregar datos nuevos. No la uses para actualizar registros existentes ni para modificar la estructura de la tabla. FORMATO: Los datos deben ser un array de objetos, donde cada objeto es un registro. EJEMPLO: "Agrega un cliente con nombre Juan a la tabla clientes."

Inputs: datos (required), tabla (required).

listarTablasB

Sigue estas reglas para listar tablas: PROPÓSITO: Obtener una lista de todas las tablas en la base de datos. USO: Úsalo cuando necesites saber qué tablas existen. EJEMPLO: "Muestra las tablas disponibles."

Inputs: no named parameters.

renombrarColumnaA

Sigue estas reglas OBLIGATORIAS para renombrar una columna: ADVERTENCIA: Renombrar una columna es una acción delicada que puede romper consultas o código de aplicación que dependan de ella. Procede con cuidado. PROPÓSITO: Cambiar el nombre de una columna existente dentro de una tabla. REQUISITO: Debes proporcionar el tipo de dato de la columna junto con el nuevo nombre. USO: Especifica la tabla, el nombre actual, el nuevo nombre y el tipo de dato. EJEMPLO: "Renombra la columna nombre a nombre_completo en la tabla empleados."

Inputs: columnaActual (required), nuevoNombre (required), tabla (required), tipo (required).

renombrarTablaA

Sigue estas reglas OBLIGATORIAS para renombrar una tabla: ADVERTENCIA: Renombrar una tabla es una acción delicada que puede romper consultas o vistas existentes que dependan de ella. Procede con cuidado. PROPÓSITO: Cambiar el nombre de una tabla existente por uno nuevo. VERIFICACIÓN: Asegúrate de que el nuevo nombre no esté ya en uso. USO: Proporciona el nombre actual y el nuevo nombre. EJEMPLO: "Renombra la tabla ventas a ventas_2024."

Inputs: nombreActual (required), nuevoNombre (required).

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A4.2/5.0

    Scored across 18 tools

    Disambiguation5/5

    Every tool has a clearly distinct purpose with no ambiguity. The tools are well-organized around specific database operations like table management (crearTabla, eliminarTabla), column operations (agregarColumna, eliminarColumna), constraints (agregarRestriccionUnica, eliminarClaveForanea), and data manipulation (consultarSQL, crudTabla). Even tools that might seem similar like insertarDatos and crudTabla are clearly differentiated by scope and functionality.

    Naming Consistency5/5

    All 18 tools follow a consistent Spanish verb_noun naming pattern (e.g., agregarColumna, eliminarTabla, renombrarColumna). The naming is perfectly predictable and uniform throughout the entire set, making it easy for agents to understand the action and target of each tool.

    Tool Count5/5

    With 18 tools, this server provides comprehensive coverage for database management operations. Each tool earns its place by addressing specific needs like schema modification, data querying, import/export, and CRUD operations. The count is well-scoped for a database management system, neither too sparse nor overly bloated.

    Completeness5/5

    The toolset provides complete coverage for database management, including full CRUD operations (via crudTabla and insertarDatos), schema lifecycle management (create/rename/delete tables and columns), constraint management (foreign keys, unique constraints), data querying (consultarSQL), and import/export functionality. There are no obvious gaps that would hinder an agent's ability to perform standard database tasks.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • F
      license
      Not graded
      quality
      D
      maintenance
      A Model Context Protocol server that provides tools for connecting to and interacting with various database systems (SQLite, PostgreSQL, MySQL/MariaDB, SQL Server) through a unified interface.
      3
      -
    • A
      license
      Not graded
      quality
      D
      maintenance
      A Model Context Protocol server that enables interaction with PostgreSQL databases to list tables, retrieve schemas, and execute read-only SQL queries.
      11 npm
      MIT
    • A
      license
      Not graded
      quality
      D
      maintenance
      A Model Context Protocol server that connects to MySQL databases, allowing execution of SQL queries, table listing, and schema inspection through Claude Desktop.
      896 npm
      MIT
    • A
      license
      Not graded
      quality
      D
      maintenance
      A Model Context Protocol server for interacting with MSSQL and PostgreSQL databases, offering tools for schema exploration and SQL execution. It features configurable query modes for safety and supports advanced authentication methods like Windows Auth and SSL.
      11 npm
      MIT