用途:jdbc-mcp-server 是一个基于 stdio 的 MCP 服务器,通过 JDBC 向 AI 客户端暴露关系型数据库的只读访问,用于模式发现、查询验证、执行计划、基准测试和索引分析。内置 PostgreSQL、Oracle、SQL Server、Firebird、SQLite 方言并捆绑驱动,其他数据库可通过 driverPath 以通用 JDBC 模式接入。
主要能力:提供 49 个工具,分为元数据、查询执行、计划分析、列分布与选择性、表与索引统计、模式上下文、基准测试、使用目录等 11 组,可用 JDBC_MCP_TOOLS_* 标志单独启停。写保护采用 JSqlParser AST 守卫,仅允许单条 SELECT / WITH / EXPLAIN,并支持会话、事务或文件级只读模式。每个连接维护本地 SQLite 目录,持久保存结构快照和已知应用查询索引。
使用方式:需 JDK 21+,从最新 release 下载 jdbc-mcp-server.jar,或使用 Docker 镜像 ghcr.io/igorolv/jdbc-mcp-server。在 ~/.jdbc-mcp-server/connections.json(Windows 为 %USERPROFILE%.jdbc-mcp-server\connections.json,Docker 为 /data/connections.json)中按连接名配置数据库,url 为必填字段,引擎由前缀识别。随后在任意支持 stdio 的 MCP 客户端中注册服务器,客户端配置无需数据库设置。
适用场景:让 AI 代理自行选择工具完成模式探索、SQL 编写辅助、查询成本测量、索引与统计分析和应用查询使用情况查询。
限制:建议使用只读数据库用户;凭据不从环境变量读取;同一 stdio 会话中的工具调用顺序执行;客户端取消通知不会传播到 JDBC Statement.cancel(),查询超时由 queryTimeoutSeconds 控制;使用目录不会写入被检查的数据库。具体客户端配置示例见 docs/clients.md。