ThingsBoard

ThingsBoard

Connect your AI workflows to the ThingsBoard IoT Platform through this MCP server. Enables LLMs to query device telemetry, manage IoT entities (devices, assets, customers), and analyze sensor data - all through natural language. Perfect for building AI-powered IoT monitoring, predictive maintenance, and automated device management workflows. Supports both ThingsBoard Community Edition and Professional Edition.

9.7K

62 Tools

Packaged by
Requires Configuration
Requires Secrets
Add to Docker Desktop

Version 4.43 or later needs to be installed to add the server automatically

Use cases

About

ThingsBoard MCP Server

Connect your AI workflows to the ThingsBoard IoT Platform through this MCP server. Enables LLMs to query device telemetry, manage IoT entities (devices, assets, customers), and analyze sensor data - all through natural language.

Perfect for building AI-powered IoT monitoring, predictive maintenance, and automated device management workflows. Supports both ThingsBoard Community Edition and Professional Edition. .

What is an MCP Server?⁠

MCP Info

Image Building Info

AttributeDetails
Dockerfilehttps://github.com/thingsboard/thingsboard-mcp/blob/adac2d247c408487ef1f99ebb65f8889792dc632/Dockerfile⁠
Commitadac2d247c408487ef1f99ebb65f8889792dc632
Docker Image built byDocker Inc.
Docker Scout Health ScoreDocker Scout Health Score
Verify SignatureCOSIGN_REPOSITORY=mcp/signatures cosign verify mcp/thingsboard --key https://raw.githubusercontent.com/docker/keyring/refs/heads/main/public/mcp/latest.pub
LicenceApache License 2.0

Available Tools (62)

Tools provided by this ServerShort Description
findByFromReturns list of relation objects for the specified entity by the 'from' direction.
findByFromWithRelationTypeReturns list of relation objects for the specified entity by the 'from' direction and relation type.
findByToReturns list of relation objects for the specified entity by the 'to' direction.
findByToWithRelationTypeReturns list of relation objects for the specified entity by the 'to' direction and relation type.
findInfoByFromReturns list of relation info objects for the specified entity by the 'from' direction.
findInfoByToReturns list of relation info objects for the specified entity by the 'to' direction.
getAdminSettingsGet the Administration Settings object using specified string key.
getAlarmByIdGet the Alarm object based on the provided alarm id.
getAlarmInfoByIdGet the Alarm info object based on the provided alarm id.
getAlarmTypesGet a set of unique alarm types based on alarms that are either owned by tenant or assigned to the customer which user is performing the request.
getAlarmsGet a page of alarms for the selected entity.
getAllAlarmsGet a page of alarms that belongs to the current user owner.
getAllCustomerUsersReturns a page of users for the current tenant with authority 'CUSTOMER_USER'.
getAssetByIdGet the Asset object based on the provided Asset Id.
getAssetsByEntityGroupIdReturns a page of asset objects that belongs to specified Entity Group Id.
getAssetsByIdsGet Assets By Ids.
getAttributeKeysReturns a set of unique attribute key names for the selected entity.
getAttributeKeysByScopeReturns a set of unique attribute key names for the selected entity and attributes scope: * SERVER_SCOPE - supported for all entity types; * CLIENT_SCOPE - supported for devices; * SHARED_SCOPE - supported for devices.
getAttributesReturns all attributes that belong to specified entity.
getAttributesByScopeReturns all attributes of a specified scope that belong to specified entity.
getCustomerAssetsReturns a page of assets objects assigned to customer.
getCustomerByIdGet the Customer object based on the provided Customer Id.
getCustomerDevicesReturns a page of devices objects assigned to customer.
getCustomerUsersReturns a page of users assigned to the specified customer.
getCustomersReturns a page of customers owned by tenant.
getCustomersByEntityGroupIdReturns a page of Customer objects that belongs to specified Entity Group Id.
getDeviceByIdFetch the Device object based on the provided Device Id.
getDeviceCredentialsByDeviceIdGet device credentials by device id.
getDevicesByEntityGroupIdReturns a page of device objects that belongs to specified Entity Group Id.
getDevicesByIdsGet Devices By Ids.
getEntityGroupByIdFetch the Entity Group object based on the provided Entity Group Id.
getEntityGroupByOwnerAndNameAndTypeFetch the Entity Group object based on the provided owner, type and name.
getEntityGroupsByIdsFetch the list of Entity Group Info objects based on the provided entity group ids list.
getEntityGroupsByOwnerAndTypeFetch the list of Entity Group Info objects based on the provided Owner Id and Entity Type.
getEntityGroupsByTypeFetch the list of Entity Group Info objects based on the provided Entity Type.
getEntityGroupsForEntityReturns a list of groups that contain the specified Entity Id.
getHighestAlarmSeverityGet highest alarm severity by originator ('entityType' and 'entityId') and optional 'status' and 'searchStatus' filters and returns the highest AlarmSeverity(CRITICAL, MAJOR, MINOR, WARNING or INDETERMINATE).Specifying both parameters 'searchStatus' and 'status' at the same time will cause an error.
getLatestTimeseriesReturns all time series that belong to specified entity.
getRelationReturns relation object between two specified entities if present.
getSecuritySettingsGet the Security settings object that contains password policy, lockout limits, notification email, mobile secret key length, and TTL values for activation & password-reset tokens (1–24 hours).
getSystemInfoGet main information about system.
getTenantAdminsReturns a page of tenant administrator users assigned to the specified tenant.
getTenantAssetGet tenant asset.
getTenantAssetsReturns a page of assets owned by tenant.
getTenantCustomerGet the Customer using Customer Title.
getTenantDeviceRequested device must be owned by tenant that the user belongs to.
getTenantDevicesReturns a page of devices owned by tenant.
getTimeseriesReturns a range of time series values for specified entity.
getTimeseriesKeysReturns a set of unique time series key names for the selected entity.
getUsageInfoRetrieves usage statistics for the current tenant, including number of devices, assets, customers, users, dashboards, edges, transportMessages, jsExecutions, tbelExecutions, emails, sms, alarms.
getUserAssetsReturns a page of assets objects available for the current user.
getUserByIdFetch the User object based on the provided User Id.
getUserCustomersReturns a page of customers available for the user.
getUserDevicesReturns a page of device objects available for the current user.
getUsersReturns a page of users owned by tenant or customer.
getUsersByEntityGroupIdReturns a page of user objects that belongs to specified Entity Group Id.
getUsersForAssignReturns page of user data objects that can be assigned to provided alarmId.
saveDeviceAttributesCreates or updates the device attributes based on device id and specified attribute scope.
saveEntityAttributesV1Creates or updates the entity attributes based on Entity Id and the specified attribute scope.
saveEntityAttributesV2Creates or updates the entity attributes based on Entity Id and the specified attribute scope.
saveEntityTelemetryCreates or updates the entity time series data based on the Entity Id and request payload.The request payload is a JSON document with three possible formats: Simple format without timestamp.
saveEntityTelemetryWithTTLCreates or updates the entity time series data based on the Entity Id and request payload.The request payload is a JSON document with three possible formats: Simple format without timestamp.

