使用说明
德威度假酒店-申请示例
面向LLM生产力的企业MCP设计模式
演示如何设计模型上下文协议(MCP)服务器,以最大限度地提高AI代理的生产力,同时保持后端系统的完整性、性能、安全性和规模。
这表明了什么
此示例应用程序展示了 企业级MCP架构模式 在将LLM与后端系统集成时,解决了现实世界的挑战:
问题
大多数MCP实现都允许AI代理直接访问数据库或公开原始API,从而导致:
- ❌ 表现不佳 -代理为简单任务调用10多次API
- ❌ 数据完整性问题 -代理创建无效的状态转换
- ❌ 安全漏洞 -工具访问权限过于宽松
- ❌ 可扩展性瓶颈 -无缓存、重试或速率限制
- ❌ 用户体验不佳 -响应缓慢,故障频繁
解决方案:组合式MCP架构
该项目展示了 双层刀具设计 平衡LLM灵活性和企业需求:
🎯 编排器(高级工具) -针对常见场景进行了优化
- 对业务规则和先决条件进行编码
- 在3秒内执行多步骤工作流
- 以正确的依赖顺序处理状态转换
- 为80%的用例提供出色的用户体验
🧩 原子技能(构建模块) -适用于边缘情况和灵活性
- 单一责任运营
- 运行时可由AI代理组合
- 允许处理意外情况
- 保持适当的授权边界
关键结果: 人工智能代理为常见任务获得快速、经过验证的工作流程,并具有智能处理边缘情况的灵活性。
为何这很重要
企业MCP架构-基于Persona的服务器,具有编排器和原子技能
真实世界示例:客人入住
签入编排器:<3秒,6个API调用,验证先决条件,确保正确的状态转换
传统方法(具有原始Salesforce访问权限的法学硕士):
Agent makes 15+ separate API calls:
1. Search for guest → 400ms
2. Validate guest exists → 200ms
3. Search for booking → 400ms
4. Check booking status → 200ms
5. Validate room number → 200ms
6. Search for room → 400ms
7. Check room status → 200ms
8. Update booking status → 300ms
9. Update room status → 300ms
10. Update opportunity → 300ms
... error handling, retries ...
Total time: 8-12 seconds
Failure rate: 15-20% (race conditions, validation errors)
企业MCP方法(编排器):
Agent calls one orchestrator:
POST /check-in-guest {guest_email, check_in_date}
Orchestrator internally:
- Validates prerequisites in parallel (3 reads)
- Executes state transitions in order (3 updates)
- Handles errors gracefully
- Ensures data integrity
Total time: < 3 seconds
Failure rate: < 2% (only fails on legitimate business rule violations)
结果: 速度提高3-4x,错误减少90%,用户体验更好。
使用原子技能处理边缘案例
脚本: 客人说“我需要101号房间的毛巾”,但系统中不存在联系
仅限编排者的方法:
- ❌ 失败,出现“未找到联系人”错误
- ❌ 代理无法继续
- ❌ 用户体验不佳
组合方法(编排器+原子技能):
- ✅ 代理检测到缺少联系人
- ✅ 代理人组成:
create_contact→upsert_case - ✅ 使用适当的审批权限处理边缘案例
- ✅ 出色的用户体验
关键见解: 给代理商 两者 优化的工作流程和灵活性的构建块。
架构原则
1.零直接系统集成
所有数据移动都通过Workato集成中心进行
❌ DON'T: Hotel App → Salesforce (tight coupling)
❌ DON'T: Hotel App → Stripe (security risk)
❌ DON'T: LLM → Salesforce (no validation)
✅ DO: Hotel App → Workato → Salesforce (orchestrated)
✅ DO: LLM Agent → MCP Server → Workato → Backends (validated, secure)
优点:
- 演出:Workato处理缓存、连接池、重试
- 安全:具有集中身份验证的单一集成层
- 可维护性:后端更改不会破坏前端
- 可观测性:所有集成流量集中在一个地方
2.基于Persona的MCP服务器
按用户角色和“要完成的工作”组织工具
Guest MCP Server:
├── Orchestrators: check_in_guest, checkout_guest, service_request
└── Atomic Skills: search_contact, search_booking, upsert_case
Staff MCP Server:
├── Orchestrators: maintenance_request, assign_room, update_case_status
└── Atomic Skills: create_contact, search_room, update_room_status
优点:
- 安全:用户只能访问适合其角色的工具
- 演出:较小的工具上下文=更好的LLM推理
- 可用性:每个角色的相关工具
- 规模:独立服务器可以单独优化
3.识别和状态验证
每个编排器都会验证先决条件并检查重复操作
示例:签入编排器验证:
- ✅ 访客已存在(Contact.id)
- ✅ 已预订(Booking.status=已预订)
- ✅ 房间可用(Hotel_Room.status=空置)
- ✅ 此预订没有现有的入住登记(幂等性)
优点:
- 数据完整性:没有无效的状态转换
- 可靠性:重试安全操作
- 错误处理:清晰、可操作的错误消息
- 审计跟踪:记录所有验证
4.性能优化
编排器最大限度地减少API调用和延迟
演示的技术:
- 并行执行:读取操作并发执行
- 依赖关系排序:更新按正确顺序执行
- 批量操作:尽可能在单个事务中进行多次更新
- 缓存:Workato缓存连接池和引用数据
- 断路器:在下游停机时快速失效
结果: 典型的编排器在<3秒内完成4-6次API调用。
包含内容
MCP服务器实现(Workato)
作为MCP工具组织的33个食谱:
12名编排员 (高级工作流):
check_in_guest-多对象状态转换(<3s,6个API调用)checkout_guest-付款处理+房间释放service_request-客户服务案例创建maintenance_request-员工维护工作流程create_booking_orchestrator-完整预订并查看空房情况- 用于案例管理、搜索工作流的额外协调器
21原子技能 (构建模块):
- Salesforce(15):搜索_联系、搜索_预订、搜索_房间、创建_联系、更新_预订_状态、更新_案例等。
- 条纹(6):create_customer、create_payment_int、confirm_payment、retrieve_status、create_refund
酒店管理应用程序(Next.js)
- 访客门户:服务请求、房间控制、计费、人工智能助理
- 经理门户:仪表板、维护管理、房间操作
- MCP集成:演示如何从应用程序代码调用企业MCP服务器
- 本地数据库:SQLite用于特定于应用程序的数据(会话、UI状态)
后端系统
- 赛富时:记录系统(预订、房间、案例、联系人、机会)
- 条纹:付款处理(可选)
- 特威里奥:短信通知(可选)
快速开始
单线安装(推荐)
Mac/Linux:
curl -fsSL https://raw.githubusercontent.com/workato-devs/dewy-resort/main/bootstrap.sh | bash
Windows(PowerShell):
powershell -ExecutionPolicy Bypass -Command "Invoke-Expression (curl https://raw.githubusercontent.com/workato-devs/dewy-resort/main/bootstrap.ps1 -UseBasicParsing)"
引导脚本会自动安装所有依赖项(Node.js v20、Git)并设置项目。
然后切换到项目目录:
cd dewy-resort
手动设置
先决条件:
- Node.js 20+
- Workato开发者沙盒 (免费开发者沙盒)
- Salesforce开发人员组织 (免费开发者版)
- Stripe开发者帐户 (Stripe开发者注册)
- Workato命令行界面(
wk)--macOS/Linux:brew install workato-devs/tap/wk/视窗:scoop bucket add workato-devs https://github.com/workato-devs/scoop-bucket && scoop install wk
1.初始化项目
# Copy env template
cp .env.example app/.env
# Install app dependencies and initialize local database
cd app
npm install
npm run db:setup
cd ..
2.部署Salesforce元数据⭐
Salesforce是记录系统——先部署它。
# Verify CLIs are installed
make setup
# Authenticate to Salesforce (opens browser)
sf org login web --alias myDevOrg
# Deploy metadata and seed data
make sf-deploy org=myDevOrg
📚 请参阅: Salesforce设置
3.部署Workato MCP服务器⭐
Workato实现了企业MCP架构。
# Authenticate with your Workato workspace
make workato-login
# Initialize Workato project and push recipes
make workato-init
make push
接下来,在Workato UI中配置连接:
- 首选 项目→ 工作区连接 并连接您的 赛富时 组织
- 可选连接 条纹 (沙盒模式,
sk_test_按键)
# Start all recipes
make start-recipes
⚠️ 重要: 4个具有动态SOQL查询的配方在开始之前可能需要手动链接其Salesforce连接。有关步骤,请参阅详细指南。
📚 请参阅: Workato设置
4.配置API和MCP
设置API集合、终结点和MCP服务器:
# Create API collections, endpoints, and API client (writes credentials to app/.env)
make setup-api
# Enable all API endpoints
make enable-api-endpoints
# Create MCP servers and write URLs/tokens to app/.env
make setup-mcp
5.启动应用程序
app/scripts/dev-tools/server.sh start
学习路径
研讨会参与者
目标: 了解企业MCP设计模式
- 从这里开始: 查看中的架构图
app/docs/architecture/ - 探索: 比较编排器与原子技能模式
- 观察: 签入编排器流程(先决条件、状态转换、错误处理)
- 实验: 尝试边缘情况(联系人丢失、双重入住、无效房间)
- 反映: 为什么管弦乐器更快?为什么原子技能很重要?
面向构建MCP服务器的开发人员
目标: 将这些模式应用于您自己的项目
- 架构: 学习 系统架构.png
- 实施: 在中查看Workato食谱
workato/目录 - 模式: 阅读 WORKATO_SETUP.md 详细的模式解释
- 适应: 考虑如何将编排器+原子技能模式应用于您的领域
关键要点
✅ 常见场景的编排器 -快速、经过验证、出色的用户体验 ✅ 原子技能带来灵活性 -智能处理边缘案例 ✅ 零直接集成 -全部通过中央枢纽 ✅ 基于Persona的服务器 -安全性、性能、可用性 ✅ 识别和验证 -数据完整性、可靠性 ✅ 性能优化 -并行读取,依赖关系排序
其他资源
设置指南
- Salesforce设置 -部署自定义对象和种子数据
- Workato设置 -部署MCP服务器配方
- 架构图 -所有工作流的可视化文档
可选功能
- 条纹集成 -付款处理
- Cognito身份验证 -用户身份验证(车间便利)
- Bedrock人工智能聊天 -人工智能助手(可选)
技术细节
- Salesforce元数据 -完整的对象和字段文档
- 项目结构 -代码库组织
- CLI命令 -自动化脚本
项目结构
dewy-resort/
├── workato/ # ⭐ MCP SERVER IMPLEMENTATION
│ ├── recipes/
│ │ ├── atomic-salesforce-recipes/ # 15 atomic skills
│ │ ├── atomic-stripe-recipes/ # 6 payment atomic skills
│ │ ├── orchestrator-recipes/ # 13 high-level orchestrators
│ │ ├── home-assistant/ # Home Assistant integration
│ │ ├── sf-api-collection/ # API Collection definitions
│ │ └── Workspace Connections/ # Connection configs
├── app/ # Next.js application
│ ├── src/ # Application source
│ ├── docs/
│ │ └── architecture/ # ⭐ ARCHITECTURE DIAGRAMS
│ │ ├── system-architecture.png
│ │ ├── guest-checkin-flow.png
│ │ ├── guest-checkout-flow.png
│ │ ├── guest-service-request-flow.png
│ │ └── maintenance-request-flow.png
│ └── public/ # Static assets
├── vendor/
│ ├── workato/ # Workato docs & scripts
│ │ ├── docs/
│ │ │ └── WORKATO_SETUP.md
│ │ └── scripts/
│ ├── salesforce/ # Salesforce metadata & deployment
│ │ ├── force-app/ # Custom objects, fields, app
│ │ ├── data/ # Seed data
│ │ ├── docs/
│ │ │ └── SALESFORCE_SETUP.md
│ │ └── scripts/
│ │ └── deploy.sh
│ ├── aws/ # CloudFormation templates
│ └── okta/ # Okta auth config
CLI命令
# Setup
make setup # Verify CLI installations
make workato-login # Authenticate wk CLI with API token
# Workato (MCP Server) — requires wk CLI (brew install workato-devs/tap/wk)
make workato-init # Initialize wk project & pull recipes
make validate # Lint all recipes
make push # Push recipes to workspace
make pull # Pull recipes from workspace
make start-recipes # Start all recipes
make stop-recipes # Stop all recipes
make setup-api # Create API collections, endpoints & client
make enable-api-endpoints # Enable API endpoints
make setup-mcp # Create MCP servers & write config to app/.env
# Salesforce (Backend)
make sf-deploy org=<alias> # Deploy metadata and seed data
# Diagnostics
make status # Check all CLI status
make doctor # Verify CLI installations
模拟模式(仅限开发)
对于没有后端设置的前端开发:
# In .env
WORKATO_MOCK_MODE=true
# Restart server
npm run dev
⚠️ 注: 模拟模式模拟MCP响应。仅用于前端工作,不用于学习MCP架构模式。
可选功能
Cognito身份验证(车间便利性)
对于参与者没有自己身份的研讨会:
AUTH_PROVIDER=cognito
# Deploy Cognito User Pool
cd aws/cloudformation
./deploy.sh dev http://localhost:3000/api/auth/cognito/callback http://localhost:3000 dewy-hotel
Bedrock AI聊天(可选)
人工智能聊天助手(演示LLM+MCP集成):
# Deploy Identity Pool
cd aws/cloudformation
./deploy-identity-pool.sh dev <user-pool-id> <client-id>
# Configure in .env
COGNITO_IDENTITY_POOL_ID=your_pool_id
技术栈
- MCP服务器:Workato(33个食谱,以编排者和原子技能的形式组织)
- 后端系统:Salesforce(客户关系管理)、Stripe(支付)、Twilio(短信)
- 应用:Next.js 14、React、TypeScript、顺风CSS
- 数据库:SQLite(仅限本地应用程序数据)
- 认证:Amazon Cognito(可选)或模拟模式
- 人工智能:Amazon Bedrock(可选聊天助手)
为什么选择Workato?
此示例使用 计算机 作为MCP服务器实现,但架构模式适用于任何集成平台:
✅ 可视化配方生成器 -易于理解的工作流程 ✅ 内置连接器 -Salesforce、Stripe、Twilio开箱即用 ✅ API集合 -本机REST API公开 ✅ 企业特性 -错误处理、重试、日志记录、监控 ✅ 车间友好 -视觉表现有助于学习
这些模式适用于: 自定义API、无服务器功能、其他编排系统等。
许可证
麻省理工学院
问题?
这是一个 企业MCP设计模式教学示例应用目标是演示如何构建MCP服务器,以最大限度地提高LLM生产率,同时保持后端完整性、性能、安全性和规模。
重点领域:
- 为什么管弦乐器对性能和用户体验很重要
- 何时使用原子技能与管弦乐器
- 如何设计基于角色的MCP服务器
- 幂等性和状态验证模式
- 零直接系统集成架构
有关实现的详细信息,请参阅中的设置指南 vendor/workato/docs/ 和 vendor/salesforce/docs/.
