@coffeerunhobby/mcp-ha-connect 2.5.2 → 2.5.3
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.
- package/README.md +5 -3
- package/dist/tools/ai/analyzeSensors.d.ts +1 -1
- package/dist/tools/ai/analyzeSensors.js +0 -6
- package/dist/tools/ai/analyzeSensors.js.map +1 -1
- package/dist/tools/ai/index.d.ts +1 -0
- package/dist/tools/ai/index.js +6 -1
- package/dist/tools/ai/index.js.map +1 -1
- package/dist/tools/index.js +1 -1
- package/dist/tools/index.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -319,6 +319,8 @@ the router's login: the Ruijie tools then refuse until the setting is fixed and
|
|
|
319
319
|
|
|
320
320
|
### AI Tools (1)
|
|
321
321
|
|
|
322
|
+
Registered only with `AI_PLUGIN_ENABLED=true` and an `AI_PROVIDER` other than `none`.
|
|
323
|
+
|
|
322
324
|
| Tool | Description |
|
|
323
325
|
|------|-------------|
|
|
324
326
|
| `analyzeSensors` | Analyze sensor data using AI (Ollama) to detect issues and provide recommendations |
|
|
@@ -370,7 +372,7 @@ the router's login: the Ruijie tools then refuse until the setting is fixed and
|
|
|
370
372
|
|
|
371
373
|
| Variable | Default | Description |
|
|
372
374
|
|----------|---------|-------------|
|
|
373
|
-
| `HA_PLUGIN_ENABLED` | `
|
|
375
|
+
| `HA_PLUGIN_ENABLED` | `false` | Enable Home Assistant plugin |
|
|
374
376
|
| `HA_STRICT_SSL` | `true` | Validate SSL certificates |
|
|
375
377
|
| `HA_TIMEOUT` | `30000` | API request timeout (ms) |
|
|
376
378
|
|
|
@@ -501,7 +503,7 @@ Clients only see the tools they may use: `tools/list` is filtered by the caller'
|
|
|
501
503
|
|
|
502
504
|
| Variable | Default | Description |
|
|
503
505
|
|----------|---------|-------------|
|
|
504
|
-
| `AI_PLUGIN_ENABLED` | `
|
|
506
|
+
| `AI_PLUGIN_ENABLED` | `false` | Enable AI plugin (`analyzeSensors` is registered only when it is on and `AI_PROVIDER` isn't `none`) |
|
|
505
507
|
| `AI_PROVIDER` | `ollama` | AI provider: `ollama`, `openai`, or `none` |
|
|
506
508
|
| `AI_URL` | `http://localhost:11434` | AI server URL (Ollama) |
|
|
507
509
|
| `AI_MODEL` | `qwen3:14b` | AI model name |
|
|
@@ -884,7 +886,7 @@ Add host gateway:
|
|
|
884
886
|
|
|
885
887
|
1. **Verify Ollama is running** - `curl http://your-ollama-url:11434/api/tags`
|
|
886
888
|
2. **Check model is available** - Ensure the model in `AI_MODEL` (default `qwen3:14b`) is pulled: `ollama pull qwen3:14b`
|
|
887
|
-
3. **Set AI_PROVIDER** -
|
|
889
|
+
3. **Set AI_PLUGIN_ENABLED and AI_PROVIDER** - `AI_PLUGIN_ENABLED=true` and `AI_PROVIDER=ollama` (not `none`); otherwise `analyzeSensors` isn't registered at all
|
|
888
890
|
|
|
889
891
|
## Development
|
|
890
892
|
|
|
@@ -3,4 +3,4 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import type { McpServer } from '@modelcontextprotocol/server';
|
|
5
5
|
import type { LocalAIClient } from '../../localAI/index.js';
|
|
6
|
-
export declare function registerAnalyzeSensorsTool(server: McpServer, aiClient
|
|
6
|
+
export declare function registerAnalyzeSensorsTool(server: McpServer, aiClient: LocalAIClient): void;
|
|
@@ -7,12 +7,6 @@ export function registerAnalyzeSensorsTool(server, aiClient) {
|
|
|
7
7
|
description: 'Analyze sensor data using AI (Ollama) to detect issues and provide recommendations.',
|
|
8
8
|
inputSchema: analyzeSensorsSchema,
|
|
9
9
|
}, wrapToolHandler('analyzeSensors', async ({ sensors }) => {
|
|
10
|
-
if (!aiClient) {
|
|
11
|
-
return toToolResult({
|
|
12
|
-
error: 'AI client not configured',
|
|
13
|
-
message: 'AI analysis requires AI_URL to be set (or legacy OLLAMA_URL)',
|
|
14
|
-
}, true);
|
|
15
|
-
}
|
|
16
10
|
if (!sensors || typeof sensors !== 'object') {
|
|
17
11
|
return toToolResult({ error: 'sensors object is required' }, true);
|
|
18
12
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analyzeSensors.js","sourceRoot":"","sources":["../../../src/tools/ai/analyzeSensors.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,oBAAoB,EAAE,YAAY,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAK/F,MAAM,UAAU,0BAA0B,CAAC,MAAiB,EAAE,
|
|
1
|
+
{"version":3,"file":"analyzeSensors.js","sourceRoot":"","sources":["../../../src/tools/ai/analyzeSensors.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,oBAAoB,EAAE,YAAY,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAK/F,MAAM,UAAU,0BAA0B,CAAC,MAAiB,EAAE,QAAuB;IACnF,MAAM,CAAC,YAAY,CACjB,gBAAgB,EAChB;QACE,WAAW,EAAE,qFAAqF;QAClG,WAAW,EAAE,oBAAoB;KAClC,EACD,eAAe,CAAC,gBAAgB,EAAE,KAAK,EAAE,EAAE,OAAO,EAAsB,EAAE,EAAE;QAC1E,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAC5C,OAAO,YAAY,CAAC,EAAE,KAAK,EAAE,4BAA4B,EAAE,EAAE,IAAI,CAAC,CAAC;QACrE,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,cAAc,CAAC,OAAqB,CAAC,CAAC;QACtE,OAAO,YAAY,CAAC,QAAQ,CAAC,CAAC;IAChC,CAAC,EAAE,UAAU,CAAC,EAAE,CAAC,CAClB,CAAC;AACJ,CAAC"}
|
package/dist/tools/ai/index.d.ts
CHANGED
|
@@ -3,4 +3,5 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import type { McpServer } from '@modelcontextprotocol/server';
|
|
5
5
|
import type { LocalAIClient } from '../../localAI/index.js';
|
|
6
|
+
/** Registers nothing without an AI client (AI_PLUGIN_ENABLED=false or AI_PROVIDER=none). */
|
|
6
7
|
export declare function registerAITools(server: McpServer, aiClient?: LocalAIClient): number;
|
package/dist/tools/ai/index.js
CHANGED
|
@@ -3,12 +3,17 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import { logger } from '../../utils/logger.js';
|
|
5
5
|
import { registerAnalyzeSensorsTool } from './analyzeSensors.js';
|
|
6
|
+
/** Registers nothing without an AI client (AI_PLUGIN_ENABLED=false or AI_PROVIDER=none). */
|
|
6
7
|
export function registerAITools(server, aiClient) {
|
|
8
|
+
if (!aiClient) {
|
|
9
|
+
logger.debug('AI plugin off - no AI tools registered');
|
|
10
|
+
return 0;
|
|
11
|
+
}
|
|
7
12
|
logger.debug('Registering AI tools');
|
|
8
13
|
let toolCount = 0;
|
|
9
14
|
registerAnalyzeSensorsTool(server, aiClient);
|
|
10
15
|
toolCount += 1;
|
|
11
|
-
logger.info('AI tools registered', { toolCount
|
|
16
|
+
logger.info('AI tools registered', { toolCount });
|
|
12
17
|
return toolCount;
|
|
13
18
|
}
|
|
14
19
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/ai/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAE/C,OAAO,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AAEjE,MAAM,UAAU,eAAe,CAAC,MAAiB,EAAE,QAAwB;IACzE,MAAM,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;IACrC,IAAI,SAAS,GAAG,CAAC,CAAC;IAElB,0BAA0B,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC7C,SAAS,IAAI,CAAC,CAAC;IAEf,MAAM,CAAC,IAAI,CAAC,qBAAqB,EAAE,EAAE,SAAS,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/ai/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAE/C,OAAO,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AAEjE,4FAA4F;AAC5F,MAAM,UAAU,eAAe,CAAC,MAAiB,EAAE,QAAwB;IACzE,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC;QACvD,OAAO,CAAC,CAAC;IACX,CAAC;IACD,MAAM,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;IACrC,IAAI,SAAS,GAAG,CAAC,CAAC;IAElB,0BAA0B,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC7C,SAAS,IAAI,CAAC,CAAC;IAEf,MAAM,CAAC,IAAI,CAAC,qBAAqB,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;IAClD,OAAO,SAAS,CAAC;AACnB,CAAC"}
|
package/dist/tools/index.js
CHANGED
|
@@ -37,7 +37,7 @@ export function registerAllTools(options) {
|
|
|
37
37
|
netControllers.push(new RuijieNetworkController(ruijieClient));
|
|
38
38
|
// Vendor-neutral net_* tools, through every configured adapter (same in eager and graph mode).
|
|
39
39
|
totalTools += registerNetTools(server, netControllers);
|
|
40
|
-
// AI tools (
|
|
40
|
+
// AI tools (only with an AI client)
|
|
41
41
|
const aiToolCount = registerAITools(server, aiClient);
|
|
42
42
|
totalTools += aiToolCount;
|
|
43
43
|
// Infra tools (only when REST actions are configured)
|
package/dist/tools/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAOH,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C,wCAAwC;AACxC,OAAO,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAA8B,MAAM,kBAAkB,CAAC;AAClF,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAEpE,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAmB,MAAM,kBAAkB,CAAC;AACvE,OAAO,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;AAkBzE;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,OAA6B;IAC5D,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,YAAY,EAAE,QAAQ,EAAE,WAAW,EAAE,oBAAoB,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC;IAC7H,MAAM,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;IAEtC,IAAI,UAAU,GAAG,CAAC,CAAC;IAEnB,4CAA4C;IAC5C,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,WAAW,GAAG,0BAA0B,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QACjE,UAAU,IAAI,WAAW,CAAC;QAC1B,IAAI,cAAc,EAAE,CAAC;YACnB,UAAU,IAAI,0BAA0B,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;QACnE,CAAC;IACH,CAAC;IAED,mCAAmC;IACnC,MAAM,cAAc,GAAwB,EAAE,CAAC;IAC/C,IAAI,WAAW,EAAE,CAAC;QAChB,MAAM,cAAc,GAAG,kBAAkB,CAAC,MAAM,EAAE,WAAW,EAAE,oBAAoB,CAAC,CAAC;QACrF,UAAU,IAAI,cAAc,CAAC;QAC7B,cAAc,CAAC,IAAI,CAAC,IAAI,sBAAsB,CAAC,WAAW,EAAE,EAAE,cAAc,EAAE,WAAW,CAAC,cAAc,EAAE,WAAW,EAAE,WAAW,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC;IACzJ,CAAC;IACD,IAAI,YAAY;QAAE,cAAc,CAAC,IAAI,CAAC,IAAI,uBAAuB,CAAC,YAAY,CAAC,CAAC,CAAC;IACjF,+FAA+F;IAC/F,UAAU,IAAI,gBAAgB,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAEvD,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAOH,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C,wCAAwC;AACxC,OAAO,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAA8B,MAAM,kBAAkB,CAAC;AAClF,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAEpE,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAmB,MAAM,kBAAkB,CAAC;AACvE,OAAO,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;AAkBzE;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,OAA6B;IAC5D,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,YAAY,EAAE,QAAQ,EAAE,WAAW,EAAE,oBAAoB,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC;IAC7H,MAAM,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;IAEtC,IAAI,UAAU,GAAG,CAAC,CAAC;IAEnB,4CAA4C;IAC5C,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,WAAW,GAAG,0BAA0B,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QACjE,UAAU,IAAI,WAAW,CAAC;QAC1B,IAAI,cAAc,EAAE,CAAC;YACnB,UAAU,IAAI,0BAA0B,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;QACnE,CAAC;IACH,CAAC;IAED,mCAAmC;IACnC,MAAM,cAAc,GAAwB,EAAE,CAAC;IAC/C,IAAI,WAAW,EAAE,CAAC;QAChB,MAAM,cAAc,GAAG,kBAAkB,CAAC,MAAM,EAAE,WAAW,EAAE,oBAAoB,CAAC,CAAC;QACrF,UAAU,IAAI,cAAc,CAAC;QAC7B,cAAc,CAAC,IAAI,CAAC,IAAI,sBAAsB,CAAC,WAAW,EAAE,EAAE,cAAc,EAAE,WAAW,CAAC,cAAc,EAAE,WAAW,EAAE,WAAW,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC;IACzJ,CAAC;IACD,IAAI,YAAY;QAAE,cAAc,CAAC,IAAI,CAAC,IAAI,uBAAuB,CAAC,YAAY,CAAC,CAAC,CAAC;IACjF,+FAA+F;IAC/F,UAAU,IAAI,gBAAgB,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAEvD,oCAAoC;IACpC,MAAM,WAAW,GAAG,eAAe,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACtD,UAAU,IAAI,WAAW,CAAC;IAE1B,sDAAsD;IACtD,UAAU,IAAI,kBAAkB,CAAC,MAAM,EAAE,WAAW,IAAI,EAAE,CAAC,CAAC;IAE5D,MAAM,CAAC,IAAI,CAAC,mCAAmC,EAAE;QAC/C,UAAU;QACV,SAAS,EAAE,CAAC,CAAC,QAAQ;QACrB,YAAY,EAAE,CAAC,CAAC,WAAW;QAC3B,aAAa,EAAE,CAAC,CAAC,YAAY;QAC7B,SAAS,EAAE,CAAC,CAAC,QAAQ;QACrB,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC;KACxD,CAAC,CAAC;AACL,CAAC;AAED,6BAA6B;AAC7B,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAExE,qEAAqE;AACrE,OAAO,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC"}
|
package/dist/version.d.ts
CHANGED
package/dist/version.js
CHANGED