使用说明
MySQL MCP服务器
A. 模型上下文协议(MCP) 为AI助手和其他MCP客户端提供安全MySQL数据库操作的服务器。
特性
🛠️ 工具
- execute_query -执行安全的SQL查询(SELECT、INSERT、SHOW、DESCRIBE)
- get_table_info -获取详细的表结构信息
- insert_data -方便的数据插入和自动参数化
- list_tables -列出数据库中的所有表
📊 资源
- 数据库信息 (
mysql://database/info)-数据库元数据和表列表 - 表结构 (
mysql://table/{table_name})-详细的表架构信息
🔒 安全功能
- 有限运营:仅允许安全操作(SELECT、INSERT、SHOW、DESCRIBE)
- SQL注入保护:使用参数化查询
- 自动限制:在SELECT查询中添加LIMIT子句以防止大数据转储
- 连接池:高效的数据库连接管理
安装
npm install mysql-mcp-server
配置
可以使用环境变量配置服务器:
| 变量 | 默认值 | 描述 |
|---|---|---|
MYSQL_HOST |
localhost |
MySQL服务器主机名 |
MYSQL_PORT |
3306 |
MySQL服务器端口 |
MYSQL_USER |
root |
MySQL用户名 |
MYSQL_PASSWORD |
(空) | MySQL密码 |
MYSQL_DB |
mysql |
默认数据库名称 |
MYSQL_TIMEZONE |
+00:00 |
MySQL时区 |
与MCP客户端一起使用
克劳德桌面
添加到您的Claude Desktop配置文件中:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
视窗: %APPDATA%/Claude/claude_desktop_config.json
{
"mcpServers": {
"mysql": {
"command": "npx",
"args": ["mysql-mcp-server"],
"env": {
"MYSQL_HOST": "your-mysql-host",
"MYSQL_PORT": "3306",
"MYSQL_USER": "your-username",
"MYSQL_PASSWORD": "your-password",
"MYSQL_DB": "your-database"
}
}
}
}
其他MCP客户端
对于其他MCP客户端,请使用具有stdio传输的服务器:
npx mysql-mcp-server
发展
先决条件
- Node.js 18+
- TypeScript
- 访问MySQL数据库
设置
- 克隆存储库:
git clone https://github.com/your-username/mysql-mcp-server.git
cd mysql-mcp-server
- 安装依赖项:
npm install
- 设置环境变量:
cp .env.example .env
# Edit .env with your database configuration
- 构建服务器:
npm run build
开发命令
# Build the server
npm run build
# Watch mode for development
npm run watch
# Debug with MCP Inspector
npm run inspector
测试
您可以使用MCP检查器测试服务器:
npm run inspector
这将启动检查器并提供一个URL,以便在浏览器中测试服务器。
示例用法
通过MCP客户端连接后,您可以:
-
列出所有表格:
Use the list_tables tool -
获取表结构:
Use get_table_info with table_name: "users" -
查询数据:
Use execute_query with sql: "SELECT * FROM users LIMIT 10" -
插入数据:
Use insert_data with table_name: "users" and data: {"name": "John", "email": "john@example.com"}
安全考虑
此服务器的设计考虑了安全性:
- 主要阅读操作:只允许SELECT、INSERT、SHOW和DESCRIBE操作
- 无破坏性操作:明确禁止更新和删除
- 参数化查询:所有用户输入都已正确转义
- 连接限制:使用连接池来防止资源耗尽
- 查询限制:自动LIMIT子句防止大数据转储
贡献
欢迎投稿!请随时提交拉取请求。
许可证
MIT许可证-有关详细信息,请参阅许可证文件。