Skip to main content
Glama
OpenLinkSoftware

OpenLink MCP Server for JDBC

Official

基于 Java 的 JDBC 模型上下文协议 (MCP) 服务器

使用Quakrus构建的轻量级 JDBC MCP(模型上下文协议)服务器。该服务器与 Virtuoso DBMS 以及其他具有 JDBC 驱动程序的 DBMS 后端兼容。

mcp-客户端和服务器|648x499


特征

  • 获取模式:从连接的数据库中获取并列出所有模式名称。

  • 获取表:检索特定模式或所有模式的表信息。

  • Describe Table :生成表结构的详细描述,包括:

    • 列名和数据类型

    • 可空属性

    • 主键和外键

  • 搜索表:根据名称子字符串过滤和检索表。

  • 执行存储过程: *Virtuoso 特有的功能!*执行存储过程并检索结果。

  • 执行查询

    • JSONL 结果格式:针对结构化响应进行了优化。

    • Markdown 表格格式:适合报告和可视化。


Related MCP server: Joomla MCP Server

先决条件

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" } } } }

对于使用其他 JDBC 驱动程序或驱动程序组合的Claude Desktop用户:将以下内容添加到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

列出连接的数据库管理系统 (DBMS) 可访问的数据库模式。

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 独有功能!*通过 Virtuoso 支持助手/代理与 LLM 互动。

详细描述

  • jdbc_get_schemas

    • 从连接的数据库中检索并返回所有模式名称的列表。

    • 输入参数:

      • user (字符串,可选):数据库用户名。默认为"demo"

      • password (字符串,可选):数据库密码。默认为"demo"

      • url (字符串,可选):JDBC URL 连接字符串。

    • 返回架构名称的 JSON 字符串数组。

  • jdbc_get_tables

    • 检索并返回包含指定架构中表的信息的列表。如果未提供架构,则使用连接的默认架构。

    • 输入参数:

      • schema (字符串,可选):用于过滤表的数据库模式。默认为连接默认值。

      • user (字符串,可选):数据库用户名。默认为"demo"

      • password (字符串,可选):数据库密码。默认为"demo"

      • url (字符串,可选):JDBC URL 连接字符串。

    • 返回包含表信息(例如TABLE_CATTABLE_SCHEMTABLE_NAMETABLE_TYPE )的 JSON 字符串。

  • jdbc_filter_table_names

    • 过滤并返回有关名称包含特定子字符串的表的信息。

    • 输入参数:

      • q (字符串,必需):在表名中搜索的子字符串。

      • schema (字符串,可选):用于过滤表的数据库模式。默认为连接默认值。

      • user (字符串,可选):数据库用户名。默认为"demo"

      • password (字符串,可选):数据库密码。默认为"demo"

      • url (字符串,可选):JDBC URL 连接字符串。

    • 返回包含匹配表的信息的 JSON 字符串。

  • jdbc_describe_table

    • 检索并返回有关特定表的列的详细信息。

    • 输入参数:

      • schema (字符串,必需):包含表的数据库模式名称。

      • table (字符串,必需):要描述的表的名称。

      • user (字符串,可选):数据库用户名。默认为"demo"

      • password (字符串,可选):数据库密码。默认为"demo"

      • url (字符串,可选):JDBC URL 连接字符串。

    • 返回描述表的列的 JSON 字符串(例如, COLUMN_NAMETYPE_NAMECOLUMN_SIZEIS_NULLABLE )。

  • jdbc_query_database

    • 执行标准 SQL 查询并以 JSON 格式返回结果。

    • 输入参数:

      • query (字符串,必需):要执行的 SQL 查询字符串。

      • user (字符串,可选):数据库用户名。默认为"demo"

      • password (字符串,可选):数据库密码。默认为"demo"

      • url (字符串,可选):JDBC URL 连接字符串。

    • 以 JSON 字符串形式返回查询结果。

  • jdbc_query_database_md

    • 执行标准 SQL 查询并返回格式化为 Markdown 表的结果。

    • 输入参数:

      • query (字符串,必需):要执行的 SQL 查询字符串。

      • user (字符串,可选):数据库用户名。默认为"demo"

      • password (字符串,可选):数据库密码。默认为"demo"

      • url (字符串,可选):JDBC URL 连接字符串。

    • 以 Markdown 表字符串形式返回查询结果。

  • jdbc_query_database_jsonl

    • 执行标准 SQL 查询并以 JSON 行 (JSONL) 格式返回结果(每行一个 JSON 对象)。

    • 输入参数:

      • query (字符串,必需):要执行的 SQL 查询字符串。

      • user (字符串,可选):数据库用户名。默认为"demo"

      • password (字符串,可选):数据库密码。默认为"demo"

      • url (字符串,可选):JDBC URL 连接字符串。

    • 以 JSONL 字符串形式返回查询结果。

  • jdbc_spasql_query

    • Virtuoso 独有的功能!

    • 执行SPASQL(SQL/SPARQL混合)查询返回结果。

    • 输入参数:

      • query (字符串,必需):SPASQL 查询字符串。

      • max_rows (数字,可选):返回的最大行数。默认为20

      • timeout (数字,可选):查询超时时间(以毫秒为单位)。默认为30000 (即 30 秒)。

      • user (字符串,可选):数据库用户名。默认为"demo"

      • password (字符串,可选):数据库密码。默认为"demo"

      • url (字符串,可选):JDBC URL 连接字符串。

    • 返回底层存储过程调用的结果(例如, Demo.demo.execute_spasql_query )。

  • jdbc_sparql_query

    • Virtuoso 独有的功能!

    • 执行 SPARQL 查询并返回结果。

    • 输入参数:

      • query (字符串,必需):SPARQL 查询字符串。

      • format (字符串,可选):所需的结果格式。默认为'json'

      • timeout (数字,可选):查询超时时间(以毫秒为单位)。默认为30000 (即 30 秒)。

      • user (字符串,可选):数据库用户名。默认为"demo"

      • password (字符串,可选):数据库密码。默认为"demo"

      • url (字符串,可选):JDBC URL 连接字符串。

    • 返回底层函数调用的结果(例如, "UB".dba."sparqlQuery" )。

  • jdbc_virtuoso_support_ai

    • Virtuoso 独有的功能!

    • 利用 Virtuoso 特定的 AI 助手功能,传递提示和可选的 API 密钥。

    • 输入参数:

      • prompt (字符串,必需):AI 功能的提示文本。

      • api_key (字符串,可选):AI 服务的 API 密钥。默认为"none"

      • user (字符串,可选):数据库用户名。默认为"demo"

      • password (字符串,可选):数据库密码。默认为"demo"

      • url (字符串,可选):JDBC URL 连接字符串。

    • 返回 AI 支持助手函数调用的结果(例如, DEMO.DBA.OAI_VIRTUOSO_SUPPORT_AI )。


