From geotab-skills
Guides Geotab fleet management development with Python API, JavaScript Add-Ins, React Zenith styling, OData Data Connector, and Ace AI natural language queries.
npx claudepluginhub fhoffa/geotab-vibe-guideThis skill uses the workspace's default tool permissions.
This is the unified skill for all Geotab fleet management development. Navigate to the specific reference you need based on your task.
references/ACE_API.mdreferences/ADDINS.mdreferences/API_QUICKSTART.mdreferences/DATA_CONNECTOR.mdreferences/EMBEDDED.mdreferences/EXAMPLES.mdreferences/INTEGRATIONS.mdreferences/SECURE_BACKEND.mdreferences/SPEED_DATA.mdreferences/STORAGE_API.mdreferences/TRIP_ANALYSIS.mdreferences/TROUBLESHOOTING.mdreferences/ZENITH_COMPONENTS.mdreferences/ZENITH_EXAMPLE.mdreferences/ZENITH_STYLING.mdBuilds and extends MCP servers for Geotab fleet management with Claude Desktop. Guides setup, custom tools addition, troubleshooting, DuckDB caching, and multi-account configs.
Integrates Power Pages Web API into frontend code sites for Dataverse tables, implementing API clients, CRUD operations, permissions setup, and deployment.
Automates Klipfolio dashboard tasks via Rube MCP and Composio toolkit. Discovers current tool schemas with RUBE_SEARCH_TOOLS before managing connections and executing operations.
Share bugs, ideas, or general feedback.
This is the unified skill for all Geotab fleet management development. Navigate to the specific reference you need based on your task.
Geotab has three ways to get fleet data. Pick based on the task:
| Need | Channel | Reference | Speed |
|---|---|---|---|
| Pre-aggregated KPIs (distance, fuel, idle, safety) for dashboards/reports | OData Data Connector | DATA_CONNECTOR.md | ~5–11s |
| Raw entities (trips, devices, GPS, faults) or real-time data | MyGeotab API | API_QUICKSTART.md | ~0.5–2s |
| Natural language questions, ad-hoc exploration | Geotab Ace | ACE_API.md | ~30–45s |
Key constraints:
$select (column selection) and $filter (row filtering) for server-side query customization. Respects user permissions (group/vehicle scope).DeviceStatusInfo) and works everywhere including Add-Ins. Scales well for targeted queries (one vehicle's trips, one device's location), but "fetch all trips for the whole fleet and aggregate in code" doesn't scale to production fleets with thousands of vehicles. Use the Data Connector for fleet-wide KPIs at scale. Respects user permissions (group/vehicle scope).Full comparison with benchmarks: DATA_ACCESS_COMPARISON.md
| Task | Reference | Description |
|---|---|---|
| Connect to API | API_QUICKSTART.md | Python authentication, fetching data, entity types |
| Build Add-Ins | ADDINS.md | Create custom MyGeotab pages (vanilla JS) |
| Style with Zenith | ZENITH_STYLING.md | React components matching MyGeotab look |
| AI Queries | ACE_API.md | Natural language fleet queries via Geotab Ace |
| Data Connector | DATA_CONNECTOR.md | OData API for pre-aggregated KPIs, safety, faults |
| Reference | When to Use |
|---|---|
| API_QUICKSTART.md | Starting with Geotab API, fetching devices/trips/drivers, Python development |
| ADDINS.md | Building custom pages in MyGeotab, JavaScript Add-Ins |
| ZENITH_STYLING.md | Upgrading Add-Ins to professional React UI |
| ACE_API.md | Natural language queries, trend analysis, AI insights |
| Reference | When to Use |
|---|---|
| DATA_CONNECTOR.md | Pre-aggregated fleet KPIs via OData (daily/hourly/monthly distance, fuel, idle, safety) |
| SPEED_DATA.md | Working with vehicle speed data, LogRecord queries |
| TRIP_ANALYSIS.md | Analyzing trip data, fuel efficiency, distance calculations |
| Reference | When to Use |
|---|---|
| EMBEDDED.md | No-hosting Add-In deployment, inline JSON config |
| EXAMPLES.md | Complete working Add-In code examples |
| INTEGRATIONS.md | Navigation, email, maps, external APIs |
| SECURE_BACKEND.md | Securing Cloud Functions called by Add-Ins |
| STORAGE_API.md | Persisting Add-In data with AddInData |
| TROUBLESHOOTING.md | Debugging common Add-In issues |
| Reference | When to Use |
|---|---|
| ZENITH_COMPONENTS.md | Detailed Zenith component API reference |
| ZENITH_EXAMPLE.md | Complete React + Zenith Add-In example |
import mygeotab
from dotenv import load_dotenv
import os
load_dotenv()
api = mygeotab.API(
username=os.getenv('GEOTAB_USERNAME'),
password=os.getenv('GEOTAB_PASSWORD'),
database=os.getenv('GEOTAB_DATABASE'),
server=os.getenv('GEOTAB_SERVER', 'my.geotab.com')
)
api.authenticate()
from datetime import datetime, timedelta
# Get all vehicles
devices = api.get('Device')
# Get trips from last 7 days
trips = api.get('Trip',
fromDate=datetime.now() - timedelta(days=7),
toDate=datetime.now()
)
# Get drivers
drivers = api.get('User', search={'isDriver': True})
geotab.addin["your-addin-name"] = function() {
var apiRef = null;
return {
initialize: function(api, state, callback) {
apiRef = api;
// Setup code
callback(); // MUST call!
},
focus: function(api, state) {
// Refresh data
},
blur: function(api, state) {
// Cleanup
}
};
};
api.call("Get", { typeName: "Device" }, function(devices) {
console.log("Found " + devices.length + " vehicles");
}, function(error) {
console.error("Error:", error);
});
typeName: "Driver" - Use User with search: { isDriver: true }<style> tags may be strippedcallback() in initialize - Or Add-In will hang| Type | Description | Common Use |
|---|---|---|
Device | Vehicles/assets | Fleet inventory |
Trip | Completed journeys | Route analysis |
User | Users and drivers | Driver management |
DeviceStatusInfo | Current location/status | Live tracking |
LogRecord | GPS breadcrumbs | Historical routes |
StatusData | Sensor readings | Engine diagnostics |
ExceptionEvent | Rule violations | Safety monitoring |
FaultData | Engine fault codes | Maintenance — varies by demo database |
Zone | Geofences | Location monitoring |
Group | Organizational hierarchy | Vehicle grouping |
See API_QUICKSTART.md for the complete list of 34 entity types.
pip install mygeotab python-dotenv