# Samsara MCP connector

The Samsara connector brings your fleet's assets, addresses, alerts, attributes, and live location and speed streams into Claude, ChatGPT, Cursor, and the Elaichi Agent, with every request running inside the signed-in person's own Samsara access.

Source: https://elaichi.ai/connectors/samsara/

## Facts

| | |
| --- | --- |
| Application | Samsara |
| Category | Logistics |
| AI tools | 343 |
| Authentication | OAuth or API key |
| Bring your own OAuth app | Yes |
| MCP endpoint | https://api.elaichi.ai/mcp |
| Works with | Claude, ChatGPT, Cursor, any MCP client, and the Elaichi Agent |
| Tools advertised by name | No. Connected tools are never listed one by one, however few there are. The endpoint advertises `search_tools` and `execute_tool` instead |

## What you can ask once Samsara is connected

- Where is trailer 4471 right now and how fast is it moving?
- Summarize last week's incidents by site
- Add the new Dallas cross-dock as an address

## Connect Samsara in Elaichi

This happens once for the organization, before any client is involved.

1. Open Connections, choose Add connection, and pick Samsara.
2. Optionally set Share with, then press Connect.
3. Supply your own Samsara app, then approve. Samsara needs an OAuth app you register yourself, so bring its client ID and secret. One person does this once for the organization.

Credentials are vaulted and nobody, including the AI, reads them back. The connection becomes a toolbox immediately, so you can curate which Samsara tools are exposed, rename them, or freeze arguments before anyone points a client at it.

## Samsara MCP connector for Claude

Endpoint: https://api.elaichi.ai/mcp

1. Open Customize, then Connectors.
2. Press Add.
3. Name it, paste the MCP server URL, then Continue.
4. Sign in and approve.

On Team and Enterprise, an Owner adds it once. Everyone else turns it on for themselves.

## Samsara MCP connector for ChatGPT

Endpoint: https://api.elaichi.ai/mcp

1. Open Plugins, then press the + button.
2. Name it and paste the endpoint into Server URL.
3. Leave Authentication on OAuth, then tick the risk acknowledgement.
4. Press Create, then sign in and approve.

Works on the web today. The plugin directory lives at chatgpt.com/plugins.

## Samsara MCP connector for Cursor

Endpoint: https://api.elaichi.ai/mcp

1. Open `~/.cursor/mcp.json`.
2. Add the endpoint under `mcpServers`.
3. Reload Cursor, then sign in and approve.

Set up per machine, so repeat it on each computer you work from.

## Connect Samsara to any MCP client

Endpoint: https://api.elaichi.ai/mcp

1. Add the endpoint as a remote MCP server.
2. Sign in and approve.

The Elaichi Agent already has these tools, with nothing to set up.

## What the consent screen decides

Every scope the client asks for starts ticked except "Delete data and remove access", which you tick yourself. Calling a Samsara tool needs "Run your connected tools". Over MCP there is no trusted place to confirm a write in the moment, so the consent screen is the standing approval rather than a formality. Think hard before granting Delete, which reaches into connected apps and cannot be undone.

## What teams do with Samsara through Elaichi

### Add a new customer site as an address

Dispatch. When a shipper sends over a new yard or dock, add it to Samsara as an address from the chat, then check it back later to confirm the details stuck.

### Find out where an asset is right now

Operations. Ask for the latest location and speed of a trailer or a piece of equipment and get the answer from Samsara's live stream instead of scrolling a map.

### Review the week's incidents in one pass

Safety. Pull the incidents stream for the last seven days and get it summarized by site or by asset so the Monday safety call starts with the facts.

### Keep asset attributes consistent across the fleet

Fleet maintenance. List the attributes on your assets, spot the ones with missing or outdated tags, and update or create attributes in bulk so crews can find what they need.

### Pull asset depreciation figures for the quarter

Finance. Ask for the depreciation records on your Samsara assets and have them grouped by category, ready to paste into the quarter-end workbook.

### Tidy alert configurations across the organization

