LabStore
← All labs

ThingsBoard

by docker ✓ verified ✓ Packaged by Docker

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.

MCP server installable needs setup network: on runtime: sysbox

Monitoring & Uptime MCP Servers

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

Attribute Details
Docker Image mcp/thingsboard
Author thingsboard
Repository https://github.com/thingsboard/thingsboard-mcp

Image Building Info

Attribute Details
Dockerfile https://github.com/thingsboard/thingsboard-mcp/blob/adac2d247c408487ef1f99ebb65f8889792dc632/Dockerfile
Commit adac2d247c408487ef1f99ebb65f8889792dc632
Docker Image built by Docker Inc.
Docker Scout Health Score Docker Scout Health Score
Verify Signature COSIGN_REPOSITORY=mcp/signatures cosign verify mcp/thingsboard --key https://raw.githubusercontent.com/docker/keyring/refs/heads/main/public/mcp/latest.pub
Licence Apache License 2.0

Available Tools (62)

Tools provided by this Server Short Description
findByFrom Returns list of relation objects for the specified entity by the 'from' direction.
findByFromWithRelationType Returns list of relation objects for the specified entity by the 'from' direction and relation type.
findByTo Returns list of relation objects for the specified entity by the 'to' direction.
findByToWithRelationType Returns list of relation objects for the specified entity by the 'to' direction and relation type.
findInfoByFrom Returns list of relation info objects for the specified entity by the 'from' direction.
findInfoByTo Returns list of relation info objects for the specified entity by the 'to' direction.
getAdminSettings Get the Administration Settings object using specified string key.
getAlarmById Get the Alarm object based on the provided alarm id.
getAlarmInfoById Get the Alarm info object based on the provided alarm id.
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.
getAlarms Get a page of alarms for the selected entity.
getAllAlarms Get a page of alarms that belongs to the current user owner.
getAllCustomerUsers Returns a page of users for the current tenant with authority 'CUSTOMER_USER'.
getAssetById Get the Asset object based on the provided Asset Id.
getAssetsByEntityGroupId Returns a page of asset objects that belongs to specified Entity Group Id.
getAssetsByIds Get Assets By Ids.
getAttributeKeys Returns a set of unique attribute key names for the selected entity.
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.
getAttributes Returns all attributes that belong to specified entity.
getAttributesByScope Returns all attributes of a specified scope that belong to specified entity.
getCustomerAssets Returns a page of assets objects assigned to customer.
getCustomerById Get the Customer object based on the provided Customer Id.
getCustomerDevices Returns a page of devices objects assigned to customer.
getCustomerUsers Returns a page of users assigned to the specified customer.
getCustomers Returns a page of customers owned by tenant.
getCustomersByEntityGroupId Returns a page of Customer objects that belongs to specified Entity Group Id.
getDeviceById Fetch the Device object based on the provided Device Id.
getDeviceCredentialsByDeviceId Get device credentials by device id.
getDevicesByEntityGroupId Returns a page of device objects that belongs to specified Entity Group Id.
getDevicesByIds Get Devices By Ids.
getEntityGroupById Fetch the Entity Group object based on the provided Entity Group Id.
getEntityGroupByOwnerAndNameAndType Fetch the Entity Group object based on the provided owner, type and name.
getEntityGroupsByIds Fetch the list of Entity Group Info objects based on the provided entity group ids list.
getEntityGroupsByOwnerAndType Fetch the list of Entity Group Info objects based on the provided Owner Id and Entity Type.
getEntityGroupsByType Fetch the list of Entity Group Info objects based on the provided Entity Type.
getEntityGroupsForEntity Returns a list of groups that contain the specified Entity Id.
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.
getLatestTimeseries Returns all time series that belong to specified entity.
getRelation Returns relation object between two specified entities if present.
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).
getSystemInfo Get main information about system.
getTenantAdmins Returns a page of tenant administrator users assigned to the specified tenant.
getTenantAsset Get tenant asset.
getTenantAssets Returns a page of assets owned by tenant.
getTenantCustomer Get the Customer using Customer Title.
getTenantDevice Requested device must be owned by tenant that the user belongs to.
getTenantDevices Returns a page of devices owned by tenant.
getTimeseries Returns a range of time series values for specified entity.
getTimeseriesKeys Returns a set of unique time series key names for the selected entity.
getUsageInfo Retrieves usage statistics for the current tenant, including number of devices, assets, customers, users, dashboards, edges, transportMessages, jsExecutions, tbelExecutions, emails, sms, alarms.
getUserAssets Returns a page of assets objects available for the current user.
getUserById Fetch the User object based on the provided User Id.
getUserCustomers Returns a page of customers available for the user.
getUserDevices Returns a page of device objects available for the current user.
getUsers Returns a page of users owned by tenant or customer.
getUsersByEntityGroupId Returns a page of user objects that belongs to specified Entity Group Id.
getUsersForAssign Returns page of user data objects that can be assigned to provided alarmId.
saveDeviceAttributes Creates or updates the device attributes based on device id and specified attribute scope.
saveEntityAttributesV1 Creates or updates the entity attributes based on Entity Id and the specified attribute scope.
saveEntityAttributesV2 Creates or updates the entity attributes based on Entity Id and the specified attribute scope.
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.
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.

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.

