内容
# MySQL MCP Server
让 AI 助手(Claude、VS Code、OpenCode 等)通过 MCP 协议直接连接和操作 MySQL 数据库。
## 快速开始
```bash
# 1. 克隆本仓库
git clone https://github.com/panda-doctor/MySQL-MCP.git
cd MySQL-MCP
# 2. 启动你的 MCP 客户端(Claude Code 或其他)
claude
```
MCP 服务器会自动启动,AI 即可查询你的 MySQL 数据库。
## 前置依赖
| 依赖 | 说明 |
|---|---|
| **MySQL 数据库** | 本地运行的 MySQL 实例(在 `.mcp.json` 中配置目标库名) |
| **mysql_mcp_server** | MySQL MCP 驱动,负责把 MCP 协议翻译为 MySQL 协议 |
| **MCP 客户端** | Claude Code / VS Code + GitHub Copilot / OpenCode 等 |
### 安装 mysql_mcp_server
```bash
# 方式一:pip 安装(推荐)
pip install mysql-mcp-server
# 方式二:npm 安装
npm install -g @anthropic/mysql-mcp-server
# 验证安装
mysql_mcp_server --version
```
## 配置文件说明
### `.mcp.json` — MCP 服务器配置(示例)
```json
{
"mcpServers": {
"mysql": {
"type": "stdio",
"command": "mysql_mcp_server",
"args": [],
"env": {
"MYSQL_HOST": "localhost",
"MYSQL_PORT": "3306",
"MYSQL_USER": "root",
"MYSQL_PASSWORD": "你的数据库密码",
"MYSQL_DATABASE": "你的数据库名"
}
}
}
}
```
> ⚠️ **安全提醒**:`.mcp.json` 中的密码为明文。建议将 `MYSQL_PASSWORD` 改为从环境变量读取,或确保仓库为私有仓库。
### `.claude/settings.local.json` — Claude 权限配置
配置了 `mysql_mcp_server` 的 SQL 执行权限,以及 `playwright-cli` 浏览器自动化技能。
## 可用工具
连接成功后,AI 可以调用以下数据库工具:
### 1. 执行 SQL 语句
```sql
-- 查询数据
SELECT * FROM users LIMIT 10;
-- 插入数据
INSERT INTO posts (title, content) VALUES ('Hello', 'World');
-- 更新数据
UPDATE users SET name = '新名称' WHERE id = 1;
-- 建表、删表等 DDL 操作
CREATE TABLE test (id INT PRIMARY KEY);
```
### 2. 查看表结构
```sql
-- 查看当前数据库所有表
SHOW TABLES;
-- 查看单表结构
DESCRIBE users;
-- 跨数据库查看
DESCRIBE other_database.table_name;
```
### 3. 预览数据
```sql
SELECT * FROM users LIMIT 5;
SELECT COUNT(*) FROM users;
```
## 使用示例
### 场景一:探索数据库
> **你:** "查看当前数据库有哪些表"
>
> **Claude:** 执行 `SHOW TABLES`,返回表列表
>
> **你:** "看看 users 表的结构和数据"
>
> **Claude:** 执行 `DESCRIBE users` + `SELECT * FROM users LIMIT 5`
### 场景二:数据分析
> **你:** "查询本月注册用户数量"
>
> **Claude:**
> ```sql
> SELECT COUNT(*) FROM users
> WHERE created_at >= DATE_FORMAT(CURDATE(), '%Y-%m-01');
> ```
### 场景三:数据库管理
> **你:** "给 posts 表增加一个 category 字段"
>
> **Claude:**
> ```sql
> ALTER TABLE posts ADD COLUMN category VARCHAR(50);
> ```
## 跨数据库查询
如果需要访问其他数据库,使用 `数据库名.表名` 的格式:
```sql
SELECT * FROM other_db.table_name;
```
不需要先执行 `USE other_db;`。
## 多平台使用
### Claude Code(命令行)
```bash
# 在项目目录启动
cd MySQL-MCP
claude
# 或在其他目录通过 --mcp 指定配置
claude --mcp .mcp.json
```
### VS Code + GitHub Copilot
1. 在 VS Code 设置中配置 MCP 服务器指向 `.mcp.json`
2. 在 Chat 面板中即可对数据库提问
### OpenCode / Cursor / Windsurf
参考各工具文档,导入本项目的 `.mcp.json` 配置文件。
## 相关技能
本仓库附带了一个 `playwright-cli` 技能(位于 `.claude/skills/playwright-cli/`),支持浏览器自动化操作,可用于配合数据库进行端到端测试。
## 常见问题
**Q:连接提示 "Access denied"**
检查 `.mcp.json` 中的用户名和密码是否正确,以及 MySQL 是否允许远程连接。
**Q:mysql_mcp_server 找不到**
确保已正确安装并处于 PATH 环境变量中。也可以将命令改为绝对路径。
**Q:只想用环境变量管理密码**
在系统环境变量中设置 `MYSQL_PASSWORD`,然后在 `.mcp.json` 的 `env` 中引用:
```json
"env": {
"MYSQL_PASSWORD": "${MYSQL_PASSWORD}"
}
```