ThingsBoard MCP Server, LLM'ler ve AI ajanlarının ThingsBoard IoT platformunuzla etkileşim kurması için doğal dil arayüzü sunmaktadır.
Claude Desktop config.json'a ekle
{
"mcpServers": {
"thingsboard-thingsboard-mcp": {
"command": "node",
"args": [
"~/.mcp/thingsboard-mcp/index.js"
]
}
}
} Kaynak kodu al ve yerel olarak çalıştır
git clone https://github.com/thingsboard/thingsboard-mcp.git ~/.mcp/thingsboard-mcp
cd ~/.mcp/thingsboard-mcp AI ajanlarını ThingsBoard IoT platformunuza Model Context Protocol (MCP) aracılığıyla bağlayın. Cihazları sorgulayın, varlıkları yönetin, telemetri analiz edin ve operasyonları otomatikleştirin — hepsi doğal dil ile.
Claude Desktop, Cursor, VS Code Copilot, Claude Code ve tüm MCP uyumlu istemciler ile çalışır.
ThingsBoard örneğine (Cloud, EU Cloud, self-hosted CE/PE, veya Edge) ve API anahtarına (ThingsBoard 4.3+) veya kullanıcı adı/parola bilgisine ihtiyacınız vardır.
claude_desktop_config.json dosyanıza ekleyin:
{
"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_API_KEY"
}
}
}
}
~/.cursor/mcp.json (genel) veya .cursor/mcp.json (proje) dosyasına ekleyin:
{
"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_API_KEY"
}
}
}
}
VS Code settings.json veya .vscode/mcp.json dosyasına ekleyin:
{
"mcp": {
"servers": {
"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_API_KEY"
}
}
}
}
}
claude mcp add thingsboard \
-e THINGSBOARD_URL=https://thingsboard.cloud \
-e THINGSBOARD_API_KEY=YOUR_API_KEY \
-- docker run -i --rm -e THINGSBOARD_URL -e THINGSBOARD_API_KEY thingsboard/mcp
Sunucuyu başlatın:
docker run --rm -p 8000:8000 \
-e THINGSBOARD_URL=https://thingsboard.cloud \
-e THINGSBOARD_API_KEY=YOUR_API_KEY \
-e SPRING_AI_MCP_SERVER_STDIO=false \
-e SPRING_WEB_APPLICATION_TYPE=servlet \
thingsboard/mcp
Ardından MCP istemcinizi http://localhost:8000/sse adresine yönlendirin.
Eski kimlik doğrulama: ThingsBoard sürümünüz 4.3'ten eski ise,
THINGSBOARD_API_KEYyerineTHINGSBOARD_USERNAMEveTHINGSBOARD_PASSWORDkullanın.
Doğal dil ile soru sorun ve ThingsBoard örneğinizden yapılandırılmış sonuçlar alın:
| Cihazları ve varlıkları sorgulayın | Zaman serileri verilerini analiz edin |
![]() |
![]() |
| Telemetri oluşturun ve kaydedin | Anomali analizi yapın |
![]() |
![]() |
120+ araç, 10 araç grubunda:
docker pull thingsboard/mcp
Docker görüntüsü iki transport modunu destekler:
Kullanım örnekleri için Hızlı Başlangıç bölümüne bakın.
wget https://github.com/thingsboard/mcp-server/releases/download/v2.1.0/thingsboard-mcp-server-2.1.0.jar
Şu şekilde çalıştırın:
# STDIO modu
java -jar thingsboard-mcp-server-2.1.0.jar
# SSE modu
java -Dspring.ai.mcp.server.stdio=false -Dspring.main.web-application-type=servlet -jar thingsboard-mcp-server-2.1.0.jar
Docker yerine JAR dosyasını kullanıyorsanız, claude_desktop_config.json dosyasında şunu kullanın:
{
"mcpServers": {
"thingsboard": {
"command": "java",
"args": ["-jar", "/absolute/path/to/thingsboard-mcp-server-2.1.0.jar"],
"env": {
"THINGSBOARD_URL": "https://thingsboard.cloud",
"THINGSBOARD_API_KEY": "YOUR_API_KEY"
}
}
}
}
Java 17+ ve Maven 3.6+ gereklidir.
git clone https://github.com/thingsboard/mcp-server.git
cd mcp-server
mvn clean install -DskipTests
java -jar target/thingsboard-mcp-server-2.1.0.jar
| Değişken | Açıklama | Varsayılan |
|---|---|---|
THINGSBOARD_URL |
ThingsBoard örneğinizin temel URL'si | gerekli |
THINGSBOARD_API_KEY |
Kimlik doğrulama için API anahtarı (4.3+ için önerilir) | |
THINGSBOARD_USERNAME |
Kimlik doğrulama için kullanıcı adı (eski) | |
THINGSBOARD_PASSWORD |
Kimlik doğrulama için parola (eski) | |
THINGSBOARD_LOGIN_INTERVAL_SECONDS |
Oturum yenileme aralığı | 1800 |
HTTP_BIND_ADDRESS |
HTTP bağlama adresi (SSE modu) | 127.0.0.1 |
HTTP_BIND_PORT |
HTTP portu (SSE modu) | 8000 |
SPRING_AI_MCP_SERVER_STDIO |
STDIO transport'ını etkinleştir | true |
SPRING_WEB_APPLICATION_TYPE |
STDIO için none, SSE için servlet |
none |
SPRING_AI_MCP_SERVER_SSE_ENDPOINT |
SSE endpoint yolu | /sse |
SPRING_AI_MCP_SERVER_SSE_MESSAGE_ENDPOINT |
SSE mesaj endpoint yolu | /mcp/message |
| Değişken | Açıklama | Varsayılan |
|---|---|---|
THINGSBOARD_CONNECTION_MAX_RETRIES |
Maksimum bağlantı yeniden deneme girişimleri | 3 |
THINGSBOARD_CONNECTION_RETRY_DELAY_SECONDS |
Denemeler arasındaki gecikme | 5 |
THINGSBOARD_CONNECTION_CONNECT_TIMEOUT_SECONDS |
HTTP bağlantı zaman aşımı | 10 |
THINGSBOARD_CONNECTION_READ_TIMEOUT_SECONDS |
HTTP okuma zaman aşımı | 60 |
LOG_LEVEL_APP |
Uygulama günlük seviyesi | info |
LOG_LEVEL_TOOLS |
Araç yürütme günlük seviyesi | info |
LOG_LEVEL_TOOL_RESPONSE |
Araç yanıtı günlük seviyesi | info |
LOGGING_PATTERN_CONSOLE |
Logback konsol deseni | %d{yyyy-MM-dd HH:mm:ss} | %-5level | %logger{1} | %msg%n |
LOGGING_CONSOLE_TARGET |
Günlük çıktısı hedefi | System.err |
Sunucu 120+ araç ortaya koymaktadır ve bu, bazı istemcilerin context limitlerini aşabilir. İhtiyacınız olmayan grupları devre dışı bırakın:
| Değişken | Grup | Araçlar | Varsayılan |
|---|---|---|---|
THINGSBOARD_TOOLS_EDQ |
Varlık Verisi Sorgusu + Kılavuzlar | 40 | true |
THINGSBOARD_TOOLS_TELEMETRY |
Telemetri & Öznitelikler | 11 | true |
THINGSBOARD_TOOLS_DEVICE |
Cihazlar | 11 | true |
THINGSBOARD_TOOLS_ASSET |
Varlıklar | 8 | true |
THINGSBOARD_TOOLS_ALARM |
Alarmlar | 9 | true |
THINGSBOARD_TOOLS_OTA |
OTA Paketleri | 11 | true |
THINGSBOARD_TOOLS_RELATION |
İlişkiler | 8 | true |
THINGSBOARD_TOOLS_CUSTOMER |
Müşteriler | 7 | true |
THINGSBOARD_TOOLS_USER |
Kullanıcılar | 9 | true |
THINGSBOARD_TOOLS_GROUP |
Varlık Grupları (Sadece PE) | 10 | true |
Örnek — sınırlı context'i olan istemciler için ~50 araça indirgeyin:
{
"env": {
"THINGSBOARD_TOOLS_EDQ": "false",
"THINGSBOARD_TOOLS_OTA": "false",
"THINGSBOARD_TOOLS_GROUP": "false",
"THINGSBOARD_TOOLS_USER": "false"
}
}
| Araç | Açıklama |
|---|---|
createOrUpsertDevice |
Bir cihazı ad ile oluşturun veya güncelleyin. Çoğu cihaz görevi için birincil araç. |
saveDevice |
Cihaz nesnesini ham JSON'dan oluşturun veya güncelleyin. İleri seviye araç. |
deleteDevice |
Cihazı id ile silin. |
getDeviceById |
Sağlanan Cihaz Id'sine göre Cihaz nesnesini getirin. |
getDeviceCredentialsByDeviceId |
Cihaz kimlik bilgilerini cihaz id'sine göre alın. |
getTenantDevices |
Kiracıya ait cihazların sayfasını döndürür. |
getTenantDevice |
Kiracı cihazını ada göre alın. |
getCustomerDevices |
Müşteriye atanmış cihazların sayfasını döndürür. |
getUserDevices (PE) |
Geçerli kullanıcı için mevcut cihazların sayfasını döndürür. |
getDevicesByIds |
Cihazları id'lerine göre alın. |
getDevicesByEntityGroupId (PE) |
Belirtilen varlık grubundaki cihazların sayfasını döndürür. |
| Araç | Açıklama |
|---|---|
saveAsset |
Varlık nesnesini oluşturun veya güncelleyin. |
deleteAsset |
Varlığı id ile silin. |
getAssetById |
Varlık nesnesini id ile alın. |
getTenantAssets |
Kiracıya ait varlıkların sayfasını döndürür. |
getTenantAsset |
Kiracı varlığını ada göre alın. |
getCustomerAssets |
Müşteriye atanmış varlıkların sayfasını döndürür. |
getUserAssets (PE) |
Geçerli kullanıcı için mevcut varlıkların sayfasını döndürür. |
getAssetsByEntityGroupId (PE) |
Belirtilen varlık grubundaki varlıkların sayfasını döndürür. |
| Araç | Açıklama |
|---|---|
saveCustomer |
Müşteri nesnesini oluşturun veya güncelleyin. |
deleteCustomer |
Müşteriyi id ile silin. |
getCustomerById |
Müşteri nesnesini id ile alın. |
getCustomers |
Kiracıya ait müşterilerin sayfasını döndürür. |
getTenantCustomer |
Müşteriyi başlığa göre alın. |
getUserCustomers (PE) |
Kullanıcı için mevcut müşterilerin sayfasını döndürür. |
getCustomersByEntityGroupId (PE) |
Belirtilen varlık grubundaki müşterilerin sayfasını döndürür. |
| Araç | Açıklama |
|---|---|
saveUser |
Kullanıcı nesnesini oluşturun veya güncelleyin. |
deleteUser |
Kullanıcıyı id ile silin. |
getUserById |
Kullanıcı nesnesini id'ye göre getirin. |
getUsers |
Kiracıya veya müşteriye ait kullanıcıların sayfasını döndürür. |
getTenantAdmins |
Kiracı yönetici kullanıcılarının sayfasını döndürür. |
getCustomerUsers |
Müşteriye atanmış kullanıcıların sayfasını döndürür. |
getAllCustomerUsers (PE) |
Geçerli kiracı için tüm müşteri kullanıcılarının sayfasını döndürür. |
getUsersForAssign |
Alarmaya atanabilecek kullanıcıları döndürür. |
getUsersByEntityGroupId (PE) |
Belirtilen varlık grubundaki kullanıcıların sayfasını döndürür. |
| Araç | Açıklama |
|---|---|
saveAlarm |
Alarm nesnesini oluşturun veya güncelleyin. |
deleteAlarm |
Alarmı id ile silin. |
ackAlarm |
Alarmı onaylayın. |
clearAlarm |
Alarmı temizleyin. |
getAlarmInfoById |
Alarm bilgisini id ile alın (originator adını içerir). |
getAlarms |
Seçilen varlık için alarmların sayfasını alın. |
getAllAlarms |
Geçerli kullanıcı sahibi için alarmların sayfasını alın. |
getHighestAlarmSeverity |
Originator tarafından en yüksek alarm önem düzeyini alın. |
getAlarmTypes |
Benzersiz alarm türlerini alın. |
| Araç | Açıklama |
|---|---|
saveOtaPackageInfo |
OTA paketi bilgisini oluşturun veya güncelleyin. |
saveOtaPackageData |
OTA paketi ikilisini bir dosya yolundan yükleyin. |
downloadOtaPackage |
OTA paketi ikilisini yerel bir dosya yoluna indirin. |
getOtaPackageInfoById |
OTA paketi bilgisini id ile alın. |
getOtaPackageById |
OTA paketini id ile alın. |
getOtaPackages |
OTA paketlerini alın (sayfalanmış). |
getOtaPackagesByDeviceProfile |
OTA paketlerini cihaz profili ve türe göre alın. |
assignOtaPackageToDevice |
OTA paketini bir cihaza atayın veya temizleyin. |
assignOtaPackageToDeviceProfile |
OTA paketini bir cihaz profiline atayın veya temizleyin. |
countByDeviceProfileAndEmptyOtaPackage |
Atanmış OTA paketi olmayan cihazları sayın. |
deleteOtaPackage |
OTA paketini id ile silin. |
| Araç | Açıklama |
|---|---|
saveRelation |
İlişki oluşturun veya güncelleyin. |
deleteRelation |
İki varlık arasındaki ilişkiyi silin. |
deleteRelations |
Bir varlık için tüm ilişkileri silin. |
getRelation |
İki varlık arasındaki ilişkiyi alın. |
findInfoByFrom |
Bir varlıktan gelen ilişkileri bulun (varlık adlarını içerir). |
findByFromWithRelationType |
Bir varlıktan gelen ilişkileri tür ile filtreleyerek bulun. |
findInfoByTo |
Bir varlığa gelen ilişkileri bulun (varlık adlarını içerir). |
findByToWithRelationType |
Bir varlığa gelen ilişkileri tür ile filtreleyerek bulun. |
| Araç | Açıklama |
|---|---|
getAttributeKeys |
Bir varlık için tüm öznitelik anahtarlarını alın. |
getAttributeKeysByScope |
Öznitelik anahtarlarını kapsama göre alın. |
getAttributes |
Bir varlık için öznitelikleri alın. |
getAttributesByScope |
Öznitelikleri kapsama göre alın. |
getTimeseriesKeys |
Bir varlık için tüm zaman serisi anahtarlarını alın. |
getLatestTimeseries |
Son zaman serisi değerlerini alın. |
getTimeseries |
Bir zaman aralığı için zaman serisi verilerini alın. |
saveDeviceAttributes |
Cihaz özniteliklerini kaydedin. |
saveEntityAttributesV2 |
Varlık özniteliklerini kaydedin. |
saveEntityTelemetry |
Varlık telemetri verilerini kaydedin. |
saveEntityTelemetryWithTTL |
TTL ile varlık telemetri verilerini kaydedin. |
| Araç | Açıklama |
|---|---|
saveEntityGroup |
Varlık grubu oluşturun veya güncelleyin. |
deleteEntityGroup |
Varlık grubunu id ile silin. |
getEntityGroupById |
Varlık grubunu id ile alın. |
getEntityGroupsByType |
Varlık gruplarını varlık türüne göre alın. |
getEntityGroupByOwnerAndNameAndType |
Varlık grubunu sahibi, tür ve ada göre alın. |
getEntityGroupsByOwnerAndType |
Varlık gruplarını sahibi ve türe göre alın. |
getEntityGroupsForEntity |
Belirtilen varlığı içeren grupları alın. |
getEntityGroupsByIds |
Varlık gruplarını id'lerine göre alın. |
addEntitiesToEntityGroup |
Varlıkları bir gruba ekleyin. |
removeEntitiesFromEntityGroup |
Varlıkları bir gruptan çıkarın. |
Tüm varlık türlerinde karmaşık filtrelenmiş sorgular. Varlık alanları, öznitelikler ve anahtar filtreleri ile en son telemetri destekler.
| Araç | Açıklama |
|---|---|
findEntityDataBySingleEntityFilter |
Bir varlık için id ile veri bulun. |
findEntityDataByEntityGroupFilter (PE) |
Varlık grubu ile veri bulun. |
findEntityDataByEntityListFilter |
Varlık id'lerinin bir listesi için veri bulun. |
findEntityDataByEntityNameFilter |
Ad ön eki ile veri bulun. |
findEntityDataByEntityTypeFilter |
Varlık türü ile veri bulun. |
findEntityDataByEntityGroupListFilter (PE) |
Birden fazla grup için veri bulun. |
findEntityDataByEntityGroupNameFilter (PE) |
Grupları ad ön eki ile veri bulun. |
findEntityDataByEntitiesGroupNameFilter (PE) |
Adlandırılmış bir grupta varlıklar için veri bulun. |
findEntityDataByStateEntityOwnerFilter |
Varlık sahibi için veri bulun. |
findEntityDataByAssetTypeFilter |
Varlıkları tür ile bulun. |
findEntityDataByDeviceTypeFilter |
Cihazları tür ile bulun. |
findEntityDataByEdgeTypeFilter |
Edge'leri tür ile bulun. |
findEntityDataByEntityViewTypeFilter |
Varlık görünümlerini tür ile bulun. |
findEntityDataByRelationsQueryFilter |
İlişkili varlıkları bulun. |
findEntityDataByAssetSearchQueryFilter |
İlişkili varlıkları bulun. |
findEntityDataByDeviceSearchQueryFilter |
İlişkili cihazları bulun. |
findEntityDataByEntityViewSearchQueryFilter |
İlişkili varlık görünümlerini bulun. |
findEntityDataByApiUsageStateFilter |
API kullanım verilerini bulun. |
findEntityDataByEdgeQueryFilter |
İlişkili edge'leri bulun. |
Filtrelere uygun varlıkları sayın. Varlık Verisi Sorgusu ile aynı filtre türleri.
| Araç | Açıklama |
|---|---|
countBySingleEntityFilter |
Tek varlık id'ye göre sayın. |
countByEntityGroupFilter (PE) |
Varlık grubuna göre sayın. |
countByEntityListFilter |
Varlık id'leri listesine göre sayın. |
countByEntityNameFilter |
Ad ön ekine göre sayın. |
countByEntityTypeFilter |
Varlık türüne göre sayın. |
countByEntityGroupListFilter (PE) |
Birden fazla gruba göre sayın. |
countByEntityGroupNameFilter (PE) |
Grup adı ön ekine göre sayın. |
countByEntitiesGroupNameFilter (PE) |
Adlandırılmış bir gruptaki varlıkları sayın. |
countByAssetTypeFilter |
Varlıkları türe göre sayın. |
countByDeviceTypeFilter |
Cihazları türe göre sayın. |
countByEdgeTypeFilter |
Edge'leri türe göre sayın. |
countByEntityViewTypeFilter |
Varlık görünümlerini türe göre sayın. |
countByApiUsageStateFilter |
API kullanım satırlarını sayın. |
countByRelationsQueryFilter |
İlişkili varlıkları sayın. |
countByAssetSearchQueryFilter |
İlişkili varlıkları sayın. |
countByDeviceSearchQueryFilter |
İlişkili cihazları sayın. |
countByEntityViewSearchQueryFilter |
İlişkili varlık gör |
Tüm MCP protokol özelliklerini kullanan MCP sunucusu.
Python'da MCP sunucuları oluşturmak için üst düzey bir framework.
Ekran ve ses kaydını zaman damgasıyla indeksleyen, SQL/embedding storage kullanan, semantic search ve LLM tabanlı geçmiş analizi yapan local-first sistem. NextJS plugin ekosistemi aracılığıyla bağlam farkında AI ajanlar oluşturmayı ve event-triggered aksiyonları destekler.
YouTube video bilgilerini çıkartıp dönüştürün.
Obsidian ile REST API aracılığıyla etkileşim kurma
AI ajanlarını 600+ entegrasyon ile tek bir arayüzden bağlayın - OAuth, scaling ve monitoring dahil