关于 MySQL MCP Server
MySQL MCP Server 向 AI 助手和其他 MCP 客户端开放部分 MySQL 操作,支持查询、插入数据和检查表结构,并通过参数化查询及自动限制 SELECT 结果提供防护。
主要功能
- 01执行 SELECT、INSERT、SHOW 和 DESCRIBE
- 02使用参数化方式插入数据
- 03列出表并检查结构
- 04参数化查询和自动结果限制
- 05连接池管理
适用场景
- 01从 MCP 客户端查询 MySQL 数据
- 02使用提供的值插入记录
- 03查看可用表及其结构
MCP 相关
该服务将 MySQL 操作作为 MCP 工具开放,并将数据库元数据和表结构提供为资源。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
还没有获取到工具列表
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
MySQL MCP 服务
一个 Model Context Protocol(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 注入防护:使用参数化查询
- 自动 LIMIT:为 SELECT 查询添加 LIMIT 子句,防止大量数据导出
- 连接池:高效管理数据库连接
安装
npm install mysql-mcp-server
配置
可使用环境变量配置此服务:
| 变量 | 默认值 | 描述 |
|---|---|---|
MYSQL_HOST | localhost | MySQL 服务主机名 |
MYSQL_PORT | 3306 | MySQL 服务端口 |
MYSQL_USER | root | MySQL 用户名 |
MYSQL_PASSWORD | (empty) | MySQL 密码 |
MYSQL_DB | mysql | 默认数据库名称 |
MYSQL_TIMEZONE | +00:00 | MySQL 时区 |
与 MCP 客户端搭配使用
Claude Desktop
将以下配置添加到 Claude Desktop 配置文件:
macOS:~/Library/Application Support/Claude/claude_desktop_config.json
Windows:%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 Inspector 测试此服务:
npm run inspector
这将启动 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": "[email protected]"}
安全注意事项
此服务在设计时充分考虑了安全性:
- 以读取操作为主:仅允许 SELECT、INSERT、SHOW 和 DESCRIBE 操作
- 不允许破坏性操作:明确禁止 UPDATE 和 DELETE
- 参数化查询:所有用户输入均经过适当转义
- 连接数限制:使用连接池防止资源耗尽
- 查询限制:自动添加 LIMIT 子句,防止大量数据导出
贡献
欢迎贡献!欢迎提交 Pull Request。
许可证
MIT 许可证——详情请参阅 LICENSE 文件。
相关资源
评论
支持 Markdown
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。