OpenLink MCP Server for JDBC

Official
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.


Сервер Model Context Procotol (MCP) на основе Java для JDBC

Легкий сервер MCP (Model Context Protocol) для JDBC, созданный с помощью Quakrus . Этот сервер совместим с СУБД Virtuoso и другими бэкэндами СУБД, имеющими драйверы JDBC.


Функции

  • Получить схемы : извлечь и составить список всех имен схем из подключенной базы данных.
  • Получить таблицы : извлечь информацию о таблицах для определенных схем или всех схем.
  • Опишите таблицу : создайте подробное описание структур таблиц, включая:
    • Имена столбцов и типы данных
    • Атрибуты, допускающие значение NULL
    • Первичные и внешние ключи
  • Поиск таблиц : фильтрация и извлечение таблиц на основе подстрок имен.
  • Выполнение хранимых процедур : специфическая функция Virtuoso! Выполнение хранимых процедур и получение результатов.
  • Выполнение запросов :
    • Формат результата JSONL: оптимизирован для структурированных ответов.
    • Формат таблицы Markdown: идеально подходит для составления отчетов и визуализации.

Предпосылки

Для сервера MCP требуется Java 21 или выше.


Установка

Клонируйте этот репозиторий:

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

Переменные среды

Обновите свой .env , переопределив эти значения по умолчанию в соответствии со своими предпочтениями:

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

Конфигурация

Для пользователей Claude Desktop : добавьте следующее в 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" } } } }

Для пользователей Claude Desktop, использующих другие драйверы JDBC или комбинацию драйверов: добавьте следующее в claude_desktop_config.json :

"jdbc": { "command": "java", "args": [ "-cp", "/path/to/mcp-jdbc-server/MCPServer-1.0.0-runner.jar:/path/to/jdbc_driver1.jar:/path/to/jdbc_driverN.jar", "io.quarkus.runner.GeneratedMain" ], "env": { "jdbc.url": "jdbc:virtuoso://localhost:1111", "jdbc.user": "dba", "jdbc.password": "dba" } }

Использовать

Предоставляемые инструменты

После успешной установки клиентским приложениям MCP будут доступны следующие инструменты.