Tools Details

Tool: findByFrom

Returns list of relation objects for the specified entity by the 'from' direction.

If the user has the authority of 'System Administrator', the server checks that 'from' and 'to' entities are owned by the sysadmin. If the user has the authority of 'Tenant Administrator', the server checks that 'from' and 'to' entities are owned by the same tenant. If the user has the authority of 'Customer User', the server checks that the 'from' and 'to' entities are assigned to the same customer.

ParametersTypeDescription
strFromIdstringA string value representing the entity id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'
strFromTypestringA string value representing the entity type. For example, 'DEVICE'
strRelationTypeGroupstringoptionalA string value representing relation type group. For example, 'COMMON'

Tool: findByFromWithRelationType

Returns list of relation objects for the specified entity by the 'from' direction and relation type.

If the user has the authority of 'System Administrator', the server checks that 'from' and 'to' entities are owned by the sysadmin. If the user has the authority of 'Tenant Administrator', the server checks that 'from' and 'to' entities are owned by the same tenant. If the user has the authority of 'Customer User', the server checks that the 'from' and 'to' entities are assigned to the same customer.

ParametersTypeDescription
relationTypestringA string value representing relation type between entities. For example, 'Contains', 'Manages'. It can be any string value.
strFromIdstringA string value representing the entity id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'
strFromTypestringA string value representing the entity type. For example, 'DEVICE'
strRelationTypeGroupstringoptionalA string value representing relation type group. For example, 'COMMON'

Tool: findByTo

Returns list of relation objects for the specified entity by the 'to' direction.

If the user has the authority of 'System Administrator', the server checks that 'from' and 'to' entities are owned by the sysadmin. If the user has the authority of 'Tenant Administrator', the server checks that 'from' and 'to' entities are owned by the same tenant. If the user has the authority of 'Customer User', the server checks that the 'from' and 'to' entities are assigned to the same customer.

ParametersTypeDescription
strToIdstringA string value representing the entity id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'
strToTypestringA string value representing the entity type. For example, 'DEVICE'
strRelationTypeGroupstringoptionalA string value representing relation type group. For example, 'COMMON'

Tool: findByToWithRelationType

Returns list of relation objects for the specified entity by the 'to' direction and relation type.

If the user has the authority of 'System Administrator', the server checks that 'from' and 'to' entities are owned by the sysadmin. If the user has the authority of 'Tenant Administrator', the server checks that 'from' and 'to' entities are owned by the same tenant. If the user has the authority of 'Customer User', the server checks that the 'from' and 'to' entities are assigned to the same customer.

ParametersTypeDescription
relationTypestringA string value representing relation type between entities. For example, 'Contains', 'Manages'. It can be any string value.
strToIdstringA string value representing the entity id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'
strToTypestringA string value representing the entity type. For example, 'DEVICE'
strRelationTypeGroupstringoptionalA string value representing relation type group. For example, 'COMMON'

Tool: findInfoByFrom

Returns list of relation info objects for the specified entity by the 'from' direction.

If the user has the authority of 'System Administrator', the server checks that 'from' and 'to' entities are owned by the sysadmin. If the user has the authority of 'Tenant Administrator', the server checks that 'from' and 'to' entities are owned by the same tenant. If the user has the authority of 'Customer User', the server checks that the 'from' and 'to' entities are assigned to the same customer. Relation Info is an extension of the default Relation object that contains information about the 'from' and 'to' entity names.

ParametersTypeDescription
strFromIdstringA string value representing the entity id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'
strFromTypestringA string value representing the entity type. For example, 'DEVICE'
strRelationTypeGroupstringoptionalA string value representing relation type group. For example, 'COMMON'

Tool: findInfoByTo

Returns list of relation info objects for the specified entity by the 'to' direction.

If the user has the authority of 'System Administrator', the server checks that 'from' and 'to' entities are owned by the sysadmin. If the user has the authority of 'Tenant Administrator', the server checks that 'from' and 'to' entities are owned by the same tenant. If the user has the authority of 'Customer User', the server checks that the 'from' and 'to' entities are assigned to the same customer. Relation Info is an extension of the default Relation object that contains information about the 'from' and 'to' entity names.

ParametersTypeDescription
strToIdstringA string value representing the entity id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'
strToTypestringA string value representing the entity type. For example, 'DEVICE'
strRelationTypeGroupstringoptionalA string value representing relation type group. For example, 'COMMON'

Tool: getAdminSettings

Get the Administration Settings object using specified string key. Referencing non-existing key will cause an error.

Available for users with 'SYS_ADMIN' authority.

