@enemyr/mcp-mysql服务器
](https://smithery.ai/server/@enemyrr/mcp-mysql-server)
提供MySQL数据库操作的模型上下文协议服务器。该服务器使AI模型能够通过标准化的接口与MySQL数据库进行交互。
Cursor IDE的安装和设置
通过Smithery安装
通过以下方式自动安装克劳德桌面版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:添加服务器” - 填写以下字段: - 姓名: 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.查询
使用可选的准备语句参数执行SELECT查询。
use_mcp_tool({
server_name: "mysql",
tool_name: "query",
arguments: {
sql: "SELECT * FROM users WHERE id = ?",
params: [1]
}
});3.执行
使用可选的准备语句参数执行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.列表表
列出连接数据库中的所有表。
use_mcp_tool({
server_name: "mysql",
tool_name: "list_tables"
});5.描述表
获取特定表的结构。
use_mcp_tool({
server_name: "mysql",
tool_name: "describe_table",
arguments: {
table: "users"
}
});6.创建表
使用指定的字段和索引创建新表。
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.添加_列
向现有表添加新列。
use_mcp_tool({
server_name: "mysql",
tool_name: "add_column",
arguments: {
table: "users",
field: {
name: "phone",
type: "varchar",
length: 20,
nullable: true
}
}
});8.交替柱
修改现有列(类型、可空、默认或重命名)。
use_mcp_tool({
server_name: "mysql",
tool_name: "alter_column",
arguments: {
table: "users",
column: "phone",
type: "varchar",
length: 50,
nullable: false,
newName: "phone_number" // optional: rename column
}
});9.drop_column
从表中删除列。
use_mcp_tool({
server_name: "mysql",
tool_name: "drop_column",
arguments: {
table: "users",
column: "phone_number"
}
});10.下拉式桌子
删除表(需要确认)。
use_mcp_tool({
server_name: "mysql",
tool_name: "drop_table",
arguments: {
table: "old_table",
confirm: true
}
});11.truncate_table
从表中删除所有行(需要确认)。
use_mcp_tool({
server_name: "mysql",
tool_name: "truncate_table",
arguments: {
table: "logs",
confirm: true
}
});12.列表_数据库
列出服务器上所有可访问的数据库。
13.获取索引
列出表上的所有索引。
use_mcp_tool({
server_name: "mysql",
tool_name: "get_indexes",
arguments: {
table: "users"
}
});14.获取外汇
列出表的所有外键关系。
use_mcp_tool({
server_name: "mysql",
tool_name: "get_foreign_keys",
arguments: {
table: "orders"
}
});MCP资源
将数据库架构作为资源浏览:
| URI | 描述 |
|---|---|
mysql://schema | 数据库概述(表数、大小) |
mysql://tables | 列出所有包含元数据的表 |
mysql://tables/{name} | 表详细信息(列、索引、FK) |
mysql://tables/{name}/columns | 列定义 |
mysql://tables/{name}/indexes | 指数定义 |
mysql://tables/{name}/sample | 表格中的5行示例 |
MCP提示
常见操作的预构建提示:
| 提示 | 描述 |
|---|---|
generate-select | 为表构建SELECT查询 |
generate-insert | 生成INSERT模板 |
generate-update | 生成UPDATE模板 |
explain-schema | 自然语言模式解释 |
suggest-indexes | 表的索引建议 |
特性
- 14个数据库工具 用于查询、模式管理等
- MCP资源 用于浏览数据库模式
- MCP提示 用于生成SQL查询
- 多种连接方式(URL、工作区、直接)
- 通过自动清理实现安全的连接处理
- 查询参数的准备语句支持
- 全面的错误处理和验证
- TypeScript支持
安全
- 使用预处理语句防止SQL注入
- 通过环境变量支持安全密码处理
- 执行前验证查询
- 完成后自动关闭连接
错误处理
服务器为以下对象提供详细的错误消息:
- 连接失败
- 查询或参数无效
- 缺少配置
- 数据库错误
- 架构验证错误
贡献
欢迎投稿!请随时向提交拉取请求https://github.com/enemyrr/mcp-mysql-server
许可证
麻省理工学院
