Skip to main content

Limits, troubleshooting & FAQ

Limits that apply to agents

An agent is an ordinary API client. Every tool call is one request against the key's rate limits and quotas — nothing is added, nothing is waived.

Tierrps (burst)Monthly API callstransfer_bytes / month
free1 (2)3000
starter1 (3)3,5000
standard3 (6)70,5005.6 GB × cameras
pro10 (25)990,50010 GB × cameras
enterprise25 (50)14,985,50018 GB × cameras

Two things are specific to agents:

  • One question can be several calls. A multi-step answer (events → track → video) is three requests. On the free plan's 300 calls a month that matters; from Standard up it rarely does — see the pricing page for how the monthly allowance is derived.
  • get_event_video and the SD-card tools spend transfer_bytes — a flat 6 MB per event link, the recording's size per SD-card recall, whether the file is opened or not. Agents that "helpfully" fetch a clip for every event will burn it; ask for a clip when you want one, and prefer play_sd_recording (sub-stream, 5–10 MB) over a full-quality recall (often 300 MB or more).

Common errors

What the agent reportsCauseFix
401 unauthorized / invalid_tokenNo credentials, a revoked key, or an OAuth token sealed over a key that was since revokedCheck the key in Management › Open API; for OAuth connectors, disconnect and reconnect with the current key — see Rotating the key
403 insufficient_scopeThe tool needs a scope the key (or the OAuth consent) does not carryLook the tool up in the Tools reference — either your plan does not grant that scope yet, or you left it unchecked on the consent screen. Reconnect and grant it, or issue a key with it
403 quota_exceeded on get_event_video, play_sd_recording or recall_sd_recordingMonthly transfer_bytes allowance exhausted — the message states the limit in GBWait for the monthly reset, prefer sub-stream playback, or move up a plan
429 with Retry-AfterPer-second rate limit or monthly call limit hitAsk the agent to slow down or retry after the header value; monthly limits reset on the 1st
409 device_busy on play_sd_recording / recall_sd_recordingThe dashcam is already uploading another recordingWait for the running recall (get_recall_job) or cancel it, then retry
"confirmation token expired / invalid" on confirm_actionMore than 5 minutes passed, the token was altered, or it was issued to a different keyAsk the agent to propose the action again and approve it within 5 minutes
404 route_not_foundAn unsupported path or method reached the APIUpdate the MCP server if you run the stdio version; the remote server is always current

Tools whose scope the key lacks are not hidden from the client — they fail with 403 when called, so the agent can tell you what would be needed rather than silently doing nothing.

Client quirks

ChatGPT

  • Custom connectors require OAuth; a Bearer header cannot be configured. Enable Developer mode under Settings → Connectors first.
  • After a key rotation the connector still looks connected; every tool fails with 401 until you reconnect.
  • Write scopes are unchecked by default on the consent screen — if writes fail with 403, that is why.

Claude (claude.ai / Desktop)

  • Both OAuth and header mode work. Header mode carries the key's full permissions; OAuth lets you narrow them.
  • Claude honors destructiveHint and may show its own confirmation before calling delete_* tools — that prompt is in addition to the server-side gate, not instead of it.

Claude Code

  • claude mcp add --transport http fleeta https://mcp.fleeta.io/ --header "Authorization: Bearer flt_…". Without the header, the OAuth flow runs on first use. claude mcp list shows the connection state.

Cursor

  • Header mode only, via .cursor/mcp.json. Restart the MCP server from Cursor's MCP settings after editing the file.

Local stdio

  • Needs Node 18+ and the FLEETA_API_KEY environment variable. Keep the package updated; the remote URL never goes stale.

Any client

  • Large answers may carry a NOTE: line before the JSON. Every tool result is compact JSON. When one exceeds roughly 60,000 characters the server prefixes a single plain-text line saying so, because several clients silently drop or file away an oversized tool result and the model then reports an empty fleet. The data after that line is complete and untruncated. If you parse tool output yourself, take everything from the first {; feeding the whole string to JSON.parse fails when the note is present. The note also tells the model to re-ask with a narrower request — a lower limit, a psn, a shorter from/to range or a groupId — rather than concluding there is no data.
  • The server is stateless and answers plain JSON over streamable HTTP. A client that insists on an SSE stream should still work, but the remote URL is the reference path.
  • The previous raw AWS Function URL still answers, including tokens issued there, but new setups should use https://mcp.fleeta.io/.

FAQ

Does MCP cost extra? No. AI access is included in every plan; tool calls count against the same monthly allowance as REST calls.

Can I try it without a dashcam? Yes — the public flt_test_… sandbox keys work on the MCP server and return a 12-vehicle demo fleet. Use the key for the tier you intend to buy, and you will see exactly which tools it unlocks.

Which plan do I need for…? Vehicle status: free. Safety events and trips: Starter. Reports and event video: Standard. Geofences, SD-card recordings, webhooks: Pro. Deleting SD recordings and the audit log: Enterprise. The full matrix is in the Tools reference.

Is my fleet data used to train AI models? Fleeta does not use your data to train any model, and the MCP server stores nothing about your requests beyond the same request log the REST API keeps. What the assistant does with an answer is governed by that product's own data policy — check the settings of the client you use.

Can an agent see other companies' fleets? No. Tenant isolation is enforced per key, at the API, on every call.

Can an agent change something on a vehicle by itself? No. Every write tool returns a proposal; nothing executes until a person approves it and the agent calls confirm_action — see the approval gate.

Can I see what an agent did? Yes. The API request log in Management › Open API lists every call with the key that made it, and audit_logs (enterprise) covers key and account events.

Something else? Email Fleeta support with the client you use, the tool name and the error text.