Skip to main content
Glama

mcp-sqlalchemy

MIT License
14
  • Apple
  • Linux

ODBC del servidor MCP a través de SQLAlchemy

Un servidor MCP (Protocolo de Contexto de Modelo) ligero para ODBC, desarrollado con FastAPI , pyodbc y SQLAlchemy . Este servidor es compatible con Virtuoso DBMS y otros backends de DBMS que implementan un proveedor SQLAlchemy.

cliente-y-servidores-mcp|648x499


Características

  • Obtener esquemas : obtiene y enumera todos los nombres de esquemas de la base de datos conectada.

  • Obtener tablas : recupera información de la tabla para esquemas específicos o todos los esquemas.

  • Describir tabla : genere una descripción detallada de las estructuras de tabla, incluyendo:

    • Nombres de columnas y tipos de datos

    • Atributos que aceptan valores nulos

    • Claves primarias y externas

  • Tablas de búsqueda : filtre y recupere tablas según subcadenas de nombre.

  • Ejecutar procedimientos almacenados : en el caso de Virtuoso, ejecutar procedimientos almacenados y recuperar resultados.

  • Ejecutar consultas :

    • Formato de resultado JSONL: optimizado para respuestas estructuradas.

    • Formato de tabla Markdown: ideal para informes y visualización.


Prerrequisitos

  1. Instalar uv :

    pip install uv

    O usa Homebrew:

    brew install uv
  2. Comprobaciones del entorno de ejecución de unixODBC :

  3. Verifique la configuración de la instalación (es decir, la ubicación de los archivos INI clave) ejecutando: odbcinst -j

  4. Enumere los nombres de fuentes de datos disponibles ejecutando: odbcinst -q -s

  5. Configuración de DSN ODBC : Configure el nombre de la fuente de datos ODBC ( ~/.odbc.ini ) para la base de datos de destino. Ejemplo para Virtuoso DBMS:

    [VOS] Description = OpenLink Virtuoso Driver = /path/to/virtodbcu_r.so Database = Demo Address = localhost:1111 WideAsUTF16 = Yes
  6. Enlace de URL de SQLAlchemy : utilice el formato:

    virtuoso+pyodbc://user:password@VOS

Instalación

Clonar este repositorio:

git clone https://github.com/OpenLinkSoftware/mcp-sqlalchemy-server.git cd mcp-sqlalchemy-server

Variables de entorno

Actualice su .env anulando los valores predeterminados para que coincidan con sus preferencias

ODBC_DSN=VOS ODBC_USER=dba ODBC_PASSWORD=dba API_KEY=xxx

Configuración

Para usuarios de Claude Desktop : agregue lo siguiente a claude_desktop_config.json :

{ "mcpServers": { "my_database": { "command": "uv", "args": ["--directory", "/path/to/mcp-sqlalchemy-server", "run", "mcp-sqlalchemy-server"], "env": { "ODBC_DSN": "dsn_name", "ODBC_USER": "username", "ODBC_PASSWORD": "password", "API_KEY": "sk-xxx" } } } }

Uso

URL de conexión del sistema de gestión de bases de datos (DBMS)

Aquí se encuentran los ejemplos de URL de pyodbc para conectarse a sistemas DBMS que se han probado utilizando este servidor mcp.

Base de datos

Formato de URL

Sistema de gestión de bases de datos Virtuoso

virtuoso+pyodbc://user:password@ODBC_DSN

PostgreSQL

postgresql://user:password@localhost/dbname

MySQL

mysql+pymysql://user:password@localhost/dbname

SQLite

sqlite:///path/to/database.db

Una vez conectado, podrás interactuar con tus contactos de WhatsApp a través de Claude, aprovechando las capacidades de inteligencia artificial de Claude en tus conversaciones de WhatsApp.

Herramientas proporcionadas

Descripción general

nombre

descripción

podbc_get_schemas

Enumere los esquemas de bases de datos accesibles al sistema de administración de bases de datos (DBMS) conectado.

podbc_obtener_tablas

Enumere las tablas asociadas con un esquema de base de datos seleccionado.

tabla de descripción de podbc

Proporcione la descripción de una tabla asociada a un esquema de base de datos designado. Esto incluye información sobre nombres de columnas, tipos de datos, gestión de valores nulos, autoincremento, clave principal y claves foráneas.

nombres de tabla de filtros podbc

Enumere tablas basadas en un patrón de subcadena del campo de entrada

q

, asociado con un esquema de base de datos seleccionado.

base de datos de consultas podbc

Ejecuta una consulta SQL y devuelve resultados en formato JSONL.

podbc_ejecutar_consulta

Ejecuta una consulta SQL y devuelve resultados en formato JSONL.

podbc_ejecutar_consulta_md

Ejecuta una consulta SQL y devuelve los resultados en formato de tabla Markdown.

consulta podbc_spasql

Ejecutar una consulta SPASQL y devolver resultados.

consulta podbc_sparql

Ejecutar una consulta SPARQL y devolver resultados.

podbc_virtuoso_support_ai

