iobroker.mcp 0.1.4 → 0.2.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.
package/README.md CHANGED
@@ -47,9 +47,11 @@ The adapter can be configured through the ioBroker admin interface using JSONCon
47
47
  When running as a web extension and no user is set here, the host `web` instance's default user is used.
48
48
 
49
49
  ### Permissions
50
- - **Allow setting states**: Allow MCP clients to write state values (the `set_state` tool). Default: **on**.
51
- - **Allow object/file changes**: Allow MCP clients to create/modify objects and write files (the `set_object`
52
- and `write_file` tools). Default: **off**. When off, these tools are not exposed at all.
50
+ - **Allow setting states**: Allow MCP clients to write state values (the `set_state` and `set_states` tools).
51
+ Default: **on**.
52
+ - **Allow object/file changes**: Allow MCP clients to create/modify/delete objects and files (the `set_object`,
53
+ `delete_object`, `create_state`, `create_scene`, `write_file`, `delete_file`, `rename_file` and `mkdir`
54
+ tools). Default: **off**. When off, these tools are not exposed at all.
53
55
 
54
56
  ### SSL/TLS Configuration
55
57
  - **Enable HTTPS**: Enable HTTPS/SSL for secure connections
@@ -67,27 +69,37 @@ state (tracked via the `Mcp-Session-Id` header). Point your MCP client at:
67
69
 
68
70
  ### Available tools
69
71
 
70
- | Tool | Description |
71
- |------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------|
72
- | `get_states` | Retrieve the current value of one or multiple states |
73
- | `get_object` | Read a single object by its ID |
74
- | `search_objects` | Search objects/states by keyword, role or room |
75
- | `list_devices` | List detected devices grouped by room (uses the ioBroker type-detector to expose functional devices with named controls); optional `language` and `room` filter |
76
- | `list_instances` | List adapter instances with their status |
77
- | `list_hosts` | List ioBroker hosts with their status |
78
- | `list_rooms` | List rooms (`enum.rooms.*`) with localized names and member details; optional `language` and `withIcons` |
79
- | `list_functions` | List functions (`enum.functions.*`) with localized names and member details; optional `language` and `withIcons` |
80
- | `history_query` | Query historical values (requires a history adapter) |
81
- | `read_file` | Read a file from an adapter file storage (optional base64) |
82
- | `get_logs` | Retrieve system logs |
83
- | `write_log` | Write a message to the ioBroker log |
84
- | `system_info` | Get system and js-controller information |
85
- | `set_state` | Set the value of a state (value coerced to the state type) — requires *Allow setting states* |
86
- | `set_object` | Create/update an object (merges common/native) requires *Allow object/file changes* |
87
- | `write_file` | Write a file to an adapter file storage — requires *Allow object/file changes* |
88
-
89
- All object/state access runs with the permissions of the configured **Default User**. The write tools
90
- (`set_state`, `set_object`, `write_file`) are only registered when their respective permission option is enabled.
72
+ | Tool | Description |
73
+ |------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------|
74
+ | `get_states` | Retrieve the current value of one or multiple states; IDs may contain wildcards (e.g. `hue.0.*.brightness`) |
75
+ | `get_object` | Read a single object by its ID |
76
+ | `search_objects` | Search objects/states by keyword (matched against ID and name); optional filters for object `type`, `role`, `room` and source `adapter` instance |
77
+ | `list_devices` | List detected devices grouped by room (uses the ioBroker type-detector to expose functional devices with named controls); optional `language` and `room` filter |
78
+ | `list_instances` | List adapter instances with their status |
79
+ | `list_adapters` | List installed adapters with metadata (version, title, description, keywords) |
80
+ | `list_hosts` | List ioBroker hosts with their status |
81
+ | `list_rooms` | List rooms (`enum.rooms.*`) with localized names and member details; optional `language` and `withIcons` |
82
+ | `list_functions` | List functions (`enum.functions.*`) with localized names and member details; optional `language` and `withIcons` |
83
+ | `history_query` | Query historical values (requires a history adapter); aggregations: `raw`, `min`, `max`, `avg`, `sum`, `count`, `minmax`, `percentile`, `quantile`, `integral` |
84
+ | `read_file` | Read a file from an adapter file storage (optional base64) |
85
+ | `list_files` | List a directory in an adapter file storage |
86
+ | `file_exists` | Check whether a file exists in an adapter file storage |
87
+ | `get_logs` | Retrieve system logs |
88
+ | `write_log` | Write a message to the ioBroker log |
89
+ | `system_info` | Get system and js-controller information |
90
+ | `set_state` | Set the value of a state (value coerced to the state type) — requires *Allow setting states* |
91
+ | `set_states` | Set multiple states in one call (for scenes/group actions like "all lights off") — requires *Allow setting states* |
92
+ | `set_object` | Create/update an object (merges common/native) requires *Allow object/file changes* |
93
+ | `delete_object` | Delete an object, optionally with all children — requires *Allow object/file changes* |
94
+ | `create_state` | Create a new state object with type/role/unit/min/max and optional initial value — requires *Allow object/file changes* |
95
+ | `create_scene` | Create or update a scene for the ioBroker `scenes` adapter (state/value pairs applied together) — requires *Allow object/file changes* |
96
+ | `write_file` | Write a file to an adapter file storage — requires *Allow object/file changes* |
97
+ | `delete_file` | Delete a file from an adapter file storage — requires *Allow object/file changes* |
98
+ | `rename_file` | Rename/move a file within the same adapter file storage — requires *Allow object/file changes* |
99
+ | `mkdir` | Create a directory in an adapter file storage — requires *Allow object/file changes* |
100
+
101
+ All object/state access runs with the permissions of the configured **Default User**. The write tools are only
102
+ registered when their respective permission option is enabled.
91
103
 
92
104
  ### Resources & live updates (SSE)
93
105
 