Operations. List every alert configuration in Samsara, find the duplicates and the stale ones, and update or remove them in bulk from a single conversation.

## Elaichi vs Zapier MCP vs Composio for Samsara

All three can connect Samsara to an AI assistant, and all three have admin controls. They differ in where access lives and how you pay.

| What to check | Elaichi | Zapier MCP | Composio |
| --- | --- | --- | --- |
| Where the AI connects | One address for the whole organization. Endpoint: https://api.elaichi.ai/mcp | A server per member, created at sign-in. | An MCP endpoint per team, or an SDK. |
| Control over Samsara tools | Allow or restrict single Samsara tools, per role or user. | App and action restrictions on the account. | Role permissions, down to the action. |
| Record of calls | One audit entry per Samsara call. | A History tab of tool calls. | A log of every tool call. |
| Single sign-on | SAML or OIDC, plus SCIM, on Gold. | SAML on Enterprise. | SAML and OIDC on Enterprise. |
| Price | $15 per user per month. | 2 tasks per successful call. | Billed per tool call. |

Sources: Zapier MCP [docs](https://docs.zapier.com/mcp/get-started/quickstart), [security](https://docs.zapier.com/mcp/manage/security), [usage](https://docs.zapier.com/mcp/features/usage); Composio [docs](https://docs.composio.dev/docs/composio-connect), [gateway](https://composio.dev/mcp-gateway), [enterprise](https://composio.dev/enterprise), [pricing](https://composio.dev/pricing). Checked September 2026.

Longer take: [Zapier MCP alternative](/blog/zapier-mcp-alternative/) and [when you don't need an MCP gateway](/blog/when-you-dont-need-an-mcp-gateway/).

## Frequently asked questions

### How do I connect Samsara to Claude?

Connect Samsara in Elaichi first: Samsara needs an OAuth application registered inside your own Samsara account, so someone brings that client ID and secret once, or pastes a Samsara API key instead. Then open Claude, go to Customize, then Connectors, then Add, and paste https://api.elaichi.ai/mcp as the endpoint. Claude signs you in through Elaichi and your Samsara assets, addresses, and alerts are available in the chat.

### Does Samsara work with ChatGPT and Cursor as well as Claude?

Yes. Once Samsara is connected in Elaichi, the same endpoint, https://api.elaichi.ai/mcp, works in Claude, ChatGPT, Cursor, any other MCP client, and the Elaichi Agent. You connect Samsara once and every client uses that one connection.

### What can an AI agent actually do with my Samsara data?

An agent can look up, add, update, and remove Samsara addresses and assets, read live location and speed streams, review incidents, and manage alert configurations and attributes, including bulk changes. It can also pull asset depreciation records and list voice sessions. Short, concrete asks work best, such as asking where a specific trailer is or for last week's incidents at one site.

### Does connecting Samsara give the AI access to my whole fleet?

No. Every call to Samsara runs as the person who signed in, so the AI sees only the assets, addresses, and alerts that person can already see in Samsara. Elaichi can narrow that access further for a team or a role, but it can never widen it beyond what Samsara itself allows.

### Can my team share one Samsara connection?

Yes. One person connects Samsara in Elaichi and shares the connection with a team, and nobody else ever handles the Samsara client secret or API key. Each teammate still signs in to Elaichi as themselves, so the audit log names the person who looked up an asset or changed an alert.

### Can I stop an agent from deleting or changing things in Samsara?

Yes. Restrictions in Elaichi apply per action, so you can allow reading Samsara assets and addresses while blocking deletes or bulk updates. A restricted action is left out of the tool list the AI client receives, so it cannot be called no matter what the prompt says.

### What happens to a Samsara connection when someone leaves?

Offboarding that person in Elaichi ends their access to Samsara through every client at once. A Samsara connection shared with a team keeps working for everyone else. If you want it gone entirely, disconnecting Samsara once in Elaichi removes it from Claude, ChatGPT, Cursor, and every other client.

### Does the Samsara MCP connector work with Gemini, Codex, Claude Code or other MCP clients?

Yes. Samsara is reached over the same MCP endpoint every client uses, so anything that speaks MCP can call it — Gemini, Codex, Claude Code, Windsurf, Cline, Zed and OpenCode among them — alongside Claude, ChatGPT, Cursor, and the Elaichi Agent. The tools on offer and the access behind them are identical whichever client asks. Only the setup screen differs.

### Is Elaichi an alternative to Zapier MCP for Samsara?

Yes. Both let Claude, ChatGPT or Cursor use Samsara. Zapier MCP fits a team that already automates in Zapier, since each person signs in and acts as themselves in that account. Elaichi fits when IT wants one address for the whole company, per-tool rules by role, and a record of every Samsara call.

### How is Elaichi different from Composio for Samsara?

Composio gives AI agents tools and sign-in handling across 1,000+ apps, for developers building agents or people using an assistant, billed per tool call. Elaichi gives a company's own people governed access to Samsara: one address, restrictions per role or user, and $15 per user per month. Both have role permissions and a log of every call.

## All 343 Samsara tools

Every tool below is callable through https://api.elaichi.ai/mcp once Samsara is connected, subject to the toolbox it is in and the restrictions on the caller.

- **List all Samsara addresses** (List). List all addresses in the Samsara organization. Returns: id, name, formattedAddress, geofence, addressTypes, contacts, createdAtTime, externalIds, and 4 more fields.
- **Create a Samsara address** (Create). Create a new address in the Samsara organization. Returns: id, name, formattedAddress, geofence, addressTypes, contacts, createdAtTime, externalIds, and 4 more fields. Required: formattedAddress, geofence, name.
- **Get single Samsara address by ID** (Get). Get a single Samsara address by id. Returns: id, name, formattedAddress, geofence, addressTypes, contacts, createdAtTime, externalIds, and 4 more fields. Required: id.
- **Update a Samsara address by ID** (Update). Update a specific Samsara address by id. Returns: id, name, formattedAddress, geofence, addressTypes, contacts, createdAtTime, externalIds, and 4 more fields. Required: id.
- **Delete a Samsara address by ID** (Delete). Delete a Samsara address by id. Returns an empty 204 response on success. Required: id.
- **List all Samsara agent studio voice sessions** (List). Get full details for a batch of Samsara voice agent sessions by their ids (beta). Returns: id, agentId, agentName, callEvents, durationMilliseconds, happenedAtTime, and 8 more fields. Required: ids.
- **List all Samsara voice sessions streams** (List). List Samsara Agent Studio voice agent session summaries (beta), ordered by happenedAtTime descending. Returns: id, agentId, agentName, durationMilliseconds, happenedAtTime, recipient, sessionStatus, triggerType, and 1 more field. Required: startTime, agentIds.
- **List all Samsara alerts configurations** (List). List Samsara alert configurations across the fleet, including all API-enabled trigger types such as Vehicle Speed, Geofence Entry, and Harsh Event. Returns: id, name, actions, createdAtTime, isEnabled, lastModifiedAtTime, scope, triggers, and 2 more fields.
- **Create a Samsara alerts configuration** (Create). Create a Samsara alert configuration with its scope, triggers, and actions. Returns: id, name, actions, createdAtTime, isEnabled, lastModifiedAtTime, scope, triggers, and 2 more fields. Required: actions, isEnabled, name, scope, triggers.
- **Samsara alerts configurations bulk update** (Update). Update a Samsara alert configuration — its name, triggers, actions, scope, operational time ranges, or enabled state — identified by the Samsara id in the request body. Returns: id, name, actions, createdAtTime, isEnabled, lastModifiedAtTime, scope, triggers, and 2 more fields. Required: id.
- **Samsara alerts configurations bulk delete** (Delete). Delete a Samsara alert configuration by its unique Samsara id. Returns an empty 204 response on success. Required: id.
- **List all Samsara incidents streams** (List). List Samsara alert incidents for specific alert configurations over a given time window, based on updatedAtTime. Returns: conditions, configurationId, happenedAtTime, incidentUrl, isResolved, updatedAtTime, resolvedAtTime. Required: startTime, configurationIds.
- **List all Samsara assets** (List). List all assets in the Samsara organization. Returns: id, name, createdAtTime, updatedAtTime, attributes, externalIds, and 11 more fields.
- **Create a Samsara asset** (Create). Create a new asset in Samsara. Returns: id, name, createdAtTime, updatedAtTime, attributes, externalIds, and 11 more fields.
- **Samsara assets bulk update** (Update). Update an existing asset in Samsara. Returns: id, name, createdAtTime, updatedAtTime, attributes, externalIds, and 11 more fields. Required: id.
- **Samsara assets bulk delete** (Delete). Delete an existing asset in Samsara by id. Returns an empty 204 response on success. Required: id.
- **List all Samsara assets depreciations** (List). List depreciation and adjustment transactions for Samsara assets (beta). Returns: id, amount, assetId, createdAt, eventTime, transactionType, updatedAt, costCenterId, and 1 more field.
- **List all Samsara inputs streams** (List). Stream asset input data collected from Samsara assets over a time range, sorted by time ascending (beta). Returns: asset, happenedAtTime, units, value, auxInput. Required: ids, type, startTime.
- **List all Samsara location and speed streams** (List). Stream asset location and speed data in a Samsara organization over a time range. Returns: asset, happenedAtTime, location, speed.
- **List all Samsara attributes** (List). List all Samsara attributes in the organization for a given entity type, either drivers or assets. Returns: id, name, attributeType, entityType, numberValues, stringValues, unit, values. Required: entityType.
- **Create a Samsara attribute** (Create). Create a new attribute in the Samsara organization. Returns: id, name, entities, attributeType, entityType, numberValues, stringValues, unit, and 1 more field. Required: attributeType, entityType, name.
- **Get single Samsara attribute by ID** (Get). Get a single Samsara attribute by id, including all of its applications. Returns: id, name, entities, attributeType, entityType, numberValues, stringValues, unit, and 1 more field. Required: id, entityType.
- **Update a Samsara attribute by ID** (Update). Update an attribute in the Samsara organization. Returns: id, name, entities, attributeType, entityType, numberValues, stringValues, unit, and 1 more field. Required: id, entityType.
- **Delete a Samsara attribute by ID** (Delete). Delete a Samsara attribute by id, including all of its applications. Returns an empty 204 response on success. Required: id, entityType.
- **List all Samsara aemp fleets** (List). List Samsara AEMP equipment following the AEMP ISO 15143-3 standard, one page at a time (beta). Returns: EquipmentHeader, Location, CumulativeOperatingHours, DEFRemaining, Distance, EngineStatus, FuelRemaining. Required: page_number.
- **List all Samsara drivers efficiencies** (List). List all driver and associated vehicle efficiency data in Samsara (beta endpoint). Returns: driverSummaries, summaryEndTime, summaryStartTime.
- **Update a Samsara fleet equipment by ID** (Update). Update a unit of equipment in Samsara by id using a JSON merge patch — fields you include overwrite existing values, and arrays are replaced rather than merged (beta). Returns: id, name, attributes, equipmentSerialNumber, externalIds, installedGateway, notes, tags. Required: id.
- **List all Samsara fleet equipments** (List). List all equipment in a Samsara organization. Returns: id, name, assetSerial, externalIds, installedGateway, notes, tags.
- **Get single Samsara fleet equipment by ID** (Get). Get a single unit of equipment in Samsara by its Samsara ID. Returns: id, name, assetSerial, externalIds, installedGateway, notes, tags. Required: id.
- **List all Samsara drivers eld events** (List). List Samsara driver HOS ELD events (beta endpoint) in a time range, grouped by driver. Returns: id, name, driverActivationStatus, eldEvents, externalIds. Required: startTime, endTime.
- **Samsara vehicle immobilizers bulk update** (Update). Update the engine immobilizer state of a vehicle in Samsara (beta). Returns no documented response body (HTTP 202). Required: vehicle_id, relayStates.
- **List all Samsara industrial jobs** (List). List industrial jobs in Samsara (beta). Returns: id, name, address, createdAt, customerName, endDate, and 9 more fields.
- **Create a Samsara industrial job** (Create). Create a job in Samsara's industrial beta API. Returns: id, name, address, createdAt, customerName, endDate, and 9 more fields. Required: job.
- **Samsara industrial jobs bulk update** (Update). Patch an existing industrial job in Samsara (beta). Returns: id, name, address, createdAt, customerName, endDate, and 9 more fields. Required: id, job.
- **Samsara industrial jobs bulk delete** (Delete). Delete an existing industrial job in Samsara (beta). Returns: id, uuid. Required: id.
- **List all Samsara cameras media** (List). List uploaded media (videos and still images) captured by Samsara cameras within a time range of up to 24 hours. Returns: availableAtTime, endTime, input, mediaType, startTime, triggerReason, vehicleId, auxCamSerial, and 2 more fields. Required: vehicleIds, startTime, endTime.
- **List all Samsara media retrievals** (List). Get details for a media retrieval request in Samsara by retrieval ID. Returns: media. Required: retrievalId.
- **Create a Samsara media retrieval** (Create). Create an asynchronous media retrieval request in Samsara to upload camera media (images, videos, or hyperlapses) closest to a requested timestamp. Returns: quotaStatus, retrievalId. Required: endTime, mediaType, startTime, vehicleId.
- **List all Samsara coaching driver coach assignments** (List). List Samsara driver coach assignments for your organization. Returns: coachId, createdAtTime, driver, updatedAtTime.
- **Samsara coaching driver coach assignments bulk update** (Update). Create or update a coach-to-driver assignment in Samsara (upserts based on the driver passed in). Returns: createdAtTime, driverId, updatedAtTime, coachId. Required: driverId.
- **List all Samsara sessions streams** (List). List Samsara coaching sessions for your organization as a stream of changes based on time parameters. Returns: id, behaviors, coachingType, driver, dueAtTime, sessionStatus, updatedAtTime, assignedCoachId, and 3 more fields. Required: startTime.
- **List all Samsara contacts** (List). List all notification contacts for alerts in a Samsara organization. Returns: id, email, firstName, lastName, phone.
- **Create a Samsara contact** (Create). Create a notification contact for alerts in Samsara. Returns: id, email, firstName, lastName, phone.
- **Get single Samsara contact by ID** (Get). Get a specific notification contact's information in Samsara by id. Returns: id, email, firstName, lastName, phone. Required: id.
- **Update a Samsara contact by ID** (Update). Update a specific notification contact's information in Samsara. Returns: id, email, firstName, lastName, phone. Required: id.
- **Delete a Samsara contact by ID** (Delete). Delete a notification contact in Samsara by id. Returns an empty 204 response on success. Required: id.
- **List all Samsara defect types** (List). List DVIR defect types in Samsara. Returns: id, createdAtTime, label, sectionType, severity.
- **List all Samsara defects streams** (List). Stream DVIR defects in Samsara. Returns: id, comment, dvirId, isResolved, createdAtTime, defectPhotos, and 8 more fields. Required: startTime.
- **Get single Samsara defect by ID** (Get). Get a single DVIR defect by id in Samsara. Returns: id, comment, dvirId, isResolved, createdAtTime, defectPhotos, and 8 more fields. Required: id.
- **List all Samsara detections streams** (List). List all safety detections from in-vehicle assets in Samsara (beta endpoint). Returns: id, asset, createdAtTime, inCabAlertPlayed, safetyEvent, triggerDetectionLabel, updatedAtTime, driver. Required: startTime.
- ...and 293 more tools. Call `tools/list` via the MCP endpoint, or see the full catalog via the API, for the complete set.
