thingsnode-mcp

duelHunter/thingsnode-mcp

3.2

If you are the rightful owner of thingsnode-mcp and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to dayong@mcphub.com.

The ThingsBoard MCP Server provides a natural language interface for LLMs and AI agents to interact with the ThingsBoard IoT platform.

Tools
5
Resources
0
Prompts
0

Client Configuration

To launch the server as a container when your MCP client starts (e.g., Claude Desktop), you need to add the appropriate configuration to your client's settings.

Docker Configuration

If you're using the Docker image, use this configuration in your claude_desktop_config.json:

{
  "mcpServers": {
    "thingsboard": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "THINGSBOARD_URL",
        "-e",
        "THINGSBOARD_USERNAME",
        "-e",
        "THINGSBOARD_PASSWORD",
        "-e",
        "LOGGING_PATTERN_CONSOLE",
        "thingsboard/mcp"
      ],
      "env": {
        "THINGSBOARD_URL": "<thingsboard_url>",
        "THINGSBOARD_USERNAME": "<thingsboard_username>",
        "THINGSBOARD_PASSWORD": "<thingsboard_password>",
        "LOGGING_PATTERN_CONSOLE": ""
      }
    }
  }
}

Binary Configuration

If you've built the JAR file from sources, use this configuration in your claude_desktop_config.json:

{
  "mcpServers": {
    "thingsboard": {
      "command": "java",
      "args": [
        "-jar",
        "/absolute/path/to/thingsboard-mcp-server-1.0.0.jar"
      ],
      "env": {
        "THINGSBOARD_URL": "<thingsboard_url>",
        "THINGSBOARD_USERNAME": "<thingsboard_username>",
        "THINGSBOARD_PASSWORD": "<thingsboard_password>",
        "LOGGING_PATTERN_CONSOLE": ""
      }
    }
  }
}

Environment Variables

The MCP server requires the following environment variables to connect to your ThingsBoard instance:

VariableDescriptionDefault
THINGSBOARD_URLThe base URL of your ThingsBoard instance
THINGSBOARD_USERNAMEUsername used to authenticate with ThingsBoard
THINGSBOARD_PASSWORDPassword used to authenticate with ThingsBoard
THINGSBOARD_LOGIN_INTERVAL_SECONDSLogin session refresh interval in seconds1800
SPRING_WEB_APPLICATION_TYPESpring application type (none or servlet)none
SPRING_AI_MCP_SERVER_STDIOEnable/disable standard I/O communicationtrue
SPRING_AI_MCP_SERVER_SSE_ENDPOINTServer-Sent Events (SSE) endpoint URL/sse
SPRING_AI_MCP_SERVER_SSE_MESSAGE_ENDPOINTServer-Sent Events message endpoint URL/mcp/message
LOGGING_PATTERN_CONSOLELogback console log pattern
SERVER_PORTHTTP server port number8080

These variables can be set either:

  • Directly via Docker command line using the -e flag
  • Or through the env configuration block in your MCP client setup

Available Tools

The ThingsBoard MCP Server provides a wide range of tools that can be used through natural language commands. These tools are organized by category.

Device Tools

ToolDescription
getDeviceByIdFetch the Device object based on the provided Device Id.
getDeviceCredentialsByDeviceIdGet device credentials by device id. If during device creation there wasn't specified any credentials, platform generates random 'ACCESS_TOKEN' credentials.
getTenantDevicesReturns a page of devices owned by tenant.
getTenantDeviceGet tenant device by name. Device name is a unique property of device.
getCustomerDevicesReturns a page of devices objects assigned to customer.
getUserDevicesReturns a page of device objects available for the current user.
getDevicesByIdsGet Devices By Ids. Requested devices must be owned by tenant or assigned to customer.
getDevicesByEntityGroupIdReturns a page of device objects that belongs to specified Entity Group Id.

Asset Tools