Parameters Type Description
strFromId string A string value representing the entity id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'
strFromType string A string value representing the entity type. For example, 'DEVICE'
strRelationTypeGroup string optional A 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.

Parameters Type Description
relationType string A string value representing relation type between entities. For example, 'Contains', 'Manages'. It can be any string value.
strFromId string A string value representing the entity id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'
strFromType string A string value representing the entity type. For example, 'DEVICE'
strRelationTypeGroup string optional A 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.

Parameters Type Description
strToId string A string value representing the entity id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'
strToType string A string value representing the entity type. For example, 'DEVICE'
strRelationTypeGroup string optional A 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.

Parameters Type Description
relationType string A string value representing relation type between entities. For example, 'Contains', 'Manages'. It can be any string value.
strToId string A string value representing the entity id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'
strToType string A string value representing the entity type. For example, 'DEVICE'
strRelationTypeGroup string optional A 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.

Parameters Type Description
strFromId string A string value representing the entity id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'
strFromType string A string value representing the entity type. For example, 'DEVICE'
strRelationTypeGroup string optional A 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.

Parameters Type Description
strToId string A string value representing the entity id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'
strToType string A string value representing the entity type. For example, 'DEVICE'
strRelationTypeGroup string optional A 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.

Parameters Type Description
key string A 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.

Parameters Type Description
alarmId string A 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.

Parameters Type Description
alarmId string A 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.

Parameters Type Description
page integer Sequence number of page starting from 0
pageSize integer Maximum amount of entities in a one page
sortOrder string optional Sort order. ASC (ASCENDING) or DESC (DESCENDING)
textSearch string optional The 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.

Parameters Type Description
entityId string A string value representing the entity id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'
entityType string A string value representing the entity type. For example, 'DEVICE'
page integer Sequence number of page starting from 0
pageSize integer Maximum amount of entities in a one page
endTs integer optional The end timestamp in milliseconds of the search time range over the Alarm class field: 'createdTime'.
fetchOriginator boolean optional A boolean value to specify if the alarm originator name will be filled in the AlarmInfo object field: 'originatorName' or will returns as null.
searchStatus string optional A string value representing one of the AlarmSearchStatus enumeration value. Allowed values: 'ANY', 'ACTIVE', 'CLEARED', 'ACK', 'UNACK'
sortOrder string optional Sort order. ASC (ASCENDING) or DESC (DESCENDING)
sortProperty string optional Property of entity to sort by. Allowed values: 'createdTime', 'startTs', 'endTs', 'ackTs', 'clearTs', 'severity', 'status'
startTs integer optional The start timestamp in milliseconds of the search time range over the Alarm class field: 'createdTime'.
status string optional A string value representing one of the AlarmStatus enumeration value. Allowed values: 'ACTIVE_UNACK', 'ACTIVE_ACK', 'CLEARED_UNACK', 'CLEARED_ACK'
textSearch string optional The 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.

