iobroker.mcp 0.2.0 → 0.2.2

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
@@ -133,10 +133,13 @@ tools rather than as subscribable resources.)
133
133
  Placeholder for the next version (at the beginning of the line):
134
134
  ### **WORK IN PROGRESS**
135
135
  -->
136
+ ### 0.2.2 (2026-06-11)
137
+ * (@GermanBluefox) Supported direct import of MCP server
138
+
136
139
  ### 0.2.0 (2026-06-11)
137
140
  * (@GermanBluefox) Many changes: see the previous changelog entry
138
141
 
139
- ### 0.1.4 (2026-06-11)
142
+ ### 0.1.5 (2026-06-11)
140
143
  * (@GermanBluefox) Added wildcard support to `get_states` (e.g. `hue.0.*.brightness`)
141
144
  * (@GermanBluefox) Added `set_states` for writing multiple states in one call (scenes/group actions)
142
145
  * (@GermanBluefox) Added `delete_object` and `create_state` tools (gated by *Allow object/file changes*)
@@ -0,0 +1,127 @@
1
+ /**
2
+ * Device detection utilities, ported from the ioBroker n8n nodes
3
+ * (`IoBrokerNodes/DevicesUtils.ts`).
4
+ *
5
+ * Uses the ioBroker type detector (https://github.com/ioBroker/ioBroker.type-detector)
6
+ * to turn raw states/channels/devices into "controls" (functional devices) and groups
7
+ * them into an AI-friendly structure of rooms -> devices -> named controls.
8
+ *
9
+ * All object reads accept an optional `{ user }` so the detection respects the ACLs of
10
+ * the configured default user (see McpServer).
11
+ */
12
+ import { type ExternalDetectorState, Types } from '@iobroker/type-detector';
13
+ /** Read options passed through to `getObjectViewAsync` (currently only the ACL user). */
14
+ export interface ReadOptions {
15
+ user?: `system.user.${string}`;
16
+ }
17
+ export type SmartNameObject = {
18
+ [lang in ioBroker.Languages]?: string;
19
+ } & {
20
+ smartType?: string | null;
21
+ byON?: string | null;
22
+ toggle?: boolean;
23
+ };
24
+ export type SmartName = null | false | string | SmartNameObject;
25
+ /** Detector state enriched with the concrete object id, smart name and common metadata. */
26
+ export interface IotExternalDetectorState extends ExternalDetectorState {
27
+ id: string;
28
+ smartName: SmartName | undefined;
29
+ common: {
30
+ min?: number;
31
+ max?: number;
32
+ unit?: string;
33
+ type?: ioBroker.CommonType;
34
+ states?: {
35
+ [value: string]: string;
36
+ };
37
+ role?: string;
38
+ name?: ioBroker.StringOrTranslated;
39
+ icon?: string;
40
+ color?: string;
41
+ };
42
+ }
43
+ export interface IotExternalPatternControl {
44
+ states: IotExternalDetectorState[];
45
+ type: Types;
46
+ enumRequired?: boolean;
47
+ object?: {
48
+ id: string;
49
+ type: ioBroker.ObjectType;
50
+ common: ioBroker.StateCommon | ioBroker.ChannelCommon | ioBroker.DeviceCommon;
51
+ autoDetected: boolean;
52
+ toggle?: boolean;
53
+ smartName?: SmartName;
54
+ };
55
+ groupNames: string[];
56
+ room?: {
57
+ id: string;
58
+ common: ioBroker.EnumCommon;
59
+ };
60
+ functionality?: {
61
+ id: string;
62
+ common: ioBroker.EnumCommon;
63
+ };
64
+ }
65
+ /**
66
+ * Checks whether the provided value is a valid smart name.
67
+ *
68
+ * @param smartName The value to check
69
+ * @param lang Configured language
70
+ * @returns True if a valid smart name, false - otherwise.
71
+ */
72
+ export declare function isValidSmartName(smartName: SmartName | undefined, lang: ioBroker.Languages): boolean;
73
+ /**
74
+ * Inspects all objects (states, channels and devices) and tries to identify so-called 'controls'
75
+ *
76
+ * To identify the controls, the ioBroker type detector library is used (https://github.com/ioBroker/ioBroker.type-detector).
77
+ *
78
+ * @param adapter The adapter instance
79
+ * @param lang language
80
+ * @param options read options (ACL user)
81
+ * @returns An array containing the detected controls
82
+ */
83
+ export declare function controls(adapter: ioBroker.Adapter, lang: ioBroker.Languages, options?: ReadOptions): Promise<IotExternalPatternControl[]>;
84
+ type RoomName = string;
85
+ type FunctionalityName = string;
86
+ type ControlType = 'power' | 'dimmer' | 'blindPosition' | 'stop' | 'openedClosed' | 'alarm' | 'color' | 'colorRed' | 'colorGreen' | 'colorBlue' | 'colorWhite' | 'colorTemperature' | 'openClose' | 'open' | 'close' | 'fanSpeed' | 'boostMode' | 'swingPosition' | 'saturation' | 'swingOnOff' | 'actualTemperature' | 'humidity' | 'illuminance' | 'level' | 'volume' | 'targetTemperature' | 'lock' | 'valve';
87
+ type ControlInDevice = {
88
+ stateId: string;
89
+ controlType: ControlType;
90
+ ioBrokerValueType: ioBroker.CommonType;
91
+ writable: boolean;
92
+ readable: boolean;
93
+ min?: number;
94
+ max?: number;
95
+ unit?: string;
96
+ states?: {
97
+ [value: string]: string;
98
+ };
99
+ role?: string;
100
+ };
101
+ export interface Device {
102
+ deviceName: string | ioBroker.StringOrTranslated | undefined;
103
+ deviceType: Types;
104
+ friendlyDeviceNames: string[];
105
+ room?: RoomName;
106
+ functionality?: FunctionalityName;
107
+ controls: {
108
+ [controlType: string]: ControlInDevice;
109
+ };
110
+ }
111
+ export interface Room {
112
+ roomName: RoomName;
113
+ devicesInRoom: Device[];
114
+ }
115
+ export interface Functionality {
116
+ functionalityName: FunctionalityName;
117
+ devicesInFunctionality: Device[];
118
+ }
119
+ /**
120
+ * Build an AI-friendly structure of rooms -> devices -> named controls.
121
+ *
122
+ * @param adapter The adapter instance
123
+ * @param lang language
124
+ * @param options read options (ACL user)
125
+ */
126
+ export declare function getAiFriendlyStructure(adapter: ioBroker.Adapter, lang: ioBroker.Languages, options?: ReadOptions): Promise<Room[]>;
127
+ export {};
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Canonical ioBroker URI helpers, ported from `@iobroker/adapter-react-v5` (`Components/IobUri`).
3
+ *
4
+ * - state: `iobstate://<id>[/<attr>]` (attr: val, ts, lc, ack, q, from, ...)
5
+ * - object: `iobobject://<id>[/<attr.path>]` (attr.path: common.enabled, native.x, ...)
6
+ * - file: `iobfile://<adapter>/<dir>/<file>`
7
+ * - http: `http(s)://...`
8
+ * - base64: `data:...`
9
+ */
10
+ export type IobUriType = 'object' | 'state' | 'file' | 'http' | 'base64';
11
+ export interface IobUriParsed {
12
+ type: IobUriType;
13
+ address: string;
14
+ path?: string;
15
+ }
16
+ export declare function iobUriToString(uri: IobUriParsed): string;
17
+ /** Parse an ioBroker URI. */
18
+ export declare function iobUriParse(uri: string): IobUriParsed;
19
+ /** Read a nested attribute from an object by a dotted path (e.g. ["common","enabled"]). */
20
+ export declare function getAttrInObject(obj: Record<string, any> | null | undefined, path: string[] | undefined): any;
@@ -0,0 +1,125 @@
1
+ import { type Express } from 'express';
2
+ import type { Server as HttpServer } from 'node:http';
3
+ import type { Server as HttpsServer } from 'node:https';
4
+ export default class McpServer {
5
+ private readonly adapter;
6
+ private readonly app;
7
+ /** Active sessions keyed by session id. */
8
+ private readonly sessions;
9
+ /** Ref-count of adapter-level subscriptions across all sessions, keyed by "<type>:<address>" or "log". */
10
+ private readonly subscriptionCounts;
11
+ /** Recent log lines kept for `ioblog://` resource reads (filled while there are log subscribers). */
12
+ private readonly logBuffer;
13
+ private config;
14
+ private readonly namespace;
15
+ private readonly extension;
16
+ private readonly routerPrefix;
17
+ /** The ioBroker user whose permissions every MCP request runs with. */
18
+ private readonly defaultUser;
19
+ /** Default language used to localize device/room/function names. */
20
+ private readonly language;
21
+ constructor(server: HttpServer | HttpsServer, webSettings: {
22
+ secure: boolean;
23
+ port: number | string;
24
+ defaultUser?: `system.user.${string}`;
25
+ auth?: boolean;
26
+ language?: ioBroker.Languages;
27
+ }, adapter: ioBroker.Adapter, instanceSettings: ioBroker.InstanceObject | null, app: Express);
28
+ private initRoutes;
29
+ /**
30
+ * Called by the ioBroker web adapter to list this extension on its welcome/intro page.
31
+ * Only relevant when running embedded.
32
+ */
33
+ welcomePage(): {
34
+ link: string;
35
+ name: string;
36
+ img: string;
37
+ color: string;
38
+ order: number;
39
+ pro: boolean;
40
+ };
41
+ /** Handle client -> server messages (initialize, tools/call, ...). */
42
+ private handleMcpPost;
43
+ /** Handle server -> client SSE stream (GET) and session termination (DELETE). */
44
+ private handleMcpSessionRequest;
45
+ /**
46
+ * Forward an ioBroker state change to subscribed sessions.
47
+ *
48
+ * Called by our own adapter (standalone) or by the host web adapter (extension mode), which
49
+ * invokes `stateChange` on every web extension that defines it.
50
+ */
51
+ stateChange(id: string, _state: ioBroker.State | null | undefined): void;
52
+ /**
53
+ * Forward an ioBroker object change to subscribed sessions. Called by our own adapter
54
+ * (standalone) or automatically by the host web adapter (extension mode).
55
+ */
56
+ objectChange(id: string, _obj: ioBroker.Object | null | undefined): void;
57
+ /** Push `resources/updated` to every session subscribed to the given state/object id. */
58
+ private notifySubscribers;
59
+ /** Receive an ioBroker log line: buffer it and push `resources/updated` to ioblog subscribers. */
60
+ private onLog;
61
+ /** Classify a resource URI into its subscription kind, address and ref-count key. */
62
+ private uriKind;
63
+ /** Add an adapter-level subscription, subscribing on the adapter only on the first reference. */
64
+ private refSubscribe;
65
+ /** Drop an adapter-level subscription, unsubscribing on the adapter when the last reference goes. */
66
+ private refUnsubscribe;
67
+ /** Release all subscriptions held by a session (on close). */
68
+ private cleanupSession;
69
+ /**
70
+ * Create a new MCP SDK server with all ioBroker tools registered.
71
+ *
72
+ * @param subscriptions the per-session set of subscribed state ids (mutated by subscribe/unsubscribe)
73
+ */
74
+ private createServer;
75
+ /** Build the result entry for one state. */
76
+ private static stateEntry;
77
+ private getStates;
78
+ /** Write multiple states; failures of single states are reported per item and do not abort the rest. */
79
+ private setStates;
80
+ private getLogs;
81
+ private getSystemInfo;
82
+ private searchObjects;
83
+ private listDevices;
84
+ private historyQuery;
85
+ private listInstances;
86
+ /** List installed adapters (system.adapter.<name> objects, no instances). */
87
+ private listAdapters;
88
+ private listHosts;
89
+ /**
90
+ * Read the rooms/functions enums with localized names and details about each member object
91
+ * (ported from the ioBroker n8n node's `readIobEnums`).
92
+ */
93
+ private readEnums;
94
+ /** Write a state, coercing the value to the state's declared type (boolean/number/string). */
95
+ private setState;
96
+ /** Coerce an arbitrary value to the given ioBroker state type. */
97
+ private static coerceValue;
98
+ /** Read a file from an adapter file storage. */
99
+ private readFile;
100
+ /** Write a file to an adapter file storage. */
101
+ private writeFile;
102
+ /** List a directory in an adapter file storage. */
103
+ private listFiles;
104
+ /** Rename/move a file within the same adapter file storage. */
105
+ private renameFile;
106
+ /** Create or update an object, merging common/native into an existing object (n8n `setIobObject`). */
107
+ private setObject;
108
+ /** Split a file path "<adapter>/<dir>/<file>" into adapter name and file name. */
109
+ private static parseFilePath;
110
+ /** Split a directory path "<adapter>[/<dir>]" into adapter name and (possibly empty) directory. */
111
+ private static parseDirPath;
112
+ /** Delete an object, optionally with all its children. */
113
+ private deleteObject;
114
+ /** Create a new state object; refuses to overwrite an existing object. */
115
+ private createState;
116
+ /** Create or update a scene object for the ioBroker "scenes" adapter. */
117
+ private createScene;
118
+ /** Resolve the member ids of a room/function enum matched by id or (localized) name. */
119
+ private getEnumMembers;
120
+ /** Normalize an ioBroker name (string or {en, de, ...}) to a plain string. */
121
+ private getName;
122
+ /** Parse an interval like "15m", "1h", "30s" into milliseconds. */
123
+ private parseInterval;
124
+ unload(): void;
125
+ }
@@ -0,0 +1,20 @@
1
+ export interface McpAdapterConfig extends ioBroker.AdapterConfig {
2
+ webInstance: string;
3
+ port: number | string;
4
+ bind: string;
5
+ auth: boolean;
6
+ secure: boolean;
7
+ /** Allow the `set_state`/`set_states` tools to write states (default: true). */
8
+ allowSetState: boolean;
9
+ /** Allow the object/file changing tools (`set_object`, `delete_object`, `create_state`, `create_scene`, `write_file`, `delete_file`, `rename_file`, `mkdir`) (default: false). */
10
+ allowObjectChange: boolean;
11
+ certPublic: string;
12
+ certPrivate: string;
13
+ certChained: string;
14
+ defaultUser?: `system.user.${string}`;
15
+ certificates?: ioBroker.Certificates;
16
+ leConfig?: boolean;
17
+ }
18
+ export interface McpAdapter extends ioBroker.Adapter {
19
+ config: McpAdapterConfig;
20
+ }
@@ -0,0 +1,2 @@
1
+ import McpServer from './lib/mcp-server';
2
+ export { McpServer };
@@ -3,10 +3,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.McpServer = void 0;
6
7
  const adapter_core_1 = require("@iobroker/adapter-core");
