Toast团队机器人
用于Toast餐厅运营的Microsoft Teams机器人。查询菜单、检查订单、监控系统健康状况,并直接在Teams中接收操作警报。
建筑
[Teams User] <> [This Bot] <> [Toast MCP Server] <> [Toast API]
|
MCP Client
(Streamable HTTP)此机器人充当MCP客户端,连接到单独部署的 Toast MCP服务器 处理Toast API身份验证和数据访问。该机器人处理团队特定的问题:消息路由、自适应卡、主动消息传递和用户交互。
特性
交互式命令
| 命令 | 描述 |
|---|---|
health | 运行完整的系统健康检查 |
menus | 显示菜单概述 |
menu search [term] | 按关键字搜索菜单项 |
orders | 列出今天的订单 |
order [guid] | 获取特定订单的详细信息 |
config | 显示餐厅配置 |
status | 检查Toast API身份验证状态 |
capabilities | 显示可用功能 |
自适应卡
所有响应均以Adaptive Cards v1.5呈现,其中包含:
- 全宽布局,便于阅读
- 结构化数据的FactSets
- 颜色编码的健康状态指示器
- 包含价格和类别的菜单项
- 包含服务器名称和总计的订单列表
主动消息传递(基础)
该机器人存储对话参考,并包括一个主动信使模块,用于向Teams频道发送警报。当与MCP服务器端的事件摄取结合使用时,这将启用:
- 健康检查失败警报
- 订单量阈值通知
- 菜单更改通知
先决条件
- Toast MCP服务器 已部署并可通过HTTP访问(请参见 吐司mcp服务器)
- Azure Bot注册 (单租户)
- Node.js 18+
设置
1.注册Azure Bot
- 去 Azure 门户
- 创建新的“Azure Bot”资源
- 为机器人类型选择“单一租户”
- 注意 应用ID, 应用程序密码,以及 租户ID
2.配置
cp .env.example .env填写:
BOT_ID,BOT_PASSWORD,BOT_TENANT_ID从Azure Bot注册MCP_SERVER_URL指向Toast MCP服务器HTTP端点MCP_API_KEY如果您的MCP服务器需要身份验证
3.安装和构建
npm install
npm run build4.跑步
npm start默认情况下,机器人监听端口3978(可通过以下方式配置 PORT).
5.本地测试
6.部署到团队
- 更新
appPackage/manifest.json使用您的Bot ID - 添加图标文件(
color.png192x192,outline.png32x32)至appPackage/ - 压缩内容
appPackage/进入一个.zip文件 - 上传到Teams管理中心或侧面加载进行测试
环境变量
| 变量 | 必填 | 默认 | 描述 |
|---|---|---|---|
| BOT_ID | 是 | Azure BOT应用程序ID | |
| BOT_PASSWORD | 是 | Azure BOT应用程序密码 | |
| BOT_TENNT_ID | 是 | Azure AD租户ID | |
| BOT_TYPE | 否 | 单租户 | 机器人类型 |
| MCP_SERVER_URL | 是 | Toast MCP服务器HTTP端点 | |
| MCP_API_KEY | 否 | MCP服务器身份验证的API密钥 | |
| 端口 | 否 | 3978 | HTTP服务器端口 |
| ALERT_CHANNEL_ID | 否 | 警报的团队通道ID | |
| LOGLEVEL | 否 | 信息 | 日志详细程度 |
部署
码头工人
docker build -t toast-teams-bot .
docker run -p 3978:3978 --env-file .env toast-teams-botAzure容器应用
az containerapp create \
--name toast-teams-bot \
--resource-group your-rg \
--environment your-env \
--image your-registry/toast-teams-bot:latest \
--target-port 3978 \
--ingress external \
--env-vars \
BOT_ID=secretref:bot-id \
BOT_PASSWORD=secretref:bot-password \
BOT_TENANT_ID=your-tenant-id \
MCP_SERVER_URL=https://your-mcp-server.com/mcp \
MCP_API_KEY=secretref:mcp-api-key将Azure Bot的消息传递终结点设置为: https://your-app.azurecontainerapps.io/api/messages
项目结构
src/
bot/
handler.ts # Message routing and command handling
proactive.ts # Proactive messaging to Teams channels
cards/
templates.ts # Adaptive Card v1.5 templates
config/
index.ts # Environment configuration
mcp/
client.ts # MCP client for Toast MCP Server
index.ts # Entry point (Express + Bot Framework)
appPackage/
manifest.json # Teams app manifest路线图
- 事件驱动的警报(健康故障、订单阈值)
- 人工智能驱动的自然语言查询(LLM集成)
- 带图表的仪表板摘要卡
- 班次和劳动力数据视图
- 多地点支持
- Copilot Studio代理作为备选部署路径
许可证
麻省理工学院
