@coffeerunhobby/mcp-ha-connect 1.0.0 → 1.1.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 (288) hide show
  1. package/README.md +18 -5
  2. package/dist/index.js +20 -12
  3. package/dist/index.js.map +1 -1
  4. package/dist/omadaClient/auth.js +10 -1
  5. package/dist/omadaClient/auth.js.map +1 -1
  6. package/dist/server/common.js +10 -0
  7. package/dist/server/common.js.map +1 -1
  8. package/dist/server/instructions.d.ts +19 -0
  9. package/dist/server/instructions.js +69 -0
  10. package/dist/server/instructions.js.map +1 -0
  11. package/dist/tools/common.d.ts +35 -0
  12. package/dist/tools/common.js +28 -0
  13. package/dist/tools/common.js.map +1 -1
  14. package/dist/tools/homeassistant/getAllSensors.d.ts +1 -0
  15. package/dist/tools/homeassistant/getAllSensors.js +28 -5
  16. package/dist/tools/homeassistant/getAllSensors.js.map +1 -1
  17. package/dist/tools/homeassistant/getEntitiesByDomain.d.ts +1 -0
  18. package/dist/tools/homeassistant/getEntitiesByDomain.js +38 -6
  19. package/dist/tools/homeassistant/getEntitiesByDomain.js.map +1 -1
  20. package/dist/tools/homeassistant/getStates.d.ts +1 -0
  21. package/dist/tools/homeassistant/getStates.js +28 -5
  22. package/dist/tools/homeassistant/getStates.js.map +1 -1
  23. package/dist/tools/homeassistant/listEntities.d.ts +1 -0
  24. package/dist/tools/homeassistant/listEntities.js +22 -4
  25. package/dist/tools/homeassistant/listEntities.js.map +1 -1
  26. package/dist/tools/homeassistant/searchEntities.d.ts +1 -0
  27. package/dist/tools/homeassistant/searchEntities.js +38 -6
  28. package/dist/tools/homeassistant/searchEntities.js.map +1 -1
  29. package/dist/types/homeassistant/index.d.ts +2 -1
  30. package/dist/types/homeassistant/index.js +1 -0
  31. package/dist/types/homeassistant/index.js.map +1 -1
  32. package/dist/types/homeassistant/states.d.ts +26 -0
  33. package/dist/types/homeassistant/states.js +13 -1
  34. package/dist/types/homeassistant/states.js.map +1 -1
  35. package/dist/version.d.ts +1 -1
  36. package/dist/version.js +1 -1
  37. package/docker-compose.yml +3 -0
  38. package/docs/CHANGELOG.md +19 -0
  39. package/package.json +2 -1
  40. package/src/index.ts +19 -12
  41. package/src/omadaClient/auth.ts +10 -1
  42. package/src/server/common.ts +18 -3
  43. package/src/server/instructions.ts +94 -0
  44. package/src/tools/common.ts +47 -0
  45. package/src/tools/homeassistant/getAllSensors.ts +30 -5
  46. package/src/tools/homeassistant/getEntitiesByDomain.ts +41 -6
  47. package/src/tools/homeassistant/getStates.ts +30 -5
  48. package/src/tools/homeassistant/listEntities.ts +25 -5
  49. package/src/tools/homeassistant/searchEntities.ts +41 -6
  50. package/src/types/homeassistant/index.ts +2 -1
  51. package/src/types/homeassistant/states.ts +37 -0
  52. package/src/version.ts +1 -1
  53. package/tests/integration/homeassistant.test.ts +136 -0
  54. package/tests/integration/omada.test.ts +152 -0
  55. package/tests/integration/server.test.ts +148 -0
  56. package/tests/server/instructions.test.ts +150 -0
  57. package/tests/tools/homeassistant/handlers.test.ts +30 -19
  58. package/dist/autonomic/index.d.ts +0 -6
  59. package/dist/autonomic/index.js +0 -7
  60. package/dist/autonomic/index.js.map +0 -1
  61. package/dist/autonomic/priority.d.ts +0 -60
  62. package/dist/autonomic/priority.js +0 -97
  63. package/dist/autonomic/priority.js.map +0 -1
  64. package/dist/env.d.ts +0 -5
  65. package/dist/env.js +0 -13
  66. package/dist/env.js.map +0 -1
  67. package/dist/haClient/labels.d.ts +0 -64
  68. package/dist/haClient/labels.js +0 -177
  69. package/dist/haClient/labels.js.map +0 -1
  70. package/dist/omadaClient/http.d.ts +0 -88
  71. package/dist/omadaClient/http.js +0 -176
  72. package/dist/omadaClient/http.js.map +0 -1
  73. package/dist/organism/index.d.ts +0 -5
  74. package/dist/organism/index.js +0 -6
  75. package/dist/organism/index.js.map +0 -1
  76. package/dist/organism/priority.d.ts +0 -60
  77. package/dist/organism/priority.js +0 -97
  78. package/dist/organism/priority.js.map +0 -1
  79. package/dist/plugins/homeassistant.d.ts +0 -44
  80. package/dist/plugins/homeassistant.js +0 -101
  81. package/dist/plugins/homeassistant.js.map +0 -1
  82. package/dist/plugins/index.d.ts +0 -22
  83. package/dist/plugins/index.js +0 -91
  84. package/dist/plugins/index.js.map +0 -1
  85. package/dist/plugins/localai.d.ts +0 -48
  86. package/dist/plugins/localai.js +0 -111
  87. package/dist/plugins/localai.js.map +0 -1
  88. package/dist/plugins/omada.d.ts +0 -45
  89. package/dist/plugins/omada.js +0 -367
  90. package/dist/plugins/omada.js.map +0 -1
  91. package/dist/plugins/registry.d.ts +0 -93
  92. package/dist/plugins/registry.js +0 -196
  93. package/dist/plugins/registry.js.map +0 -1
  94. package/dist/plugins/types.d.ts +0 -101
  95. package/dist/plugins/types.js +0 -6
  96. package/dist/plugins/types.js.map +0 -1
  97. package/dist/security/audit.d.ts +0 -70
  98. package/dist/security/audit.js +0 -66
  99. package/dist/security/audit.js.map +0 -1
  100. package/dist/security/guardrails.d.ts +0 -66
  101. package/dist/security/guardrails.js +0 -263
  102. package/dist/security/guardrails.js.map +0 -1
  103. package/dist/security/guardrails.test.d.ts +0 -4
  104. package/dist/security/guardrails.test.js +0 -119
  105. package/dist/security/guardrails.test.js.map +0 -1
  106. package/dist/security/index.d.ts +0 -8
  107. package/dist/security/index.js +0 -17
  108. package/dist/security/index.js.map +0 -1
  109. package/dist/security/ip-blocklist.d.ts +0 -66
  110. package/dist/security/ip-blocklist.js +0 -283
  111. package/dist/security/ip-blocklist.js.map +0 -1
  112. package/dist/security/ip-blocklist.test.d.ts +0 -4
  113. package/dist/security/ip-blocklist.test.js +0 -173
  114. package/dist/security/ip-blocklist.test.js.map +0 -1
  115. package/dist/security/policy.d.ts +0 -287
  116. package/dist/security/policy.js +0 -316
  117. package/dist/security/policy.js.map +0 -1
  118. package/dist/security/policy.test.d.ts +0 -4
  119. package/dist/security/policy.test.js +0 -360
  120. package/dist/security/policy.test.js.map +0 -1
  121. package/dist/server/authConfig.d.ts +0 -100
  122. package/dist/server/authConfig.js +0 -206
  123. package/dist/server/authConfig.js.map +0 -1
  124. package/dist/server/jwt.d.ts +0 -35
  125. package/dist/server/jwt.js +0 -123
  126. package/dist/server/jwt.js.map +0 -1
  127. package/dist/server/sse.d.ts +0 -31
  128. package/dist/server/sse.js +0 -76
  129. package/dist/server/sse.js.map +0 -1
  130. package/dist/tools/allMetadata.d.ts +0 -47
  131. package/dist/tools/allMetadata.js +0 -373
  132. package/dist/tools/allMetadata.js.map +0 -1
  133. package/dist/tools/analyzeSensors.d.ts +0 -6
  134. package/dist/tools/analyzeSensors.js +0 -23
  135. package/dist/tools/analyzeSensors.js.map +0 -1
  136. package/dist/tools/automationControls.d.ts +0 -9
  137. package/dist/tools/automationControls.js +0 -41
  138. package/dist/tools/automationControls.js.map +0 -1
  139. package/dist/tools/calendar.d.ts +0 -7
  140. package/dist/tools/calendar.js +0 -82
  141. package/dist/tools/calendar.js.map +0 -1
  142. package/dist/tools/callService.d.ts +0 -6
  143. package/dist/tools/callService.js +0 -17
  144. package/dist/tools/callService.js.map +0 -1
  145. package/dist/tools/controlClimate.d.ts +0 -6
  146. package/dist/tools/controlClimate.js +0 -50
  147. package/dist/tools/controlClimate.js.map +0 -1
  148. package/dist/tools/controlCover.d.ts +0 -6
  149. package/dist/tools/controlCover.js +0 -33
  150. package/dist/tools/controlCover.js.map +0 -1
  151. package/dist/tools/controlFan.d.ts +0 -6
  152. package/dist/tools/controlFan.js +0 -34
  153. package/dist/tools/controlFan.js.map +0 -1
  154. package/dist/tools/controlLight.d.ts +0 -6
  155. package/dist/tools/controlLight.js +0 -28
  156. package/dist/tools/controlLight.js.map +0 -1
  157. package/dist/tools/controlMediaPlayer.d.ts +0 -6
  158. package/dist/tools/controlMediaPlayer.js +0 -35
  159. package/dist/tools/controlMediaPlayer.js.map +0 -1
  160. package/dist/tools/createAutomation.d.ts +0 -6
  161. package/dist/tools/createAutomation.js +0 -24
  162. package/dist/tools/createAutomation.js.map +0 -1
  163. package/dist/tools/deleteAutomation.d.ts +0 -6
  164. package/dist/tools/deleteAutomation.js +0 -14
  165. package/dist/tools/deleteAutomation.js.map +0 -1
  166. package/dist/tools/entityAction.d.ts +0 -6
  167. package/dist/tools/entityAction.js +0 -22
  168. package/dist/tools/entityAction.js.map +0 -1
  169. package/dist/tools/getAllSensors.d.ts +0 -6
  170. package/dist/tools/getAllSensors.js +0 -14
  171. package/dist/tools/getAllSensors.js.map +0 -1
  172. package/dist/tools/getAutomationTrace.d.ts +0 -6
  173. package/dist/tools/getAutomationTrace.js +0 -14
  174. package/dist/tools/getAutomationTrace.js.map +0 -1
  175. package/dist/tools/getDomainSummary.d.ts +0 -6
  176. package/dist/tools/getDomainSummary.js +0 -14
  177. package/dist/tools/getDomainSummary.js.map +0 -1
  178. package/dist/tools/getEntitiesByDomain.d.ts +0 -6
  179. package/dist/tools/getEntitiesByDomain.js +0 -14
  180. package/dist/tools/getEntitiesByDomain.js.map +0 -1
  181. package/dist/tools/getHistory.d.ts +0 -6
  182. package/dist/tools/getHistory.js +0 -14
  183. package/dist/tools/getHistory.js.map +0 -1
  184. package/dist/tools/getState.d.ts +0 -6
  185. package/dist/tools/getState.js +0 -17
  186. package/dist/tools/getState.js.map +0 -1
  187. package/dist/tools/getStates.d.ts +0 -6
  188. package/dist/tools/getStates.js +0 -14
  189. package/dist/tools/getStates.js.map +0 -1
  190. package/dist/tools/getVersion.d.ts +0 -6
  191. package/dist/tools/getVersion.js +0 -14
  192. package/dist/tools/getVersion.js.map +0 -1
  193. package/dist/tools/labels.d.ts +0 -12
  194. package/dist/tools/labels.js +0 -139
  195. package/dist/tools/labels.js.map +0 -1
  196. package/dist/tools/lazyLoader.d.ts +0 -50
  197. package/dist/tools/lazyLoader.js +0 -140
  198. package/dist/tools/lazyLoader.js.map +0 -1
  199. package/dist/tools/listAutomations.d.ts +0 -6
  200. package/dist/tools/listAutomations.js +0 -17
  201. package/dist/tools/listAutomations.js.map +0 -1
  202. package/dist/tools/listEntities.d.ts +0 -6
  203. package/dist/tools/listEntities.js +0 -14
  204. package/dist/tools/listEntities.js.map +0 -1
  205. package/dist/tools/listPersons.d.ts +0 -6
  206. package/dist/tools/listPersons.js +0 -36
  207. package/dist/tools/listPersons.js.map +0 -1
  208. package/dist/tools/localai/analyzeSensors.d.ts +0 -6
  209. package/dist/tools/localai/analyzeSensors.js +0 -23
  210. package/dist/tools/localai/analyzeSensors.js.map +0 -1
  211. package/dist/tools/localai/index.d.ts +0 -5
  212. package/dist/tools/localai/index.js +0 -6
  213. package/dist/tools/localai/index.js.map +0 -1
  214. package/dist/tools/metaTools.d.ts +0 -74
  215. package/dist/tools/metaTools.js +0 -347
  216. package/dist/tools/metaTools.js.map +0 -1
  217. package/dist/tools/omada/metadata.d.ts +0 -18
  218. package/dist/tools/omada/metadata.js +0 -336
  219. package/dist/tools/omada/metadata.js.map +0 -1
  220. package/dist/tools/registry.d.ts +0 -105
  221. package/dist/tools/registry.js +0 -79
  222. package/dist/tools/registry.js.map +0 -1
  223. package/dist/tools/sceneAndScript.d.ts +0 -7
  224. package/dist/tools/sceneAndScript.js +0 -32
  225. package/dist/tools/sceneAndScript.js.map +0 -1
  226. package/dist/tools/searchEntities.d.ts +0 -6
  227. package/dist/tools/searchEntities.js +0 -16
  228. package/dist/tools/searchEntities.js.map +0 -1
  229. package/dist/tools/sendNotification.d.ts +0 -8
  230. package/dist/tools/sendNotification.js +0 -160
  231. package/dist/tools/sendNotification.js.map +0 -1
  232. package/dist/tools/systemTools.d.ts +0 -8
  233. package/dist/tools/systemTools.js +0 -32
  234. package/dist/tools/systemTools.js.map +0 -1
  235. package/dist/tools/triggerAutomation.d.ts +0 -6
  236. package/dist/tools/triggerAutomation.js +0 -14
  237. package/dist/tools/triggerAutomation.js.map +0 -1
  238. package/dist/types/automations.d.ts +0 -38
  239. package/dist/types/automations.js +0 -5
  240. package/dist/types/automations.js.map +0 -1
  241. package/dist/types/calendars.d.ts +0 -24
  242. package/dist/types/calendars.js +0 -5
  243. package/dist/types/calendars.js.map +0 -1
  244. package/dist/types/config.d.ts +0 -10
  245. package/dist/types/config.js +0 -6
  246. package/dist/types/config.js.map +0 -1
  247. package/dist/types/entities.d.ts +0 -13
  248. package/dist/types/entities.js +0 -5
  249. package/dist/types/entities.js.map +0 -1
  250. package/dist/types/entity.d.ts +0 -119
  251. package/dist/types/entity.js +0 -2
  252. package/dist/types/entity.js.map +0 -1
  253. package/dist/types/errors.d.ts +0 -15
  254. package/dist/types/errors.js +0 -32
  255. package/dist/types/errors.js.map +0 -1
  256. package/dist/types/haConfig.d.ts +0 -7
  257. package/dist/types/haConfig.js +0 -2
  258. package/dist/types/haConfig.js.map +0 -1
  259. package/dist/types/history.d.ts +0 -12
  260. package/dist/types/history.js +0 -5
  261. package/dist/types/history.js.map +0 -1
  262. package/dist/types/labels.d.ts +0 -34
  263. package/dist/types/labels.js +0 -5
  264. package/dist/types/labels.js.map +0 -1
  265. package/dist/types/localai/index.d.ts +0 -5
  266. package/dist/types/localai/index.js +0 -6
  267. package/dist/types/localai/index.js.map +0 -1
  268. package/dist/types/localai/types.d.ts +0 -60
  269. package/dist/types/localai/types.js +0 -6
  270. package/dist/types/localai/types.js.map +0 -1
  271. package/dist/types/permissions.d.ts +0 -92
  272. package/dist/types/permissions.js +0 -136
  273. package/dist/types/permissions.js.map +0 -1
  274. package/dist/types/request.d.ts +0 -6
  275. package/dist/types/request.js +0 -2
  276. package/dist/types/request.js.map +0 -1
  277. package/dist/types/serviceCall.d.ts +0 -17
  278. package/dist/types/serviceCall.js +0 -2
  279. package/dist/types/serviceCall.js.map +0 -1
  280. package/dist/types/states.d.ts +0 -19
  281. package/dist/types/states.js +0 -5
  282. package/dist/types/states.js.map +0 -1
  283. package/dist/types/updates.d.ts +0 -24
  284. package/dist/types/updates.js +0 -5
  285. package/dist/types/updates.js.map +0 -1
  286. package/dist/utils/sanitize.d.ts +0 -25
  287. package/dist/utils/sanitize.js +0 -92
  288. package/dist/utils/sanitize.js.map +0 -1
