@coffeerunhobby/mcp-ha-connect 2.4.7 → 2.5.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 (62) hide show
  1. package/.env.example +25 -0
  2. package/README.md +42 -10
  3. package/dist/config.d.ts +7 -0
  4. package/dist/config.js +22 -0
  5. package/dist/config.js.map +1 -1
  6. package/dist/index.js +3 -2
  7. package/dist/index.js.map +1 -1
  8. package/dist/net/adapters/omada.d.ts +46 -7
  9. package/dist/net/adapters/omada.js +432 -44
  10. package/dist/net/adapters/omada.js.map +1 -1
  11. package/dist/net/adapters/omadaPorts.d.ts +62 -0
  12. package/dist/net/adapters/omadaPorts.js +212 -0
  13. package/dist/net/adapters/omadaPorts.js.map +1 -0
  14. package/dist/net/adapters/omadaRules.d.ts +1 -1
  15. package/dist/net/adapters/omadaRules.js +2 -2
  16. package/dist/net/adapters/omadaRules.js.map +1 -1
  17. package/dist/net/adapters/ruijie.d.ts +59 -0
  18. package/dist/net/adapters/ruijie.js +363 -0
  19. package/dist/net/adapters/ruijie.js.map +1 -0
  20. package/dist/net/model.d.ts +37 -12
  21. package/dist/net/model.js.map +1 -1
  22. package/dist/omadaClient/accessControl.js +1 -1
  23. package/dist/omadaClient/accessControl.js.map +1 -1
  24. package/dist/omadaClient/index.d.ts +4 -0
  25. package/dist/omadaClient/index.js +3 -0
  26. package/dist/omadaClient/index.js.map +1 -1
  27. package/dist/omadaClient/networkConfig.d.ts +21 -0
  28. package/dist/omadaClient/networkConfig.js +41 -0
  29. package/dist/omadaClient/networkConfig.js.map +1 -1
  30. package/dist/ruijieClient/crypto.d.ts +20 -0
  31. package/dist/ruijieClient/crypto.js +57 -0
  32. package/dist/ruijieClient/crypto.js.map +1 -0
  33. package/dist/ruijieClient/index.d.ts +62 -0
  34. package/dist/ruijieClient/index.js +197 -0
  35. package/dist/ruijieClient/index.js.map +1 -0
  36. package/dist/server/common.d.ts +2 -0
  37. package/dist/server/common.js +2 -1
  38. package/dist/server/common.js.map +1 -1
  39. package/dist/server/http.d.ts +2 -0
  40. package/dist/server/http.js +2 -2
  41. package/dist/server/http.js.map +1 -1
  42. package/dist/server/stdio.d.ts +2 -0
  43. package/dist/server/stdio.js.map +1 -1
  44. package/dist/server/stream.d.ts +2 -0
  45. package/dist/server/stream.js +2 -1
  46. package/dist/server/stream.js.map +1 -1
  47. package/dist/tools/index.d.ts +3 -0
  48. package/dist/tools/index.js +9 -3
  49. package/dist/tools/index.js.map +1 -1
  50. package/dist/tools/net/index.d.ts +43 -2
  51. package/dist/tools/net/index.js +197 -12
  52. package/dist/tools/net/index.js.map +1 -1
  53. package/dist/tools/omada/listClients.js +1 -1
  54. package/dist/tools/omada/listClients.js.map +1 -1
  55. package/dist/upstreams.d.ts +8 -2
  56. package/dist/upstreams.js +56 -3
  57. package/dist/upstreams.js.map +1 -1
  58. package/dist/utils/redact.js +1 -1
  59. package/dist/utils/redact.js.map +1 -1
  60. package/dist/version.d.ts +1 -1
  61. package/dist/version.js +1 -1
  62. package/package.json +7 -7
package/dist/upstreams.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Connects to the upstreams (Home Assistant, Omada, the local AI) at startup.
2
+ * Connects to the upstreams (Home Assistant, Omada, a Ruijie router, the local AI) at startup.
3
3
  *
