Microsoft Access Database

Permite que la IA interactúe con bases de datos de Microsoft Access, admitiendo la importación y exportación de datos mediante archivos CSV.

Documentación

"## Servidor MCP de Bases de Datos (Access y SQLite 3)

Un servidor MCP simple para permitir que la IA interactúe con bases de datos de Microsoft Access y SQLite 3. Admite importación/exportación con archivos CSV y Excel, y almacena notas legibles por humanos sobre archivos.

ADVERTENCIA: Este servidor tiene acceso completo a las bases de datos, por lo que puede leer y modificar cualquier dato en ellas. Úsalo con precaución para evitar la pérdida de datos.

Configuración

Para usar este servidor MCP con Claude Desktop (o cualquier otro host MCP), clona el repositorio y agrega lo siguiente a tu config.json:

{
  "mcpServers": {
    "access-mdb": {
      "command": "uv",
      "args": [
        "run",
        "--with", "fastmcp",
        "--with", "pandas",
        "--with", "sqlalchemy-access",
        "--with", "openpyxl",
        "fastmcp", "run",
        "path/to/repo/server.py"
      ],
    }
  }
}

Nota de desarrollo: para usar con uvx, necesitamos crear un paquete y publicarlo en PyPI.

Herramientas Disponibles

Gestión de bases de datos:

  • list: Lista todas las bases de datos activas disponibles en el servidor.
  • create: Crea un nuevo archivo de base de datos (para Microsoft Access, copia la plantilla empty.mdb).
  • connect: Conecta a un archivo de base de datos existente, o crea una base de datos en memoria si el archivo no se especifica.
  • disconnect: Cierra una conexión de base de datos. Para bases de datos en memoria, esto borrará todos sus datos.

Nota: usa la herramienta connect con readOnly=true para abrir una base de datos en modo de solo lectura. Para bases de datos SQLite en memoria, el modo de solo lectura no es compatible.

Gestión de datos:

  • query: Ejecuta una consulta SQL para recuperar datos de una base de datos.
  • update: Ejecuta una consulta SQL para insertar/actualizar/eliminar datos en una base de datos.
  • import_csv: Importa datos de un archivo CSV a una tabla de base de datos.
  • export_csv: Exporta datos de una tabla de base de datos a un archivo CSV.
  • import_excel: Importa datos de un archivo Excel a una tabla de base de datos.

Gestión de notas:

  • read_notes: Lee notas del archivo especificado, o descubre notas en el directorio especificado.
  • write_notes: Escribe notas en el archivo especificado, o vinculadas a la base de datos especificada.

Nota: la exportación a Excel no está implementada, usa haris-musa/excel-mcp-server en su lugar. El principal problema es rastrear el índice de filas y columnas en el archivo Excel, para importar/exportar datos correctamente a las mismas celdas, y/o insertar nuevas filas/columnas. Además, las celdas combinadas complican el proceso, sería demasiado complejo de implementar.

Tipos de Bases de Datos Soportados

Por defecto, la detección del controlador de base de datos se basa en la extensión del archivo:

  • Microsoft Access: .mdb y .accdb
  • SQLite 3: .db, .sqlite, y .sqlite3

Si la ruta de la base de datos no se especifica (cadena vacía), se creará una base de datos SQLite en memoria.

Para permitir que el servidor abra o cree un archivo de base de datos sin depender de la extensión (por ejemplo, si tu archivo de base de datos tiene una extensión no estándar), puedes especificar el controlador explícitamente usando el parámetro driver en la herramienta connect o create.

  • driver="access" para Microsoft Access
  • driver="sqlite" para SQLite 3
  • driver="auto" (predeterminado) detecta automáticamente el controlador según la extensión del archivo

Estructura del proyecto

Archivos principales:

  • server.py: Implementación del servidor MCP.

Pruebas:

  • test_tools.py: Funciones para probar herramientas MCP individuales.
  • test_mcp.py: Prueba todas las herramientas MCP en un flujo de trabajo típico.

Documentación:

  • README.md: Este archivo, con información general sobre el proyecto.
  • LICENSE: Licencia MIT.

Scripts de exploración, utilizados en las primeras etapas para desarrollar funcionalidad básica:

  • scouting_mdb.py: SQLAlchemy y pandas para interactuar con bases de datos de Microsoft Access.
  • scouting_csv.py: SQLAlchemy y pandas para interactuar con archivos CSV.

PENDIENTES

  • Agregar herramienta para crear una nueva base de datos, copiando empty.mdb a la ruta especificada.
  • Agregar la capacidad de conectarse a múltiples bases de datos al mismo tiempo.
  • Agregar herramienta para listar todas las tablas en la base de datos.
  • Agregar herramientas para importar/exportar datos desde/hacia archivos CSV.
  • Agregar herramientas para importar datos desde/hacia archivos Excel.
  • Agregar prompt para guiar a la IA a solicitar información al usuario sobre la base de datos.
  • Almacenar información sobre archivos (archivos .AInotes), para recuperarla más tarde.
  • Agregar parámetro de controlador para gestionar bases de datos sin depender de la extensión del archivo.
  • Agregar herramienta para recordar archivos CSV y Excel importados/exportados.