使用说明
MCP服务器MySQL
提供MySQL数据库操作的模型上下文协议(MCP)服务器。该服务器使LLM能够通过标准化协议与MySQL数据库进行交互。
特性
- 数据库管理:创建、删除、列出和切换数据库
- 表操作:创建、更改、删除、描述和列出表
- 数据查询:执行SELECT查询并检索结果
- 数据修改:执行INSERT、UPDATE、DELETE语句
- 索引管理:创建和删除索引
安装
npm install
npm run build
配置
设置数据库连接的环境变量:
export MYSQL_HOST=localhost
export MYSQL_PORT=3306
export MYSQL_USER=root
export MYSQL_PASSWORD=your-password
export MYSQL_DATABASE=your-database # optional
权限控制
控制允许的写入操作(默认为 true):
export MYSQL_ALLOW_INSERT=true # Set to "false" to disable INSERT
export MYSQL_ALLOW_UPDATE=true # Set to "false" to disable UPDATE
export MYSQL_ALLOW_DELETE=false # Set to "false" to disable DELETE
或者使用 connect 工具在运行时指定连接参数。
支持的AI应用程序
此MCP服务器可以与支持模型上下文协议(MCP)的任何应用程序一起使用:
- 克劳德桌面版 -Anthropic的官方桌面应用程序
- 克劳德代码 -Anthropic面向开发人员的官方CLI工具
- 克莱恩 -AI编码助手VS代码扩展
- 泽德 -内置AI的高性能代码编辑器
- 任何与MCP兼容的应用程序 -MCP是Anthropic开发的一种开放协议
使用Claude Desktop
使用npx(推荐)
添加到您的 claude_desktop_config.json:
{
"mcpServers": {
"mysql": {
"command": "npx",
"args": ["-y", "@nilsir/mcp-server-mysql"],
"env": {
"MYSQL_HOST": "localhost",
"MYSQL_PORT": "3306",
"MYSQL_USER": "root",
"MYSQL_PASSWORD": "your-password",
"MYSQL_DATABASE": "your-database",
"MYSQL_ALLOW_INSERT": "true",
"MYSQL_ALLOW_UPDATE": "true",
"MYSQL_ALLOW_DELETE": "false"
}
}
}
}
使用本地安装
{
"mcpServers": {
"mysql": {
"command": "node",
"args": ["/absolute/path/to/mcp-server-mysql/dist/index.js"],
"env": {
"MYSQL_HOST": "localhost",
"MYSQL_PORT": "3306",
"MYSQL_USER": "root",
"MYSQL_PASSWORD": "your-password",
"MYSQL_DATABASE": "your-database",
"MYSQL_ALLOW_INSERT": "true",
"MYSQL_ALLOW_UPDATE": "true",
"MYSQL_ALLOW_DELETE": "false"
}
}
}
}
可用工具
| 工具 | 说明 |
|---|---|
connect |
连接到MySQL数据库 |
query |
执行SELECT查询 |
execute |
执行INSERT/UPDATE/DELETE查询 |
list_databases |
列出所有数据库 |
list_tables |
列出数据库中的表 |
describe_table |
获取表结构 |
create_table |
创建新表 |
alter_table |
修改表结构 |
drop_table |
放下一张桌子 |
create_database |
创建新数据库 |
drop_database |
删除数据库 |
use_database |
切换到数据库 |
create_index |
创建索引 |
drop_index |
删除索引 |
例子
查询数据
Use the query tool with sql: "SELECT * FROM users WHERE active = ?"
and params: [true]
创建表
Use the create_table tool with:
- table: "users"
- columns: [
{"name": "id", "type": "INT", "primaryKey": true, "autoIncrement": true},
{"name": "email", "type": "VARCHAR(255)", "nullable": false},
{"name": "created_at", "type": "TIMESTAMP", "default": "CURRENT_TIMESTAMP"}
]
插入数据
Use the execute tool with sql: "INSERT INTO users (email) VALUES (?)"
and params: ["user@example.com"]
许可证
麻省理工学院