关于 MySQL MCP Server
MySQL MCP Server 让 MCP 客户端通过工具查询和修改已配置的 MySQL 数据库,适合需要在 AI 助手中访问数据库的开发者。写操作默认关闭,可通过环境变量启用。
主要功能
- 01连接配置的 MySQL 数据库
- 02执行 SELECT、SHOW 和 DESCRIBE
- 03通过独立工具执行写操作
- 04环境变量控制写操作权限
- 05使用 stdio 通信
适用场景
- 01让 AI 助手查询 MySQL 数据
- 02在启用写权限后插入或更新记录
- 03通过 MCP 客户端检查数据库结构
MCP 相关
该 MCP 服务通过 stdio 向客户端提供 SQL 查询及写入工具。INSERT、UPDATE 和 DELETE 仅在设置 MYSQL_ALLOW_WRITE_OPS=true 后启用。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
暂未收录安装方式
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
还没有获取到工具列表
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
MySQL MCP 服务
版本:0.1.0
一个用于与 MySQL 数据库交互的模型上下文协议(MCP)服务。此服务允许 MCP 客户端(例如 AI 助手)查询和修改已配置的 MySQL 数据库中的数据。
功能
- 使用标准连接参数连接到 MySQL 数据库。
- 提供用于执行 SQL 查询和语句的 MCP 工具。
- 支持只读查询(
SELECT、SHOW、DESCRIBE)。 - 通过单独的工具支持写入操作(
INSERT、UPDATE、DELETE),并由环境变量(MYSQL_ALLOW_WRITE_OPS)控制。 - 通过标准输入/输出(stdio)通信。
安装
# Install as a project dependency (recommended for use within another project)
npm install
# Or, if intended as a standalone global tool:
# 1. Build the project:
# npm run build
# 2. Link it globally:
# npm link
# (or use `npm install -g .` if publishing)
配置
此服务需要设置以下环境变量以连接数据库:
MYSQL_HOST:MySQL 服务的主机名或 IP 地址。MYSQL_USER:用于连接数据库的用户名。MYSQL_PASSWORD:指定用户的密码。MYSQL_DATABASE:要连接的数据库名称。MYSQL_PORT:(可选)MySQL 服务的端口号(默认为 3306)。MYSQL_ALLOW_WRITE_OPS:(可选)设为true以启用insert、update和delete工具。默认为false(禁用写入操作)。**警告:**启用写入操作后,MCP 客户端可以修改你的数据库。请谨慎使用。
这些变量必须在启动服务进程的环境中可用。设置方式取决于你的操作系统以及运行服务的方式(例如,.env 文件、系统环境变量或 shell export)。
用法
配置并构建(npm run build)后,即可运行服务:
# If linked globally
mysql-server
# Or run directly using node
node build/index.js
服务启动后会向 stderr 输出 MySQL MCP server running on stdio,然后通过标准输入/输出监听 MCP 请求。通常需要配置 MCP 客户端(例如,AI 助手集成)连接到此服务进程。
可用工具
此服务向 MCP 客户端提供以下工具:
1. query
- **说明:**对已配置的数据库执行只读 SQL 查询(SELECT、SHOW、DESCRIBE)。
- 输入架构:
{ "type": "object", "properties": { "sql": { "type": "string", "description": "要执行的只读 SQL 查询(SELECT、SHOW、DESCRIBE)。" } }, "required": ["sql"] } - **输出:**在 MCP 响应的
content中以 JSON 字符串形式返回查询结果。如果查询不是只读查询或发生数据库错误,则返回错误。
2. insert
- **说明:**执行 INSERT SQL 语句。需要将
MYSQL_ALLOW_WRITE_OPS设为true。 - 输入架构:
{ "type": "object", "properties": { "sql": { "type": "string", "description": "要执行的 INSERT SQL 语句。" } }, "required": ["sql"] } - **输出:**返回包含受影响行数和插入 ID(如适用)的成功消息;如果操作失败或写入操作已禁用,则返回错误消息。
3. update
- **说明:**执行 UPDATE SQL 语句。需要将
MYSQL_ALLOW_WRITE_OPS设为true。 - 输入架构:
{ "type": "object", "properties": { "sql": { "type": "string", "description": "要执行的 UPDATE SQL 语句。" } }, "required": ["sql"] } - **输出:**返回包含受影响行数的成功消息;如果操作失败或写入操作已禁用,则返回错误消息。
4. delete
- 描述: 执行 DELETE SQL 语句。需要将
MYSQL_ALLOW_WRITE_OPS设置为true。 - 输入架构:
{ "type": "object", "properties": { "sql": { "type": "string", "description": "要执行的 DELETE SQL 语句。" } }, "required": ["sql"] } - 输出: 成功时返回包含受影响行数的成功消息;如果操作失败或写入操作已禁用,则返回错误消息。
开发
如需处理服务代码:
- 克隆仓库:(如适用)
# git clone <repository-url> # cd mysql-server - 安装依赖:
npm install - 构建代码:(将 TypeScript 编译为
build/中的 JavaScript)npm run build - 监视更改:(更改后自动重新编译)
npm run watch - 运行 MCP Inspector:(在本地测试/调试服务)
# 请确保已先构建代码 npm run inspector
评论
支持 Markdown
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。