Обзор
имяописание
jdbc_get_schemasПеречислить схемы баз данных, доступные для подключенной системы управления базами данных (СУБД).
jdbc_get_tablesСписок таблиц, связанных с выбранной схемой базы данных.
jdbc_describe_tableПредоставьте описание таблицы, связанной с указанной схемой базы данных. Это включает информацию об именах столбцов, типах данных, обработке нулей, автоинкременте, первичном ключе и внешних ключах.
jdbc_filter_table_namesСписок таблиц на основе шаблона подстроки из поля ввода q , связанного с выбранной схемой базы данных.
jdbc_query_databaseВыполнить SQL-запрос и вернуть результаты в формате JSONL.
jdbc_execute_queryВыполнить SQL-запрос и вернуть результаты в формате JSONL.
jdbc_execute_query_mdВыполнить SQL-запрос и вернуть результаты в формате таблицы Markdown.
jdbc_spasql_queryСпецифическая функция Virtuoso! Выполнение запроса SPASQL и возврат результатов.
jdbc_sparql_queryСпецифическая функция Virtuoso! Выполнение запроса SPARQL и возврат результатов.
jdbc_virtuoso_support_aiСпециальная функция Virtuoso! Взаимодействуйте с LLM через помощника/агента поддержки Virtuoso.
Подробное описание
  • jdbc_get_schemas
    • Извлечь и вернуть список всех имен схем из подключенной базы данных.
    • Входные параметры:
      • user (строка, необязательно): Имя пользователя базы данных. По умолчанию "demo" .
      • password (строка, необязательно): Пароль базы данных. По умолчанию "demo" .
      • url (строка, необязательно): строка подключения URL-адреса JDBC.
    • Возвращает массив строк JSON с именами схем.
  • jdbc_get_tables
    • Извлечь и вернуть список, содержащий информацию о таблицах в указанной схеме. Если схема не указана, используется схема соединения по умолчанию.
    • Входные параметры:
      • schema (строка, необязательно): Схема базы данных для фильтрации таблиц. По умолчанию используется соединение по умолчанию.
      • user (строка, необязательно): Имя пользователя базы данных. По умолчанию "demo" .
      • password (строка, необязательно): Пароль базы данных. По умолчанию "demo" .
      • url (строка, необязательно): строка подключения URL-адреса JDBC.
    • Возвращает строку JSON, содержащую информацию о таблице (например, TABLE_CAT , TABLE_SCHEM , TABLE_NAME , TABLE_TYPE ).
  • jdbc_filter_table_names
    • Фильтрует и возвращает информацию о таблицах, имена которых содержат определенную подстроку.
    • Входные параметры:
      • q (строка, обязательно): подстрока для поиска в именах таблиц.
      • schema (строка, необязательно): Схема базы данных для фильтрации таблиц. По умолчанию используется соединение по умолчанию.
      • user (строка, необязательно): Имя пользователя базы данных. По умолчанию "demo" .
      • password (строка, необязательно): Пароль базы данных. По умолчанию "demo" .
      • url (строка, необязательно): строка подключения URL-адреса JDBC.
    • Возвращает строку JSON, содержащую информацию для сопоставления таблиц.
  • jdbc_describe_table
    • Извлечение и возврат подробной информации о столбцах определенной таблицы.
    • Входные параметры:
      • schema (строка, обязательно): имя схемы базы данных, содержащей таблицу.
      • table (строка, обязательно): Имя таблицы, которую нужно описать.
      • user (строка, необязательно): Имя пользователя базы данных. По умолчанию "demo" .
      • password (строка, необязательно): Пароль базы данных. По умолчанию "demo" .
      • url (строка, необязательно): строка подключения URL-адреса JDBC.
    • Возвращает строку JSON, описывающую столбцы таблицы (например, COLUMN_NAME , TYPE_NAME , COLUMN_SIZE , IS_NULLABLE ).
  • jdbc_query_database
    • Выполнить стандартный SQL-запрос и вернуть результаты в формате JSON.
    • Входные параметры:
      • query (строка, обязательно): строка SQL-запроса для выполнения.
      • user (строка, необязательно): Имя пользователя базы данных. По умолчанию "demo" .
      • password (строка, необязательно): Пароль базы данных. По умолчанию "demo" .
      • url (строка, необязательно): строка подключения URL-адреса JDBC.
    • Возвращает результаты запроса в виде строки JSON.
  • jdbc_query_database_md
    • Выполнить стандартный SQL-запрос и вернуть результаты, отформатированные в виде таблицы Markdown.
    • Входные параметры:
      • query (строка, обязательно): строка SQL-запроса для выполнения.
      • user (строка, необязательно): Имя пользователя базы данных. По умолчанию "demo" .
      • password (строка, необязательно): Пароль базы данных. По умолчанию "demo" .
      • url (строка, необязательно): строка подключения URL-адреса JDBC.
    • Возвращает результаты запроса в виде строки таблицы Markdown.
  • jdbc_query_database_jsonl
    • Выполнить стандартный SQL-запрос и вернуть результаты в формате строк JSON (JSONL) (один объект JSON на строку).
    • Входные параметры:
      • query (строка, обязательно): строка SQL-запроса для выполнения.
      • user (строка, необязательно): Имя пользователя базы данных. По умолчанию "demo" .
      • password (строка, необязательно): Пароль базы данных. По умолчанию "demo" .
      • url (строка, необязательно): строка подключения URL-адреса JDBC.
    • Возвращает результаты запроса в виде строки JSONL.
  • jdbc_spasql_query
    • Специфическая функция Virtuoso!
    • Выполнение запроса SPASQL (гибрид SQL/SPARQL) с возвратом результатов.
    • Входные параметры:
      • query (строка, обязательно): строка запроса SPASQL.
      • max_rows (число, необязательно): Максимальное количество возвращаемых строк. По умолчанию 20 .
      • timeout (число, необязательно): Тайм-аут запроса в миллисекундах. По умолчанию 30000 (т.е. 30 секунд).
      • user (строка, необязательно): Имя пользователя базы данных. По умолчанию "demo" .
      • password (строка, необязательно): Пароль базы данных. По умолчанию "demo" .
      • url (строка, необязательно): строка подключения URL-адреса JDBC.
    • Возвращает результат вызова базовой хранимой процедуры (например, Demo.demo.execute_spasql_query ).
  • jdbc_sparql_query
    • Специфическая функция Virtuoso!
    • Выполнить запрос SPARQL и вернуть результаты.
    • Входные параметры:
      • query (строка, обязательно): строка запроса SPARQL.
      • format (string, необязательно): Желаемый формат результата. По умолчанию 'json' .
      • timeout (число, необязательно): Тайм-аут запроса в миллисекундах. По умолчанию 30000 (т.е. 30 секунд).
      • user (строка, необязательно): Имя пользователя базы данных. По умолчанию "demo" .
      • password (строка, необязательно): Пароль базы данных. По умолчанию "demo" .
      • url (строка, необязательно): строка подключения URL-адреса JDBC.
    • Возвращает результат вызова базовой функции (например, "UB".dba."sparqlQuery" ).
  • jdbc_virtuoso_support_ai
    • Специфическая функция Virtuoso!
    • Использует специфичную для Virtuoso функцию AI Assistant, передавая подсказку и необязательный ключ API.
    • Входные параметры:
      • prompt (строка, обязательно): текст подсказки для функции ИИ.
      • api_key (string, необязательно): API-ключ для службы AI. По умолчанию "none" .
      • user (строка, необязательно): Имя пользователя базы данных. По умолчанию "demo" .
      • password (строка, необязательно): Пароль базы данных. По умолчанию "demo" .
      • url (строка, необязательно): строка подключения URL-адреса JDBC.
    • Возвращает результат вызова функции AI Support Assistant (например, DEMO.DBA.OAI_VIRTUOSO_SUPPORT_AI ).

