local-only server
The server can only run on the client’s local machine because it depends on local resources.
Integrations
Uses .env files for securely storing and accessing configuration variables like API keys and database credentials.
Offers the ability to return SQL query results formatted as Markdown tables through the execute_query_md tool.
Provides routing of database calls through Node.js to the host system's ODBC Driver Manager, allowing for connection to various database systems.
Introducción
Este documento describe la configuración y el uso de un servidor ODBC genérico para el Protocolo de Contexto de Modelo (MCP), denominado servidor mcp-odbc. Se desarrolló para proporcionar a los Modelos de Lenguaje Grandes acceso transparente a fuentes de datos accesibles mediante ODBC mediante un nombre de fuente de datos configurado para un conector (o controlador) ODBC específico.
Implementación del servidor
Este servidor MCP para ODBC es una pequeña capa de TypeScript construida sobre node-odbc
. Enruta las llamadas al administrador de controladores ODBC local del sistema host mediante node.js (específicamente, usando "npx" para TypeScript).
Configuración y requisitos previos del entorno operativo
Aunque los ejemplos siguientes están orientados al Conector ODBC de Virtuoso, esta guía también es compatible con otros conectores ODBC. Recomendamos encarecidamente las contribuciones de código y demostraciones de uso relacionadas con otros sistemas de gestión de bases de datos para su incorporación en este proyecto.
Componentes clave del sistema
- Verifique la versión de node.js; si no es 21.1.0, actualice o instale explícitamente usando:
nvm install v21.1.0
- Instale los componentes MCP usando:
npm install @modelcontextprotocol/sdk zod tsx odbc dotenv
- Establezca la versión
nvm
usando:nvm alias default 21.1.0
Instalación
- Ejecute
git clone https://github.com/OpenLinkSoftware/mcp-odbc-server.git
- Cambiar directorio
cd mcp-odbc-server
- Ejecute
npm init -y
- Agregue la entrada
"type":"module"
al archivopackage.json
- Ejecute
npm install @modelcontextprotocol/sdk zod tsx odbc dotenv
Comprobaciones 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 -j
- Enumere los nombres de fuentes de datos disponibles ejecutando:
odbcinst -q -s
Variables de entorno
Como buena práctica de seguridad, debe utilizar el archivo .env
ubicado en el mismo directorio que mcp-ser
para establecer enlaces para la clave API del modelo de lenguaje grande de destino (si desea utilizar OpenLink AI Layer (OPAL) a través de ODBC), el nombre de la fuente de datos ODBC (ODBC_DSN), el usuario (ODBC_USER), la contraseña (ODBC_PWD) y el INI ODBC (ODBCINI).
Uso
Herramientas
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 |
---|---|
obtener_esquemas | Enumere los esquemas de bases de datos accesibles al sistema de administración de bases de datos (DBMS) conectado. |
obtener_tablas | Enumere las tablas asociadas con un esquema de base de datos seleccionado. |
describe_tabla | 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_filtro | 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 | Ejecuta una consulta SQL y devuelve resultados en formato JSONL. |
ejecutar_consulta | Ejecuta una consulta SQL y devuelve resultados en formato JSONL. |
ejecutar_consulta_md | Ejecuta una consulta SQL y devuelve los resultados en formato de tabla Markdown. |
consulta_spasql | Ejecutar una consulta SPASQL y devolver resultados. |
consulta sparql | Ejecutar una consulta SPARQL y devolver resultados. |
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
- obtener_esquemas
- 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.
- 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_filtro
- 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.
- describe_tabla
- 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
- 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.
- consulta_base_de_datos_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.
- consulta_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_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 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"
).
- 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
).
Pruebas de instalación básicas y resolución de problemas
- Inicie el inspector desde el directorio/carpeta mcp-server usando el siguiente comando:Copy
- Haga clic en el botón "Conectar", luego haga clic en la pestaña "Herramientas" para comenzar.
Uso de la aplicación MCP
Configuración del escritorio de Claude
La ruta para este archivo de configuración es: ~{username}/Library/Application Support/Claude/claude_desktop_config.json
.
Uso del escritorio de Claude
- Iniciar la aplicación
- Aplicar la configuración (desde arriba) a través de Configuración | Interfaz de usuario para desarrolladores
- Asegúrese de tener una conexión ODBC en funcionamiento a un nombre de fuente de datos (DSN)
- Presentar un mensaje solicitando la ejecución de una consulta, por ejemplo,
Execute the following query: SELECT TOP * from Demo..Customers
Configuración de Cline (extensión de Visual Studio)
La ruta para este archivo de configuración es: ~{username}/Library/Application\ Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json
Uso de Cline (extensión de Visual Studio)
- Utilice Shift+Comando+P para abrir la Paleta de comandos
- Escriba: Cline
- Seleccionar: Vista Cline, que abre la interfaz de usuario de Cline en la barra lateral de VSCode
- Utilice el icono de cuatro cuadrados para acceder a la interfaz de usuario para instalar y configurar servidores MCP
- Aplicar la configuración de Cline (de arriba)
- Regrese a la interfaz principal de la extensión e inicie una nueva tarea solicitando el procesamiento del siguiente mensaje: "Ejecute la siguiente consulta: SELECT TOP 5 * from Demo..Customers"
Configuración del cursor
Utilice el engranaje de configuración para abrir el menú de configuración que incluye el elemento de menú MCP para registrar y configurar mcp servers
.
Uso del cursor
- Utilice la combinación de teclas
Command or Control + I
para abrir la interfaz de chat - Seleccione
Agent
en el menú desplegable en la parte inferior izquierda de la interfaz de usuario, ya que el valor predeterminado esAsk
- Ingrese su mensaje, calificando el uso del
mcp-server for odbc
usando el patrón:@odbc {rest-of-prompt}
- Haga clic en “Aceptar” para ejecutar el mensaje.
Relacionado
This server cannot be installed
Proporciona conectividad de base de datos abierta genérica (ODBC) a cualquier sistema de gestión de bases de datos (DBMS) al que se pueda acceder a través de un conector ODBC (controlador).