Sign inSign up

mcp/thingsboard

Verified Publisher

By mcp

•Updated 11 months ago

Connect your AI workflows to the ThingsBoard IoT Platform through this MCP server. Enables LLMs ...

Image
Machine learning & AI
0

9.7K

mcp/thingsboard repository overview

⁠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'
strRelationTypeGroupstring optionalA 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'
strRelationTypeGroupstring optionalA 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'
strRelationTypeGroupstring optionalA 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'
strRelationTypeGroupstring optionalA 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'
strRelationTypeGroupstring optionalA 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'
strRelationTypeGroupstring optionalA 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
sortOrderstring optionalSort order. ASC (ASCENDING) or DESC (DESCENDING)
textSearchstring optionalThe 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
endTsinteger optionalThe end timestamp in milliseconds of the search time range over the Alarm class field: 'createdTime'.
fetchOriginatorboolean optionalA boolean value to specify if the alarm originator name will be filled in the AlarmInfo object field: 'originatorName' or will returns as null.
searchStatusstring optionalA string value representing one of the AlarmSearchStatus enumeration value. Allowed values: 'ANY', 'ACTIVE', 'CLEARED', 'ACK', 'UNACK'
sortOrderstring optionalSort order. ASC (ASCENDING) or DESC (DESCENDING)
sortPropertystring optionalProperty of entity to sort by. Allowed values: 'createdTime', 'startTs', 'endTs', 'ackTs', 'clearTs', 'severity', 'status'
startTsinteger optionalThe start timestamp in milliseconds of the search time range over the Alarm class field: 'createdTime'.
statusstring optionalA string value representing one of the AlarmStatus enumeration value. Allowed values: 'ACTIVE_UNACK', 'ACTIVE_ACK', 'CLEARED_UNACK', 'CLEARED_ACK'
textSearchstring optionalThe 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
assigneeIdstring optionalA string value representing the assignee user id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'
endTsinteger optionalThe end timestamp in milliseconds of the search time range over the Alarm class field: 'createdTime'.
fetchOriginatorboolean optionalA boolean value to specify if the alarm originator name will be filled in the AlarmInfo object field: 'originatorName' or will returns as null.
searchStatusstring optionalA string value representing one of the AlarmSearchStatus enumeration value. Allowed values: 'ANY', 'ACTIVE', 'CLEARED', 'ACK', 'UNACK'
sortOrderstring optionalSort order. ASC (ASCENDING) or DESC (DESCENDING)
sortPropertystring optionalProperty of entity to sort by. Allowed values: 'createdTime', 'startTs', 'endTs', 'ackTs', 'clearTs', 'severity', 'status'
startTsinteger optionalThe start timestamp in milliseconds of the search time range over the Alarm class field: 'createdTime'.
statusstring optionalA string value representing one of the AlarmStatus enumeration value. Allowed values: 'ACTIVE_UNACK', 'ACTIVE_ACK', 'CLEARED_UNACK', 'CLEARED_ACK'
textSearchstring optionalThe 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
sortOrderstring optionalSort order. ASC (ASCENDING) or DESC (DESCENDING)
sortPropertystring optionalProperty of entity to sort by. Allowed values: 'createdTime', 'firstName', 'lastName', 'email'
textSearchstring optionalThe 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
sortOrderstring optionalSort order. ASC (ASCENDING) or DESC (DESCENDING)
sortPropertystring optionalProperty of entity to sort by. Allowed values: 'createdTime', 'firstName', 'lastName', 'email'
textSearchstring optionalThe 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": "json

[...]

Install from MCP:Hub

Tag summary

Content type

Image

Digest

sha256:b6733d2cf…

Size

153.6 MB

Last updated

11 months ago

docker pull mcp/thingsboard

This week's pulls

Pulls:

34

Last week