Parameters Type Description
page integer Sequence number of page starting from 0
pageSize integer Maximum amount of entities in a one page
assigneeId string optional A string value representing the assignee user id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'
endTs integer optional The end timestamp in milliseconds of the search time range over the Alarm class field: 'createdTime'.
fetchOriginator boolean optional A boolean value to specify if the alarm originator name will be filled in the AlarmInfo object field: 'originatorName' or will returns as null.
searchStatus string optional A string value representing one of the AlarmSearchStatus enumeration value. Allowed values: 'ANY', 'ACTIVE', 'CLEARED', 'ACK', 'UNACK'
sortOrder string optional Sort order. ASC (ASCENDING) or DESC (DESCENDING)
sortProperty string optional Property of entity to sort by. Allowed values: 'createdTime', 'startTs', 'endTs', 'ackTs', 'clearTs', 'severity', 'status'
startTs integer optional The start timestamp in milliseconds of the search time range over the Alarm class field: 'createdTime'.
status string optional A string value representing one of the AlarmStatus enumeration value. Allowed values: 'ACTIVE_UNACK', 'ACTIVE_ACK', 'CLEARED_UNACK', 'CLEARED_ACK'
textSearch string optional The 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).

Parameters Type Description
page integer Sequence number of page starting from 0
pageSize integer Maximum amount of entities in a one page
sortOrder string optional Sort order. ASC (ASCENDING) or DESC (DESCENDING)
sortProperty string optional Property of entity to sort by. Allowed values: 'createdTime', 'firstName', 'lastName', 'email'
textSearch string optional The 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.

Parameters Type Description
assetId string A 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.

Parameters Type Description
entityGroupId string A string value representing the Entity Group Id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'
page integer Sequence number of page starting from 0
pageSize integer Maximum amount of entities in a one page
sortOrder string optional Sort order. ASC (ASCENDING) or DESC (DESCENDING)
sortProperty string optional Property of entity to sort by. Allowed values: 'createdTime', 'firstName', 'lastName', 'email'
textSearch string optional The 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.

Parameters Type Description
assetIds array A 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.

Parameters Type Description
entityIdStr string A string value representing the entity id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'
entityType string A 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.

Parameters Type Description
entityIdStr string A string value representing the entity id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'
entityType string A string value representing the entity type. For example, 'DEVICE'
scope string A 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.

Parameters Type Description
entityIdStr string A string value representing the entity id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'
entityType string A string value representing the entity type. For example, 'DEVICE'
keys string optional A 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.

Parameters Type Description
entityIdStr string A string value representing the entity id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'
entityType string A string value representing the entity type. For example, 'DEVICE'
scope string A string value representing the attributes scope. For example, 'SERVER_SCOPE'. Allowable values: 'SERVER_SCOPE', 'SHARED_SCOPE', 'CLIENT_SCOPE'
keys string optional A 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.

Parameters Type Description
customerId string A string value representing the customer id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'
page integer Sequence number of page starting from 0
pageSize integer Maximum amount of entities in a one page
sortOrder string optional Sort order. ASC (ASCENDING) or DESC (DESCENDING)
sortProperty string optional Property of entity to sort by. Allowed values: 'createdTime', 'name', 'type', 'label', 'customerTitle'
textSearch string optional The case insensitive 'substring' filter based on the asset name.
type string optional Asset 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.

Parameters Type Description
customerId string A 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.

Parameters Type Description
customerId string A string value representing the customer id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'
page integer Sequence number of page starting from 0
pageSize integer Maximum amount of entities in a one page
sortOrder string optional Sort order. ASC (ASCENDING) or DESC (DESCENDING)
sortProperty string optional Property of entity to sort by. Allowed values: 'createdTime', 'name', 'deviceProfileName', 'label', 'customerTitle'
textSearch string optional The case insensitive 'substring' filter based on the asset name.
type string optional Asset 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.

Parameters Type Description
customerId string A string value representing the customer id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'
page integer Sequence number of page starting from 0
pageSize integer Maximum amount of entities in a one page
sortOrder string optional Sort order. ASC (ASCENDING) or DESC (DESCENDING)
sortProperty string optional Property of entity to sort by. Allowed values: 'createdTime', 'firstName', 'lastName', 'email'
textSearch string optional The 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.

Parameters Type Description
page integer Sequence number of page starting from 0
pageSize integer Maximum amount of entities in a one page
sortOrder string optional Sort order. ASC (ASCENDING) or DESC (DESCENDING)
sortProperty string optional Property of entity to sort by. Allowed values: 'createdTime', 'title', 'email', 'country', 'city'
textSearch string optional The 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.

Parameters Type Description
entityGroupId string A string value representing the Entity Group Id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'
page integer Sequence number of page starting from 0
pageSize integer Maximum amount of entities in a one page
sortOrder string optional Sort order. ASC (ASCENDING) or DESC (DESCENDING)
sortProperty string optional Property of entity to sort by. Allowed values: 'createdTime', 'title', 'email', 'country', 'city'
textSearch string optional The 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.

