← 返回公开榜单
db

FreePeak/db-mcp-server

A powerful multi-database server implementing the Model Context Protocol (MCP) to provide AI assistants with structured access to databases.

本周新增
119 星
近 3 周倍数
—
距上次推送
256 天
距上次发布
548 天
许可证
MIT

星标增长

每根柱子是这个周期记录下来的 star 增长:优先取逐个 stargazer 到达时间分桶的到达数,还没被 stargazer 扫描覆盖的仓库改用该周期的 star 净增;两个写者都没记录的周期画成虚线空档,而不是当成 0。柱高按各自窗口的峰值归一,两张图不共用坐标轴。指向任意一根柱子, tooltip 里是该周期的九项指标:当前值与周期内的净增。

指向或点击一根柱子,看当天的九项指标。

12/1712/301/111/242/62/193/33/16

2026 年 3 月 16 日 新增 119 个星标

窗口内最高的一天是 2026 年 3 月 16 日,新增 119 个星标。

证据时间轴

这个项目还没有记录到异动、发布或许可证变化。

README
该仓库存储的文档,若已生成中文翻译则一并显示
DB MCP Server Logo

多数据库MCP服务器

License: MIT Go Report Card Go Reference Contributors

一个强大的多数据库服务器,实现模型上下文协议(MCP),为AI助手提供结构化的数据库访问。

概述

DB MCP服务器为AI模型提供了一种标准化的方式来同时与多个数据库交互。基于FreePeak/cortex框架构建,它使AI助手能够执行SQL查询、管理事务、探索模式并分析不同数据库系统的性能,通过统一的接口。

核心概念

多数据库支持

与传统的数据库连接器不同,DB MCP服务器可以同时连接和交互多个数据库:

{
  "connections": [
    {
      "id": "mysql1",
      "type": "mysql",
      "host": "localhost",
      "port": 3306,
      "name": "db1",
      "user": "user1",
      "password": "password1"
    },
    {
      "id": "postgres1",
      "type": "postgres",
      "host": "localhost",
      "port": 5432,
      "name": "db2",
      "user": "user2",
      "password": "password2"
    }
  ]
}

动态工具生成

对于每个连接的数据库,服务器会自动生成专门的工具:

// 对于具有ID "mysql1"的数据库,会生成这些工具:
query_mysql1       // 执行SQL查询
execute_mysql1     // 运行数据修改语句
transaction_mysql1 // 管理事务
schema_mysql1      // 探索数据库模式
performance_mysql1 // 分析查询性能

清洁架构

服务器遵循清洁架构原则,包含以下层级:

  1. 领域层:核心业务实体和接口
  2. 仓库层:数据访问实现
  3. 用例层:应用业务逻辑
  4. 交付层:外部接口(MCP工具)

功能

  • 同时多数据库支持:可同时连接多个MySQL和PostgreSQL数据库
  • 数据库特定工具生成:自动为每个连接的数据库创建专用工具
  • 清洁架构:模块化设计,职责清晰分离
  • OpenAI代理SDK兼容性:完全兼容,无缝集成AI助手
  • 动态数据库工具:执行查询、运行语句、管理事务、探索模式、分析性能
  • 统一接口:跨不同数据库类型的一致交互模式
  • 连接管理:简单配置多个数据库连接

支持的数据库

数据库状态功能
MySQL✅ 完全支持查询、事务、模式分析、性能洞察
PostgreSQL✅ 完全支持 (v9.6-17)查询、事务、模式分析、性能洞察
TimescaleDB✅ 完全支持超表、时间序列查询、连续聚合、压缩、保留策略

部署选项

DB MCP服务器可以以多种方式部署,以适应不同的环境和集成需求:

Docker部署

# 拉取最新镜像
docker pull freepeak/db-mcp-server:latest

# 以挂载配置文件的方式运行
docker run -p 9092:9092 \
  -v $(pwd)/config.json:/app/my-config.json \
  -e TRANSPORT_MODE=sse \
  -e CONFIG_PATH=/app/my-config.json \
  freepeak/db-mcp-server

注意:挂载到 /app/my-config.json,因为容器中有一个默认文件位于 /app/config.json。

STDIO模式(IDE集成)

# 以STDIO模式运行服务器
./bin/server -t stdio -c config.json

对于Cursor IDE集成,添加到 .cursor/mcp.json:

{
  "mcpServers": {
    "stdio-db-mcp-server": {
      "command": "/path/to/db-mcp-server/server",
      "args": ["-t", "stdio", "-c", "/path/to/config.json"]
    }
  }
}

SSE模式(服务器发送事件)

# 默认配置(localhost:9092)
./bin/server -t sse -c config.json

