dbc
DBC-MCP-Server 是一个基于 Spring Boot 的数据库连接管理和查询服务,集成了 Model Context Protocol (MCP) 功能,提供了强大的数据库元数据查询和管理能力。该项目主要用于支持 AI 应用与数据库的交互,使 AI 能够理解和操作数据库结构。
claude mcp add --transport stdio lijianlong123-dbc-mcp-server docker run -i lijianlong123/dbc-mcp-server:latest \ --env SPRING_DATASOURCE_URL="jdbc:mysql://localhost:3306/yourdb" \ --env SPRING_PROFILES_ACTIVE="default" \ --env SPRING_DATASOURCE_PASSWORD="your_password" \ --env SPRING_DATASOURCE_USERNAME="your_username"
How to use
DBC-MCP-Server 是一个基于 Spring Boot 的数据库连接管理和查询服务,集成了 Model Context Protocol (MCP) 功能,支持多数据源动态切换、数据库元数据查询以及 AI 相关工具函数的调用。通过内置的 AI 工具函数,您可以查询数据库的表名与注释、获取表字段、外键、索引、表行数、存储引擎等信息,并能够执行自定义 SQL。该服务器对 AI 场景非常友好,特别适用于需要 AI 解释数据库结构、生成代码或自动化数据库操作的场景。要使用它,先确保服务在可访问端口运行(默认端口 8081,若通过 MCP 端口映射请保持一致)。随后即可通过 MCP 客户端的工具函数与服务交互,例如 getTableNameAndComment、getTableColumnDetail、getTableForeignKeys、getTableIndexes、getTableRowCount、getDatabaseEngine 和 executeSql 等,来获取元数据并执行 SQL 查询。开始时可以先测试数据源连接,然后逐步调用元数据工具以了解数据库结构,最后根据需求生成并执行 SQL 查询。该服务器支持多数据源,内置数据源如 jys、studyinfo 和 springai,便于在不同环境中进行跨源查询与分析。
How to install
Prerequisites:
- JDK 17+ (用于运行 Spring Boot 应用)
- Maven 3.6+ (用于构建项目) 或使用项目自带的 Maven Wrapper 进行构建
- 可选:Docker(用于容器化部署)
一、安装与运行(本地开发环境)
-
克隆仓库 git clone https://github.com/yourusername/dbc-mcp-server.git cd dbc-mcp-server
-
构建项目 ./mvnw clean package
或使用 Maven 全局安装
mvn clean package
-
运行应用 java -jar target/dbc-mcp-server-0.0.1.jar
应用将启动在默认端口 8081,若需要更改端口请在配置文件中修改
二、通过 Docker 运行
-
拉取镜像(示例镜像名,如实际使用请替换) docker pull lijianlong123/dbc-mcp-server:latest
-
启动容器 docker run -p 8081:8081 -e SPRING_DATASOURCE_URL=jdbc:mysql://localhost:3306/yourdb
-e SPRING_DATASOURCE_USERNAME=your_user
-e SPRING_DATASOURCE_PASSWORD=your_password
lijianlong123/dbc-mcp-server:latest
三、验证安装
- 访问 http://localhost:8081/sse 以确认 MCP 服务端点是否就绪
- 可参考 README 中的“光标配置 MCP”示例来配置 mcpServers。
注:如需在云端部署或生产环境中使用,请结合实际环境配置数据库连接、端口映射和安全策略,并确保数据库允许来自应用服务器的连接。
Additional notes
Tips and common issues:
- 确保 JDK 版本与项目要求匹配(Java 17+)。
- 数据源配置在 application.properties 或通过环境变量提供。若使用 Docker,请通过环境变量覆盖默认数据源信息。
- mcpServers 配置中的端口应与 MCP 的端口设置保持一致,确保通信顺畅。
- 多数据源切换时,请为每个数据源指定唯一的 dbName 与 nick-name,避免冲突。
- 执行 executeSql 时,请注意 SQL 注入风险,尽量使用参数化查询或明确的输入校验。
- 若遇到连接池问题,可在配置中调整 Druid 的参数(超时、最大连接数等)来优化性能。
- 参考 README 的示例工具函数名称逐步调用,以获得完整的元数据和查询结果。