¿Qué es database-mcp (cocaxcode)?
database-mcp, publicado en npm como @cocaxcode/database-mcp por el usuario de GitHub cocaxcode, convierte un cliente MCP en un pequeño banco de trabajo de bases de datos para PostgreSQL, MySQL y SQLite. Las conexiones se guardan una vez y se agrupan por directorio de proyecto, así que un agente que trabaja en un repositorio solo ve las bases de datos de ese proyecto. Alrededor de las herramientas de consulta añade búsqueda de esquema en tres niveles, EXPLAIN, un historial de consultas por proyecto, instantáneas previas a cada cambio que generan SQL inverso para deshacerlo, volcados SQL y restauración, y una compresión de resultados que recorta las celdas largas para ahorrar contexto.
El código registra 34 herramientas y 2 recursos de esquema (el README dice 33 y la ficha del registro MCP, 19). Solo funciona por stdio y carga el driver postgres, mysql2 o sql.js que instales de forma global. El repositorio se creó en marzo de 2026, tiene 3 estrellas en GitHub y 41 commits, y su último cambio es del 26 de agosto de 2026; la última versión en npm es la 0.3.4, del 21 de abril de 2026, y el paquete se descargó 330 veces en el mes hasta el 10 de noviembre.
Cómo instalar database-mcp (cocaxcode)
npx -y @cocaxcode/database-mcp@latest¿Merece la pena database-mcp (cocaxcode)?
Las funciones están bien elegidas para la máquina de un desarrollador. Las conexiones se conservan entre sesiones y siguen al directorio del proyecto, las consultas de lectura reciben un LIMIT 100, las celdas de más de 500 bytes se recortan con una marca y una caché de 20 posiciones permite al agente recuperar el resultado completo más tarde sin volver a ejecutar la consulta. Cada INSERT, UPDATE o DELETE captura antes las filas afectadas para que rollback_apply pueda revertirlo; el DDL se registra pero no se puede deshacer.
El modelo de seguridad es más débil de lo que dice el README. El README promete que las operaciones destructivas necesitan un confirm: true explícito, pero según nuestra lectura del código execute_mutation no tiene ese parámetro y ejecuta un DELETE o un DROP al momento; solo conn_delete, rollback_apply y db_restore piden confirmación, y esa marca la pone el propio modelo. Las conexiones nuevas sí son de solo lectura por defecto, que es lo correcto, pero conn_set permite al agente pasar una conexión a lectura y escritura con una sola llamada.
El propio modo de solo lectura depende de un clasificador que solo mira la primera palabra clave de la sentencia. El driver de PostgreSQL envía el SQL sin parámetros por el protocolo simple de postgres.js y el de SQLite usa exec de sql.js; ambos ejecutan varias sentencias en una sola llamada, así que una cadena que empieza por SELECT puede llevar un DELETE después de un punto y coma. explain_query con analyze a true se salta por completo la comprobación de solo lectura, y en PostgreSQL EXPLAIN ANALYZE ejecuta la sentencia que explica. Una inyección de prompts escondida en una fila que el agente acaba de leer podría aprovechar cualquiera de las dos vías. El driver de MySQL usa sentencias preparadas y no acepta consultas encadenadas.
Las credenciales se quedan en local, en archivos JSON con permisos solo del propietario bajo ~/.database-mcp, y conn_get oculta las contraseñas; conn_export con include_secrets las devuelve en texto plano al contexto del modelo. El historial, las instantáneas con los valores antiguos de las filas y los volcados completos se escriben dentro de la carpeta .database-mcp del proyecto, que debe quedarse fuera del control de versiones. Las descripciones de las herramientas y las instrucciones del servidor están en español, algo que los modelos manejan bien pero que quizá no entiendan quienes revisen en inglés los registros del agente.
Nuestra opinión: para un archivo SQLite o un Postgres local desechable, las herramientas de deshacer y de historial mejoran de forma agradable un simple ejecutor de SQL. Para cualquier cosa que importe, DBHub o el servidor de Postgres de Microsoft detrás de un usuario de base de datos que solo pueda hacer SELECT es la opción más segura, porque ahí quien dice que no es la base de datos y no una comprobación de palabras clave.
Dónde se gana su sitio
Un desarrollador en solitario que crea un proyecto personal sobre SQLite
Cargar datos de prueba, probar cambios de esquema y deshacer errores desde Claude Code
Crea una conexión de lectura y escritura al archivo .db local, deja que el agente inserte y actualice filas y llama a rollback_apply cuando un cambio salga mal. Gratis; ejecuta db_dump antes de cualquier DDL, porque los cambios de esquema no se pueden revertir.
Un desarrollador backend autónomo que lleva varios proyectos de clientes
Que el agente elija la base de datos local correcta para cada repositorio sin reconfigurar nada
Crea un grupo de conexiones por cliente, con el directorio de ese proyecto como ámbito y una base de datos de desarrollo como predeterminada. El agente solo ve las conexiones de ese cliente; las de producción es mejor dejarlas fuera de la herramienta.
Antes de decidirte
- Puesta en marcha
- claude mcp add --scope user database -- npx -y @cocaxcode/database-mcp@latest, más npm install -g postgres, mysql2 o sql.js para el motor que uses; Node 20 o posterior. Hay configuraciones documentadas para Claude Code, Claude Desktop, Cursor, Windsurf, VS Code, Codex CLI y Gemini CLI. Las conexiones se crean pidiéndoselo al agente, así que la primera consulta llega en unos minutos.
- Integraciones
- 34 herramientas en el código: 13 de conexiones, 7 de grupos, search_schema, execute_query, execute_mutation, explain_query, inspect_last_query, tres de volcados, dos de deshacer, dos de historial y dos de configuración, más los recursos db://schema y db://tables/{tableName}/schema. Solo stdio; sin transporte HTTP, así que no abre ningún puerto de red.
- Datos y privacidad
- Todo se ejecuta en local; los resultados de las consultas van a tu proveedor del modelo. Las credenciales se guardan sin cifrar en archivos JSON bajo ~/.database-mcp/connections con permisos solo del propietario; conn_export puede devolverlas en texto plano. La carpeta .database-mcp de cada proyecto guarda el historial (hasta 5.000 entradas), instantáneas con datos de filas (hasta 1.000) y volcados SQL completos; los resultados recientes se guardan en disco durante una hora. Las filas que lee el agente pueden llevar inyección de prompts, y el modo de solo lectura no impide de forma fiable la escritura resultante en PostgreSQL o SQLite.
- Coste a escala
- Gratuito; los costes son la carga de la base de datos y el contexto. El LIMIT 100 por defecto y el tope de 500 bytes por celda mantienen pequeños los resultados habituales; EXPLAIN ANALYZE y las consultas UNION sin límite, que se saltan ese tope, no.
- Límites
- Sin túneles SSH ni ajustes de certificados propios, sin tiempo máximo de consulta y solo tres motores. La versión 0.3.5 del repositorio no está en npm. El modo de solo lectura y la confirmación dependen de la cooperación del modelo, no de los permisos de la base de datos.
Lo bueno
- Conexiones guardadas y agrupadas por directorio de proyecto
- Instantáneas previas a cada cambio con deshacer mediante SQL inverso
- LIMIT 100 automático y recorte de celdas para ahorrar contexto
- Las conexiones son de solo lectura por defecto
Lo malo
- execute_mutation no pide confirmación, pese a lo que dice el README
- El modo de solo lectura se puede sortear con sentencias encadenadas y EXPLAIN ANALYZE
- El agente puede pasar por sí mismo una conexión a lectura y escritura
- Tres estrellas, un desarrollador y ninguna versión en npm desde abril de 2026
Ideal para
Desarrolladores en solitario que quieren que un agente explore y edite una base de datos SQLite local o un Postgres de desarrollo con deshacer e historial.
Alternativas a database-mcp (cocaxcode)
database-mcp (cocaxcode): preguntas frecuentes
- ¿Merece la pena database-mcp (cocaxcode)?
- Sus funciones de banco de trabajo están bien pensadas, pero se apoyan en promesas de seguridad que el código no cumple, así que su sitio es una base de datos de portátil y nunca producción. Le damos un 2.9 sobre 5.
- ¿Cuánto cuesta database-mcp (cocaxcode)?
- Gratuito y de código abierto (MIT).
- ¿Qué inconvenientes tiene database-mcp (cocaxcode)?
- execute_mutation no pide confirmación, pese a lo que dice el README; el modo de solo lectura se puede sortear con sentencias encadenadas y EXPLAIN ANALYZE; el agente puede pasar por sí mismo una conexión a lectura y escritura; tres estrellas, un desarrollador y ninguna versión en npm desde abril de 2026.
- ¿Para quién es database-mcp (cocaxcode)?
- Desarrolladores en solitario que quieren que un agente explore y edite una base de datos SQLite local o un Postgres de desarrollo con deshacer e historial.
- ¿Cuánto cuesta database-mcp (cocaxcode) para un equipo o en producción?
- Gratuito; los costes son la carga de la base de datos y el contexto. El LIMIT 100 por defecto y el tope de 500 bytes por celda mantienen pequeños los resultados habituales; EXPLAIN ANALYZE y las consultas UNION sin límite, que se saltan ese tope, no.
- ¿Es database-mcp (cocaxcode) seguro para los datos de la empresa?
- Todo se ejecuta en local; los resultados de las consultas van a tu proveedor del modelo. Las credenciales se guardan sin cifrar en archivos JSON bajo ~/.database-mcp/connections con permisos solo del propietario; conn_export puede devolverlas en texto plano. La carpeta .database-mcp de cada proyecto guarda el historial (hasta 5.000 entradas), instantáneas con datos de filas (hasta 1.000) y volcados SQL completos; los resultados recientes se guardan en disco durante una hora. Las filas que lee el agente pueden llevar inyección de prompts, y el modo de solo lectura no impide de forma fiable la escritura resultante en PostgreSQL o SQLite.
- ¿Cuáles son las mejores alternativas a database-mcp (cocaxcode)?
- Las alternativas más cercanas que hemos analizado son DBHub, Postgres MCP Server (Microsoft), Faucet y MCP Toolbox for Databases.
Respuestas comprobadas el 11 nov 2026.