# MCP 预约服务器部署指南
基于您的微信云开发预约系统API,我已经创建了一个完整的MCP服务器实现,并修复了所有技术问题。以下是部署和使用步骤:
## 📁 项目结构
```
mcp-reservation-server/
├── package.json # NPM配置文件
├── tsconfig.json # TypeScript配置
├── .env.example # 环境变量示例
├── README.md # 详细说明文档
├── claude-desktop-config.json # Claude Desktop配置示例
├── dist/ # 编译输出目录
│ ├── index.js # 编译后的主文件
│ ├── wechat-api.js # 编译后的API文件
│ └── types.js # 编译后的类型文件
└── src/
├── index.ts # MCP服务器主文件
├── wechat-api.ts # 微信API客户端
└── types.ts # 类型定义
```
## 🚀 快速开始
### 1. 安装依赖
```bash
cd mcp-reservation-server
npm install
```
### 2. 配置环境变量
```bash
cp .env.example .env
# 编辑 .env 文件,配置您的微信小程序信息
```
**`.env` 文件配置示例:**
```env
WECHAT_APP_ID=
WECHAT_APP_SECRET=
WECHAT_ENV_ID=
```
### 3. 构建和启动
```bash
# 编译TypeScript代码
npm run build
# 启动MCP服务器
npm start
```
## 🛠️ 支持的工具
本MCP服务器提供了**11个管理工具**,分为4大类功能:
### 🏢 **预约窗口管理** (4个工具)
#### 1. `create_meet_window` - 创建预约窗口
**功能**:创建新的预约窗口,包含完整的时间段设置和用户填写资料设置
**必填参数**:
- `title` (必需): 预约窗口标题
- `seat_count` (必需): 座位数量(至少1个)
- `meet_days` (必需): 预约日期和时间段设置
**可选参数**:
- `order` (可选): 排序号(默认9999)
- `content` (可选): 预约窗口描述
- `admin_id` (可选): 管理员ID
- `form_fields` (可选): 用户填写资料设置(默认为姓名和手机)
**时间段设置格式**:
```json
meet_days: [
{
day: "2024-06-20",
times: [
{
start: "09:00",
end: "12:00",
limit: 30 // 可选:该时间段人数限制
},
{
start: "14:00",
end: "17:00"
}
]
}
]
```
**表单字段设置格式**:
```json
form_fields: [
{
title: "姓名",
type: "line",
required: true
},
{
title: "联系方式",
type: "mobile",
required: true
},
{
title: "所属部门",
type: "select",
required: false,
options: ["技术部", "市场部", "人事部"]
}
]
```
**使用示例**:
```
创建会议室A预约窗口:
- 标题:会议室A
- 座位数:50个
- 预约日期:2024-06-20,时间段:9:00-12:00, 14:00-17:00
- 表单字段:使用默认的姓名和手机
创建培训室预约窗口:
- 标题:培训室B
- 座位数:30个
- 排序号:100
- 描述:小型培训室,配备投影设备
- 预约日期:2024-06-21和2024-06-22
- 每天时间段:上午9:00-12:00(限20人),下午14:00-17:00
- 表单字段:姓名、手机、所属部门
请创建报告厅预约窗口,100个座位,可预约明天和后天,每天上午10点到12点、下午2点到5点
```
#### 2. `query_meet_windows` - 查询预约窗口
**功能**:查询系统中的预约窗口,支持按状态筛选
**参数**:
- `status` (可选): 窗口状态 (0=未启用, 1=使用中, 9=停止预约, 10=已关闭)
- `limit` (可选): 返回记录数限制 (默认20,最大100)
**使用示例**:
```
查询所有预约窗口
查询状态为使用中的预约窗口
显示最近30个预约窗口
查看已关闭的预约窗口
```
#### 3. `update_meet_window` - 更新预约窗口
**功能**:更新现有预约窗口的信息,包括标题、座位数、描述和状态
**参数**:
- `meet_id` (必需): 预约窗口的数据库ID
- `title` (可选): 新的标题
- `seat_count` (可选): 新的座位数量
- `content` (可选): 新的描述
- `status` (可选): 新的状态 (0=未启用, 1=使用中, 9=停止预约, 10=已关闭)
**使用示例**:
```
更新窗口ID为abc123的标题为"新会议室"
将窗口ID为def456的座位数改为60个
修改窗口ID为ghi789的状态为已关闭
更新窗口信息:ID为xyz999,标题"VIP会议室",座位数20个,状态使用中
```
#### 4. `delete_meet_window` - 删除预约窗口
**功能**:永久删除预约窗口(谨慎操作,不可撤销)
**参数**:
- `meet_id` (必需): 预约窗口的数据库ID
**使用示例**:
```
删除窗口ID为abc123的预约窗口
永久删除预约窗口:ID为def456
清除不需要的预约窗口xyz999
```
### 📋 查询功能 (4个工具)
#### 5. `query_all_reservations` - 查询所有预约记录
**功能**:查询系统中的所有预约记录,支持状态筛选和数量限制
**参数**:
- `limit` (可选): 返回记录数限制 (默认50,最大100)
- `status` (可选): 预约状态 (1=成功, 10=已取消, 99=系统取消)
**使用示例**:
```
请查询所有预约记录
请查询最近30条预约记录
请查询所有已取消的预约
查看预约状态为成功的所有记录
```
#### 6. `query_reservations_by_mobile` - 根据手机号查询预约
**功能**:根据手机号查询所有相关预约记录,支持精确匹配
**参数**:
- `mobile` (必需): 手机号(11位数字)
**使用示例**:
```
请查询手机号13800138000的预约记录
查询电话18888888888的所有预约
帮我找一下15912345678的预约信息
```
#### 7. `query_reservations_by_name` - 根据姓名查询预约
**功能**:根据预约人姓名查询所有相关预约记录,支持精确匹配
**参数**:
- `name` (必需): 预约人姓名
**使用示例**:
```
请查询张三的预约记录
查询李四的所有预约信息
帮我找一下王五的预约
```
#### 8. `query_reservations` - 通用查询预约记录
**功能**:支持多条件查询预约记录,高级筛选功能
**参数**:
- `user_id` (可选): 用户ID
- `status` (可选): 预约状态 (1=成功, 10=已取消, 99=系统取消)
- `meet_id` (可选): 预约项目ID
- `limit` (可选): 返回记录数限制 (默认20)
### ⏰ 时间修改功能 (2个工具)
#### 9. `update_reservation_time_by_mobile` - 根据手机号更改预约时间
**功能**:根据手机号找到预约记录并修改时间(如有多条,自动选择最新的)
**参数**:
- `mobile` (必需): 手机号(11位数字)
- `new_day` (必需): 新的预约日期(YYYY-MM-DD格式)
- `new_time_start` (必需): 新的开始时间(HH:MM格式)
- `new_time_end` (必需): 新的结束时间(HH:MM格式)
- `new_time_mark` (必需): 新的时间段标识
**使用示例**:
```
请将手机号13800138000的预约时间改为2024-02-15 14:00-16:00
修改电话18888888888的预约到明天上午10点到12点
把15912345678的预约时间调整到下周一下午2点到4点
```
#### 10. `update_reservation_time_by_name` - 根据姓名修改预约时间
**功能**:根据姓名找到预约记录并修改时间(如有多条,自动选择最新的)
**参数**:
- `name` (必需): 预约人姓名
- `new_day` (必需): 新的预约日期(YYYY-MM-DD格式)
- `new_time_start` (必需): 新的开始时间(HH:MM格式)
- `new_time_end` (必需): 新的结束时间(HH:MM格式)
- `new_time_mark` (必需): 新的时间段标识
**使用示例**:
```
请将张三的预约时间改为2024-02-20 09:00-11:00
修改李四的预约到下周一下午2点到4点
把王五的预约调整到明天上午10点到12点
```
### 🗑️ 删除功能 (1个工具)
#### 11. `delete_reservation_by_mobile` - 根据手机号删除预约
**功能**:根据手机号删除所有相关预约记录(批量删除,不可撤销)
**参数**:
- `mobile` (必需): 手机号(11位数字)
**使用示例**:
```
请删除手机号13800138000的所有预约记录
清除电话18888888888的预约信息
取消15912345678的所有预约
```
## 📋 业务逻辑说明
### 🏗️ **预约系统架构**
本预约系统采用**分层管理模式**:
1. **管理员层**:创建和管理预约窗口
- 通过MCP服务器在 `ax_meet` 表中创建预约项目
- 设置座位数、状态、描述等基本信息
- 后续可通过小程序后台设置可预约的日期和时间段
2. **用户层**:在开放的窗口内预约
- 在 `ax_join` 表中创建预约记录
- 必须关联到有效的预约窗口ID (`JOIN_MEET_ID`)
- 选择管理员设置的时间段
### 🔐 **安全验证机制**
#### 预约窗口管理的验证步骤:
1. ✅ **权限验证**:确保只有管理员可以创建和管理预约窗口
2. ✅ **数据完整性验证**:检查必填字段和数据格式
3. ✅ **业务逻辑验证**:确保座位数合理、状态正确
4. ✅ **关联性验证**:删除窗口前检查是否有关联的预约记录
#### 座位号显示逻辑
- **数据库存储**:座位号从0开始(0, 1, 2, ...)
- **用户界面显示**:座位号从1开始(1, 2, 3, ...)
- **转换规则**:数据库中的0代表界面显示的座位1,数据库中的1代表界面显示的座位2,以此类推
- **AI助手关键词**:当用户说"座位1"时,系统自动转换为数据库中的0
## 🔧 技术特性
### ✅ 已修复的技术问题
1. **API调用参数验证**:所有API端点已对照官方文档验证正确
2. **返回值字段修正**:`databaseUpdate` API使用正确的 `modified` 字段
3. **TypeScript编译错误**:修复了所有编译错误,确保类型安全
4. **HTTP请求处理**:使用原生 `https` 模块,性能更佳
5. **错误处理增强**:完善的错误捕获和用户友好的错误信息
6. **MCP工具Schema修复**:
- 修复了enum值类型错误(enum值必须为字符串)
- 修复了enum字段类型错误(使用enum的字段必须声明为string类型)
- 完全符合MCP协议的工具定义规范
7. **数据解析优化**:
- 修复了手机号字段解析错误,正确识别JOIN_FORMS中的手机号信息
- 修复了时间戳格式错误,正确处理微信API返回的毫秒时间戳
- 智能字段匹配:支持通过title、mark等多种方式识别姓名和手机号
8. **日志系统完善**:
- 新增详细的调试日志输出,便于问题诊断和系统监控
- 包含HTTP请求/响应、数据库操作、Token管理等完整日志链路
9. **座位号显示优化**:
- 实现了数据库索引到用户界面座位号的正确转换
- 数据库中0显示为座位1,数据库中1显示为座位2,以此类推
### 🔒 自动Token管理
- 自动获取和刷新微信Access Token
- Token有效期管理(提前5分钟自动刷新)
- 错误处理和重试机制
- 支持并发请求的Token复用
### 🧠 智能查询功能
- 支持按手机号、姓名、用户ID等多种方式查询
- 自动解析表单数据中的姓名和手机号信息
- 支持模糊匹配和精确查找
- **智能记录选择**:更新操作时自动选择最新记录(按创建时间排序)
### 📊 数据格式化与展示
- 结构化的JSON响应解析
- 友好的中文状态显示:
- ✅ 预约成功 (状态1)
- ❌ 已取消 (状态10)
- ⚠️ 系统取消 (状态99)
- 预约窗口状态显示:
- ⏸️ 未启用 (状态0)
- ✅ 使用中 (状态1)
- ⏹️ 停止预约 (状态9)
- 🔒 已关闭 (状态10)
- 时间格式本地化显示
- **正确的座位号显示**:数据库中0显示为座位1
- 完整的预约信息展示(姓名、手机号、座位、时间等)
### 🛡️ 错误处理与安全
- 详细的错误信息返回和日志记录
- 网络异常自动重试机制
- 严格的参数验证和类型检查(使用Zod schema)
- 记录不存在时的友好提示
- 批量操作的错误隔离(单个失败不影响其他操作)
## 💻 在AI客户端中配置
### Claude Desktop 配置
将以下配置添加到 Claude Desktop 的配置文件中:
**Windows 配置路径**: `%APPDATA%\Claude\claude_desktop_config.json`
```json
{
"mcpServers": {
"reservation": {
"command": "node",
"args": ["C:\\Projects\\restweapp\\mcp-reservation-server\\dist\\index.js"],
"env": {
"WECHAT_APP_ID": "",
"WECHAT_APP_SECRET": "",
"WECHAT_ENV_ID": "cloud1-"
}
}
}
}
```
### 其他MCP客户端
对于其他支持MCP的AI客户端,使用类似的配置格式,确保:
1. 正确的可执行文件路径(指向 `dist/index.js`)
2. 环境变量设置(微信小程序配置信息)
3. 网络访问权限(需要访问微信API)
## 📊 数据库结构
服务器访问微信云开发数据库中的以下集合:
### `ax_meet` - 预约窗口表
**主要字段结构**:
```javascript
{
"_id": "数据库自动生成的ID",
"MEET_ID": "MEET_1703123456789", // 预约窗口唯一标识
"MEET_ADMIN_ID": "ADMIN_001", // 管理员ID
"MEET_TITLE": "会议室A预约", // 窗口标题
"MEET_CONTENT": [ // 描述内容数组
{
"type": "text",
"content": "大型会议室,配备投影设备"
}
],
"MEET_DAYS": [], // 可用日期数组(后续设置)
"MEET_SEAT_COUNT": 50, // 总座位数
"MEET_FORM_SET": [ // 表单字段设置
{
"title": "姓名",
"mark": "VPFCGOHJFV",
"type": "line",
"required": true
}
],
"MEET_STATUS": 1, // 状态 (0=未启用,1=使用中,9=停止,10=关闭)
"MEET_ORDER": 9999, // 排序
"MEET_ADD_TIME": 1703123456789, // 创建时间戳(毫秒)
"MEET_EDIT_TIME": 1703123456789 // 修改时间戳(毫秒)
}
```
### `ax_join` - 预约记录表
**主要字段结构**:
```javascript
{
"_id": "数据库自动生成的ID",
"JOIN_ID": "JOIN_1703123456789_abc123def", // 预约记录唯一标识
"JOIN_USER_ID": "USER_1703123456789", // 用户ID
"JOIN_MEET_ID": "MEET001", // 预约项目ID
"JOIN_MEET_TITLE": "会议室A预约", // 预约项目标题
"JOIN_MEET_DAY": "2024-02-15", // 预约日期
"JOIN_MEET_TIME_START": "14:00", // 开始时间
"JOIN_MEET_TIME_END": "16:00", // 结束时间
"JOIN_MEET_TIME_MARK": "下午时段", // 时间段标识
"JOIN_STATUS": 1, // 预约状态 (1=成功,10=已取消,99=系统取消)
"JOIN_REASON": "时间冲突", // 取消理由(可选)
"JOIN_FORMS": [ // 表单数据数组
{
"title": "姓名",
"mark": "name",
"type": "text",
"val": "张三"
},
{
"title": "手机号",
"mark": "mobile",
"type": "mobile",
"val": "13800138000"
}
],
"JOIN_SEATS": [0, 2, 5], // 座位信息数组(数据库索引:0=座位1,2=座位3,5=座位6)
"JOIN_CODE": "ABC12345", // 验证码
"JOIN_ADD_TIME": 1703123456789, // 创建时间戳(毫秒)
"JOIN_EDIT_TIME": 1703123456789, // 修改时间戳(毫秒)
"JOIN_IS_CHECKIN": 0 // 签到状态(0=未签到,1=已签到)
}
```
### 表单数据解析机制
系统智能解析 `JOIN_FORMS` 数组中的用户信息:
**姓名识别规则**:
- `mark` 字段为 "name"
- `title` 字段包含 "姓名"
- `type` 字段为 "text"
**手机号识别规则**:
- `mark` 字段为 "mobile"
- `title` 字段包含 "手机"
- `type` 字段为 "mobile"
### 座位号数据结构
**重要**:座位号存储与显示的转换规则
- **数据库存储**:`JOIN_SEATS: [0, 2, 5]`
- **界面显示**:座位1、座位3、座位6
- **转换公式**:显示座位号 = 数据库索引 + 1
## 🔐 安全说明
1. **环境变量保护**: 敏感信息通过环境变量设置,不在代码中硬编码
2. **访问控制**: 仅通过MCP协议访问,不暴露HTTP端点
3. **输入验证**: 使用Zod进行严格的参数验证和类型检查
4. **错误屏蔽**: 不暴露内部错误详情给客户端,防止信息泄露
5. **数据隔离**: 基于表单数据进行精确匹配,避免误操作
6. **批量操作安全**: 删除操作前会先查询确认记录存在
7. **预约窗口管理权限**: 创建和删除预约窗口需要管理员权限
## 🐛 故障排除
### 常见问题与解决方案
#### 1. **编译错误**
```bash
# 问题:TypeScript编译失败
# 解决:检查Node.js版本和依赖安装
node --version # 需要 >= 18
npm install # 重新安装依赖
npm run build # 重新编译
```
#### 2. **Access Token错误**
```bash
# 问题:获取access_token失败
# 解决方案:
# - 验证AppID和AppSecret正确性
# - 检查网络连接和防火墙设置
# - 确认小程序已开通云开发服务
```
#### 3. **数据库访问失败**
```bash
# 问题:数据库操作失败
# 解决方案:
# - 确认云环境ID正确
# - 检查数据库集合权限设置
# - 验证集合名称为 "ax_meet" 和 "ax_join"
```
#### 4. **查询结果为空**
```bash
# 问题:查询不到预约记录
# 解决方案:
# - 检查输入的手机号或姓名是否准确
# - 确认表单数据格式正确
# - 验证数据库中是否存在相关记录
# - 检查JOIN_FORMS数组结构
```
#### 5. **MCP连接问题**
```bash
# 问题:Claude Desktop无法连接MCP服务器
# 解决方案:
# - 检查配置文件路径是否正确
# - 验证dist/index.js文件是否存在
# - 确认环境变量设置正确
# - 重启Claude Desktop应用
```
#### 6. **MCP工具Schema错误**
```bash
# 问题:got status: 400 Bad Request, enum值类型错误
# 错误信息:Invalid value at 'tools[x].function_declarations[x].parameters.properties[x].value.enum[x]' (TYPE_STRING), 1
# 或:enum: only allowed for STRING type
# 解决方案:
# - 确认所有enum值使用字符串格式 ["1", "10", "99"] 而不是数字格式 [1, 10, 99]
# - 确认使用enum的字段类型声明为 "string" 而不是 "number"
# - MCP协议要求:使用enum的字段必须是string类型,且enum值必须是字符串
# - 重新编译和重启服务器:npm run build && npm start
```
### 调试模式
启用详细日志输出:
```bash
# 设置环境变量启用调试
set LOG_LEVEL=debug
npm start
# 或者在.env文件中添加
LOG_LEVEL=debug
```
## 📝 使用示例
配置完成后,您可以在AI客户端中使用自然语言进行预约管理:
### 🏢 预约窗口管理示例
#### 🆕 **完整创建示例**
```
1. "创建会议室A预约窗口:50个座位,明天和后天可预约,每天上午9-12点、下午2-5点"
2. "创建培训室预约窗口:
- 标题:产品培训室
- 座位数:20个
- 可预约日期:6月21日、6月22日、6月23日
- 时间段:每天上午10:00-12:00(限15人),下午14:00-17:00
- 表单字段:姓名、手机、部门(技术部/市场部/人事部)"
3. "建立报告厅预约窗口,100个座位,排序号为100,下周一到周五可预约,每天只有下午2点到5点这一个时间段"
```
#### 🔍 **查询管理示例**
```
4. "查询所有使用中的预约窗口"
5. "显示最近创建的10个预约窗口"
6. "查看已关闭的预约窗口列表"
```
#### ✏️ **更新删除示例**
```
7. "更新窗口ID为abc123的标题为新会议室"
8. "将窗口ID为def456的状态改为已关闭"
9. "删除不需要的预约窗口xyz999"
```
### 📋 查询操作示例
```
7. "帮我查询所有预约记录"
8. "查询手机号13800138000的预约信息"
9. "查找张三的预约记录"
10. "查询今天的所有预约"
11. "显示已取消的预约记录"
12. "查看状态为成功的最近50条预约"
13. "帮我找一下李四的所有预约信息"
```
### ⏰ 时间修改操作示例
```
14. "将手机号13800138000的预约时间改为明天下午2点到4点"
15. "修改张三的预约时间到2024-02-15 10:00-12:00"
16. "把李四的预约改到下周一上午9点到11点"
17. "将15912345678的预约调整到后天下午3点到5点"
```
### 🗑️ 删除操作示例
```
18. "删除手机号13800138000的所有预约记录"
19. "清除张三的预约信息"
20. "取消李四的所有预约"
```
## 🆕 新功能优势
与现有系统相比,新增的MCP服务器具有以下优势:
### 🎯 **多维度管理能力**
- **传统方式**: 只能通过小程序后台管理预约窗口
- **MCP增强**: 可以通过AI助手直接创建、查询、更新、删除预约窗口
- **智能操作**: 自然语言交互,无需记忆复杂的操作步骤
### 🔄 **批量操作支持**
- **传统方式**: 只能逐个处理预约记录
- **MCP增强**: 可以同时处理一个人的多条预约记录
- **安全保障**: 批量操作前会先查询确认,避免误操作
### 🧠 **智能记录选择**
- **传统方式**: 需要明确指定要操作的记录ID
- **MCP增强**: 当存在多条记录时,自动选择最新的记录进行操作
- **用户友好**: 减少用户的选择困扰,提升操作效率
### 🪑 **座位号智能转换**
- **数据一致性**: 自动处理数据库索引与用户界面座位号的转换
- **用户友好**: 用户说"座位1"时系统自动转换为数据库中的0
- **显示优化**: 查询结果中座位号按用户习惯显示(1, 2, 3...)
### 🛡️ **安全可靠性**
- **严格验证**: 使用Zod schema进行参数类型和格式验证
- **错误处理**: 完善的错误捕获和用户友好的提示信息
- **操作日志**: 详细的操作记录和错误日志便于问题追踪
### 🎨 **用户体验优化**
- **自然语言**: 支持自然语言交互,无需记忆复杂的命令格式
- **直观反馈**: 中文状态显示和emoji图标,信息展示更加直观
- **智能提示**: 操作结果包含详细信息,如影响的记录数量等
## 🔄 与现有系统集成
这个MCP服务器完全兼容您现有的微信云开发预约系统:
### ✅ **完全兼容**
- 使用相同的API端点和认证方式
- 保持数据库结构不变,无需迁移数据
- 不影响小程序正常运行
- 可以与现有管理后台并行使用
### 🔄 **实时同步**
- 支持实时数据同步,修改立即生效
- 与小程序端数据保持一致
- 支持多客户端同时操作
### 📈 **系统增强**
- 在原有功能基础上增加AI交互能力
- 提供更丰富的查询和管理功能
- 保留所有原有功能的同时扩展新能力
## 🚀 技术架构
### 📋 **核心组件**
1. **MCP服务器** (`index.ts`): 处理AI客户端请求,工具注册和调用
2. **微信API客户端** (`wechat-api.ts`): 封装微信云开发API调用
3. **类型定义** (`types.ts`): TypeScript类型定义和参数验证
### 🌐 **API集成**
- **微信云开发API**: 官方HTTP API,稳定可靠
- **MCP协议**: 标准的模型上下文协议,跨平台兼容
- **HTTPS通信**: 原生Node.js https模块,性能优异
### 🔧 **开发技术栈**
- **TypeScript**: 类型安全的JavaScript超集
- **Node.js**: 高性能的JavaScript运行时
- **Zod**: 运行时类型验证和解析
- **MCP SDK**: 官方模型上下文协议实现
## 🎯 **部署完成确认**
✅ **编译成功**: 所有TypeScript错误已修复
✅ **API验证**: 对照官方文档验证所有接口正确
✅ **功能完整**: 11个工具涵盖完整的预约和窗口管理流程
✅ **文档更新**: 部署指南包含最新修复信息
✅ **安全保障**: 完善的参数验证和错误处理
✅ **座位号转换**: 正确实现数据库索引到用户界面的转换
通过MCP协议,您现在可以使用AI助手进行更加智能化和人性化的预约窗口管理,大大提高运营效率!
## 🎉 完整功能总结报告
经过深入分析和全面重构,**所有功能现在都已完善并正常工作**!
### 📋 功能更新结果
#### 🔄 **功能变更**
1. **删除功能**:移除了创建预约记录功能(`create_reservation`)
2. **新增功能**:添加了完整的预约窗口管理功能,包含时间段设置和表单配置
3. **保留功能**:查询、更新时间、删除预约记录功能完全保留
4. **优化功能**:座位号显示逻辑优化(数据库0=座位1)
#### 🏗️ **新的业务架构**
- **管理员工作流**:通过MCP直接创建带时间段的完整预约窗口 → 用户即可预约
- **AI助手能力**:可以一步完成预约窗口的完整配置(时间段、表单字段、排序等)
- **座位号逻辑**:智能转换数据库索引和用户界面显示
### ✅ **最终功能列表(11个工具)**:
#### 🏢 **预约窗口管理(4个)**:
- `create_meet_window` - 创建预约窗口
- `query_meet_windows` - 查询预约窗口
- `update_meet_window` - 更新预约窗口
- `delete_meet_window` - 删除预约窗口
#### 📋 **预约记录查询(4个)**:
- `query_all_reservations` - 查询所有预约记录
- `query_reservations_by_mobile` - 按手机号查询
- `query_reservations_by_name` - 按姓名查询
- `query_reservations` - 通用查询
#### ⏰ **时间修改(2个)**:
- `update_reservation_time_by_mobile` - 按手机号改时间
- `update_reservation_time_by_name` - 按姓名改时间
#### 🗑️ **删除功能(1个)**:
- `delete_reservation_by_mobile` - 按手机号删除预约
### 🔐 **安全性提升**:
- 严格的参数验证和类型检查
- 完善的错误处理和日志记录
- 座位号转换的数据一致性保障
- 自动生成唯一的时间段和表单字段标识
### 📈 **用户体验改善**:
- 自然语言交互界面
- 智能的座位号显示(数据库0显示为座位1)
- 友好的中文状态提示
- 详细的操作结果反馈
- 一步完成预约窗口的完整配置(无需后续设置)
### 🚀 **新功能亮点**:
- **时间段智能设置**:支持多日期、多时间段配置,每个时间段可设置人数限制
- **表单字段自定义**:支持文本、手机、选择、文本域等多种类型
- **自动标识生成**:系统自动生成时间段标记和表单字段标记
- **完整性验证**:创建时验证所有必填项目,确保数据完整性
**🎉 恭喜!MCP预约服务器现在支持完整的预约窗口管理功能,包含时间段设置和用户表单配置,一步到位创建可用的预约窗口!同时保持了原有的预约记录管理能力,所有11个工具都可以正常使用!**
---
## 📞 技术支持
如果在使用过程中遇到问题,请检查:
1. Node.js版本是否 >= 18
2. 微信小程序配置信息是否正确
3. 网络连接是否正常
4. 数据库权限设置是否正确
更多技术细节请参考源代码注释和错误日志输出。