餐厅AI MCP服务器使用说明
本项目是一个基于Model Context Protocol (MCP) 构建的后端服务,旨在将餐厅的运营功能(如预订、餐桌管理等)以标准化工具的形式暴露给大型语言模型(LLM)客户端。通过这些工具,LLM可以作为智能AI助手,处理顾客请求和协助餐厅员工。
项目简介
该MCP服务器通过JSON-RPC协议与LLM客户端通信,提供了一系列用于管理餐厅的核心功能。它利用Airtable作为后端数据库存储数据,并通过Vercel Serverless Functions实现API层,从而实现了高效、可扩展的餐厅管理系统。
主要功能点
- 智能预订管理:
- 实时查询指定日期、时间、人数的餐桌可用性。
- 自动创建新的顾客预订并返回确认信息。
- 通过预订ID、电话或姓名查找现有预订详情。
- 修改现有预订的日期、时间或人数。
- 取消现有预订并释放餐桌容量。
- 实时餐桌管理:
- 获取当前预计的等候时间,帮助AI处理顾客询问。
- 为入座顾客(包括预订和散客)分配餐桌并创建服务记录。
- 在顾客用餐结束后,将服务标记为完成,并更新餐桌状态为“正在清理”。
- 将已清理完毕的餐桌状态更新为“可用”,以便下次使用。
- 主机仪表盘操作:
- 获取全面的主机仪表盘数据,包括所有餐桌状态、当前活跃用餐团体和即将到来的预订,协助餐厅员工进行日常管理。
安装步骤
-
克隆仓库: 打开您的终端或命令行工具,运行以下命令将项目仓库克隆到本地:
git clone https://github.com/stefanogebara/restaurant-ai-mcp.git cd restaurant-ai-mcp -
安装依赖: 进入项目根目录后,安装所有Node.js项目依赖:
npm install -
Airtable数据库设置:
- 创建Airtable Base: 访问Airtable官网,创建一个新的Base(数据库)。
- 创建数据表: 在新创建的Base中,根据项目需求创建以下数据表。您可以参考'scripts/'目录下的文件(如 'scripts/create-tables-table.js', 'scripts/create-service-records-table.js' 等)来获取详细的字段定义。
- 'Reservations' (预订信息)
- 'Restaurant Info' (餐厅基本信息,如总容量、营业时间)
- 'Restaurant Tables' (餐桌信息及状态)
- 'Service Records' (服务记录,追踪顾客用餐会话)
- 'Waitlist' (候补名单,如果需要此功能)
- 获取Airtable ID: 获取您的Airtable Base ID、以及您创建的每个表格的ID。您还需在Airtable中生成一个Personal Access Token作为API密钥。
-
配置环境变量: 在项目根目录创建 '.env' 文件,并填入您的Airtable信息和其他相关配置。请将'YOUR_...'替换为实际的值:
# Airtable API 配置 AIRTABLE_API_KEY=YOUR_AIRTABLE_PERSONAL_ACCESS_TOKEN AIRTABLE_BASE_ID=YOUR_AIRTABLE_BASE_ID RESERVATIONS_TABLE_ID=YOUR_RESERVATIONS_TABLE_TABLE_ID RESTAURANT_INFO_TABLE_ID=YOUR_RESTAURANT_INFO_TABLE_ID TABLES_TABLE_ID=YOUR_TABLES_TABLE_ID SERVICE_RECORDS_TABLE_ID=YOUR_SERVICE_RECORDS_TABLE_ID WAITLIST_TABLE_ID=YOUR_WAITLIST_TABLE_ID # 如果使用候补名单功能 # 后端API URL (如果部署到Vercel,请替换为您的实际部署URL) API_URL=https://<YOUR_VERCEL_DEPLOYMENT_NAME>.vercel.app/api # 语音AI (ElevenLabs) 或通知服务 (Twilio, Resend) 配置 (如果需要) # TWILIO_ACCOUNT_SID=... # TWILIO_AUTH_TOKEN=... # TWILIO_PHONE_NUMBER=... # RESEND_API_KEY=... # Google Cloud Platform (Vertex AI & Gemini) 配置 (如果使用高级分析或RAG功能) # GOOGLE_CLOUD_PROJECT=YOUR_GCP_PROJECT_ID # VERTEX_AI_LOCATION=us-central1 # GOOGLE_APPLICATION_CREDENTIALS=./gcp-credentials.json # 指向您的GCP服务账户密钥文件 # GEMINI_MODEL=gemini-2.0-flash-exp'API_URL' 环境变量应指向项目 'api/' 目录中后端 API 的根路径。如果您将此项目部署到 Vercel,它将是您 Vercel 部署的公共 URL。
-
部署后端API(可选,推荐用于生产): 项目中的 'api/' 目录包含了一系列作为Vercel Serverless Functions 的后端 API。如果您计划使用这些功能并希望它们可公开访问,请部署到Vercel。
vercel --prod部署后,将上一步 '.env' 文件中的 'API_URL' 更新为您的Vercel部署URL(例如:'https://restaurant-ai-mcp.vercel.app/api')。
-
启动MCP服务器: 确保您已完成上述配置。在项目根目录,运行以下命令启动MCP服务器:
npm run start:mcp-server(注意:如果 'package.json' 中没有 'start:mcp-server' 脚本,您可以手动添加一个 '"start:mcp-server": "node mcp-server/dist/index.js"'。) 服务器将通过标准I/O (Stdio) 接口运行,等待MCP客户端连接。
服务器配置(MCP客户端使用)
MCP客户端(如Claude Desktop、Cursor或其他MCP兼容工具)需要知道如何启动并连接到您的MCP服务器。以下是您可以在MCP客户端中配置的JSON格式信息,用于建立连接:
{ "server_name": "餐厅AI智能助理", "command": "node", "args": ["<您的项目路径>/restaurant-ai-mcp/mcp-server/dist/index.js"], "description": "连接到餐厅AI MCP服务器,为LLM提供实时餐厅预订、餐桌管理和客户服务工具。", "capabilities": { "tools": [ "check_restaurant_availability", "create_reservation", "lookup_reservation", "modify_reservation", "cancel_reservation", "get_wait_time", "get_host_dashboard_data", "seat_party", "complete_service", "mark_table_clean" ] } }
- server_name: 在MCP客户端中显示的服务器友好名称。
- command: 启动Node.js服务器的命令,通常是 'node'。
- args: 启动命令的参数,这里是MCP服务器入口文件 'mcp-server/dist/index.js' 的完整路径。请将 '<您的项目路径>' 替换为您的 'restaurant-ai-mcp' 项目在本地文件系统中的绝对路径。
- description: 对MCP服务器功能的简要描述,供LLM客户端用户理解其用途。
- capabilities.tools: 明确列出了MCP服务器提供给LLM客户端的所有可用工具的名称。LLM客户端将根据这些名称来调用相应的后端功能。
基本使用方法
一旦MCP服务器成功启动并通过您的MCP客户端连接,您的LLM代理就可以利用服务器提供的工具进行智能交互了:
- 处理顾客预订请求: LLM可以调用 'check_restaurant_availability' 来检查可用性,然后使用 'create_reservation' 完成预订。
- 查询或修改预订: LLM可以使用 'lookup_reservation' 查询顾客预订详情,然后根据需要调用 'modify_reservation' 或 'cancel_reservation'。
- 辅助餐厅主机: LLM可以调用 'get_host_dashboard_data' 获取实时餐厅概览,或使用 'seat_party' 协助安排顾客入座。
- 管理餐桌状态: LLM可以通过 'complete_service' 标记用餐结束,再通过 'mark_table_clean' 确保餐桌尽快投入使用。
通过这些功能,您的LLM代理将能够有效地处理餐厅的各种运营任务和顾客互动。
信息
分类
商业系统