JDBC连接器
MCP可以通过JDBC访问任何数据库,例如Postgres、Oracle、mysql、mariadb、sqlite等。
服务介绍
Model Context Protocol Server for JDBC
这个模型上下文协议(MCP)服务器使大型语言模型(LLMs)能够仅通过Java数据库连接(JDBC)URL来检查、查询、创建和修改数据库内容。
支持的数据库包括PostgresSQL、Oracle、MariaDB、Sqlite以及更多。

观看视频请点击这里。
通用用法
- 安装jbang
- 配置您的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.json或server_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 文件。这与 uvx、pipx、npmx 等工作方式非常相似;只是这是针对 Java 的。
