MySQL动态MCP服务器

用于MySQL的模型上下文协议(MCP)服务器,允许AI助手通过工具安全地查询和修改MySQL数据。

  • by fadlee
  • TypeScript
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 fadlee/dynamic-mysql-mcp

使用说明

动态MySQL MCP服务器

MySQL的模型上下文协议(MCP)服务器,使AI助手能够通过工具安全地查询和修改MySQL数据。

特性

  • 🔧 基于工具的MySQL访问(无需环境变量)
  • 🔐 运行时身份验证通过 auth_mysql
  • 🗂️ 列出数据库和表
  • 🧱 描述表模式
  • 📄 类似CRUD的行操作(select_rows, insert_row, update_rows, delete_rows)
  • 🧾 自定义SQL执行(execute_sql)带有可选参数
  • 🌐 用于表模式发现的MCP资源

为什么是动态的(与静态MySQL MCP服务器相比)

许多MySQL MCP服务器都是静态配置的(通过env或配置文件固定主机/用户/密码)。这个项目是有意动态的。

  • 通过工具调用进行运行时身份验证(auth_mysql)而不是在服务器启动时要求凭据
  • 使用以下命令在会话期间切换数据库上下文 use_database (或每次呼叫数据库覆盖)
  • 从一个正在运行的MCP服务器会话跨多个数据库/环境工作
  • 更适合连接细节随任务变化的代理工作流
  • 正常使用时不需要身份验证环境变量
功能 动态MySQL MCP服务器 典型的静态MySQL MCP
凭据 在运行时提供 auth_mysql 启动时在env/config中修复
环境切换 每个任务/会话重新授权 通常重新启动/重新配置
数据库切换 use_database +每次通话 database 通常是单个默认数据库
代理工作流适合度 高(任务驱动连接) 中(仅预配置)
机密处理模型 无需身份验证-环境变量 通常依赖于持久的环境机密

安装

npm install dynamic-mysql-mcp
# or
bun install dynamic-mysql-mcp

用法

使用克劳德桌面

{
  "mcpServers": {
    "mysql": {
      "command": "npx",
      "args": ["dynamic-mysql-mcp"]
    }
  }
}

直接使用

npx dynamic-mysql-mcp

身份验证流程(通过工具)

  1. auth_mysql (主机默认值 127.0.0.1,传递用户/密码和可选主机/端口/数据库/ssl)
  2. 可选: use_database 切换默认数据库,如SQL USE <db>
  3. get_auth_status
  4. 使用模式/数据工具
  5. logout

身份验证不需要环境变量。

快速教程

与连接到此MCP的AI聊天时,请使用这样的提示式语言:

  1. “使用root用户和空密码登录本地MySQL。”
  2. “将活动数据库设置为my_app。”
  3. “显示活动数据库中的所有表。”
  4. 描述用户表,包括列名和数据类型
  5. 从用户那里获取最近10行,按id降序排列
  6. “使用电子邮件向用户中插入一个新用户test@example.com."
  7. “更新id为1的用户,并将名称设置为Budi。”
  8. “删除id为1的用户行。”
  9. “将活动数据库切换到分析。”
  10. “运行自定义SQL:SELECT id,通过参数[”2026-01-01“]向用户发送电子邮件WHERE created_at>=?。”

提示:如果你想在不切换活动数据库的情况下对特定数据库运行操作,请在提示中直接提及该数据库,例如:“从analytics.events中获取5行”。

更多提示示例

  • 日期筛选器:
    • “根据created_at获取过去30天的订单。”
    • “显示2026年2月1日至2026年02月10日之间的付款。”
  • 分页:
    • “从第21行开始获取20个用户。”
    • “显示第3页的产品,每页10行。”
  • 关键字搜索:
    • “查找电子邮件中包含管理员的用户。”
    • “获取标题包含促销的帖子。”
  • 组合过滤+排序:
    • 获取10张已付款发票,按id降序排列
    • 显示错误级别日志,先显示最新日志,限制为50行

可用工具

  • health
  • auth_mysql
  • get_auth_status
  • logout
  • list_databases
  • use_database
  • list_tables
  • describe_table
  • select_rows
  • insert_row
  • update_rows
  • delete_rows
  • execute_sql

发展

bun install
bun run dev
bun run typecheck
bun run test
bun run build

许可证

麻省理工学院