@coffeerunhobby/mcp-ha-connect 0.9.0 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (599) hide show
  1. package/Dockerfile +6 -8
  2. package/README.md +145 -24
  3. package/dist/config.d.ts +15 -3
  4. package/dist/config.js +53 -30
  5. package/dist/config.js.map +1 -1
  6. package/dist/env.d.ts +5 -0
  7. package/dist/env.js +13 -0
  8. package/dist/env.js.map +1 -0
  9. package/dist/haClient/index.d.ts +7 -2
  10. package/dist/haClient/index.js.map +1 -1
  11. package/dist/index.js +76 -32
  12. package/dist/index.js.map +1 -1
  13. package/dist/omadaClient/auth.d.ts +43 -0
  14. package/dist/omadaClient/auth.js +148 -0
  15. package/dist/omadaClient/auth.js.map +1 -0
  16. package/dist/omadaClient/client.d.ts +82 -0
  17. package/dist/omadaClient/client.js +173 -0
  18. package/dist/omadaClient/client.js.map +1 -0
  19. package/dist/omadaClient/device.d.ts +32 -0
  20. package/dist/omadaClient/device.js +80 -0
  21. package/dist/omadaClient/device.js.map +1 -0
  22. package/dist/omadaClient/http.d.ts +88 -0
  23. package/dist/omadaClient/http.js +176 -0
  24. package/dist/omadaClient/http.js.map +1 -0
  25. package/dist/omadaClient/index.d.ts +57 -0
  26. package/dist/omadaClient/index.js +136 -0
  27. package/dist/omadaClient/index.js.map +1 -0
  28. package/dist/omadaClient/network.d.ts +63 -0
  29. package/dist/omadaClient/network.js +114 -0
  30. package/dist/omadaClient/network.js.map +1 -0
  31. package/dist/omadaClient/request.d.ts +69 -0
  32. package/dist/omadaClient/request.js +266 -0
  33. package/dist/omadaClient/request.js.map +1 -0
  34. package/dist/omadaClient/security.d.ts +19 -0
  35. package/dist/omadaClient/security.js +44 -0
  36. package/dist/omadaClient/security.js.map +1 -0
  37. package/dist/omadaClient/site.d.ts +20 -0
  38. package/dist/omadaClient/site.js +33 -0
  39. package/dist/omadaClient/site.js.map +1 -0
  40. package/dist/permissions/index.d.ts +49 -0
  41. package/dist/permissions/index.js +77 -0
  42. package/dist/permissions/index.js.map +1 -0
  43. package/dist/plugins/homeassistant.d.ts +44 -0
  44. package/dist/plugins/homeassistant.js +101 -0
  45. package/dist/plugins/homeassistant.js.map +1 -0
  46. package/dist/plugins/index.d.ts +22 -0
  47. package/dist/plugins/index.js +91 -0
  48. package/dist/plugins/index.js.map +1 -0
  49. package/dist/plugins/localai.d.ts +48 -0
  50. package/dist/plugins/localai.js +111 -0
  51. package/dist/plugins/localai.js.map +1 -0
  52. package/dist/plugins/omada.d.ts +45 -0
  53. package/dist/plugins/omada.js +367 -0
  54. package/dist/plugins/omada.js.map +1 -0
  55. package/dist/plugins/registry.d.ts +93 -0
  56. package/dist/plugins/registry.js +196 -0
  57. package/dist/plugins/registry.js.map +1 -0
  58. package/dist/plugins/types.d.ts +101 -0
  59. package/dist/plugins/types.js +6 -0
  60. package/dist/plugins/types.js.map +1 -0
  61. package/dist/security/audit.d.ts +70 -0
  62. package/dist/security/audit.js +66 -0
  63. package/dist/security/audit.js.map +1 -0
  64. package/dist/security/guardrails.d.ts +66 -0
  65. package/dist/security/guardrails.js +263 -0
  66. package/dist/security/guardrails.js.map +1 -0
  67. package/dist/security/guardrails.test.d.ts +4 -0
  68. package/dist/security/guardrails.test.js +119 -0
  69. package/dist/security/guardrails.test.js.map +1 -0
  70. package/dist/security/index.d.ts +8 -0
  71. package/dist/security/index.js +17 -0
  72. package/dist/security/index.js.map +1 -0
  73. package/dist/security/ip-blocklist.d.ts +66 -0
  74. package/dist/security/ip-blocklist.js +283 -0
  75. package/dist/security/ip-blocklist.js.map +1 -0
  76. package/dist/security/ip-blocklist.test.d.ts +4 -0
  77. package/dist/security/ip-blocklist.test.js +173 -0
  78. package/dist/security/ip-blocklist.test.js.map +1 -0
  79. package/dist/security/policy.d.ts +287 -0
  80. package/dist/security/policy.js +316 -0
  81. package/dist/security/policy.js.map +1 -0
  82. package/dist/security/policy.test.d.ts +4 -0
  83. package/dist/security/policy.test.js +360 -0
  84. package/dist/security/policy.test.js.map +1 -0
  85. package/dist/server/auth.d.ts +12 -3
  86. package/dist/server/auth.js +46 -29
  87. package/dist/server/auth.js.map +1 -1
  88. package/dist/server/authConfig.d.ts +100 -0
  89. package/dist/server/authConfig.js +206 -0
  90. package/dist/server/authConfig.js.map +1 -0
  91. package/dist/server/common.d.ts +7 -1
  92. package/dist/server/common.js +13 -5
  93. package/dist/server/common.js.map +1 -1
  94. package/dist/server/http.d.ts +8 -1
  95. package/dist/server/http.js +14 -10
  96. package/dist/server/http.js.map +1 -1
  97. package/dist/server/jwt.d.ts +35 -0
  98. package/dist/server/jwt.js +123 -0
  99. package/dist/server/jwt.js.map +1 -0
  100. package/dist/server/stdio.d.ts +7 -1
  101. package/dist/server/stdio.js +2 -2
  102. package/dist/server/stdio.js.map +1 -1
  103. package/dist/server/stream.d.ts +9 -2
  104. package/dist/server/stream.js +6 -4
  105. package/dist/server/stream.js.map +1 -1
  106. package/dist/tools/ai/analyzeSensors.d.ts +6 -0
  107. package/dist/tools/ai/analyzeSensors.js +23 -0
  108. package/dist/tools/ai/analyzeSensors.js.map +1 -0
  109. package/dist/tools/ai/index.d.ts +6 -0
  110. package/dist/tools/ai/index.js +14 -0
  111. package/dist/tools/ai/index.js.map +1 -0
  112. package/dist/tools/allMetadata.d.ts +47 -0
  113. package/dist/tools/allMetadata.js +373 -0
  114. package/dist/tools/allMetadata.js.map +1 -0
  115. package/dist/tools/analyzeSensors.js +2 -2
  116. package/dist/tools/analyzeSensors.js.map +1 -1
  117. package/dist/tools/automationControls.js +5 -5
  118. package/dist/tools/automationControls.js.map +1 -1
  119. package/dist/tools/calendar.js +3 -3
  120. package/dist/tools/calendar.js.map +1 -1
  121. package/dist/tools/callService.js +2 -2
  122. package/dist/tools/callService.js.map +1 -1
  123. package/dist/tools/common.d.ts +72 -6
  124. package/dist/tools/common.js +50 -2
  125. package/dist/tools/common.js.map +1 -1
  126. package/dist/tools/controlClimate.js +2 -2
  127. package/dist/tools/controlClimate.js.map +1 -1
  128. package/dist/tools/controlCover.js +2 -2
  129. package/dist/tools/controlCover.js.map +1 -1
  130. package/dist/tools/controlFan.js +2 -2
  131. package/dist/tools/controlFan.js.map +1 -1
  132. package/dist/tools/controlLight.js +2 -2
  133. package/dist/tools/controlLight.js.map +1 -1
  134. package/dist/tools/controlMediaPlayer.js +2 -2
  135. package/dist/tools/controlMediaPlayer.js.map +1 -1
  136. package/dist/tools/createAutomation.js +2 -2
  137. package/dist/tools/createAutomation.js.map +1 -1
  138. package/dist/tools/deleteAutomation.js +2 -2
  139. package/dist/tools/deleteAutomation.js.map +1 -1
  140. package/dist/tools/entityAction.js +2 -2
  141. package/dist/tools/entityAction.js.map +1 -1
  142. package/dist/tools/getAllSensors.js +2 -2
  143. package/dist/tools/getAllSensors.js.map +1 -1
  144. package/dist/tools/getAutomationTrace.js +2 -2
  145. package/dist/tools/getAutomationTrace.js.map +1 -1
  146. package/dist/tools/getDomainSummary.js +2 -2
  147. package/dist/tools/getDomainSummary.js.map +1 -1
  148. package/dist/tools/getEntitiesByDomain.js +2 -2
  149. package/dist/tools/getEntitiesByDomain.js.map +1 -1
  150. package/dist/tools/getHistory.js +2 -2
  151. package/dist/tools/getHistory.js.map +1 -1
  152. package/dist/tools/getState.js +2 -2
  153. package/dist/tools/getState.js.map +1 -1
  154. package/dist/tools/getStates.js +2 -2
  155. package/dist/tools/getStates.js.map +1 -1
  156. package/dist/tools/getVersion.js +2 -2
  157. package/dist/tools/getVersion.js.map +1 -1
  158. package/dist/tools/homeassistant/automationControls.d.ts +9 -0
  159. package/dist/tools/homeassistant/automationControls.js +41 -0
  160. package/dist/tools/homeassistant/automationControls.js.map +1 -0
  161. package/dist/tools/homeassistant/calendar.d.ts +7 -0
  162. package/dist/tools/homeassistant/calendar.js +82 -0
  163. package/dist/tools/homeassistant/calendar.js.map +1 -0
  164. package/dist/tools/homeassistant/callService.d.ts +6 -0
  165. package/dist/tools/homeassistant/callService.js +17 -0
  166. package/dist/tools/homeassistant/callService.js.map +1 -0
  167. package/dist/tools/homeassistant/controlClimate.d.ts +6 -0
  168. package/dist/tools/homeassistant/controlClimate.js +50 -0
  169. package/dist/tools/homeassistant/controlClimate.js.map +1 -0
  170. package/dist/tools/homeassistant/controlCover.d.ts +6 -0
  171. package/dist/tools/homeassistant/controlCover.js +33 -0
  172. package/dist/tools/homeassistant/controlCover.js.map +1 -0
  173. package/dist/tools/homeassistant/controlFan.d.ts +6 -0
  174. package/dist/tools/homeassistant/controlFan.js +34 -0
  175. package/dist/tools/homeassistant/controlFan.js.map +1 -0
  176. package/dist/tools/homeassistant/controlLight.d.ts +6 -0
  177. package/dist/tools/homeassistant/controlLight.js +28 -0
  178. package/dist/tools/homeassistant/controlLight.js.map +1 -0
  179. package/dist/tools/homeassistant/controlMediaPlayer.d.ts +6 -0
  180. package/dist/tools/homeassistant/controlMediaPlayer.js +35 -0
  181. package/dist/tools/homeassistant/controlMediaPlayer.js.map +1 -0
  182. package/dist/tools/homeassistant/createAutomation.d.ts +6 -0
  183. package/dist/tools/homeassistant/createAutomation.js +24 -0
  184. package/dist/tools/homeassistant/createAutomation.js.map +1 -0
  185. package/dist/tools/homeassistant/deleteAutomation.d.ts +6 -0
  186. package/dist/tools/homeassistant/deleteAutomation.js +14 -0
  187. package/dist/tools/homeassistant/deleteAutomation.js.map +1 -0
  188. package/dist/tools/homeassistant/entityAction.d.ts +6 -0
  189. package/dist/tools/homeassistant/entityAction.js +22 -0
  190. package/dist/tools/homeassistant/entityAction.js.map +1 -0
  191. package/dist/tools/homeassistant/getAllSensors.d.ts +6 -0
  192. package/dist/tools/homeassistant/getAllSensors.js +14 -0
  193. package/dist/tools/homeassistant/getAllSensors.js.map +1 -0
  194. package/dist/tools/homeassistant/getAutomationTrace.d.ts +6 -0
  195. package/dist/tools/homeassistant/getAutomationTrace.js +14 -0
  196. package/dist/tools/homeassistant/getAutomationTrace.js.map +1 -0
  197. package/dist/tools/homeassistant/getDomainSummary.d.ts +6 -0
  198. package/dist/tools/homeassistant/getDomainSummary.js +14 -0
  199. package/dist/tools/homeassistant/getDomainSummary.js.map +1 -0
  200. package/dist/tools/homeassistant/getEntitiesByDomain.d.ts +6 -0
  201. package/dist/tools/homeassistant/getEntitiesByDomain.js +14 -0
  202. package/dist/tools/homeassistant/getEntitiesByDomain.js.map +1 -0
  203. package/dist/tools/homeassistant/getHistory.d.ts +6 -0
  204. package/dist/tools/homeassistant/getHistory.js +14 -0
  205. package/dist/tools/homeassistant/getHistory.js.map +1 -0
  206. package/dist/tools/homeassistant/getState.d.ts +6 -0
  207. package/dist/tools/homeassistant/getState.js +17 -0
  208. package/dist/tools/homeassistant/getState.js.map +1 -0
  209. package/dist/tools/homeassistant/getStates.d.ts +6 -0
  210. package/dist/tools/homeassistant/getStates.js +14 -0
  211. package/dist/tools/homeassistant/getStates.js.map +1 -0
  212. package/dist/tools/homeassistant/getVersion.d.ts +6 -0
  213. package/dist/tools/homeassistant/getVersion.js +14 -0
  214. package/dist/tools/homeassistant/getVersion.js.map +1 -0
  215. package/dist/tools/homeassistant/index.d.ts +6 -0
  216. package/dist/tools/homeassistant/index.js +94 -0
  217. package/dist/tools/homeassistant/index.js.map +1 -0
  218. package/dist/tools/homeassistant/listAutomations.d.ts +6 -0
  219. package/dist/tools/homeassistant/listAutomations.js +17 -0
  220. package/dist/tools/homeassistant/listAutomations.js.map +1 -0
  221. package/dist/tools/homeassistant/listEntities.d.ts +6 -0
  222. package/dist/tools/homeassistant/listEntities.js +14 -0
  223. package/dist/tools/homeassistant/listEntities.js.map +1 -0
  224. package/dist/tools/homeassistant/listPersons.d.ts +6 -0
  225. package/dist/tools/homeassistant/listPersons.js +36 -0
  226. package/dist/tools/homeassistant/listPersons.js.map +1 -0
  227. package/dist/tools/homeassistant/sceneAndScript.d.ts +7 -0
  228. package/dist/tools/homeassistant/sceneAndScript.js +32 -0
  229. package/dist/tools/homeassistant/sceneAndScript.js.map +1 -0
  230. package/dist/tools/homeassistant/searchEntities.d.ts +6 -0
  231. package/dist/tools/homeassistant/searchEntities.js +16 -0
  232. package/dist/tools/homeassistant/searchEntities.js.map +1 -0
  233. package/dist/tools/homeassistant/sendNotification.d.ts +8 -0
  234. package/dist/tools/homeassistant/sendNotification.js +160 -0
  235. package/dist/tools/homeassistant/sendNotification.js.map +1 -0
  236. package/dist/tools/homeassistant/systemTools.d.ts +8 -0
  237. package/dist/tools/homeassistant/systemTools.js +32 -0
  238. package/dist/tools/homeassistant/systemTools.js.map +1 -0
  239. package/dist/tools/homeassistant/triggerAutomation.d.ts +6 -0
  240. package/dist/tools/homeassistant/triggerAutomation.js +14 -0
  241. package/dist/tools/homeassistant/triggerAutomation.js.map +1 -0
  242. package/dist/tools/index.d.ts +16 -3
  243. package/dist/tools/index.js +35 -93
  244. package/dist/tools/index.js.map +1 -1
  245. package/dist/tools/lazyLoader.d.ts +50 -0
  246. package/dist/tools/lazyLoader.js +140 -0
  247. package/dist/tools/lazyLoader.js.map +1 -0
  248. package/dist/tools/listAutomations.js +2 -2
  249. package/dist/tools/listAutomations.js.map +1 -1
  250. package/dist/tools/listEntities.js +2 -2
  251. package/dist/tools/listEntities.js.map +1 -1
  252. package/dist/tools/listPersons.js +2 -2
  253. package/dist/tools/listPersons.js.map +1 -1
  254. package/dist/tools/localai/analyzeSensors.d.ts +6 -0
  255. package/dist/tools/localai/analyzeSensors.js +23 -0
  256. package/dist/tools/localai/analyzeSensors.js.map +1 -0
  257. package/dist/tools/localai/index.d.ts +5 -0
  258. package/dist/tools/localai/index.js +6 -0
  259. package/dist/tools/localai/index.js.map +1 -0
  260. package/dist/tools/metaTools.d.ts +74 -0
  261. package/dist/tools/metaTools.js +347 -0
  262. package/dist/tools/metaTools.js.map +1 -0
  263. package/dist/tools/omada/disableClientRateLimit.d.ts +3 -0
  264. package/dist/tools/omada/disableClientRateLimit.js +13 -0
  265. package/dist/tools/omada/disableClientRateLimit.js.map +1 -0
  266. package/dist/tools/omada/getClient.d.ts +3 -0
  267. package/dist/tools/omada/getClient.js +8 -0
  268. package/dist/tools/omada/getClient.js.map +1 -0
  269. package/dist/tools/omada/getDevice.d.ts +3 -0
  270. package/dist/tools/omada/getDevice.js +8 -0
  271. package/dist/tools/omada/getDevice.js.map +1 -0
  272. package/dist/tools/omada/getFirewallSetting.d.ts +3 -0
  273. package/dist/tools/omada/getFirewallSetting.js +8 -0
  274. package/dist/tools/omada/getFirewallSetting.js.map +1 -0
  275. package/dist/tools/omada/getInternetInfo.d.ts +3 -0
  276. package/dist/tools/omada/getInternetInfo.js +8 -0
  277. package/dist/tools/omada/getInternetInfo.js.map +1 -0
  278. package/dist/tools/omada/getLanNetworkList.d.ts +3 -0
  279. package/dist/tools/omada/getLanNetworkList.js +8 -0
  280. package/dist/tools/omada/getLanNetworkList.js.map +1 -0
  281. package/dist/tools/omada/getLanProfileList.d.ts +3 -0
  282. package/dist/tools/omada/getLanProfileList.js +8 -0
  283. package/dist/tools/omada/getLanProfileList.js.map +1 -0
  284. package/dist/tools/omada/getPortForwardingStatus.d.ts +3 -0
  285. package/dist/tools/omada/getPortForwardingStatus.js +15 -0
  286. package/dist/tools/omada/getPortForwardingStatus.js.map +1 -0
  287. package/dist/tools/omada/getRateLimitProfiles.d.ts +3 -0
  288. package/dist/tools/omada/getRateLimitProfiles.js +8 -0
  289. package/dist/tools/omada/getRateLimitProfiles.js.map +1 -0
  290. package/dist/tools/omada/getSsidDetail.d.ts +3 -0
  291. package/dist/tools/omada/getSsidDetail.js +14 -0
  292. package/dist/tools/omada/getSsidDetail.js.map +1 -0
  293. package/dist/tools/omada/getSsidList.d.ts +3 -0
  294. package/dist/tools/omada/getSsidList.js +13 -0
  295. package/dist/tools/omada/getSsidList.js.map +1 -0
  296. package/dist/tools/omada/getSwitchStackDetail.d.ts +3 -0
  297. package/dist/tools/omada/getSwitchStackDetail.js +8 -0
  298. package/dist/tools/omada/getSwitchStackDetail.js.map +1 -0
  299. package/dist/tools/omada/getThreatList.d.ts +3 -0
  300. package/dist/tools/omada/getThreatList.js +33 -0
  301. package/dist/tools/omada/getThreatList.js.map +1 -0
  302. package/dist/tools/omada/getWlanGroupList.d.ts +3 -0
  303. package/dist/tools/omada/getWlanGroupList.js +8 -0
  304. package/dist/tools/omada/getWlanGroupList.js.map +1 -0
  305. package/dist/tools/omada/index.d.ts +6 -0
  306. package/dist/tools/omada/index.js +71 -0
  307. package/dist/tools/omada/index.js.map +1 -0
  308. package/dist/tools/omada/listClients.d.ts +3 -0
  309. package/dist/tools/omada/listClients.js +8 -0
  310. package/dist/tools/omada/listClients.js.map +1 -0
  311. package/dist/tools/omada/listClientsActivity.d.ts +3 -0
  312. package/dist/tools/omada/listClientsActivity.js +14 -0
  313. package/dist/tools/omada/listClientsActivity.js.map +1 -0
  314. package/dist/tools/omada/listClientsPastConnections.d.ts +3 -0
  315. package/dist/tools/omada/listClientsPastConnections.js +31 -0
  316. package/dist/tools/omada/listClientsPastConnections.js.map +1 -0
  317. package/dist/tools/omada/listDevices.d.ts +3 -0
  318. package/dist/tools/omada/listDevices.js +8 -0
  319. package/dist/tools/omada/listDevices.js.map +1 -0
  320. package/dist/tools/omada/listDevicesStats.d.ts +3 -0
  321. package/dist/tools/omada/listDevicesStats.js +28 -0
  322. package/dist/tools/omada/listDevicesStats.js.map +1 -0
  323. package/dist/tools/omada/listMostActiveClients.d.ts +3 -0
  324. package/dist/tools/omada/listMostActiveClients.js +8 -0
  325. package/dist/tools/omada/listMostActiveClients.js.map +1 -0
  326. package/dist/tools/omada/listSites.d.ts +3 -0
  327. package/dist/tools/omada/listSites.js +10 -0
  328. package/dist/tools/omada/listSites.js.map +1 -0
  329. package/dist/tools/omada/metadata.d.ts +18 -0
  330. package/dist/tools/omada/metadata.js +336 -0
  331. package/dist/tools/omada/metadata.js.map +1 -0
  332. package/dist/tools/omada/searchDevices.d.ts +3 -0
  333. package/dist/tools/omada/searchDevices.js +12 -0
  334. package/dist/tools/omada/searchDevices.js.map +1 -0
  335. package/dist/tools/omada/setClientRateLimit.d.ts +3 -0
  336. package/dist/tools/omada/setClientRateLimit.js +15 -0
  337. package/dist/tools/omada/setClientRateLimit.js.map +1 -0
  338. package/dist/tools/omada/setClientRateLimitProfile.d.ts +3 -0
  339. package/dist/tools/omada/setClientRateLimitProfile.js +14 -0
  340. package/dist/tools/omada/setClientRateLimitProfile.js.map +1 -0
  341. package/dist/tools/registry.d.ts +105 -0
  342. package/dist/tools/registry.js +79 -0
  343. package/dist/tools/registry.js.map +1 -0
  344. package/dist/tools/sceneAndScript.js +3 -3
  345. package/dist/tools/sceneAndScript.js.map +1 -1
  346. package/dist/tools/searchEntities.js +2 -2
  347. package/dist/tools/searchEntities.js.map +1 -1
  348. package/dist/tools/sendNotification.js +3 -3
  349. package/dist/tools/sendNotification.js.map +1 -1
  350. package/dist/tools/systemTools.js +4 -4
  351. package/dist/tools/systemTools.js.map +1 -1
  352. package/dist/tools/triggerAutomation.js +2 -2
  353. package/dist/tools/triggerAutomation.js.map +1 -1
  354. package/dist/tools/types.d.ts +9 -0
  355. package/dist/tools/types.js +5 -0
  356. package/dist/tools/types.js.map +1 -0
  357. package/dist/tools/utils/pagination-schema.d.ts +23 -0
  358. package/dist/tools/utils/pagination-schema.js +19 -0
  359. package/dist/tools/utils/pagination-schema.js.map +1 -0
  360. package/dist/types/ai/index.d.ts +4 -0
  361. package/dist/types/ai/index.js +5 -0
  362. package/dist/types/ai/index.js.map +1 -0
  363. package/dist/types/ai/types.d.ts +60 -0
  364. package/dist/types/ai/types.js +6 -0
  365. package/dist/types/ai/types.js.map +1 -0
  366. package/dist/types/homeassistant/automations.d.ts +38 -0
  367. package/dist/types/homeassistant/automations.js +5 -0
  368. package/dist/types/homeassistant/automations.js.map +1 -0
  369. package/dist/types/homeassistant/calendars.d.ts +24 -0
  370. package/dist/types/homeassistant/calendars.js +5 -0
  371. package/dist/types/homeassistant/calendars.js.map +1 -0
  372. package/dist/types/homeassistant/config.d.ts +10 -0
  373. package/dist/types/homeassistant/config.js +6 -0
  374. package/dist/types/homeassistant/config.js.map +1 -0
  375. package/dist/types/homeassistant/entities.d.ts +13 -0
  376. package/dist/types/homeassistant/entities.js +5 -0
  377. package/dist/types/homeassistant/entities.js.map +1 -0
  378. package/dist/types/homeassistant/errors.d.ts +15 -0
  379. package/dist/types/homeassistant/errors.js +32 -0
  380. package/dist/types/homeassistant/errors.js.map +1 -0
  381. package/dist/types/homeassistant/haConfig.d.ts +7 -0
  382. package/dist/types/homeassistant/haConfig.js +2 -0
  383. package/dist/types/homeassistant/haConfig.js.map +1 -0
  384. package/dist/types/homeassistant/history.d.ts +12 -0
  385. package/dist/types/homeassistant/history.js +5 -0
  386. package/dist/types/homeassistant/history.js.map +1 -0
  387. package/dist/types/homeassistant/index.d.ts +14 -0
  388. package/dist/types/homeassistant/index.js +6 -0
  389. package/dist/types/homeassistant/index.js.map +1 -0
  390. package/dist/types/homeassistant/request.d.ts +6 -0
  391. package/dist/types/homeassistant/request.js +2 -0
  392. package/dist/types/homeassistant/request.js.map +1 -0
  393. package/dist/types/homeassistant/serviceCall.d.ts +17 -0
  394. package/dist/types/homeassistant/serviceCall.js +2 -0
  395. package/dist/types/homeassistant/serviceCall.js.map +1 -0
  396. package/dist/types/homeassistant/states.d.ts +19 -0
  397. package/dist/types/homeassistant/states.js +5 -0
  398. package/dist/types/homeassistant/states.js.map +1 -0
  399. package/dist/types/homeassistant/updates.d.ts +24 -0
  400. package/dist/types/homeassistant/updates.js +5 -0
  401. package/dist/types/homeassistant/updates.js.map +1 -0
  402. package/dist/types/index.d.ts +6 -11
  403. package/dist/types/index.js +9 -2
  404. package/dist/types/index.js.map +1 -1
  405. package/dist/types/localai/index.d.ts +5 -0
  406. package/dist/types/localai/index.js +6 -0
  407. package/dist/types/localai/index.js.map +1 -0
  408. package/dist/types/localai/types.d.ts +60 -0
  409. package/dist/types/localai/types.js +6 -0
  410. package/dist/types/localai/types.js.map +1 -0
  411. package/dist/types/omada/activeClientInfo.d.ts +17 -0
  412. package/dist/types/omada/activeClientInfo.js +2 -0
  413. package/dist/types/omada/activeClientInfo.js.map +1 -0
  414. package/dist/types/omada/clientActivity.d.ts +31 -0
  415. package/dist/types/omada/clientActivity.js +2 -0
  416. package/dist/types/omada/clientActivity.js.map +1 -0
  417. package/dist/types/omada/clientPastConnection.d.ts +59 -0
  418. package/dist/types/omada/clientPastConnection.js +2 -0
  419. package/dist/types/omada/clientPastConnection.js.map +1 -0
  420. package/dist/types/omada/index.d.ts +13 -0
  421. package/dist/types/omada/index.js +2 -0
  422. package/dist/types/omada/index.js.map +1 -0
  423. package/dist/types/omada/omadaApiResponse.d.ts +5 -0
  424. package/dist/types/omada/omadaApiResponse.js +2 -0
  425. package/dist/types/omada/omadaApiResponse.js.map +1 -0
  426. package/dist/types/omada/omadaClientInfo.d.ts +11 -0
  427. package/dist/types/omada/omadaClientInfo.js +2 -0
  428. package/dist/types/omada/omadaClientInfo.js.map +1 -0
  429. package/dist/types/omada/omadaDeviceInfo.d.ts +11 -0
  430. package/dist/types/omada/omadaDeviceInfo.js +2 -0
  431. package/dist/types/omada/omadaDeviceInfo.js.map +1 -0
  432. package/dist/types/omada/omadaDeviceStats.d.ts +29 -0
  433. package/dist/types/omada/omadaDeviceStats.js +2 -0
  434. package/dist/types/omada/omadaDeviceStats.js.map +1 -0
  435. package/dist/types/omada/omadaSiteSummary.d.ts +5 -0
  436. package/dist/types/omada/omadaSiteSummary.js +2 -0
  437. package/dist/types/omada/omadaSiteSummary.js.map +1 -0
  438. package/dist/types/omada/oswStackDetail.d.ts +11 -0
  439. package/dist/types/omada/oswStackDetail.js +2 -0
  440. package/dist/types/omada/oswStackDetail.js.map +1 -0
  441. package/dist/types/omada/paginatedResult.d.ts +6 -0
  442. package/dist/types/omada/paginatedResult.js +2 -0
  443. package/dist/types/omada/paginatedResult.js.map +1 -0
  444. package/dist/types/omada/rateLimitProfile.d.ts +56 -0
  445. package/dist/types/omada/rateLimitProfile.js +2 -0
  446. package/dist/types/omada/rateLimitProfile.js.map +1 -0
  447. package/dist/types/omada/threatInfo.d.ts +37 -0
  448. package/dist/types/omada/threatInfo.js +2 -0
  449. package/dist/types/omada/threatInfo.js.map +1 -0
  450. package/dist/types/omada/tokenResult.d.ts +6 -0
  451. package/dist/types/omada/tokenResult.js +2 -0
  452. package/dist/types/omada/tokenResult.js.map +1 -0
  453. package/dist/types/permissions.d.ts +92 -0
  454. package/dist/types/permissions.js +136 -0
  455. package/dist/types/permissions.js.map +1 -0
  456. package/dist/utils/jwt.d.ts +18 -0
  457. package/dist/utils/jwt.js +47 -0
  458. package/dist/utils/jwt.js.map +1 -0
  459. package/dist/utils/logger.d.ts +4 -5
  460. package/dist/utils/logger.js +70 -59
  461. package/dist/utils/logger.js.map +1 -1
  462. package/dist/version.d.ts +1 -1
  463. package/dist/version.js +1 -1
  464. package/dist/wrapper.js +1 -1
  465. package/dist/wrapper.js.map +1 -1
  466. package/docs/CHANGELOG.md +37 -6
  467. package/docs/COVERAGE.md +219 -0
  468. package/docs/{Quick_Start.md → QUICK_START.md} +32 -7
  469. package/package.json +6 -6
  470. package/scripts/generate-jwt.ts +122 -0
  471. package/src/config.ts +78 -38
  472. package/src/haClient/index.ts +8 -2
  473. package/src/index.ts +74 -33
  474. package/src/omadaClient/auth.ts +176 -0
  475. package/src/omadaClient/client.ts +225 -0
  476. package/src/omadaClient/device.ts +91 -0
  477. package/src/omadaClient/index.ts +206 -0
  478. package/src/omadaClient/network.ts +129 -0
  479. package/src/omadaClient/request.ts +332 -0
  480. package/src/omadaClient/security.ts +51 -0
  481. package/src/omadaClient/site.ts +37 -0
  482. package/src/permissions/index.ts +101 -0
  483. package/src/server/auth.ts +59 -31
  484. package/src/server/common.ts +20 -5
  485. package/src/server/http.ts +23 -8
  486. package/src/server/stdio.ts +9 -2
  487. package/src/server/stream.ts +15 -7
  488. package/src/tools/{analyzeSensors.ts → ai/analyzeSensors.ts} +3 -3
  489. package/src/tools/ai/index.ts +20 -0
  490. package/src/tools/common.ts +61 -2
  491. package/src/tools/{automationControls.ts → homeassistant/automationControls.ts} +6 -6
  492. package/src/tools/{calendar.ts → homeassistant/calendar.ts} +4 -4
  493. package/src/tools/{callService.ts → homeassistant/callService.ts} +4 -4
  494. package/src/tools/{controlClimate.ts → homeassistant/controlClimate.ts} +3 -3
  495. package/src/tools/{controlCover.ts → homeassistant/controlCover.ts} +3 -3
  496. package/src/tools/{controlFan.ts → homeassistant/controlFan.ts} +3 -3
  497. package/src/tools/{controlLight.ts → homeassistant/controlLight.ts} +3 -3
  498. package/src/tools/{controlMediaPlayer.ts → homeassistant/controlMediaPlayer.ts} +3 -3
  499. package/src/tools/{createAutomation.ts → homeassistant/createAutomation.ts} +4 -4
  500. package/src/tools/{deleteAutomation.ts → homeassistant/deleteAutomation.ts} +3 -3
  501. package/src/tools/{entityAction.ts → homeassistant/entityAction.ts} +3 -3
  502. package/src/tools/{getAllSensors.ts → homeassistant/getAllSensors.ts} +3 -3
  503. package/src/tools/{getAutomationTrace.ts → homeassistant/getAutomationTrace.ts} +3 -3
  504. package/src/tools/{getDomainSummary.ts → homeassistant/getDomainSummary.ts} +3 -3
  505. package/src/tools/{getEntitiesByDomain.ts → homeassistant/getEntitiesByDomain.ts} +3 -3
  506. package/src/tools/{getHistory.ts → homeassistant/getHistory.ts} +3 -3
  507. package/src/tools/{getState.ts → homeassistant/getState.ts} +3 -3
  508. package/src/tools/{getStates.ts → homeassistant/getStates.ts} +3 -3
  509. package/src/tools/{getVersion.ts → homeassistant/getVersion.ts} +3 -3
  510. package/src/tools/homeassistant/index.ts +121 -0
  511. package/src/tools/{listAutomations.ts → homeassistant/listAutomations.ts} +3 -3
  512. package/src/tools/{listEntities.ts → homeassistant/listEntities.ts} +3 -3
  513. package/src/tools/{listPersons.ts → homeassistant/listPersons.ts} +3 -3
  514. package/src/tools/{sceneAndScript.ts → homeassistant/sceneAndScript.ts} +4 -4
  515. package/src/tools/{searchEntities.ts → homeassistant/searchEntities.ts} +3 -3
  516. package/src/tools/{sendNotification.ts → homeassistant/sendNotification.ts} +4 -4
  517. package/src/tools/{systemTools.ts → homeassistant/systemTools.ts} +5 -5
  518. package/src/tools/{triggerAutomation.ts → homeassistant/triggerAutomation.ts} +3 -3
  519. package/src/tools/index.ts +47 -116
  520. package/src/tools/omada/disableClientRateLimit.ts +23 -0
  521. package/src/tools/omada/getClient.ts +15 -0
  522. package/src/tools/omada/getDevice.ts +15 -0
  523. package/src/tools/omada/getFirewallSetting.ts +15 -0
  524. package/src/tools/omada/getInternetInfo.ts +15 -0
  525. package/src/tools/omada/getLanNetworkList.ts +15 -0
  526. package/src/tools/omada/getLanProfileList.ts +15 -0
  527. package/src/tools/omada/getPortForwardingStatus.ts +26 -0
  528. package/src/tools/omada/getRateLimitProfiles.ts +15 -0
  529. package/src/tools/omada/getSsidDetail.ts +22 -0
  530. package/src/tools/omada/getSsidList.ts +21 -0
  531. package/src/tools/omada/getSwitchStackDetail.ts +15 -0
  532. package/src/tools/omada/getThreatList.ts +42 -0
  533. package/src/tools/omada/getWlanGroupList.ts +15 -0
  534. package/src/tools/omada/index.ts +82 -0
  535. package/src/tools/omada/listClients.ts +15 -0
  536. package/src/tools/omada/listClientsActivity.ts +25 -0
  537. package/src/tools/omada/listClientsPastConnections.ts +44 -0
  538. package/src/tools/omada/listDevices.ts +15 -0
  539. package/src/tools/omada/listDevicesStats.ts +41 -0
  540. package/src/tools/omada/listMostActiveClients.ts +15 -0
  541. package/src/tools/omada/listSites.ts +18 -0
  542. package/src/tools/omada/searchDevices.ts +20 -0
  543. package/src/tools/omada/setClientRateLimit.ts +26 -0
  544. package/src/tools/omada/setClientRateLimitProfile.ts +25 -0
  545. package/src/tools/types.ts +11 -0
  546. package/src/tools/utils/pagination-schema.ts +27 -0
  547. package/src/types/ai/index.ts +11 -0
  548. package/src/types/ai/types.ts +67 -0
  549. package/src/types/homeassistant/index.ts +45 -0
  550. package/src/types/index.ts +9 -38
  551. package/src/types/omada/activeClientInfo.ts +17 -0
  552. package/src/types/omada/clientActivity.ts +32 -0
  553. package/src/types/omada/clientPastConnection.ts +82 -0
  554. package/src/types/omada/index.ts +13 -0
  555. package/src/types/omada/omadaApiResponse.ts +5 -0
  556. package/src/types/omada/omadaClientInfo.ts +11 -0
  557. package/src/types/omada/omadaDeviceInfo.ts +11 -0
  558. package/src/types/omada/omadaDeviceStats.ts +31 -0
  559. package/src/types/omada/omadaSiteSummary.ts +5 -0
  560. package/src/types/omada/oswStackDetail.ts +11 -0
  561. package/src/types/omada/paginatedResult.ts +6 -0
  562. package/src/types/omada/rateLimitProfile.ts +58 -0
  563. package/src/types/omada/threatInfo.ts +38 -0
  564. package/src/types/omada/tokenResult.ts +6 -0
  565. package/src/utils/jwt.ts +69 -0
  566. package/src/utils/logger.ts +72 -66
  567. package/src/version.ts +1 -1
  568. package/src/wrapper.ts +1 -1
  569. package/tests/bdd/configuration.spec.ts +10 -8
  570. package/tests/config.test.ts +8 -4
  571. package/tests/features/configuration.feature +4 -4
  572. package/tests/haClient/index.test.ts +3 -13
  573. package/tests/permissions/index.test.ts +173 -0
  574. package/tests/resources/index.test.ts +288 -0
  575. package/tests/server/auth.test.ts +64 -46
  576. package/tests/server/common.test.ts +49 -29
  577. package/tests/server/stdio.test.ts +27 -28
  578. package/tests/tools/ai/analyzeSensors.test.ts +235 -0
  579. package/tests/tools/common.test.ts +124 -0
  580. package/tests/tools/homeassistant/handlers.test.ts +815 -0
  581. package/tests/tools/omada/handlers.test.ts +854 -0
  582. package/tests/tools/registry.test.ts +32 -26
  583. package/tests/utils/jwt.test.ts +115 -0
  584. package/docs/LOCAL_CLIENT.md +0 -572
  585. package/docs/SSE_API.md +0 -341
  586. package/src/autonomic/index.ts +0 -16
  587. package/src/autonomic/priority.ts +0 -109
  588. package/tests/autonomic/priority.test.ts +0 -171
  589. /package/src/types/{automations.ts → homeassistant/automations.ts} +0 -0
  590. /package/src/types/{calendars.ts → homeassistant/calendars.ts} +0 -0
  591. /package/src/types/{config.ts → homeassistant/config.ts} +0 -0
  592. /package/src/types/{entities.ts → homeassistant/entities.ts} +0 -0
  593. /package/src/types/{errors.ts → homeassistant/errors.ts} +0 -0
  594. /package/src/types/{haConfig.ts → homeassistant/haConfig.ts} +0 -0
  595. /package/src/types/{history.ts → homeassistant/history.ts} +0 -0
  596. /package/src/types/{request.ts → homeassistant/request.ts} +0 -0
  597. /package/src/types/{serviceCall.ts → homeassistant/serviceCall.ts} +0 -0
  598. /package/src/types/{states.ts → homeassistant/states.ts} +0 -0
  599. /package/src/types/{updates.ts → homeassistant/updates.ts} +0 -0