Interactúe con el asistente/agente de soporte de Virtuoso: una función específica de Virtuoso para interactuar con los LLM

Descripción detallada

  • podbc_get_schemas

    • Recupere y devuelva una lista de todos los nombres de esquemas de la base de datos conectada.

    • Parámetros de entrada:

      • user (cadena, opcional): nombre de usuario de la base de datos. El valor predeterminado es "demo".

      • password (cadena, opcional): Contraseña de la base de datos. El valor predeterminado es "demo".

      • dsn (cadena, opcional): nombre de la fuente de datos ODBC. El valor predeterminado es "Virtuoso local".

    • Devuelve una matriz de cadenas JSON de nombres de esquemas.

  • podbc_obtener_tablas

    • Recupera y devuelve una lista con información sobre las tablas de un esquema especificado. Si no se proporciona ningún esquema, se utiliza el esquema predeterminado de la conexión.

    • Parámetros de entrada:

      • schema (cadena, opcional): Esquema de base de datos para filtrar tablas. El valor predeterminado es el valor de conexión.

      • user (cadena, opcional): nombre de usuario de la base de datos. El valor predeterminado es "demo".

      • password (cadena, opcional): Contraseña de la base de datos. El valor predeterminado es "demo".

      • dsn (cadena, opcional): nombre de la fuente de datos ODBC. El valor predeterminado es "Virtuoso local".

    • Devuelve una cadena JSON que contiene información de la tabla (por ejemplo, TABLE_CAT, TABLE_SCHEM, TABLE_NAME, TABLE_TYPE).

  • nombres de tabla de filtros podbc

    • Filtra y devuelve información sobre las tablas cuyos nombres contienen una subcadena específica.

    • Parámetros de entrada:

      • q (cadena, obligatoria): la subcadena que se buscará dentro de los nombres de las tablas.

      • schema (cadena, opcional): Esquema de base de datos para filtrar tablas. El valor predeterminado es el valor de conexión.

      • user (cadena, opcional): nombre de usuario de la base de datos. El valor predeterminado es "demo".

      • password (cadena, opcional): Contraseña de la base de datos. El valor predeterminado es "demo".

      • dsn (cadena, opcional): nombre de la fuente de datos ODBC. El valor predeterminado es "Virtuoso local".

    • Devuelve una cadena JSON que contiene información para las tablas coincidentes.

  • tabla de descripción de podbc

    • Recupere y devuelva información detallada sobre las columnas de una tabla específica.

    • Parámetros de entrada:

      • schema (cadena, obligatorio): el nombre del esquema de la base de datos que contiene la tabla.

      • table (cadena, obligatoria): el nombre de la tabla a describir.

      • user (cadena, opcional): nombre de usuario de la base de datos. El valor predeterminado es "demo".

      • password (cadena, opcional): Contraseña de la base de datos. El valor predeterminado es "demo".

      • dsn (cadena, opcional): nombre de la fuente de datos ODBC. El valor predeterminado es "Virtuoso local".

    • Devuelve una cadena JSON que describe las columnas de la tabla (por ejemplo, COLUMN_NAME, TYPE_NAME, COLUMN_SIZE, IS_NULLABLE).

  • base de datos de consultas podbc

    • Ejecuta una consulta SQL estándar y devuelve los resultados en formato JSON.

    • Parámetros de entrada:

      • query (cadena, obligatoria): la cadena de consulta SQL que se ejecutará.

      • user (cadena, opcional): nombre de usuario de la base de datos. El valor predeterminado es "demo".

      • password (cadena, opcional): Contraseña de la base de datos. El valor predeterminado es "demo".

      • dsn (cadena, opcional): nombre de la fuente de datos ODBC. El valor predeterminado es "Virtuoso local".

    • Devuelve los resultados de la consulta como una cadena JSON.

  • base de datos de consulta podbc_md

    • Ejecute una consulta SQL estándar y devuelva los resultados formateados como una tabla Markdown.

    • Parámetros de entrada:

      • query (cadena, obligatoria): la cadena de consulta SQL que se ejecutará.

      • user (cadena, opcional): nombre de usuario de la base de datos. El valor predeterminado es "demo".

      • password (cadena, opcional): Contraseña de la base de datos. El valor predeterminado es "demo".

      • dsn (cadena, opcional): nombre de la fuente de datos ODBC. El valor predeterminado es "Virtuoso local".

    • Devuelve los resultados de la consulta como una cadena de tabla Markdown.

  • podbc_query_base_de_datos_jsonl

    • Ejecuta una consulta SQL estándar y devuelve los resultados en formato de líneas JSON (JSONL) (un objeto JSON por línea).

    • Parámetros de entrada:

      • query (cadena, obligatoria): la cadena de consulta SQL que se ejecutará.

      • user (cadena, opcional): nombre de usuario de la base de datos. El valor predeterminado es "demo".

      • password (cadena, opcional): Contraseña de la base de datos. El valor predeterminado es "demo".

      • dsn (cadena, opcional): nombre de la fuente de datos ODBC. El valor predeterminado es "Virtuoso local".

    • Devuelve los resultados de la consulta como una cadena JSONL.

  • consulta podbc_spasql

    • Ejecutar una consulta SPASQL (SQL/SPARQL híbrido) y devolver resultados. Esta función es específica de Virtuoso.

    • Parámetros de entrada:

      • query (cadena, obligatoria): la cadena de consulta SPASQL.

      • max_rows (número, opcional): Número máximo de filas a devolver. El valor predeterminado es 20.

      • timeout (número, opcional): Tiempo de espera de la consulta en milisegundos. El valor predeterminado es 30000.

      • user (cadena, opcional): nombre de usuario de la base de datos. El valor predeterminado es "demo".

      • password (cadena, opcional): Contraseña de la base de datos. El valor predeterminado es "demo".

      • dsn (cadena, opcional): nombre de la fuente de datos ODBC. El valor predeterminado es "Virtuoso local".

    • Devuelve el resultado de la llamada al procedimiento almacenado subyacente (por ejemplo, Demo.demo.execute_spasql_query ).

  • consulta podbc_sparql

    • Ejecutar una consulta SPARQL y devolver resultados. Esta es una función específica de Virtuoso.

    • Parámetros de entrada:

      • query (cadena, obligatoria): la cadena de consulta SPARQL.

      • format (cadena, opcional): formato del resultado deseado. El valor predeterminado es 'json'.

      • timeout (número, opcional): Tiempo de espera de la consulta en milisegundos. El valor predeterminado es 30000.

      • user (cadena, opcional): nombre de usuario de la base de datos. El valor predeterminado es "demo".

      • password (cadena, opcional): Contraseña de la base de datos. El valor predeterminado es "demo".

      • dsn (cadena, opcional): nombre de la fuente de datos ODBC. El valor predeterminado es "Virtuoso local".

    • Devuelve el resultado de la llamada de función subyacente (por ejemplo, "UB".dba."sparqlQuery" ).

  • podbc_virtuoso_support_ai

    • Utiliza una función del Asistente de IA específica de Virtuoso, que envía un mensaje y una clave API opcional. Esta función es específica de Virtuoso.

    • Parámetros de entrada:

      • prompt (cadena, obligatorio): el texto de solicitud para la función AI.

      • api_key (cadena, opcional): Clave de API para el servicio de IA. Su valor predeterminado es "ninguna".

      • user (cadena, opcional): nombre de usuario de la base de datos. El valor predeterminado es "demo".

      • password (cadena, opcional): Contraseña de la base de datos. El valor predeterminado es "demo".

      • dsn (cadena, opcional): nombre de la fuente de datos ODBC. El valor predeterminado es "Virtuoso local".

    • Devuelve el resultado de la llamada a la función AI Support Assistant (por ejemplo, DEMO.DBA.OAI_VIRTUOSO_SUPPORT_AI ).


