内容
# MySQL MCP 服务器
一款[模型上下文协议(MCP)](https://modelcontextprotocol.io/)服务器,连接Claude(或任何MCP兼容的客户端)到MySQL数据库。它提供了用于模式检查和运行读写查询的工具,通过stdio传输。
## 工具列表
| 工具 | 描述 |
|------|-------------|
| `select_mysql_version` | 返回连接的MySQL服务器版本 |
| `list_tables` | 列出连接数据库中的所有表 |
| `describe_table` | 显示给定表的列、类型和约束 |
| `query` | 运行可选的`?`占位符参数的只读`SELECT`查询 |
| `mutate` | 运行`INSERT`、`UPDATE`或`DELETE`语句,可选参数 |
> **注意:** `mutate`拒绝`SELECT`语句 — 使用`query`进行读取。
## 要求
- Node.js 18+
- 运行中的MySQL实例
## 快速安装(推荐)
### 1. 下载插件
前往[发布页面](https://github.com/iamdylanngo/mysql-mcp-server/releases)并下载最新的`.mcpb`文件(例如`mysql-mcp-server-v1.0.1.mcpb`)。
### 2. 安装插件
**通过Claude Code CLI:**
```bash
claude plugin install mysql-mcp-server-v1.0.1.mcpb
```
**通过Claude Desktop:**
双击`.mcpb`文件 — Claude Desktop将提示您安装它。
### 3. 配置数据库连接
安装后,Claude将提示您填写连接详细信息:
| 字段 | 默认值 | 描述 |
|-------|---------|-------------|
| 数据库主机 | `127.0.0.1` | MySQL主机名或IP地址 |
| 数据库端口 | `3306` | MySQL端口 |
| 数据库用户 | `root` | MySQL用户名 |
| 数据库密码 | _(空)_ | MySQL密码 |
| 数据库名称 | _(必填)_ | 连接到的数据库 |
| 连接池限制 | `10` | 最大并发连接数 |
您可以在Claude的插件设置中的**MySQL MCP服务器**下随时更新这些设置。
---
## 手动设置(从源代码)
**1. 克隆并安装依赖项**
```bash
git clone https://github.com/iamdylanngo/mysql-mcp-server
cd mcp
npm install
```
**2. 配置环境**
复制示例环境文件并填写数据库凭证:
```bash
cp .env.sample .env
```
```env
DB_HOST=127.0.0.1
DB_PORT=3306
DB_USER=root
DB_PASSWORD=root
DB_NAME=mydb
DB_POOL_LIMIT=10
```
**3. 构建**
```bash
npm run build
```
## 使用
### 直接运行
```bash
node --env-file=.env build/index.js
```
### 使用MCP检查器检查
```bash
npm run mcp
```
### 连接到Claude Desktop
将以下内容添加到您的`claude_desktop_config.json`:
```json
{
"mcpServers": {
"mysql": {
"command": "node",
"args": ["/[absolute-path]/mysql-mcp-server/build/index.js"],
"env": {
"DB_HOST": "127.0.0.1",
"DB_PORT": "3306",
"DB_USER": "root",
"DB_PASSWORD": "your_password",
"DB_NAME": "your_database",
"DB_POOL_LIMIT": "10"
}
}
}
}
```
## 环境变量
| 变量 | 默认值 | 描述 |
|----------|---------|-------------|
| `DB_HOST` | `localhost` | MySQL主机 |
| `DB_PORT` | `3306` | MySQL端口 |
| `DB_USER` | `root` | MySQL用户 |
| `DB_PASSWORD` | _(空)_ | MySQL密码 |
| `DB_NAME` | `mydb` | 数据库名称 |
| `DB_POOL_LIMIT` | `10` | 连接池大小 |
## 技术栈
- [MCP SDK](https://github.com/modelcontextprotocol/typescript-sdk) — MCP服务器框架
- [mysql2](https://github.com/sidorares/node-mysql2) — 支持Promise的MySQL客户端
- [Zod](https://zod.dev/) — 输入模式验证
- TypeScript
## 许可证
[MIT](./LICENSE)