关于 Mcp Mysql Server
mcp-mysql-server 是一个提供 MySQL 数据库操作的 MCP 服务,使 AI 模型可通过标准化接口查询和修改数据库。它面向需要让 AI 客户端访问 MySQL 的开发者,并提供参数化查询与 EXPLAIN 分析。
主要功能
- 01连接 MySQL 数据库
- 02SELECT 与 INSERT/UPDATE/DELETE 执行
- 03预处理语句参数支持
- 04列出表与查看表结构
- 05SHOW 语句与 EXPLAIN 执行计划分析
适用场景
- 01让 AI 客户端查询 MySQL 中的业务数据
- 02分析慢查询的执行计划
- 03查看数据库状态与变量配置
MCP 相关
该项目是一个 MCP 服务,向客户端暴露连接、查询、执行、表结构查看、SHOW 和 EXPLAIN 等工具。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
7收录的工具列表 · 更新于 3 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| host | string | 是 | 数据库主机 |
| user | string | 是 | 数据库用户 |
| password | string | 是 | 数据库密码 |
| database | string | 是 | 数据库名称 |
| port | number | 否 | 数据库端口(可选) |
详细介绍
@fhuang/mcp-mysql-server
[English | 中文文档]
中文文档请参阅 README.zh-CN.md
一个提供 MySQL 数据库操作的 Model Context Protocol 服务。此服务可让 AI 模型通过标准化接口与 MySQL 数据库交互。
安装
通过 Smithery 安装
通过 Smithery 自动为 Claude Desktop 安装 MySQL 服务:
npx -y @smithery/cli install @fhuang/mcp-mysql-server --client claude
手动安装
npx @fhuang/mcp-mysql-server
配置
在 MCP 设置配置文件中,需要设置以下环境变量:
建议使用
{
"mcpServers": {
"mysql": {
"command": "npx",
"args": ["-y", "@fhuang/mcp-mysql-server", "mysql://user:password@localhost:port/database"],
}
}
}
{
"mcpServers": {
"mysql": {
"command": "npx",
"args": ["-y", "@fhuang/mcp-mysql-server"],
"env": {
"MYSQL_HOST": "your_host",
"MYSQL_USER": "your_user",
"MYSQL_PASSWORD": "your_password",
"MYSQL_DATABASE": "your_database"
}
}
}
}
运行 evals
evals 包会加载一个 MCP 客户端,然后运行 index.ts 文件,因此测试之间无需重新构建。可以在 npx 命令前添加环境变量来加载它们。完整文档请参阅此处。
OPENAI_API_KEY=your-key npx mcp-eval src/evals/evals.ts src/index.ts
可用工具
1. connect_db
使用提供的凭据建立与 MySQL 数据库的连接。
use_mcp_tool({
server_name: "mysql",
tool_name: "connect_db",
arguments: {
host: "localhost",
user: "your_user",
password: "your_password",
database: "your_database"
}
});
2. query
执行 SELECT 查询,可选用预处理语句参数。
use_mcp_tool({
server_name: "mysql",
tool_name: "query",
arguments: {
sql: "SELECT * FROM users WHERE id = ?",
params: [1]
}
});
3. execute
执行 INSERT、UPDATE 或 DELETE 查询,可选用预处理语句参数。
use_mcp_tool({
server_name: "mysql",
tool_name: "execute",
arguments: {
sql: "INSERT INTO users (name, email) VALUES (?, ?)",
params: ["John Doe", "[email protected]"]
}
});
4. list_tables
列出已连接数据库中的所有表。
use_mcp_tool({
server_name: "mysql",
tool_name: "list_tables",
arguments: {}
});
5. describe_table
获取指定表的结构。
use_mcp_tool({
server_name: "mysql",
tool_name: "describe_table",
arguments: {
table: "users"
}
});
6. show_statement
执行 SHOW 语句(如 SHOW STATUS、SHOW VARIABLES 等)。
use_mcp_tool({
server_name: "mysql",
tool_name: "show_statement",
arguments: {
sql: "SHOW VARIABLES"
}
});
7. explain
使用 EXPLAIN 分析 SQL 查询性能。返回执行计划详情,包括访问类型、检查的行数和可能的优化方案。
use_mcp_tool({
server_name: "mysql",
tool_name: "explain",
arguments: {
sql: "SELECT * FROM users WHERE id = ?"
}
});
功能
- 安全处理连接并自动清理
- 支持使用预处理语句传递查询参数
- 全面的错误处理和验证
- 支持 TypeScript
- 自动管理连接
安全性
- 使用预处理语句防止 SQL 注入
- 支持通过环境变量安全处理密码
- 执行前验证查询
- 操作完成后自动关闭连接
错误处理
此服务针对常见问题提供详细的错误消息:
- 连接失败
- 无效查询
- 缺少参数
- 数据库错误
贡献
欢迎贡献!请随时向 https://github.com/huangfeng19820712/mcp-mysql-server 提交 Pull Request。
许可证
MIT
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。