/ 目錄 / 演練場 / db-mcp-server
● 社群 FreePeak ⚡ 即開即用

db-mcp-server

作者 FreePeak · FreePeak/db-mcp-server

一個 MCP 伺服器,支援多種資料庫 — MySQL、Postgres、SQLite、Oracle、TimescaleDB。每個連線都有專屬的查詢/結構描述/效能工具組。

db-mcp-server(FreePeak)可同時連線多個資料庫。針對每個已設定的連線,自動產生查詢/執行/交易/結構描述/效能工具。支援 TimescaleDB(hypertables、連續彙總)以及 Oracle 特有功能(RAC、wallet)。

為什麼要用

核心特性

即時演示

實際使用效果

db.replay ▶ 就緒
0/0

安裝

選擇你的客戶端

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "db": {
      "command": "TODO",
      "args": [
        "See README: https://github.com/FreePeak/db-mcp-server"
      ],
      "_inferred": true
    }
  }
}

開啟 Claude Desktop → Settings → Developer → Edit Config。儲存後重啟應用。

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "db": {
      "command": "TODO",
      "args": [
        "See README: https://github.com/FreePeak/db-mcp-server"
      ],
      "_inferred": true
    }
  }
}

Cursor 使用與 Claude Desktop 相同的 mcpServers 格式。專案級設定優先於全域。

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "db": {
      "command": "TODO",
      "args": [
        "See README: https://github.com/FreePeak/db-mcp-server"
      ],
      "_inferred": true
    }
  }
}

點擊 Cline 側欄中的 MCP Servers 圖示,然後選 "Edit Configuration"。

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "db": {
      "command": "TODO",
      "args": [
        "See README: https://github.com/FreePeak/db-mcp-server"
      ],
      "_inferred": true
    }
  }
}

格式與 Claude Desktop 相同。重啟 Windsurf 生效。

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "db",
      "command": "TODO",
      "args": [
        "See README: https://github.com/FreePeak/db-mcp-server"
      ]
    }
  ]
}

Continue 使用伺服器物件陣列,而非映射。

~/.config/zed/settings.json
{
  "context_servers": {
    "db": {
      "command": {
        "path": "TODO",
        "args": [
          "See README: https://github.com/FreePeak/db-mcp-server"
        ]
      }
    }
  }
}

加入 context_servers。Zed 儲存後熱重載。

claude mcp add db -- TODO 'See README: https://github.com/FreePeak/db-mcp-server'

一行命令搞定。用 claude mcp list 驗證,claude mcp remove 移除。

使用場景

實戰用法: db-mcp-server

從 Claude 執行跨資料庫分析

👤 資料工程師 ⏱ ~25 min intermediate

何時使用: 需要在同一個對話中同時從 Postgres(應用程式)和 MySQL(舊系統)取得資料,且不想切換工具。

前置條件
  • config.json with both connections — 參考 Repo 文件中的格式;憑證請使用環境變數參照,不要直接寫死在設定檔中
步驟
  1. 啟動伺服器
    執行 ./bin/server -t sse -c config.json,確認兩個連線都已成功建立。✓ 已複製
    → 伺服器日誌顯示 2 個連線成功
  2. 分別查詢各資料庫
    prod(Postgres)取得上週新註冊的使用者;從 legacy(MySQL)取得對應的訂單資料,並在記憶體中進行合併。✓ 已複製
    → 合併後的資料集

結果: 無需資料倉儲即可獲得跨系統洞察。

注意事項
  • 誤以為僅限讀取 — 代理程式卻執行了 INSERT — 為每個連線設定資料庫層級的唯讀帳號;不要依賴代理程式的自我約束
搭配使用: google-sheets

從 Claude 管理 TimescaleDB hypertables

👤 可觀測性/IoT 團隊 ⏱ ~20 min advanced

何時使用: 想要建立或檢視 hypertables 及連續彙總,但不想記憶 Timescale DDL 語法。