package/Dockerfile CHANGED
@@ -1,21 +1,21 @@
1
1
  # syntax=docker/dockerfile:1.7
2
2
 
3
- FROM node:25-bookworm-slim AS deps
3
+ FROM node:25-alpine AS deps
4
4
  WORKDIR /app
5
5
  COPY package*.json ./
6
6
  RUN npm install
7
7
 
8
- FROM node:25-bookworm-slim AS build
8
+ FROM node:25-alpine AS build
9
9
  WORKDIR /app
10
10
  COPY --from=deps /app/node_modules ./node_modules
11
11
  COPY . .
12
12
  RUN npm run build
13
13
 
14
- FROM node:25-bookworm-slim AS runtime
14
+ FROM node:25-alpine AS runtime
15
15
 
16
16
  # OCI metadata labels
17
- LABEL org.opencontainers.image.title="Smart HomeAssistant MCP Server"
18
- LABEL org.opencontainers.image.description="Smart home MCP server for Home Assistant plus Local AI integration"
17
+ LABEL org.opencontainers.image.title="MCP-HA-Connect"
18
+ LABEL org.opencontainers.image.description="MCP server for Home Assistant + TP-Link Omada + Local AI integration"
19
19
  LABEL org.opencontainers.image.authors="Coffee Run Hobby"
