mcp-mysql-client
MySQL MCP
MySQL MCP 将 AI 应用连接到单个 MySQL 或 MariaDB 数据库:查看结构、用自然语言向数据提问、分析慢查询——并且,如果您自己允许,还可以修改数据。
服务器绑定到单个数据库:该数据库由配置指定,任何工具都无法切换到其他数据库。默认情况下仅可读。
6 个工具。 连接与权限、表列表、表结构、读取查询、查询计划、修改查询。
查询类型由服务器决定。 SQL 在连接之前就被解析:即使写权限已开启,读取工具中的
DELETE也会被拒绝。读取不能写入。 读取查询在
START TRANSACTION READ ONLY内执行——即使有人欺骗 SQL 解析,MySQL 本身也会拒绝写入。响应不会撑爆上下文。 行以流方式读取并在达到限制时截断,而不是全部拉取;响应中带有诚实的
truncated标志。权限只能从外部授予。 INSERT、UPDATE 和 DELETE 通过环境变量启用并需要重启——无法从对话中获取。DDL 始终不可用。
从一个只读取数据的查询开始:
显示数据库结构,并统计最近一周出现了多少条记录。
快速开始
Claude Code:
claude mcp add mysql-myapp \
-e MYSQL_HOST=db.example.com \
-e MYSQL_USER=myapp_ro \
-e MYSQL_PASS='пароль' \
-e MYSQL_DB=myapp \
-e MYSQL_SSL=true \
-- npx -y mcp-mysql-client或者在 .mcp.json / claude_desktop_config.json 中:
{
"mcpServers": {
"mysql-myapp": {
"command": "npx",
"args": ["-y", "mcp-mysql-client"],
"env": {
"MYSQL_HOST": "db.example.com",
"MYSQL_PORT": "3306",
"MYSQL_USER": "myapp_ro",
"MYSQL_PASS": "пароль",
"MYSQL_DB": "myapp",
"MYSQL_SSL": "true"
}
}
}
}一个服务器——一个数据库。如果需要多个数据库:添加多条带有各自凭据的配置;这样权限保持隔离,连接到测试数据库的服务器在物理上无法看到生产数据库。
Related MCP server: MySQL MCP Server
可以交给它做什么
请求 | 服务器做什么 |
“这个数据库里到底有什么?” |
|
“orders 表的结构是怎样的?” |
|
“七月份有多少订单,总金额是多少?” |
|
“为什么这个查询很慢?” |
|
“我以什么身份连接,有哪些权限?” |
|
“给已取消的订单设置状态” |
|
什么可能会改变
默认情况下——什么都不会改变:服务器以只读模式启动。写入按操作逐个启用:
"ALLOW_INSERT_OPERATION": "true",
"ALLOW_UPDATE_OPERATION": "true",
"ALLOW_DELETE_OPERATION": "false"与此同时,以下操作仍然不可能:
DDL —
CREATE、ALTER、DROP、TRUNCATE、RENAME— 在任何设置下都不行。切换数据库、
SET、CALL、PREPARE、LOAD DATA、锁、GRANT以及其他会改变下一条查询语义或执行未经验证文本的操作。SELECT ... INTO OUTFILE— 向数据库服务器写入文件。没有
WHERE的UPDATE和DELETE— 需要在调用中显式确认allow_full_table=true。一次调用中的多条语句 — 只执行一条。
MySQL 权限是这之上的另一层限制。ALLOW_UPDATE_OPERATION 不会给没有 GRANT UPDATE 的用户增加任何权限。实际做法:使用具有最小权限的独立用户,而不是 root。
环境变量
变量 | 默认值 | 用途 |
|
| 服务器主机 |
|
| 端口 |
| — | Unix 套接字,替代主机/端口 |
| — | 用户(必填) |
| — | 密码( |
| — | 从文件读取密码,而不是从变量读取 |
| — | 数据库(必填, |
|
| 要求 TLS |
| — | 根证书路径;单独设置即启用 TLS |
|
| 验证服务器证书 |
|
| 允许 INSERT |
|
| 允许 UPDATE |
|
| 允许 DELETE |
|
| 单个响应中的行数上限 |
|
| 查询超时 |
|
| 连接超时 |
|
| 连接池中的连接数 |
|
| 连接中断和死锁时的重试次数 |
|
| 在只读事务中执行读取 |
| — |
|
MCP 客户端配置中的密码以明文形式存放。MYSQL_PASS_FILE 允许将其保存在具有适当权限的文件中。
从 @benborla29/mcp-server-mysql 迁移
变量名相同,因此只需替换启动命令中的包即可:
- "args": ["-y", "@benborla29/mcp-server-mysql"]
+ "args": ["-y", "mcp-mysql-client"]行为上的变化:
MYSQL_DB必填——服务器始终绑定到单个数据库;响应受
MYSQL_MAX_ROWS限制并标记为truncated;即使写权限已启用,DDL 也不可用;
没有
WHERE的UPDATE/DELETE需要在调用中确认;工具集不同:
query、execute、explain、list_tables、describe_table、server_info。
诊断
首先使用 server_info:它会显示服务器连接到了什么、MySQL 用户拥有哪些权限,以及启用了哪些限制。
症状 | 原因 |
|
|
| 用户存在,但没有数据库权限 |
| 缺少对操作或表的 |
| 服务器要求 TLS: |
| 主机、端口、防火墙或未启动的 VPN |
|
|
服务器无法连接 | 配置错误直接在对话中可见:服务器即使没有凭据也会启动,并说明缺少什么 |
技术文档
许可证
Maintenance
Related MCP Servers
- FlicenseNot gradedqualityBmaintenanceAn MCP server that enables AI agents to safely explore and interact with MySQL databases through dynamic tool generation from stored procedures. It provides database discovery capabilities and intelligent procedure categorization while enforcing security restrictions to prevent data modification.
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to safely interact with MySQL/MariaDB databases, supporting read-only queries by default with optional write operations and access control.MIT
- AlicenseAqualityDmaintenanceEnables AI agents to query and manage MySQL databases through a structured MCP interface, supporting SQL execution, table inspection, and database operations.914MIT
- AlicenseNot gradedqualityDmaintenanceA robust MCP server for interacting with MySQL databases through AI agents, providing tools for schema analysis, query execution, and dynamic connection management with read-only security.61MIT
Related MCP Connectors
Analytical memory for AI agents: a real Postgres queried in plain English over MCP. One command.
Security firewall for AI agents — scans MCP calls for injection, secrets, and risks.
Shared, governed long-term memory for AI agents across tools and sessions via MCP and REST.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/gistrec/mcp-mysql-client'
If you have feedback or need assistance with the MCP directory API, please join our Discord server