JDBC连接器

@quarkiverse/jdbc
0 Stars 437 次浏览 quarkiverse 更新于 2026-08-23

MCP可以通过JDBC访问任何数据库,例如Postgres、Oracle、mysql、mariadb、sqlite等。

该服务暂未提供标准配置,请参考 README 手动接入

服务介绍

Model Context Protocol Server for JDBC

这个模型上下文协议(MCP)服务器使大型语言模型(LLMs)能够仅通过Java数据库连接(JDBC)URL来检查、查询、创建和修改数据库内容。

支持的数据库包括PostgresSQL、Oracle、MariaDB、Sqlite以及更多

观看视频请点击这里

通用用法

  1. 安装jbang
  2. 配置您的MCP客户端以运行服务器(参见下方的Claude Desktop配置

以下是一些用于配置服务器的命令行示例。

使用空数据库(内存中的h2数据库)开始:

jbang jdbc@quarkiverse/quarkus-mcp-servers

实时数据库(任何常见的JDBC兼容数据库):

jbang jdbc@quarkiverse/quarkus-mcp-servers [jdbc_url]

例如,要连接到已经运行的Oracle数据库:

jbang jdbc@quarkiverse/quarkus-mcp-servers jdbc:oracle:thin:@localhost:1521:orcl

您也可以单独指定用户名和密码,如下所示针对PostgreSQL数据库:

jbang jdbc@quarkiverse/quarkus-mcp-servers jdbc:postgresql://localhost:5432/sakila -u sakila -p p_ssW0rd

可下载的数据库

JBang可以从网络下载文件,并直接将它们提供给像h2和sqlite这样的数据库。

这是通过使用%{url}语法完成的。

下面是一个如何连接到SQLite中的Chinook数据库的例子,从github下载Chinook_Sqlite.sqlite文件。

jbang jdbc@quarkiverse/quarkus-mcp-servers jdbc:sqlite:%{https://github.com/lerocha/chinook-database/raw/master/ChinookDatabase/DataSources/Chinook_Sqlite.sqlite}

在线上有许多有趣的样本数据示例,您可以使用这些数据进行探索。

以下是已知与本服务器配合使用无需额外配置的一些数据库及其示例JDBC URL的非详尽列表。

示例数据库

Chinook

包含艺术家、专辑、音轨、发票等信息的音乐商店样本数据。

jdbc:sqlite:%{https://github.com/lerocha/chinook-database/raw/master/ChinookDatabase/DataSources/Chinook_Sqlite.sqlite}

Northwind

经典的微软样本数据库,包含客户、订单、产品等信息。

jdbc:sqlite:%{https://github.com/jpwhite3/northwind-SQLite3/raw/refs/heads/main/dist/northwind.db}

Netflix电影

基于Netflix目录的电影样本数据

jdbc:sqlite:%{https://github.com/lerocha/netflixdb/releases/download/v1.0.0/netflixdb.sqlite}

支持的JDBC变种

数据库 依赖项
MariaDB org.mariadb.jdbc:mariadb-java-client:RELEASE
MySQL mysql:mysql-connector-java:RELEASE
PostgreSQL org.postgresql:postgresql:RELEASE
Oracle com.oracle.database.jdbc:ojdbc10:RELEASE
SQL Server com.microsoft.sqlserver:mssql-jdbc:RELEASE
SAP DB com.sapcloud.db.jdbc:ngdbc:RELEASE
Informix com.ibm.informix:jdbc:RELEASE
Firebird org.firebirdsql.jdbc:jaybird:RELEASE
hsqldb org.hsqldb:hsqldb:RELEASE
h2 com.h2database:h2:RELEASE
Apache Derby org.apache.derby:derby:RELEASE
SQLite org.xerial:sqlite-jdbc:RELEASE

组件

以下是由此服务器提供的MCP组件。

工具

  • read_query - 在数据库上执行SELECT查询
  • write_query - 在数据库上执行INSERT、UPDATE、DELETE查询
  • create_table - 在数据库中创建表
  • list_tables - 列出数据库中的所有表
  • describe_table - 描述一个表

提示

  • jdbc_demo - 用于开始探索服务器的示例提示(类似于sqllite MCP中的提示)

Claude Desktop配置和mcp-cli

将以下内容添加到您的claude_desktop_config.jsonserver_config.json文件中:

{
  "mcpServers": {
    "jdbc": {
      "command": "jbang",
      "args": [
        "jdbc@quarkiverse/quarkus-mcp-servers",
        "[jdbc_url]"
      ]
    }
  }
}

故障排除

找不到jbang

  • 确保您已安装jbang并可在PATH中访问
  • 或者,使用jbang可执行文件的完整路径(例如/Users/username/.jbang/jbang

获取更多日志

要获取更详细的日志记录,您可以向jbang命令行添加以下参数:

-Dquarkus.log.file.enable=true -Dquarkus.log.file.path=${user.home}/mcp-server-jdbc.log

示例:

jbang -Dquarkus.log.file.enable=true -Dquarkus.log.file.path=${user.home}/mcp-jdbc.log jdbc@quarkiverse/quarkus-mcp-servers jdbc:h2:mem:testdb

原生镜像/可执行文件

虽然可以将服务器编译为原生可执行文件,但不建议这样做,因为这样就无法动态加载相关的JDBC驱动程序了。

不过,您可以编译一个针对特定JDBC驱动程序的服务器,但这目前留给读者自行研究。如果您对此感兴趣,请提出问题或提交PR。

这是如何制作的?

MCP 服务器使用了 Quarkus,即超音速亚原子 Java 框架及其模型上下文协议支持。

如果您想了解更多关于 Quarkus MCP 服务器支持的信息,请参阅这篇博客文章以及 Quarkus MCP 服务器扩展文档

为了启动服务器并处理 JDBC URL 的神奇设置,它使用 jbang
尽可能透明地设置 Java 并运行 .jar 文件。这与 uvxpipxnpmx 等工作方式非常相似;只是这是针对 Java 的。

相关 MCP 服务