mcpField
M
mysql

mysql

github.com/sanjay3290数据与数据库448414 次安装7 周前更新
代码仓库

关于 mysql

mysql 是用于查询已配置 MySQL 数据库的技能,仅支持只读操作。它可帮助用户检查数据库结构和提取数据,并限制查询类型、结果规模与执行时间。

主要功能

  1. 01运行 SELECT、SHOW、DESCRIBE、EXPLAIN 和 WITH 查询
  2. 02列出已配置数据库和数据表
  3. 03查看数据库结构
  4. 04强制只读会话并拒绝多条语句
  5. 05限制查询时长和结果数量

适用场景

  1. 01从已配置的数据库提取记录
  2. 02查询前浏览数据表和结构
  3. 03只读检查分析或运营数据

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/sanjay3290/ai-skills --skill mysql

安装后在 Claude Code 中输入/mysql确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

.gitignore
connections.example.json
README.md
requirements.txt
scripts/
query.py

详细介绍

MySQL 只读查询技能

对已配置的 MySQL 数据库执行安全的只读查询。

要求

  • Python 3.8+
  • mysql-connector-python:pip install -r requirements.txt

设置

在技能目录或 ~/.config/claude/mysql-connections.json 中创建 connections.json。

安全性:此文件包含凭据,请将文件权限设为 600:

chmod 600 connections.json
{
  "databases": [
    {
      "name": "production",
      "description": "Main app database - users, orders, transactions",
      "host": "db.example.com",
      "port": 3306,
      "database": "app_prod",
      "user": "readonly_user",
      "password": "your-password",
      "ssl_disabled": false
    }
  ]
}
配置字段
字段必填说明
name是数据库标识符(不区分大小写)
description是此数据库包含的数据(用于自动选择)
host是数据库主机名
port否端口号(默认值:3306)
database是数据库名称
user是用户名
password是密码
ssl_disabled否设为 true 可禁用 SSL(默认值:false)
ssl_ca否CA 证书文件路径
ssl_cert否客户端证书文件路径
ssl_key否客户端私钥文件路径

用法

列出已配置的数据库
python3 scripts/query.py --list
查询数据库
python3 scripts/query.py --db production --query "SELECT * FROM users LIMIT 10"
列出表
python3 scripts/query.py --db production --tables
显示架构
python3 scripts/query.py --db production --schema
限制结果数量
python3 scripts/query.py --db production --query "SELECT * FROM orders" --limit 100

数据库选择

根据用户意图匹配数据库 description:

用户询问内容查找说明中包含的内容
用户、账户users、accounts、customers
订单、销售orders、transactions、sales
分析、指标analytics、metrics、reports
日志、事件logs、events、audit

如果不确定,请运行 --list 并询问用户要使用哪个数据库。

安全功能

  • 只读会话:连接使用 MySQL SET SESSION TRANSACTION READ ONLY(主要防护措施)
  • 查询验证:仅允许 SELECT、SHOW、DESCRIBE、EXPLAIN、WITH 查询
  • 单条语句:拒绝每个查询中包含多条语句的情况
  • SSL 支持:支持配置 SSL、CA、客户端证书和密钥
  • 查询超时:强制执行 30 秒的 max_execution_time(MySQL 5.7.8+)
  • 内存保护:每个查询最多返回 10,000 行,以防止内存溢出
  • 列宽上限:每列最多 100 个字符,确保输出易读
  • 凭据清理:错误消息不会泄露密码

故障排除

错误解决方案
未找到配置在技能目录中创建 connections.json
身份验证失败检查配置中的用户名和密码
连接超时验证主机和端口,并检查防火墙或 VPN
SSL 错误对本地数据库尝试使用 "ssl_disabled": true
权限警告运行 chmod 600 connections.json
不支持 max_execution_time升级到 MySQL 5.7.8+ 或 MariaDB 10.1.1+

退出代码

  • 0:成功
  • 1:错误(配置缺失、身份验证失败、查询无效、数据库错误)

工作流

  1. 运行 --list 显示可用数据库
  2. 根据数据库说明匹配用户意图
  3. 运行 --tables 或 --schema 探索结构
  4. 使用适当的 LIMIT 执行查询

评论

支持 Markdown