Skip to main content
Glama

OpenLink MCP Server for JDBC

Official

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

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

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


特征

  • 获取模式:从连接的数据库中获取并列出所有模式名称。
  • 获取表:检索特定模式或所有模式的表信息。
  • Describe Table :生成表结构的详细描述,包括:
    • 列名和数据类型
    • 可空属性
    • 主键和外键
  • 搜索表:根据名称子字符串过滤和检索表。
  • 执行存储过程*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" } } } }

对于使用其他 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

hybrid server

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

用于 JDBC 的 OpenLink MCP 服务器

  1. 特征
    1. 先决条件
      1. 安装
        1. 环境变量
          1. 配置
            1. 使用
              1. 提供的工具
              2. 基本使用和故障排除

            Related MCP Servers

            View all related MCP servers

            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