[2.6.0] — 2026-07-20
Added
- Proactive, adaptive request pacing (in-memory token bucket). Sustained
load now glides within TeslaFi's advertised rate limit instead of bursting
to the wall and stalling. A token bucket is derived from therate_limit
object TeslaFi embeds in responses — capacity ≈ the advertisedlimitand
refill ≈limit / reset_in_secondstokens per second (e.g. a 15-token bucket
refilling one token every ~4 s for the documented 15-requests-per-60 s
budget). Each outbound request spends one token. This intentionally allows an
initial burst up to the advertised budget — so short, typical
interactions (a handful of tool calls) stay fast — and then converges to the
steady refill rate under sustained use, pacing toward the window reset
rather than slamming intoremaining: 0. The newly-captured advertised
limit(previously ignored) drives the sizing.
Changed
- Request spacing is now composed, not just fixed. The pre-send wait is the
maximum of three signals: the existing 1 s floor between consecutive
sends, the new token-bucket wait, and the existingremaining: 0
reset-window backstop (capped at 60 s). All three remain in force — the 1 s
floor, theremaining === 0hard wait, and the HTTP 429Retry-Afterretry
handling are unchanged backstops beneath the token bucket.
Notes
- Internal-only. No tool, parameter, or output shape changed — this is
purely internal pacing. State is in-memory per process, with zero disk
writes and no new network calls. - Self-tuning with a safe fallback. Capacity/refill are re-derived from the
last-observed advertised limit+window. Before anyrate_limithas been
observed, or when the advertised limit/window is missing, zero, non-finite, or
otherwise nonsensical, pacing falls back to the previous 1 s-floor-only
behavior (never assuming a limit, never dividing by zero). Any single computed
wait is capped at one window and never more than 60 s so a garbled advertised
value cannot hang a request.
Install: download the attached teslafi-mcp.mcpb and double-click to install into Claude Desktop, or see the README for manual setup.
SHA-1 of the bundle: ec1ed409b99eea4e2a8c3be04d1cfca6c0655efb