package/README.md CHANGED
@@ -49,6 +49,7 @@ See [docs/QUICK_START.md](docs/QUICK_START.md) for Docker, HTTP server mode, n8n
49
49
  - Full type safety with TypeScript
50
50
  - Stateful and stateless session support
51
51
  - JWT authentication with role-based access control
52
+ - MCP Server Instructions for improved LLM tool selection
52
53
 
53
54
  ## Available Tools (60 Total)
54
55
 
@@ -58,12 +59,12 @@ See [docs/QUICK_START.md](docs/QUICK_START.md) for Docker, HTTP server mode, n8n
58
59
 
59
60
  | Tool | Description |
60
61
  |------|-------------|
61
- | `getStates` | Get all entity states from Home Assistant |
62
+ | `getStates` | Get all entity states (paginated, 50/page default). Use `includeAttributes=true` for full data |
62
63
  | `getState` | Get the state of a specific entity by entity_id |
63
- | `getEntitiesByDomain` | Get all entities for a specific domain |
64
- | `searchEntities` | Search for entities by name or entity_id |
65
- | `getAllSensors` | Get all sensor and binary_sensor entities |
66
- | `listEntities` | List entities with filtering (domain, state, search, limit) |
64
+ | `getEntitiesByDomain` | Get entities for a domain (paginated, 50/page default). Use `includeAttributes=true` for full data |
65
+ | `searchEntities` | Search entities by name/entity_id (paginated, 50/page default). Use `includeAttributes=true` for full data |
66
+ | `getAllSensors` | Get all sensors (paginated, 50/page default). Use `includeAttributes=true` for full data |
67
+ | `listEntities` | List entities with filtering (domain, state, search, limit). Use `includeAttributes=true` for full data |
67
68
  | `getDomainSummary` | Get summary statistics for a domain |