基本使用和故障排除

MCP Inspector 连接到 Virtuoso 的 ODBC 驱动程序

对于基本的 MCP 客户端使用和故障排除,请按如下方式使用 MCP Inspector:

  1. 安装 MCP 检查器:

    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 检查器连接到其他驱动程序

对于基本的 MCP 客户端使用和故障排除,请按如下方式使用 MCP Inspector:

  1. 安装 JDBC 驱动程序,确保其 JAR 文件已通过$CLASSPATH在主机操作系统的 Java 虚拟机 (JVM) 中注册。例如:

    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 驱动程序信息:

    • Oracle JDBC 驱动程序 URL 模板

      jdbc:oracle:thin:@<hostname>:[port]:<SERVICEID>
    • Informix JDBC 驱动程序 URL 模板

      jdbc:informix-sqli://<hostname>:<port>/<database></database>:<INFORMIXSERVER>=<SERVICEID>
  2. 安装 Oracle ( ojdbc17.jar ) 和/或 Informix ( jdbc-15.0.0.1.1.jar ) JDBC 驱动程序,并确保其 JAR 文件已通过$CLASSPATH在主机操作系统的 Java 虚拟机 (JVM) 中注册。例如:

    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操作查询目标数据库,通过为以下输入字段模板提供实际值:

    • JDBC URL

    • 用户

    • 密码

    • 询问

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

Latest Blog Posts

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

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