Parameters Type Description
deviceId string A 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.

Parameters Type Description
deviceId string A 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.

Parameters Type Description
entityGroupId string A string value representing the Entity Group Id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'
page integer Sequence number of page starting from 0
pageSize integer Maximum amount of entities in a one page
sortOrder string optional Sort order. ASC (ASCENDING) or DESC (DESCENDING)
sortProperty string optional Property of entity to sort by. Allowed values: 'createdTime', 'firstName', 'lastName', 'email'
textSearch string optional The 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.

Parameters Type Description
devicesIds array A 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.

Parameters Type Description
entityGroupId string entityGroupId

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.

Parameters Type Description
entityType string Entity Group type. Allowed types: 'CUSTOMER', 'ASSET', 'DEVICE', 'USER', 'ENTITY_VIEW', 'DASHBOARD', 'EDGE'
name string Entity Group name
strOwnerId string A string value representing the Tenant or Customer id
strOwnerType string Tenant 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.

Parameters Type Description
entityIds array A 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.

Parameters Type Description
entityType string Entity Group type. Allowed types: 'CUSTOMER', 'ASSET', 'DEVICE', 'USER', 'ENTITY_VIEW', 'DASHBOARD', 'EDGE'
strOwnerId string A string value representing the Tenant or Customer id
strOwnerType string Tenant 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.

Parameters Type Description
entityType string Entity 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).

Parameters Type Description
entityType string Entity Group type. Allowed types: 'CUSTOMER', 'ASSET', 'DEVICE', 'USER', 'ENTITY_VIEW', 'DASHBOARD', 'EDGE'
strEntityId string A 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.

Parameters Type Description
entityId string A string value representing the entity id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'
entityType string A string value representing the entity type. For example, 'DEVICE'
searchStatus string optional A string value representing one of the AlarmSearchStatus enumeration value. Allowed values: 'ANY', 'ACTIVE', 'CLEARED', 'ACK', 'UNACK'
status string optional A 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.

Parameters Type Description
entityIdStr string A string value representing the entity id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'
entityType string A string value representing the entity type. For example, 'DEVICE'
keys string optional A 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'.
useStrictDataTypes boolean optional Enables/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.

Parameters Type Description
relationType string A string value representing relation type between entities. For example, 'Contains', 'Manages'. It can be any string value.
strFromId string A string value representing the entity id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'
strFromType string A string value representing the entity type. For example, 'DEVICE'
strToId string A string value representing the entity id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'
strToType string A string value representing the entity type. For example, 'DEVICE'
strRelationTypeGroup string optional A 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.

Parameters Type Description
page integer Sequence number of page starting from 0
pageSize integer Maximum amount of entities in a one page
tenantId string A string value representing the tenant id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'
sortOrder string optional Sort order. ASC (ASCENDING) or DESC (DESCENDING)
sortProperty string optional Property of entity to sort by. Allowed values: 'createdTime', 'firstName', 'lastName', 'email'
textSearch string optional The 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.

Parameters Type Description
assetName string A 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.

Parameters Type Description
page integer Sequence number of page starting from 0
pageSize integer Maximum amount of entities in a one page
sortOrder string optional Sort order. ASC (ASCENDING) or DESC (DESCENDING)
sortProperty string optional Property of entity to sort by. Allowed values: 'createdTime', 'name', 'type', 'label', 'customerTitle'
textSearch string optional The case insensitive 'substring' filter based on the asset name.
type string optional Asset type

Tool: getTenantCustomer

Get the Customer using Customer Title.

Available for users with 'TENANT_ADMIN' authority.

Parameters Type Description
customerTitle string A 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.

Parameters Type Description
deviceName string A 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.

Parameters Type Description
page integer Sequence number of page starting from 0
pageSize integer Maximum amount of entities in a one page
sortOrder string optional Sort order. ASC (ASCENDING) or DESC (DESCENDING)
sortProperty string optional Property of entity to sort by. Allowed values: 'createdTime', 'name', 'deviceProfileName', 'label', 'customerTitle'
textSearch string optional The case insensitive 'substring' filter based on the asset name.
type string optional Asset 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.

