mcpField
P
Production Safe Mysql Mcp Server

Production Safe Mysql Mcp Server

本地服务
github.com/turkeryildirim数据库124 周前更新

关于 Production Safe Mysql Mcp Server

Production Safe Mysql Mcp Server 为 AI Agent 提供 MySQL 查询、架构和数据库管理操作,支持事务及多数据库,并拦截指定高风险命令;破坏性 DDL 默认需显式启用。

主要功能

  1. 01参数化查询与原子事务
  2. 02表和数据库管理
  3. 03架构检查与服务器信息
  4. 04单个会话访问多个数据库
  5. 05拦截高风险命令并限制破坏性 DDL

适用场景

  1. 01通过 Agent 查询或更新 MySQL 数据
  2. 02将多条语句作为原子事务执行
  3. 03检查表和列定义
  4. 04在默认禁用破坏性操作时管理数据库

MCP 相关

这是一个 MCP 服务,向 MCP 客户端开放 MySQL 查询、事务、架构和数据库管理工具。每个工具均接受数据库参数,可在同一会话中访问多个数据库。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

mysql-mcp

一个 Model Context Protocol(MCP)服务,让 AI Agent 能够直接访问 MySQL 数据库。

功能

数据查询与修改
  • execute_query — 执行 SELECT、INSERT、UPDATE 或 DELETE 语句,并支持参数化查询(? 占位符)
  • execute_transaction — 将多条语句作为一个原子批次执行;如果任何语句执行失败,整个事务会自动回滚
架构管理
  • create_table — 创建新表
  • alter_table — 添加/删除列、重命名列、添加索引等
  • drop_table — 删除表(需要设置 ALLOW_DESTRUCTIVE_DDL=true)
  • show_tables — 列出数据库中的所有表
  • describe_table — 显示表的列结构
数据库管理
  • list_databases — 列出所有用户数据库(不包括系统数据库)
  • create_database — 创建新数据库,可选择字符集和排序规则
  • drop_database — 删除数据库(需要设置 ALLOW_DESTRUCTIVE_DDL=true)
信息查询
  • ping — 检查 MySQL 连接状态
  • show_columns — 显示表的详细列信息
  • get_server_info — 返回 MySQL 版本、字符集和排序规则(只读)
多数据库支持

每个工具都接受 database 参数。无需额外配置,即可在同一会话中查询不同数据库。


不支持的功能

以下操作会被安全过滤器永久拦截,在任何情况下都无法绕过:

类别被拦截的命令
MySQL 设置SET GLOBAL、SET @@global.*、SET @@SESSION.sql_mode
用户管理CREATE USER、DROP USER、ALTER USER、RENAME USER
权限管理GRANT、REVOKE
系统命令FLUSH、KILL、SHUTDOWN
复制RESET MASTER/REPLICA、START/STOP SLAVE/REPLICA、CHANGE MASTER
文件访问LOAD DATA INFILE、SELECT INTO OUTFILE/DUMPFILE
插件INSTALL PLUGIN、UNINSTALL PLUGIN

其他限制:

  • 单次调用中不允许使用 ; 分隔多条语句——请改用 execute_transaction
  • drop_table 和 drop_database 默认禁用,除非设置 ALLOW_DESTRUCTIVE_DDL=true,否则会返回错误
  • 查询结果最多返回 MAX_ROWS 行(默认值:1000);对于大型表,请添加 LIMIT 子句

安装

**要求:**Node.js 20+

git clone https://github.com/turkeryildirim/mysql-mcp
cd mysql-mcp
npm install
npm run build

复制环境变量示例文件并填写凭据:

cp .env.example .env
MYSQL_HOST=localhost
MYSQL_PORT=3306
MYSQL_USER=mcp_user
MYSQL_PASSWORD=your_password

# Optional
MYSQL_DATABASE=default_db
MYSQL_POOL_SIZE=10
MAX_ROWS=1000
ALLOW_DESTRUCTIVE_DDL=false
创建专用 MySQL 用户(推荐)

为 MCP 服务创建一个遵循最小权限原则的 MySQL 用户:

CREATE USER 'mcp_user'@'localhost' IDENTIFIED BY 'your_password';
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, ALTER, INDEX
  ON *.* TO 'mcp_user'@'localhost';
FLUSH PRIVILEGES;

请勿授予 SUPER、FILE、RELOAD 或 GRANT OPTION 权限。


Claude Desktop 集成

打开 Claude Desktop 配置文件:

  • Windows:%APPDATA%\Claude\claude_desktop_config.json
  • macOS:~/Library/Application Support/Claude/claude_desktop_config.json

在 mcpServers 下添加以下内容:

{
  "mcpServers": {
    "mysql": {
      "command": "node",
      "args": ["/absolute/path/to/mysql-mcp/dist/index.js"],
      "env": {
        "MYSQL_HOST": "localhost",
        "MYSQL_PORT": "3306",
        "MYSQL_USER": "mcp_user",
        "MYSQL_PASSWORD": "your_password",
        "MYSQL_DATABASE": "",
        "MAX_ROWS": "1000",
        "ALLOW_DESTRUCTIVE_DDL": "false"
      }
    }
  }
}

重启 Claude Desktop。你应该会在工具面板中看到名为 mysql 的服务。


Claude CLI 集成

选项 1:.mcp.json — 项目级配置(推荐)

在项目根目录中创建 .mcp.json 文件:

{
  "mcpServers": {
    "mysql": {
      "type": "stdio",
      "command": "node",
      "args": ["/absolute/path/to/mysql-mcp/dist/index.js"],
      "env": {
        "MYSQL_HOST": "localhost",
        "MYSQL_PORT": "3306",
        "MYSQL_USER": "mcp_user",
        "MYSQL_PASSWORD": "your_password",
        "ALLOW_DESTRUCTIVE_DDL": "false"
      }
    }
  }
}

每当你从该目录运行 claude 时,服务都会自动加载。

选项 2:全局配置
claude mcp add mysql -- node /absolute/path/to/mysql-mcp/dist/index.js

添加环境变量:

claude mcp add mysql \
  -e MYSQL_HOST=localhost \
  -e MYSQL_USER=mcp_user \
  -e MYSQL_PASSWORD=your_password \
  -- node /absolute/path/to/mysql-mcp/dist/index.js

验证配置:

claude mcp list
claude mcp get mysql

示例提示词

连接后,你可以用自然语言向 Agent 下达指令:

Show me the structure of the users table in testdb
Fetch the last 10 orders from testdb.orders
Create a products table in testdb with id, name, price, and stock columns
Run the following two INSERTs as a single transaction: ...

开发

npm run dev        # Watch mode (rebuilds on change)
npm test           # Unit tests (no MySQL connection required)
npm run build      # Production build → dist/

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。