MCP Database Server

Proporciona acceso a bases de datos para SQLite, SQL Server, PostgreSQL y MySQL.

Documentación

MseeP.ai Security Assessment Badge

MCP Database Server

Este servidor MCP (Model Context Protocol) proporciona capacidades de acceso a bases de datos a Claude, compatible con bases de datos SQLite, SQL Server, PostgreSQL y MySQL.

Instalación

  1. Clone el repositorio:
git clone https://github.com/executeautomation/mcp-database-server.git
cd mcp-database-server
  1. Instale las dependencias:
npm install
  1. Compile el proyecto:
npm run build

Opciones de uso

Hay dos formas de usar este servidor MCP con Claude:

  1. Uso directo: Instale el paquete globalmente y úselo directamente
  2. Desarrollo local: Ejecútelo desde su entorno de desarrollo local

Uso directo con el paquete NPM

La forma más fácil de usar este servidor MCP es instalándolo globalmente:

npm install -g @executeautomation/database-server

Esto le permite usar el servidor directamente sin compilarlo localmente.

Configuración de desarrollo local

Si desea modificar el código o ejecutarlo desde su entorno local:

  1. Clone y compile el repositorio como se muestra en la sección de Instalación
  2. Ejecute el servidor usando los comandos de la sección de Uso a continuación

Uso

Base de datos SQLite

Para usar con una base de datos SQLite:

node dist/src/index.js /path/to/your/database.db

Base de datos SQL Server

Para usar con una base de datos SQL Server:

node dist/src/index.js --sqlserver --server <server-name> --database <database-name> [--user <username> --password <password>]

Parámetros requeridos:

  • --server: Nombre de host o dirección IP de SQL Server
  • --database: Nombre de la base de datos

Parámetros opcionales:

  • --user: Nombre de usuario para la autenticación de SQL Server (si no se proporciona, se usará la autenticación de Windows)
  • --password: Contraseña para la autenticación de SQL Server
  • --port: Número de puerto (predeterminado: 1433)

Base de datos PostgreSQL

Para usar con una base de datos PostgreSQL:

node dist/src/index.js --postgresql --host <host-name> --database <database-name> [--user <username> --password <password>]

Parámetros requeridos:

  • --host: Nombre de host o dirección IP de PostgreSQL
  • --database: Nombre de la base de datos

Parámetros opcionales:

  • --user: Nombre de usuario para la autenticación de PostgreSQL
  • --password: Contraseña para la autenticación de PostgreSQL
  • --port: Número de puerto (predeterminado: 5432)
  • --ssl: Habilitar conexión SSL (true/false)
  • --connection-timeout: Tiempo de espera de conexión en milisegundos (predeterminado: 30000)

Base de datos MySQL

Autenticación estándar

Para usar con una base de datos MySQL:

node dist/src/index.js --mysql --host <host-name> --database <database-name> --port <port> [--user <username> --password <password>]

Parámetros requeridos:

  • --host: Nombre de host o dirección IP de MySQL
  • --database: Nombre de la base de datos
  • --port: Número de puerto (predeterminado: 3306)

Parámetros opcionales:

  • --user: Nombre de usuario para la autenticación de MySQL
  • --password: Contraseña para la autenticación de MySQL
  • --ssl: Habilitar conexión SSL (true/false u objeto)
  • --connection-timeout: Tiempo de espera de conexión en milisegundos (predeterminado: 30000)

Autenticación AWS IAM

Para instancias de Amazon RDS MySQL con autenticación de base de datos IAM:

Requisitos previos:

  • Las credenciales de AWS deben estar configuradas (el firmante de RDS utiliza la cadena de proveedores de credenciales predeterminada)
  • Configúrelo usando uno de estos métodos:
    • aws configure (usa el perfil predeterminado)
      • AWS_PROFILE=myprofile variable de entorno
      • AWS_ACCESS_KEY_ID y AWS_SECRET_ACCESS_KEY variables de entorno
      • Roles de IAM (si se ejecuta en EC2)
node dist/src/index.js --mysql --aws-iam-auth --host <rds-endpoint> --database <database-name> --user <aws-username> --aws-region <region>

Parámetros requeridos:

  • --host: Nombre de host del endpoint de RDS
  • --database: Nombre de la base de datos
  • --aws-iam-auth: Habilitar autenticación AWS IAM
  • --user: Nombre de usuario de AWS IAM (también el usuario de la base de datos)
  • --aws-region: Región de AWS donde se encuentra la instancia de RDS

Nota: SSL se habilita automáticamente para la autenticación AWS IAM

Configuración de Claude Desktop

Configuración de uso directo

Si instaló el paquete globalmente, configure Claude Desktop con:

{
  "mcpServers": {
    "sqlite": {
      "command": "npx",
      "args": [
        "-y",
        "@executeautomation/database-server",
        "/path/to/your/database.db"
      ]
    },
    "sqlserver": {
      "command": "npx",
      "args": [
        "-y",
        "@executeautomation/database-server",
        "--sqlserver",
        "--server", "your-server-name",
        "--database", "your-database-name",
        "--user", "your-username",
        "--password", "your-password"
      ]
    },
    "postgresql": {
      "command": "npx",
      "args": [
        "-y",
        "@executeautomation/database-server",
        "--postgresql",
        "--host", "your-host-name",
        "--database", "your-database-name",
        "--user", "your-username",
        "--password", "your-password"
      ]
    },
    "mysql": {
      "command": "npx",
      "args": [
        "-y",
        "@executeautomation/database-server",
        "--mysql",
        "--host", "your-host-name",
        "--database", "your-database-name",
        "--port", "3306",
        "--user", "your-username",
        "--password", "your-password"
      ]
    },
    "mysql-aws": {
      "command": "npx",
      "args": [
        "-y",
        "@executeautomation/database-server",
        "--mysql",
        "--aws-iam-auth",
        "--host", "your-rds-endpoint.region.rds.amazonaws.com",
        "--database", "your-database-name",
        "--user", "your-aws-username",
        "--aws-region", "us-east-1"
      ]
    }
  }
}

Configuración de desarrollo local

Para desarrollo local, configure Claude Desktop para usar su versión compilada localmente:

{
  "mcpServers": {
    "sqlite": {
      "command": "node",
      "args": [
        "/absolute/path/to/mcp-database-server/dist/src/index.js", 
        "/path/to/your/database.db"
      ]
    },
    "sqlserver": {
      "command": "node",
      "args": [
        "/absolute/path/to/mcp-database-server/dist/src/index.js",
        "--sqlserver",
        "--server", "your-server-name",
        "--database", "your-database-name",
        "--user", "your-username",
        "--password", "your-password"
      ]
    },
    "postgresql": {
      "command": "node",
      "args": [
        "/absolute/path/to/mcp-database-server/dist/src/index.js",
        "--postgresql",
        "--host", "your-host-name",
        "--database", "your-database-name",
        "--user", "your-username",
        "--password", "your-password"
      ]
    },
    "mysql": {
      "command": "node",
      "args": [
        "/absolute/path/to/mcp-database-server/dist/src/index.js",
        "--mysql",
        "--host", "your-host-name",
        "--database", "your-database-name",
        "--port", "3306",
        "--user", "your-username",
        "--password", "your-password"
      ]
    },
    "mysql-aws": {
      "command": "node",
      "args": [
        "/absolute/path/to/mcp-database-server/dist/src/index.js",
        "--mysql",
        "--aws-iam-auth",
        "--host", "your-rds-endpoint.region.rds.amazonaws.com",
        "--database", "your-database-name",
        "--user", "your-aws-username",
        "--aws-region", "us-east-1"
      ]
    }
  }
}

El archivo de configuración de Claude Desktop normalmente se encuentra en:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
  • Linux: ~/.config/Claude/claude_desktop_config.json

Herramientas de base de datos disponibles

El servidor MCP Database Server proporciona las siguientes herramientas que Claude puede usar:

ToolDescriptionRequired Parameters
read_queryEjecutar consultas SELECT para leer datosquery: sentencia SQL SELECT
write_queryEjecutar consultas INSERT, UPDATE o DELETEquery: sentencia de modificación SQL
create_tableCrear nuevas tablas en la base de datosquery: sentencia CREATE TABLE
alter_tableModificar el esquema de una tabla existentequery: sentencia ALTER TABLE
drop_tableEliminar una tabla de la base de datostable_name: Nombre de la tabla confirm: Indicador de seguridad (debe ser true)
list_tablesObtener una lista de todas las tablasNinguno
describe_tableVer información de esquema de una tablatable_name: Nombre de la tabla
export_queryExportar resultados de consultas como CSV/JSONquery: sentencia SQL SELECT format: "csv" o "json"
append_insightAgregar una idea de negocio al memoinsight: Texto de la idea
list_insightsListar todas las ideas de negocioNinguno

Para ejemplos prácticos de cómo usar estas herramientas con Claude, consulte Ejemplos de uso.

Documentación adicional

Desarrollo

Para ejecutar el servidor en modo de desarrollo:

npm run dev

Para observar cambios durante el desarrollo:

npm run watch

Requisitos

  • Node.js 18+
  • Para conectividad con SQL Server: SQL Server 2012 o posterior
  • Para conectividad con PostgreSQL: PostgreSQL 9.5 o posterior

Licencia

MIT