ParametersTypeDescription
keystringA string value of the key (e.g. 'general', 'mail', 'notifications', 'sms', 'entitiesVersionControl', 'connectivity', 'jwt', etc

Tool: getAlarmById

Get the Alarm object based on the provided alarm id. If the user has the authority of 'Tenant Administrator', the server checks that the originator of alarm is owned by the same tenant. If the user has the authority of 'Customer User', the server checks that the originator of alarm belongs to the customer.

ParametersTypeDescription
alarmIdstringA string value representing the alarm id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'

Tool: getAlarmInfoById

Get the Alarm info object based on the provided alarm id. If the user has the authority of 'Tenant Administrator', the server checks that the originator of alarm is owned by the same tenant. If the user has the authority of 'Customer User', the server checks that the originator of alarm belongs to the customer. Alarm Info is an extension of the default Alarm object that also contains name of the alarm originator.

Available for users with 'TENANT_ADMIN' or 'CUSTOMER_USER' authority.

ParametersTypeDescription
alarmIdstringA string value representing the alarm id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'

Tool: getAlarmTypes

Get a set of unique alarm types based on alarms that are either owned by tenant or assigned to the customer which user is performing the request.

Available for users with 'TENANT_ADMIN' or 'CUSTOMER_USER' authority.

ParametersTypeDescription
pageintegerSequence number of page starting from 0
pageSizeintegerMaximum amount of entities in a one page
sortOrderstringoptionalSort order. ASC (ASCENDING) or DESC (DESCENDING)
textSearchstringoptionalThe case insensitive 'substring' filter based on of next alarm fields: type, severity or status

Tool: getAlarms

Get a page of alarms for the selected entity. Specifying both parameters 'searchStatus' and 'status' at the same time will cause an error. You can specify parameters to filter the results. The result is wrapped with PageData object that allows you to iterate over result set using pagination. See response schema for more details.

Available for users with 'TENANT_ADMIN' or 'CUSTOMER_USER' authority.

ParametersTypeDescription
entityIdstringA string value representing the entity id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'
entityTypestringA string value representing the entity type. For example, 'DEVICE'
pageintegerSequence number of page starting from 0
pageSizeintegerMaximum amount of entities in a one page
endTsintegeroptionalThe end timestamp in milliseconds of the search time range over the Alarm class field: 'createdTime'.
fetchOriginatorbooleanoptionalA boolean value to specify if the alarm originator name will be filled in the AlarmInfo object field: 'originatorName' or will returns as null.
searchStatusstringoptionalA string value representing one of the AlarmSearchStatus enumeration value. Allowed values: 'ANY', 'ACTIVE', 'CLEARED', 'ACK', 'UNACK'
sortOrderstringoptionalSort order. ASC (ASCENDING) or DESC (DESCENDING)
sortPropertystringoptionalProperty of entity to sort by. Allowed values: 'createdTime', 'startTs', 'endTs', 'ackTs', 'clearTs', 'severity', 'status'
startTsintegeroptionalThe start timestamp in milliseconds of the search time range over the Alarm class field: 'createdTime'.
statusstringoptionalA string value representing one of the AlarmStatus enumeration value. Allowed values: 'ACTIVE_UNACK', 'ACTIVE_ACK', 'CLEARED_UNACK', 'CLEARED_ACK'
textSearchstringoptionalThe case insensitive 'substring' filter based on of next alarm fields: type, severity or status

Tool: getAllAlarms

Get a page of alarms that belongs to the current user owner. If the user has the authority of 'Tenant Administrator', the server returns alarms that belongs to the tenant of current user. If the user has the authority of 'Customer User', the server returns alarms that belongs to the customer of current user. Specifying both parameters 'searchStatus' and 'status' at the same time will cause an error. You can specify parameters to filter the results. The result is wrapped with PageData object that allows you to iterate over result set using pagination. See response schema for more details.

Available for users with 'TENANT_ADMIN' or 'CUSTOMER_USER' authority.

ParametersTypeDescription
pageintegerSequence number of page starting from 0
pageSizeintegerMaximum amount of entities in a one page
assigneeIdstringoptionalA string value representing the assignee user id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'
endTsintegeroptionalThe end timestamp in milliseconds of the search time range over the Alarm class field: 'createdTime'.
fetchOriginatorbooleanoptionalA boolean value to specify if the alarm originator name will be filled in the AlarmInfo object field: 'originatorName' or will returns as null.
searchStatusstringoptionalA string value representing one of the AlarmSearchStatus enumeration value. Allowed values: 'ANY', 'ACTIVE', 'CLEARED', 'ACK', 'UNACK'
sortOrderstringoptionalSort order. ASC (ASCENDING) or DESC (DESCENDING)
sortPropertystringoptionalProperty of entity to sort by. Allowed values: 'createdTime', 'startTs', 'endTs', 'ackTs', 'clearTs', 'severity', 'status'
startTsintegeroptionalThe start timestamp in milliseconds of the search time range over the Alarm class field: 'createdTime'.
statusstringoptionalA string value representing one of the AlarmStatus enumeration value. Allowed values: 'ACTIVE_UNACK', 'ACTIVE_ACK', 'CLEARED_UNACK', 'CLEARED_ACK'
textSearchstringoptionalThe case insensitive 'substring' filter based on of next alarm fields: type, severity or status

Tool: getAllCustomerUsers

Returns a page of users for the current tenant with authority 'CUSTOMER_USER'. Available only in Professional edition (PE). You can specify parameters to filter the results. The result is wrapped with PageData object that allows you to iterate over result set using pagination. See response schema for more details.

Available for users with 'TENANT_ADMIN' or 'CUSTOMER_USER' authority. Security check is performed to verify that the user has 'READ' permission for the entity (entities).

ParametersTypeDescription
pageintegerSequence number of page starting from 0
pageSizeintegerMaximum amount of entities in a one page
sortOrderstringoptionalSort order. ASC (ASCENDING) or DESC (DESCENDING)
sortPropertystringoptionalProperty of entity to sort by. Allowed values: 'createdTime', 'firstName', 'lastName', 'email'
textSearchstringoptionalThe case insensitive 'substring' filter based on the customer title.

Tool: getAssetById

Get the Asset object based on the provided Asset Id. If the user has the authority of 'Tenant Administrator', the server checks that the asset is owned by the same tenant. If the user has the authority of 'Customer User', the server checks that the asset is assigned to the same customer.

Available for users with 'TENANT_ADMIN' or 'CUSTOMER_USER' authority.

ParametersTypeDescription
assetIdstringA string value representing the asset id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'

Tool: getAssetsByEntityGroupId

Returns a page of asset objects that belongs to specified Entity Group Id. Available only in Professional edition (PE). You can specify parameters to filter the results. The result is wrapped with PageData object that allows you to iterate over result set using pagination. See response schema for more details.

Available for users with 'TENANT_ADMIN' or 'CUSTOMER_USER' authority. Security check is performed to verify that the user has 'READ' permission for specified group.

ParametersTypeDescription
entityGroupIdstringA string value representing the Entity Group Id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'
pageintegerSequence number of page starting from 0
pageSizeintegerMaximum amount of entities in a one page
sortOrderstringoptionalSort order. ASC (ASCENDING) or DESC (DESCENDING)
sortPropertystringoptionalProperty of entity to sort by. Allowed values: 'createdTime', 'firstName', 'lastName', 'email'
textSearchstringoptionalThe case insensitive 'substring' filter based on the customer title.

Tool: getAssetsByIds

Get Assets By Ids. Requested assets must be owned by tenant or assigned to customer which user is performing the request.

Available for users with 'TENANT_ADMIN' or 'CUSTOMER_USER' authority.

ParametersTypeDescription
assetIdsarrayA list of assets ids, separated by comma ','

Tool: getAttributeKeys

Returns a set of unique attribute key names for the selected entity. The response will include merged key names set for all attribute scopes:

  • SERVER_SCOPE - supported for all entity types;
  • CLIENT_SCOPE - supported for devices;
  • SHARED_SCOPE - supported for devices.

Referencing a non-existing entity Id or invalid entity type will cause an error.

Available for users with 'TENANT_ADMIN' or 'CUSTOMER_USER' authority.

ParametersTypeDescription
entityIdStrstringA string value representing the entity id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'
entityTypestringA string value representing the entity type. For example, 'DEVICE'

Tool: getAttributeKeysByScope

Returns a set of unique attribute key names for the selected entity and attributes scope:

  • SERVER_SCOPE - supported for all entity types;
  • CLIENT_SCOPE - supported for devices;
  • SHARED_SCOPE - supported for devices.

Referencing a non-existing entity Id or invalid entity type will cause an error.

Available for users with 'TENANT_ADMIN' or 'CUSTOMER_USER' authority.

ParametersTypeDescription
entityIdStrstringA string value representing the entity id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'
entityTypestringA string value representing the entity type. For example, 'DEVICE'
scopestringA string value representing the attributes scope. For example, 'SERVER_SCOPE'. Allowable values: 'SERVER_SCOPE', 'SHARED_SCOPE', 'CLIENT_SCOPE'

Tool: getAttributes

Returns all attributes that belong to specified entity. Use optional 'keys' parameter to return specific attributes. Example of the result:

[
  {"key": "stringAttributeKey", "value": "value", "lastUpdateTs": 1609459200000},
  {"key": "booleanAttributeKey", "value": false, "lastUpdateTs": 1609459200001},
  {"key": "doubleAttributeKey", "value": 42.2, "lastUpdateTs": 1609459200002},
  {"key": "longKeyExample", "value": 73, "lastUpdateTs": 1609459200003},
  {"key": "jsonKeyExample",
    "value": {
      "someNumber": 42,
      "someArray": [1,2,3],
      "someNestedObject": {"key": "value"}
    },
    "lastUpdateTs": 1609459200004
  }
]

Referencing a non-existing entity Id or invalid entity type will cause an error.

Available for users with 'TENANT_ADMIN' or 'CUSTOMER_USER' authority.

ParametersTypeDescription
entityIdStrstringA string value representing the entity id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'
entityTypestringA string value representing the entity type. For example, 'DEVICE'
keysstringoptionalA string value representing the comma-separated list of attributes keys. For example, 'active,inactivityAlarmTime'.

Tool: getAttributesByScope

Returns all attributes of a specified scope that belong to specified entity. List of possible attribute scopes depends on the entity type:

  • SERVER_SCOPE - supported for all entity types;
  • SHARED_SCOPE - supported for devices;
  • CLIENT_SCOPE - supported for devices.

Use optional 'keys' parameter to return specific attributes. Example of the result:

[
  {"key": "stringAttributeKey", "value": "value", "lastUpdateTs": 1609459200000},
  {"key": "booleanAttributeKey", "value": false, "lastUpdateTs": 1609459200001},
  {"key": "doubleAttributeKey", "value": 42.2, "lastUpdateTs": 1609459200002},
  {"key": "longKeyExample", "value": 73, "lastUpdateTs": 1609459200003},
  {"key": "jsonKeyExample",
    "value": {
      "someNumber": 42,
      "someArray": [1,2,3],
      "someNestedObject": {"key": "value"}
    },
    "lastUpdateTs": 1609459200004
  }
]

Referencing a non-existing entity Id or invalid entity type will cause an error.

Available for users with 'TENANT_ADMIN' or 'CUSTOMER_USER' authority.

ParametersTypeDescription
entityIdStrstringA string value representing the entity id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'
entityTypestringA string value representing the entity type. For example, 'DEVICE'
scopestringA string value representing the attributes scope. For example, 'SERVER_SCOPE'. Allowable values: 'SERVER_SCOPE', 'SHARED_SCOPE', 'CLIENT_SCOPE'
keysstringoptionalA string value representing the comma-separated list of attributes keys. For example, 'active,inactivityAlarmTime'.

Tool: getCustomerAssets

Returns a page of assets objects assigned to customer. You can specify parameters to filter the results. The result is wrapped with PageData object that allows you to iterate over result set using pagination. See response schema for more details.

Available for users with 'TENANT_ADMIN' or 'CUSTOMER_USER' authority.

ParametersTypeDescription
customerIdstringA string value representing the customer id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'
pageintegerSequence number of page starting from 0
pageSizeintegerMaximum amount of entities in a one page
sortOrderstringoptionalSort order. ASC (ASCENDING) or DESC (DESCENDING)
sortPropertystringoptionalProperty of entity to sort by. Allowed values: 'createdTime', 'name', 'type', 'label', 'customerTitle'
textSearchstringoptionalThe case insensitive 'substring' filter based on the asset name.
typestringoptionalAsset type

Tool: getCustomerById

Get the Customer object based on the provided Customer Id. If the user has the authority of 'Tenant Administrator', the server checks that the customer is owned by the same tenant. If the user has the authority of 'Customer User', the server checks that the user belongs to the customer.

Available for users with 'TENANT_ADMIN' or 'CUSTOMER_USER' authority.

ParametersTypeDescription
customerIdstringA string value representing the customer id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'

Tool: getCustomerDevices

Returns a page of devices objects assigned to customer. You can specify parameters to filter the results. The result is wrapped with PageData object that allows you to iterate over result set using pagination. See response schema for more details.

Available for users with 'TENANT_ADMIN' or 'CUSTOMER_USER' authority.

ParametersTypeDescription
customerIdstringA string value representing the customer id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'
pageintegerSequence number of page starting from 0
pageSizeintegerMaximum amount of entities in a one page
sortOrderstringoptionalSort order. ASC (ASCENDING) or DESC (DESCENDING)
sortPropertystringoptionalProperty of entity to sort by. Allowed values: 'createdTime', 'name', 'deviceProfileName', 'label', 'customerTitle'
textSearchstringoptionalThe case insensitive 'substring' filter based on the asset name.
typestringoptionalAsset type

Tool: getCustomerUsers

Returns a page of users assigned to the specified customer. You can specify parameters to filter the results. The result is wrapped with PageData object that allows you to iterate over result set using pagination. See response schema for more details.

Available for users with 'TENANT_ADMIN' or 'CUSTOMER_USER' authority.

ParametersTypeDescription
customerIdstringA string value representing the customer id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'
pageintegerSequence number of page starting from 0
pageSizeintegerMaximum amount of entities in a one page
sortOrderstringoptionalSort order. ASC (ASCENDING) or DESC (DESCENDING)
sortPropertystringoptionalProperty of entity to sort by. Allowed values: 'createdTime', 'firstName', 'lastName', 'email'
textSearchstringoptionalThe case insensitive 'substring' filter based on the customer title.

Tool: getCustomers

Returns a page of customers owned by tenant. You can specify parameters to filter the results. The result is wrapped with PageData object that allows you to iterate over result set using pagination. See response schema for more details.

Available for users with 'TENANT_ADMIN' authority.

ParametersTypeDescription
pageintegerSequence number of page starting from 0
pageSizeintegerMaximum amount of entities in a one page
sortOrderstringoptionalSort order. ASC (ASCENDING) or DESC (DESCENDING)
sortPropertystringoptionalProperty of entity to sort by. Allowed values: 'createdTime', 'title', 'email', 'country', 'city'
textSearchstringoptionalThe case insensitive 'substring' filter based on the customer title.

Tool: getCustomersByEntityGroupId

Returns a page of Customer objects that belongs to specified Entity Group Id. Available only in Professional edition (PE). You can specify parameters to filter the results. The result is wrapped with PageData object that allows you to iterate over result set using pagination. See response schema for more details.

Available for users with 'TENANT_ADMIN' or 'CUSTOMER_USER' authority. Security check is performed to verify that the user has 'READ' permission for specified group.

ParametersTypeDescription
entityGroupIdstringA string value representing the Entity Group Id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'
pageintegerSequence number of page starting from 0
pageSizeintegerMaximum amount of entities in a one page
sortOrderstringoptionalSort order. ASC (ASCENDING) or DESC (DESCENDING)
sortPropertystringoptionalProperty of entity to sort by. Allowed values: 'createdTime', 'title', 'email', 'country', 'city'
textSearchstringoptionalThe case insensitive 'substring' filter based on the customer title.

Tool: getDeviceById

Fetch the Device object based on the provided Device Id. If the user has the authority of 'TENANT_ADMIN', the server checks that the device is owned by the same tenant. If the user has the authority of 'CUSTOMER_USER', the server checks that the device is assigned to the same customer.

Available for users with 'TENANT_ADMIN' or 'CUSTOMER_USER' authority.

ParametersTypeDescription
deviceIdstringA string value representing the device id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'

Tool: getDeviceCredentialsByDeviceId

Get device credentials by device id. If during device creation there wasn't specified any credentials, platform generates random 'ACCESS_TOKEN' credentials.

Available for users with 'TENANT_ADMIN' or 'CUSTOMER_USER' authority.

ParametersTypeDescription
deviceIdstringA string value representing the device id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'

Tool: getDevicesByEntityGroupId

Returns a page of device objects that belongs to specified Entity Group Id. Available only in Professional edition (PE). You can specify parameters to filter the results. The result is wrapped with PageData object that allows you to iterate over result set using pagination. See response schema for more details.

Available for users with 'TENANT_ADMIN' or 'CUSTOMER_USER' authority. Security check is performed to verify that the user has 'READ' permission for specified group.

ParametersTypeDescription
entityGroupIdstringA string value representing the Entity Group Id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'
pageintegerSequence number of page starting from 0
pageSizeintegerMaximum amount of entities in a one page
sortOrderstringoptionalSort order. ASC (ASCENDING) or DESC (DESCENDING)
sortPropertystringoptionalProperty of entity to sort by. Allowed values: 'createdTime', 'firstName', 'lastName', 'email'
textSearchstringoptionalThe case insensitive 'substring' filter based on the customer title.

Tool: getDevicesByIds

Get Devices By Ids. Requested devices must be owned by tenant or assigned to customer which user is performing the request.

Available for users with 'TENANT_ADMIN' or 'CUSTOMER_USER' authority.

ParametersTypeDescription
devicesIdsarrayA list of assets ids, separated by comma ','

Tool: getEntityGroupById

Fetch the Entity Group object based on the provided Entity Group Id. Available only in Professional edition (PE). Entity group allows you to group multiple entities of the same entity type (Device, Asset, Customer, User, Dashboard, etc). Entity Group always have an owner - particular Tenant or Customer. Each entity may belong to multiple groups simultaneously.Entity Group Info extends Entity Group object and adds 'ownerIds' - a list of owner ids.

Entity group name is unique in the scope of owner and entity type. For example, you can't create two tenant device groups called 'Water meters'. However, you may create device and asset group with the same name. And also you may create groups with the same name for two different customers of the same tenant.

Available for users with 'TENANT_ADMIN' or 'CUSTOMER_USER' authority. Security check is performed to verify that the user has 'READ' permission for specified group.

ParametersTypeDescription
entityGroupIdstringentityGroupId

Tool: getEntityGroupByOwnerAndNameAndType

Fetch the Entity Group object based on the provided owner, type and name. Available only in Professional edition (PE). Entity group allows you to group multiple entities of the same entity type (Device, Asset, Customer, User, Dashboard, etc). Entity Group always have an owner - particular Tenant or Customer. Each entity may belong to multiple groups simultaneously.Entity Group Info extends Entity Group object and adds 'ownerIds' - a list of owner ids.

Available for users with 'TENANT_ADMIN' or 'CUSTOMER_USER' authority. Security check is performed to verify that the user has 'READ' permission for specified group.

ParametersTypeDescription
entityTypestringEntity Group type. Allowed types: 'CUSTOMER', 'ASSET', 'DEVICE', 'USER', 'ENTITY_VIEW', 'DASHBOARD', 'EDGE'
namestringEntity Group name
strOwnerIdstringA string value representing the Tenant or Customer id
strOwnerTypestringTenant or Customer

Tool: getEntityGroupsByIds

Fetch the list of Entity Group Info objects based on the provided entity group ids list. Available only in Professional edition (PE). Entity group allows you to group multiple entities of the same entity type (Device, Asset, Customer, User, Dashboard, etc). Entity Group always have an owner - particular Tenant or Customer. Each entity may belong to multiple groups simultaneously.Entity Group Info extends Entity Group object and adds 'ownerIds' - a list of owner ids.

Available for users with 'TENANT_ADMIN' or 'CUSTOMER_USER' authority. Security check is performed to verify that the user has 'READ' permission for specified group.

ParametersTypeDescription
entityIdsarrayA list of entity ids, separated by comma ','

Tool: getEntityGroupsByOwnerAndType

Fetch the list of Entity Group Info objects based on the provided Owner Id and Entity Type. Available only in Professional edition (PE). Entity group allows you to group multiple entities of the same entity type (Device, Asset, Customer, User, Dashboard, etc). Entity Group always have an owner - particular Tenant or Customer. Each entity may belong to multiple groups simultaneously.Entity Group Info extends Entity Group object and adds 'ownerIds' - a list of owner ids.

Available for users with 'TENANT_ADMIN' or 'CUSTOMER_USER' authority. Security check is performed to verify that the user has 'READ' permission for specified group.

ParametersTypeDescription
entityTypestringEntity Group type. Allowed types: 'CUSTOMER', 'ASSET', 'DEVICE', 'USER', 'ENTITY_VIEW', 'DASHBOARD', 'EDGE'
strOwnerIdstringA string value representing the Tenant or Customer id
strOwnerTypestringTenant or Customer

Tool: getEntityGroupsByType

Fetch the list of Entity Group Info objects based on the provided Entity Type. Available only in Professional edition (PE). Entity group allows you to group multiple entities of the same entity type (Device, Asset, Customer, User, Dashboard, etc). Entity Group always have an owner - particular Tenant or Customer. Each entity may belong to multiple groups simultaneously.Entity Group Info extends Entity Group object and adds 'ownerIds' - a list of owner ids.

Available for users with 'TENANT_ADMIN' or 'CUSTOMER_USER' authority. Security check is performed to verify that the user has 'READ' permission for specified group.

ParametersTypeDescription
entityTypestringEntity Group type. Allowed types: 'CUSTOMER', 'ASSET', 'DEVICE', 'USER', 'ENTITY_VIEW', 'DASHBOARD', 'EDGE'

Tool: getEntityGroupsForEntity

Returns a list of groups that contain the specified Entity Id. For example, all device groups that contain specific device. The list always contain at least one element - special group 'All'.Available only in Professional edition (PE). You can specify parameters to filter the results. The result is wrapped with PageData object that allows you to iterate over result set using pagination. See response schema for more details.

Available for users with 'TENANT_ADMIN' or 'CUSTOMER_USER' authority. Security check is performed to verify that the user has 'READ' permission for the entity (entities).

ParametersTypeDescription
entityTypestringEntity Group type. Allowed types: 'CUSTOMER', 'ASSET', 'DEVICE', 'USER', 'ENTITY_VIEW', 'DASHBOARD', 'EDGE'
strEntityIdstringA string value representing the entity id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'

Tool: getHighestAlarmSeverity

Get highest alarm severity by originator ('entityType' and 'entityId') and optional 'status' and 'searchStatus' filters and returns the highest AlarmSeverity(CRITICAL, MAJOR, MINOR, WARNING or INDETERMINATE).Specifying both parameters 'searchStatus' and 'status' at the same time will cause an error.

Available for users with 'TENANT_ADMIN' or 'CUSTOMER_USER' authority.

ParametersTypeDescription
entityIdstringA string value representing the entity id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'
entityTypestringA string value representing the entity type. For example, 'DEVICE'
searchStatusstringoptionalA string value representing one of the AlarmSearchStatus enumeration value. Allowed values: 'ANY', 'ACTIVE', 'CLEARED', 'ACK', 'UNACK'
statusstringoptionalA string value representing one of the AlarmStatus enumeration value. Allowed values: 'ACTIVE_UNACK', 'ACTIVE_ACK', 'CLEARED_UNACK', 'CLEARED_ACK'

Tool: getLatestTimeseries

Returns all time series that belong to specified entity. Use optional 'keys' parameter to return specific time series. The result is a JSON object. The format of the values depends on the 'useStrictDataTypes' parameter. By default, all time series values are converted to strings:

{
  "stringTsKey": [{ "value": "value", "ts": 1609459200000}],
  "booleanTsKey": [{ "value": "false", "ts": 1609459200000}],
  "doubleTsKey": [{ "value": "42.2", "ts": 1609459200000}],
  "longTsKey": [{ "value": "73", "ts": 1609459200000}],
  "jsonTsKey": [{ "value": "{\"someNumber\": 42,\"someArray\": [1,2,3],\"someNestedObject\": {\"key\": \"value\"}}", "ts": 1609459200000}]
}

However, it is possible to request the values without conversion ('useStrictDataTypes'=true):

{
  "stringTsKey": [{ "value": "value", "ts": 1609459200000}],
  "booleanTsKey": [{ "value": false, "ts": 1609459200000}],
  "doubleTsKey": [{ "value": 42.2, "ts": 1609459200000}],
  "longTsKey": [{ "value": 73, "ts": 1609459200000}],
  "jsonTsKey": [{ 
    "value": {
      "someNumber": 42,
      "someArray": [1,2,3],
      "someNestedObject": {"key": "value"}
    }, 
    "ts": 1609459200000}]
}

Referencing a non-existing entity Id or invalid entity type will cause an error.

Available for users with 'TENANT_ADMIN' or 'CUSTOMER_USER' authority.

ParametersTypeDescription
entityIdStrstringA string value representing the entity id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'
entityTypestringA string value representing the entity type. For example, 'DEVICE'
keysstringoptionalA string value representing the comma-separated list of telemetry keys. If keys are not selected, the result will return all latest time series. For example, 'temperature,humidity'.
useStrictDataTypesbooleanoptionalEnables/disables conversion of telemetry values to strings. Conversion is enabled by default. Set parameter to 'true' in order to disable the conversion.

Tool: getRelation

Returns relation object between two specified entities if present. Otherwise throws exception.

If the user has the authority of 'System Administrator', the server checks that 'from' and 'to' entities are owned by the sysadmin. If the user has the authority of 'Tenant Administrator', the server checks that 'from' and 'to' entities are owned by the same tenant. If the user has the authority of 'Customer User', the server checks that the 'from' and 'to' entities are assigned to the same customer.

ParametersTypeDescription
relationTypestringA string value representing relation type between entities. For example, 'Contains', 'Manages'. It can be any string value.
strFromIdstringA string value representing the entity id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'
strFromTypestringA string value representing the entity type. For example, 'DEVICE'
strToIdstringA string value representing the entity id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'
strToTypestringA string value representing the entity type. For example, 'DEVICE'
strRelationTypeGroupstringoptionalA string value representing relation type group. For example, 'COMMON'

Tool: getSecuritySettings

Get the Security settings object that contains password policy, lockout limits, notification email, mobile secret key length, and TTL values for activation & password-reset tokens (1–24 hours).

Available for users with 'SYS_ADMIN' authority.

Tool: getSystemInfo

Get main information about system.

Available for users with 'SYS_ADMIN' authority.

Tool: getTenantAdmins

Returns a page of tenant administrator users assigned to the specified tenant. You can specify parameters to filter the results. The result is wrapped with PageData object that allows you to iterate over result set using pagination. See response schema for more details.

Available for users with 'TENANT_ADMIN' authority.

ParametersTypeDescription
pageintegerSequence number of page starting from 0
pageSizeintegerMaximum amount of entities in a one page
tenantIdstringA string value representing the tenant id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'
sortOrderstringoptionalSort order. ASC (ASCENDING) or DESC (DESCENDING)
sortPropertystringoptionalProperty of entity to sort by. Allowed values: 'createdTime', 'firstName', 'lastName', 'email'
textSearchstringoptionalThe case insensitive 'substring' filter based on the customer title.

Tool: getTenantAsset

Get tenant asset. Requested asset must be owned by tenant that the user belongs to. Asset name is a unique property of asset. So it can be used to identify the asset.

Available for users with 'TENANT_ADMIN' authority.

ParametersTypeDescription
assetNamestringA string value representing the Asset name.

Tool: getTenantAssets

Returns a page of assets owned by tenant. You can specify parameters to filter the results. The result is wrapped with PageData object that allows you to iterate over result set using pagination. See response schema for more details.

Available for users with 'TENANT_ADMIN' authority.

ParametersTypeDescription
pageintegerSequence number of page starting from 0
pageSizeintegerMaximum amount of entities in a one page
sortOrderstringoptionalSort order. ASC (ASCENDING) or DESC (DESCENDING)
sortPropertystringoptionalProperty of entity to sort by. Allowed values: 'createdTime', 'name', 'type', 'label', 'customerTitle'
textSearchstringoptionalThe case insensitive 'substring' filter based on the asset name.
typestringoptionalAsset type

Tool: getTenantCustomer

Get the Customer using Customer Title.

Available for users with 'TENANT_ADMIN' authority.

ParametersTypeDescription
customerTitlestringA string value representing the Customer title.

Tool: getTenantDevice

Requested device must be owned by tenant that the user belongs to. Device name is an unique property of device. So it can be used to identify the device.

Available for users with 'TENANT_ADMIN' authority.

ParametersTypeDescription
deviceNamestringA string value representing the Device name.

Tool: getTenantDevices

Returns a page of devices owned by tenant. You can specify parameters to filter the results. The result is wrapped with PageData object that allows you to iterate over result set using pagination. See response schema for more details.

Available for users with 'TENANT_ADMIN' authority.

ParametersTypeDescription
pageintegerSequence number of page starting from 0
pageSizeintegerMaximum amount of entities in a one page
sortOrderstringoptionalSort order. ASC (ASCENDING) or DESC (DESCENDING)
sortPropertystringoptionalProperty of entity to sort by. Allowed values: 'createdTime', 'name', 'deviceProfileName', 'label', 'customerTitle'
textSearchstringoptionalThe case insensitive 'substring' filter based on the asset name.
typestringoptionalAsset type

Tool: getTimeseries

Returns a range of time series values for specified entity. Returns not aggregated data by default. Use aggregation function ('agg') and aggregation interval ('interval') to enable aggregation of the results on the database / server side. The aggregation is generally more efficient then fetching all records.

{
  "temperature": [
    {
      "value": 36.7,
      "ts": 1609459200000
    },
    {
      "value": 36.6,
      "ts": 1609459201000
    }
  ]
}

Referencing a non-existing entity Id or invalid entity type will cause an error.

Available for users with 'TENANT_ADMIN' or 'CUSTOMER_USER' authority.

ParametersTypeDescription
endTsintegerA long value representing the end timestamp of the time range in milliseconds, UTC.
entityIdStrstringA string value representing the entity id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'
entityTypestringA string value representing the entity type. For example, 'DEVICE'
keysstringA string value representing the comma-separated list of telemetry keys. If keys are not selected, the result will return all latest time series. For example, 'temperature,humidity'.
startTsintegerA long value representing the start timestamp of the time range in milliseconds, UTC.
aggstringoptionalA string value representing the aggregation function. If the interval is not specified, 'agg' parameter will use 'NONE' value. Allowed value: 'MIN', 'MAX', 'SUM', 'AVG', 'COUNT', 'NONE'
intervalintegeroptionalA long value representing the aggregation interval range in milliseconds.
intervalTypestringoptionalA string value representing the type fo the interval. Allowed values: 'MILLISECONDS', 'WEEK', 'WEEK_ISO', 'MONTH', 'QUARTER'
limitintegeroptionalAn integer value that represents a max number of time series data points to fetch. This parameter is used only in the case if 'agg' parameter is set to 'NONE'.
orderBystringoptionalSort order. ASC (ASCENDING) or DESC (DESCENDING)
timeZonestringoptionalA string value representing the timezone that will be used to calculate exact timestamps for 'WEEK', 'WEEK_ISO', 'MONTH' and 'QUARTER' interval types.
useStrictDataTypesbooleanoptionalEnables/disables conversion of telemetry values to strings. Conversion is enabled by default. Set parameter to 'true' in order to disable the conversion.

Tool: getTimeseriesKeys

Returns a set of unique time series key names for the selected entity.

Referencing a non-existing entity Id or invalid entity type will cause an error.

Available for users with 'TENANT_ADMIN' or 'CUSTOMER_USER' authority.

ParametersTypeDescription
entityIdStrstringA string value representing the entity id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'
entityTypestringA string value representing the entity type. For example, 'DEVICE'

Tool: getUsageInfo

Retrieves usage statistics for the current tenant, including number of devices, assets, customers, users, dashboards, edges, transportMessages, jsExecutions, tbelExecutions, emails, sms, alarms.

Available for users with 'TENANT_ADMIN' authority.

Tool: getUserAssets

Returns a page of assets objects available for the current user. Available only in Professional edition (PE). You can specify parameters to filter the results. The result is wrapped with PageData object that allows you to iterate over result set using pagination. See response schema for more details.

Available for users with 'TENANT_ADMIN' or 'CUSTOMER_USER' authority.

ParametersTypeDescription
pageintegerSequence number of page starting from 0
pageSizeintegerMaximum amount of entities in a one page
sortOrderstringoptionalSort order. ASC (ASCENDING) or DESC (DESCENDING)
sortPropertystringoptionalProperty of entity to sort by. Allowed values: 'createdTime', 'name', 'type', 'label', 'customerTitle'
textSearchstringoptionalThe case insensitive 'substring' filter based on the asset name.
typestringoptionalAsset type

Tool: getUserById

Fetch the User object based on the provided User Id. If the user has the authority of 'SYS_ADMIN', the server does not perform additional checks. If the user has the authority of 'TENANT_ADMIN', the server checks that the requested user is owned by the same tenant. If the user has the authority of 'CUSTOMER_USER', the server checks that the requested user is owned by the same customer.

ParametersTypeDescription
userIdstringA string value representing the user id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'

Tool: getUserCustomers

Returns a page of customers available for the user. Available only in Professional edition (PE). You can specify parameters to filter the results. The result is wrapped with PageData object that allows you to iterate over result set using pagination. See response schema for more details.

Available for users with 'TENANT_ADMIN' or 'CUSTOMER_USER' authority. Security check is performed to verify that the user has 'READ' permission for the entity (entities).

ParametersTypeDescription
pageintegerSequence number of page starting from 0
pageSizeintegerMaximum amount of entities in a one page
sortOrderstringoptionalSort order. ASC (ASCENDING) or DESC (DESCENDING)
sortPropertystringoptionalProperty of entity to sort by. Allowed values: 'createdTime', 'title', 'email', 'country', 'city'
textSearchstringoptionalThe case insensitive 'substring' filter based on the customer title.

Tool: getUserDevices

Returns a page of device objects available for the current user. Available only in Professional edition (PE). You can specify parameters to filter the results. The result is wrapped with PageData object that allows you to iterate over result set using pagination. See response schema for more details.

Available for users with 'TENANT_ADMIN' or 'CUSTOMER_USER' authority.

ParametersTypeDescription
pageintegerSequence number of page starting from 0
pageSizeintegerMaximum amount of entities in a one page
sortOrderstringoptionalSort order. ASC (ASCENDING) or DESC (DESCENDING)
sortPropertystringoptionalProperty of entity to sort by. Allowed values: 'createdTime', 'name', 'type', 'deviceProfileName', 'label', 'customerTitle'
textSearchstringoptionalThe case insensitive 'substring' filter based on the asset name.
typestringoptionalAsset type

Tool: getUsers

Returns a page of users owned by tenant or customer. The scope depends on authority of the user that performs the request. You can specify parameters to filter the results. The result is wrapped with PageData object that allows you to iterate over result set using pagination. See response schema for more details.

Available for users with 'TENANT_ADMIN' authority.

ParametersTypeDescription
pageintegerSequence number of page starting from 0
pageSizeintegerMaximum amount of entities in a one page
sortOrderstringoptionalSort order. ASC (ASCENDING) or DESC (DESCENDING)
sortPropertystringoptionalProperty of entity to sort by. Allowed values: 'createdTime', 'firstName', 'lastName', 'email'
textSearchstringoptionalThe case insensitive 'substring' filter based on the customer title.

Tool: getUsersByEntityGroupId

Returns a page of user objects that belongs to specified Entity Group Id. Available only in Professional edition (PE). You can specify parameters to filter the results. The result is wrapped with PageData object that allows you to iterate over result set using pagination. See response schema for more details.

Available for users with 'TENANT_ADMIN' or 'CUSTOMER_USER' authority. Security check is performed to verify that the user has 'READ' permission for specified group.

ParametersTypeDescription
entityGroupIdstringA string value representing the Entity Group Id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'
pageintegerSequence number of page starting from 0
pageSizeintegerMaximum amount of entities in a one page
sortOrderstringoptionalSort order. ASC (ASCENDING) or DESC (DESCENDING)
sortPropertystringoptionalProperty of entity to sort by. Allowed values: 'createdTime', 'firstName', 'lastName', 'email'
textSearchstringoptionalThe case insensitive 'substring' filter based on the customer title.

Tool: getUsersForAssign

Returns page of user data objects that can be assigned to provided alarmId. Search is been executed by email, firstName and lastName fields. You can specify parameters to filter the results. The result is wrapped with PageData object that allows you to iterate over result set using pagination. See response schema for more details.

Available for users with 'TENANT_ADMIN' or 'CUSTOMER_USER' authority.

ParametersTypeDescription
alarmIdstringA string value representing the alarm id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'
pageintegerSequence number of page starting from 0
pageSizeintegerMaximum amount of entities in a one page
sortOrderstringoptionalSort order. ASC (ASCENDING) or DESC (DESCENDING)
sortPropertystringoptionalProperty of entity to sort by. Allowed values: 'createdTime', 'firstName', 'lastName', 'email'
textSearchstringoptionalThe case insensitive 'substring' filter based on the customer title.

Tool: saveDeviceAttributes

Creates or updates the device attributes based on device id and specified attribute scope. The request payload is a JSON object with key-value format of attributes to create or update. For example:

{
 "stringKey":"value1", 
 "booleanKey":true, 
 "doubleKey":42.0, 
 "longKey":73, 
 "jsonKey": {
    "someNumber": 42,
    "someArray": [1,2,3],
    "someNestedObject": {"key": "value"}
 }
}

Available for users with 'TENANT_ADMIN' or 'CUSTOMER_USER' authority.

ParametersTypeDescription
deviceIdstringA string value representing the device id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'
jsonBodystringA string value representing the json object. For example, '{"key":"value"}'. See API call description for more details.
scopestringA string value representing the attributes scope. For example, 'SERVER_SCOPE'. Allowable values: 'SERVER_SCOPE', 'SHARED_SCOPE'

Tool: saveEntityAttributesV1

Creates or updates the entity attributes based on Entity Id and the specified attribute scope. List of possible attribute scopes depends on the entity type:

  • SERVER_SCOPE - supported for all entity types;
  • SHARED_SCOPE - supported for devices.

The request payload is a JSON object with key-value format of attributes to create or update. For example:

{
 "stringKey":"value1", 
 "booleanKey":true, 
 "doubleKey":42.0, 
 "longKey":73, 
 "jsonKey": {
    "someNumber": 42,
    "someArray": [1,2,3],
    "someNestedObject": {"key": "value"}
 }
}

Referencing a non-existing entity Id or invalid entity type will cause an error.

Available for users with 'TENANT_ADMIN' or 'CUSTOMER_USER' authority.

ParametersTypeDescription
entityIdStrstringA string value representing the entity id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'
entityTypestringA string value representing the entity type. For example, 'DEVICE'
jsonBodystringA string value representing the json object. For example, '{"key":"value"}'. See API call description for more details.
scopestringA string value representing the attributes scope. For example, 'SERVER_SCOPE'. Allowable values: 'SERVER_SCOPE', 'SHARED_SCOPE'

Tool: saveEntityAttributesV2

Creates or updates the entity attributes based on Entity Id and the specified attribute scope. List of possible attribute scopes depends on the entity type:

  • SERVER_SCOPE - supported for all entity types;
  • SHARED_SCOPE - supported for devices.

The request payload is a JSON object with key-value format of attributes to create or update. For example:

{
 "stringKey":"value1", 
 "booleanKey":true, 
 "doubleKey":42.0, 
 "longKey":73, 
 "jsonKey": {
    "someNumber": 42,
    "someArray": [1,2,3],
    "someNestedObject": {"key": "value"}
 }
}

Referencing a non-existing entity Id or invalid entity type will cause an error.

Available for users with 'TENANT_ADMIN' or 'CUSTOMER_USER' authority.

ParametersTypeDescription
entityIdStrstringA string value representing the entity id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'
entityTypestringA string value representing the entity type. For example, 'DEVICE'
jsonBodystringA string value representing the json object. For example, '{"key":"value"}'. See API call description for more details.
scopestringA string value representing the attributes scope. For example, 'SERVER_SCOPE'. Allowable values: 'SERVER_SCOPE', 'SHARED_SCOPE'

Tool: saveEntityTelemetry

Creates or updates the entity time series data based on the Entity Id and request payload.The request payload is a JSON document with three possible formats:

Simple format without timestamp. In such a case, current server time will be used:

{"temperature": 26}

Single JSON object with timestamp:

{"ts":1634712287000,"values":{"temperature":26, "humidity":87}}

JSON array with timestamps:

[{"ts":1634712287000,"values":{"temperature":26, "humidity":87}}, {"ts":1634712588000,"values":{"temperature":25, "humidity":88}}]

The scope parameter is not used in the API call implementation but should be specified whatever value because it is used as a path variable. Referencing a non-existing entity Id or invalid entity type will cause an error.

Available for users with 'TENANT_ADMIN' or 'CUSTOMER_USER' authority.

ParametersTypeDescription
entityIdStrstringA string value representing the entity id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'
entityTypestringA string value representing the entity type. For example, 'DEVICE'
jsonBodystringA JSON with the telemetry values. See API call description for more details.

Tool: saveEntityTelemetryWithTTL

Creates or updates the entity time series data based on the Entity Id and request payload.The request payload is a JSON document with three possible formats:

Simple format without timestamp. In such a case, current server time will be used:

{"temperature": 26}

Single JSON object with timestamp:

{"ts":1634712287000,"values":{"temperature":26, "humidity":87}}

JSON array with timestamps:

[{"ts":1634712287000,"values":{"temperature":26, "humidity":87}}, {"ts":1634712588000,"values":{"temperature":25, "humidity":88}}]

The scope parameter is not used in the API call implementation but should be specified whatever value because it is used as a path variable.

The ttl parameter takes affect only in case of Cassandra DB.Referencing a non-existing entity Id or invalid entity type will cause an error.

Available for users with 'TENANT_ADMIN' or 'CUSTOMER_USER' authority.

ParametersTypeDescription
entityIdStrstringA string value representing the entity id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'
entityTypestringA string value representing the entity type. For example, 'DEVICE'
jsonBodystringA JSON with the telemetry values. See API call description for more details.
ttlintegerA long value representing TTL (Time to Live) parameter.

Use this MCP Server

{
  "mcpServers": {
    "thingsboard": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "THINGSBOARD_URL",
        "-e",
        "THINGSBOARD_USERNAME",
        "-e",
        "THINGSBOARD_PASSWORD",
        "mcp/thingsboard"
      ],
      "env": {
        "THINGSBOARD_URL": "https://demo.thingsboard.io",
        "THINGSBOARD_USERNAME": "",
        "THINGSBOARD_PASSWORD": ""
      }
    }
  }
}

Why is it safer to run MCP Servers with Docker?⁠

Related servers