npm package: @striderlabs/mcp-homedepot
Description: MCP server connector for Home Depot — search products, check inventory, manage cart, track orders via browser automation
Author: Strider Labs
Latest version: 0.1.0

# @striderlabs/mcp-homedepot

MCP (Model Context Protocol) server connector for Home Depot. Enables AI assistants to search products, check store inventory, manage carts, schedule deliveries, and track orders on HomeDepot.com via browser automation.

## Installation

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

Or install globally:

```bash
npm install -g @striderlabs/mcp-homedepot
```

## MCP Configuration

Add to your MCP client config (e.g., Claude Desktop `claude_desktop_config.json`):

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

## Tools

### `status`
Check Home Depot authentication status and session info.

**Parameters:** none

---

### `login`
Authenticate with your Home Depot account via browser automation.

**Parameters:**
| Name | Type | Required | Description |
|------|------|----------|-------------|
| `email` | string | ✅ | Home Depot account email |
| `password` | string | ✅ | Home Depot account password |
| `headless` | boolean | | Run browser headlessly (default: `true`). Set `false` to see the browser window. |

Credentials are never stored — only session cookies are persisted to `~/.striderlabs/homedepot/`.

---

### `logout`
Clear session cookies and log out.

**Parameters:** none

---

### `search_products`
Search Home Depot products with optional filters and sorting.

**Parameters:**
| Name | Type | Required | Description |
|------|------|----------|-------------|
| `query` | string | ✅ | Search term |
| `min_price` | number | | Minimum price filter |
| `max_price` | number | | Maximum price filter |
| `sort_by` | string | | Sort order: `best_match`, `top_sellers`, `price_low`, `price_high`, `top_rated`, `new_arrivals` |
| `limit` | number | | Max results (default: 10, max: 24) |

---

### `get_product`
Get detailed product information including price, description, and availability.

**Parameters:**
| Name | Type | Required | Description |
|------|------|----------|-------------|
| `url` | string | | Full Home Depot product URL |
| `item_id` | string | | Home Depot Internet # / item ID |

_Provide either `url` or `item_id`._

---

### `check_inventory`
Check product inventory at a specific store or nearby stores.

**Parameters:**
| Name | Type | Required | Description |
|------|------|----------|-------------|
| `item_id` | string | | Home Depot Internet # / item ID |
| `url` | string | | Product URL (alternative to item_id) |
| `zip_code` | string | | ZIP code to find nearby stores |
| `store_id` | string | | Specific store ID to check |

_Provide either `url` or `item_id`._

---

### `get_store_info`
Get details about a Home Depot store including hours, address, and departments.

**Parameters:**
| Name | Type | Required | Description |
|------|------|----------|-------------|
| `store_id` | string | | Home Depot store ID number |
| `zip_code` | string | | ZIP code to find nearest store |

_Provide either `store_id` or `zip_code`._

---

### `add_to_cart`
Add a product to your Home Depot cart.

**Parameters:**
| Name | Type | Required | Description |
|------|------|----------|-------------|
| `url` | string | | Home Depot product URL |
| `item_id` | string | | Home Depot Internet # / item ID |
| `quantity` | number | | Quantity (default: 1) |
| `fulfillment` | string | | `pickup`, `delivery`, or `ship_to_store` (default: `delivery`) |

_Requires login._

---

### `view_cart`
View current cart contents and totals.

**Parameters:** none
_Requires login._

---

### `checkout`
Preview or place a Home Depot order.

**Parameters:**
| Name | Type | Required | Description |
|------|------|----------|-------------|
| `confirm` | boolean | | Set `true` to place the order. Default `false` (preview only). |

_Requires login. Always preview first before confirming._

---

### `schedule_delivery`
Schedule or reschedule delivery for cart items or an existing order.

**Parameters:**
| Name | Type | Required | Description |
|------|------|----------|-------------|
| `order_id` | string | | Order ID to reschedule (omit for current cart) |
| `preferred_date` | string | | Preferred delivery date (`YYYY-MM-DD`) |
| `address` | string | | Delivery address |

_Requires login._

---

### `track_order`
Track an order's status and delivery information.

**Parameters:**
| Name | Type | Required | Description |
|------|------|----------|-------------|
| `order_id` | string | ✅ | Home Depot order ID |

_Requires login._

---

### `get_orders`
Get order history.

**Parameters:**
| Name | Type | Required | Description |
|------|------|----------|-------------|
| `limit` | number | | Number of recent orders (default: 10) |

_Requires login._

---

## Session Storage

Session cookies are stored at `~/.striderlabs/homedepot/`:
- `cookies.json` — Browser session cookies
- `auth.json` — Account metadata (email, login timestamp)

Credentials (email/password) are **never** persisted.

## Technical Details

- **Transport:** stdio (MCP standard)
- **Browser automation:** Playwright with Chromium + stealth patches
- **Stealth:** Patches `navigator.webdriver`, plugins, permissions, and other bot-detection vectors
- **Cookie persistence:** Survives across sessions; no repeated logins needed

## Notes

- HomeDepot.com may prompt for CAPTCHA or additional verification on first login. Use `headless: false` to handle these interactively.
- Store inventory and pickup availability are location-aware; defaults to Chicago, IL.
- The `checkout` tool with `confirm: true` will place a real order. Always preview first.
- Large/freight delivery scheduling may require manual completion via browser.

## License

MIT — Strider Labs