mcpField
B
Booking System (Fixed)

Booking System (Fixed)

本地服务
github.com/Konstrex生产力085 周前更新

关于 Booking System (Fixed)

Booking System (Fixed) 是面向 Andriana Delcheva、运行于 Cloudflare Workers 的预约应用。它结合 Google Calendar 可用时段检查与事件创建、邮件确认,并可通过 MCP 处理流程。

主要功能

  1. 01分步骤预约流程
  2. 02检查 Google Calendar 可用时段
  3. 03创建 Google Calendar 事件
  4. 04发送预约确认邮件
  5. 05适配手机和桌面设备
  6. 06通过 MCP 上报事件和错误

适用场景

  1. 01预约前检查空闲时段
  2. 02预约后创建日历事件
  3. 03向客户发送预约详情
  4. 04将预约事件和错误转发至 MCP

MCP 相关

应用可向 MCP 服务发送可用时段、预约、邮件、日历和错误事件;配置后也可将预约流程交由 MCP 处理。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

预约系统(修复版)

此代码仓库包含为 Andriana Delcheva 修复后的预约系统版本,解决了先前实现中的多个关键问题。该系统设计为在 Cloudflare Workers 上运行,并与 Google Calendar 和 MCP 服务集成。

🛠️ 修复的问题

此实现解决了原系统中存在的以下问题:

  1. 修复预约完成流程 - 用户现在可以成功选择日期并完成预约。
  2. 修复确认邮件 - 预约成功后现在会发送确认邮件。
  3. 修复 Google Calendar 集成 - 预约现在会在 Google Calendar 中创建事件。
  4. 实现可用时段检查 - 系统会在确认预约前检查可用时段。
  5. 实现 MCP 服务集成 - 后端处理使用 MCP 服务以增强功能。

🌟 主要功能

  • 多步骤预约流程 - 直观的分步预约流程,提升用户体验
  • 实时可用时段检查 - 检查 Google Calendar 中是否存在冲突
  • 自动发送确认邮件 - 向客户发送详细信息
  • Google Calendar 集成 - 创建包含服务详情的日历事件
  • MCP 服务集成 - 跟踪预约事件并提供增强的处理能力
  • 全面的错误处理 - 为用户提供有意义的反馈
  • 响应式设计 - 适用于手机和桌面设备

🚀 部署

前提条件
  • Cloudflare Workers 账户
  • 已启用 Calendar API 的 Google Cloud 项目
  • 有权访问该 Calendar 的 Google 服务账号
  • 用于后端处理的 MCP 服务
设置说明
  1. 克隆代码仓库
git clone https://github.com/Konstrex/booking-system-fixed.git
cd booking-system-fixed
  1. 安装依赖项
npm install
  1. 配置环境变量

以下环境变量需要在 wrangler.toml 文件中设置,或使用 Cloudflare 密钥进行设置:

  • Google Calendar 集成

    • GOOGLE_CLIENT_EMAIL - 已配置为 "[email protected]"
    • GOOGLE_PRIVATE_KEY - 服务账号私钥
    • GOOGLE_CALENDAR_ID - 要使用的日历 ID
  • 电子邮件配置

    • EMAIL_FROM - 用于发送确认邮件的电子邮件地址
    • BUSINESS_NAME - 企业名称(已设为 "Andriana Delcheva")
    • BUSINESS_EMAIL - 用于回复的企业电子邮件地址
  • MCP 服务集成

    • MCP_ENABLED - 设置为 "true" 以启用 MCP 集成
    • MCP_SERVER_URL - MCP 服务的 URL
    • MCP_API_KEY - 用于向 MCP 服务进行身份验证的 API 密钥
  1. 使用 Wrangler 设置密钥

对于敏感信息,请使用 Wrangler 的密钥管理功能:

wrangler secret put GOOGLE_PRIVATE_KEY
wrangler secret put GOOGLE_CALENDAR_ID
wrangler secret put MCP_SERVER_URL
wrangler secret put MCP_API_KEY
  1. 部署到 Cloudflare Workers
npm run deploy:prod

📝 Google Calendar 设置

为确保 Google Calendar 集成正常运行:

  1. 将服务账号添加到 Google Calendar,以确保其拥有适当权限:

    • 打开 Google Calendar
    • 前往日历设置
    • 在“与特定人员共享”下,添加服务账号电子邮件地址: [email protected]
    • 将权限设为“进行更改并管理共享”
  2. JWT 身份验证已配置为使用正确的 token_uri: https://oauth2.googleapis.com/token

📧 电子邮件配置

系统使用 MCP 服务处理电子邮件通知。预约成功后,系统会发送一封包含以下内容的邮件:

  • 主题:“预约确认”
  • 预约详情(日期、时间、服务)
  • Google Calendar 链接
  • 预约参考编号

🤖 MCP 服务集成

MCP 服务用于增强功能:

  1. 事件通知 - 将关键事件通知给 MCP:

    • 可用性检查
    • 预约创建
    • 邮件确认
    • 日历事件创建
  2. 错误处理 - MCP 会接收详细的错误信息,以便监控和调试。

  3. 预约处理 - 如果已配置,系统可以将整个预约流程交由 MCP 处理。

🧪 测试

在本地测试系统:

npm run dev:local

端到端测试:

  1. 选择日期和服务
  2. 检查可用时段
  3. 输入客户信息
  4. 完成预约
  5. 验证预约是否显示在 Google Calendar 中
  6. 确认是否收到确认邮件

📚 技术实现详情

修复后的预约流程

预约流程已全面重构,确保预约时只发送一次 API 请求。主要改进:

  • 多步骤表单,并在每一步进行验证
  • 最终预约请求只调用一次 API
  • 预约失败时显示清晰的错误消息
  • API 调用期间显示加载指示器
修复后的 Google Calendar 集成

Google Calendar 集成现在:

  1. 使用服务账号进行正确的 JWT 身份验证
  2. 预约前检查是否已存在事件
  3. 创建包含所有预约信息的详细日历事件
  4. 正确格式化日期和时间
  5. 添加参与者和提醒
增强的错误处理

已实现全面的错误处理:

  • 显示具体消息的验证错误
  • 提供重试选项的网络错误处理
  • 通过 MCP 集成记录服务器错误
  • 用户友好的错误消息

📋 API 端点

检查可用性
POST /api/availability

请求正文:

{
  "date": "2025-03-15",
  "duration": 60
}

响应:

{
  "success": true,
  "availableSlots": [
    { "startTime": "09:00", "endTime": "10:00" },
    { "startTime": "10:00", "endTime": "11:00" },
    /* ... */
  ]
}
预约
POST /api/book

请求正文:

{
  "name": "John Doe",
  "email": "[email protected]",
  "phone": "+1234567890",
  "date": "2025-03-15",
  "time": "10:00",
  "services": [
    {
      "name": "Massage",
      "duration": 60,
      "price": 80
    }
  ],
  "notes": "Optional notes",
  "agreed": true
}

响应:

{
  "success": true,
  "message": "Booking created successfully",
  "bookingId": "BK-JOHNDO-123456",
  "eventId": "calendar_event_id"
}

🔄 持续改进

未来可能的改进包括:

  • 添加预约管理仪表板
  • 实现预约取消或改期
  • 添加支付集成
  • 创建客户账户系统

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。