Skip to main content
Glama
MCP PyODBC Server

MCP PyODBC Server


ODBC del servidor MCP a través de PyODBC

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

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.


Related MCP server: mcp-ohmy-sql

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

Instalación

Clonar este repositorio:

git clone https://github.com/OpenLinkSoftware/mcp-pyodbc-server.git
cd mcp-pyodbc-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-pyodbc-server", "run", "mcp-pyodbc-server"],
      "env": {
        "ODBC_DSN": "dsn_name",
        "ODBC_USER": "username",
        "ODBC_PASSWORD": "password",
        "API_KEY": "sk-xxx"
      }
    }
  }
}

Uso

Herramientas proporcionadas

Después de una instalación exitosa, las siguientes herramientas estarán disponibles para las aplicaciones cliente de MCP.

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 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-pyodbc-server run mcp-pyodbc-server

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

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    A
    maintenance
    An MCP server that exposes relational databases (PostgreSQL/MySQL) to AI agents with natural language to SQL query support.
    19
    -
  • -
    license
    Not graded
    quality
    C
    maintenance
    An MCP server that bridges AI assistants with SQL databases, enabling natural language querying across multiple database types with built-in optimization and security.
    3
    -
  • F
    license
    Not graded
    quality
    D
    maintenance
    A versatile MCP server that connects to multiple relational databases (MySQL, PostgreSQL, Oracle, SQL Server, SQLite) and enables secure read-only SQL query execution and metadata access.
    4
    -
  • A
    license
    A
    quality
    D
    maintenance
    A database-agnostic MCP server that enables natural language queries to your database through Claude or Copilot, automatically writing and executing SQL.
    8
    8 npm
    MIT