@@ -121,6 +133,19 @@ tools rather than as subscribable resources.)
121
133
  Placeholder for the next version (at the beginning of the line):
122
134
  ### **WORK IN PROGRESS**
123
135
  -->
136
+ ### 0.2.0 (2026-06-11)
137
+ * (@GermanBluefox) Many changes: see the previous changelog entry
138
+
139
+ ### 0.1.4 (2026-06-11)
140
+ * (@GermanBluefox) Added wildcard support to `get_states` (e.g. `hue.0.*.brightness`)
141
+ * (@GermanBluefox) Added `set_states` for writing multiple states in one call (scenes/group actions)
142
+ * (@GermanBluefox) Added `delete_object` and `create_state` tools (gated by *Allow object/file changes*)
143
+ * (@GermanBluefox) Added `create_scene` tool that creates scenes for the ioBroker `scenes` adapter
144
+ * (@GermanBluefox) Added file management tools: `list_files`, `file_exists`, `delete_file`, `rename_file`, `mkdir`
145
+ * (@GermanBluefox) Added `list_adapters` to list installed adapters with metadata
146
+ * (@GermanBluefox) Extended `search_objects` with `type` and `adapter` filters; the keyword now also matches object names
147
+ * (@GermanBluefox) Extended `history_query` with the aggregations `count`, `minmax`, `percentile`, `quantile` and `integral`
148
+
124
149
  ### 0.1.4 (2026-05-28)
125
150
  * (@GermanBluefox) Initial development
126
151
 
@@ -21,6 +21,11 @@ const AGG_MAP = {
21
21
  max: 'max',
22
22
  avg: 'average',
23
23
  sum: 'total',
24
+ count: 'count',
25
+ minmax: 'minmax',
26
+ percentile: 'percentile',
27
+ quantile: 'quantile',
28
+ integral: 'integral',
24
29
  };
25
30
  const WEB_EXTENSION_PREFIX = 'mcp/';
26
31
  /** Languages offered for localized names. */
