{
  "markdown": "# Tessie MCP\n\nPersonal, self-hosted MCP access to Tessie. It is a Streamable HTTP server at `/mcp`, designed for one owner and protected by a static bearer token.\n\n## Setup\n\n1. Generate a Tessie access token at <https://dash.tessie.com/settings/api>.\n2. Create `.env` from `.env.example` and generate `MCP_AUTH_TOKEN` with `openssl rand -base64 48`.\n3. Start the service: `docker compose up -d --build`.\n4. Configure an MCP client with URL `http://127.0.0.1:3000/mcp` and header `Authorization: Bearer <MCP_AUTH_TOKEN>`.\n\n`TESSIE_API_KEY` never leaves the server. Passing `vin` to `get_vehicle` selects and persists the default vehicle; later calls can omit it.\n\n## Tools\n\n`list_vehicles`, `get_vehicle`, `analyze_history`, `get_driving_path`, and `vehicle_command`. History analysis defaults to 90 days. Autopilot/FSD values are Tessie's native `autopilot_distance` and historical `autopilot` telemetry; they do not uniquely prove FSD usage.\n\n## Remote access\n\nFor a temporary URL without a tunnel token, run the app locally then execute `cloudflared tunnel --url http://127.0.0.1:3000`. For a stable named tunnel, set `TUNNEL_TOKEN` in `.env` and run `docker compose -f docker-compose.yml -f docker-compose.tunnel.yml up -d`.\n\nThe app bearer token remains required even behind Cloudflare.\n\n### Nginx\n\nUse `examples/nginx.conf`; preserve the Authorization header, disable buffering, and use long timeouts.\n\n### Caddy\n\nUse `examples/Caddyfile`; it forwards headers and supports streaming by default.\n\n## Smoke check\n\n`curl http://127.0.0.1:3000/healthz` verifies liveness. The server has no command-line operation that invokes vehicle commands.\n",
  "bytes": 1645,
  "sha": "4bf2aa2c09d17a81d2c0aef3f1ff74fc778636af2b0202bd83c5005192058ec4",
  "repo_slug": "keithah/tessie-mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_ai_smithery_keithah_tessie_mcp_4742ff8c/readme"
}