naftiko: 1.0.0-alpha2 info: label: Samsara Fleet Operations description: 'Unified fleet operations capability composing Samsara vehicle, driver, route, address, tag, and asset management APIs into a single workflow surface for fleet managers and dispatchers. Supports full fleet lifecycle: vehicle tracking, driver assignment, route dispatch, asset management, and organizational tagging.' tags: - Asset Management - Dispatch - Driver Management - Fleet Management - GPS - Routes - Samsara - Telematics created: '2026-05-02' modified: '2026-05-06' binds: - namespace: env keys: SAMSARA_API_TOKEN: SAMSARA_API_TOKEN capability: consumes: - type: http namespace: samsara baseUri: https://api.samsara.com description: Samsara connected operations platform REST API authentication: type: bearer token: '{{SAMSARA_API_TOKEN}}' resources: - name: addresses path: /addresses description: Manage addresses and geofence locations in the organization operations: - name: list-addresses method: GET description: List All Addresses in the organization inputParameters: - name: limit in: query type: integer required: false description: Max objects returned (max 512) - name: after in: query type: string required: false description: Cursor for next page of results - name: tagIds in: query type: array required: false description: Filter by tag IDs outputRawFormat: json outputParameters: - name: result type: object value: $. - name: create-address method: POST description: Create an Address in the organization outputRawFormat: json outputParameters: - name: result type: object value: $. body: type: json data: name: '{{tools.name}}' formattedAddress: '{{tools.formattedAddress}}' geofence: '{{tools.geofence}}' - name: get-address method: GET description: Retrieve an Address by ID inputParameters: - name: id in: path type: string required: true description: Unique identifier for the address outputRawFormat: json outputParameters: - name: result type: object value: $. - name: vehicles path: /fleet/vehicles description: Manage and retrieve vehicle data and diagnostics operations: - name: list-vehicles method: GET description: List All Vehicles in the organization inputParameters: - name: limit in: query type: integer required: false description: Max results returned - name: after in: query type: string required: false description: Pagination cursor - name: tagIds in: query type: array required: false description: Filter by tag IDs outputRawFormat: json outputParameters: - name: result type: object value: $. - name: get-vehicle method: GET description: Retrieve a Vehicle by ID inputParameters: - name: id in: path type: string required: true description: Vehicle ID outputRawFormat: json outputParameters: - name: result type: object value: $. - name: drivers path: /fleet/drivers description: Manage drivers and driver profiles operations: - name: list-drivers method: GET description: List All Drivers inputParameters: - name: limit in: query type: integer required: false description: Max results - name: after in: query type: string required: false description: Pagination cursor - name: driverActivationStatus in: query type: string required: false description: Filter by activation status (active/deactivated) outputRawFormat: json outputParameters: - name: result type: object value: $. - name: get-driver method: GET description: Retrieve a Driver by ID inputParameters: - name: id in: path type: string required: true description: Driver ID or external ID outputRawFormat: json outputParameters: - name: result type: object value: $. - name: create-driver method: POST description: Create a Driver outputRawFormat: json outputParameters: - name: result type: object value: $. body: type: json data: name: '{{tools.name}}' username: '{{tools.username}}' licenseNumber: '{{tools.licenseNumber}}' - name: routes path: /fleet/routes description: Create and manage dispatch routes operations: - name: list-routes method: GET description: List All Routes inputParameters: - name: limit in: query type: integer required: false description: Max results - name: after in: query type: string required: false description: Pagination cursor outputRawFormat: json outputParameters: - name: result type: object value: $. - name: create-route method: POST description: Create a Route outputRawFormat: json outputParameters: - name: result type: object value: $. body: type: json data: name: '{{tools.name}}' driverId: '{{tools.driverId}}' stops: '{{tools.stops}}' - name: safety-events path: /fleet/safety/events description: Retrieve driver safety events and scores operations: - name: list-safety-events method: GET description: List Safety Events inputParameters: - name: startTime in: query type: string required: true description: Start time in RFC 3339 format - name: endTime in: query type: string required: true description: End time in RFC 3339 format - name: driverIds in: query type: array required: false description: Filter by driver IDs outputRawFormat: json outputParameters: - name: result type: object value: $. - name: dvirs path: /fleet/maintenance/dvirs description: Manage Driver Vehicle Inspection Reports (DVIRs) operations: - name: list-dvirs method: GET description: List All DVIRs inputParameters: - name: limit in: query type: integer required: false description: Max results - name: after in: query type: string required: false description: Pagination cursor outputRawFormat: json outputParameters: - name: result type: object value: $. - name: create-dvir method: POST description: Create a DVIR outputRawFormat: json outputParameters: - name: result type: object value: $. body: type: json data: vehicleId: '{{tools.vehicleId}}' inspectionType: '{{tools.inspectionType}}' defects: '{{tools.defects}}' - name: hos-logs path: /fleet/hos/logs description: Retrieve Hours of Service (HOS) ELD logs for compliance operations: - name: list-hos-logs method: GET description: List HOS Logs for ELD Compliance inputParameters: - name: startTime in: query type: string required: true description: Start time RFC 3339 - name: endTime in: query type: string required: true description: End time RFC 3339 - name: driverIds in: query type: array required: false description: Filter by driver IDs outputRawFormat: json outputParameters: - name: result type: object value: $. - name: vehicle-locations path: /fleet/vehicles/locations description: Retrieve real-time and historical vehicle GPS locations operations: - name: get-vehicle-locations method: GET description: Get Vehicle Locations Feed inputParameters: - name: after in: query type: string required: false description: Pagination cursor - name: vehicleIds in: query type: array required: false description: Filter by vehicle IDs outputRawFormat: json outputParameters: - name: result type: object value: $. - name: assets path: /assets description: Manage non-powered assets such as trailers and equipment operations: - name: list-assets method: GET description: List All Assets inputParameters: - name: limit in: query type: integer required: false description: Max results - name: after in: query type: string required: false description: Pagination cursor outputRawFormat: json outputParameters: - name: result type: object value: $. - name: tags path: /tags description: Manage organizational tags for grouping vehicles, drivers, and assets operations: - name: list-tags method: GET description: List All Tags outputRawFormat: json outputParameters: - name: result type: object value: $. - name: create-tag method: POST description: Create a Tag outputRawFormat: json outputParameters: - name: result type: object value: $. body: type: json data: name: '{{tools.name}}' - name: webhooks path: /webhooks description: Manage webhook subscriptions for real-time event notifications operations: - name: list-webhooks method: GET description: List All Webhooks outputRawFormat: json outputParameters: - name: result type: object value: $. - name: create-webhook method: POST description: Create a Webhook outputRawFormat: json outputParameters: - name: result type: object value: $. body: type: json data: name: '{{tools.name}}' url: '{{tools.url}}' eventTypes: '{{tools.eventTypes}}' exposes: - type: rest port: 8080 namespace: fleet-operations-api description: Unified REST API for Samsara fleet operations management. resources: - path: /v1/vehicles name: vehicles description: Vehicle fleet inventory and management operations: - method: GET name: list-vehicles description: List all vehicles in the fleet call: samsara.list-vehicles with: limit: rest.limit after: rest.after tagIds: rest.tagIds outputParameters: - type: object mapping: $. - path: /v1/vehicles/{id} name: vehicle description: Individual vehicle details operations: - method: GET name: get-vehicle description: Get a specific vehicle by ID call: samsara.get-vehicle with: id: rest.id outputParameters: - type: object mapping: $. - path: /v1/vehicle-locations name: vehicle-locations description: Real-time and historical vehicle GPS locations operations: - method: GET name: get-vehicle-locations description: Get vehicle locations feed call: samsara.get-vehicle-locations with: after: rest.after vehicleIds: rest.vehicleIds outputParameters: - type: object mapping: $. - path: /v1/drivers name: drivers description: Driver profile management operations: - method: GET name: list-drivers description: List all drivers call: samsara.list-drivers with: limit: rest.limit after: rest.after outputParameters: - type: object mapping: $. - method: POST name: create-driver description: Create a new driver call: samsara.create-driver with: name: rest.name username: rest.username licenseNumber: rest.licenseNumber outputParameters: - type: object mapping: $. - path: /v1/drivers/{id} name: driver description: Individual driver details operations: - method: GET name: get-driver description: Get a specific driver by ID call: samsara.get-driver with: id: rest.id outputParameters: - type: object mapping: $. - path: /v1/routes name: routes description: Dispatch route planning and tracking operations: - method: GET name: list-routes description: List all dispatch routes call: samsara.list-routes with: limit: rest.limit after: rest.after outputParameters: - type: object mapping: $. - method: POST name: create-route description: Create a new dispatch route call: samsara.create-route with: name: rest.name driverId: rest.driverId stops: rest.stops outputParameters: - type: object mapping: $. - path: /v1/assets name: assets description: Non-powered asset tracking (trailers, equipment) operations: - method: GET name: list-assets description: List all tracked assets call: samsara.list-assets with: limit: rest.limit after: rest.after outputParameters: - type: object mapping: $. - path: /v1/addresses name: addresses description: Location and geofence management operations: - method: GET name: list-addresses description: List all addresses and geofences call: samsara.list-addresses with: limit: rest.limit after: rest.after tagIds: rest.tagIds outputParameters: - type: object mapping: $. - method: POST name: create-address description: Create an address with geofence call: samsara.create-address with: name: rest.name formattedAddress: rest.formattedAddress geofence: rest.geofence outputParameters: - type: object mapping: $. - path: /v1/tags name: tags description: Organizational tags for fleet grouping operations: - method: GET name: list-tags description: List all tags call: samsara.list-tags outputParameters: - type: object mapping: $. - method: POST name: create-tag description: Create an organizational tag call: samsara.create-tag with: name: rest.name outputParameters: - type: object mapping: $. - path: /v1/webhooks name: webhooks description: Event webhook subscription management operations: - method: GET name: list-webhooks description: List all webhook subscriptions call: samsara.list-webhooks outputParameters: - type: object mapping: $. - method: POST name: create-webhook description: Subscribe to fleet event webhooks call: samsara.create-webhook with: name: rest.name url: rest.url eventTypes: rest.eventTypes outputParameters: - type: object mapping: $. - type: mcp port: 9080 namespace: fleet-operations-mcp transport: http description: MCP server for AI-assisted fleet operations and dispatch management. tools: - name: list-vehicles description: List all vehicles in the fleet, optionally filtered by tag hints: readOnly: true openWorld: true call: samsara.list-vehicles with: limit: tools.limit after: tools.after tagIds: tools.tagIds outputParameters: - type: object mapping: $. - name: get-vehicle description: Get details for a specific vehicle by ID hints: readOnly: true openWorld: false call: samsara.get-vehicle with: id: tools.id outputParameters: - type: object mapping: $. - name: get-vehicle-locations description: Get real-time GPS locations for fleet vehicles hints: readOnly: true openWorld: true call: samsara.get-vehicle-locations with: after: tools.after vehicleIds: tools.vehicleIds outputParameters: - type: object mapping: $. - name: list-drivers description: List all drivers in the organization hints: readOnly: true openWorld: true call: samsara.list-drivers with: limit: tools.limit after: tools.after outputParameters: - type: object mapping: $. - name: get-driver description: Get details for a specific driver by ID hints: readOnly: true openWorld: false call: samsara.get-driver with: id: tools.id outputParameters: - type: object mapping: $. - name: create-driver description: Create a new driver profile in the organization hints: readOnly: false destructive: false idempotent: false call: samsara.create-driver with: name: tools.name username: tools.username licenseNumber: tools.licenseNumber outputParameters: - type: object mapping: $. - name: list-routes description: List all dispatch routes hints: readOnly: true openWorld: true call: samsara.list-routes with: limit: tools.limit after: tools.after outputParameters: - type: object mapping: $. - name: create-route description: Create a new dispatch route with stops for a driver hints: readOnly: false destructive: false idempotent: false call: samsara.create-route with: name: tools.name driverId: tools.driverId stops: tools.stops outputParameters: - type: object mapping: $. - name: list-assets description: List all non-powered assets (trailers, equipment) hints: readOnly: true openWorld: true call: samsara.list-assets with: limit: tools.limit after: tools.after outputParameters: - type: object mapping: $. - name: list-addresses description: List all addresses and geofence locations hints: readOnly: true openWorld: true call: samsara.list-addresses with: limit: tools.limit after: tools.after tagIds: tools.tagIds outputParameters: - type: object mapping: $. - name: create-address description: Create a new address with geofence for fleet operations hints: readOnly: false destructive: false idempotent: false call: samsara.create-address with: name: tools.name formattedAddress: tools.formattedAddress geofence: tools.geofence outputParameters: - type: object mapping: $.