Skip to main content
Glama
cozadizzle

partsgeek-mcp-server

by cozadizzle
README.md
# partsgeek-mcp-server

> **Notice:** Open-source local tooling provided AS IS by the authors and contributors; not affiliated with ALLDATA, AutoZone, PartsGeek, or any OEM—use only with accounts you control and at your own risk (see [DISCLAIMER.md](DISCLAIMER.md)).

**License: MIT**

Local MCP server for **public catalog / cart estimate** workflows on [PartsGeek](https://www.partsgeek.com). Designed for **price comparison** against shop commercial pricing—not for placing orders.

## Safety hard rules

- **Never checkout.** No PayPal, Fastlane, cards, or Place Order.
- **Cart page only** (`/cart/`) for shipping / fee estimates.
- Do not open `/checkout/` or payment UI.

## What it does

| Tool | Purpose |
|------|---------|
| `search_parts` | Y/M/M + keyword → hits with **clickable URLs** + prices |
| `get_product` | Product detail (SKU, fitment, ships note, url) |
| `cart_estimate` | Add product URLs to cart; return subtotal + expedited + protection + S&H |
| `clear_browser` | Drop Playwright session / cookies |

Default ship-to note for estimates (override when calling the tool):  
`18440 Paulson Drive, Port Charlotte, FL 33954` (example shop address—change for your shop).

## Requirements

- Python ≥ 3.10  
- Playwright Chromium  
- **No PartsGeek account required** for basic search/cart estimate  

## Install

```bash
git clone <this-repo-url> partsgeek-mcp-server
cd partsgeek-mcp-server
pip install -e .
playwright install chromium
```

```toml
# ~/.grok/config.toml
[mcp_servers.partsgeek]
command = "partsgeek-mcp"
enabled = true

[mcp_servers.partsgeek.env]
PARTSGEEK_HEADLESS = "1"
PARTSGEEK_TIMEOUT = "180"
```

```bash
hermes mcp add partsgeek --command partsgeek-mcp \
  --env PARTSGEEK_HEADLESS=1 PARTSGEEK_TIMEOUT=180
```

## Authentication

PartsGeek catalog browsing does **not** require a shop login. The tool drives a **local headless browser** on your machine for search/cart DOM only.

There is **no** `import_browser_cookies` step for PartsGeek accounts. If you ever log into PartsGeek in that browser profile, treat it like any other local session and do not commit cookie jars.

## Data handling

- Runs entirely on your device (Playwright + HTTPS to PartsGeek).
- Authors do not operate a credential-collection backend.
- Full terms: **[DISCLAIMER.md](DISCLAIMER.md)**.

## Pair with shop quoting

Use **azpro** for commercial cost/list and **alldata** for labor. The **shop-quote** skill documents dual-source RO format and requires **clickable product links** for PartsGeek lines.

## Development

```bash
pytest -q
```

## License

MIT — see [LICENSE](LICENSE).