Parameters Type Description
endTs integer A long value representing the end timestamp of the time range in milliseconds, UTC.
entityIdStr string A string value representing the entity id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'
entityType string A string value representing the entity type. For example, 'DEVICE'
keys string A 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'.
startTs integer A long value representing the start timestamp of the time range in milliseconds, UTC.
agg string optional A 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'
interval integer optional A long value representing the aggregation interval range in milliseconds.
intervalType string optional A string value representing the type fo the interval. Allowed values: 'MILLISECONDS', 'WEEK', 'WEEK_ISO', 'MONTH', 'QUARTER'
limit integer optional An 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'.
orderBy string optional Sort order. ASC (ASCENDING) or DESC (DESCENDING)
timeZone string optional A string value representing the timezone that will be used to calculate exact timestamps for 'WEEK', 'WEEK_ISO', 'MONTH' and 'QUARTER' interval types.
useStrictDataTypes boolean optional Enables/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.

Parameters Type Description
entityIdStr string A string value representing the entity id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'
entityType string A 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.

Parameters Type Description
page integer Sequence number of page starting from 0
pageSize integer Maximum amount of entities in a one page
sortOrder string optional Sort order. ASC (ASCENDING) or DESC (DESCENDING)
sortProperty string optional Property of entity to sort by. Allowed values: 'createdTime', 'name', 'type', 'label', 'customerTitle'
textSearch string optional The case insensitive 'substring' filter based on the asset name.
type string optional Asset 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.

Parameters Type Description
userId string A 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).

Parameters Type Description
page integer Sequence number of page starting from 0
pageSize integer Maximum amount of entities in a one page
sortOrder string optional Sort order. ASC (ASCENDING) or DESC (DESCENDING)
sortProperty string optional Property of entity to sort by. Allowed values: 'createdTime', 'title', 'email', 'country', 'city'
textSearch string optional The 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.

Parameters Type Description
page integer Sequence number of page starting from 0
pageSize integer Maximum amount of entities in a one page
sortOrder string optional Sort order. ASC (ASCENDING) or DESC (DESCENDING)
sortProperty string optional Property of entity to sort by. Allowed values: 'createdTime', 'name', 'type', 'deviceProfileName', 'label', 'customerTitle'
textSearch string optional The case insensitive 'substring' filter based on the asset name.
type string optional Asset 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.

Parameters Type Description
page integer Sequence number of page starting from 0
pageSize integer Maximum amount of entities in a one page
sortOrder string optional Sort order. ASC (ASCENDING) or DESC (DESCENDING)
sortProperty string optional Property of entity to sort by. Allowed values: 'createdTime', 'firstName', 'lastName', 'email'
textSearch string optional The 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.

Parameters Type Description
entityGroupId string A string value representing the Entity Group Id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'
page integer Sequence number of page starting from 0
pageSize integer Maximum amount of entities in a one page
sortOrder string optional Sort order. ASC (ASCENDING) or DESC (DESCENDING)
sortProperty string optional Property of entity to sort by. Allowed values: 'createdTime', 'firstName', 'lastName', 'email'
textSearch string optional The 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.

Parameters Type Description
alarmId string A string value representing the alarm id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'
page integer Sequence number of page starting from 0
pageSize integer Maximum amount of entities in a one page
sortOrder string optional Sort order. ASC (ASCENDING) or DESC (DESCENDING)
sortProperty string optional Property of entity to sort by. Allowed values: 'createdTime', 'firstName', 'lastName', 'email'
textSearch string optional The 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.

Parameters Type Description
deviceId string A string value representing the device id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'
jsonBody string A string value representing the json object. For example, '{"key":"value"}'. See API call description for more details.
scope string A 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.

Parameters Type Description
entityIdStr string A string value representing the entity id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'
entityType string A string value representing the entity type. For example, 'DEVICE'
jsonBody string A string value representing the json object. For example, '{"key":"value"}'. See API call description for more details.
scope string A 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.

Parameters Type Description
entityIdStr string A string value representing the entity id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'
entityType string A string value representing the entity type. For example, 'DEVICE'
jsonBody string A string value representing the json object. For example, '{"key":"value"}'. See API call description for more details.
scope string A 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.

Parameters Type Description
entityIdStr string A string value representing the entity id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'
entityType string A string value representing the entity type. For example, 'DEVICE'
jsonBody string A 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.

Parameters Type Description
entityIdStr string A string value representing the entity id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'
entityType string A string value representing the entity type. For example, 'DEVICE'
jsonBody string A JSON with the telemetry values. See API call description for more details.
ttl integer A 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?