20
20
  LABEL org.opencontainers.image.url="https://github.com/coffeerunhobby/mcp-ha-connect"
21
21
  LABEL org.opencontainers.image.source="https://github.com/coffeerunhobby/mcp-ha-connect"
@@ -24,9 +24,7 @@ LABEL org.opencontainers.image.licenses="MIT"
24
24
 
25
25
  WORKDIR /app
26
26
  ENV NODE_ENV=production
27
- RUN apt-get update \
28
- && apt-get install -y --no-install-recommends curl \
29
- && rm -rf /var/lib/apt/lists/*
27
+ RUN apk add --no-cache curl
30
28
  COPY package*.json ./
31
29
  RUN npm install --omit=dev
32
30
  COPY --from=build /app/dist ./dist
package/README.md CHANGED
@@ -5,17 +5,6 @@ A production-ready Model Context Protocol (MCP) server for Home Assistant integr
5
5
  [![npm version](https://badge.fury.io/js/%40coffeerunhobby%2Fmcp-ha-connect.svg)](https://www.npmjs.com/package/@coffeerunhobby/mcp-ha-connect)
6
6
  [![Docker](https://img.shields.io/badge/docker-ghcr.io-blue)](https://github.com/coffeerunhobby/mcp-ha-connect/pkgs/container/mcp-ha-connect)
7
7
 
8
- ## Autonomous Safety Monitoring System
9
-
10
- 1. **JS Pre-filter**: Tier A triggers + basic anomaly detection
11
- 2. **Issue Objects**: Structured alerts (entity, area, threshold, observed, last_changed)
12
- 3. **LLM Decision**: Single JSON verdict from local model
13
- 4. **Smart Notifications**: Dedupe + cooldown to prevent alert fatigue
14
- 5. **Acknowledgment**: HA notification, Telegram, mobile app action, or voice
15
- 6. **Auto-Response**: Water/gas shutoff via HA valves/switches
16
-
17
- See [docs/SSE_API.md](docs/SSE_API.md) for complete documentation of the SSE system.
18
-
19
8
  See [docs/QUICK_START.md](docs/QUICK_START.md) for Docker, HTTP server mode, n8n integration, and more installation options.
20
9
 
21
10
  ## Key Features
@@ -55,14 +44,17 @@ See [docs/QUICK_START.md](docs/QUICK_START.md) for Docker, HTTP server mode, n8n
55
44
  - Multiple transport modes (stdio, Streamable HTTP)
56
45
  - HTTP server with health checks
57
46
  - CORS support for browser-based clients
58
- - Structured logging with pino (plain, JSON, GCP-JSON formats)
47
+ - Structured logging (plain, JSON, GCP-JSON formats)
59
48
  - Comprehensive configuration validation with Zod
60
49
  - Full type safety with TypeScript
61
50
  - Stateful and stateless session support
51
+ - JWT authentication with role-based access control
52
+
53
+ ## Available Tools (60 Total)
62
54
 
63
- ## Available Tools (37 Total)
55
+ ### Home Assistant Tools (35)
64
56
 
65
- ### State & Entity Tools
57
+ #### State & Entity Tools
66
58
 
67
59
  | Tool | Description |
68
60
  |------|-------------|
@@ -76,14 +68,14 @@ See [docs/QUICK_START.md](docs/QUICK_START.md) for Docker, HTTP server mode, n8n
76
68
  | `getHistory` | Get historical data for an entity |
77
69
  | `listPersons` | List all household members with location state (home/away) |
78
70
 
79
- ### Service & Control Tools
71
+ #### Service & Control Tools
80
72
 
81
73
  | Tool | Description |
82
74
  |------|-------------|
83
75
  | `callService` | Call any Home Assistant service |
84
76
  | `entityAction` | Simple turn_on/turn_off/toggle actions |
85
77
 
86
- ### Device Control Tools
78
+ #### Device Control Tools
87
79
 
88
80
  | Tool | Description |
89
81
  |------|-------------|
@@ -97,7 +89,7 @@ See [docs/QUICK_START.md](docs/QUICK_START.md) for Docker, HTTP server mode, n8n
97
89
  | `sendNotification` | Send notifications with full mobile app support (actions, priority, images) |
98
90
  | `listNotificationTargets` | Discover available mobile app notification targets |
99
91
 
100
- ### Automation Tools
92
+ #### Automation Tools
101
93
 
102
94
  | Tool | Description |
103
95
  |------|-------------|
@@ -111,7 +103,7 @@ See [docs/QUICK_START.md](docs/QUICK_START.md) for Docker, HTTP server mode, n8n
111
103
  | `deleteAutomation` | Delete an automation |
112
104
  | `getAutomationTrace` | Get automation execution history |
113
105
 
114
- ### System Tools
106
+ #### System Tools
115
107
 
116
108
  | Tool | Description |
117
109
  |------|-------------|
@@ -119,15 +111,76 @@ See [docs/QUICK_START.md](docs/QUICK_START.md) for Docker, HTTP server mode, n8n
119
111
  | `restartHomeAssistant` | Restart the Home Assistant server |
120
112
  | `getSystemLog` | Get system log entries from logbook |
121
113
  | `checkUpdates` | Check for available updates |
122
- | `analyzeSensors` | AI-powered sensor analysis using Ollama |
123
114
 
124
- ### Calendar Tools
115
+ #### Calendar Tools
125
116
 
126
117
  | Tool | Description |
127
118
  |------|-------------|
128
119
  | `listCalendars` | List all calendar entities |
129
120
  | `getCalendarEvents` | Get events from one or all calendars |
130
121
 
122
+ ### Omada Network Tools (24)
123
+
124
+ #### Site Tools
125
+
126
+ | Tool | Description |
127
+ |------|-------------|
128
+ | `omada_listSites` | List all sites configured on the Omada controller |
129
+
130
+ #### Device Tools
131
+
132
+ | Tool | Description |
133
+ |------|-------------|
134
+ | `omada_listDevices` | List all network devices (APs, switches, gateways) in a site |
135
+ | `omada_getDevice` | Get detailed information about a specific network device |
136
+ | `omada_searchDevices` | Search for devices globally across all sites |
137
+ | `omada_getSwitchStackDetail` | Get detailed information about a switch stack |
138
+ | `omada_listDevicesStats` | Get statistics for global adopted devices with filtering |
139
+
140
+ #### Client Tools
141
+
142
+ | Tool | Description |
143
+ |------|-------------|
144
+ | `omada_listClients` | List all connected clients (devices/users) in a site |
145
+ | `omada_getClient` | Get detailed information about a specific connected client |
146
+ | `omada_listMostActiveClients` | Get the most active clients sorted by total traffic |
147
+ | `omada_listClientsActivity` | Get client activity statistics over time |
148
+ | `omada_listClientsPastConnections` | Get historical client connection data |
149
+
150
+ #### Rate Limit Tools
151
+
152
+ | Tool | Description |
153
+ |------|-------------|
154
+ | `omada_getRateLimitProfiles` | Get available rate limit profiles for a site |
155
+ | `omada_setClientRateLimit` | Set custom bandwidth limits for a client (download/upload in Kbps) |
156
+ | `omada_setClientRateLimitProfile` | Apply a rate limit profile to a client |
157
+ | `omada_disableClientRateLimit` | Remove bandwidth limits from a client |
158
+
159
+ #### Security Tools
160
+
161
+ | Tool | Description |
162
+ |------|-------------|
163
+ | `omada_getThreatList` | Get security threat management list |
164
+
165
+ #### Network Configuration Tools
166
+
167
+ | Tool | Description |
168
+ |------|-------------|
169
+ | `omada_getInternetInfo` | Get internet connection configuration for a site |
170
+ | `omada_getPortForwardingStatus` | Get port forwarding rules (User or UPnP) |
171
+ | `omada_getLanNetworkList` | Get LAN network configuration list |
172
+ | `omada_getLanProfileList` | Get LAN profile configuration list |
173
+ | `omada_getWlanGroupList` | Get WLAN group configuration list |
174
+ | `omada_getSsidList` | Get SSID list for a WLAN group |
175
+ | `omada_getSsidDetail` | Get detailed SSID configuration |
176
+ | `omada_getFirewallSetting` | Get firewall configuration for a site |
177
+
178
+ ### AI Tools (1)
179
+
180
+ | Tool | Description |
181
+ |------|-------------|
182
+ | `analyzeSensors` | Analyze sensor data using AI (Ollama) to detect issues and provide recommendations |
183
+
131
184
  ### MCP Resources
132
185
 
133
186
  | Resource URI | Description |
@@ -169,6 +222,7 @@ See [docs/QUICK_START.md](docs/QUICK_START.md) for Docker, HTTP server mode, n8n
169
222
 
170
223
  | Variable | Default | Description |
171
224
  |----------|---------|-------------|
225
+ | `HA_PLUGIN_ENABLED` | `true` | Enable Home Assistant plugin |
172
226
  | `HA_STRICT_SSL` | `true` | Validate SSL certificates |
173
227
  | `HA_TIMEOUT` | `30000` | API request timeout (ms) |
174
228
 
@@ -213,17 +267,86 @@ See [docs/QUICK_START.md](docs/QUICK_START.md) for Docker, HTTP server mode, n8n
213
267
  | Variable | Default | Description |
214
268
  |----------|---------|-------------|
215
269
  | `MCP_AUTH_METHOD` | `none` | Auth method: `none` or `bearer` |
216
- | `MCP_AUTH_TOKEN` | - | Bearer token(s), can be comma-separated for multiple clients |
270
+ | `MCP_AUTH_SECRET` | - | JWT signing secret (min 32 chars, required for `bearer` method) |
271
+ | `MCP_PERMISSIONS_CONFIG` | - | JSON config for user roles and permissions |
272
+
273
+ #### JWT Authentication
274
+
275
+ When `MCP_AUTH_METHOD=bearer`, clients must provide a JWT token in the Authorization header:
276
+
277
+ ```
278
+ Authorization: Bearer <jwt-token>
279
+ ```
280
+
281
+ Generate tokens with your `MCP_AUTH_SECRET` using HS256 algorithm. The JWT payload should include:
282
+ - `sub` (subject): User identifier for permission lookup
283
+ - `exp` (optional): Expiration timestamp
284
+
285
+ #### Permission System
286
+
287
+ The server uses role-based access control with binary permission masks:
288
+
289
+ | Permission | Flag | Description |
290
+ |------------|------|-------------|
291
+ | `ADMIN` | 1 | System operations (restart, updates) |
292
+ | `CONFIGURE` | 2 | Create/modify automations, scripts |
293
+ | `CONTROL` | 4 | Control devices (lights, climate, etc.) |
294
+ | `QUERY` | 8 | Read entity states, history, lists |
295
+ | `NOTIFY` | 16 | Send notifications |
296
+ | `AI` | 32 | Use AI analysis features |
297
+
298
+ **Predefined Roles:**
299
+
300
+ | Role | Permissions |
301
+ |------|-------------|
302
+ | `NONE` | No permissions |
303
+ | `READONLY` | QUERY only |
304
+ | `OPERATOR` | QUERY + CONTROL + NOTIFY |
305
+ | `CONTRIBUTOR` | QUERY + CONTROL + NOTIFY + CONFIGURE |
306
+ | `ADMIN` | All except AI |
307
+ | `SUPERUSER` | All permissions |
308
+
309
+ **Configuration Example:**
310
+
311
+ ```json
312
+ {
313
+ "users": [
314
+ { "sub": "admin@example.com", "role": "admin" },
315
+ { "sub": "user@example.com", "role": "operator" },
316
+ { "sub": "viewer@example.com", "role": "readonly" }
317
+ ],
318
+ "defaultRole": "NONE"
319
+ }
320
+ ```
321
+
322
+ Set via environment variable (escape quotes for shell):
323
+ ```bash
324
+ MCP_PERMISSIONS_CONFIG='{"users":[{"sub":"admin","role":"admin"}],"defaultRole":"NONE"}'
325
+ ```
217
326
 
218
327
  ### Optional - AI Provider
219
328
 
220
329
  | Variable | Default | Description |
221
330
  |----------|---------|-------------|
331
+ | `AI_PLUGIN_ENABLED` | `true` | Enable AI plugin |
222
332
  | `AI_PROVIDER` | `ollama` | AI provider: `ollama`, `openai`, or `none` |
223
- | `AI_URL` | `http://ollama.10.0.0.17.nip.io:11434` | AI server URL (Ollama) |
333
+ | `AI_URL` | `http://localhost:11434` | AI server URL (Ollama) |
224
334
  | `AI_MODEL` | `llama2` | AI model name |
225
335
  | `AI_TIMEOUT` | `60000` | AI request timeout (ms) |
226
336
 
337
+ ### Optional - Omada Network Controller
338
+
339
+ | Variable | Default | Description |
340
+ |----------|---------|-------------|
341
+ | `OMADA_PLUGIN_ENABLED` | `false` | Enable Omada plugin |
342
+ | `OMADA_BASE_URL` | - | Omada controller URL (e.g., `https://192.168.0.1:8043`) |
343
+ | `OMADA_CLIENT_ID` | - | OAuth2 client ID from Omada controller |
344
+ | `OMADA_CLIENT_SECRET` | - | OAuth2 client secret from Omada controller |
345
+ | `OMADA_OMADAC_ID` | - | Omada controller ID |
346
+ | `OMADA_SITE_ID` | - | Default site ID for operations |
347
+ | `OMADA_STRICT_SSL` | `true` | Validate SSL certificates |
348
+ | `OMADA_TIMEOUT` | `30000` | API request timeout (ms) |
349
+
227
350
  ## Advanced Configuration Examples
228
351
 
229
352
  ### With AI Analysis (Ollama)
@@ -585,8 +708,6 @@ Coffee Run Hobby ([github.com/coffeerunhobby](https://github.com/coffeerunhobby)
585
708
 
586
709
  - [Quick Start Guide](docs/QUICK_START.md)
587
710
  - [Changelog](docs/CHANGELOG.md)
588
- - [Local Client Configuration](docs/LOCAL_CLIENT.md)
589
- - [SSE Event API](docs/SSE_API.md)
590
711
 
591
712
  ## Contributing
592
713
 
package/dist/config.d.ts CHANGED
@@ -1,9 +1,20 @@
1
+ import { type PermissionsConfig } from './permissions/index.js';
1
2
  import type { AIProviderType } from './localAI/types.js';
2
3
  export interface EnvironmentConfig {
3
- baseUrl: string;
4
- token: string;
4
+ haPluginEnabled: boolean;
5
+ aiPluginEnabled: boolean;
6
+ omadaPluginEnabled: boolean;
7
+ baseUrl?: string;
8
+ token?: string;
5
9
  strictSsl: boolean;
6
10
  timeout: number;
11
+ omadaBaseUrl?: string;
12
+ omadaClientId?: string;
13
+ omadaClientSecret?: string;
14
+ omadacId?: string;
15
+ siteId?: string;
16
+ omadaStrictSsl: boolean;
17
+ requestTimeout?: number;
7
18
  aiProvider: AIProviderType;
8
19
  aiUrl: string;
9
20
  aiModel: string;
@@ -26,7 +37,8 @@ export interface EnvironmentConfig {
26
37
  rateLimitWindowMs: number;
27
38
  rateLimitMaxRequests: number;
28
39
  authMethod: 'none' | 'bearer';
29
- authToken?: Set<string>;
40
+ authSecret?: string;
41
+ permissions: PermissionsConfig;
30
42
  }
31
43
  export declare function loadConfig(env?: NodeJS.ProcessEnv): EnvironmentConfig;
32
44
  export declare function validateConfig(config: EnvironmentConfig): void;
package/dist/config.js CHANGED
@@ -1,5 +1,6 @@
1
1
  import { z } from 'zod';
2
2
  import { isValidBindAddress, isValidOrigin } from './utils/config-validations.js';
3
+ import { parsePermissionsConfig } from './permissions/index.js';
3
4
  import { logger } from './utils/logger.js';
4
5
  const createBooleanStringSchema = (defaultValue) => z
5
6
  .union([z.literal('true'), z.literal('false')])
@@ -14,22 +15,25 @@ const numericStringSchema = z
14
15
  .optional()
15
16
  .transform((value) => (value ? Number.parseInt(value, 10) : undefined))
16
17
  .pipe(z.number().positive().optional());
17
- const listStringSchema = z
18
- .string()
19
- .optional()
20
- .transform((value) => value
21
- ? value
22
- .split(',')
23
- .map((s) => s.trim())
24
- .filter(Boolean)
25
- : undefined);
26
18
  const envSchema = z
27
19
  .object({
28
- // Home Assistant Client Configuration
29
- haUrl: z.string().url({ message: 'HA_URL must be a valid URL' }),
30
- haToken: z.string().min(1, 'HA_TOKEN is required'),
20
+ // Plugin Enable Flags (default: false)
21
+ haPluginEnabled: createBooleanStringSchema(false),
22
+ aiPluginEnabled: createBooleanStringSchema(false),
23
+ omadaPluginEnabled: createBooleanStringSchema(false),
24
+ // Home Assistant Client Configuration (optional if using Omada only)
25
+ haUrl: z.string().url({ message: 'HA_URL must be a valid URL' }).optional(),
26
+ haToken: z.string().min(1).optional(),
31
27
  haStrictSsl: createBooleanStringSchema(true),
32
28
  haTimeout: numericStringSchema,
29
+ // Omada Client Configuration (optional)
30
+ omadaBaseUrl: z.string().url({ message: 'OMADA_BASE_URL must be a valid URL' }).optional(),
31
+ omadaClientId: z.string().min(1).optional(),
32
+ omadaClientSecret: z.string().min(1).optional(),
33
+ omadaOmadacId: z.string().min(1).optional(),
34
+ omadaSiteId: z.string().min(1).optional(),
35
+ omadaStrictSsl: createBooleanStringSchema(true),
36
+ omadaTimeout: numericStringSchema,
33
37
  // AI Provider Configuration (use 'none' to disable AI features)
34
38
  aiProvider: z.enum(['ollama', 'openai', 'none']).optional(),
35
39
  aiUrl: z.string().url().optional(),
@@ -48,7 +52,7 @@ const envSchema = z
48
52
  httpEnableHealthcheck: createBooleanStringSchema(true),
49
53
  httpHealthcheckPath: z.string().optional(),
50
54
  httpAllowCors: createBooleanStringSchema(true),
51
- httpAllowedOrigins: listStringSchema,
55
+ httpAllowedOrigins: z.string().optional().transform((v) => v?.split(',').map((s) => s.trim()).filter(Boolean)),
52
56
  // SSE Event Subscription Configuration
53
57
  sseEventsEnabled: createBooleanStringSchema(true),
54
58
  sseEventsPath: z.string().optional(),
@@ -58,10 +62,10 @@ const envSchema = z
58
62
  rateLimitMaxRequests: numericStringSchema,
59
63
  // Authentication Configuration
60
64
  authMethod: z.enum(['none', 'bearer']).optional().default('none'),
61
- authToken: listStringSchema,
65
+ authSecret: z.string().optional(),
66
+ permissionsConfig: z.string().optional(),
62
67
  })
63
68
  .refine((data) => {
64
- // Validate httpBindAddr if provided
65
69
  if (data.httpBindAddr && !isValidBindAddress(data.httpBindAddr)) {
66
70
  return false;
67
71
  }
@@ -71,7 +75,6 @@ const envSchema = z
71
75
  path: ['httpBindAddr'],
72
76
  })
73
77
  .refine((data) => {
74
- // Validate httpAllowedOrigins if provided
75
78
  if (data.httpAllowedOrigins) {
76
79
  for (const origin of data.httpAllowedOrigins) {
77
80
  if (!isValidOrigin(origin)) {
@@ -88,22 +91,33 @@ const envSchema = z
88
91
  };
89
92
  })
90
93
  .refine((data) => {
91
- // If bearer auth is enabled, token must be provided
92
- if (data.authMethod === 'bearer' && !data.authToken) {
94
+ if (data.authMethod === 'bearer' && !data.authSecret) {
93
95
  return false;
94
96
  }
95
97
  return true;
96
98
  }, {
97
- message: 'MCP_AUTH_TOKEN is required when MCP_AUTH_METHOD is "bearer"',
98
- path: ['authToken'],
99
+ message: 'MCP_AUTH_SECRET is required when MCP_AUTH_METHOD is "bearer"',
100
+ path: ['authSecret'],
99
101
  });
100
102
  export function loadConfig(env = process.env) {
101
103
  const parsed = envSchema.safeParse({
104
+ // Plugin Enable Flags
105
+ haPluginEnabled: env.HA_PLUGIN_ENABLED,
106
+ aiPluginEnabled: env.AI_PLUGIN_ENABLED,
107
+ omadaPluginEnabled: env.OMADA_PLUGIN_ENABLED,
102
108
  // Home Assistant Client Configuration
103
109
  haUrl: env.HA_URL,
104
110
  haToken: env.HA_TOKEN,
105
111
  haStrictSsl: env.HA_STRICT_SSL,
106
112
  haTimeout: env.HA_TIMEOUT,
113
+ // Omada Client Configuration
114
+ omadaBaseUrl: env.OMADA_BASE_URL,
115
+ omadaClientId: env.OMADA_CLIENT_ID,
116
+ omadaClientSecret: env.OMADA_CLIENT_SECRET,
117
+ omadaOmadacId: env.OMADA_OMADAC_ID,
118
+ omadaSiteId: env.OMADA_SITE_ID,
119
+ omadaStrictSsl: env.OMADA_STRICT_SSL,
120
+ omadaTimeout: env.OMADA_TIMEOUT,
107
121
  // AI Provider Configuration
108
122
  aiProvider: env.AI_PROVIDER,
109
123
  aiUrl: env.AI_URL,
@@ -132,28 +146,38 @@ export function loadConfig(env = process.env) {
132
146
  rateLimitMaxRequests: env.MCP_RATE_LIMIT_MAX_REQUESTS,
133
147
  // Authentication Configuration
134
148
  authMethod: env.MCP_AUTH_METHOD,
135
- authToken: env.MCP_AUTH_TOKEN,
149
+ authSecret: env.MCP_AUTH_SECRET,
150
+ permissionsConfig: env.MCP_PERMISSIONS_CONFIG,
136
151
  });
137
152
  if (!parsed.success) {
138
153
  const messages = parsed.error.issues.map((issue) => issue.message);
139
154
  throw new Error(`Invalid environment configuration:\n${messages.join('\n')}`);
140
155
  }
141
- // Default MCP endpoint path
142
156
  const httpPath = parsed.data.httpPath ?? '/mcp';
143
- // Set default bind address and allowed origins for security
144
157
  const httpBindAddr = parsed.data.httpBindAddr ?? '127.0.0.1';
145
158
  let httpAllowedOrigins = parsed.data.httpAllowedOrigins ?? ['127.0.0.1', 'localhost'];
146
- // If wildcard is present, use empty array to disable SDK origin validation
147
159
  if (httpAllowedOrigins.includes('*')) {
148
- logger.warn('Wildcard (*) origin allowed - origin validation is disabled. This should only be used in development.');
160
+ logger.warn('Wildcard (*) origin allowed - origin validation disabled');
149
161
  httpAllowedOrigins = [];
150
162
  }
151
163
  return {
152
- // Home Assistant Client Configuration
153
- baseUrl: parsed.data.haUrl.replace(/\/$/, ''),
164
+ // Plugin Enable Flags
165
+ haPluginEnabled: parsed.data.haPluginEnabled,
166
+ aiPluginEnabled: parsed.data.aiPluginEnabled,
167
+ omadaPluginEnabled: parsed.data.omadaPluginEnabled,
168
+ // Home Assistant Client Configuration (optional)
169
+ baseUrl: parsed.data.haUrl?.replace(/\/$/, ''),
154
170
  token: parsed.data.haToken,
155
171
  strictSsl: parsed.data.haStrictSsl,
156
172
  timeout: parsed.data.haTimeout ?? 30000,
173
+ // Omada Client Configuration (optional)
174
+ omadaBaseUrl: parsed.data.omadaBaseUrl?.replace(/\/$/, ''),
175
+ omadaClientId: parsed.data.omadaClientId,
176
+ omadaClientSecret: parsed.data.omadaClientSecret,
177
+ omadacId: parsed.data.omadaOmadacId,
178
+ siteId: parsed.data.omadaSiteId,
179
+ omadaStrictSsl: parsed.data.omadaStrictSsl,
180
+ requestTimeout: parsed.data.omadaTimeout,
157
181
  // AI Provider Configuration
158
182
  aiProvider: (parsed.data.aiProvider ?? 'ollama'),
159
183
  aiUrl: parsed.data.aiUrl ?? 'http://localhost:11434',
@@ -182,12 +206,11 @@ export function loadConfig(env = process.env) {
182
206
  rateLimitMaxRequests: parsed.data.rateLimitMaxRequests ?? 100,
183
207
  // Authentication Configuration
184
208
  authMethod: parsed.data.authMethod,
185
- authToken: parsed.data.authToken ? new Set(parsed.data.authToken) : undefined,
209
+ authSecret: parsed.data.authSecret,
210
+ permissions: parsePermissionsConfig(parsed.data.permissionsConfig),
186
211
  };
187
212
  }
188
- // Legacy compatibility functions
189
213
  export function validateConfig(config) {
190
- // Config is already validated by Zod, this is for compatibility
191
214
  if (!config.baseUrl || !config.token) {
192
215
  throw new Error('Invalid configuration: missing baseUrl or token');
193
216
  }
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
package/dist/env.d.ts ADDED
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Environment variable loading
3
+ * This file must be imported first in index.ts
4
+ */
5
+ export {};
package/dist/env.js ADDED
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Environment variable loading
3
+ * This file must be imported first in index.ts
4
+ */
5
+ import { existsSync } from 'node:fs';
6
+ import { config } from 'dotenv';
7
+ // Load .env first (base config)
8
+ config({ path: '.env' });
9
+ // Load .env.local if it exists (overrides)
10
+ if (existsSync('.env.local')) {
11
+ config({ path: '.env.local', override: true });
12
+ }
13
+ //# sourceMappingURL=env.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"env.js","sourceRoot":"","sources":["../src/env.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,gCAAgC;AAChC,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;AAEzB,2CAA2C;AAC3C,IAAI,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;IAC7B,MAAM,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;AACjD,CAAC"}
@@ -2,9 +2,14 @@
2
2
  * Home Assistant API Client
3
3
  * Main client class that composes all operation modules
4
4
  */
5
- import type { EnvironmentConfig } from '../config.js';
6
5
  import type { Entity, ServiceCallData, ServiceCallResponse, Automation, AutomationConfig, DomainSummary, HaVersion, LogbookEntry, UpdateInfo, Calendar, CalendarEvent } from '../types/index.js';
7
6
  import { DeviceOperations } from './devices.js';
7
+ export interface HaClientOptions {
8
+ baseUrl: string;
9
+ token: string;
10
+ timeout: number;
11
+ strictSsl: boolean;
12
+ }
8
13
  /**
9
14
  * Main client for interacting with the Home Assistant API.
10
15
  * Organized with dedicated operation classes for each domain.
@@ -20,7 +25,7 @@ export declare class HaClient {
20
25
  private readonly configOps;
21
26
  private readonly calendarOps;
22
27
  readonly devices: DeviceOperations;
23
- constructor(config: EnvironmentConfig);
28
+ constructor(config: HaClientOptions);
24
29
  /**
25
30
  * Get all states (entities)
26
31
  */
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/haClient/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/haClient/index.ts"],"names":[],"mappings":"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"}