@@ -59,7 +64,9 @@ class McpServer {
59
64
  constructor(server, webSettings, adapter, instanceSettings, app) {
60
65
  this.app = app;
61
66
  this.adapter = adapter;
62
- this.config = instanceSettings ? instanceSettings.native : adapter.config;
67
+ this.config = instanceSettings
68
+ ? instanceSettings.native
69
+ : adapter.config;
63
70
  this.namespace = instanceSettings
64
71
  ? instanceSettings._id.substring('system.adapter.'.length)
65
72
  : this.adapter.namespace;
@@ -328,8 +335,9 @@ class McpServer {
328
335
  return { content: [{ type: 'text', text: JSON.stringify({ ok: false, error: message }) }], isError: true };
329
336
  };
330
337
  server.registerTool('get_states', {
331
- description: 'Retrieve the current value of one or multiple states',
332
- inputSchema: { ids: zod_1.z.array(zod_1.z.string()).describe('Array of state IDs') },
338
+ description: 'Retrieve the current value of one or multiple states. IDs may contain wildcards, ' +
339
+ 'e.g. "hue.0.*.brightness" expands to all matching states.',
340
+ inputSchema: { ids: zod_1.z.array(zod_1.z.string()).describe('Array of state IDs (wildcards "*" allowed)') },
333
341
  }, async ({ ids }) => {
334
342
  try {
335
343
  return ok({ ok: true, data: { states: await this.getStates(ids) } });
@@ -357,6 +365,26 @@ class McpServer {
357
365
  return fail(e);
358
366
  }
359
367
  });
368
+ server.registerTool('set_states', {
369
+ description: 'Set multiple states in one call (e.g. for scenes or group actions like "all lights off"). ' +
370
+ 'Each value is coerced to its state type. Failures of single states do not abort the rest.',
371
+ inputSchema: {
372
+ states: zod_1.z
373
+ .array(zod_1.z.object({
374
+ id: zod_1.z.string().describe('State ID'),
375
+ value: zod_1.z.any().describe('New value (type depends on the state)'),
376
+ ack: zod_1.z.boolean().optional().describe('Acknowledge flag (default false)'),
377
+ }))
378
+ .describe('Array of state/value pairs to write'),
379
+ },
380
+ }, async ({ states }) => {
381
+ try {
382
+ return ok({ ok: true, data: { results: await this.setStates(states) } });
383
+ }
384
+ catch (e) {
385
+ return fail(e);
386
+ }
387
+ });
360
388
  }
361
389
  server.registerTool('get_logs', {
362
390
  description: 'Retrieve system logs',
@@ -383,11 +411,17 @@ class McpServer {
383
411
  }
384
412
  });
385
413
  server.registerTool('search_objects', {
386
- description: 'Search objects and states by keywords',
414
+ description: 'Search objects and states by keyword (matched against ID and name) with optional ' +
415
+ 'filters for object type, role, room and source adapter instance',
387
416
  inputSchema: {
388
- query: zod_1.z.string().describe('Keyword to search for'),
417
+ query: zod_1.z.string().describe('Keyword to search for in object IDs and names'),
418
+ type: zod_1.z
419
+ .string()
420
+ .optional()
421
+ .describe('Filter by object type, e.g. state, channel, device, enum, script, instance'),
389
422
  role: zod_1.z.string().optional(),
390
423
  room: zod_1.z.string().optional(),
424
+ adapter: zod_1.z.string().optional().describe('Filter by source adapter instance, e.g. "hue.0"'),
391
425
  limit: zod_1.z.number().int().default(50),
392
426
  },
393
427
  }, async (args) => {
@@ -422,7 +456,32 @@ class McpServer {
422
456
  id: zod_1.z.string(),
423
457
  from: zod_1.z.string().optional().describe('Start time (ISO8601)'),
424
458
  to: zod_1.z.string().optional().describe('End time (ISO8601)'),
425
- agg: zod_1.z.enum(['raw', 'min', 'max', 'avg', 'sum']).default('raw'),
459
+ agg: zod_1.z
460
+ .enum([
461
+ 'raw',
462
+ 'min',
463
+ 'max',
464
+ 'avg',
465
+ 'sum',
466
+ 'count',
467
+ 'minmax',
468
+ 'percentile',
469
+ 'quantile',
470
+ 'integral',
471
+ ])
472
+ .default('raw'),
473
+ percentile: zod_1.z
474
+ .number()
475
+ .min(0)
476
+ .max(100)
477
+ .optional()
478
+ .describe('Percentile (0-100), only used with agg=percentile'),
479
+ quantile: zod_1.z
480
+ .number()
481
+ .min(0)
482
+ .max(1)
483
+ .optional()
484
+ .describe('Quantile (0-1), only used with agg=quantile'),
426
485
  interval: zod_1.z.string().optional().describe('Aggregation interval, e.g. 15m, 1h'),
427
486
  limit: zod_1.z.number().int().default(1000),
428
487
  },
@@ -450,6 +509,23 @@ class McpServer {
450
509
  return fail(e);
451
510
  }
452
511
  });
512
+ server.registerTool('list_adapters', {
513
+ description: 'List all installed adapters with metadata (version, title, description, keywords). ' +
514
+ 'Unlike list_instances this lists what is installed, not what is running.',
515
+ inputSchema: {
516
+ language: zod_1.z
517
+ .enum(LANGUAGES)
518
+ .optional()
519
+ .describe('Language for title/description (defaults to the adapter language)'),
520
+ },
521
+ }, async ({ language }) => {
522
+ try {
523
+ return ok({ ok: true, data: { adapters: await this.listAdapters(language) } });
524
+ }
525
+ catch (e) {
526
+ return fail(e);
527
+ }
528
+ });
453
529
  const enumInput = {
454
530
  language: zod_1.z.enum(LANGUAGES).optional().describe('Language for names (defaults to the adapter language)'),
455
531
  withIcons: zod_1.z.boolean().optional().describe('Include the icons of the enum and its members'),
@@ -502,6 +578,32 @@ class McpServer {
502
578
  return fail(e);
503
579
  }
504
580
  });
581
+ server.registerTool('list_files', {
582
+ description: 'List a directory in an adapter file storage, e.g. "vis-2.0/main" or "0_userdata.0"',
583
+ inputSchema: { path: zod_1.z.string().describe('Path as "<adapter>[/<dir>]"') },
584
+ }, async ({ path }) => {
585
+ try {
586
+ return ok({ ok: true, data: { path, files: await this.listFiles(path) } });
587
+ }
588
+ catch (e) {
589
+ return fail(e);
590
+ }
591
+ });
592
+ server.registerTool('file_exists', {
593
+ description: 'Check whether a file exists in an adapter file storage',
594
+ inputSchema: { path: zod_1.z.string().describe('Path as "<adapter>/<dir>/<file>"') },
595
+ }, async ({ path }) => {
596
+ try {
597
+ const { adapterName, fileName } = McpServer.parseFilePath(path);
598
+ const exists = await this.adapter.fileExistsAsync(adapterName, fileName, {
599
+ user: this.defaultUser,
600
+ });
601
+ return ok({ ok: true, data: { path, exists: !!exists } });
602
+ }
603
+ catch (e) {
604
+ return fail(e);
605
+ }
606
+ });
505
607
  // Always-on log writing (does not change states or objects).
506
608
  server.registerTool('write_log', {
507
609
  description: 'Write a message to the ioBroker log',
@@ -538,6 +640,73 @@ class McpServer {
538
640
  return fail(e);
539
641
  }
540
642
  });
643
+ server.registerTool('delete_object', {
644
+ description: 'Delete an ioBroker object (and optionally all its children). ' +
645
+ 'Be careful: deleting objects that were not created by the user can break adapters.',
646
+ inputSchema: {
647
+ id: zod_1.z.string().describe('Object ID'),
648
+ recursive: zod_1.z.boolean().optional().describe('Also delete all child objects'),
649
+ },
650
+ }, async ({ id, recursive }) => {
651
+ try {
652
+ await this.deleteObject(id, recursive);
653
+ return ok({ ok: true, data: { id, deleted: true } });
654
+ }
655
+ catch (e) {
656
+ return fail(e);
657
+ }
658
+ });
659
+ server.registerTool('create_state', {
660
+ description: 'Create a new state object (e.g. under "0_userdata.0."). Fails if the object already ' +
661
+ 'exists - use set_object to modify existing objects.',
662
+ inputSchema: {
663
+ id: zod_1.z.string().describe('Full state ID, e.g. "0_userdata.0.myState"'),
664
+ name: zod_1.z.string().optional().describe('Display name (defaults to the last ID segment)'),
665
+ type: zod_1.z
666
+ .enum(['boolean', 'number', 'string', 'array', 'object', 'mixed'])
667
+ .default('mixed')
668
+ .describe('Value type of the state'),
669
+ role: zod_1.z.string().default('state').describe('Role, e.g. switch.light, value.temperature'),
670
+ read: zod_1.z.boolean().default(true),
671
+ write: zod_1.z.boolean().default(true),
672
+ unit: zod_1.z.string().optional(),
673
+ min: zod_1.z.number().optional(),
674
+ max: zod_1.z.number().optional(),
675
+ step: zod_1.z.number().optional(),
676
+ def: zod_1.z.any().optional().describe('Initial value (written with ack=true)'),
677
+ desc: zod_1.z.string().optional().describe('Description'),
678
+ },
679
+ }, async (args) => {
680
+ try {
681
+ return ok({ ok: true, data: await this.createState(args) });
682
+ }
683
+ catch (e) {
684
+ return fail(e);
685
+ }
686
+ });
687
+ server.registerTool('create_scene', {
688
+ description: 'Create or update a scene for the ioBroker "scenes" adapter: a named collection of ' +
689
+ 'state/value pairs applied together (e.g. "movie night" dims lights and closes blinds). ' +
690
+ 'Activate the scene by setting its state to true. Requires an installed scene instance.',
691
+ inputSchema: {
692
+ name: zod_1.z.string().describe('Scene name, becomes part of the ID (e.g. "movie_night")'),
693
+ members: zod_1.z
694
+ .array(zod_1.z.object({
695
+ id: zod_1.z.string().describe('State ID to set'),
696
+ value: zod_1.z.any().describe('Value applied when the scene is activated'),
697
+ }))
698
+ .describe('State/value pairs that define the scene'),
699
+ instance: zod_1.z.string().optional().describe('Scene adapter instance (default "scene.0")'),
700
+ description: zod_1.z.string().optional(),
701
+ },
702
+ }, async (args) => {
703
+ try {
704
+ return ok({ ok: true, data: await this.createScene(args) });
705
+ }
706
+ catch (e) {
707
+ return fail(e);
708
+ }
709
+ });
541
710
  server.registerTool('write_file', {
542
711
  description: 'Write a file to an adapter file storage, e.g. "vis-2.0/main/vis-views.json"',
543
712
  inputSchema: {
@@ -554,6 +723,51 @@ class McpServer {
554
723
  return fail(e);
555
724
  }
556
725
  });
726
+ server.registerTool('delete_file', {
727
+ description: 'Delete a file from an adapter file storage',
728
+ inputSchema: { path: zod_1.z.string().describe('Path as "<adapter>/<dir>/<file>"') },
729
+ }, async ({ path }) => {
730
+ try {
731
+ const { adapterName, fileName } = McpServer.parseFilePath(path);
732
+ await this.adapter.delFileAsync(adapterName, fileName, { user: this.defaultUser });
733
+ return ok({ ok: true, data: { path, deleted: true } });
734
+ }
735
+ catch (e) {
736
+ return fail(e);
737
+ }
738
+ });
739
+ server.registerTool('rename_file', {
740
+ description: 'Rename or move a file/directory within the same adapter file storage, ' +
741
+ 'e.g. "vis-2.0/main/a.json" -> "vis-2.0/backup/a.json"',
742
+ inputSchema: {
743
+ path: zod_1.z.string().describe('Current path as "<adapter>/<dir>/<file>"'),
744
+ new_path: zod_1.z.string().describe('New path as "<adapter>/<dir>/<file>" (same adapter)'),
745
+ },
746
+ }, async ({ path, new_path }) => {
747
+ try {
748
+ await this.renameFile(path, new_path);
749
+ return ok({ ok: true, data: { path: new_path } });
750
+ }
751
+ catch (e) {
752
+ return fail(e);
753
+ }
754
+ });
755
+ server.registerTool('mkdir', {
756
+ description: 'Create a directory in an adapter file storage, e.g. "0_userdata.0/my-folder"',
757
+ inputSchema: { path: zod_1.z.string().describe('Path as "<adapter>/<dir>"') },
758
+ }, async ({ path }) => {
759
+ try {
760
+ const { adapterName, dirName } = McpServer.parseDirPath(path);
761
+ if (!dirName) {
762
+ throw new Error('Path must contain a directory after the adapter, e.g. "0_userdata.0/my-folder"');
763
+ }
764
+ await this.adapter.mkdirAsync(adapterName, dirName, { user: this.defaultUser });
765
+ return ok({ ok: true, data: { path } });
766
+ }
767
+ catch (e) {
768
+ return fail(e);
769
+ }
770
+ });
557
771
  }
558
772
  // --- Resources: expose states and objects via the canonical ioBroker URI scheme ---
559
773
  // States as `iobstate://<id>`, objects as `iobobject://<id>`. On change the server pushes a
@@ -619,20 +833,31 @@ class McpServer {
619
833
  // ---------------------------------------------------------------------
620
834
  // Tool implementations (return plain data; the wrappers serialize them)
621
835
  // ---------------------------------------------------------------------
836
+ /** Build the result entry for one state. */
837
+ static stateEntry(id, state) {
838
+ if (!state) {
839
+ return { id, value: null, ack: false, ts: Date.now() };
840
+ }
841
+ const entry = { id, value: state.val, ack: state.ack, ts: state.ts };
842
+ if (state.lc !== state.ts) {
843
+ entry.lc = state.lc;
844
+ }
845
+ return entry;
846
+ }
622
847
  async getStates(ids) {
623
848
  const states = [];
624
849
  for (const id of ids) {
625
850
  try {
626
- const state = await this.adapter.getForeignStateAsync(id, { user: this.defaultUser });
627
- if (state) {
628
- const entry = { id, value: state.val, ack: state.ack, ts: state.ts };
629
- if (state.lc !== state.ts) {
630
- entry.lc = state.lc;
851
+ if (id.includes('*')) {
852
+ // Wildcard pattern: expand to all matching states.
853
+ const matches = await this.adapter.getForeignStatesAsync(id, { user: this.defaultUser });
854
+ for (const matchId of Object.keys(matches || {})) {
855
+ states.push(McpServer.stateEntry(matchId, matches[matchId]));
631
856
  }
632
- states.push(entry);
633
857
  }
634
858
  else {
635
- states.push({ id, value: null, ack: false, ts: Date.now() });
859
+ const state = await this.adapter.getForeignStateAsync(id, { user: this.defaultUser });
860
+ states.push(McpServer.stateEntry(id, state));
636
861
  }
637
862
  }
638
863
  catch (e) {
@@ -647,6 +872,20 @@ class McpServer {
647
872
  }
648
873
  return states;
649
874
  }
875
+ /** Write multiple states; failures of single states are reported per item and do not abort the rest. */
876
+ async setStates(items) {
877
+ const results = [];
878
+ for (const item of items) {
879
+ try {
880
+ const written = await this.setState(item.id, item.value, item.ack ?? false);
881
+ results.push({ id: item.id, value: written });
882
+ }
883
+ catch (e) {
884
+ results.push({ id: item.id, error: e instanceof Error ? e.message : String(e) });
885
+ }
886
+ }
887
+ return results;
888
+ }
650
889
  getLogs(params) {
651
890
  return new Promise((resolve, reject) => {
652
891
  const message = { data: { size: params.limit || 200 } };
@@ -697,17 +936,22 @@ class McpServer {
697
936
  };
698
937
  }
699
938
  async searchObjects(params) {
700
- const { query = '', role, room, limit = 100 } = params;
939
+ const { query = '', type, role, room, adapter, limit = 100 } = params;
701
940
  const result = await this.adapter.getObjectListAsync({
702
941
  startkey: '',
703
942
  endkey: '\u9999',
704
943
  }, { sorted: true, user: this.defaultUser });
705
944
  const allObjects = result.rows;
706
945
  const roomMembers = room ? await this.getEnumMembers('enum.rooms.', room) : null;
946
+ const needle = query.toLowerCase();
707
947
  const results = [];
708
948
  for (const obj of allObjects) {
709
949
  const o = obj.value;
710
- if (query && !obj.value._id.toLowerCase().includes(query.toLowerCase())) {
950
+ const name = this.getName(o?.common?.name);
951
+ if (needle && !obj.value._id.toLowerCase().includes(needle) && !name.toLowerCase().includes(needle)) {
952
+ continue;
953
+ }
954
+ if (type && o?.type !== type) {
711
955
  continue;
712
956
  }
713
957
  if (role && o?.common?.role !== role) {
@@ -716,12 +960,16 @@ class McpServer {
716
960
  if (roomMembers && !roomMembers.includes(obj.value._id)) {
717
961
  continue;
718
962
  }
963
+ const sourceAdapter = obj.value._id.match(/^([^.]+\.\d+)/)?.[1] || '';
964
+ if (adapter && sourceAdapter !== adapter) {
965
+ continue;
966
+ }
719
967
  results.push({
720
968
  id: obj.value._id,
721
969
  type: o?.type || 'state',
722
970
  role: o?.common?.role || '',
723
- name: this.getName(o?.common?.name),
724
- adapter: obj.value._id.match(/^([^.]+\.\d+)/)?.[1] || '',
971
+ name,
972
+ adapter: sourceAdapter,
725
973
  });
726
974
  if (results.length >= limit) {
727
975
  break;
@@ -750,6 +998,12 @@ class McpServer {
750
998
  if (params.to) {
751
999
  options.end = new Date(params.to).getTime();
752
1000
  }
1001
+ if (params.percentile !== undefined) {
1002
+ options.percentile = params.percentile;
1003
+ }
1004
+ if (params.quantile !== undefined) {
1005
+ options.quantile = params.quantile;
1006
+ }
753
1007
  const step = params.interval ? this.parseInterval(params.interval) : undefined;
754
1008
  if (step) {
755
1009
  options.step = step;
@@ -781,6 +1035,22 @@ class McpServer {
781
1035
  }
782
1036
  return result;
783
1037
  }
1038
+ /** List installed adapters (system.adapter.<name> objects, no instances). */
1039
+ async listAdapters(language) {
1040
+ const lang = language || this.language;
1041
+ const view = await this.adapter.getObjectViewAsync('system', 'adapter', { startkey: 'system.adapter.', endkey: 'system.adapter.香' }, { user: this.defaultUser });
1042
+ return view.rows.map(row => {
1043
+ const common = (row.value?.common || {});
1044
+ return {
1045
+ name: common.name || row.id.replace('system.adapter.', ''),
1046
+ version: common.version || '',
1047
+ title: getText(common.titleLang || common.title, lang),
1048
+ description: getText(common.desc, lang),
1049
+ keywords: common.keywords || [],
1050
+ mode: common.mode || '',
1051
+ };
1052
+ });
1053
+ }
784
1054
  async listHosts() {
785
1055
  const objs = await this.adapter.getForeignObjectsAsync('system.host.*', 'host', { user: this.defaultUser });
786
1056
  const result = [];
@@ -918,6 +1188,26 @@ class McpServer {
918
1188
  const data = base64 ? Buffer.from(content, 'base64') : content;
919
1189
  await this.adapter.writeFileAsync(adapterName, fileName, data, { user: this.defaultUser });
920
1190
  }
1191
+ /** List a directory in an adapter file storage. */
1192
+ async listFiles(path) {
1193
+ const { adapterName, dirName } = McpServer.parseDirPath(path);
1194
+ const entries = await this.adapter.readDirAsync(adapterName, dirName, { user: this.defaultUser });
1195
+ return (entries || []).map(entry => ({
1196
+ file: entry.file,
1197
+ isDir: !!entry.isDir,
1198
+ size: entry.stats?.size,
1199
+ modified: entry.modifiedAt,
1200
+ }));
1201
+ }
1202
+ /** Rename/move a file within the same adapter file storage. */
1203
+ async renameFile(path, newPath) {
1204
+ const from = McpServer.parseFilePath(path);
1205
+ const to = McpServer.parseFilePath(newPath);
1206
+ if (from.adapterName !== to.adapterName) {
1207
+ throw new Error('Renaming across adapter storages is not supported; both paths must share the adapter');
1208
+ }
1209
+ await this.adapter.renameAsync(from.adapterName, from.fileName, to.fileName, { user: this.defaultUser });
1210
+ }
921
1211
  /** Create or update an object, merging common/native into an existing object (n8n `setIobObject`). */
922
1212
  async setObject(id, obj) {
923
1213
  let existing = await this.adapter.getForeignObjectAsync(id, { user: this.defaultUser });
@@ -946,6 +1236,99 @@ class McpServer {
946
1236
  }
947
1237
  return { adapterName, fileName };
948
1238
  }
1239
+ /** Split a directory path "<adapter>[/<dir>]" into adapter name and (possibly empty) directory. */
1240
+ static parseDirPath(path) {
1241
+ const [adapterName, ...rest] = path.replace(/^\//, '').replace(/\/$/, '').split('/');
1242
+ if (!adapterName) {
1243
+ throw new Error('Path must start with an adapter name, e.g. "vis-2.0/main" or "0_userdata.0"');
1244
+ }
1245
+ return { adapterName, dirName: rest.join('/') };
1246
+ }
1247
+ /** Delete an object, optionally with all its children. */
1248
+ async deleteObject(id, recursive) {
1249
+ const existing = await this.adapter.getForeignObjectAsync(id, { user: this.defaultUser });
1250
+ if (!existing) {
1251
+ throw new Error(`Object "${id}" does not exist`);
1252
+ }
1253
+ await this.adapter.delForeignObjectAsync(id, { user: this.defaultUser, recursive: !!recursive });
1254
+ }
1255
+ /** Create a new state object; refuses to overwrite an existing object. */
1256
+ async createState(params) {
1257
+ const existing = await this.adapter.getForeignObjectAsync(params.id, { user: this.defaultUser });
1258
+ if (existing) {
1259
+ throw new Error(`Object "${params.id}" already exists - use set_object to modify it`);
1260
+ }
1261
+ const common = {
1262
+ name: params.name || params.id.split('.').pop() || params.id,
1263
+ type: params.type || 'mixed',
1264
+ role: params.role || 'state',
1265
+ read: params.read !== false,
1266
+ write: params.write !== false,
1267
+ };
1268
+ if (params.unit !== undefined) {
1269
+ common.unit = params.unit;
1270
+ }
1271
+ if (params.min !== undefined) {
1272
+ common.min = params.min;
1273
+ }
1274
+ if (params.max !== undefined) {
1275
+ common.max = params.max;
1276
+ }
1277
+ if (params.step !== undefined) {
1278
+ common.step = params.step;
1279
+ }
1280
+ if (params.desc !== undefined) {
1281
+ common.desc = params.desc;
1282
+ }
1283
+ await this.adapter.setForeignObjectAsync(params.id, { type: 'state', common, native: {} }, { user: this.defaultUser });
1284
+ if (params.def !== undefined) {
1285
+ const coerced = McpServer.coerceValue(params.def, common.type);
1286
+ await this.adapter.setForeignStateAsync(params.id, coerced, true, { user: this.defaultUser });
1287
+ }
1288
+ return { id: params.id };
1289
+ }
1290
+ /** Create or update a scene object for the ioBroker "scenes" adapter. */
1291
+ async createScene(params) {
1292
+ const instance = params.instance || 'scene.0';
1293
+ const instanceObj = await this.adapter.getForeignObjectAsync(`system.adapter.${instance}`, {
1294
+ user: this.defaultUser,
1295
+ });
1296
+ if (!instanceObj) {
1297
+ throw new Error(`Scene adapter instance "${instance}" is not installed. Install the ioBroker "scenes" adapter first.`);
1298
+ }
1299
+ // Scene IDs may not contain the characters that are forbidden in ioBroker IDs.
1300
+ const sceneName = params.name.replace(/[\s.*?"'[\]]/g, '_');
1301
+ const id = `${instance}.${sceneName}`;
1302
+ const sceneObj = {
1303
+ type: 'state',
1304
+ common: {
1305
+ name: params.name,
1306
+ type: 'boolean',
1307
+ role: 'scene.state',
1308
+ desc: params.description || '',
1309
+ read: true,
1310
+ write: true,
1311
+ def: false,
1312
+ engine: `system.adapter.${instance}`,
1313
+ enabled: true,
1314
+ },
1315
+ native: {
1316
+ onTrue: { trigger: {}, cron: null, astro: null },
1317
+ onFalse: { enabled: false, trigger: {}, cron: null, astro: null },
1318
+ members: params.members.map(member => ({
1319
+ id: member.id,
1320
+ setIfTrue: member.value,
1321
+ setIfFalse: null,
1322
+ stopAllDelays: true,
1323
+ delay: 0,
1324
+ disabled: false,
1325
+ })),
1326
+ burstInterval: 0,
1327
+ },
1328
+ };
1329
+ await this.adapter.setForeignObjectAsync(id, sceneObj, { user: this.defaultUser });
1330
+ return { id, members: params.members.length };
1331
+ }
949
1332
  // --- helpers ---
950
1333
  /** Resolve the member ids of a room/function enum matched by id or (localized) name. */
951
1334
  async getEnumMembers(prefix, nameOrId) {
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-server.js","sourceRoot":"","sources":["../../src/lib/mcp-server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcp-server.js","sourceRoot":"","sources":["../../src/lib/mcp-server.ts"],"names":[],"mappings":"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"}
package/io-package.json CHANGED
@@ -1,8 +1,21 @@
1
1
  {
2
2
  "common": {
3
3
  "name": "mcp",
4
- "version": "0.1.4",
4
+ "version": "0.2.0",
5
5
  "news": {
6
+ "0.2.0": {
7
+ "en": "Many changes: see the previous changelog entry",
8
+ "de": "Viele Änderungen: siehe den vorherigen Changelog-Eintrag",
9
+ "ru": "Много изменений: см. предыдущую запись Changelog",
10
+ "pt": "Muitas alterações: veja o item anterior do changelog",
11
+ "nl": "Veel wijzigingen: zie het vorige wijzigingslog-item",
12
+ "fr": "Nombreux changements : voir l'entrée précédente du journal des changements",
13
+ "it": "Molte modifiche: vedi la precedente voce changelog",
14
+ "es": "Muchos cambios: ver la entrada de cambio anterior",
15
+ "pl": "Wiele zmian: zobacz poprzedni wpis changelog",
16
+ "uk": "Багато змін: див. запис попередньої зміни",
17
+ "zh-cn": "许多更改: 参见上一个更改日志条目"
18
+ },
6
19
  "0.1.4": {
7
20
  "en": "Initial development",
8
21
  "de": "Entwicklung",
package/manifest.json CHANGED
@@ -19,14 +19,14 @@
19
19
  },
20
20
  {
21
21
  "name": "get_states",
22
- "description": "Retrieve the current value of one or multiple states",
22
+ "description": "Retrieve the current value of one or multiple states. IDs may contain wildcards (e.g. hue.0.*.brightness)",
23
23
  "parameters": {
24
24
  "type": "object",
25
25
  "properties": {
26
26
  "ids": {
27
27
  "type": "array",
28
28
  "items": { "type": "string" },
29
- "description": "Array of state IDs"
29
+ "description": "Array of state IDs (wildcards \"*\" allowed)"
30
30
  }
31
31
  },
32
32
  "required": ["ids"]
@@ -51,6 +51,28 @@
51
51
  "required": ["id", "value"]
52
52
  }
53
53
  },
54
+ {
55
+ "name": "set_states",
56
+ "description": "Set multiple states in one call (e.g. for scenes or group actions)",
57
+ "parameters": {
58
+ "type": "object",
59
+ "properties": {
60
+ "states": {
61
+ "type": "array",
62
+ "items": {
63
+ "type": "object",
64
+ "properties": {
65
+ "id": { "type": "string", "description": "State ID" },
66
+ "value": { "description": "New value (type depends on the state)" },
67
+ "ack": { "type": "boolean", "default": false }
68
+ },
69
+ "required": ["id", "value"]
70
+ }
71
+ }
72
+ },
73
+ "required": ["states"]
74
+ }
75
+ },
54
76
  {
55
77
  "name": "history_query",
56
78
  "description": "Query historical values of a state",
@@ -62,9 +84,11 @@
62
84
  "to": { "type": "string", "description": "End time (ISO8601)" },
63
85
  "agg": {
64
86
  "type": "string",
65
- "enum": ["raw", "min", "max", "avg", "sum"],
87
+ "enum": ["raw", "min", "max", "avg", "sum", "count", "minmax", "percentile", "quantile", "integral"],
66
88
  "default": "raw"
67
89
  },
90
+ "percentile": { "type": "number", "description": "Percentile (0-100), only with agg=percentile" },
91
+ "quantile": { "type": "number", "description": "Quantile (0-1), only with agg=quantile" },
68
92
  "interval": { "type": "string", "description": "Aggregation interval, e.g. 15m, 1h" },
69
93
  "limit": { "type": "integer", "default": 1000 }
70
94
  },
@@ -73,7 +97,21 @@
73
97
  },
74
98
  {
75
99
  "name": "list_instances",
76
- "description": "List all adapters with their status"
100
+ "description": "List all adapter instances with their status"
101
+ },
102
+ {
103
+ "name": "list_adapters",
104
+ "description": "List all installed adapters with metadata (version, title, description, keywords)",
105
+ "parameters": {
106
+ "type": "object",
107
+ "properties": {
108
+ "language": { "type": "string", "description": "Language for title/description" }
109
+ }
110
+ }
111
+ },
112
+ {
113
+ "name": "list_hosts",
114
+ "description": "List all ioBroker hosts with their status"
77
115
  },
78
116
  {
79
117
  "name": "get_logs",
@@ -91,25 +129,205 @@
91
129
  }
92
130
  }
93
131
  },
132
+ {
133
+ "name": "write_log",
134
+ "description": "Write a message to the ioBroker log",
135
+ "parameters": {
136
+ "type": "object",
137
+ "properties": {
138
+ "message": { "type": "string" },
139
+ "level": { "type": "string", "enum": ["error", "warn", "info", "debug"], "default": "info" }
140
+ },
141
+ "required": ["message"]
142
+ }
143
+ },
94
144
  {
95
145
  "name": "system_info",
96
146
  "description": "Get system and js-controller information"
97
147
  },
98
148
  {
99
149
  "name": "search_objects",
100
- "description": "Search objects and states by keywords",
150
+ "description": "Search objects and states by keyword (matched against ID and name) with optional filters",
101
151
  "parameters": {
102
152
  "type": "object",
103
153
  "properties": {
104
- "query": { "type": "string", "description": "Keyword to search for" },
154
+ "query": { "type": "string", "description": "Keyword to search for in object IDs and names" },
155
+ "type": { "type": "string", "description": "Filter by object type, e.g. state, channel, device, script" },
105
156
  "role": { "type": "string", "description": "Filter by role" },
106
157
  "room": { "type": "string", "description": "Filter by room" },
158
+ "adapter": { "type": "string", "description": "Filter by source adapter instance, e.g. hue.0" },
107
159
  "limit": { "type": "integer", "default": 50 },
108
160
  "offset": { "type": "integer", "default": 0 }
109
161
  },
110
162
  "required": ["query"]
111
163
  }
112
164
  },
165
+ {
166
+ "name": "get_object",
167
+ "description": "Read a single ioBroker object by its ID",
168
+ "parameters": {
169
+ "type": "object",
170
+ "properties": {
171
+ "id": { "type": "string", "description": "Object ID" }
172
+ },
173
+ "required": ["id"]
174
+ }
175
+ },
176
+ {
177
+ "name": "set_object",
178
+ "description": "Create or update an ioBroker object (merges common/native) - requires object change permission",
179
+ "parameters": {
180
+ "type": "object",
181
+ "properties": {
182
+ "id": { "type": "string", "description": "Object ID" },
183
+ "obj": { "type": "object", "description": "Partial object with type/common/native" }
184
+ },
185
+ "required": ["id", "obj"]
186
+ }
187
+ },
188
+ {
189
+ "name": "delete_object",
190
+ "description": "Delete an ioBroker object (optionally with all children) - requires object change permission",
191
+ "parameters": {
192
+ "type": "object",
193
+ "properties": {
194
+ "id": { "type": "string", "description": "Object ID" },
195
+ "recursive": { "type": "boolean", "description": "Also delete all child objects" }
196
+ },
197
+ "required": ["id"]
198
+ }
199
+ },
200
+ {
201
+ "name": "create_state",
202
+ "description": "Create a new state object - requires object change permission",
203
+ "parameters": {
204
+ "type": "object",
205
+ "properties": {
206
+ "id": { "type": "string", "description": "Full state ID, e.g. 0_userdata.0.myState" },
207
+ "name": { "type": "string" },
208
+ "type": {
209
+ "type": "string",
210
+ "enum": ["boolean", "number", "string", "array", "object", "mixed"],
211
+ "default": "mixed"
212
+ },
213
+ "role": { "type": "string", "default": "state" },
214
+ "read": { "type": "boolean", "default": true },
215
+ "write": { "type": "boolean", "default": true },
216
+ "unit": { "type": "string" },
217
+ "min": { "type": "number" },
218
+ "max": { "type": "number" },
219
+ "step": { "type": "number" },
220
+ "def": { "description": "Initial value (written with ack=true)" },
221
+ "desc": { "type": "string" }
222
+ },
223
+ "required": ["id"]
224
+ }
225
+ },
226
+ {
227
+ "name": "create_scene",
228
+ "description": "Create or update a scene for the ioBroker scenes adapter - requires object change permission",
229
+ "parameters": {
230
+ "type": "object",
231
+ "properties": {
232
+ "name": { "type": "string", "description": "Scene name, becomes part of the ID" },
233
+ "members": {
234
+ "type": "array",
235
+ "items": {
236
+ "type": "object",
237
+ "properties": {
238
+ "id": { "type": "string", "description": "State ID to set" },
239
+ "value": { "description": "Value applied when the scene is activated" }
240
+ },
241
+ "required": ["id", "value"]
242
+ }
243
+ },
244
+ "instance": { "type": "string", "description": "Scene adapter instance (default scene.0)" },
245
+ "description": { "type": "string" }
246
+ },
247
+ "required": ["name", "members"]
248
+ }
249
+ },
250
+ {
251
+ "name": "read_file",
252
+ "description": "Read a file from an adapter file storage",
253
+ "parameters": {
254
+ "type": "object",
255
+ "properties": {
256
+ "path": { "type": "string", "description": "Path as <adapter>/<dir>/<file>" },
257
+ "base64": { "type": "boolean", "description": "Return binary content base64-encoded" }
258
+ },
259
+ "required": ["path"]
260
+ }
261
+ },
262
+ {
263
+ "name": "write_file",
264
+ "description": "Write a file to an adapter file storage - requires object change permission",
265
+ "parameters": {
266
+ "type": "object",
267
+ "properties": {
268
+ "path": { "type": "string", "description": "Path as <adapter>/<dir>/<file>" },
269
+ "content": { "type": "string", "description": "File content (UTF-8, or base64 when base64=true)" },
270
+ "base64": { "type": "boolean", "description": "Treat content as base64-encoded binary" }
271
+ },
272
+ "required": ["path", "content"]
273
+ }
274
+ },
275
+ {
276
+ "name": "list_files",
277
+ "description": "List a directory in an adapter file storage",
278
+ "parameters": {
279
+ "type": "object",
280
+ "properties": {
281
+ "path": { "type": "string", "description": "Path as <adapter>[/<dir>]" }
282
+ },
283
+ "required": ["path"]
284
+ }
285
+ },
286
+ {
287
+ "name": "file_exists",
288
+ "description": "Check whether a file exists in an adapter file storage",
289
+ "parameters": {
290
+ "type": "object",
291
+ "properties": {
292
+ "path": { "type": "string", "description": "Path as <adapter>/<dir>/<file>" }
293
+ },
294
+ "required": ["path"]
295
+ }
296
+ },
297
+ {
298
+ "name": "delete_file",
299
+ "description": "Delete a file from an adapter file storage - requires object change permission",
300
+ "parameters": {
301
+ "type": "object",
302
+ "properties": {
303
+ "path": { "type": "string", "description": "Path as <adapter>/<dir>/<file>" }
304
+ },
305
+ "required": ["path"]
306
+ }
307
+ },
308
+ {
309
+ "name": "rename_file",
310
+ "description": "Rename or move a file within the same adapter file storage - requires object change permission",
311
+ "parameters": {
312
+ "type": "object",
313
+ "properties": {
314
+ "path": { "type": "string", "description": "Current path as <adapter>/<dir>/<file>" },
315
+ "new_path": { "type": "string", "description": "New path as <adapter>/<dir>/<file> (same adapter)" }
316
+ },
317
+ "required": ["path", "new_path"]
318
+ }
319
+ },
320
+ {
321
+ "name": "mkdir",
322
+ "description": "Create a directory in an adapter file storage - requires object change permission",
323
+ "parameters": {
324
+ "type": "object",
325
+ "properties": {
326
+ "path": { "type": "string", "description": "Path as <adapter>/<dir>" }
327
+ },
328
+ "required": ["path"]
329
+ }
330
+ },
113
331
  {
114
332
  "name": "list_rooms",
115
333
  "description": "List all rooms (enum.rooms.*)",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "iobroker.mcp",
3
- "version": "0.1.4",
3
+ "version": "0.2.0",
4
4
  "description": "MCP server for ioBroker",
5
5
  "author": {
6
6
  "name": "ioBroker",