7
8
  const webserver_1 = require("@iobroker/webserver");
8
9
  const express_1 = __importDefault(require("express"));
9
10
  const mcp_server_1 = __importDefault(require("./lib/mcp-server"));
11
+ exports.McpServer = mcp_server_1.default;
10
12
  class Mcp extends adapter_core_1.Adapter {
11
13
  webServer;
12
14
  /** Pending self-terminate timer used when running embedded in a web instance. */
@@ -149,6 +151,7 @@ class Mcp extends adapter_core_1.Adapter {
149
151
  if (require.main !== module) {
150
152
  // Export the constructor in compact mode
151
153
  module.exports = (options) => new Mcp(options);
154
+ module.exports.McpServer = mcp_server_1.default;
152
155
  }
153
156
  else {
154
157
  // otherwise start the instance directly
@@ -0,0 +1 @@
1
+ {"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.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.2.0",
4
+ "version": "0.2.2",
5
5
  "news": {
6
+ "0.2.2": {
7
+ "en": "Supported direct import of MCP server",
8
+ "de": "Unterstützter Direktimport von MCP Server",
9
+ "ru": "Поддержка прямого импорта MCP-сервера",
10
+ "pt": "Importação direta suportada do servidor MCP",
11
+ "nl": "Ondersteunde directe import van MCP-server",
12
+ "fr": "Prise en charge de l'importation directe du serveur MCP",
13
+ "it": "Importazione diretta supportata del server MCP",
14
+ "es": "Importación directa del servidor MCP",
15
+ "pl": "Obsługiwane bezpośrednie importowanie serwera MCP",
16
+ "uk": "Підтримує прямий імпорт сервера MCP",
17
+ "zh-cn": "支持直接导入 MCP 服务器"
18
+ },
6
19
  "0.2.0": {
7
20
  "en": "Many changes: see the previous changelog entry",
8
21
  "de": "Viele Änderungen: siehe den vorherigen Changelog-Eintrag",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "iobroker.mcp",
3
- "version": "0.2.0",
3
+ "version": "0.2.2",
4
4
  "description": "MCP server for ioBroker",
5
5
  "author": {
6
6
  "name": "ioBroker",
@@ -41,10 +41,22 @@
41
41
  "@types/node": "^22.19.19",
42
42
  "typescript": "^6.0.3"
43
43
  },
44
- "main": "dist/main.js",
44
+ "main": "build/main.js",
45
+ "types": "build/main.d.ts",
46
+ "exports": {
47
+ ".": {
48
+ "types": "./build/main.d.ts",
49
+ "default": "./build/main.js"
50
+ },
51
+ "./mcp-server": {
52
+ "types": "./build/lib/mcp-server.d.ts",
53
+ "default": "./build/lib/mcp-server.js"
54
+ },
55
+ "./package.json": "./package.json"
56
+ },
45
57
  "files": [
46
58
  "admin/",
47
- "dist/",
59
+ "build/",
48
60
  "io-package.json",
49
61
  "LICENSE",
50
62
  "manifest.json"
package/dist/main.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"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"}
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes