内容
# @striderlabs/mcp-homedepot
MCP(模型上下文协议)服务器连接器,用于家得宝。使AI助手能够在HomeDepot.com上搜索产品、检查库存、购物车管理、安排配送和跟踪订单,通过浏览器自动化。
## 安装
```bash
npx @striderlabs/mcp-homedepot
```
或全局安装:
```bash
npm install -g @striderlabs/mcp-homedepot
```
## MCP 配置
将以下内容添加到您的MCP客户端配置中(例如,Claude Desktop `claude_desktop_config.json`):
```json
{
"mcpServers": {
"homedepot": {
"command": "npx",
"args": ["@striderlabs/mcp-homedepot"]
}
}
}
```
## 工具
### `status`
检查家得宝认证状态和会话信息。
**参数:** 无
---
### `login`
通过浏览器自动化与您的家得宝账户进行身份验证。
**参数:**
| 名称 | 类型 | 必需 | 描述 |
|------|------|----------|-------------|
| `email` | 字符串 | ✅ | 家得宝账户邮箱 |
| `password` | 字符串 | ✅ | 家得宝账户密码 |
| `headless` | 布尔值 | | 无头运行浏览器(默认:`true`)。设置为 `false` 以显示浏览器窗口。 |
凭证永远不会被存储——只有会话 cookie 被持久化到 `~/.striderlabs/homedepot/`。
---
### `logout`
清除会话 cookie 并注销。
**参数:** 无
---
### `search_products`
搜索家得宝产品,可选过滤和排序。
**参数:**
| 名称 | 类型 | 必需 | 描述 |
|------|------|----------|-------------|
| `query` | 字符串 | ✅ | 搜索词 |
| `min_price` | 数字 | | 最低价格过滤 |
| `max_price` | 数字 | | 最高价格过滤 |
| `sort_by` | 字符串 | | 排序:`best_match`、`top_sellers`、`price_low`、`price_high`、`top_rated`、`new_arrivals` |
| `limit` | 数字 | | 最大结果数(默认:10,最大:24) |
---
### `get_product`
获取详细的产品信息,包括价格、描述和可用性。
**参数:**
| 名称 | 类型 | 必需 | 描述 |
|------|------|----------|-------------|
| `url` | 字符串 | | 家得宝产品完整 URL |
| `item_id` | 字符串 | | 家得宝互联网编号 / 商品 ID |
_提供 `url` 或 `item_id` 任一。_
---
### `check_inventory`
检查特定商店或附近商店的产品库存。
**参数:**
| 名称 | 类型 | 必需 | 描述 |
|------|------|----------|-------------|
| `item_id` | 字符串 | | 家得宝互联网编号 / 商品 ID |
| `url` | 字符串 | | 产品 URL(替代 item_id) |
| `zip_code` | 字符串 | | 查找附近商店的邮政编码 |
| `store_id` | 字符串 | | 要检查的特定商店 ID |
_提供 `url` 或 `item_id` 任一。_
---
### `get_store_info`
获取家得宝商店的详细信息,包括营业时间、地址和部门。
**参数:**
| 名称 | 类型 | 必需 | 描述 |
|------|------|----------|-------------|
| `store_id` | 字符串 | | 家得宝商店 ID 号 |
| `zip_code` | 字符串 | | 查找最近商店的邮政编码 |
_提供 `store_id` 或 `zip_code` 任一。_
---
### `add_to_cart`
将产品添加到您的家得宝购物车中。
**参数:**
| 名称 | 类型 | 必需 | 描述 |
|------|------|----------|-------------|
| `url` | 字符串 | | 家得宝产品 URL |
| `item_id` | 字符串 | | 家得宝互联网编号 / 商品 ID |
| `quantity` | 数字 | | 数量(默认:1) |
| `fulfillment` | 字符串 | | `pickup`、`delivery` 或 `ship_to_store`(默认:`delivery`) |
_需要登录。_
---
### `view_cart`
查看当前购物车内容和总额。
**参数:** 无
_需要登录。_
---
### `checkout`
预览或下单。
**参数:**
| 名称 | 类型 | 必需 | 描述 |
|------|------|----------|-------------|
| `confirm` | 布尔值 | | 设置 `true` 以下单。默认 `false`(仅预览)。 |
_需要登录。始终先预览,然后再确认。_
---
### `schedule_delivery`
为购物车商品或现有订单安排或重新安排配送。
**参数:**
| 名称 | 类型 | 必需 | 描述 |
|------|------|----------|-------------|
| `order_id` | 字符串 | | 要重新安排的订单 ID(省略当前购物车) |
| `preferred_date` | 字符串 | | 首选配送日期(`YYYY-MM-DD`) |
| `address` | 字符串 | | 配送地址 |
_需要登录。_
---
### `track_order`
跟踪订单状态和配送信息。
**参数:**
| 名称 | 类型 | 必需 | 描述 |
|------|------|----------|-------------|
| `order_id` | 字符串 | ✅ | 家得宝订单 ID |
_需要登录。_
---
### `get_orders`
获取订单历史记录。
**参数:**
| 名称 | 类型 | 必需 | 描述 |
|------|------|----------|-------------|
| `limit` | 数字 | | 最近订单数量(默认:10) |
_需要登录。_
## 会话存储
会话 cookie 存储在 `~/.striderlabs/homedepot/`:
- `cookies.json` — 浏览器会话 cookie
- `auth.json` — 账户元数据(邮箱,登录时间戳)
凭证(邮箱/密码)**永远不会**被持久化。
## 技术细节
- **传输:** stdio(MCP 标准)
- **浏览器自动化:** Playwright with Chromium + 隐身补丁
- **隐身:** 修补 `navigator.webdriver`、插件、权限和其他机器人检测向量
- **Cookie 持久性:** 跨会话生存;无需重复登录
## 注意事项
- 家得宝网站可能会在首次登录时提示 CAPTCHA 或其他验证。使用 `headless: false` 以交互方式处理这些。
- 商店库存和取货可用性是位置感知的;默认为伊利诺伊州芝加哥。
- 带有 `confirm: true` 的 `checkout` 工具将下真实订单。始终先预览。
- 大型/货物配送调度可能需要通过浏览器手动完成。
## License
MIT — Strider Labs