使用说明
JDBC模型上下文协议服务器
此模型上下文协议(MCP)服务器使大型语言模型(LLM)能够在给定Java数据库连接(JDBC)url的情况下检查、查询、创建和修改数据库内容。
支持的数据库包括PostgresSQL、Oracle、MariaDB、Sqlite和 更多.
观看视频 这里.
一般使用
- 安装 jbang的
- 配置MCP客户端以运行服务器(请参阅 Claude桌面配置 在......下面
下面是用于配置服务器的命令行示例。
从一个空数据库(内存中的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数据库的示例,下载 Chinook_Sqlite.sqlite 文件来自github。
jbang jdbc@quarkiverse/quarkus-mcp-servers jdbc:sqlite:%{https://github.com/lerocha/chinook-database/raw/master/ChinookDatabase/DataSources/Chinook_Sqlite.sqlite}
网上有一些有趣的示例数据,您可以使用它们来探索数据。
下面是一个非详尽的数据库列表和已知可以按原样与此服务器配合使用的示例JDBC url(不需要额外的配置)。
示例数据库
支奴干直升机
示例音乐商店数据,包括艺术家、专辑、曲目、发票等。
jdbc:sqlite:%{https://github.com/lerocha/chinook-database/raw/master/ChinookDatabase/DataSources/Chinook_Sqlite.sqlite}
罗斯文
经典的微软示例数据库,包含客户、订单、产品等。
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:mariadbjava客户端:发布 |
| MySQL | mysql:mysql连接器java:RELEASE |
| PostgreSQL | org.postgresql:postgresql:RELEASE |
| 甲骨文 | com.oracle.database.jdbc:ojdbc10:RELEASE |
| SQL Server | com.microsoft.com.sqlserver:mssql-jdbc:RELEASE |
| SAP数据库 | com.sapcloud.db.jdbc:ngdbc:RELEASE |
| 数据库 | com.ibm.informix:jdbc:RELEASE |
| 火鸟 | org.firebirdsql.jdbc:jaybird:RELEASE |
| 嵌入式数据库 | org.hsqldb:hsqldb:RELEASE |
| 氢 | com.h2数据库:h2:发布 |
| 阿帕奇德比 | org.apache.derby:德比:发布 |
| 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桌面配置和 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。