MCP架构说明.md•3.61 kB
# MySQL MCP Server 架构说明
## 🏗️ 系统架构
```
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ Roo 客户端 │ │ MCP 系统 │ │ MySQL Server │
│ │ │ │ │ │
│ - 用户界面 │◄──►│ - 进程管理 │◄──►│ - 数据库操作 │
│ - 请求处理 │ │ - 协议转换 │ │ - SQL执行 │
│ - 结果显示 │ │ - 通信管理 │ │ - 结果返回 │
└─────────────────┘ └─────────────────┘ └─────────────────┘
```
## 🔄 运行机制
### 1. 按需启动模式(当前实现)
- **触发时机**:当你请求数据库操作时
- **启动方式**:MCP系统自动启动子进程
- **通信方式**:stdio(标准输入输出)
- **生命周期**:请求完成后可能保持连接或关闭
### 2. 进程生命周期
```
用户请求 → MCP检查配置 → 启动Node进程 → 建立stdio连接 → 处理请求 → 返回结果
↓
进程可能保持活跃或被关闭
```
## 📁 文件结构
```
mysql-server/
├── src/index.ts # 源代码
├── build/index.js # 编译后的可执行文件
├── package.json # 项目配置
├── tsconfig.json # TypeScript配置
└── restart-mcp.bat # 说明脚本(非必需)
```
## ⚙️ 配置文件解释
### .roo/mcp.json
```json
{
"mcpServers": {
"mysql-kunlunai": { // 服务器名称
"command": "node", // 启动命令
"args": ["路径/build/index.js"], // 程序路径
"env": { // 环境变量
"MYSQL_HOST": "...",
"MYSQL_PORT": "3306",
"MYSQL_USER": "root",
"MYSQL_PASSWORD": "...",
"MYSQL_DB": "..."
},
"disabled": false, // 是否禁用
"alwaysAllow": [] // 自动允许的工具
}
}
}
```
## 🔒 安全特性
1. **进程隔离** - 每个MCP Server运行在独立进程中
2. **权限控制** - 只能执行预定义的安全操作
3. **环境隔离** - 通过环境变量传递敏感信息
4. **自动清理** - 进程异常时自动重启
## 🚀 开机自启动(可选)
如果需要开机自启动,可以考虑:
### 方案1:Windows服务
- 使用 `node-windows` 创建Windows服务
- 开机自动启动,后台运行
- 适合需要持续运行的场景
### 方案2:任务计划程序
- 使用Windows任务计划程序
- 开机时启动,可设置延迟
- 更轻量级的解决方案
### 方案3:保持当前设计(推荐)
- 按需启动,资源高效
- MCP系统自动管理
- 无需额外配置
## 🛠️ 故障排除
### 常见问题
1. **服务器无响应** - 检查Node.js是否安装
2. **数据库连接失败** - 检查环境变量配置
3. **权限错误** - 检查文件路径和权限
### 调试方法
1. 查看MCP系统日志
2. 手动运行 `node build/index.js` 测试
3. 检查数据库连接配置
## 📝 总结
- **无需手动启动** - MCP系统自动管理
- **按需运行** - 只在需要时启动
- **资源高效** - 不占用不必要资源
- **自动管理** - 进程生命周期由MCP控制