步驟
  1. 檢視現有的 hypertables
    列出 metrics 資料庫中所有 hypertables,包含 chunk 間隔與資料列數。✓ 已複製
    → hypertables 清單表格
  2. 建立連續彙總
    sensor_readings 上建立以 device_id 分群的每小時彙總,計算 avg、max 和 min。✓ 已複製
    → 連續彙總建立完成;重新整理策略已設定

結果: 幾分鐘內完成 Timescale 操作,不必翻找 Google。

快速理解陌生資料庫結構以加速上手

👤 接手既有資料庫的工程師 ⏱ ~30 min beginner

何時使用: 加入新團隊的第一天;需要快速掌握資料庫全貌。

步驟
  1. 匯出結構描述
    prod 使用 schema_<conn_id>,回傳所有資料表、外鍵關聯圖,以及依資料列數排序的結果。✓ 已複製
    → 結構描述 + 外鍵關聯圖
  2. 產生術語表
    根據欄位名稱與範例資料(每個資料表最多 5 筆),為每個資料表推斷一行說明。✓ 已複製
    → 新人上手速查表

結果: 30 分鐘內建立完整的資料庫心智模型。

組合

與其他 MCP 搭配,撬動十倍槓桿

將查詢結果匯出至共用試算表,供非技術背景的利害關係人使用

從 prod 查詢 LTV 前 50 名的客戶,並寫入「Top LTV」工作表。✓ 已複製

將資料庫慢速查詢的分析結果與 Prometheus 的資料庫層級指標進行交叉比對

針對透過 performance_prod 找到的慢速查詢,顯示相同時間範圍內來自 Prometheus 的 pg_stat_statements 指標。✓ 已複製

工具

此 MCP 暴露的能力

工具輸入參數何時呼叫成本
query_<db_id> sql: str (SELECT) 讀取資料 1 query
execute_<db_id> sql: str (DDL/DML) 寫入操作 — 受資料庫權限保護 1 query
transaction_<db_id> statements: str[] 需要原子性的多步驟變更 1 tx
schema_<db_id> table?: str 探索結構描述/新人上手 metadata query
generate_schema_<db_id> format: sql|json 匯出供文件或版本控制使用 metadata queries
performance_<db_id> sql?: str 調校慢速查詢 plan + stats

成本與限制

運行它的成本

API 配額
取決於您的資料庫容量
每次呼叫 Token 數
大型結果集會快速消耗 tokens — 請積極使用 LIMIT 限制筆數
費用
MCP 本身免費;資料庫主機費用由您自行承擔
提示
務必加上 LIMIT 限制輸出;若需大量擷取,可透過 filesystem MCP 將結果串流寫入檔案

安全

權限、密鑰、影響範圍

最小權限: 探索用途建議使用資料庫層級的唯讀帳號
憑證儲存: config.json 使用環境變數參照;絕對不要將含有明文密碼的設定檔提交至版本控制
資料出站: 僅傳輸至已設定的資料庫主機
切勿授予: 除非絕對必要,否則不要將資料庫超級使用者權限授予 MCP 連線

故障排查

常見錯誤與修復

Connection pool exhausted

在 config.json 中調整連線池大小;在資料庫端清除殭屍連線;確認代理程式沒有進入無限迴圈

驗證: SELECT * FROM pg_stat_activity (for Postgres)
Oracle wallet auth fails

TNS_ADMIN 路徑必須對 MCP 程序可讀;在 Mac/Linux 上請留意 SELinux/AppArmor 的限制

Tool names don't appear for one DB

該連線可能初始化失敗;查看伺服器日誌 — 通常是憑證錯誤或防火牆阻擋所致

替代方案

db-mcp-server 對比其他方案

替代方案何時用它替代權衡
postgres-mcp (official)只需要使用 Postgres僅支援單一資料庫
mysql-mcp (community)只需要使用 MySQL僅支援單一資料庫

更多

資源

📖 閱讀 GitHub 上的官方 README

🐙 查看未解決的 issue

🔍 瀏覽全部 400+ MCP 伺服器和 Skills