device-get
ChatGPTReturns a single device by ID if the user is authorized to access it (Requires mcp:read permission). If an insufficient-permissions error is thrown, all tools with same required permission will fail. Tell the user that they need to request the permission.
device-statuses-list
ChatGPTReturns device status history if the user is authorized to access it (Requires mcp:read permission). If an insufficient-permissions error is thrown, all tools with same required permission will fail. Tell the user that they need to request the permission.
devices-list
ChatGPTReturns a paginated list of devices that the user is authorized to access. Use this tool when the user asks for a list of devices. Unless specified, deviceType should be omitted. (Requires mcp:read permission). If an insufficient-permissions error is thrown, all tools with same required permission will fail. Tell the user that they need to request the permission.
floorplan-get-by-id
ChatGPTGet a floor plan by its ID (Requires mcp:read permission). If an insufficient-permissions error is thrown, all tools with same required permission will fail. Tell the user that they need to request the permission.
floorplan-get-by-zone-id
ChatGPTGet the active floor plan for a zone. Each zone has at most one active floor plan. (Requires mcp:read permission). If an insufficient-permissions error is thrown, all tools with same required permission will fail. Tell the user that they need to request the permission.
floorplans-find
ChatGPTFind floor plans across sites, optionally filtered by zone IDs (Requires mcp:read permission). If an insufficient-permissions error is thrown, all tools with same required permission will fail. Tell the user that they need to request the permission.
metrics-find
ChatGPTFetch metrics (visitor counts, occupancy, dwell time, air quality, sales KPIs, etc.) for authorized sites/zones/passages over a time range. ALWAYS specify both filter.start and filter.end (ISO-8601). If the user does not specify a time, default to T00:00:00 / T23:59:59. Set filter.timezone to the user's local timezone when their query implies local time ("today", "this week", etc.). RESPONSE SHAPE: array of { attributes: { siteId?, zoneId?, passageId?, timestamp?, siteName?, zoneName?, ... }, metrics: { <METRIC_KEY>: { data: number|null } }, timestamp: string }. Use enrichAttributes: true to get siteName/zoneName/passageName in attributes. QUERY PATTERNS — pick based on user intent: 1. Latest datapoint → groupBy ["timestamp","metric"], orderBy timestamp desc, limit 1–5, inputSampling AUTO. 2. Cumulative total over range → groupBy ["metric"] only, no orderBy/limit, inputSampling DAY or AUTO. Use the correct aggregation for the metric (SUM for counters, WEIGHTED_AVG for averages, AVG for sensors). 3. Timeseries for chart → groupBy ["timestamp","metric"], orderBy timestamp asc, limit 240–1440, inputSampling HOUR or DAY, paddingInterval "auto". 4. Zone/site breakdown → groupBy ["metric","zoneId"] or ["metric","siteId"], no orderBy, inputSampling AUTO. Add enrichAttributes: true to get names. 5. Ranking (top zones) → groupBy ["metric","zoneId"], orderBy by metric value desc, limit N. inputSampling speeds up queries significantly — always set it unless raw sub-minute data is strictly needed. (Requires mcp:read permission). If an insufficient-permissions error is thrown, all tools with same required permission will fail. Tell the user that they need to request the permission.
organization-get
ChatGPTReturns a single organization by ID if the user is authorized to access it (Requires mcp:read permission). If an insufficient-permissions error is thrown, all tools with same required permission will fail. Tell the user that they need to request the permission.
organizations-list
ChatGPTReturns a paginated list of organizations that the user is authorized to access (Requires mcp:read permission). If an insufficient-permissions error is thrown, all tools with same required permission will fail. Tell the user that they need to request the permission.
passage-get
ChatGPTReturns a single passage by ID if the user is authorized to access it (Requires mcp:read permission). If an insufficient-permissions error is thrown, all tools with same required permission will fail. Tell the user that they need to request the permission.
passages-list
ChatGPTReturns a paginated list of passages that the user is authorized to access (Requires mcp:read permission). If an insufficient-permissions error is thrown, all tools with same required permission will fail. Tell the user that they need to request the permission.
report-get
ChatGPTReturns a report by ID if the user is authorized to access it (Requires mcp:read permission). If an insufficient-permissions error is thrown, all tools with same required permission will fail. Tell the user that they need to request the permission.
report-stop-and-go-read-url
ChatGPTReturns a Stop&Go read URL for a report (Requires mcp:read permission). If an insufficient-permissions error is thrown, all tools with same required permission will fail. Tell the user that they need to request the permission.
reports-list
ChatGPTReturns a paginated list of reports the user is authorized to access (Requires mcp:read permission). If an insufficient-permissions error is thrown, all tools with same required permission will fail. Tell the user that they need to request the permission.
shared-report-get
ChatGPTReturns a shared report by sharedId if access is allowed (Requires mcp:read permission). If an insufficient-permissions error is thrown, all tools with same required permission will fail. Tell the user that they need to request the permission.
shared-reports-list
ChatGPTReturns a paginated list of active shared reports (Requires mcp:read permission). If an insufficient-permissions error is thrown, all tools with same required permission will fail. Tell the user that they need to request the permission.
site-get
ChatGPTGet a site by ID if the user is authorized to access it (Requires mcp:read permission). If an insufficient-permissions error is thrown, all tools with same required permission will fail. Tell the user that they need to request the permission.
sites-list
ChatGPTList sites in an organization with optional search, sort, and archived filter (Requires mcp:read permission). If an insufficient-permissions error is thrown, all tools with same required permission will fail. Tell the user that they need to request the permission.
whoami
ChatGPTReturns the current authenticated user profile and their organization. Takes no arguments. (Requires mcp:read permission). If an insufficient-permissions error is thrown, all tools with same required permission will fail. Tell the user that they need to request the permission.
zone-get
ChatGPTGet a zone by ID if the user is authorized to access it (Requires mcp:read permission). If an insufficient-permissions error is thrown, all tools with same required permission will fail. Tell the user that they need to request the permission.
zones-categories
ChatGPTList zone categories, optionally filtered by locale or keys (Requires mcp:read permission). If an insufficient-permissions error is thrown, all tools with same required permission will fail. Tell the user that they need to request the permission.
zones-list
ChatGPTList zones for one or many sites, with optional type and name filtering (Requires mcp:read permission). If an insufficient-permissions error is thrown, all tools with same required permission will fail. Tell the user that they need to request the permission.