ThingsBoard
About
The ThingsBoard MCP Server provides a natural language interface for LLMs and AI agents to interact with your ThingsBoard IoT platform.
Explore
- Query device details, credentials, profiles, and relationships
- View and manage assets, customers, and users
- Retrieve and insert/update attributes and time-series data
- Discover and navigate relationships between entities
- Fetch alarms, alarm types, and severity for entities
- Access system settings, security policies, and version control
Setting up with Highlight
This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:
- Download and install Highlight from highlightai.com/download
- Navigate to the plugins tab and select "Add Custom Plugin"
-
Configure the plugin with the settings below
Plugin Name
ThingsBoardCommand (node, npx, python, etc.)Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.
- Enable "Start Automatically" if you want the plugin to start when Highlight launches
From the repository
Before you begin, ensure you have the following:
- ThingsBoard instance - A running ThingsBoard instance that the MCP server can connect to. You can use any of the following options:
- Local/On-premise instance: Self-hosted ThingsBoard installation on your own infrastructure
- ThingsBoard Community Edition: Free open-source version that can be installed locally
- ThingsBoard Professional Edition: Self-hosted version with additional features
- ThingsBoard Demo: Free shared instance available at demo.thingsboard.io (limited functionality)
- ThingsBoard Cloud: Fully managed cloud service available at thingsboard.cloud (subscription-based)
- Authentication credentials - Valid username and password with appropriate permissions on the ThingsBoard instance
- Network connectivity - The MCP server must be able to reach the ThingsBoard instance via HTTP/HTTPS
- Environment configuration - Properly configured environment variables as specified in the Environment Variables section
1. Choose your ThingsBoard instance: Use an existing instance or sign up for ThingsBoard Cloud
2. Get your credentials: Create or use an existing user account with appropriate permissions
3. Deploy the MCP server: Use one of the following methods:
For STDIO Mode, you must include the -i flag to keep stdin open:
bashdocker pull thingsboard/mcp
docker run --rm -i -e THINGSBOARD_URL=<your_thingsboard_url> -e THINGSBOARD_USERNAME=<your_username> -e THINGSBOARD_PASSWORD=<your_password> thingsboard/mcp
In SSE Mode, you must expose port 8000 using the -p flag and explicitly override the default settings :
bashdocker pull thingsboard/mcp
docker run --rm -p 8000:8000 -e THINGSBOARD_URL=<your_thingsboard_url> -e THINGSBOARD_USERNAME=<your_username> -e THINGSBOARD_PASSWORD=<your_password> -e SPRING_AI_MCP_SERVER_STDIO=false -e SPRING_WEB_APPLICATION_TYPE=servlet thingsboard/mcp
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.
If you've built the JAR file from sources, use this configuration in your claude_desktop_config.json:
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": ""
}
}
}
}
If you're using the Docker image, use this configuration in your claude_desktop_config.json:
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": ""
}
}
}
}
``
The MCP server requires the following environment variables to connect to your ThingsBoard instance:
| Variable | Description | Default |
|----------|------------------------------------------------|---------|
|
THINGSBOARD_URL | The base URL of your ThingsBoard instance | |
| THINGSBOARD_USERNAME | Username used to authenticate with ThingsBoard | |
| THINGSBOARD_PASSWORD | Password used to authenticate with ThingsBoard | |
| THINGSBOARD_LOGIN_INTERVAL_SECONDS | Login session refresh interval in seconds | 1800 |
| SPRING_WEB_APPLICATION_TYPE | Spring application type (none or servlet) | none |
| SPRING_AI_MCP_SERVER_STDIO | Enable/disable standard I/O communication | true |
| SPRING_AI_MCP_SERVER_SSE_ENDPOINT | Server-Sent Events (SSE) endpoint URL | /sse |
| SPRING_AI_MCP_SERVER_SSE_MESSAGE_ENDPOINT | Server-Sent Events message endpoint URL | /mcp/message |
| SERVER_PORT | HTTP server port number | 8080 |
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 setupThe ThingsBoard MCP Server provides a wide range of tools that can be used through natural language commands. These tools are organized by category.
Claude Desktop / Cursor
Paste into your MCP client config file to install this server.
{
"mcpServers": {
"thingsboard": {
"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": ""
}
}
}
}
}
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": ""
}
}
}
Before installing the MCP server, ensure you have:
1. Access to a ThingsBoard instance
2. A user account with sufficient permissions
3. The username and password for this account
Sign in to leave a review
Use Google, GitHub, or an email account so ratings stay tied to real people.
No reviews posted yet.



