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.

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
Instalar uv :
pip install uvO usa Homebrew:
brew install uvComprobaciones del entorno de ejecución de unixODBC :
Verifique la configuración de la instalación (es decir, la ubicación de los archivos INI clave) ejecutando:
odbcinst -jEnumere los nombres de fuentes de datos disponibles ejecutando:
odbcinst -q -sConfiguració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-serverVariables 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=xxxConfiguració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 |
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:
Instalar el Inspector MCP:
npm install -g @modelcontextprotocol/inspectorIniciar 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.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
No tool schema history has been recorded yet.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
- mcpOAuthcom.gibsonai
GibsonAI MCP server: manage your databases with natural language
Cloud-hosted MCP server for secure AI access to enterprise data sources via CData Connect AI.
MCP server unifying ERPs, CRMs, APIs and knowledge base for Claude, ChatGPT and Gemini.
Self-hosted MCP gateway: turn any API, database or MCP server into AI connectors — no code.
Related MCP Servers
- FlicenseNot gradedqualityBmaintenanceAn MCP server that exposes relational databases (PostgreSQL/MySQL) to AI agents with natural language to SQL query support.19-
- -licenseNot gradedqualityCmaintenanceAn MCP server that bridges AI assistants with SQL databases, enabling natural language querying across multiple database types with built-in optimization and security.3-
- FlicenseNot gradedqualityDmaintenanceA 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-
- AlicenseAqualityDmaintenanceA database-agnostic MCP server that enables natural language queries to your database through Claude or Copilot, automatically writing and executing SQL.816MIT
Appeared in Searches
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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