项目简介

这是一个基于Java和Quarkus框架构建的轻量级 Model Context Protocol (MCP) 服务器,旨在通过标准的 JDBC 接口,为遵循MCP协议的LLM(大型语言模型)客户端提供访问各种关系型数据库(如Virtuoso、Oracle、Informix等)的能力。它将数据库操作(如查询表结构、执行SQL等)封装为可供LLM调用的 工具 (Tools)

主要功能点

该服务器提供了一系列工具,使LLM能够与JDBC兼容的数据库进行交互:

  • 获取 Schema 列表: 列出当前连接数据库中的所有 Schema 名称。
  • 获取表信息: 获取指定 Schema(或默认 Schema)下的表信息列表。
  • 描述表结构: 提供指定表的详细结构描述,包括列名、数据类型、主键、外键等。
  • 按名称过滤表: 根据名称中的子字符串搜索并列出匹配的表。
  • 执行 SQL 查询: 执行标准的 SQL 查询,支持将结果格式化为 JSON Lines (JSONL) 或 Markdown 表格。
  • 执行存储过程/SPASQL/SPARQL: 提供执行 Virtuoso 特有查询语言或存储过程的能力。
  • 调用 Virtuoso AI 支持: 与 Virtuoso 内部的 AI 助理功能进行交互(Virtuoso特定功能)。

安装步骤

  1. 确保您的系统已安装 Java 21 或更高版本。
  2. 克隆 GitHub 仓库到本地:
    git clone https://github.com/OpenLinkSoftware/mcp-jdbc-server.git
    cd mcp-jdbc-server
  3. 根据需要,配置 '.env' 文件以指定默认的 JDBC 连接参数(URL, 用户名, 密码, API 密钥)。

服务器配置 (供 MCP 客户端使用)

MCP 服务器需要被 MCP 客户端(如某些支持 MCP 的 LLM 应用程序)启动和管理。您需要在客户端的配置中指定如何启动该服务器。以下是典型的 MCP 客户端配置中涉及此服务器的关键信息:

  • 服务器名称: 一个标识符,例如 'my_database' 或 'jdbc_server'。
  • 启动命令 (command): 通常是 'java'。
  • 启动参数 (args): 启动服务器 JAR 文件的参数。这通常是 '-jar' 接着服务器构建生成的 JAR 文件路径,例如 '-jar /path/to/mcp-jdbc-server/MCPServer-1.0.0-runner.jar'。如果您需要包含特定的 JDBC 驱动 JAR 文件,可能需要使用 '-cp' 参数指定类路径,例如 '-cp MCPServer-1.0.0-runner.jar:/path/to/driver.jar io.quarkus.runner.GeneratedMain'。
  • 环境变量 (env): 您可以通过环境变量覆盖 '.env' 文件中的默认 JDBC 连接参数,例如设置 'jdbc.url', 'jdbc.user', 'jdbc.password', 'jdbc.api_key'。

请参考您的 MCP 客户端文档,将上述信息填入其 MCP 服务器配置部分。

基本使用方法

一旦 MCP 客户端配置并成功连接到此服务器,LLM 将能够发现服务器提供的工具(如 'jdbc_get_schemas', 'jdbc_describe_table', 'jdbc_execute_query' 等)。LLM 可以根据用户提出的关于数据库的问题或请求,自动选择并调用相应的工具,并将工具返回的结果用于生成回复。

例如,当用户询问“数据库里有哪些表?”时,LLM 可能会调用 'jdbc_get_tables' 工具;当用户要求“查询 users 表中名字是张三的所有记录”时,LLM 可能会调用 'jdbc_execute_query' 工具,并传入相应的 SQL 语句。

您也可以使用 MCP Inspector 等工具直接连接服务器进行测试和调试。启动方式通常是通过 Inspector 运行服务器 JAR 文件,例如 'npx @modelcontextprotocol/inspector java -jar /path/to/mcp-jdbc-server/MCPServer-1.0.0-runner.jar'。

信息

分类

数据库与文件