Skip to main content
Glama

MCP PyODBC Server

MIT License
3
  • Apple
  • Linux

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.


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.

Verificado en MseeP

-
security - not tested
A
license - permissive license
-
quality - not tested

local-only server

The server can only run on the client's local machine because it depends on local resources.

Un servidor MCP liviano que permite el acceso y la consulta de bases de datos a través de conexiones ODBC, con soporte especial para características de Virtuoso DBMS como SPARQL y asistencia de IA a través del lenguaje natural.

  1. Características
    1. Prerrequisitos
      1. Instalación
        1. Variables de entorno
          1. Configuración
            1. Uso
              1. Herramientas proporcionadas
              2. Solución de problemas

            Related MCP Servers

            • A
              security
              A
              license
              A
              quality
              A high-performance MCP server utilizing libSQL for persistent memory and vector search capabilities, enabling efficient entity management and semantic knowledge storage.
              Last updated -
              6
              304
              70
              MIT License
            • -
              security
              A
              license
              -
              quality
              The Multi DB MCP Server is a high-performance implementation of the Database Model Context Protocol designed to revolutionize how AI agents interact with databases. Currently supporting MySQL and PostgreSQL databases.
              Last updated -
              294
              MIT License
              • Linux
              • Apple
            • -
              security
              F
              license
              -
              quality
              A FastMCP server that provides natural language interaction with MS SQL databases, enabling users to query data, list tables, describe structures, and execute database operations through a conversational AI interface.
              Last updated -
            • -
              security
              A
              license
              -
              quality
              MCP-Server from your Database optimized for LLMs and AI-Agents. Supports PostgreSQL, MySQL, ClickHouse, Snowflake, MSSQL, BigQuery, Oracle Database, SQLite, ElasticSearch, DuckDB
              Last updated -
              478
              Apache 2.0
              • Linux

            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-pyodbc-server'

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