ODBC MCP Server

Permite que las herramientas LLM consulten bases de datos mediante conexiones ODBC.

Documentación

ODBC MCP Server

Un servidor MCP (Model Context Protocol) que permite a herramientas LLM como Claude Desktop consultar bases de datos mediante conexiones ODBC. Este servidor permite a Claude y otros clientes MCP acceder, analizar y generar información a partir de los datos de la base de datos, manteniendo la seguridad y las protecciones de solo lectura.

Características

  • Conéctese a cualquier base de datos compatible con ODBC
  • Soporte para múltiples conexiones de bases de datos
  • Configuración flexible mediante archivos de configuración o ajustes de Claude Desktop
  • Protecciones de solo lectura para evitar la modificación de datos
  • Instalación sencilla con el gestor de paquetes UV
  • Informes de errores detallados y registro de actividades

Requisitos previos

  • Python 3.10 o superior
  • Gestor de paquetes UV
  • Controladores ODBC para su(s) base(s) de datos instalados en su sistema
  • Para Sage 100 Advanced: controlador ODBC de ProvideX

Instalación

git clone https://github.com/tylerstoltz/mcp-odbc.git
cd mcp-odbc
uv venv
.venv\Scripts\activate # On Mac / Linux: source .venv/bin/activate (untested)
uv pip install -e .

Configuración

El servidor se puede configurar mediante:

  1. Un archivo de configuración dedicado
  2. Variables de entorno
  3. Configuración de Claude Desktop

Configuración general

Cree un archivo de configuración (.ini) con los detalles de conexión de su base de datos:

[SERVER]
default_connection = my_database
max_rows = 1000
timeout = 30

[my_database]
dsn = MyDatabaseDSN
username = your_username
password = your_password
readonly = true

Configuración de SQLite

Para bases de datos SQLite con ODBC:

[SERVER]
default_connection = sqlite_db
max_rows = 1000
timeout = 30

[sqlite_db]
dsn = SQLite_DSN_Name
readonly = true

Configuración de Sage 100 ProvideX

ProvideX requiere una configuración especial para la compatibilidad. Utilice esta configuración mínima para obtener los mejores resultados:

[SERVER]
default_connection = sage100
max_rows = 1000
timeout = 60

[sage100]
dsn = YOUR_PROVIDEX_DSN
username = your_username
password = your_password
company = YOUR_COMPANY_CODE
readonly = true

Notas importantes para ProvideX:

  • Utilice una configuración mínima: agregar parámetros adicionales puede causar problemas de conexión
  • Siempre establezca readonly = true por seguridad
  • El parámetro company es obligatorio para las conexiones de Sage 100
  • Evite cambiar los atributos de conexión después de que se establezca la conexión

Integración con Claude Desktop

Para configurar el servidor en Claude Desktop:

  1. Abra o cree claude_desktop_config.json:

    • Windows: %APPDATA%\Claude\claude_desktop_config.json
    • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  2. Agregue la configuración del servidor MCP:

{
  "mcpServers": {
    "odbc": {
      "command": "uv",
      "args": [
        "--directory",
        "C:\\path\\to\\mcp-odbc",
        "run",
        "odbc-mcp-server",
        "--config", 
        "C:\\path\\to\\mcp-odbc\\config\\your_config.ini"
      ]
    }
  }
}

Uso

Iniciar el servidor manualmente

# Start with default configuration
odbc-mcp-server

# Start with a specific config file
odbc-mcp-server --config path/to/config.ini

Uso con Claude Desktop

  1. Configure el servidor en el archivo de configuración de Claude Desktop como se muestra arriba
  2. Reinicie Claude Desktop
  3. Las herramientas ODBC aparecerán automáticamente en la lista de herramientas MCP

Herramientas MCP disponibles

El servidor ODBC MCP proporciona estas herramientas:

  1. list-connections: Enumera todas las conexiones de bases de datos configuradas
  2. list-available-dsns: Enumera todos los DSN disponibles en el sistema
  3. test-connection: Prueba una conexión de base de datos y devuelve información
  4. list-tables: Enumera todas las tablas de la base de datos
  5. get-table-schema: Obtiene información del esquema de una tabla
  6. execute-query: Ejecuta una consulta SQL y devuelve los resultados

Consultas de ejemplo

Pruebe estas indicaciones en Claude Desktop después de conectar el servidor:

  • "Muéstrame todas las tablas de la base de datos"
  • "¿Cuál es el esquema de la tabla Customer?"
  • "Ejecuta una consulta para obtener los primeros 10 clientes"
  • "Encuentra todos los pedidos realizados en los últimos 30 días"
  • "Analiza los datos de ventas por región y proporciona información"

Solución de problemas

Problemas de conexión

Si encuentra problemas de conexión:

  1. Verifique que sus controladores ODBC estén instalados correctamente
  2. Pruebe su DSN mediante el Administrador de orígenes de datos ODBC
  3. Verifique los parámetros de conexión en su archivo de configuración
  4. Busque mensajes de error detallados en los registros de Claude Desktop

Problemas específicos de ProvideX

Para Sage 100/ProvideX:

  1. Utilice una configuración de conexión mínima (DSN, nombre de usuario, contraseña, empresa)
  2. Asegúrese de que el parámetro Company sea correcto
  3. Utilice la plantilla de configuración especial de ProvideX
  4. Si encuentra errores de Driver not capable, verifique que autocommit se esté configurando al momento de la conexión

Tablas faltantes

Si las tablas no aparecen:

  1. Verifique los permisos de usuario de la cuenta de la base de datos
  2. Verifique si el código de empresa es correcto (para Sage 100)
  3. Intente utilizar nombres de tabla totalmente calificados (schema.table)

Licencia

Licencia MIT - Copyright (c) 2024