# TouchBistro MCP Server

MCP server for integrating with [TouchBistro](https://www.touchbistro.com/) restaurant POS and management system.

## Features

- **Orders**: List and retrieve order details
- **Menu Items**: Access menu item catalog
- **Reservations**: List and create reservations
- **Staff**: List staff members
- **Reports**: Get sales reports

## Setup

### Prerequisites

- Node.js 18+
- TouchBistro account with API access
- API credentials and Venue ID

### Getting API Access

Contact TouchBistro for API access through their integrations program. Visit [TouchBistro Integrations](https://www.touchbistro.com/features/integrations/) for more information.

### Installation

```bash
npm install
npm run build
```

### Environment Variables

```bash
export TOUCHBISTRO_API_KEY="your-api-key-here"
export TOUCHBISTRO_VENUE_ID="your-venue-id"
```

## Usage

### Run the server

```bash
npm start
```

### Configure in Claude Desktop

Add to your `claude_desktop_config.json`:

```json
{
  "mcpServers": {
    "touchbistro": {
      "command": "node",
      "args": ["/path/to/touchbistro/dist/index.js"],
      "env": {
        "TOUCHBISTRO_API_KEY": "your-api-key",
        "TOUCHBISTRO_VENUE_ID": "your-venue-id"
      }
    }
  }
}
```

## Available Tools

| Tool | Description |
|------|-------------|
| `list_orders` | List orders with filters for status, type, date range |
| `get_order` | Get detailed order info including items, payments, discounts |
| `list_menu_items` | List menu items by category and availability |
| `list_reservations` | List reservations by date, status, party size |
| `create_reservation` | Create a new reservation |
| `list_staff` | List staff by role and active status |
| `get_sales_report` | Generate sales reports with various groupings |

## Order Types

- `dine_in` - Dine-in orders
- `takeout` - Takeout orders
- `delivery` - Delivery orders
- `bar` - Bar orders

## Reservation Statuses

- `pending` - Awaiting confirmation
- `confirmed` - Confirmed by restaurant
- `seated` - Guest seated
- `completed` - Reservation completed
- `cancelled` - Cancelled
- `no_show` - Guest didn't show up

## Staff Roles

- `server` - Server
- `bartender` - Bartender
- `host` - Host/Hostess
- `manager` - Manager
- `kitchen` - Kitchen staff
- `cashier` - Cashier

## Report Groupings

- `day` - Daily breakdown
- `week` - Weekly breakdown
- `month` - Monthly breakdown
- `category` - By menu category
- `item` - By menu item
- `server` - By server

## API Reference

Base URL: `https://cloud.touchbistro.com/api/v1`

Authentication: Bearer token + Venue ID header

See TouchBistro partner documentation for full API details.
