客户端配置
要在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_USERNAME": "",
"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_USERNAME": "",
"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 | 检索当前租户的使用统计信息。 |