Thingsboard Mcp Server MCP Server

Connect AI agents to your ThingsBoard IoT platform via Model Context Protocol (MCP). Query devices, manage entities, analyze telemetry, and automate operations — all through natural language.

Local serverstdio

What is the Thingsboard Mcp Server?

Thingsboard Mcp Server is an MCP project maintained in the thingsboard/thingsboard-mcp repository. The maintainer describes its purpose as “Connect AI agents to your ThingsBoard IoT platform via Model Context Protocol (MCP). Query devices, manage entities, analyze telemetry, and automate operations — all through…”. Read the project documentation for the complete scope.

Local setup

The project provides a local client configuration using docker. Follow the repository’s build and installation steps before copying it, and replace example paths with the paths on your own computer.

Configuration values

The example declares THINGSBOARD_URL, THINGSBOARD_API_KEY. Secret-looking values have been replaced with placeholders. Required and optional labels are shown only when the documentation states them.

Source

Project documentation · Repository · Discovery listing. This profile records the public documentation checked on 2026-10-08.

Recorded tools

Check the linked publisher documentation and your connected client's tool list. Names and availability can vary with the server version and account permissions.

ToolWhat it does
VariableGroup
THINGSBOARD_TOOLS_EDQEntity Data Query + Guides
THINGSBOARD_TOOLS_TELEMETRYTelemetry & Attributes
THINGSBOARD_TOOLS_DEVICEDevices
THINGSBOARD_TOOLS_ASSETAssets
THINGSBOARD_TOOLS_ALARMAlarms
THINGSBOARD_TOOLS_OTAOTA Packages
THINGSBOARD_TOOLS_RELATIONRelations
THINGSBOARD_TOOLS_CUSTOMERCustomers
THINGSBOARD_TOOLS_USERUsers
THINGSBOARD_TOOLS_GROUPEntity Groups (PE only)
createOrUpsertDeviceCreate or update a device by name. Primary tool for most device tasks.
saveDeviceCreate or update the device object from raw JSON. Advanced tool.
deleteDeviceDelete the device by id.
getDeviceByIdFetch the Device object based on the provided Device Id.
getDeviceCredentialsByDeviceIdGet device credentials by device id.
getTenantDevicesReturns a page of devices owned by tenant.
getTenantDeviceGet tenant device by name.
getCustomerDevicesReturns a page of devices assigned to customer.
getDevicesByIdsGet devices by ids.
saveAssetCreate or update the asset object.
deleteAssetDelete the asset by id.
getAssetByIdGet the Asset object by id.
getTenantAssetsReturns a page of assets owned by tenant.
getTenantAssetGet tenant asset by name.
getCustomerAssetsReturns a page of assets assigned to customer.
saveCustomerCreate or update the customer object.
deleteCustomerDelete the customer by id.
getCustomerByIdGet the Customer object by id.
getCustomersReturns a page of customers owned by tenant.
getTenantCustomerGet customer by title.
saveUserCreate or update the user object.
deleteUserDelete the user by id.
getUserByIdFetch the User object by id.
getUsersReturns a page of users owned by tenant or customer.
getTenantAdminsReturns a page of tenant administrator users.
getCustomerUsersReturns a page of users assigned to a customer.
getUsersForAssignReturns users that can be assigned to an alarm.
saveAlarmCreate or update the alarm object.
deleteAlarmDelete the alarm by id.
ackAlarmAcknowledge the alarm.
clearAlarmClear the alarm.
getAlarmInfoByIdGet alarm info by id (includes originator name).
getAlarmsGet a page of alarms for the selected entity.
getAllAlarmsGet a page of alarms for the current user owner.
getHighestAlarmSeverityGet highest alarm severity by originator.
getAlarmTypesGet unique alarm types.
saveOtaPackageInfoCreate or update OTA package info.
saveOtaPackageDataUpload OTA package binary from a file path.
downloadOtaPackageDownload OTA package binary to a local file path.
getOtaPackageInfoByIdGet OTA package info by id.
getOtaPackageByIdGet OTA package by id.
getOtaPackagesGet OTA packages (paged).
getOtaPackagesByDeviceProfileGet OTA packages by device profile and type.
assignOtaPackageToDeviceAssign or clear OTA package for a device.
assignOtaPackageToDeviceProfileAssign or clear OTA package for a device profile.
countByDeviceProfileAndEmptyOtaPackageCount devices without assigned OTA package.
deleteOtaPackageDelete OTA package by id.
saveRelationCreate or update a relation.
deleteRelationDelete a relation between two entities.
deleteRelationsDelete all relations for an entity.
getRelationGet a relation between two entities.
findInfoByFromFind relations from an entity (includes entity names).
findByFromWithRelationTypeFind relations from an entity filtered by type.
findInfoByToFind relations to an entity (includes entity names).
findByToWithRelationTypeFind relations to an entity filtered by type.
getAttributeKeysGet all attribute keys for an entity.
getAttributeKeysByScopeGet attribute keys by scope.
getAttributesGet attributes for an entity.
getAttributesByScopeGet attributes by scope.
getTimeseriesKeysGet all time-series keys for an entity.
getLatestTimeseriesGet latest time-series values.
getTimeseriesGet time-series data for a time range.
saveDeviceAttributesSave device attributes.
saveEntityAttributesV2Save entity attributes.
saveEntityTelemetrySave entity telemetry data.
saveEntityTelemetryWithTTLSave entity telemetry with TTL.
saveEntityGroupCreate or update an entity group.
deleteEntityGroupDelete an entity group by id.
getEntityGroupByIdGet entity group by id.
getEntityGroupsByTypeGet entity groups by entity type.
getEntityGroupByOwnerAndNameAndTypeGet entity group by owner, type, and name.
getEntityGroupsByOwnerAndTypeGet entity groups by owner and type.
getEntityGroupsForEntityGet groups containing a specified entity.
getEntityGroupsByIdsGet entity groups by ids.
addEntitiesToEntityGroupAdd entities to a group.
removeEntitiesFromEntityGroupRemove entities from a group.
findEntityDataBySingleEntityFilterFind data for one entity by ID.
findEntityDataByEntityListFilterFind data for a list of entity IDs.
findEntityDataByEntityNameFilterFind data by name prefix.
findEntityDataByEntityTypeFilterFind data by entity type.
findEntityDataByStateEntityOwnerFilterFind data for entity owner.
findEntityDataByAssetTypeFilterFind assets by type.
findEntityDataByDeviceTypeFilterFind devices by type.
findEntityDataByEdgeTypeFilterFind edges by type.
findEntityDataByEntityViewTypeFilterFind entity views by type.
findEntityDataByRelationsQueryFilterFind related entities.
findEntityDataByAssetSearchQueryFilterFind related assets.
findEntityDataByDeviceSearchQueryFilterFind related devices.
findEntityDataByEntityViewSearchQueryFilterFind related entity views.
findEntityDataByApiUsageStateFilterFind API usage data.
findEntityDataByEdgeQueryFilterFind related edges.
countBySingleEntityFilterCount by single entity ID.
countByEntityListFilterCount by entity ID list.
countByEntityNameFilterCount by name prefix.
countByEntityTypeFilterCount by entity type.
countByAssetTypeFilterCount assets by type.
countByDeviceTypeFilterCount devices by type.
countByEdgeTypeFilterCount edges by type.
countByEntityViewTypeFilterCount entity views by type.
countByApiUsageStateFilterCount API usage rows.
countByRelationsQueryFilterCount related entities.
countByAssetSearchQueryFilterCount related assets.
countByDeviceSearchQueryFilterCount related devices.
countByEntityViewSearchQueryFilterCount related entity views.
countByEdgeQueryFilterCount related edges.
getEdqGuideGet documentation for creating Entity Data Queries.
getEdqCountGuideGet documentation for creating Entity Count Queries.
getKeyFiltersGuideGet documentation for creating key filters.

How to install the Thingsboard Mcp Server

{
  "mcpServers": {
    "thingsboard": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "THINGSBOARD_URL",
        "-e",
        "THINGSBOARD_API_KEY",
        "thingsboard/mcp"
      ],
      "env": {
        "THINGSBOARD_URL": "https://thingsboard.cloud",
        "THINGSBOARD_API_KEY": "YOUR_THINGSBOARD_API_KEY"
      }
    }
  }
}

From the project documentation. Replace placeholders and example paths before connecting.

Configuration

VariableDescriptionRequired
THINGSBOARD_URLDeclared in the maintainer’s client configuration.Yes
THINGSBOARD_API_KEYDeclared in the maintainer’s client configuration.Check documentation