db-mcp-server
基于 MCP 协议的多数据库 AI 桥接器,支持 MySQL/PostgreSQL/SQLite/Oracle/TimescaleDB 自动工具生成
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
基于 MCP 协议的多数据库 AI 桥接器,支持 MySQL/PostgreSQL/SQLite/Oracle/TimescaleDB 自动工具生成
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象这样一个日常场景:你正在用 Cursor 或 Claude AI 写代码,突然需要查一下生产数据库里某张表的字段结构,或者临时跑一条 SQL 看看数据分布。传统做法是打开 Navicat/DataGrip,连上数据库,手动执行查询——整个过程至少需要切换 3 个窗口,中断你的思维流。
DB MCP Server 解决的就是这个问题:它把 MySQL、PostgreSQL、SQLite、Oracle、TimescaleDB 这些主流数据库,统一包装成 MCP(Model Context Protocol)工具,交给 AI 直接调用。AI 不再只是建议你写什么 SQL,而是能真正地执行查询、返回结果、操作事务。
DB MCP Server 由开发者 FreePeak 主导开源,隶属于其数据库工具生态。项目基于自研的 cortex 框架构建,定位是为 AI 助手提供结构化的多数据库访问能力。
从项目元数据来看,这是一款典型的小而精的工具类项目:
项目的核心价值在于:解决 AI 与数据库之间的最后一公里问题——AI 能理解代码、能生成 SQL,但往往无法直接与数据库交互。DB MCP Server 填补了这个空白,让 AI 具备了对数据库的眼睛和手。
行业背景:MCP(Model Context Protocol)由 Anthropic 主推,旨在建立 AI 与外部工具之间的标准通信协议。随着 Claude AI、Cursor 等 AI IDE 广泛支持 MCP,生态内的工具数量快速增长。DB MCP Server 处于 MCP 生态的数据层,是 AI 与企业数据源之间的桥梁,战略意义明确。
这是 DB MCP Server 最核心的特性。传统数据库工具只能连接一个数据库,而 DB MCP Server 可以在同一进程中管理 MySQL + PostgreSQL + SQLite + Oracle + TimescaleDB 的多个连接:
{
"connections": [
{"id": "mysql1", "type": "mysql", "host": "localhost", "port": 3306},
{"id": "postgres1", "type": "postgres", "host": "localhost", "port": 5432},
{"id": "oracle1", "type": "oracle", "service_name": "XEPDB1"},
{"id": "sqlite_app", "type": "sqlite", "database_path": "./data/app.db"}
]
}
系统根据每个数据库连接,自动生成对应的 MCP 工具。例如连接 mysql1 后,会动态注册:
| 工具名 | 功能 |
|---|---|
| query_mysql1 | 执行 SELECT 查询 |
| execute_mysql1 | 执行 INSERT/UPDATE/DELETE |
| transaction_mysql1 | 管理事务(BEGIN/COMMIT/ROLLBACK) |
| schema_mysql1 | 探索数据库 schema(表、列、索引、约束) |
| performance_mysql1 | 分析查询性能并给出优化建议 |
SQLite 和 Oracle 也有各自专属的工具集。这种动态生成机制让代码极其简洁——不需要为每个数据库硬编码工具函数,只需配置好连接,工具自动就位。
对于时序数据场景,DB MCP Server 提供了额外的工具集:
TimescaleDB 是 PostgreSQL 的时序扩展,DB MCP Server 的支持意味着 AI 可以直接参与工业 IoT、监控告警、金融 K 线等时序数据场景的分析。
项目对 Oracle 的支持非常全面,远超同类工具:
| 模式 | 适用场景 | 说明 |
|---|---|---|
| STDIO | AI IDE 集成(Cursor、Claude) | 通过标准输入/输出通信,适合本地集成 |
| SSE | 远程服务/API | Server-Sent Events,适合部署为网络服务 |
项目采用经典的 Clean Architecture(整洁架构)分层:
Domain Layer (pkg/core/core.go)
↓
Repository Layer (pkg/repository/database_repository.go)
↓
Use Case Layer (internal/usecase/database_usecase.go)
↓
Delivery Layer (internal/delivery/mcp/*)
这种架构的优势在于:数据库驱动的替换不会影响业务逻辑层。如果要新增 MongoDB 或 ClickHouse 支持,只需在 Repository 层实现对应接口即可。
关键依赖:
FROM golang:1.24-alpine AS builder
RUN make build
FROM alpine:latest
COPY --from=builder /app/bin/server /app/server
COPY config.json /app/config.json
ENV SERVER_PORT=9092
EXPOSE 9092
多阶段构建将编译环境隔离在 builder stage,生产镜像只包含编译后的二进制文件和运行时依赖(alpine + ca-certificates + bash),最终镜像体积控制在极小范围内。
项目自带 docker-compose.yml,包含 6 个服务:
每个数据库服务都有健康检查(healthcheck),MCP Server 依赖 wait-for-it.sh 脚本等待数据库就绪后才启动,确保启动顺序的正确性。
懒加载模式:当连接数据库数量超过 10 个时,添加 --lazy-loading 参数,延迟建立连接直到第一次使用时,避免启动时超时。
除了原生 Go 编译,项目还提供了 npm 包(@freepeak/db-mcp-server),通过 Node.js 包装层调用 Go 二进制,支持跨平台(macOS/Linux/Windows),Node.js >= 14 即可使用。
适合人群:
门槛说明:
与同类项目对比:纯数据库工具在 GitHub 上有很多(如各种 DB GUI 工具),但专注于 MCP 协议集成的数据库工具极少。DB MCP Server 的差异化在于:不做图形界面,而是做 AI 与数据库的协议层桥接,这是 MCP 生态蓬勃发展背景下的精准卡位。
DB MCP Server 的增长曲线和 star 数(394),虽然绝对值不高,但在 MCP 数据库工具这个细分赛道里已经是头部项目。
趋势判断:
可替代性:目前 GitHub 上类似的 MCP 数据库工具还包括一些厂商自建的 connector(如 Snowflake MCP),但 DB MCP Server 的多数据库统一管理 + Clean Architecture 设计,使它在生态兼容性上具有优势。
总结:DB MCP Server 是一款定位精准、工程质量高的 MCP 数据库工具。它不追求大而全,而是专注于让 AI 更好地操作数据库这一件事,并在 Oracle 支持、TimescaleDB 支持、动态工具生成等细节上做到了超出预期。如果你在构建 AI 应用或使用 AI 辅助编程,DB MCP Server 值得一试。