4
4
  * An upstream that doesn't answer at startup is not fatal: its client is kept, its
5
5
  * tools stay registered (calls fail cleanly until it answers) and a background probe
@@ -8,12 +8,15 @@
8
8
  * during the 2026-10-17 NAS network outage) instead of serving /health and Omada.
9
9
  *
10
10
  * What stays fatal or disabling is configuration that can never work: a missing
11
- * HA_URL/HA_TOKEN or Omada setting, or an OMADA_SITE_ID the controller doesn't have.
11
+ * HA_URL/HA_TOKEN or Omada setting, or an OMADA_SITE_ID the controller doesn't have. A Ruijie
12
+ * router that refuses the login is never asked again (wrong passwords lock its login): its
13
+ * tools refuse until the setting is fixed and the server restarted.
12
14
  */
13
15
  import { HaClient } from './haClient/index.js';
14
16
  import { LocalAIClient } from './localAI/index.js';
15
17
  import { OmadaClient } from './omadaClient/index.js';
16
18
  import { checkConfiguredSite } from './omadaClient/site.js';
19
+ import { RuijieClient, RuijieError } from './ruijieClient/index.js';
17
20
  import { logger } from './utils/logger.js';
18
21
  export const DEFAULT_BACKOFF = { initialMs: 5_000, maxMs: 60_000 };
19
22
  /**
@@ -54,7 +57,7 @@ export function retryInBackground(name, attempt, backoff = DEFAULT_BACKOFF) {
54
57
  },
55
58
  };
56
59
  }
57
- const defaultFactories = {
60
+ export const defaultFactories = {
58
61
  ha: (config) => new HaClient({
59
62
  baseUrl: config.baseUrl,
60
63
  token: config.token,
@@ -69,6 +72,13 @@ const defaultFactories = {
69
72
  siteId: config.siteId,
70
73
  strictSsl: config.omadaStrictSsl,
71
74
  requestTimeout: config.requestTimeout,
75
+ serverAddresses: config.serverAddresses,
76
+ }),
77
+ ruijie: (config) => new RuijieClient({
78
+ baseUrl: config.ruijieBaseUrl,
79
+ password: config.ruijiePassword,
80
+ strictSsl: config.ruijieStrictSsl,
81
+ timeout: config.ruijieTimeout,
72
82
  }),
73
83
  ai: (config) => new LocalAIClient(config),
74
84
  };
@@ -157,6 +167,49 @@ export async function connectUpstreams(config, factories = defaultFactories, bac
157
167
  else {
158
168
  logger.info('Omada plugin disabled');
159
169
  }
170
+ // Ruijie / Reyee router
171
+ if (config.ruijiePluginEnabled) {
172
+ if (config.ruijieBaseUrl && config.ruijiePassword) {
173
+ let ruijieClient;
174
+ try {
175
+ ruijieClient = factories.ruijie(config);
176
+ const client = ruijieClient;
177
+ // A refused login is final (the client has switched itself off and logged why); only an
178
+ // unreachable router is tried again.
179
+ const check = async () => {
180
+ try {
181
+ const router = await client.check();
182
+ logger.info('Connected to Ruijie router', router);
183
+ }
184
+ catch (error) {
185
+ if (error instanceof RuijieError && (error.kind === 'refused' || error.kind === 'disabled'))
186
+ return;
187
+ throw error;
188
+ }
189
+ };
190
+ try {
191
+ await check();
192
+ }
193
+ catch (error) {
194
+ logger.warn('Ruijie router not reachable; its net_ tools stay registered and work once it answers. Retrying in the background', {
195
+ error: errorMessage(error),
196
+ });
197
+ probes.push(retryInBackground('Ruijie router', check, backoff));
198
+ }
199
+ }
200
+ catch (error) {
201
+ logger.warn('Ruijie client could not be created - Ruijie tools will be disabled', { error: errorMessage(error) });
202
+ ruijieClient = undefined;
203
+ }
204
+ upstreams.ruijieClient = ruijieClient;
205
+ }
206
+ else {
207
+ logger.warn('Ruijie plugin enabled but required config not set (RUIJIE_BASE_URL, RUIJIE_PASSWORD)');
208
+ }
209
+ }
210
+ else {
211
+ logger.info('Ruijie plugin disabled');
212
+ }
160
213
  // Local AI
161
214
  if (config.aiPluginEnabled) {
162
215
  if (config.aiProvider === 'none') {
@@ -1 +1 @@
1
- {"version":3,"file":"upstreams.js","sourceRoot":"","sources":["../src/upstreams.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"upstreams.js","sourceRoot":"","sources":["../src/upstreams.ts"],"names":[],"mappings":"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"}
@@ -31,7 +31,7 @@ const SECRET_NAME = /(^key$|password|passwd|pwd$|secret|token$|passphrase|presha
31
31
  const ACCOUNT_NAME = /^(user_?name|username|account)$/i;
32
32
  const ACCOUNT_SECTION = /(pppoe|l2tp|pptp|lte|manuallyconfig|apn|dialup|vpn)/i;
33
33
  /** Credentials inside URLs, e.g. /api/camera_proxy/camera.door?token=abc123 */
