数据库操作 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 。

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

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

小夜