OpenLink MCP Server for JDBC

MIT License

Integrations

  • Supports configuration through .env files, allowing users to override default database connection settings with custom environment variables.

  • Provides ability to format database query results as Markdown tables, making data presentation more readable for reporting and visualization purposes.


Servidor de protocolo de contexto de modelo (MCP) basado en Java para JDBC

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


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

El servidor MCP requiere Java 21 o superior.


Instalación

Clonar este repositorio:

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

Variables de entorno

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

jdbc.url=jdbc:virtuoso://localhost:1111 jdbc.user=dba jdbc.password=dba jdbc.api_key=xxx

Configuración

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

{ "mcpServers": { "my_database": { "command": "java", "args": ["-jar", "/path/to/mcp-jdbc-server/MCPServer-1.0.0-runner.jar"], "env": { "jdbc.url": "jdbc:virtuoso://localhost:1111", "jdbc.user": "username", "jdbc.password": "password", "jdbc.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

nombredescripción
jdbc_obtener_esquemasEnumere los esquemas de bases de datos accesibles al sistema de administración de bases de datos (DBMS) conectado.
jdbc_obtener_tablasEnumere las tablas asociadas con un esquema de base de datos seleccionado.
tabla de descripción jdbcProporcione 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 jdbcEnumere 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 jdbcEjecuta una consulta SQL y devuelve resultados en formato JSONL.
consulta_ejecutar_jdbcEjecuta una consulta SQL y devuelve resultados en formato JSONL.
consulta_ejecutar_jdbc_mdEjecuta una consulta SQL y devuelve los resultados en formato de tabla Markdown.
consulta jdbc_spasqlEjecutar una consulta SPASQL y devolver resultados.
consulta jdbc_sparqlEjecutar una consulta SPARQL y devolver resultados.
jdbc_virtuoso_support_aiInteractúe con el asistente/agente de soporte de Virtuoso: una función específica de Virtuoso para interactuar con los LLM

Descripción detallada

  • jdbc_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".
      • url (cadena, opcional): cadena de conexión URL JDBC.
    • Devuelve una matriz de cadenas JSON de nombres de esquemas.
  • jdbc_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".
      • url (cadena, opcional): cadena de conexión URL JDBC.
    • 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 jdbc
    • 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".
      • url (cadena, opcional): cadena de conexión URL JDBC.
    • Devuelve una cadena JSON que contiene información para las tablas coincidentes.
  • tabla de descripción jdbc
    • 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".
      • url (cadena, opcional): cadena de conexión URL JDBC.
    • 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 jdbc
    • 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".
      • url (cadena, opcional): cadena de conexión URL JDBC.
    • Devuelve los resultados de la consulta como una cadena JSON.
  • base de datos de consulta jdbc_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".
      • url (cadena, opcional): cadena de conexión URL JDBC.
    • Devuelve los resultados de la consulta como una cadena de tabla Markdown.
  • base de datos de consulta jdbc_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".
      • url (cadena, opcional): cadena de conexión URL JDBC.
    • Devuelve los resultados de la consulta como una cadena JSONL.
  • consulta jdbc_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".
      • url (cadena, opcional): cadena de conexión URL JDBC.
    • Devuelve el resultado de la llamada al procedimiento almacenado subyacente (por ejemplo, Demo.demo.execute_spasql_query ).
  • consulta jdbc_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".
      • url (cadena, opcional): cadena de conexión URL JDBC.
    • Devuelve el resultado de la llamada de función subyacente (por ejemplo, "UB".dba."sparqlQuery" ).
  • jdbc_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".
      • url (cadena, opcional): cadena de conexión URL JDBC.
    • 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 solucionar problemas fácilmente:

  1. Instalar el Inspector MCP:
    npm install -g @modelcontextprotocol/inspector
  2. Iniciar el inspector:
    npx @modelcontextprotocol/inspector java -jar /path/to/mcp-jdbc-server/MCPServer-1.0.0-runner.jar

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

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

Servidor MCP de OpenLink para JDBC

  1. Features
    1. Prerequisites
      1. Installation
        1. Environment Variables
          1. Configuration
            1. Usage
              1. Tools Provided
              2. Troubleshooting
            ID: q412uvi27y