返回市场
数据库连接池

数据库连接池

作者:quarkiverse179 星标更新:2025-07-28

项目介绍

Model Context Protocol (MCP) 服务器用于JDBC

此Model Context Protocol (MCP)服务器允许大型语言模型(LLMs)通过仅提供Java数据库连接(JDBC)URL来检查、查询、创建和修改数据库内容。

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

观看视频这里

通用用法

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

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

从空数据库开始(内存中的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

经典的Microsoft示例数据库,包括客户、订单、产品等。

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

Netflix Movies

基于Netflix目录的示例电影数据

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

支持的JDBC变体

数据库依赖项
MariaDBorg.mariadb.jdbc:mariadb-java-client:RELEASE
MySQLmysql:mysql-connector-java:RELEASE
PostgreSQLorg.postgresql:postgresql:RELEASE
Oraclecom.oracle.database.jdbc:ojdbc10:RELEASE
SQL Servercom.microsoft.sqlserver:mssql-jdbc:RELEASE
SAP DBcom.sapcloud.db.jdbc:ngdbc:RELEASE
Informixcom.ibm.informix:jdbc:RELEASE
Firebirdorg.firebirdsql.jdbc:jaybird:RELEASE
hsqldborg.hsqldb:hsqldb:RELEASE
h2com.h2database:h2:RELEASE
Apache Derbyorg.apache.derby:derby:RELEASE
SQLiteorg.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 Config 和 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框架及其对Model Context Protocol的支持。

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

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