MySQL数据库AI操作工具
启用AI模型通过标准化接口执行MySQL数据库操作,支持安全连接、查询执行和全面的模式管理。
服务介绍
@enemyrr/mcp-mysql-server
这是一个提供 MySQL 数据库操作的 Model Context Protocol 服务器。该服务器通过标准化接口使 AI 模型能够与 MySQL 数据库进行交互。
在 Cursor IDE 中安装与设置
通过 Smithery 安装
要通过 Smithery 自动为 Claude Desktop 安装 MySQL 数据库服务器:
npx -y @smithery/cli install @enemyrr/mcp-mysql-server --client claude
手动安装
- 克隆并构建项目:
git clone https://github.com/enemyrr/mcp-mysql-server.git
cd mcp-mysql-server
npm install
npm run build
- 在 Cursor IDE 设置中添加服务器:
- 打开命令面板(Cmd/Ctrl + Shift + P)
- 搜索 "MCP: Add Server"
- 填写以下字段:
- 名称:
mysql - 类型:
command - 命令:
node /absolute/path/to/mcp-mysql-server/build/index.js
- 名称:
注意:请将
/absolute/path/to/替换为你实际克隆和构建项目的路径。
数据库配置
你可以通过以下三种方式配置数据库连接:
- 在 .env 文件中使用数据库 URL(推荐):
DATABASE_URL=mysql://user:password@host:3306/database
- 在 .env 文件中使用单独的参数:
DB_HOST=localhost
DB_USER=your_user
DB_PASSWORD=your_password
DB_DATABASE=your_database
- 通过工具直接连接:
use_mcp_tool({
server_name: "mysql",
tool_name: "connect_db",
arguments: {
url: "mysql://user:password@host:3306/database"
// OR
workspace: "/path/to/your/project" // Will use project's .env
// OR
host: "localhost",
user: "your_user",
password: "your_password",
database: "your_database"
}
});
可用工具
1. connect_db
使用 URL、工作区路径或直接凭据连接到 MySQL 数据库。
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", "john@example.com"]
}
});
4. list_tables
列出已连接数据库中的所有表。
use_mcp_tool({
server_name: "mysql",
tool_name: "list_tables"
});
5. describe_table
获取特定表的结构。
use_mcp_tool({
server_name: "mysql",
tool_name: "describe_table",
arguments: {
table: "users"
}
});
6. create_table
创建具有指定字段和索引的新表。
use_mcp_tool({
server_name: "mysql",
tool_name: "create_table",
arguments: {
table: "users",
fields: [
{
name: "id",
type: "int",
autoIncrement: true,
primary: true
},
{
name: "email",
type: "varchar",
length: 255,
nullable: false
}
],
indexes: [
{
name: "email_idx",
columns: ["email"],
unique: true
}
]
}
});
7. add_column
向现有表中添加新列。
use_mcp_tool({
server_name: "mysql",
tool_name: "add_column",
arguments: {
table: "users",
field: {
name: "phone",
type: "varchar",
length: 20,
nullable: true
}
}
});
特性
- 多种连接方法(URL、工作区、直接连接)
- 安全连接处理及自动清理
- 支持带查询参数的预处理语句
- 模式管理工具
- 全面的错误处理和验证
- TypeScript 支持
- 自动工作区检测
安全性
- 使用预处理语句防止 SQL 注入
- 通过环境变量支持安全密码处理
- 在执行前验证查询
- 完成后自动关闭连接
错误处理
服务器提供详细的错误信息,包括:
- 连接失败
- 无效的查询或参数
- 缺少配置
- 数据库错误
- 模式验证错误
贡献
欢迎贡献!请随时提交 Pull Request 至 https://github.com/enemyrr/mcp-mysql-server
许可证
MIT