关于 mysql
面向数据库用户的 MySQL MCP 服务,提供只读查询、结构检查和性能分析,并可生成 AWR 风格报告。
主要功能
- 01执行只读 SQL 查询
- 02获取 JSON 查询计划
- 03查看表、索引和列统计
- 04生成 MySQL AWR 风格报告
- 05提供各表结构资源
适用场景
- 01检查 MySQL 数据库结构
- 02执行只读 SQL 分析
- 03查看查询执行计划
- 04寻找性能优化机会
MCP 相关
向 MCP 客户端提供只读 MySQL 查询、执行计划、表统计、性能报告和结构资源。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
5收录的工具列表 · 更新于 2 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| sql | string | 是 | 要执行的 SQL 查询 |
| model | string | 是 | MCP 客户端用于处理请求的语言模型名称和版本(例如 gpt-4.1、claude-sonnet-4、llama4……) |
| mcp_client | string | 是 | 指定所用 MCP 客户端实现的名称和版本(例如 Copilot、Claude、Cline……) |
详细介绍
MySQL 数据库
一个提供 MySQL 数据库只读访问权限的模型上下文协议服务。此服务使大模型能够检查数据库架构、执行并解释只读查询,以及分析性能指标。
组件
工具
-
mysql-query
- 对已连接的 MySQL 数据库执行只读 SQL 查询
- 输入:
sql(字符串):要执行的 SQL 查询 - 所有查询均在只读事务中执行
-
mysql-explain
- 解释针对已连接的 MySQL 数据库的 SQL 查询执行计划
- 输入:
sql(字符串):要解释的 SQL 查询 - 以 JSON 格式返回执行计划
-
mysql-stats
- 获取当前已连接数据库中指定表的统计信息
- 输入:
name(字符串):表名 - 返回全面的表、索引和列统计信息
-
mysql-connect
- 使用新的凭据重新连接
- 输入:
connectionString(字符串):MySQL 连接字符串(例如,host.docker.internal:3306/mydb) - 输入:
user(字符串):用户名(例如,root) - 输入:
password(字符串):密码
示例: mysql-connect host.docker.internal:3306/hr root my_2025
- mysql-awr
- 生成类似 Oracle AWR 的 MySQL 性能报告
- 包含数据库统计信息、InnoDB 指标、热门查询(需要 performance_schema)、表/索引统计信息、连接信息和优化建议
- 无需输入
资源
该服务为 MySQL 数据库中的每个表提供架构信息:
- 表架构(
mysql://<database>/<table>/schema)- 每个表的 JSON 架构信息
- 包含列名和数据类型
- 从 MySQL 数据库元数据中自动发现
配置
MySQL 服务使用环境变量或 mysql-connect 工具安全地管理凭据:
MYSQL_USER:MySQL 用户名(使用mysql-connect时可选)MYSQL_PASSWORD:MySQL 密码(使用mysql-connect时可选)
连接字符串
连接字符串应仅包含主机、端口和数据库信息(不包含内嵌凭据)。作为命令行参数提供连接字符串并非必需。如果启动时省略,则必须先使用 mysql-connect 工具建立连接,才能使用其他功能。
支持的连接字符串格式:
mysql://host:port/dbnamehost:port/dbname
在 Claude Desktop 中使用
要在 Claude Desktop 桌面应用中使用此服务,请将以下配置添加到 claude_desktop_config.json 的“mcpServers”部分:
Docker
- 在 macOS 上运行 Docker 时,如果 MySQL 服务运行在主机网络上(例如 localhost),请使用
host.docker.internal - 凭据通过环境变量
MYSQL_USER和MYSQL_PASSWORD传递
{
"mcpServers": {
"mysql": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e", "MYSQL_USER=myuser",
"-e", "MYSQL_PASSWORD=mypassword",
"mochoa/mcp-mysql"
]
}
}
}
注意:如果希望在启动时自动连接,仍可将连接字符串作为最后一个参数提供:"args": [..., "mochoa/mcp-mysql", "host.docker.internal:3306/mydb"]。
NPX
{
"mcpServers": {
"mysql": {
"command": "npx",
"args": [
"-y",
"@marcelo-ochoa/server-mysql"
],
"env": {
"MYSQL_USER": "myuser",
"MYSQL_PASSWORD": "mypassword"
}
}
}
}
将 /mydb 替换为你的数据库名称。
注意:请将以下占位符替换为实际值:
- 将
myuser和mypassword替换为你的 MySQL 凭据 - 将
localhost:3306替换为你的 MySQL 服务主机和端口 - 将
mydb替换为你的数据库名称
在 VS Code 中使用
如需手动安装,请将以下 JSON 代码块添加到 VS Code 的“用户设置(JSON)”文件中。你可以按下 Ctrl + Shift + P 并输入 Preferences: Open User Settings (JSON) 来打开该文件。
也可以将其添加到工作区中的 .vscode/mcp.json 文件。这样便可与他人共享此配置。
请注意,
.vscode/mcp.json文件中不需要mcp键。
Docker
注意:使用 Docker 连接到主机上的 MySQL 服务时,请在连接 URL 中使用 host.docker.internal,而不是 localhost。
{
"mcp": {
"inputs": [
{
"type": "promptString",
"id": "mysql_user",
"description": "MySQL username"
},
{
"type": "promptString",
"id": "mysql_password",
"description": "MySQL password",
"password": true
}
],
"servers": {
"mysql": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e", "MYSQL_USER=${input:mysql_user}",
"-e", "MYSQL_PASSWORD=${input:mysql_password}",
"mochoa/mcp-mysql"
]
}
}
}
}
注意:如果希望在启动时连接,可以为 mysql_url 添加一个输入,并将其附加到 args。
NPX
{
"mcp": {
"inputs": [
{
"type": "promptString",
"id": "mysql_user",
"description": "MySQL username"
},
{
"type": "promptString",
"id": "mysql_password",
"description": "MySQL password",
"password": true
}
],
"servers": {
"mysql": {
"command": "npx",
"args": [
"-y",
"@marcelo-ochoa/server-mysql"
],
"env": {
"MYSQL_USER": "${input:mysql_user}",
"MYSQL_PASSWORD": "${input:mysql_password}"
}
}
}
}
}
在 Antigravity Code Editor 中使用
将以下内容放入 ~/.gemini/antigravity/mcp_config.json
{
"mcpServers": {
"mysql": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"MYSQL_USER=myuser",
"-e",
"MYSQL_PASSWORD=mypassword",
"mochoa/mcp-mysql",
"host.docker.internal:3306/mydb"
]
}
},
"inputs": []
}
Performance Schema
为使用 mysql-awr 工具获得最佳性能监控效果,请确保已在 MySQL 配置中启用 Performance Schema:
[mysqld]
performance_schema = ON
Performance Schema 可提供详细的查询统计信息和性能指标。如果未启用,仍会生成 AWR 报告,但查询级统计信息有限。
构建
Docker:
docker build -t mochoa/mcp-mysql -f src/mysql/Dockerfile .
NPM:
cd src/mysql
npm install
npm run build
示例提示词
可尝试以下 MySQL MCP 服务示例提示词:
- 使用 MySQL MCP 服务连接到 host.docker.internal:3306/mydb,用户名为 root,密码为 password123
- 查询当前数据库中的所有表
- 获取
users表的统计信息 - 解释以下语句的执行计划:SELECT * FROM users WHERE email = '[email protected]'
- 使用 mysql-awr 生成性能报告
- 根据 AWR 报告,你会建议进行哪些优化?
演示
请参阅 演示,了解如何与 Claude Desktop、Docker AI、Gemini CLI 和 Antigravity Code Editor 配合使用。
MySQL AWR 实战
请参阅 MySQL AWR 实战,查看 mysql-awr 工具生成的性能报告示例,其中重点展示了具体的优化机会。
更新日志
请参阅更新日志,了解变更历史。
来源
与往常一样,此扩展的代码托管在 GitHub,欢迎提出修改建议并参与贡献。
📜 许可证
对于新贡献,本项目采用 Apache License 2.0 许可;现有代码采用 MIT 许可。详情请参阅 LICENSE 文件。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。