68
69
  | `getHistory` | Get historical data for an entity |
69
70
  | `listPersons` | List all household members with location state (home/away) |
@@ -604,6 +605,18 @@ Connect to a remote MCP server using mcp-remote:
604
605
  - Using environment variable substitution if supported by your client
605
606
  - Never committing config files with real tokens to version control
606
607
 
608
+ ## Server Instructions
609
+
610
+ The server provides MCP Server Instructions during initialization to help LLMs understand how to optimally use the available tools. Instructions are dynamically generated based on enabled plugins and include:
611
+
612
+ - **Entity Queries**: Guidance on pagination, attribute inclusion, and using specialized tools like `listPersons`
613
+ - **Device Control**: When to use specialized control tools vs generic `callService`
614
+ - **Automation Workflows**: Best practices for creating and testing automations
615
+ - **Omada Operations**: Site context requirements, client vs device distinction, rate limiting safety
616
+ - **Cross-Plugin Integration**: How HA presence detection correlates with Omada network clients
617
+
618
+ Instructions follow MCP best practices: concise, actionable, and focused on tool relationships rather than repeating individual tool descriptions.
619
+
607
620
  ## Troubleshooting
608
621
 
609
622
  ### Claude Desktop / LM Studio Not Connecting
package/dist/index.js CHANGED
@@ -52,18 +52,26 @@ async function main() {
52
52
  let omadaClient;
53
53
  if (config.omadaPluginEnabled) {
54
54
  if (config.omadaBaseUrl && config.omadaClientId && config.omadaClientSecret && config.omadacId) {
55
- omadaClient = new OmadaClient({
56
- baseUrl: config.omadaBaseUrl,
57
- clientId: config.omadaClientId,
58
- clientSecret: config.omadaClientSecret,
59
- omadacId: config.omadacId,
60
- siteId: config.siteId,
61
- strictSsl: config.omadaStrictSsl,
62
- requestTimeout: config.requestTimeout,
63
- });
64
- // Test Omada connection by listing sites
65
- const sites = await omadaClient.listSites();
66
- logger.info('Connected to Omada controller', { siteCount: sites.length });
55
+ try {
56
+ omadaClient = new OmadaClient({
57
+ baseUrl: config.omadaBaseUrl,
58
+ clientId: config.omadaClientId,
59
+ clientSecret: config.omadaClientSecret,
60
+ omadacId: config.omadacId,
61
+ siteId: config.siteId,
62
+ strictSsl: config.omadaStrictSsl,
63
+ requestTimeout: config.requestTimeout,
64
+ });
65
+ // Test Omada connection by listing sites
66
+ const sites = await omadaClient.listSites();
67
+ logger.info('Connected to Omada controller', { siteCount: sites.length });
68
+ }
69
+ catch (error) {
70
+ logger.warn('Omada controller not available - Omada tools will be disabled', {
71
+ error: error instanceof Error ? error.message : String(error),
72
+ });
73
+ omadaClient = undefined;
74
+ }
67
75
  }
68
76
  else {
69
77
  logger.warn('Omada plugin enabled but required config not set (OMADA_BASE_URL, OMADA_CLIENT_ID, OMADA_CLIENT_SECRET, OMADA_OMADAC_ID)');
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -116,11 +116,20 @@ export class AuthManager {
116
116
  }
117
117
  const data = (await response.json());
118
118
  if (data.errorCode !== 0) {
119
+ // Error code -44106 is returned by Omada for both invalid client credentials
120
+ // AND an incorrect omadacId — the API does not distinguish between them.
121
+ const hint = data.errorCode === -44106
122
+ ? ' Check OMADA_CLIENT_ID, OMADA_CLIENT_SECRET, and OMADA_OMADAC_ID.'
123
+ : '';
124
+ const message = `${data.msg ?? 'Omada authentication failed'} (errorCode=${data.errorCode})${hint}`;
119
125
  logger.error('Omada authentication error', {
120
126
  errorCode: data.errorCode,
121
127
  message: data.msg,
128
+ ...(data.errorCode === -44106 && {
129
+ hint: 'Verify OMADA_CLIENT_ID, OMADA_CLIENT_SECRET, and OMADA_OMADAC_ID are all correct',
130
+ }),
122
131
  });
123
- throw new Error(data.msg ?? 'Omada authentication failed');
132
+ throw new Error(message);
124
133
  }
125
134
  const token = data.result ?? {};
126
135
  this.setToken(token);
@@ -1 +1 @@
1
- {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/omadaClient/auth.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/omadaClient/auth.ts"],"names":[],"mappings":"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"}
@@ -5,15 +5,25 @@
5
5
  import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
6
6
  import { registerAllTools } from '../tools/index.js';
7
7
  import { registerAllResources } from '../resources/index.js';
8
+ import { generateInstructions } from './instructions.js';
8
9
  import { logger } from '../utils/logger.js';
9
10
  import { VERSION } from '../version.js';
10
11
  export function createServer(options) {
11
12
  const { haClient, omadaClient, aiClient } = options;
12
13
  logger.debug('Creating MCP server instance');
14
+ // Generate instructions based on enabled plugins
15
+ const instructions = generateInstructions({
16
+ haEnabled: !!haClient,
17
+ omadaEnabled: !!omadaClient,
18
+ aiEnabled: !!aiClient,
19
+ });
13
20
  const server = new McpServer({
14
21
  name: 'mcp-ha-connect',
15
22
  version: VERSION,
23
+ }, {
24
+ instructions,
16
25
  });
26
+ logger.debug('Server instructions generated', { length: instructions.length });
17
27
  // Register all tools based on configured clients
18
28
  registerAllTools({
19
29
  server,
@@ -1 +1 @@
1
- {"version":3,"file":"common.js","sourceRoot":"","sources":["../../src/server/common.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAIpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAQxC,MAAM,UAAU,YAAY,CAAC,OAA4B;IACvD,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;IACpD,MAAM,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;IAE7C,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;QAC3B,IAAI,EAAE,gBAAgB;QACtB,OAAO,EAAE,OAAO;KACjB,CAAC,CAAC;IAEH,iDAAiD;IACjD,gBAAgB,CAAC;QACf,MAAM;QACN,QAAQ;QACR,WAAW;QACX,QAAQ;KACT,CAAC,CAAC;IAEH,4DAA4D;IAC5D,IAAI,QAAQ,EAAE,CAAC;QACb,oBAAoB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACzC,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;IAE5C,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"common.js","sourceRoot":"","sources":["../../src/server/common.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAIpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAQxC,MAAM,UAAU,YAAY,CAAC,OAA4B;IACvD,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;IACpD,MAAM,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;IAE7C,iDAAiD;IACjD,MAAM,YAAY,GAAG,oBAAoB,CAAC;QACxC,SAAS,EAAE,CAAC,CAAC,QAAQ;QACrB,YAAY,EAAE,CAAC,CAAC,WAAW;QAC3B,SAAS,EAAE,CAAC,CAAC,QAAQ;KACtB,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,IAAI,SAAS,CAC1B;QACE,IAAI,EAAE,gBAAgB;QACtB,OAAO,EAAE,OAAO;KACjB,EACD;QACE,YAAY;KACb,CACF,CAAC;IAEF,MAAM,CAAC,KAAK,CAAC,+BAA+B,EAAE,EAAE,MAAM,EAAE,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC;IAE/E,iDAAiD;IACjD,gBAAgB,CAAC;QACf,MAAM;QACN,QAAQ;QACR,WAAW;QACX,QAAQ;KACT,CAAC,CAAC;IAEH,4DAA4D;IAC5D,IAAI,QAAQ,EAAE,CAAC;QACb,oBAAoB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACzC,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;IAE5C,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * MCP Server Instructions
3
+ *
4
+ * Provides guidance to LLMs on how to optimally use the server's tools.
5
+ * These instructions are sent during initialization and help LLMs understand
6
+ * tool relationships, best practices, and constraints.
7
+ *
8
+ * @see https://blog.modelcontextprotocol.io/posts/2025-11-03-using-server-instructions/
9
+ */
10
+ export interface InstructionsConfig {
11
+ haEnabled: boolean;
12
+ omadaEnabled: boolean;
13
+ aiEnabled: boolean;
14
+ }
15
+ /**
16
+ * Generates server instructions based on enabled plugins.
17
+ * Instructions are kept concise and actionable per MCP best practices.
18
+ */
19
+ export declare function generateInstructions(config: InstructionsConfig): string;
@@ -0,0 +1,69 @@
1
+ /**
2
+ * MCP Server Instructions
3
+ *
4
+ * Provides guidance to LLMs on how to optimally use the server's tools.
5
+ * These instructions are sent during initialization and help LLMs understand
6
+ * tool relationships, best practices, and constraints.
7
+ *
8
+ * @see https://blog.modelcontextprotocol.io/posts/2025-11-03-using-server-instructions/
9
+ */
10
+ /**
11
+ * Generates server instructions based on enabled plugins.
12
+ * Instructions are kept concise and actionable per MCP best practices.
13
+ */
14
+ export function generateInstructions(config) {
15
+ const sections = [];
16
+ // Base instructions
17
+ sections.push('MCP-HA-Connect: Smart home control via Home Assistant with network management via TP-Link Omada.');
18
+ if (config.haEnabled) {
19
+ sections.push(getHomeAssistantInstructions());
20
+ }
21
+ if (config.omadaEnabled) {
22
+ sections.push(getOmadaInstructions());
23
+ }
24
+ if (config.aiEnabled) {
25
+ sections.push(getAIInstructions());
26
+ }
27
+ // Cross-plugin relationships
28
+ if (config.haEnabled && config.omadaEnabled) {
29
+ sections.push(getCrossPluginInstructions());
30
+ }
31
+ return sections.join(' ');
32
+ }
33
+ function getHomeAssistantInstructions() {
34
+ return [
35
+ // Entity queries
36
+ 'ENTITY QUERIES: Entity tools return paginated results (50/page default). Use includeAttributes=true only when full attribute data is needed. For people/family queries, use listPersons instead of searchEntities.',
37
+ // State management
38
+ 'STATE: getState returns single entity; getStates returns all entities paginated. Use getDomainSummary for quick counts by domain.',
39
+ // Device control
40
+ 'CONTROL: Use specialized control tools (controlLight, controlClimate, controlFan, controlCover, controlMediaPlayer) instead of generic callService when available - they provide better validation and defaults.',
41
+ // Automations
42
+ 'AUTOMATIONS: After createAutomation, automations reload automatically. Use listAutomations to verify. triggerAutomation can pass variables to test automations safely.',
43
+ // Notifications
44
+ 'NOTIFICATIONS: Use listNotificationTargets to discover available mobile devices before sendNotification. Target format is usually mobile_app_<device_name>.',
45
+ ].join(' ');
46
+ }
47
+ function getOmadaInstructions() {
48
+ return [
49
+ // Site context
50
+ 'OMADA: Most Omada tools require siteId. Use omada_listSites first to get available sites if siteId is unknown.',
51
+ // Client vs Device
52
+ 'CLIENTS vs DEVICES: Clients are connected users/devices (phones, laptops). Devices are network infrastructure (APs, switches, gateways). Use omada_listClients for user devices, omada_listDevices for infrastructure.',
53
+ // Rate limiting
54
+ 'RATE LIMITS: Use omada_getRateLimitProfiles before setting limits. omada_setClientRateLimitProfile applies predefined profiles; omada_setClientRateLimit sets custom Kbps values.',
55
+ // Read-only preference
56
+ 'SAFETY: Prefer read-only Omada tools. Rate limiting affects real network traffic - confirm with user before applying.',
57
+ ].join(' ');
58
+ }
59
+ function getAIInstructions() {
60
+ return [
61
+ 'AI ANALYSIS: analyzeSensors uses local Ollama for privacy-preserving sensor analysis. Pass sensor data as key-value pairs. Useful for anomaly detection and recommendations.',
62
+ ].join(' ');
63
+ }
64
+ function getCrossPluginInstructions() {
65
+ return [
66
+ 'INTEGRATION: Network clients from Omada can correlate with HA device_trackers for presence detection. HA person entities link to device_trackers which may correspond to Omada clients.',
67
+ ].join(' ');
68
+ }
69
+ //# sourceMappingURL=instructions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"instructions.js","sourceRoot":"","sources":["../../src/server/instructions.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAQH;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAAC,MAA0B;IAC7D,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,oBAAoB;IACpB,QAAQ,CAAC,IAAI,CACX,kGAAkG,CACnG,CAAC;IAEF,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;QACrB,QAAQ,CAAC,IAAI,CAAC,4BAA4B,EAAE,CAAC,CAAC;IAChD,CAAC;IAED,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;QACxB,QAAQ,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC,CAAC;IACxC,CAAC;IAED,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;QACrB,QAAQ,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC;IACrC,CAAC;IAED,6BAA6B;IAC7B,IAAI,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;QAC5C,QAAQ,CAAC,IAAI,CAAC,0BAA0B,EAAE,CAAC,CAAC;IAC9C,CAAC;IAED,OAAO,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC5B,CAAC;AAED,SAAS,4BAA4B;IACnC,OAAO;QACL,iBAAiB;QACjB,oNAAoN;QAEpN,mBAAmB;QACnB,mIAAmI;QAEnI,iBAAiB;QACjB,kNAAkN;QAElN,cAAc;QACd,wKAAwK;QAExK,gBAAgB;QAChB,6JAA6J;KAC9J,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACd,CAAC;AAED,SAAS,oBAAoB;IAC3B,OAAO;QACL,eAAe;QACf,gHAAgH;QAEhH,mBAAmB;QACnB,wNAAwN;QAExN,gBAAgB;QAChB,mLAAmL;QAEnL,uBAAuB;QACvB,uHAAuH;KACxH,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACd,CAAC;AAED,SAAS,iBAAiB;IACxB,OAAO;QACL,8KAA8K;KAC/K,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACd,CAAC;AAED,SAAS,0BAA0B;IACjC,OAAO;QACL,yLAAyL;KAC1L,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACd,CAAC"}
@@ -474,3 +474,38 @@ export declare const customRequestSchema: z.ZodObject<{
474
474
  siteId?: string | undefined;
475
475
  method?: string | undefined;
476
476
  }>;
477
+ /**
478
+ * Pagination schema for Home Assistant entity queries.
479
+ * Reduces response size by returning paginated, lightweight entities by default.
480
+ */
481
+ export declare const haPaginationSchema: z.ZodObject<{
482
+ page: z.ZodDefault<z.ZodNumber>;
483
+ pageSize: z.ZodDefault<z.ZodNumber>;
484
+ includeAttributes: z.ZodDefault<z.ZodBoolean>;
485
+ }, "strip", z.ZodTypeAny, {
486
+ page: number;
487
+ pageSize: number;
488
+ includeAttributes: boolean;
489
+ }, {
490
+ page?: number | undefined;
491
+ pageSize?: number | undefined;
492
+ includeAttributes?: boolean | undefined;
493
+ }>;
494
+ /**
495
+ * Pagination parameters interface for Home Assistant queries.
496
+ */
497
+ export interface HAPaginationParams {
498
+ page: number;
499
+ pageSize: number;
500
+ includeAttributes: boolean;
501
+ }
502
+ /**
503
+ * Apply pagination to an array and return paginated result metadata.
504
+ */
505
+ export declare function paginateArray<T>(items: T[], page: number, pageSize: number): {
506
+ page: number;
507
+ pageSize: number;
508
+ totalCount: number;
509
+ totalPages: number;
510
+ items: T[];
511
+ };
@@ -269,4 +269,32 @@ export const customRequestSchema = z.object({
269
269
  data: z.unknown().optional().describe('Request body data'),
270
270
  siteId: z.string().min(1).optional().describe('Site ID'),
271
271
  });
272
+ // =============================================================================
273
+ // Home Assistant pagination schemas
274
+ // =============================================================================
275
+ /**
276
+ * Pagination schema for Home Assistant entity queries.
277
+ * Reduces response size by returning paginated, lightweight entities by default.
278
+ */
279
+ export const haPaginationSchema = z.object({
280
+ page: z.number().int().min(1).default(1).describe('Page number (starts at 1)'),
281
+ pageSize: z.number().int().min(1).max(200).default(50).describe('Entities per page (1-200, default 50)'),
282
+ includeAttributes: z.boolean().default(false).describe('Include full attributes (increases response size significantly)'),
283
+ });
284
+ /**
285
+ * Apply pagination to an array and return paginated result metadata.
286
+ */
287
+ export function paginateArray(items, page, pageSize) {
288
+ const totalCount = items.length;
289
+ const totalPages = Math.ceil(totalCount / pageSize);
290
+ const start = (page - 1) * pageSize;
291
+ const paginatedItems = items.slice(start, start + pageSize);
292
+ return {
293
+ page,
294
+ pageSize,
295
+ totalCount,
296
+ totalPages,
297
+ items: paginatedItems,
298
+ };
299
+ }
272
300
  //# sourceMappingURL=common.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"common.js","sourceRoot":"","sources":["../../src/tools/common.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"common.js","sourceRoot":"","sources":["../../src/tools/common.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  /**
2
2
  * getAllSensors tool - Get all sensor entities
3
+ * Returns paginated, lightweight entities by default to reduce response size.
3
4
  */
4
5
  import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
5
6
  import type { HaClient } from '../../haClient/index.js';
@@ -1,14 +1,37 @@
1
1
  /**
2
2
  * getAllSensors tool - Get all sensor entities
3
+ * Returns paginated, lightweight entities by default to reduce response size.
3
4
  */
4
- import { emptySchema, toToolResult, wrapToolHandler, Permission } from '../common.js';
5
+ import { toLightweight } from '../../types/index.js';
6
+ import { haPaginationSchema, toToolResult, wrapToolHandler, Permission, paginateArray } from '../common.js';
5
7
  export function registerGetAllSensorsTool(server, client) {
6
8
  server.registerTool('getAllSensors', {
7
- description: 'Get all sensor states from Home Assistant (sensor.* and binary_sensor.* entities).',
8
- inputSchema: emptySchema.shape,
9
- }, wrapToolHandler('getAllSensors', async () => {
9
+ description: 'Get all sensor states from Home Assistant (sensor.* and binary_sensor.* entities). Returns paginated lightweight entities by default (50 per page). Use includeAttributes=true for full entity data.',
10
+ inputSchema: haPaginationSchema.shape,
11
+ }, wrapToolHandler('getAllSensors', async (args) => {
12
+ const { page, pageSize, includeAttributes } = args;
10
13
  const sensors = await client.getAllSensors();
11
- return toToolResult(sensors);
14
+ if (includeAttributes) {
15
+ // Return full entities with all attributes
16
+ const result = paginateArray(sensors, page, pageSize);
17
+ return toToolResult({
18
+ page: result.page,
19
+ pageSize: result.pageSize,
20
+ totalCount: result.totalCount,
21
+ totalPages: result.totalPages,
22
+ entities: result.items,
23
+ });
24
+ }
25
+ // Default: return lightweight entities
26
+ const lightweight = sensors.map(toLightweight);
27
+ const result = paginateArray(lightweight, page, pageSize);
28
+ return toToolResult({
29
+ page: result.page,
30
+ pageSize: result.pageSize,
31
+ totalCount: result.totalCount,
32
+ totalPages: result.totalPages,
33
+ entities: result.items,
34
+ });
12
35
  }, Permission.QUERY));
13
36
  }
14
37
  //# sourceMappingURL=getAllSensors.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getAllSensors.js","sourceRoot":"","sources":["../../../src/tools/homeassistant/getAllSensors.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAEtF,MAAM,UAAU,yBAAyB,CAAC,MAAiB,EAAE,MAAgB;IAC3E,MAAM,CAAC,YAAY,CACjB,eAAe,EACf;QACE,WAAW,EAAE,oFAAoF;QACjG,WAAW,EAAE,WAAW,CAAC,KAAK;KAC/B,EACD,eAAe,CAAC,eAAe,EAAE,KAAK,IAAI,EAAE;QAC1C,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,aAAa,EAAE,CAAC;QAC7C,OAAO,YAAY,CAAC,OAAO,CAAC,CAAC;IAC/B,CAAC,EAAE,UAAU,CAAC,KAAK,CAAC,CACrB,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"getAllSensors.js","sourceRoot":"","sources":["../../../src/tools/homeassistant/getAllSensors.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,eAAe,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE5G,MAAM,UAAU,yBAAyB,CAAC,MAAiB,EAAE,MAAgB;IAC3E,MAAM,CAAC,YAAY,CACjB,eAAe,EACf;QACE,WAAW,EAAE,sMAAsM;QACnN,WAAW,EAAE,kBAAkB,CAAC,KAAK;KACtC,EACD,eAAe,CAAC,eAAe,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QAC9C,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,iBAAiB,EAAE,GAAG,IAAI,CAAC;QACnD,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,aAAa,EAAE,CAAC;QAE7C,IAAI,iBAAiB,EAAE,CAAC;YACtB,2CAA2C;YAC3C,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;YACtD,OAAO,YAAY,CAAC;gBAClB,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,UAAU,EAAE,MAAM,CAAC,UAAU;gBAC7B,UAAU,EAAE,MAAM,CAAC,UAAU;gBAC7B,QAAQ,EAAE,MAAM,CAAC,KAAK;aACvB,CAAC,CAAC;QACL,CAAC;QAED,uCAAuC;QACvC,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QAC/C,MAAM,MAAM,GAAG,aAAa,CAAC,WAAW,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;QAC1D,OAAO,YAAY,CAAC;YAClB,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,QAAQ,EAAE,MAAM,CAAC,KAAK;SACvB,CAAC,CAAC;IACL,CAAC,EAAE,UAAU,CAAC,KAAK,CAAC,CACrB,CAAC;AACJ,CAAC"}
@@ -1,5 +1,6 @@
1
1
  /**
2
2
  * getEntitiesByDomain tool - Get all entities for a specific domain
3
+ * Returns paginated, lightweight entities by default to reduce response size.
3
4
  */
4
5
  import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
5
6
  import type { HaClient } from '../../haClient/index.js';
@@ -1,14 +1,46 @@
1
1
  /**
2
2
  * getEntitiesByDomain tool - Get all entities for a specific domain
3
+ * Returns paginated, lightweight entities by default to reduce response size.
3
4
  */
4
- import { domainSchema, toToolResult, wrapToolHandler, Permission } from '../common.js';
5
+ import { z } from 'zod';
6
+ import { toLightweight } from '../../types/index.js';
7
+ import { toToolResult, wrapToolHandler, Permission, paginateArray } from '../common.js';
8
+ const getEntitiesByDomainSchema = z.object({
9
+ domain: z.string().describe('Domain name (e.g., "light", "sensor", "switch", "climate")'),
10
+ page: z.number().int().min(1).default(1).describe('Page number (starts at 1)'),
11
+ pageSize: z.number().int().min(1).max(200).default(50).describe('Entities per page (1-200, default 50)'),
12
+ includeAttributes: z.boolean().default(false).describe('Include full attributes (increases response size significantly)'),
13
+ });
5
14
  export function registerGetEntitiesByDomainTool(server, client) {
6
15
  server.registerTool('getEntitiesByDomain', {
7
- description: 'Get all entities for a specific domain (e.g., all lights, all sensors).',
8
- inputSchema: domainSchema.shape,
9
- }, wrapToolHandler('getEntitiesByDomain', async ({ domain }) => {
10
- const entities = await client.getEntitiesByDomain(domain);
11
- return toToolResult({ domain, count: entities.length, entities });
16
+ description: 'Get all entities for a specific domain (e.g., all lights, all sensors). Returns paginated lightweight entities by default (50 per page). Use includeAttributes=true for full entity data.',
17
+ inputSchema: getEntitiesByDomainSchema.shape,
18
+ }, wrapToolHandler('getEntitiesByDomain', async (args) => {
19
+ const { domain, page, pageSize, includeAttributes } = args;
20
+ const allEntities = await client.getEntitiesByDomain(domain);
21
+ if (includeAttributes) {
22
+ // Return full entities with all attributes
23
+ const result = paginateArray(allEntities, page, pageSize);
24
+ return toToolResult({
25
+ domain,
26
+ page: result.page,
27
+ pageSize: result.pageSize,
28
+ totalCount: result.totalCount,
29
+ totalPages: result.totalPages,
30
+ entities: result.items,
31
+ });
32
+ }
33
+ // Default: return lightweight entities
34
+ const lightweight = allEntities.map(toLightweight);
35
+ const result = paginateArray(lightweight, page, pageSize);
36
+ return toToolResult({
37
+ domain,
38
+ page: result.page,
39
+ pageSize: result.pageSize,
40
+ totalCount: result.totalCount,
41
+ totalPages: result.totalPages,
42
+ entities: result.items,
43
+ });
12
44
  }, Permission.QUERY));
13
45
  }
14
46
  //# sourceMappingURL=getEntitiesByDomain.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getEntitiesByDomain.js","sourceRoot":"","sources":["../../../src/tools/homeassistant/getEntitiesByDomain.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAEvF,MAAM,UAAU,+BAA+B,CAAC,MAAiB,EAAE,MAAgB;IACjF,MAAM,CAAC,YAAY,CACjB,qBAAqB,EACrB;QACE,WAAW,EAAE,yEAAyE;QACtF,WAAW,EAAE,YAAY,CAAC,KAAK;KAChC,EACD,eAAe,CAAC,qBAAqB,EAAE,KAAK,EAAE,EAAE,MAAM,EAAsB,EAAE,EAAE;QAC9E,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;QAC1D,OAAO,YAAY,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;IACpE,CAAC,EAAE,UAAU,CAAC,KAAK,CAAC,CACrB,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"getEntitiesByDomain.js","sourceRoot":"","sources":["../../../src/tools/homeassistant/getEntitiesByDomain.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAExF,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,4DAA4D,CAAC;IACzF,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,2BAA2B,CAAC;IAC9E,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,uCAAuC,CAAC;IACxG,iBAAiB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,iEAAiE,CAAC;CAC1H,CAAC,CAAC;AAEH,MAAM,UAAU,+BAA+B,CAAC,MAAiB,EAAE,MAAgB;IACjF,MAAM,CAAC,YAAY,CACjB,qBAAqB,EACrB;QACE,WAAW,EAAE,2LAA2L;QACxM,WAAW,EAAE,yBAAyB,CAAC,KAAK;KAC7C,EACD,eAAe,CAAC,qBAAqB,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QACpD,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,iBAAiB,EAAE,GAAG,IAAI,CAAC;QAC3D,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;QAE7D,IAAI,iBAAiB,EAAE,CAAC;YACtB,2CAA2C;YAC3C,MAAM,MAAM,GAAG,aAAa,CAAC,WAAW,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;YAC1D,OAAO,YAAY,CAAC;gBAClB,MAAM;gBACN,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,UAAU,EAAE,MAAM,CAAC,UAAU;gBAC7B,UAAU,EAAE,MAAM,CAAC,UAAU;gBAC7B,QAAQ,EAAE,MAAM,CAAC,KAAK;aACvB,CAAC,CAAC;QACL,CAAC;QAED,uCAAuC;QACvC,MAAM,WAAW,GAAG,WAAW,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QACnD,MAAM,MAAM,GAAG,aAAa,CAAC,WAAW,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;QAC1D,OAAO,YAAY,CAAC;YAClB,MAAM;YACN,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,QAAQ,EAAE,MAAM,CAAC,KAAK;SACvB,CAAC,CAAC;IACL,CAAC,EAAE,UAAU,CAAC,KAAK,CAAC,CACrB,CAAC;AACJ,CAAC"}
@@ -1,5 +1,6 @@
1
1
  /**
2
2
  * getStates tool - Get all entity states from Home Assistant
3
+ * Returns paginated, lightweight entities by default to reduce response size.
3
4
  */
4
5
  import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
5
6
  import type { HaClient } from '../../haClient/index.js';
@@ -1,14 +1,37 @@
1
1
  /**
2
2
  * getStates tool - Get all entity states from Home Assistant
3
+ * Returns paginated, lightweight entities by default to reduce response size.
3
4
  */
4
- import { emptySchema, toToolResult, wrapToolHandler, Permission } from '../common.js';
5
+ import { toLightweight } from '../../types/index.js';
6
+ import { haPaginationSchema, toToolResult, wrapToolHandler, Permission, paginateArray } from '../common.js';
5
7
  export function registerGetStatesTool(server, client) {
6
8
  server.registerTool('getStates', {
7
- description: 'Get all entity states from Home Assistant.',
8
- inputSchema: emptySchema.shape,
9
- }, wrapToolHandler('getStates', async () => {
9
+ description: 'Get all entity states from Home Assistant. Returns paginated lightweight entities by default (50 per page). Use includeAttributes=true for full entity data.',
10
+ inputSchema: haPaginationSchema.shape,
11
+ }, wrapToolHandler('getStates', async (args) => {
12
+ const { page, pageSize, includeAttributes } = args;
10
13
  const states = await client.getStates();
11
- return toToolResult({ count: states.length, entities: states });
14
+ if (includeAttributes) {
15
+ // Return full entities with all attributes
16
+ const result = paginateArray(states, page, pageSize);
17
+ return toToolResult({
18
+ page: result.page,
19
+ pageSize: result.pageSize,
20
+ totalCount: result.totalCount,
21
+ totalPages: result.totalPages,
22
+ entities: result.items,
23
+ });
24
+ }
25
+ // Default: return lightweight entities
26
+ const lightweight = states.map(toLightweight);
27
+ const result = paginateArray(lightweight, page, pageSize);
28
+ return toToolResult({
29
+ page: result.page,
30
+ pageSize: result.pageSize,
31
+ totalCount: result.totalCount,
32
+ totalPages: result.totalPages,
33
+ entities: result.items,
34
+ });
12
35
  }, Permission.QUERY));
13
36
  }
14
37
  //# sourceMappingURL=getStates.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getStates.js","sourceRoot":"","sources":["../../../src/tools/homeassistant/getStates.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAEtF,MAAM,UAAU,qBAAqB,CAAC,MAAiB,EAAE,MAAgB;IACvE,MAAM,CAAC,YAAY,CACjB,WAAW,EACX;QACE,WAAW,EAAE,4CAA4C;QACzD,WAAW,EAAE,WAAW,CAAC,KAAK;KAC/B,EACD,eAAe,CAAC,WAAW,EAAE,KAAK,IAAI,EAAE;QACtC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,SAAS,EAAE,CAAC;QACxC,OAAO,YAAY,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;IAClE,CAAC,EAAE,UAAU,CAAC,KAAK,CAAC,CACrB,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"getStates.js","sourceRoot":"","sources":["../../../src/tools/homeassistant/getStates.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,eAAe,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE5G,MAAM,UAAU,qBAAqB,CAAC,MAAiB,EAAE,MAAgB;IACvE,MAAM,CAAC,YAAY,CACjB,WAAW,EACX;QACE,WAAW,EAAE,8JAA8J;QAC3K,WAAW,EAAE,kBAAkB,CAAC,KAAK;KACtC,EACD,eAAe,CAAC,WAAW,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QAC1C,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,iBAAiB,EAAE,GAAG,IAAI,CAAC;QACnD,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,SAAS,EAAE,CAAC;QAExC,IAAI,iBAAiB,EAAE,CAAC;YACtB,2CAA2C;YAC3C,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;YACrD,OAAO,YAAY,CAAC;gBAClB,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,UAAU,EAAE,MAAM,CAAC,UAAU;gBAC7B,UAAU,EAAE,MAAM,CAAC,UAAU;gBAC7B,QAAQ,EAAE,MAAM,CAAC,KAAK;aACvB,CAAC,CAAC;QACL,CAAC;QAED,uCAAuC;QACvC,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QAC9C,MAAM,MAAM,GAAG,aAAa,CAAC,WAAW,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;QAC1D,OAAO,YAAY,CAAC;YAClB,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,QAAQ,EAAE,MAAM,CAAC,KAAK;SACvB,CAAC,CAAC;IACL,CAAC,EAAE,UAAU,CAAC,KAAK,CAAC,CACrB,CAAC;AACJ,CAAC"}