MCP Database Server

Un servidor MCP que permite a los LLMs interactuar con bases de datos como MongoDB usando lenguaje natural.

Documentación

MCP Database Server

Una implementación de servidor del Model Context Protocol (MCP) que permite a los Modelos de Lenguaje de Gran Tamaño (LLMs) interactuar con diversas bases de datos mediante lenguaje natural. Actualmente es compatible con MongoDB, con planes de soportar:

  • PostgreSQL
  • CockroachDB
  • Redis
  • Y más...

Características

  • Operaciones de base de datos mediante lenguaje natural
  • Actualmente es compatible con MongoDB con las siguientes funciones:
    • Listar todas las colecciones
    • Consultar documentos con filtrado y proyección
    • Insertar documentos
    • Eliminar documentos
    • Operaciones de pipeline de agregación
  • Soporte futuro para otras bases de datos:
    • PostgreSQL: consultas SQL, operaciones de tablas
    • CockroachDB: operaciones SQL distribuidas
    • Redis: operaciones de clave-valor, almacenamiento en caché

Requisitos Previos

  • Node.js v20.12.2 o superior
  • Base de datos (actualmente MongoDB, otras bases de datos próximamente)
  • Aplicación de escritorio Claude Desktop

Instalación

  1. Clona el repositorio:
git clone https://github.com/manpreet2000/mcp-database-server.git
cd mcp-database-server
  1. Instala las dependencias:
npm install
  1. Compila el código TypeScript:
npm run build

Configuración

Para comenzar, debes configurar tu conexión a la base de datos en tu archivo de configuración de Claude Desktop:

MacOS

~/Library/Application\ Support/Claude/claude_desktop_config.json

Windows

%APPDATA%/Claude/claude_desktop_config.json

Añade la siguiente configuración a tu claude_desktop_config.json:

{
  "mcpServers": {
    "database": {
      "command": "/path/to/node",
      "args": ["/path/to/mcp-database/dist/index.js"],
      "env": {
        "MONGODB_URI": "your-mongodb-connection-string"
      }
    }
  }
}

Reemplaza:

  • /path/to/node con la ruta de tu ejecutable de Node.js o simplemente usa node
  • /path/to/mcp-database con la ruta absoluta a este repositorio
  • your-mongodb-connection-string con tu URL de conexión a MongoDB

Ejemplos de Uso

Ejemplos de MongoDB

  1. Lista todas las colecciones en tu base de datos:
Can you show me all the collections in my database?
  1. Obtén registros específicos de una colección:
Give me 2 records from the chargers collection
  1. Consulta con filtros:
Show me all documents in the users collection where status is active
  1. Inserta un documento:
Add a new user to the users collection with name John and email john@example.com
  1. Elimina un documento:
Remove the user with email john@example.com from the users collection
  1. Agrega datos:
Show me the total count of users by status in the users collection

Herramientas Disponibles

1. getCollections

Lista todas las colecciones en la base de datos conectada.

2. getCollection

Recupera documentos de una colección con parámetros de consulta opcionales:

  • collectionName: Nombre de la colección
  • limit: Número máximo de documentos a devolver (predeterminado: 10, máximo: 1000)
  • query: Objeto de consulta de MongoDB
  • projection: Campos a incluir/excluir

3. insertOne

Inserta un único documento en una colección:

  • collectionName: Nombre de la colección
  • document: Objeto de documento a insertar

4. deleteOne

Elimina un único documento de una colección:

  • collectionName: Nombre de la colección
  • query: Consulta para coincidir con el documento a eliminar

5. aggregate

Ejecuta un pipeline de agregación:

  • collectionName: Nombre de la colección
  • pipeline: Matriz de etapas de agregación
  • options: Opciones de agregación opcionales

Soporte Futuro de Bases de Datos

PostgreSQL

  • Ejecución de consultas SQL
  • Operaciones de tablas
  • Gestión de esquemas
  • Soporte de transacciones

CockroachDB

  • Operaciones SQL distribuidas
  • Soporte multirregión
  • Gestión de transacciones
  • Operaciones de esquemas

Redis

  • Operaciones de clave-valor
  • Mecanismos de almacenamiento en caché
  • Operaciones de publicación/suscripción
  • Operaciones de estructuras de datos

Seguridad

  • Nunca subas tus cadenas de conexión a la base de datos al control de versiones
  • Usa variables de entorno para información sensible
  • Sigue las mejores prácticas de seguridad específicas de cada base de datos

Contribuciones

¡Las contribuciones son bienvenidas! No dudes en enviar un Pull Request. Para cambios importantes, abre primero un issue para discutir lo que te gustaría cambiar.

Licencia

Licencia MIT - Consulta LICENSE para más detalles