Skip to main content
Glama
markswendsen-code

@striderlabs/mcp-chickfila

README.md
# @striderlabs/mcp-chickfila

MCP (Model Context Protocol) server connector for Chick-fil-A. Enables AI agents to interact with the Chick-fil-A website via Playwright browser automation.

## Features

- **Search Menu** — Find menu items by name or keyword
- **Nutrition Info** — Get detailed nutrition facts for any menu item
- **Find Locations** — Locate nearby restaurants by ZIP code or city
- **Add to Cart** — Add items to a mobile order cart (requires login)
- **Place Orders** — Submit mobile orders (requires Chick-fil-A One account)
- **Order Status** — Check the status of active or recent orders
- **Rewards & Points** — View Chick-fil-A One points, tier, and available rewards

## Installation

```bash
npm install @striderlabs/mcp-chickfila
npx playwright install chromium
```

## Usage

### As an MCP server (stdio)

```bash
npx @striderlabs/mcp-chickfila
```

### Claude Desktop config (`claude_desktop_config.json`)

```json
{
  "mcpServers": {
    "chickfila": {
      "command": "npx",
      "args": ["@striderlabs/mcp-chickfila"]
    }
  }
}
```

## Available Tools

| Tool | Description | Auth Required |
|------|-------------|---------------|
| `search_menu` | Search menu items by keyword | No |
| `get_nutrition` | Get nutrition facts for an item | No |
| `find_locations` | Find nearby restaurants | No |
| `add_to_cart` | Add items to mobile order cart | Yes |
| `place_order` | Submit a mobile order | Yes |
| `check_order_status` | View order status/history | Yes |
| `view_rewards` | View points and rewards | Yes |

### Tool Details

#### `search_menu`
```json
{
  "query": "spicy chicken sandwich",
  "category": "entrees"  // optional
}
```

#### `get_nutrition`
```json
{
  "item_name": "Spicy Deluxe Sandwich"
}
```

#### `find_locations`
```json
{
  "zip_or_city": "30301",
  "radius_miles": 10
}
```

#### `add_to_cart`
```json
{
  "item_name": "Chicken Sandwich",
  "quantity": 2,
  "customizations": "no pickles, extra sauce"
}
```

#### `place_order`
```json
{
  "location_id": "03498",
  "payment_method": "saved card",
  "special_instructions": "curbside pickup, blue car"
}
```

#### `check_order_status`
```json
{
  "order_id": "CFA-20241215-001"  // optional, omit for recent history
}
```

#### `view_rewards`
```json
{}
```

## Authentication

Tools that require authentication (`add_to_cart`, `place_order`, `check_order_status`, `view_rewards`) need an active Chick-fil-A One session. The browser context persists across tool calls within a session, so you can navigate to `https://www.chick-fil-a.com/one/login` to authenticate before using these tools.

## Requirements

- Node.js >= 18
- Playwright with Chromium (`npx playwright install chromium`)

## License

MIT

TDQS

A3.9/5.0

Scored across 7 tools

Disambiguation5/5

Each tool addresses a distinct function: menu search, nutrition lookup, location finder, cart management, order placement, order status, and rewards. There is no overlap or ambiguity between them.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern (search_menu, get_nutrition, find_locations, add_to_cart, place_order, check_order_status, view_rewards) using lowercase with underscores, making the set predictable and easy to navigate.

Tool Count5/5

With 7 tools, the server is well-scoped for its purpose, covering the essential user flow from discovery to ordering without unnecessary bloat or minimalism. The count falls comfortably within the ideal range.

Completeness4/5

The tool set covers the core lifecycle: search, nutrition, location selection, add to cart, place order, and check status, plus rewards. Minor gaps exist such as no remove-from-cart or order history, but the main workflows are fully supported.

Maintenance

ActivityInactive
ResponsivenessNo issues