Jake Shore 2c41d0fb3b toast: Complete rebuild with 76 tools, 18 React apps, and HTTP+stdio modes
- Rebuilt src/tools/ with 10 files covering all Toast API domains
  * orders.ts (12 tools) - Complete order lifecycle
  * menus.ts (11 tools) - Menu and item management
  * employees.ts (9 tools) - Staff management
  * restaurant.ts (9 tools) - Configuration
  * cash.ts (8 tools) - Cash management
  * labor.ts (6 tools) - Workforce analytics
  * payments.ts (6 tools) - Transactions
  * reporting.ts (6 tools) - Analytics
  * inventory.ts (5 tools) - Stock management
  * customers.ts (4 tools) - CRM

- Built src/ui/react-app/ with 18 client-side apps
  * Orders: order-dashboard, order-detail, order-grid, table-map
  * Menus: menu-manager, menu-item-detail, menu-performance
  * Staff: employee-dashboard, employee-schedule, labor-dashboard, tip-summary
  * Finance: payment-history, sales-dashboard, revenue-by-hour
  * Ops: inventory-tracker, restaurant-overview
  * CRM: customer-detail, customer-loyalty

- Built server.ts + main.ts supporting both stdio and HTTP modes
- Updated package.json, tsconfig.json, comprehensive README.md
- Dark theme UI (#0f0f0f bg, #00bfa5 accent)
- Client-side state management with sample data
2026-02-12 18:24:34 -05:00

318 lines
7.4 KiB
Markdown

# Toast MCP Server
Complete Model Context Protocol (MCP) server for Toast restaurant POS and management platform integration.
## 🚀 Features
### 50+ Tools Across 10 Categories
1. **Orders (12 tools)** - Complete order lifecycle management
- Get, list, create, void orders
- Search by customer, business date
- Add/void selections, apply discounts
- Update promised times, track status
2. **Menus (11 tools)** - Full menu and item management
- List/get menus, groups, items
- Search items, update pricing
- 86 management (out of stock)
- Bulk operations
3. **Employees (9 tools)** - Staff management
- Employee CRUD operations
- Job position management
- Search and filtering
- Time entry tracking
4. **Labor (6 tools)** - Workforce analytics
- Shift management
- Active shift tracking
- Labor reports and summaries
- Employee hours calculation
5. **Restaurant (9 tools)** - Configuration and settings
- Restaurant info and access
- Tables and service areas
- Dining options, revenue centers
- Online ordering and delivery settings
6. **Payments (6 tools)** - Transaction management
- Payment CRUD operations
- Refunds and voids
- Payment summaries by type
7. **Inventory (5 tools)** - Stock management
- Stock level tracking
- Low stock alerts
- Quantity updates
- Bulk operations
8. **Customers (4 tools)** - Customer relationship management
- Customer search and profiles
- Order history
- Loyalty program integration
- Top customers analysis
9. **Reporting (6 tools)** - Analytics and insights
- Sales summaries
- Hourly breakdown
- Item sales reports
- Payment type, discount, and void reports
10. **Cash (8 tools)** - Cash management
- Cash drawer tracking
- Paid in/out entries
- Deposit recording
- Drawer summaries
### 18 React Apps (Client-Side UI)
**Orders & Service:**
- Order Dashboard - Real-time monitoring
- Order Detail - Deep order inspection
- Order Grid - Multi-order management
- Table Map - Visual floor plan
**Menu Management:**
- Menu Manager - Full menu editing
- Menu Item Detail - Item configuration
- Menu Performance - Sales analytics
**Staff & Labor:**
- Employee Dashboard - Staff directory
- Employee Schedule - Shift planning
- Labor Dashboard - Cost tracking
- Tip Summary - Earnings distribution
**Payments & Finance:**
- Payment History - Transaction log
- Sales Dashboard - Comprehensive metrics
- Revenue by Hour - Hourly analysis
**Inventory & Operations:**
- Inventory Tracker - Stock management
- Restaurant Overview - System config
**Customer Management:**
- Customer Detail - Profiles and history
- Customer Loyalty - Rewards tracking
## 📦 Installation
```bash
npm install @busybee3333/toast-mcp-server
```
Or clone and build locally:
```bash
git clone https://github.com/BusyBee3333/mcpengine.git
cd mcpengine/servers/toast
npm install
npm run build
```
## 🔧 Configuration
Set required environment variables:
```bash
export TOAST_CLIENT_ID="your_client_id"
export TOAST_CLIENT_SECRET="your_client_secret"
export TOAST_RESTAURANT_GUID="your_restaurant_guid" # Optional
export TOAST_ENVIRONMENT="production" # or "sandbox"
```
## 🎯 Usage
### Stdio Mode (MCP Integration)
```bash
toast-mcp-server
```
Or via npx:
```bash
npx @busybee3333/toast-mcp-server
```
### HTTP Mode (Web UI + API)
```bash
TOAST_MCP_MODE=http TOAST_MCP_PORT=3000 toast-mcp-server
```
Access UI at: `http://localhost:3000/apps/`
### Claude Desktop Integration
Add to your Claude Desktop config (`~/Library/Application Support/Claude/claude_desktop_config.json`):
```json
{
"mcpServers": {
"toast": {
"command": "npx",
"args": [
"@busybee3333/toast-mcp-server"
],
"env": {
"TOAST_CLIENT_ID": "your_client_id",
"TOAST_CLIENT_SECRET": "your_client_secret",
"TOAST_RESTAURANT_GUID": "your_restaurant_guid",
"TOAST_ENVIRONMENT": "production"
}
}
}
}
```
## 🛠️ Tool Examples
### Get Order
```json
{
"name": "toast_get_order",
"arguments": {
"orderGuid": "550e8400-e29b-41d4-a716-446655440000"
}
}
```
### List Orders for Business Date
```json
{
"name": "toast_list_orders",
"arguments": {
"businessDate": 20240215
}
}
```
### Create Order
```json
{
"name": "toast_create_order",
"arguments": {
"source": "ONLINE",
"selections": [
{
"itemGuid": "item-123",
"quantity": 2
}
],
"customer": {
"firstName": "John",
"lastName": "Doe",
"phone": "+15551234567"
}
}
}
```
### Mark Item 86'd
```json
{
"name": "toast_set_item_86",
"arguments": {
"itemGuid": "item-456",
"outOfStock": true
}
}
```
### Get Sales Summary
```json
{
"name": "toast_get_sales_summary",
"arguments": {
"businessDate": 20240215
}
}
```
## 🏗️ Architecture
```
toast/
├── src/
│ ├── clients/
│ │ └── toast.ts # Toast API client with auth
│ ├── tools/
│ │ ├── orders.ts # 12 order tools
│ │ ├── menus.ts # 11 menu tools
│ │ ├── employees.ts # 9 employee tools
│ │ ├── labor.ts # 6 labor tools
│ │ ├── restaurant.ts # 9 restaurant tools
│ │ ├── payments.ts # 6 payment tools
│ │ ├── inventory.ts # 5 inventory tools
│ │ ├── customers.ts # 4 customer tools
│ │ ├── reporting.ts # 6 reporting tools
│ │ └── cash.ts # 8 cash tools
│ ├── types/
│ │ └── index.ts # Comprehensive TypeScript types
│ ├── ui/
│ │ └── react-app/ # 18 React apps (client-side)
│ ├── server.ts # MCP server implementation
│ └── main.ts # Entry point (stdio + HTTP)
├── package.json
├── tsconfig.json
└── README.md
```
## 📊 API Coverage
This server implements comprehensive coverage of the Toast API:
- ✅ Orders API v2 (full CRUD)
- ✅ Menus API v2 (read + update)
- ✅ Labor API v1 (employees, shifts, time entries)
- ✅ Configuration API v1 (restaurant settings)
- ✅ Stock API v1 (inventory management)
- ✅ Cash Management API v1
- ✅ Partners API v1 (restaurant access)
## 🔐 Authentication
Uses OAuth 2.0 client credentials flow with automatic token refresh. Tokens are managed internally and refreshed 5 minutes before expiration.
## 🎨 UI Theme
All 18 apps use a consistent dark theme optimized for restaurant environments:
- Background: `#0f0f0f`
- Cards: `#1a1a1a`
- Accent: `#00bfa5`
- Text: `#e0e0e0`
## 🤝 Contributing
Contributions welcome! Please see the main [mcpengine repo](https://github.com/BusyBee3333/mcpengine) for contribution guidelines.
## 📄 License
MIT © BusyBee3333
## 🔗 Links
- [Toast API Documentation](https://doc.toasttab.com/)
- [Model Context Protocol](https://modelcontextprotocol.io/)
- [MCP Engine Repository](https://github.com/BusyBee3333/mcpengine)
## 🐛 Known Issues
- HTTP mode tool execution not yet implemented (use stdio mode for MCP)
- UI apps currently use client-side demo data (connect to Toast API for live data)
## 🗓️ Roadmap
- [ ] WebSocket support for real-time order updates
- [ ] Full HTTP mode implementation
- [ ] Additional reporting endpoints
- [ ] Kitchen display system (KDS) integration
- [ ] Multi-location support
---
**Built with ❤️ for the restaurant industry**