Базовое использование и устранение неполадок

MCP Inspector подключается к драйверу ODBC Virtuoso

Для базового использования клиента MCP и устранения неполадок используйте MCP Inspector следующим образом:

  1. Установите MCP Inspector:
    npm install -g @modelcontextprotocol/inspector
  2. Запустите инспектор:
    npx @modelcontextprotocol/inspector java -jar /path/to/mcp-jdbc-server/MCPServer-1.0.0-runner.jar

Перейдите по URL-адресу, возвращенному инспектором, для устранения неполадок взаимодействия с сервером MCP.

MCP Inspector Подключение к дополнительным драйверам

Для базового использования клиента MCP и устранения неполадок используйте MCP Inspector следующим образом:

  1. Установите драйвер(ы) JDBC, убедившись, что их файлы JAR зарегистрированы в виртуальной машине Java (JVM) операционной системы хоста через $CLASSPATH . Например:
    export CLASSPATH=$CLASSPATH:/path/to/driver1.jar:/path/to/driver2.jar:/path/to/driverN.jar
  2. Запустите инспектор, используя следующие аргументы командной строки:
    npx @modelcontextprotocol/inspector java -cp MCPServer-1.0.0-runner.jar:/path/to/driver1.jar:/path/to/driver2.jar:/path/to/driverN.jar io.quarkus.runner.GeneratedMain
Пример использования на основе драйверов Oracle и Informix
  1. Предположим, что имеется следующая информация о драйвере JDBC:
    • Шаблон URL-адреса драйвера Oracle JDBC
      jdbc:oracle:thin:@<hostname>:[port]:<SERVICEID>
    • Шаблон URL-адреса драйвера Informix JDBC
      jdbc:informix-sqli://<hostname>:<port>/<database></database>:<INFORMIXSERVER>=<SERVICEID>
  2. Установите драйверы JDBC Oracle ( ojdbc17.jar ) и/или Informix ( jdbc-15.0.0.1.1.jar ) и убедитесь, что их файлы JAR зарегистрированы в виртуальной машине Java (JVM) операционной системы хоста через $CLASSPATH . Например:
    export CLASSPATH=$CLASSPATH:/path/to/Java/Extensions/jdbc-15.0.0.1.1.jar export CLASSPATH=$CLASSPATH:/path/to/Java/Extensions/ojdbc17.jar
  3. Запустите инспектор, используя следующие аргументы командной строки:
    npx @modelcontextprotocol/inspector java -cp MCPServer-1.0.0-runner.jar:/path/to/Java/Extensions/ojdbc17.jar:/path/to/Java/Extensions/jdbc-15.0.0.1.1.jar io.quarkus.runner.GeneratedMain
  4. Получите доступ к URL-адресу, возвращенному инспектором, а затем используйте операцию jdbc_execute_query для запроса целевой базы данных, указав фактические значения для следующих шаблонов полей ввода:
    • URL-адрес JDBC
    • Пользователь
    • Пароль
    • Запрос
-
security - not tested
A
license - permissive license
-
quality - not tested

hybrid server

The server is able to function both locally and remotely, depending on the configuration or use case.

Сервер OpenLink MCP для JDBC

  1. Функции
    1. Предпосылки
      1. Установка
        1. Переменные среды
          1. Конфигурация
            1. Использовать
              1. Предоставляемые инструменты
              2. Базовое использование и устранение неполадок

            Related MCP Servers

            • -
              security
              A
              license
              -
              quality
              MCP to access any database accessible via JDBC such as Postgres, Oracle, mysql, mariadb, sqlite etc.
              Last updated -
              122
              Apache 2.0
            • -
              security
              A
              license
              -
              quality
              MCP Server for Netbird
              Last updated -
              28
              Go
              Apache 2.0
            • -
              security
              A
              license
              -
              quality
              Open source MCP server specializing in easy, fast, and secure tools for Databases.
              Last updated -
              977
              Go
              Apache 2.0
              • Linux

            View all related MCP servers

            ID: q412uvi27y