數據庫操作 Skill:把 MCP 數據庫工具接進 Agent 工作流

前言

在 IDE 裏讓 AI 幫忙查庫、改表,常見做法是臨時貼連接串、手寫 SQL,或單獨起一個 MCP 服務再手工配 mcp.json。步驟分散時,Agent 容易漏掉連接測試、寫操作確認和風險分級。

SkillHub 上的「數據庫操作」(@user_16c0d092/database-mcp,v1.0.1)是一份基於通用 SKILL.md 的安裝與使用指南:安裝後,Agent 會按文檔驅動 @turingdance/database-mcp 這套 MCP 服務,覆蓋連庫、探表、只讀查詢和帶確認的寫操作。下面介紹它是什麼、能做什麼,以及如何安裝與使用。

這是什麼

「數據庫操作」是社區發佈(source: community)的編程類 Skill,分類爲 dev-programming,子類包含後端開發與腳本工具。發佈者爲 user_16c0d092,SkillHub 頁面標註 requires_api_key=false,即不依賴額外 API Key。

Skill 包內核心是 database-mcp 使用指南:說明如何通過 npx @turingdance/database-mcp 或 MCP 配置接入數據庫,並約定 Agent 應先測連接、再探表、寫操作須 confirm: true。官方 Skill 頁未提供單獨的概述文案;能力細節以包內 SKILL.md(v1.0.1 變更說明爲「明確如何安裝和使用 database-mcp」)爲準。

  • SkillHub 頁面:https://www.skillhub.cn/skills/user_16c0d092/database-mcp
  • 座標:@user_16c0d092/database-mcp

核心功能

Skill 本身不替代 MCP 服務端,而是教 Agent 正確使用 database-mcp 提供的 5 個 MCP 工具:

工具 用途 風險 說明
connect_db 測試連接 低 驗證數據庫連通性
list_tables 列出所有表 低 獲取數據庫表清單
describe_table 查看錶結構 低 字段、類型、約束
query SELECT 查詢 低 只讀,參數化防注入
execute 寫操作 按語句分級 INSERT/UPDATE/DELETE/DROP 等,需 confirm

底層 MCP 通過環境變量選擇數據庫類型,支持 mysql、mariadb、tidb、postgresql、sqlite、oracle、sqlserver(默認 sqlite)。寫操作按關鍵字分級:高危(如 DROP、TRUNCATE、ALTER)與中危(如 INSERT、UPDATE、DELETE)均需 confirm: true,未確認會返回 rejected 及風險說明;低危只讀語句可直接執行。

SkillHub 側安全掃描狀態爲「安全,無風險」(Keen、叄步報告,見 Skill 頁嵌入數據)。截至頁面數據:下載約 2772 次、收藏 2 次。

安裝與啓用

1. 安裝 Skill(Agent 側)

官方安裝說明:先閱讀 SkillHub 安裝文檔,再安裝本 Skill。

檢查 CLI:

command -v skillhub && skillhub --version

未安裝時可按文檔安裝 SkillHub CLI,然後將 Skill 裝進當前 Agent 的 skills 目錄(必須使用 --dir,否則默認 ./skills/ 可能不被識別):

skillhub install user_16c0d092/database-mcp --dir ~/.cursor/skills/

常見路徑(摘自 SkillHub 安裝文檔):

  • Cursor:~/.cursor/skills/
  • Claude Code:~/.claude/skills/
  • Codex:~/.codex/skills/ 或項目下 .agents/skills/

也可在 SkillHub 頁面下載 database-mcp-1.0.1.zip,解壓到對應 skills 目錄。

給 AI 的自然語言安裝提示(與官網一致):

請根據 https://skillhub.cn/install/skillhub.md,安裝 @user_16c0d092/database-mcp。

2. 運行 database-mcp(MCP 服務端)

Skill 文檔推薦直接 npx,無需全局安裝:

npx @turingdance/database-mcp

帶 MySQL 環境變量示例:

DB_TYPE=mysql DB_HOST=localhost DB_USER=root DB_PASSWORD=123456 DB_NAME=test npx @turingdance/database-mcp

WorkBuddy / Claude Desktop 可在 ~/.workbuddy/mcp.json 或對應 MCP 配置中寫入:

{
  "mcpServers": {
    "database-mcp": {
      "command": "npx",
      "args": ["-y", "@turingdance/database-mcp"],
      "env": {
        "DB_TYPE": "mysql",
        "DB_HOST": "127.0.0.1",
        "DB_PORT": "3306",
        "DB_USER": "root",
        "DB_PASSWORD": "your_password",
        "DB_NAME": "your_database"
      }
    }
  }
}

環境變量摘要(完整表見 Skill 包內文檔):

變量 說明 默認值
DB_TYPE 數據庫類型 sqlite
DB_HOST 主機 localhost
DB_PORT 端口 各庫默認
DB_USER / DB_PASSWORD 賬號 -
DB_NAME 庫名(SQLite 可省略) mcp-db
DB_FILE SQLite 文件路徑 mcp.db

典型用法

經過上面的步驟,Agent 應按 Skill 約定的工作流操作。

1. 連接測試(必做)

自然語言示例:

測試數據庫連接

對應先調用 connect_db,再探表或查詢。

2. 探索庫表

列出所有表
查看 users 表的結構

3. 只讀查詢

查詢 users 表的前10條數據
統計 orders 表的總記錄數

4. 寫操作(須確認)

INSERT/UPDATE/DELETE 等需傳入 confirm: true,例如:

{
  "tool": "execute",
  "arguments": {
    "sql": "INSERT INTO users (name, email) VALUES ('張三', 'zhangsan@example.com')",
    "confirm": true,
    "reason": "添加測試用戶數據"
  }
}

未確認時可能收到:

{
  "status": "rejected",
  "risk_level": "medium",
  "message": "檢測到中危(數據變更)操作 [INSERT],必須傳入 confirm: true 才能執行。"
}

Skill 還建議:寫操作前用 describe_table 和 query 預覽;查詢使用 ? 參數化,避免拼接字符串。

適用場景與注意

適合誰

  • 已在 Cursor、Claude Code、WorkBuddy 等環境使用 Skills,希望 Agent 穩定走「連庫 → 探表 → 查詢 → 確認後寫入」流程的開發者。
  • 需要對接多種 SQL 庫、又不想每次重講 MCP 配置與風險規則的後端或數據腳本場景。

限制與注意

  • Skill 頁 overviewMd 爲空,詳細行爲以包內 SKILL.md 與 @turingdance/database-mcp 爲準;升級 Skill 或 npm 包後應重新覈對版本(當前 Skill 爲 v1.0.1)。
  • 寫操作攔截是安全設計,生產庫執行帶 confirm: true 的語句前務必先只讀預覽。
  • SkillHub CLI 直裝若遇下載 404,可改用頁面「下載 Zip 包」鏈接(slug=@user_16c0d092/database-mcp)解壓安裝。
  • 源碼本地調試路徑在 Skill 文檔中提供(github.com/turingdance/database-mcp),與 SkillHub 安裝相互獨立。

結尾

「數據庫操作」把 @turingdance/database-mcp 的安裝、環境變量、工具列表和風險分級寫進 Agent 可讀的 Skill,減少連庫查表時步驟遺漏和誤寫。需要查閱元數據或下載包時,請打開 SkillHub 官方頁:https://www.skillhub.cn/skills/user_16c0d092/database-mcp 。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