MCP server for the TeslaFi API - live vehicle data, drive/charge history, commute analysis, and opt-in vehicle commands
Strong tool naming (all verb_noun pattern), comprehensive parameter schemas with enums and constraints, and detailed descriptions. All 7 tools have clear, actionable descriptions (100-250 chars). Input schemas are well-structured with type definitions, ranges, and enum constraints. However, output schemas are not explicitly documented in the source code, responses are described narratively but lack formal JSON Schema definitions. Error handling is minimal; no recovery guidance or actionable error messages visible. The tesla_send_command tool has complex parameter validation (per-command params) that is documented in description but not enforced via schema constraints.
Analyze home-to-work commute patterns for a calendar month. Categorizes trips as home→work, work→home, or other, and returns matching trips with statistics. Useful for understanding commute efficiency and patterns.
Retrieve stored charge records from TeslaFi history (history.php). Returns a list of charges with energy added, duration, start/end state of charge, and timestamps. Supports date filtering, pagination, and optional inclusion of raw TeslaFi records.
Get current or last-known vehicle data from TeslaFi (feed.php). Returns live data when the vehicle is awake, or the last-known state when sleeping. Supports three data sources: 'current' (latest, may be sparse while sleeping), 'lastGood' (last point with full charge data), or 'lastGoodTemp' (last point with temperatures).
Retrieve stored drive records from TeslaFi history (history.php). Returns a list of drives with distance, duration, start/end locations, and timestamps. Supports date filtering, pagination, and optional inclusion of raw TeslaFi records.
Get available locations from TeslaFi drive history. Returns a list of named and inferred locations with visit counts, distinguishing owner-tagged locations (Home, Work, Superchargers) from frequently-visited untagged addresses.
Output schemas not formally documented. Tool descriptions state what is returned (e.g., 'Returns a list of drives with distance, duration, start/end locations, and timestamps') but no JSON Schema definitions are visible in source code. LLMs cannot reliably parse unstructured output or plan downstream tool calls without explicit field definitions.
tesla_send_command has complex conditional parameter validation ('params' object structure depends on 'command' value) documented only in description text, not enforced via schema. E.g., set_charge_limit requires charge_limit_soc (50-100), but schema does not express this dependency. LLMs cannot validate before calling.
No error handling guidance visible. Tools do not document what errors are retryable, user-fixable, or fatal. No recovery suggestions (e.g., 'If authentication fails, check TESLA_API_TOKEN'). Agents cannot self-correct on failures.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 66 | 2025-06-18+ | v2 |
Get detailed trip information for a specific calendar month. Returns normalized trip records with start/end locations, distances, and durations. Supports pagination and optional inclusion of raw TeslaFi records.
Send a vehicle control command to TeslaFi (feed.php). Supports commands like honk, flash_lights, climate control, charging, door locks, and sentry mode. Opt-in: disabled by default; enable via TESLAFI_ENABLE_COMMANDS environment variable. Car commands default to noWake (never wake a sleeping car) unless wake_seconds is passed.
tesla_send_command is opt-in (disabled by default via TESLAFI_ENABLE_COMMANDS). When disabled, tool is unavailable but no tool-level confirmation or dry-run pattern is offered. Destructive commands (door_unlock, charge_stop) lack explicit confirmation step, increasing risk of accidental execution.
Pagination parameters (limit, offset) are present but no total_count or next_cursor is documented in output. LLMs cannot determine if more results exist or how to fetch them efficiently.