MCP MySQL服务器
A. 模型上下文协议(MCP) 将AI代理(Cursor、Claude Desktop等)连接到MySQL数据库的服务器,通过自然语言实现模式探索、数据查询和SQL执行。
中文文档: README.zh.md
特性
| 工具 | 说明 |
|---|---|
list_tables | 列出数据库中的所有表 |
describe_table | 查看带有列类型和注释的表架构 |
query | 执行只读查询(SELECT/SHOW/DESCRIBE/EXPLAIN) |
execute_sql | 执行写操作(INSERT/UPDATE/DELETE/DDL),在只读模式下禁用 |
get_table_indexes | 显示表的所有索引 |
get_create_table | 获取CREATE TABLE语句 |
get_database_info | 获取数据库概述(版本、大小、表数) |
安装
pip install mcp-mysql-explorer游标中的用法
打开 光标设置->MCP,添加新服务器。配置数据库连接的三种方法:
选项1:命令行参数(推荐)
{
"mcpServers": {
"mysql": {
"command": "mcp-mysql-explorer",
"args": [
"--host", "your-mysql-host",
"--port", "3306",
"--user", "your-user",
"--password", "your-password",
"--database", "your-database"
]
}
}
}显式启用写入模式:
{
"mcpServers": {
"mysql": {
"command": "mcp-mysql-explorer",
"args": [
"--host", "your-mysql-host",
"--database", "your-database",
"--allow-write"
]
}
}
}选项2:环境变量
{
"mcpServers": {
"mysql": {
"command": "mcp-mysql-explorer",
"env": {
"MYSQL_HOST": "your-mysql-host",
"MYSQL_PORT": "3306",
"MYSQL_USER": "your-user",
"MYSQL_PASSWORD": "your-password",
"MYSQL_DATABASE": "your-database",
"MYSQL_READ_ONLY": "true"
}
}
}
}选项3: .env 文件
创建一个 .env 工作目录中的文件:
MYSQL_HOST=your-mysql-host
MYSQL_PORT=3306
MYSQL_USER=your-user
MYSQL_PASSWORD=your-password
MYSQL_DATABASE=your-database
MYSQL_READ_ONLY=true然后简单地说:
{
"mcpServers": {
"mysql": {
"command": "mcp-mysql-explorer"
}
}
}优先级:命令行参数>环境变量> .env 文件在Claude Desktop中的使用
添加到您的 claude_desktop_config.json:
{
"mcpServers": {
"mysql": {
"command": "mcp-mysql-explorer",
"args": [
"--host", "your-mysql-host",
"--user", "your-user",
"--password", "your-password",
"--database", "your-database"
]
}
}
}手动运行
# With command-line arguments
mcp-mysql-explorer --host localhost --user root --password secret --database mydb
# Explicitly allow write operations
mcp-mysql-explorer --host localhost --user root --password secret --database mydb --allow-write
# With .env file
mcp-mysql-explorer
# As a Python module
python -m mcp_mysql_explorer --host localhost --database mydb测试
# Run unit tests (no real database needed)
python scripts/run_tests.py# Optional manual smoke check (reads credentials from env only)
# Required env: MYSQL_HOST, MYSQL_PORT, MYSQL_USER, MYSQL_PASSWORD, MYSQL_DATABASE
python scripts/manual_smoke_check.py --mode both安全须知
- 这
query该工具只允许SELECT/SHOW/DESCRIBE/EXPLAIN语句。 - 默认情况下启用只读模式(
MYSQL_READ_ONLY=true). - 要启用写入,请设置
MYSQL_READ_ONLY=false或通过--allow-write. - 这
execute_sql只有禁用只读模式时,该工具才能运行写操作。 - 默认情况下,查询结果的上限为1000行。
- 表/列标识符被回溯包装以防止SQL注入。
许可证
麻省理工学院
