Skip to main content
Glama
keithah

Tessie MCP Extension

by keithah
README.md
# Tessie MCP

Personal, 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.

## Setup

1. Generate a Tessie access token at <https://dash.tessie.com/settings/api>.
2. Create `.env` from `.env.example` and generate `MCP_AUTH_TOKEN` with `openssl rand -base64 48`.
3. Start the service: `docker compose up -d --build`.
4. Configure an MCP client with URL `http://127.0.0.1:3000/mcp` and header `Authorization: Bearer <MCP_AUTH_TOKEN>`.

`TESSIE_API_KEY` never leaves the server. Passing `vin` to `get_vehicle` selects and persists the default vehicle; later calls can omit it.

## Tools

`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.

## Remote access

For 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`.

The app bearer token remains required even behind Cloudflare.

### Nginx

Use `examples/nginx.conf`; preserve the Authorization header, disable buffering, and use long timeouts.

### Caddy

Use `examples/Caddyfile`; it forwards headers and supports streaming by default.

## Smoke check

`curl http://127.0.0.1:3000/healthz` verifies liveness. The server has no command-line operation that invokes vehicle commands.

TDQS

B3.2/5.0

Scored across 5 tools

Disambiguation4/5

The tools have mostly distinct purposes, but 'get_driving_history' and 'get_weekly_mileage' could be confused as both involve retrieving mileage data over time periods. However, their descriptions clarify that one is for general history and the other specifically for weekly totals, reducing ambiguity.

Naming Consistency5/5

All tool names follow a consistent 'get_*' verb_noun pattern, making them predictable and easy to understand. The naming is uniform across all five tools, with no deviations in style or convention.

Tool Count4/5

Five tools is reasonable for a vehicle management server, though it feels slightly thin for comprehensive coverage. The tools cover key read operations but may benefit from additional actions like vehicle control or settings management to be fully scoped.

Completeness3/5

The server provides good read-only coverage for vehicle data, including state, history, and mileage. However, there are notable gaps such as missing update/control operations (e.g., lock/unlock, climate control) and administrative functions, which limits agent workflows to retrieval only.

Maintenance

ActivitySlowing
ResponsivenessNo issues