ToolDescription
getAssetByIdGet the Asset object based on the provided Asset Id.
getTenantAssetsReturns a page of assets owned by tenant.
getTenantAssetGet tenant asset by name. Asset name is a unique property of asset.
getCustomerAssetsReturns a page of assets objects assigned to customer.
getUserAssetsReturns a page of assets objects available for the current user.
getAssetsByIdsGet Assets By Ids. Requested assets must be owned by tenant or assigned to customer.
getAssetsByEntityGroupIdReturns a page of asset objects that belongs to specified Entity Group Id.

Customer Tools

ToolDescription
getCustomerByIdGet the Customer object based on the provided Customer Id.
getCustomersReturns a page of customers owned by tenant.
getTenantCustomerGet the Customer using Customer Title.
getUserCustomersReturns a page of customers available for the user.
getCustomersByEntityGroupIdReturns a page of Customer objects that belongs to specified Entity Group Id.

User Tools

ToolDescription
getUserByIdFetch the User object based on the provided User Id.
getUsersReturns a page of users owned by tenant or customer.
getTenantAdminsReturns a page of tenant administrator users assigned to the specified tenant.
getCustomerUsersReturns a page of users assigned to the specified customer.
getAllCustomerUsersReturns a page of users for the current tenant with authority 'CUSTOMER_USER'.
getUsersForAssignReturns page of user data objects that can be assigned to provided alarmId.
getUsersByEntityGroupIdReturns a page of user objects that belongs to specified Entity Group Id.

Alarm Tools

ToolDescription
getAlarmByIdGet the Alarm object based on the provided alarm id.
getAlarmInfoByIdGet the Alarm info object based on the provided alarm id.
getAlarmsGet a page of alarms for the selected entity.
getAllAlarmsGet a page of alarms that belongs to the current user owner.
getHighestAlarmSeverityGet highest alarm severity by originator and optional status filters.
getAlarmTypesGet a set of unique alarm types based on alarms that are either owned by tenant or assigned to the customer.

Entity Group Tools

ToolDescription
getEntityGroupByIdFetch the Entity Group object based on the provided Entity Group Id.
getEntityGroupsByTypeFetch the list of Entity Group Info objects based on the provided Entity Type.
getEntityGroupByOwnerAndNameAndTypeFetch the Entity Group object based on the provided owner, type and name.
getEntityGroupsByOwnerAndTypeFetch the list of Entity Group Info objects based on the provided Owner Id and Entity Type.
getEntityGroupsForEntityReturns a list of groups that contain the specified Entity Id.
getEntityGroupsByIdsFetch the list of Entity Group Info objects based on the provided entity group ids list.

Relation Tools

ToolDescription
getRelationReturns relation object between two specified entities if present.
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.
findInfoByFromReturns list of relation info objects for the specified entity by the 'from' direction.
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.
findInfoByToReturns list of relation info objects for the specified entity by the 'to' direction.

Telemetry Tools

ToolDescription
getAttributeKeysGet all attribute keys for the specified entity.
getAttributeKeysByScopeGet all attribute keys for the specified entity and scope.
getAttributesGet attributes for the specified entity.
getAttributesByScopeGet attributes for the specified entity and scope.
getTimeseriesKeysGet all time-series keys for the specified entity.
getLatestTimeseriesGet the latest time-series values for the specified entity and keys.
getTimeseriesGet time-series data for the specified entity, keys, and time range.
saveDeviceAttributesSave device attributes.
saveEntityAttributesV1Save entity attributes (version 1).
saveEntityAttributesV2Save entity attributes (version 2).
saveEntityTelemetrySave entity telemetry data.
saveEntityTelemetryWithTTLSave entity telemetry data with time-to-live (TTL).

Admin Tools

ToolDescription
getAdminSettingsGet the Administration Settings object using specified string key.
getSecuritySettingsGet the Security settings object that contains password policy, lockout limits, etc.
getSystemInfoGet main information about system.
getUsageInfoRetrieves usage statistics for the current tenant.