34
- const URL_SECRET = /([?&](?:access_token|token|key|password|secret)=)[^&#\s"]+/gi;
34
+ const URL_SECRET = /([?&](?:access_token|token|key|password|secret|auth|sid)=)[^&#\s"]+/gi;
35
35
  export function isSecretName(name) {
36
36
  return SECRET_NAME.test(name);
37
37
  }
@@ -1 +1 @@
1
- {"version":3,"file":"redact.js","sourceRoot":"","sources":["../../src/utils/redact.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,MAAM,CAAC,MAAM,QAAQ,GAAG,YAAY,CAAC;AAErC;;;GAGG;AACH,MAAM,WAAW,GACf,yLAAyL,CAAC;AAE5L;;;;GAIG;AACH,MAAM,YAAY,GAAG,kCAAkC,CAAC;AACxD,MAAM,eAAe,GAAG,sDAAsD,CAAC;AAE/E,+EAA+E;AAC/E,MAAM,UAAU,GAAG,8DAA8D,CAAC;AAElF,MAAM,UAAU,YAAY,CAAC,IAAY;IACvC,OAAO,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAChC,CAAC;AAED,4HAA4H;AAC5H,MAAM,UAAU,gBAAgB,CAAC,IAAY;IAC3C,OAAO,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACpC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAI,KAAQ,EAAE,UAAwC,EAAE;IACnF,OAAO,MAAM,CAAC,KAAK,EAAE,IAAI,OAAO,EAAE,EAAE,OAAO,CAAC,cAAc,KAAK,IAAI,CAAM,CAAC;AAC5E,CAAC;AAED,2EAA2E;AAC3E,SAAS,MAAM,CAAC,KAAc,EAAE,IAAqB,EAAE,gBAAyB;IAC9E,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,KAAK,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAClF,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAChD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;QACpB,OAAO,YAAY,CAAC;IACtB,CAAC;IACD,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAChB,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,gBAAgB,CAAC,CAAC,CAAC;IACnE,CAAC;IACD,MAAM,GAAG,GAA4B,EAAE,CAAC;IACxC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAgC,CAAC,EAAE,CAAC;QAC5E,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,gBAAgB,IAAI,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QACjF,GAAG,CAAC,GAAG,CAAC,GAAG,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,EAAE,IAAI,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,gBAAgB,IAAI,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IACjJ,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
1
+ {"version":3,"file":"redact.js","sourceRoot":"","sources":["../../src/utils/redact.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,MAAM,CAAC,MAAM,QAAQ,GAAG,YAAY,CAAC;AAErC;;;GAGG;AACH,MAAM,WAAW,GACf,yLAAyL,CAAC;AAE5L;;;;GAIG;AACH,MAAM,YAAY,GAAG,kCAAkC,CAAC;AACxD,MAAM,eAAe,GAAG,sDAAsD,CAAC;AAE/E,+EAA+E;AAC/E,MAAM,UAAU,GAAG,uEAAuE,CAAC;AAE3F,MAAM,UAAU,YAAY,CAAC,IAAY;IACvC,OAAO,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAChC,CAAC;AAED,4HAA4H;AAC5H,MAAM,UAAU,gBAAgB,CAAC,IAAY;IAC3C,OAAO,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACpC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAI,KAAQ,EAAE,UAAwC,EAAE;IACnF,OAAO,MAAM,CAAC,KAAK,EAAE,IAAI,OAAO,EAAE,EAAE,OAAO,CAAC,cAAc,KAAK,IAAI,CAAM,CAAC;AAC5E,CAAC;AAED,2EAA2E;AAC3E,SAAS,MAAM,CAAC,KAAc,EAAE,IAAqB,EAAE,gBAAyB;IAC9E,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,KAAK,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAClF,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAChD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;QACpB,OAAO,YAAY,CAAC;IACtB,CAAC;IACD,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAChB,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,gBAAgB,CAAC,CAAC,CAAC;IACnE,CAAC;IACD,MAAM,GAAG,GAA4B,EAAE,CAAC;IACxC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAgC,CAAC,EAAE,CAAC;QAC5E,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,gBAAgB,IAAI,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QACjF,GAAG,CAAC,GAAG,CAAC,GAAG,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,EAAE,IAAI,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,gBAAgB,IAAI,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IACjJ,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
package/dist/version.d.ts CHANGED
@@ -2,4 +2,4 @@
2
2
  * Package version - hardcoded at build time for reliability
3
3
  * Keep in sync with package.json version
4
4
  */
5
- export declare const VERSION = "2.4.7";
5
+ export declare const VERSION = "2.5.0";
package/dist/version.js CHANGED
@@ -2,5 +2,5 @@
2
2
  * Package version - hardcoded at build time for reliability
3
3
  * Keep in sync with package.json version
4
4
  */
5
- export const VERSION = '2.4.7';
5
+ export const VERSION = '2.5.0';
6
6
  //# sourceMappingURL=version.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@coffeerunhobby/mcp-ha-connect",
3
- "version": "2.4.7",
3
+ "version": "2.5.0",
4
4
  "description": "Smart home MCP server for Home Assistant plus Local AI integration",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -44,14 +44,15 @@
44
44
  "url": "https://github.com/coffeerunhobby/mcp-ha-connect/issues"
45
45
  },
46
46
  "dependencies": {
47
- "undici": "^6.26.0",
47
+ "@modelcontextprotocol/node": "^2.1.1",
48
+ "@modelcontextprotocol/server": "^2.3.1",
49
+ "undici": "^6.29.1",
48
50
  "ws": "^8.21.0",
49
- "zod": "^4.6.5",
50
- "@modelcontextprotocol/server": "^2.2.0",
51
- "@modelcontextprotocol/node": "^2.1.0"
51
+ "zod": "^4.6.7"
52
52
  },
53
53
  "devDependencies": {
54
54
  "@amiceli/vitest-cucumber": "^6.2.0",
55
+ "@modelcontextprotocol/client": "^2.3.1",
55
56
  "@types/node": "^22.10.5",
56
57
  "@types/ws": "^8.18.1",
57
58
  "@typescript-eslint/eslint-plugin": "^8.19.1",
@@ -62,8 +63,7 @@
62
63
  "tsx": "^4.19.2",
63
64
  "typescript": "^5.9.3",
64
65
  "typescript-eslint": "^8.52.0",
65
- "vitest": "^4.1.11",
66
- "@modelcontextprotocol/client": "^2.2.0"
66
+ "vitest": "^4.1.11"
67
67
  },
68
68
  "engines": {
69
69
  "node": ">=20.0.0"