@xingyuchen/mysql-mcp-server 3.0.0 → 3.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,14 +1,14 @@
1
- # MySQL MCP Server 3.0 🚀
1
+ # MySQL MCP Server 3.1 🚀
2
2
 
3
- 一个功能强大且易用的MySQL数据库MCP(Model Context Protocol)服务器,让你的AI助手可以安全地进行完整的数据库操作,支持多数据库连接管理、增删改查、事务管理和智能回滚功能。
3
+ 一个功能强大且易用的MySQL数据库MCP(Model Context Protocol)服务器,让你的AI助手可以安全地进行完整的数据库操作。**v3.1 新增 StreamableHTTP 模式,支持 Header 预配置数据库连接,连接信息不会暴露给 AI!**
4
4
 
5
- > **🎯 目标用户**: 希望在VSCodeCline中使用AI助手进行完整MySQL数据库操作的开发者
5
+ > **🎯 目标用户**: 希望在 Claude Desktop、VSCode Cline 等 MCP 客户端中使用 AI 助手进行 MySQL 数据库操作的开发者
6
6
 
7
7
  ## 📖 目录
8
8
 
9
9
  - [🌟 功能特性](#-功能特性)
10
+ - [🆕 v3.1 新特性](#-v31-新特性)
10
11
  - [🔧 工具概览](#-工具概览)
11
- - [☁️ Smithery云部署](#️-smithery云部署)
12
12
  - [🛠️ 安装教程](#️-安装教程)
13
13
  - [⚙️ 配置方法](#️-配置方法)
14
14
  - [🎮 使用指南](#-使用指南)
@@ -17,160 +17,150 @@
17
17
  - [❗ 故障排除](#-故障排除)
18
18
  - [💡 使用技巧](#-使用技巧)
19
19
  - [🔒 安全说明](#-安全说明)
20
- - [📦 发布相关](#-发布相关)
20
+
21
+ ---
21
22
 
22
23
  ## 🌟 功能特性
23
24
 
24
25
  ### ✨ 核心功能
25
26
  - 📦 **NPM包支持**: 一键安装 `npm install -g @xingyuchen/mysql-mcp-server`,即装即用
26
- - 🔗 **多数据库连接**: 同时管理多个MySQL数据库连接,无需频繁切换
27
+ - 🌐 **双模式部署**: 支持 stdio 模式(本地)和 StreamableHTTP 模式(服务器)
28
+ - 🔐 **Header 预配置**: 通过 HTTP Headers 传递数据库连接信息,不暴露给 AI
29
+ - 🔗 **多数据库连接**: 同时管理多个 MySQL 数据库连接,无需频繁切换
27
30
  - 🎯 **智能连接管理**: 支持连接标识、活跃连接切换和连接状态监控
28
- - 🔄 **完整CRUD操作**: 支持INSERT、UPDATE、DELETE、SELECT等所有SQL操作
31
+ - 🔄 **完整CRUD操作**: 支持 INSERT、UPDATE、DELETE、SELECT 等所有 SQL 操作
29
32
  - 🛡️ **自动事务管理**: 修改操作自动开启事务,支持智能回滚
30
33
  - 📊 **增强表查看**: 显示表结构概览、行数统计和样本数据
31
34
  - 📝 **智能日志系统**: 详细记录所有操作,支持错误追踪和性能分析
32
35
  - 🔙 **历史回滚功能**: 查看操作历史,选择性回滚到任意步骤
33
- - 🚀 **双模式部署**: 支持stdio模式和HTTP/SSE模式
34
36
 
35
37
  ### 🎯 使用场景
36
- - ✅ 完整的数据库CRUD操作(增删改查)
38
+ - ✅ 完整的数据库 CRUD 操作(增删改查)
37
39
  - ✅ 数据库结构分析和优化建议
38
40
  - ✅ 批量数据处理和迁移
39
41
  - ✅ 事务安全的数据修改
40
42
  - ✅ 数据备份前的安全测试
41
43
  - ✅ 复杂查询的构建和调试
44
+ - ✅ 远程服务器数据库管理(HTTP 模式)
42
45
 
43
- ### 🆕 3.0版本新特性
44
- - 🔗 **多数据库连接**: 同时管理多个MySQL数据库,支持连接池
45
- - 🎯 **连接管理**: 新增连接列表、切换活跃连接、移除连接等管理工具
46
- - 📋 **灵活切换**: 所有操作支持指定`connection_id`参数选择目标数据库
47
- - 🚀 **向后兼容**: 保持现有API不变,新功能通过可选参数提供
48
- - 📊 **连接监控**: 显示连接状态、连接时间和数据库信息
46
+ ---
49
47
 
50
- ### 📜 历史版本特性
51
- - **2.0版本**: 工具简化、增强展示、完整回滚、实时监控、安全升级
52
- - **1.0版本**: 基础CRUD操作、事务管理、日志系统
48
+ ## 🆕 v3.1 新特性
53
49
 
54
- ## 🔧 工具概览
50
+ ### 🌐 StreamableHTTP 模式
55
51
 
56
- ### 核心工具 (14个)
52
+ 全新的 HTTP 服务器模式,支持远程部署和多用户访问:
57
53
 
58
- | 工具名称 | 功能描述 | 使用场景 |
59
- |---------|----------|----------|
60
- | `connect_database` | 连接MySQL数据库 | 建立数据库连接(支持连接ID) |
61
- | `execute_query` | **万能SQL执行工具** | 执行任何SQL操作(CRUD、DDL等) |
62
- | `show_tables` | 显示所有表及结构概览 | 快速了解数据库整体结构 |
63
- | `describe_table` | 显示表详细结构和样本数据 | 深入了解特定表的结构和内容 |
64
- | `begin_transaction` | 开始事务 | 手动控制事务开始 |
65
- | `commit_transaction` | 提交事务 | 确认所有修改 |
66
- | `rollback_transaction` | 回滚事务 | 撤销所有未提交修改 |
67
- | `show_transaction_history` | 显示事务历史 | 查看所有操作记录 |
68
- | `rollback_to_step` | 回滚到指定步骤 | 选择性撤销操作 |
69
- | `full_rollback` | 完全回滚 | 撤销所有事务内操作 |
70
- | `disconnect_database` | 断开数据库连接 | 安全关闭连接 |
71
- | **`list_connections`** | **列出所有数据库连接** | **查看连接状态和信息** |
72
- | **`switch_active_connection`** | **切换活跃连接** | **在多个数据库间切换** |
73
- | **`remove_connection`** | **移除指定连接** | **清理不需要的连接** |
74
-
75
- ### 🎯 主要改进
54
+ ```bash
55
+ # 启动 HTTP 服务器
56
+ npm run start:http
76
57
 
77
- #### 1. 工具简化
78
- ```
79
- 旧版本: 15个工具 (insert_data, update_data, delete_data, select_data, create_table, drop_table, get_table_info...)
80
- 新版本: 11个工具 (保留万能的execute_query,删除重复功能)
58
+ # 服务运行在 http://localhost:3000/mcp
81
59
  ```
82
60
 
83
- #### 2. 增强展示
84
- ```
85
- show_tables 输出示例:
86
- 📋 数据库概览
87
- 📊 总共找到 3 个表:
61
+ ### 🔐 Header 预配置连接 (推荐)
88
62
 
89
- 🗂️ **users**
90
- 📊 行数: 1250
91
- 🏗️ 列: id(int), name(varchar), email(varchar), created_at(datetime)
63
+ **最大的安全改进**:数据库连接信息通过 HTTP Headers 预先配置,**不会暴露给 AI**!
92
64
 
93
- 🗂️ **orders**
94
- 📊 行数: 3420
95
- 🏗️ 列: id(int), user_id(int), amount(decimal), status(enum), order_date(datetime)
96
- ```
65
+ #### Claude Desktop 配置示例
97
66
 
98
- #### 3. 样本数据展示
67
+ ```json
68
+ {
69
+ "mcpServers": {
70
+ "mysql-mcp-http": {
71
+ "type": "streamableHttp",
72
+ "url": "http://localhost:3000/mcp",
73
+ "timeout": 600,
74
+ "headers": {
75
+ "X-MySQL-Host": "localhost",
76
+ "X-MySQL-Port": "3306",
77
+ "X-MySQL-User": "your_username",
78
+ "X-MySQL-Password": "your_password",
79
+ "X-MySQL-Database": "your_database"
80
+ }
81
+ }
82
+ }
83
+ }
99
84
  ```
100
- describe_table 输出示例:
101
- 🔍 表 "users" 的详细信息
102
85
 
103
- 📊 基本信息:
104
- 总行数: 1250
105
- 总列数: 4
86
+ **优点:**
87
+ - ✅ 数据库凭证不会暴露给 AI
88
+ - ✅ 预先配置,无需每次连接
89
+ - ✅ 更安全的部署方式
90
+ - ✅ 自动建立连接,开箱即用
106
91
 
107
- 🏗️ 表结构:
108
- 字段名 | 类型 | 可为空 | 键 | 默认值 | 额外信息
109
- ================================================================================
110
- id | int(11) | NO | PRI | NULL | auto_increment
111
- name | varchar(100) | NO | | NULL |
112
- email | varchar(255) | YES | UNI | NULL |
113
- created_at | datetime | YES | | NULL |
92
+ ### 🔧 兼容原有工具参数连接
114
93
 
115
- 📄 样本数据 (前5行):
116
- [
117
- {
118
- "id": 1,
119
- "name": "张三",
120
- "email": "zhangsan@example.com",
121
- "created_at": "2024-01-15T10:30:00.000Z"
122
- },
123
- ...
124
- ]
125
- ```
94
+ 保留原有的 `connect_database` 工具,AI 可以询问用户后动态连接:
126
95
 
127
- #### 4. 智能事务管理
96
+ ```json
97
+ {
98
+ "mcpServers": {
99
+ "mysql-mcp": {
100
+ "command": "npx",
101
+ "args": ["-y", "@neigezhujiayi/mysql-mcp-server"]
102
+ }
103
+ }
104
+ }
128
105
  ```
129
- 自动功能:
130
- - INSERT/UPDATE/DELETE操作自动开启事务
131
- - 自动生成精确的回滚查询
132
- - 记录每个操作的详细信息
133
- - 支持选择性回滚到任意步骤
134
106
 
135
- 回滚查询示例:
136
- INSERT → DELETE FROM table WHERE id = ?
137
- UPDATE UPDATE table SET col1=?, col2=? WHERE condition
138
- DELETE → INSERT INTO table (col1, col2) VALUES (?, ?)
107
+ ### 📋 两种模式对比
108
+
109
+ | 特性 | stdio 模式 | HTTP 模式 + Header 预配置 |
110
+ |------|-----------|--------------------------|
111
+ | **适用场景** | 本地使用 | 服务器部署 / 远程访问 |
112
+ | **启动方式** | `npx -y @xingyuchen/mysql-mcp-server` | `npm run start:http` |
113
+ | **数据库连接** | AI询问用户后连接 | Headers预配置,自动连接 |
114
+ | **安全性** | 中等(需告知AI) | 高(凭证不暴露给AI) |
115
+ | **配置复杂度** | 简单 | 中等(需配置Headers) |
116
+ | **推荐用途** | 个人开发、快速测试 | 生产部署、多用户、远程访问 |
117
+
118
+ ### 🔍 连接来源标识
119
+
120
+ 使用 `list_connections` 工具可以清楚地看到连接来源:
121
+
139
122
  ```
123
+ 📋 数据库连接列表
140
124
 
141
- ## ☁️ Smithery云部署
125
+ 📊 总连接数: 2
142
126
 
143
- ### 🚀 快速部署到Smithery
127
+ 1. 🔗 header_connection_abc123 🔐(Header预配置) 🎯(活跃)
128
+ 📍 主机: localhost:3306
129
+ 🗄️ 数据库: production_db
130
+ 👤 用户: prod_user
131
+ ⏰ 连接时间: 2025-10-20 10:30:00
144
132
 
145
- [Smithery](https://smithery.ai) 是专门为MCP服务器设计的云平台,可以一键部署您的MySQL MCP Server。
133
+ 2. 🔗 localhost_test_1729401234 🔧(工具参数)
134
+ 📍 主机: localhost:3306
135
+ 🗄️ 数据库: test_db
136
+ 👤 用户: test_user
137
+ ⏰ 连接时间: 2025-10-20 10:35:00
138
+ ```
146
139
 
147
- #### 🔧 部署步骤
140
+ ---
148
141
 
149
- 1. **Fork项目到您的GitHub**
150
- ```bash
151
- https://github.com/guangxiangdebizi/MySQL_MCP
152
- ```
142
+ ## 🔧 工具概览
153
143
 
154
- 2. **登录Smithery平台**
155
- - 访问 [Smithery.ai](https://smithery.ai)
156
- - 使用GitHub账号登录
144
+ ### 核心工具 (14个)
157
145
 
158
- 3. **连接GitHub仓库**
159
- - 点击 "Deploy Server"
160
- - 选择您Fork的 `MySQL_MCP` 仓库
161
- - 确认部署配置
146
+ | 工具名称 | 功能描述 | 使用场景 |
147
+ |---------|----------|----------|
148
+ | `connect_database` | 连接MySQL数据库 | 建立数据库连接(支持连接ID) |
149
+ | `execute_query` | **万能SQL执行工具** | 执行任何SQL操作(CRUD、DDL等) |
150
+ | `show_tables` | 显示所有表及结构概览 | 快速了解数据库整体结构 |
151
+ | `describe_table` | 显示表详细结构和样本数据 | 深入了解特定表的结构和内容 |
152
+ | `begin_transaction` | 开始事务 | 手动控制事务开始 |
153
+ | `commit_transaction` | 提交事务 | 确认所有修改 |
154
+ | `rollback_transaction` | 回滚事务 | 撤销所有未提交修改 |
155
+ | `show_transaction_history` | 显示事务历史 | 查看所有操作记录 |
156
+ | `rollback_to_step` | 回滚到指定步骤 | 选择性撤销操作 |
157
+ | `full_rollback` | 完全回滚 | 撤销所有事务内操作 |
158
+ | `disconnect_database` | 断开数据库连接 | 安全关闭连接 |
159
+ | **`list_connections`** | **列出所有数据库连接** | **查看连接状态和来源** |
160
+ | **`switch_active_connection`** | **切换活跃连接** | **在多个数据库间切换** |
161
+ | **`remove_connection`** | **移除指定连接** | **清理不需要的连接** |
162
162
 
163
- 4. **使用部署的服务器**
164
- ```json
165
- {
166
- "mcpServers": {
167
- "mysql-database": {
168
- "url": "https://server.smithery.ai/your-server-id/sse",
169
- "type": "sse"
170
- }
171
- }
172
- }
173
- ```
163
+ ---
174
164
 
175
165
  ## 🛠️ 安装教程
176
166
 
@@ -178,8 +168,7 @@ DELETE → INSERT INTO table (col1, col2) VALUES (?, ?)
178
168
 
179
169
  - ✅ **Node.js 18+** - [下载地址](https://nodejs.org/)
180
170
  - ✅ **MySQL 5.7+ 或 8.0+** - 确保数据库服务正在运行
181
- - ✅ **VSCode** - [下载地址](https://code.visualstudio.com/)
182
- - ✅ **Cline扩展** - 在VSCode扩展市场搜索"Cline"安装
171
+ - ✅ **MCP 客户端** - Claude Desktop、VSCode Cline 等
183
172
 
184
173
  ### 🚀 方法1: NPM安装(推荐)
185
174
 
@@ -194,7 +183,7 @@ guangxiang-mysql-mcp --help
194
183
  ### 🔧 方法2: 源码安装
195
184
 
196
185
  ```bash
197
- # 下载项目
186
+ # 1. 下载项目
198
187
  git clone https://github.com/guangxiangdebizi/MySQL_MCP.git
199
188
  cd MySQL_MCP
200
189
 
@@ -203,124 +192,160 @@ npm install
203
192
 
204
193
  # 3. 构建项目
205
194
  npm run build
206
-
207
- # 4. 测试安装
208
- npm test
209
195
  ```
210
196
 
197
+ ---
198
+
211
199
  ## ⚙️ 配置方法
212
200
 
213
- ### 📌 方法1: NPM包配置(推荐)
201
+ ### 🔐 方式1: HTTP模式 + Header预配置(最安全,推荐生产环境)
214
202
 
215
- 使用npm全局安装后,在Cline设置中添加:
203
+ #### 1. 启动 HTTP 服务器
204
+
205
+ ```bash
206
+ # 默认端口 3000
207
+ npm run start:http
208
+
209
+ # 或指定端口
210
+ PORT=3001 npm run start:http
211
+ ```
212
+
213
+ #### 2. 配置 Claude Desktop
214
+
215
+ 编辑配置文件(位置因系统而异):
216
+
217
+ **Windows**: `%APPDATA%\Claude\claude_desktop_config.json`
218
+ **macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`
219
+ **Linux**: `~/.config/Claude/claude_desktop_config.json`
216
220
 
217
221
  ```json
218
222
  {
219
223
  "mcpServers": {
220
- "mysql-database": {
221
- "command": "guangxiang-mysql-mcp",
222
- "env": {}
224
+ "mysql-mcp-http": {
225
+ "type": "streamableHttp",
226
+ "url": "http://localhost:3000/mcp",
227
+ "timeout": 600,
228
+ "headers": {
229
+ "X-MySQL-Host": "localhost",
230
+ "X-MySQL-Port": "3306",
231
+ "X-MySQL-User": "your_username",
232
+ "X-MySQL-Password": "your_password",
233
+ "X-MySQL-Database": "your_database"
234
+ }
223
235
  }
224
236
  }
225
237
  }
226
238
  ```
227
239
 
228
- ### 📌 方法2: 本地项目配置
240
+ #### 3. 重启 Claude Desktop
229
241
 
230
- 如果使用npx或本地安装:
242
+ 配置生效后,数据库连接会自动建立,**无需告诉 AI 你的数据库密码**!
243
+
244
+ ### 📌 方式2: stdio模式 + NPM全局安装(推荐本地开发)
231
245
 
232
246
  ```json
233
247
  {
234
248
  "mcpServers": {
235
249
  "mysql-database": {
236
- "command": "npx",
237
- "args": ["@xingyuchen/mysql-mcp-server"],
250
+ "command": "guangxiang-mysql-mcp",
238
251
  "env": {}
239
252
  }
240
253
  }
241
254
  }
242
255
  ```
243
256
 
244
- ### 📌 方法3: 源码配置
245
-
246
- 从源码安装后,在Cline设置中添加:
257
+ ### 📌 方式3: stdio模式 + npx(无需安装)
247
258
 
248
259
  ```json
249
260
  {
250
261
  "mcpServers": {
251
262
  "mysql-database": {
252
- "command": "node",
253
- "args": ["C:/path/to/my-awesome-mcp/dist/index.js"],
263
+ "command": "npx",
264
+ "args": ["-y", "@neigezhujiayi/mysql-mcp-server"],
254
265
  "env": {}
255
266
  }
256
267
  }
257
268
  }
258
269
  ```
259
270
 
260
- ### 📌 方法4: HTTP/SSE模式配置
271
+ ### 📌 方式4: 源码安装配置
261
272
 
262
273
  ```json
263
274
  {
264
275
  "mcpServers": {
265
276
  "mysql-database": {
266
- "url": "http://localhost:3101/sse",
267
- "type": "sse"
277
+ "command": "node",
278
+ "args": ["C:/path/to/MySQL_MCP/dist/index.js"],
279
+ "env": {}
268
280
  }
269
281
  }
270
282
  }
271
283
  ```
272
284
 
273
- 启动服务器:
274
- ```bash
275
- npm run start-gateway
276
- ```
285
+ **📖 详细的 HTTP 配置指南**: 查看 [HTTP_CONFIG_EXAMPLE.md](./HTTP_CONFIG_EXAMPLE.md)
286
+
287
+ ---
277
288
 
278
289
  ## 🎮 使用指南
279
290
 
280
291
  ### 🚀 基础连接
281
292
 
282
- #### 单数据库连接(3.0保持兼容)
293
+ #### 使用 Header 预配置(HTTP 模式)
294
+
295
+ 配置好 Headers 后,直接使用即可,无需连接步骤:
296
+
297
+ ```
298
+ User: 显示所有数据库表
299
+ AI: [直接使用预配置的连接执行 show_tables]
300
+ ```
301
+
302
+ #### 使用工具参数连接(stdio 模式)
303
+
283
304
  ```
284
- 请帮我连接到MySQL数据库:
305
+ User: 连接到我的数据库
306
+ AI: 请提供数据库连接信息...
307
+ User:
285
308
  - 主机: localhost
286
309
  - 端口: 3306
287
310
  - 用户名: root
288
311
  - 密码: your_password
289
312
  - 数据库: test_db
313
+ AI: [使用 connect_database 工具连接]
290
314
  ```
291
315
 
292
- #### 🆕 多数据库连接(3.0新功能)
316
+ ### 🆕 多数据库连接管理
317
+
293
318
  ```
294
319
  # 连接第一个数据库(自动成为活跃连接)
295
- 请连接到生产数据库:
320
+ User: 连接到生产数据库:
296
321
  - 主机: prod.mysql.com
297
322
  - 数据库: production_db
298
323
  - 连接ID: prod
299
324
 
300
325
  # 连接第二个数据库
301
- 请连接到测试数据库:
326
+ User: 连接到测试数据库:
302
327
  - 主机: test.mysql.com
303
328
  - 数据库: test_db
304
329
  - 连接ID: test
305
330
 
306
331
  # 查看所有连接
307
- 请列出所有数据库连接
332
+ User: 请列出所有数据库连接
308
333
 
309
334
  # 切换活跃连接
310
- 请切换到test连接
335
+ User: 请切换到test连接
311
336
 
312
337
  # 指定连接执行操作
313
- 请在prod连接上查询用户表
338
+ User: 请在prod连接上查询用户表
314
339
  ```
315
340
 
316
341
  ### 📊 查看数据库结构
317
342
 
318
343
  ```
319
344
  # 查看所有表概览
320
- 请显示数据库中的所有表
345
+ User: 请显示数据库中的所有表
321
346
 
322
347
  # 查看特定表详情
323
- 请描述users表的结构
348
+ User: 请描述users表的结构
324
349
  ```
325
350
 
326
351
  ### 🔄 执行CRUD操作
@@ -343,23 +368,25 @@ DELETE FROM users WHERE id = 123
343
368
 
344
369
  ```
345
370
  # 查看事务历史
346
- 请显示当前事务的操作历史
371
+ User: 请显示当前事务的操作历史
347
372
 
348
373
  # 回滚到特定步骤
349
- 请回滚到第3步操作之前
374
+ User: 请回滚到第3步操作之前
350
375
 
351
376
  # 完全回滚
352
- 请完全回滚所有未提交的操作
377
+ User: 请完全回滚所有未提交的操作
353
378
 
354
379
  # 提交事务
355
- 请提交当前事务
380
+ User: 请提交当前事务
356
381
  ```
357
382
 
383
+ ---
384
+
358
385
  ## 🔄 事务管理
359
386
 
360
387
  ### 自动事务管理
361
388
 
362
- - **自动开启**: INSERT/UPDATE/DELETE操作自动开启事务
389
+ - **自动开启**: INSERT/UPDATE/DELETE 操作自动开启事务
363
390
  - **智能记录**: 记录每个操作的详细信息和回滚查询
364
391
  - **精确回滚**: 支持回滚到任意操作步骤
365
392
 
@@ -383,6 +410,8 @@ DELETE FROM users WHERE id = 123
383
410
  💡 使用 rollback_to_step 可以回滚到任意步骤
384
411
  ```
385
412
 
413
+ ---
414
+
386
415
  ## 📊 日志系统
387
416
 
388
417
  ### 日志文件类型
@@ -405,32 +434,41 @@ npm run logs:errors
405
434
 
406
435
  # 分析数据库操作
407
436
  npm run logs:db-analysis
437
+
438
+ # 查看统计信息
439
+ npm run logs:stats
408
440
  ```
409
441
 
442
+ ---
443
+
410
444
  ## 💡 使用技巧
411
445
 
412
446
  ### 🎯 最佳实践
413
447
 
414
- 1. **数据探索**
415
- ```
416
- 先用show_tables了解整体结构
417
- 再用describe_table查看具体表
418
- 最后用execute_query进行操作
419
- ```
420
-
421
- 2. **安全修改**
422
- ```
423
- 重要操作前先SELECT确认数据
424
- 使用事务保护批量修改
425
- 及时查看事务历史
426
- ```
427
-
428
- 3. **性能优化**
429
- ```
430
- 使用LIMIT限制结果集大小
431
- 添加WHERE条件过滤数据
432
- 查看日志分析慢查询
433
- ```
448
+ #### 1. 选择合适的部署模式
449
+
450
+ ```
451
+ 本地开发 → stdio 模式(简单快速)
452
+ 生产环境 → HTTP 模式 + Header 预配置(安全可靠)
453
+ 多用户场景 → HTTP 模式(支持并发)
454
+ ```
455
+
456
+ #### 2. 数据探索流程
457
+
458
+ ```
459
+ 1. show_tables 了解整体结构
460
+ 2. describe_table 查看具体表
461
+ 3. execute_query 进行操作
462
+ ```
463
+
464
+ #### 3. 安全修改策略
465
+
466
+ ```
467
+ 1. 重要操作前先 SELECT 确认数据
468
+ 2. 使用事务保护批量修改
469
+ 3. 及时查看事务历史
470
+ 4. 必要时使用回滚功能
471
+ ```
434
472
 
435
473
  ### 🚀 高级用法
436
474
 
@@ -457,106 +495,144 @@ SET stock = stock - 1
457
495
  WHERE product_id = 123 AND stock > 0
458
496
  ```
459
497
 
498
+ ---
499
+
460
500
  ## 🔒 安全说明
461
501
 
462
502
  ### ⚠️ 重要提醒
463
503
 
464
- - **完整权限**: 2.0版本支持完整CRUD操作,请谨慎使用
504
+ - **完整权限**: 支持完整 CRUD 操作,请谨慎使用
465
505
  - **事务保护**: 所有修改操作都有事务保护和回滚功能
466
506
  - **日志记录**: 所有操作都会被详细记录
467
- - **用户权限**: 建议创建专门的数据库用户,限制必要权限
507
+ - **Header 预配置**: 使用 HTTP 模式时,强烈推荐使用 Header 预配置,避免凭证暴露
468
508
 
469
509
  ### 🛡️ 安全建议
470
510
 
471
- 1. **数据库用户**
472
- ```sql
473
- CREATE USER 'mcp_user'@'localhost' IDENTIFIED BY 'strong_password';
474
- GRANT SELECT, INSERT, UPDATE, DELETE ON your_database.* TO 'mcp_user'@'localhost';
475
- ```
511
+ #### 1. 数据库用户权限
476
512
 
477
- 2. **备份策略**
478
- ```
479
- 重要操作前先备份数据
480
- 定期检查事务历史
481
- 保留操作日志用于审计
482
- ```
483
-
484
- ## ❗ 故障排除
513
+ ```sql
514
+ -- 创建专用 MCP 用户
515
+ CREATE USER 'mcp_user'@'localhost' IDENTIFIED BY 'strong_password';
485
516
 
486
- ### 常见问题
517
+ -- 授予必要权限
518
+ GRANT SELECT, INSERT, UPDATE, DELETE ON your_database.* TO 'mcp_user'@'localhost';
487
519
 
488
- 1. **连接失败**
489
- ```
490
- 检查MySQL服务是否运行
491
- 确认连接参数正确
492
- 查看error日志获取详细信息
493
- ```
520
+ -- 生产环境可能只需要只读权限
521
+ GRANT SELECT ON your_database.* TO 'mcp_readonly'@'localhost';
522
+ ```
494
523
 
495
- 2. **权限错误**
496
- ```
497
- 确认数据库用户权限
498
- 检查表的访问权限
499
- 查看MySQL错误日志
500
- ```
524
+ #### 2. HTTP 模式安全
501
525
 
502
- 3. **事务问题**
503
- ```
504
- 使用show_transaction_history查看状态
505
- 必要时使用full_rollback重置
506
- 检查database日志分析问题
507
- ```
526
+ ```
527
+ ✅ 使用 Header 预配置,避免凭证暴露
528
+ ✅ 生产环境使用 HTTPS(配合 Nginx 等代理)
529
+ ✅ 限制访问 IP(防火墙规则)
530
+ ✅ 定期更新数据库密码
531
+ ✅ 监控日志,发现异常访问
532
+ ```
508
533
 
509
- ## 📦 发布相关
534
+ #### 3. 备份策略
510
535
 
511
- ### 🚀 NPM包发布
536
+ ```
537
+ ✅ 重要操作前先备份数据
538
+ ✅ 定期检查事务历史
539
+ ✅ 保留操作日志用于审计
540
+ ✅ 测试回滚功能是否正常
541
+ ```
512
542
 
513
- 本项目已配置为标准的NPM包,支持一键发布到npm仓库。
543
+ ---
514
544
 
515
- #### 📚 发布文档
545
+ ## 故障排除
516
546
 
517
- - **📋 [完整发布指南 (PUBLISH.md)](./PUBLISH.md)** - 详细的发布流程、用户安装指南和版本管理
518
- - **⚡ [快速发布指南 (QUICK_PUBLISH.md)](./QUICK_PUBLISH.md)** - 简洁的发布命令和步骤
547
+ ### 常见问题
519
548
 
520
- #### 🎯 快速发布
549
+ #### 1. 连接失败
521
550
 
522
- ```bash
523
- # 1. 登录NPM(首次发布需要)
524
- npm login
551
+ ```
552
+ 问题: 无法连接到数据库
553
+ 解决:
554
+ - 检查 MySQL 服务是否运行
555
+ - 确认连接参数正确(Host、Port、User、Password)
556
+ - 查看 error 日志获取详细信息
557
+ - HTTP 模式检查 Headers 配置是否完整
558
+ ```
525
559
 
526
- # 2. 发布包
527
- npm publish
560
+ #### 2. Header 连接未生效
528
561
 
529
- # 3. 验证发布
530
- npm view @xingyuchen/mysql-mcp-server
562
+ ```
563
+ 问题: 配置了 Headers 但仍提示需要连接
564
+ 解决:
565
+ - 确认 Headers 名称正确(X-MySQL-Host, X-MySQL-User 等)
566
+ - 检查所有必填字段(host, user, password, database)
567
+ - 重启 HTTP 服务器
568
+ - 使用 list_connections 查看连接状态
531
569
  ```
532
570
 
533
- #### 👥 用户安装
571
+ #### 3. 权限错误
534
572
 
535
- 发布后,用户可以通过以下方式安装:
573
+ ```
574
+ 问题: Access denied 或权限不足
575
+ 解决:
576
+ - 确认数据库用户权限
577
+ - 检查表的访问权限
578
+ - 查看 MySQL 错误日志
579
+ - 确认用户可以从当前主机连接
580
+ ```
536
581
 
537
- ```bash
538
- # 全局安装
539
- npm install -g @xingyuchen/mysql-mcp-server
582
+ #### 4. 事务问题
540
583
 
541
- # 在Cline中配置
542
- {
543
- "mcpServers": {
544
- "mysql-database": {
545
- "command": "guangxiang-mysql-mcp",
546
- "env": {}
547
- }
548
- }
549
- }
584
+ ```
585
+ 问题: 事务状态异常
586
+ 解决:
587
+ - 使用 show_transaction_history 查看状态
588
+ - 必要时使用 full_rollback 重置
589
+ - 检查 database 日志分析问题
590
+ - 确认连接未意外断开
550
591
  ```
551
592
 
552
593
  ---
553
594
 
595
+ ## 📦 版本历史
596
+
597
+ ### v3.1.0 (2025-10-20) 🆕
598
+ - ✨ 新增 StreamableHTTP 模式支持
599
+ - 🔐 新增 HTTP Headers 预配置数据库连接
600
+ - 🏷️ 连接来源标识(Header预配置 vs 工具参数)
601
+ - 📡 健康检查端点
602
+ - 🔧 Express + CORS + dotenv 支持
603
+
604
+ ### v3.0.0
605
+ - 🔗 多数据库连接管理
606
+ - 🎯 连接标识和切换
607
+ - 📋 连接列表和监控
608
+
609
+ ### v2.0.0
610
+ - 🛠️ 工具简化
611
+ - 📊 增强展示
612
+ - 🔄 完整回滚
613
+ - 📝 日志系统
614
+
615
+ ### v1.0.0
616
+ - 🎉 初始版本
617
+ - 🔧 基础 CRUD 操作
618
+ - 🛡️ 事务管理
619
+
620
+ ---
621
+
554
622
  ## 📞 支持与反馈
555
623
 
556
624
  - 🐛 **问题报告**: [GitHub Issues](https://github.com/guangxiangdebizi/MySQL_MCP/issues)
557
625
  - 💡 **功能建议**: [GitHub Discussions](https://github.com/guangxiangdebizi/MySQL_MCP/discussions)
558
- - 📧 **联系作者**: 通过GitHub私信
626
+ - 📧 **联系作者**: guangxiangdebizi@gmail.com
627
+ - 💼 **LinkedIn**: [Xingyu Chen](https://www.linkedin.com/in/xingyu-chen-b5b3b0313/)
628
+ - 📦 **NPM包**: [@xingyuchen/mysql-mcp-server](https://www.npmjs.com/package/@xingyuchen/mysql-mcp-server)
629
+
630
+ ---
631
+
632
+ ## 📄 License
633
+
634
+ Apache 2.0 License - 详见 [LICENSE](./LICENSE) 文件
559
635
 
560
636
  ---
561
637
 
562
- **⭐ 如果这个项目对你有帮助,请给个Star支持一下!**
638
+ **⭐ 如果这个项目对你有帮助,请给个 Star 支持一下!**