# 自定义主机和端口
./bin/server -t sse -host 0.0.0.0 -port 8080 -c config.json

客户端连接端点:http://localhost:9092/sse

源代码安装

# 克隆仓库
git clone https://github.com/FreePeak/db-mcp-server.git
cd db-mcp-server

# 构建服务器
make build

# 运行服务器
./bin/server -t sse -c config.json

配置

数据库配置文件

创建一个 config.json 文件,包含您的数据库连接:

{
  "connections": [
    {
      "id": "mysql1",
      "type": "mysql",
      "host": "mysql1",
      "port": 3306,
      "name": "db1",
      "user": "user1",
      "password": "password1",
      "query_timeout": 60,
      "max_open_conns": 20,
      "max_idle_conns": 5,
      "conn_max_lifetime_seconds": 300,
      "conn_max_idle_time_seconds": 60
    },
    {
      "id": "postgres1",
      "type": "postgres",
      "host": "postgres1",
      "port": 5432,
      "name": "db1",
      "user": "user1",
      "password": "password1"
    }
  ]
}

命令行选项

# 基本语法
./bin/server -t <传输模式> -c <配置文件>

# SSE传输模式选项
./bin/server -t sse -host <主机名> -port <端口> -c <配置文件>

# 内联数据库配置
./bin/server -t stdio -db-config '{"connections":[...]}'

# 环境变量配置
export DB_CONFIG='{"connections":[...]}'
./bin/server -t stdio

可用工具

对于每个连接的数据库,DB MCP服务器会自动生成这些专用工具:

查询工具

工具名称描述
query_<db_id>执行SELECT查询并作为表格数据集返回结果
execute_<db_id>运行数据修改语句(INSERT、UPDATE、DELETE)
transaction_<db_id>开始、提交和回滚事务

模式工具

工具名称描述
schema_<db_id>获取有关表、列、索引和外键的信息
generate_schema_<db_id>从数据库模式生成SQL或代码

性能工具

工具名称描述
performance_<db_id>分析查询性能并获取优化建议

TimescaleDB工具

对于带有TimescaleDB扩展的PostgreSQL数据库,这些额外的专用工具可用:

工具名称描述
timescaledb_<db_id>执行一般TimescaleDB操作
create_hypertable_<db_id>将标准表转换为TimescaleDB超表
list_hypertables_<db_id>列出数据库中的所有超表
time_series_query_<db_id>执行带分桶优化的时间序列查询
time_series_analyze_<db_id>分析时间序列数据模式
continuous_aggregate_<db_id>创建自动更新的物化视图
refresh_continuous_aggregate_<db_id>手动刷新连续聚合

有关TimescaleDB工具的详细文档,请参阅TIMESCALEDB_TOOLS.md。

示例

查询多个数据库

-- 查询第一个数据库
query_mysql1("SELECT * FROM users LIMIT 10")

-- 在相同上下文中查询第二个数据库
query_postgres1("SELECT * FROM products WHERE price > 100")

管理事务

-- 开始事务
transaction_mysql1("BEGIN")

-- 在事务内执行语句
execute_mysql1("INSERT INTO orders (customer_id, product_id) VALUES (1, 2)")
execute_mysql1("UPDATE inventory SET stock = stock - 1 WHERE product_id = 2")

-- 提交或回滚
transaction_mysql1("COMMIT")
-- 或
transaction_mysql1("ROLLBACK")

探索数据库模式

-- 获取数据库中的所有表
schema_mysql1("tables")

-- 获取特定表的列
schema_mysql1("columns", "users")

-- 获取约束
schema_mysql1("constraints", "orders")

故障排除

常见问题

  • 连接失败:验证网络连接和数据库凭证
  • 权限错误:确保数据库用户具有适当的权限
  • 超时问题:检查配置中的 query_timeout 设置

日志

启用详细日志进行故障排除:

./bin/server -t sse -c config.json -v

贡献

我们欢迎对DB MCP服务器项目的贡献!要贡献:

  1. 分叉仓库
  2. 创建功能分支(git checkout -b feature/amazing-feature)
  3. 提交您的更改(git commit -m 'feat: add amazing feature')
  4. 推送到分支(git push origin feature/amazing-feature)
  5. 打开Pull Request

请参阅我们的CONTRIBUTING.md文件获取详细指南。

许可证

本项目根据MIT许可证授权 - 详细内容请参阅LICENSE文件。

页面上的每个数字都来自记录下来的 stargazer 到达时间,没有评分公式,也没有 AI 判定。 任何结论都可以用 /api/v1/repos/{id}/stats 里的原始增量自己重算。