@striderlabs/mcp-chickfila
# @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
Scored across 7 tools
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.
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.
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.
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.