Solución de problemas

Para facilitar la resolución de problemas:

  1. Instalar el Inspector MCP:

    npm install -g @modelcontextprotocol/inspector
  2. Iniciar el inspector:

    npx @modelcontextprotocol/inspector uv --directory /path/to/mcp-sqlalchemy-server run mcp-sqlalchemy-server

Acceda a la URL proporcionada para solucionar problemas de interacciones con el servidor.

Deploy Server
A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

Proporciona conectividad SQLAlchemy (a través de pyodbc) a cualquier sistema de administración de bases de datos (DBMS) al que se pueda acceder a través de SQLAlchemy.

  1. Características
    1. Prerrequisitos
      1. Instalación
        1. Variables de entorno
          1. Configuración
            1. Uso
              1. URL de conexión del sistema de gestión de bases de datos (DBMS)
              2. Herramientas proporcionadas
              3. Solución de problemas

            Related MCP Servers

            • -
              security
              F
              license
              -
              quality
              Connects to CockroachDB instances and exposes database structures as resources, enabling SQL query execution and analysis through Claude's interface.
              Last updated -
              4
              • Apple
            • A
              security
              A
              license
              A
              quality
              Connect and interact with MySQL databases seamlessly. Execute SQL queries, manage database connections, and retrieve data directly through AI assistants. Enhance your AI capabilities with structured access to your MySQL data.
              Last updated -
              9
              0
              17
              MIT License
            • -
              security
              A
              license
              -
              quality
              Provides generic Open Database Connectivity (ODBC) to any Database Management System (DBMS) that's accessible via an ODBC Connector (Driver).
              Last updated -
              9
              MIT License
              • Apple
            • -
              security
              F
              license
              -
              quality
              Provides Claude Desktop with secure access to multiple database connections, allowing users to query MySQL, PostgreSQL, SQLite, and SQL Server databases directly through natural language.
              Last updated -
              • Apple

            View all related MCP servers

            MCP directory API

            We provide all the information about MCP servers via our MCP API.

            curl -X GET 'https://glama.ai/api/mcp/v1/servers/OpenLinkSoftware/mcp-sqlalchemy-server'

            If you have feedback or need assistance with the MCP directory API, please join our Discord server