@iobroker/mcp-server 0.0.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/LICENSE +21 -0
- package/README.md +163 -0
- package/build/devices.d.ts +127 -0
- package/build/devices.js +752 -0
- package/build/devices.js.map +1 -0
- package/build/inProcessClient.d.ts +49 -0
- package/build/inProcessClient.js +76 -0
- package/build/inProcessClient.js.map +1 -0
- package/build/index.d.ts +202 -0
- package/build/index.js +1807 -0
- package/build/index.js.map +1 -0
- package/build/iob-uri.d.ts +20 -0
- package/build/iob-uri.js +108 -0
- package/build/iob-uri.js.map +1 -0
- package/build/types.d.ts +17 -0
- package/build/types.js +3 -0
- package/build/types.js.map +1 -0
- package/package.json +73 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"devices.js","sourceRoot":"","sources":["../src/devices.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/** A tool exposed by the in-process MCP server, in a plain (SDK-free) shape. */
|
|
2
|
+
export interface InProcessToolInfo {
|
|
3
|
+
/** Tool name, e.g. `list_devices`. */
|
|
4
|
+
name: string;
|
|
5
|
+
/** Human/LLM-readable description of what the tool does. */
|
|
6
|
+
description?: string;
|
|
7
|
+
/** JSON Schema (object schema) describing the tool's input arguments. */
|
|
8
|
+
inputSchema: Record<string, unknown>;
|
|
9
|
+
}
|
|
10
|
+
/** Result of a tool call: the concatenated text content plus the error flag. */
|
|
11
|
+
export interface InProcessToolResult {
|
|
12
|
+
/** Concatenated text of all text content blocks the tool returned. */
|
|
13
|
+
text: string;
|
|
14
|
+
/** True if the tool reported an error (the text then holds the error payload). */
|
|
15
|
+
isError: boolean;
|
|
16
|
+
}
|
|
17
|
+
/** Options for {@link createInProcessMcp}. */
|
|
18
|
+
export interface InProcessMcpOptions {
|
|
19
|
+
/** The host adapter the MCP server runs inside (its ACLs/connection are used for all calls). */
|
|
20
|
+
adapter: ioBroker.Adapter;
|
|
21
|
+
/** ioBroker user whose permissions every tool call runs with (default: `system.user.admin`). */
|
|
22
|
+
defaultUser?: `system.user.${string}`;
|
|
23
|
+
/** Language for localized output (rooms/devices/functions). */
|
|
24
|
+
language?: ioBroker.Languages;
|
|
25
|
+
/** Allow the state-writing tools `set_state`/`set_states` (default: false). */
|
|
26
|
+
allowSetState?: boolean;
|
|
27
|
+
/** Allow the object/file-changing tools (`create_state`, `set_object`, ...) (default: false). */
|
|
28
|
+
allowObjectChange?: boolean;
|
|
29
|
+
/** Name reported to the server by the embedded client. */
|
|
30
|
+
clientName?: string;
|
|
31
|
+
/** Version reported to the server by the embedded client. */
|
|
32
|
+
clientVersion?: string;
|
|
33
|
+
}
|
|
34
|
+
/** A ready-to-use in-process MCP connection: list tools, call them, and close everything. */
|
|
35
|
+
export interface InProcessMcp {
|
|
36
|
+
/** List the available tools (already filtered by the configured permission toggles). */
|
|
37
|
+
listTools(): Promise<InProcessToolInfo[]>;
|
|
38
|
+
/** Call a tool by name with the given arguments; returns its text result. */
|
|
39
|
+
callTool(name: string, args?: Record<string, unknown>): Promise<InProcessToolResult>;
|
|
40
|
+
/** Disconnect the client and server and release the host adapter's log listener. */
|
|
41
|
+
close(): Promise<void>;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Create an in-process MCP server embedded in the given adapter and a linked client to drive it.
|
|
45
|
+
*
|
|
46
|
+
* @param options embedding options (host adapter, default user, language, permission toggles)
|
|
47
|
+
* @returns a facade to list/call tools and to tear the connection down again
|
|
48
|
+
*/
|
|
49
|
+
export declare function createInProcessMcp(options: InProcessMcpOptions): Promise<InProcessMcp>;
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.createInProcessMcp = createInProcessMcp;
|
|
7
|
+
/**
|
|
8
|
+
* In-process MCP connection for embedding the ioBroker MCP server inside another adapter
|
|
9
|
+
* (e.g. ioBroker.admin's chat helper) without an HTTP transport.
|
|
10
|
+
*
|
|
11
|
+
* The MCP SDK `Client` and `Server` are linked over an in-memory transport that lives entirely
|
|
12
|
+
* in this module. The public {@link InProcessMcp} facade intentionally exposes only plain,
|
|
13
|
+
* SDK-free shapes so consumers can depend on `iobroker.mcp` without resolving the MCP SDK's
|
|
14
|
+
* subpath types themselves (important for consumers using classic `node` module resolution).
|
|
15
|
+
*/
|
|
16
|
+
const index_js_1 = require("@modelcontextprotocol/sdk/client/index.js");
|
|
17
|
+
const inMemory_js_1 = require("@modelcontextprotocol/sdk/inMemory.js");
|
|
18
|
+
const index_1 = __importDefault(require("./index"));
|
|
19
|
+
/**
|
|
20
|
+
* Create an in-process MCP server embedded in the given adapter and a linked client to drive it.
|
|
21
|
+
*
|
|
22
|
+
* @param options embedding options (host adapter, default user, language, permission toggles)
|
|
23
|
+
* @returns a facade to list/call tools and to tear the connection down again
|
|
24
|
+
*/
|
|
25
|
+
async function createInProcessMcp(options) {
|
|
26
|
+
const mcp = index_1.default.createEmbedded({
|
|
27
|
+
adapter: options.adapter,
|
|
28
|
+
defaultUser: options.defaultUser,
|
|
29
|
+
language: options.language,
|
|
30
|
+
allowSetState: options.allowSetState,
|
|
31
|
+
allowObjectChange: options.allowObjectChange,
|
|
32
|
+
});
|
|
33
|
+
const server = mcp.createInProcessServer();
|
|
34
|
+
const [clientTransport, serverTransport] = inMemory_js_1.InMemoryTransport.createLinkedPair();
|
|
35
|
+
await server.connect(serverTransport);
|
|
36
|
+
const client = new index_js_1.Client({
|
|
37
|
+
name: options.clientName || 'iobroker-inprocess-client',
|
|
38
|
+
version: options.clientVersion || '1.0.0',
|
|
39
|
+
}, { capabilities: {} });
|
|
40
|
+
await client.connect(clientTransport);
|
|
41
|
+
return {
|
|
42
|
+
async listTools() {
|
|
43
|
+
const res = await client.listTools();
|
|
44
|
+
return (res.tools || []).map(tool => ({
|
|
45
|
+
name: tool.name,
|
|
46
|
+
description: tool.description,
|
|
47
|
+
inputSchema: tool.inputSchema || { type: 'object', properties: {} },
|
|
48
|
+
}));
|
|
49
|
+
},
|
|
50
|
+
async callTool(name, args) {
|
|
51
|
+
const res = await client.callTool({ name, arguments: args || {} });
|
|
52
|
+
const blocks = res.content || [];
|
|
53
|
+
const text = blocks
|
|
54
|
+
.filter(block => block.type === 'text' && typeof block.text === 'string')
|
|
55
|
+
.map(block => block.text)
|
|
56
|
+
.join('\n');
|
|
57
|
+
return { text, isError: !!res.isError };
|
|
58
|
+
},
|
|
59
|
+
async close() {
|
|
60
|
+
try {
|
|
61
|
+
await client.close();
|
|
62
|
+
}
|
|
63
|
+
catch {
|
|
64
|
+
// ignore
|
|
65
|
+
}
|
|
66
|
+
try {
|
|
67
|
+
await server.close();
|
|
68
|
+
}
|
|
69
|
+
catch {
|
|
70
|
+
// ignore
|
|
71
|
+
}
|
|
72
|
+
mcp.unload();
|
|
73
|
+
},
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=inProcessClient.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inProcessClient.js","sourceRoot":"","sources":["../src/inProcessClient.ts"],"names":[],"mappings":";;;;;AAuEA,gDAsDC;AA7HD;;;;;;;;GAQG;AACH,wEAAmE;AACnE,uEAA0E;AAC1E,oDAAgC;AAsDhC;;;;;GAKG;AACI,KAAK,UAAU,kBAAkB,CAAC,OAA4B;IACjE,MAAM,GAAG,GAAG,eAAS,CAAC,cAAc,CAAC;QACjC,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,aAAa,EAAE,OAAO,CAAC,aAAa;QACpC,iBAAiB,EAAE,OAAO,CAAC,iBAAiB;KAC/C,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,GAAG,CAAC,qBAAqB,EAAE,CAAC;IAC3C,MAAM,CAAC,eAAe,EAAE,eAAe,CAAC,GAAG,+BAAiB,CAAC,gBAAgB,EAAE,CAAC;IAChF,MAAM,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;IAEtC,MAAM,MAAM,GAAG,IAAI,iBAAM,CACrB;QACI,IAAI,EAAE,OAAO,CAAC,UAAU,IAAI,2BAA2B;QACvD,OAAO,EAAE,OAAO,CAAC,aAAa,IAAI,OAAO;KAC5C,EACD,EAAE,YAAY,EAAE,EAAE,EAAE,CACvB,CAAC;IACF,MAAM,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;IAEtC,OAAO;QACH,KAAK,CAAC,SAAS;YACX,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,SAAS,EAAE,CAAC;YACrC,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAClC,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,WAAW,EAAG,IAAI,CAAC,WAAuC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,EAAE;aACnG,CAAC,CAAC,CAAC;QACR,CAAC;QACD,KAAK,CAAC,QAAQ,CAAC,IAAY,EAAE,IAA8B;YACvD,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,EAAE,CAAC,CAAC;YACnE,MAAM,MAAM,GAAI,GAAG,CAAC,OAA0C,IAAI,EAAE,CAAC;YACrE,MAAM,IAAI,GAAG,MAAM;iBACd,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC;iBACxE,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAc,CAAC;iBAClC,IAAI,CAAC,IAAI,CAAC,CAAC;YAChB,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;QAC5C,CAAC;QACD,KAAK,CAAC,KAAK;YACP,IAAI,CAAC;gBACD,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;YACzB,CAAC;YAAC,MAAM,CAAC;gBACL,SAAS;YACb,CAAC;YACD,IAAI,CAAC;gBACD,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;YACzB,CAAC;YAAC,MAAM,CAAC;gBACL,SAAS;YACb,CAAC;YACD,GAAG,CAAC,MAAM,EAAE,CAAC;QACjB,CAAC;KACJ,CAAC;AACN,CAAC"}
|
package/build/index.d.ts
ADDED
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
import { type Express } from 'express';
|
|
2
|
+
import { McpServer as McpSdkServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
3
|
+
import type { Server as HttpServer } from 'node:http';
|
|
4
|
+
import type { Server as HttpsServer } from 'node:https';
|
|
5
|
+
import { createInProcessMcp } from './inProcessClient';
|
|
6
|
+
export default class McpServer {
|
|
7
|
+
private readonly adapter;
|
|
8
|
+
/** The Express app we attach routes to. Undefined in embedded in-process mode (no HTTP). */
|
|
9
|
+
private readonly app?;
|
|
10
|
+
/** Active sessions keyed by session id. */
|
|
11
|
+
private readonly sessions;
|
|
12
|
+
/** Ref-count of adapter-level subscriptions across all sessions, keyed by "<type>:<address>" or "log". */
|
|
13
|
+
private readonly subscriptionCounts;
|
|
14
|
+
/** Recent log lines kept for `ioblog://` resource reads (filled while there are log subscribers). */
|
|
15
|
+
private readonly logBuffer;
|
|
16
|
+
private config;
|
|
17
|
+
private readonly extension;
|
|
18
|
+
private readonly routerPrefix;
|
|
19
|
+
/** The ioBroker user whose permissions every MCP request runs with. */
|
|
20
|
+
private readonly defaultUser;
|
|
21
|
+
/** Default language used to localize device/room/function names. */
|
|
22
|
+
private readonly language;
|
|
23
|
+
constructor(server: HttpServer | HttpsServer | null, webSettings: {
|
|
24
|
+
secure?: boolean;
|
|
25
|
+
port?: number | string;
|
|
26
|
+
defaultUser?: string;
|
|
27
|
+
auth?: boolean;
|
|
28
|
+
language?: ioBroker.Languages;
|
|
29
|
+
/** Explicit override for the `set_state`/`set_states` permission (embedded mode). */
|
|
30
|
+
allowSetState?: boolean;
|
|
31
|
+
/** Explicit override for the object/file-changing tool permission (embedded mode). */
|
|
32
|
+
allowObjectChange?: boolean;
|
|
33
|
+
}, adapter: ioBroker.Adapter, instanceSettings: ioBroker.InstanceObject | null, app?: Express);
|
|
34
|
+
/**
|
|
35
|
+
* Build a fresh MCP SDK server with all ioBroker tools registered, ready to be connected to an
|
|
36
|
+
* arbitrary transport. Used for in-process embedding (e.g. by ioBroker.admin) over an
|
|
37
|
+
* InMemoryTransport, where there is no HTTP server/session layer. The caller owns the lifecycle
|
|
38
|
+
* of the returned server (connect it to a transport, and `close()` it when done).
|
|
39
|
+
*/
|
|
40
|
+
createInProcessServer(): McpSdkServer;
|
|
41
|
+
/**
|
|
42
|
+
* Convenience factory for embedding the MCP server inside another adapter's process (no HTTP).
|
|
43
|
+
* The returned instance is not wired to any Express app; obtain a tool server via
|
|
44
|
+
* {@link createInProcessServer} and connect it to an in-memory transport.
|
|
45
|
+
*
|
|
46
|
+
* @param options embedding options (host adapter, default user, language, permission toggles)
|
|
47
|
+
* @param options.adapter The host adapter into which the MCP server is embedded. Used for receiving state/object changes and logs, and for performing actions with the host adapter's permissions.
|
|
48
|
+
* @param options.defaultUser Default user
|
|
49
|
+
* @param options.language Language
|
|
50
|
+
* @param options.allowSetState Is the state creation available
|
|
51
|
+
* @param options.allowObjectChange If the object change available
|
|
52
|
+
*/
|
|
53
|
+
static createEmbedded(options: {
|
|
54
|
+
adapter: ioBroker.Adapter;
|
|
55
|
+
defaultUser?: `system.user.${string}`;
|
|
56
|
+
language?: ioBroker.Languages;
|
|
57
|
+
allowSetState?: boolean;
|
|
58
|
+
allowObjectChange?: boolean;
|
|
59
|
+
}): McpServer;
|
|
60
|
+
private initRoutes;
|
|
61
|
+
/**
|
|
62
|
+
* Called by the ioBroker web adapter to list this extension on its welcome/intro page.
|
|
63
|
+
* Only relevant when running embedded.
|
|
64
|
+
*/
|
|
65
|
+
welcomePage(): {
|
|
66
|
+
link: string;
|
|
67
|
+
name: string;
|
|
68
|
+
img: string;
|
|
69
|
+
color: string;
|
|
70
|
+
order: number;
|
|
71
|
+
pro: boolean;
|
|
72
|
+
};
|
|
73
|
+
/** Handle client -> server messages (initialize, tools/call, ...). */
|
|
74
|
+
private handleMcpPost;
|
|
75
|
+
/** Handle server -> client SSE stream (GET) and session termination (DELETE). */
|
|
76
|
+
private handleMcpSessionRequest;
|
|
77
|
+
/**
|
|
78
|
+
* Forward an ioBroker state change to subscribed sessions.
|
|
79
|
+
*
|
|
80
|
+
* Called by our own adapter (standalone) or by the host web adapter (extension mode), which
|
|
81
|
+
* invokes `stateChange` on every web extension that defines it.
|
|
82
|
+
*/
|
|
83
|
+
stateChange(id: string, _state: ioBroker.State | null | undefined): void;
|
|
84
|
+
/**
|
|
85
|
+
* Forward an ioBroker object change to subscribed sessions. Called by our own adapter
|
|
86
|
+
* (standalone) or automatically by the host web adapter (extension mode).
|
|
87
|
+
*/
|
|
88
|
+
objectChange(id: string, _obj: ioBroker.Object | null | undefined): void;
|
|
89
|
+
/** Push `resources/updated` to every session subscribed to the given state/object id. */
|
|
90
|
+
private notifySubscribers;
|
|
91
|
+
/** Receive an ioBroker log line: buffer it and push `resources/updated` to ioblog subscribers. */
|
|
92
|
+
private onLog;
|
|
93
|
+
/** Classify a resource URI into its subscription kind, address and ref-count key. */
|
|
94
|
+
private uriKind;
|
|
95
|
+
/** Add an adapter-level subscription, subscribing on the adapter only on the first reference. */
|
|
96
|
+
private refSubscribe;
|
|
97
|
+
/** Drop an adapter-level subscription, unsubscribing on the adapter when the last reference goes. */
|
|
98
|
+
private refUnsubscribe;
|
|
99
|
+
/** Release all subscriptions held by a session (on close). */
|
|
100
|
+
private cleanupSession;
|
|
101
|
+
/**
|
|
102
|
+
* Create a new MCP SDK server with all ioBroker tools registered.
|
|
103
|
+
*
|
|
104
|
+
* @param subscriptions the per-session set of subscribed state ids (mutated by subscribe/unsubscribe)
|
|
105
|
+
*/
|
|
106
|
+
private createServer;
|
|
107
|
+
/** Build the result entry for one state. */
|
|
108
|
+
private static stateEntry;
|
|
109
|
+
private getStates;
|
|
110
|
+
/** Write multiple states; failures of single states are reported per item and do not abort the rest. */
|
|
111
|
+
private setStates;
|
|
112
|
+
/**
|
|
113
|
+
* Parse the raw log-file lines returned by the host `getLogs` into structured entries.
|
|
114
|
+
*
|
|
115
|
+
* The host replies with an array of raw strings (the file size is appended as the last, numeric
|
|
116
|
+
* element). Lines carry ANSI color codes and look like
|
|
117
|
+
* `2026-06-12 11:46:39.802 - error: hm-rpc.0 (1234) Init not possible…`. This mirrors the admin
|
|
118
|
+
* `LogsWorker` parsing: strip the color codes, then split timestamp / level / rest, and treat lines
|
|
119
|
+
* without a leading timestamp as continuations (e.g. stack traces) of the previous entry.
|
|
120
|
+
*/
|
|
121
|
+
private parseLogLines;
|
|
122
|
+
private getLogs;
|
|
123
|
+
/**
|
|
124
|
+
* Diagnose whether a network device/service is reachable: an ICMP ping to `host` and, if `port`
|
|
125
|
+
* is given, a TCP connect to that port. Used to investigate adapter connection errors.
|
|
126
|
+
*/
|
|
127
|
+
private pingHost;
|
|
128
|
+
/** ICMP ping via the OS `ping` command (no elevated privileges needed). */
|
|
129
|
+
private icmpPing;
|
|
130
|
+
/**
|
|
131
|
+
* Locate the `ping` executable. On Linux the adapter process sometimes runs with a minimal `PATH`
|
|
132
|
+
* (e.g. only `/usr/bin`) while `ping` lives in `/bin` or `/sbin`, which makes a bare `ping` fail with
|
|
133
|
+
* ENOENT. Probe the common absolute locations and fall back to the bare name otherwise.
|
|
134
|
+
*/
|
|
135
|
+
private resolvePingBinary;
|
|
136
|
+
/**
|
|
137
|
+
* Build a distro-appropriate command to install the `ping` tool, used in the recommendation when the
|
|
138
|
+
* binary is missing. The distro is detected from the package manager / release files present on disk.
|
|
139
|
+
*/
|
|
140
|
+
private suggestPingInstall;
|
|
141
|
+
/**
|
|
142
|
+
* Reachability fallback when ICMP is unavailable/blocked: try a TCP connect to a handful of ports
|
|
143
|
+
* that are commonly open on routers/devices. The host counts as reachable as soon as one port either
|
|
144
|
+
* accepts the connection or actively refuses it (a RST also proves the host is up).
|
|
145
|
+
*/
|
|
146
|
+
private tcpReachable;
|
|
147
|
+
/** TCP connect probe — tests whether a specific service port accepts connections. */
|
|
148
|
+
private tcpProbe;
|
|
149
|
+
private getSystemInfo;
|
|
150
|
+
private searchObjects;
|
|
151
|
+
private listDevices;
|
|
152
|
+
private historyQuery;
|
|
153
|
+
private listInstances;
|
|
154
|
+
/** List installed adapters (system.adapter.<name> objects, no instances). */
|
|
155
|
+
private listAdapters;
|
|
156
|
+
/**
|
|
157
|
+
* Search the adapter repository (all installable adapters) by keyword. Reads the already-downloaded
|
|
158
|
+
* repository object `system.repositories` — fast, no network — and matches against name, title,
|
|
159
|
+
* description and keywords, with an optional category `type` filter and an `installed` flag.
|
|
160
|
+
*/
|
|
161
|
+
private searchAdapterRepository;
|
|
162
|
+
private listHosts;
|
|
163
|
+
/**
|
|
164
|
+
* Read the rooms/functions enums with localized names and details about each member object
|
|
165
|
+
* (ported from the ioBroker n8n node's `readIobEnums`).
|
|
166
|
+
*/
|
|
167
|
+
private readEnums;
|
|
168
|
+
/** Write a state, coercing the value to the state's declared type (boolean/number/string). */
|
|
169
|
+
private setState;
|
|
170
|
+
/** Coerce an arbitrary value to the given ioBroker state type. */
|
|
171
|
+
private static coerceValue;
|
|
172
|
+
/** Read a file from an adapter file storage. */
|
|
173
|
+
private readFile;
|
|
174
|
+
/** Write a file to an adapter file storage. */
|
|
175
|
+
private writeFile;
|
|
176
|
+
/** List a directory in an adapter file storage. */
|
|
177
|
+
private listFiles;
|
|
178
|
+
/** Rename/move a file within the same adapter file storage. */
|
|
179
|
+
private renameFile;
|
|
180
|
+
/** Create or update an object, merging common/native into an existing object (n8n `setIobObject`). */
|
|
181
|
+
private setObject;
|
|
182
|
+
/** Split a file path "<adapter>/<dir>/<file>" into adapter name and file name. */
|
|
183
|
+
private static parseFilePath;
|
|
184
|
+
/** Split a directory path "<adapter>[/<dir>]" into adapter name and (possibly empty) directory. */
|
|
185
|
+
private static parseDirPath;
|
|
186
|
+
/** Delete an object, optionally with all its children. */
|
|
187
|
+
private deleteObject;
|
|
188
|
+
/** Create a new state object; refuses to overwrite an existing object. */
|
|
189
|
+
private createState;
|
|
190
|
+
/** Create or update a scene object for the ioBroker "scenes" adapter. */
|
|
191
|
+
private createScene;
|
|
192
|
+
/** Resolve the member ids of a room/function enum matched by id or (localized) name. */
|
|
193
|
+
private getEnumMembers;
|
|
194
|
+
/** Normalize an ioBroker name (string or {en, de, ...}) to a plain string. */
|
|
195
|
+
private getName;
|
|
196
|
+
/** Parse an interval like "15m", "1h", "30s" into milliseconds. */
|
|
197
|
+
private parseInterval;
|
|
198
|
+
unload(): void;
|
|
199
|
+
}
|
|
200
|
+
export { McpServer, createInProcessMcp };
|
|
201
|
+
export type { McpConfig } from './types';
|
|
202
|
+
export type { InProcessMcp, InProcessMcpOptions, InProcessToolInfo, InProcessToolResult } from './inProcessClient';
|