tesla-wrap
by abhinav937
README.md
# Tesla Wrap
Tesla Paint Shop wrap generator: official UV template + Grok Imagine + panel stencil.
Works for every vehicle Tesla publishes on [teslamotors/custom-wraps](https://github.com/teslamotors/custom-wraps).
Client usage (what an MCP host should follow): [USAGE.md](USAGE.md), also `wrap://usage`.
## Pipeline
1. Download the official UV for the vehicle
2. (Optional) seed from a geometric layout PNG
3. Grok Imagine paints the look at 2k / medium quality
4. Stencil through Tesla’s panel mask → 1024×1024 PNG under 1 MB
Imagine is for look. Outlines always come from Tesla’s template (IoU 1.0).
## Setup
```bash
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
cp .env.example .env
```
Edit `.env`:
- `XAI_API_KEY` — required for Imagine
- `MCP_LOGIN_PASSWORD` — required if you run the public HTTP MCP
`.env` is gitignored. Do not put keys or passwords in this repo.
Official templates download on first `fetch` / `create_wrap`. Generated PNGs land in `outputs/` (also gitignored).
## CLI
```bash
python wrap.py vehicles
python wrap.py fetch highland
python wrap.py imagine --name black-gold --vehicle highland \
--look "driver side chrome gold, passenger matte black, honeycomb fade on the hood" \
--ref https://example.com/car.jpg
python wrap.py verify outputs/black-gold.png --vehicle highland
python wrap.py flatten outputs/black-gold.png
```
`--base path/to/layout.png` restyles an already-laid-out UV instead of the blank template.
## MCP
Tools: `list_vehicles`, `fetch_template`, `create_wrap`, `verify_wrap`, `flatten_wrap`.
### Local stdio
```toml
[mcp_servers.tesla-wrap]
command = "/path/to/grok-editor/.venv/bin/python"
args = ["/path/to/grok-editor/mcp_server.py"]
```
### Public HTTP + first-time OAuth
```bash
python mcp_server.py --http --host 127.0.0.1 --port 8787 --path /grok-editor-mcp
```
Set `MCP_PUBLIC_HOST` to the hostname you funnel/proxy (no `https://`). First connect opens `/login`; the password is `MCP_LOGIN_PASSWORD` from `.env`. After that the client keeps an OAuth token. Imagine still uses local `XAI_API_KEY`.
```toml
[mcp_servers.tesla-wrap]
url = "https://YOUR_HOST/grok-editor-mcp"
enabled = true
tool_timeout_sec = 600
```
Health (no auth): `http://127.0.0.1:8787/health`
Optional systemd user unit: `tesla-wrap-mcp.service` (`WorkingDirectory` uses `%h/grok-editor`).
## Vehicles
`model3`, `model3-2024-base` (aliases: `highland`, `model3-premium`), `model3-2024-performance`, `modely`, `modely-2025-base`, `modely-2025-premium`, `modely-2025-performance`, `modely-l`, `models-2021`, `models-2025-plaid`, `modelx-2021`, `cybertruck`.
This server cannot be deployed
Maintenance
ActivityMaintained
ResponsivenessNo issues