物联网设备管理服务

ThingsBoard MCP服务器提供物联网设备、资产、客户、用户、告警等实体管理功能,支持通过自然语言命令操作各类工具。

  • by duelHunter
  • Java
  • 本地部署
  • 更新于
在 GitHub 查看 duelHunter/thingsnode-mcp

使用说明

客户端配置

要在MCP客户端启动时将服务器作为容器启动(例如Claude Desktop),您需要将适当的配置添加到客户端的设置中。

Docker配置

如果您使用的是Docker镜像,请在您的 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": ""
      }
    }
  }
}

二进制配置

如果您已经从源代码构建了JAR文件,请在您的 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": ""
      }
    }
  }
}

环境变量

MCP服务器需要以下环境变量才能连接到ThingsBoard实例:

变量 描述 默认值
THINGSBOARD_URL ThingsBoard实例的基本URL
THINGSBOARD_USERNAME 用于向ThingsBoard进行身份验证的用户名
THINGSBOARD_PASSWORD 用于向ThingsBoard进行身份验证的密码
THINGSBOARD_LOGIN_INTERVAL_SECONDS 登录会话刷新间隔(秒) 1800
SPRING_WEB_APPLICATION_TYPE Spring应用程序类型(无或servlet) none
SPRING_AI_MCP_SERVER_STDIO 启用/禁用标准I/O通信 true
SPRING_AI_MCP_SERVER_SSE_ENDPOINT 服务器发送事件(SSE)端点URL /SSE
SPRING_AI_MCP_SERVER_SSE_MESSAGE_ENDPOINT 服务器发送事件消息端点URL /mcp/message
LOGGING_PATTERN_CONSOLE Logback控制台日志模式
SERVER_PORT HTTP服务器端口号 8080

这些变量可以设置为:

  • 直接通过Docker命令行使用 -e 旗帜
  • 或者通过 env MCP客户端设置中的配置块

可用工具

ThingsBoard MCP服务器提供了一系列可以通过自然语言命令使用的工具。这些工具按类别组织。

设备工具

工具 说明
getDeviceById 根据提供的设备Id获取设备对象
getDeviceCredentialsByDeviceId 按设备id获取设备凭据。如果在设备创建过程中没有指定任何凭据,平台将生成随机的“ACCESS_TOKEN”凭据。
getTenantDevices 返回租户拥有的设备页面。
getTenantDevice 按名称获取租户设备。设备名称是设备的唯一属性。
getCustomerDevices 返回分配给客户的设备对象的页面。
getUserDevices 返回当前用户可用的设备对象页面。
getDevicesByIds 按ID获取设备。请求的设备必须归租户所有或分配给客户。
getDevicesByEntityGroupId 返回属于指定实体组Id的设备对象页面

资产工具

工具 说明
getAssetById 根据提供的资产Id获取资产对象
getTenantAssets 返回租户拥有的资产页面。
getTenantAsset 按名称获取租户资产。资产名称是资产的唯一属性。
getCustomerAssets 返回分配给客户的资产对象页面。
getUserAssets 返回当前用户可用的资产对象页面。
getAssetsByIds 按ID获取资产。请求的资产必须由租户拥有或分配给客户。
getAssetsByEntityGroupId 返回属于指定实体组Id的资产对象页面

客户工具

工具 说明
getCustomerById 根据提供的Customer Id获取Customer对象
getCustomers 返回租户拥有的客户页面。
getTenantCustomer 使用客户头衔获取客户。
getUserCustomers 返回用户可用的客户页面。
getCustomersByEntityGroupId 返回属于指定实体组Id的Customer对象页面

用户工具

工具 说明
getUserById 根据提供的用户Id获取用户对象
getUsers 返回租户或客户拥有的用户页面。
getTenantAdmins 返回分配给指定租户的租户管理员用户页面。
getCustomerUsers 返回分配给指定客户的用户页面。
getAllCustomerUsers 返回权限为“CUSTOMER_USER”的当前租户的用户页面。
getUsersForAssign 返回可分配给提供的alarmId的用户数据对象的页面。
getUsersByEntityGroupId 返回属于指定实体组Id的用户对象页面

报警工具

工具 说明
getAlarmById 根据提供的报警id获取报警对象
getAlarmInfoById 根据提供的报警id获取报警信息对象
getAlarms 获取所选实体的警报页面。
getAllAlarms 获取属于当前用户所有者的警报页面。
getHighestAlarmSeverity 按发起者和可选状态过滤器获取最高报警严重性。
getAlarmTypes 根据租户拥有或分配给客户的警报,获取一组独特的警报类型。

实体组工具

工具 说明
getEntityGroupById 根据提供的实体组Id获取实体组对象
getEntityGroupsByType 根据提供的实体类型获取实体组信息对象列表。
getEntityGroupByOwnerAndNameAndType 根据提供的所有者、类型和名称获取Entity Group对象。
getEntityGroupsByOwnerAndType 根据提供的所有者Id和实体类型获取实体组信息对象列表。
getEntityGroupsForEntity 返回包含指定实体Id的组列表
getEntityGroupsByIds 根据提供的实体组ID列表获取实体组信息对象列表。

关系工具

工具 说明
getRelation 返回两个指定实体之间的关系对象(如果存在)。
findByFrom 按“from”方向返回指定实体的关系对象列表。
findByFromWithRelationType 按“from”方向和关系类型返回指定实体的关系对象列表。
findInfoByFrom 按“from”方向返回指定实体的关系信息对象列表。
findByTo 按“to”方向返回指定实体的关系对象列表。
findByToWithRelationType 按“to”方向和关系类型返回指定实体的关系对象列表。
findInfoByTo 按“to”方向返回指定实体的关系信息对象列表。

遥测工具

工具 说明
getAttributeKeys 获取指定实体的所有属性键。
getAttributeKeysByScope 获取指定实体和范围的所有属性键。
getAttributes 获取指定实体的属性。
getAttributesByScope 获取指定实体和范围的属性。
getTimeseriesKeys 获取指定实体的所有时间序列键。
getLatestTimeseries 获取指定实体和键的最新时间序列值。
getTimeseries 获取指定实体、键和时间范围的时间序列数据。
saveDeviceAttributes 保存设备属性。
saveEntityAttributesV1 保存实体属性(版本1)。
saveEntityAttributesV2 保存实体属性(版本2)。
saveEntityTelemetry 保存实体遥测数据。
saveEntityTelemetryWithTTL 使用生存时间(TTL)保存实体遥测数据。

管理工具

工具 说明
getAdminSettings 使用指定的字符串键获取管理设置对象。
getSecuritySettings 获取包含密码策略、锁定限制等的安全设置对象。
getSystemInfo 获取系统的主要信息。
getUsageInfo 检索当前租户的使用统计信息。