@coffeerunhobby/mcp-ha-connect 2.4.7 → 2.4.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. package/.env.example +10 -0
  2. package/README.md +18 -8
  3. package/dist/config.d.ts +2 -0
  4. package/dist/config.js +4 -0
  5. package/dist/config.js.map +1 -1
  6. package/dist/net/adapters/omada.d.ts +39 -7
  7. package/dist/net/adapters/omada.js +410 -42
  8. package/dist/net/adapters/omada.js.map +1 -1
  9. package/dist/net/adapters/omadaPorts.d.ts +62 -0
  10. package/dist/net/adapters/omadaPorts.js +212 -0
  11. package/dist/net/adapters/omadaPorts.js.map +1 -0
  12. package/dist/net/adapters/omadaRules.d.ts +1 -1
  13. package/dist/net/adapters/omadaRules.js +2 -2
  14. package/dist/net/adapters/omadaRules.js.map +1 -1
  15. package/dist/net/model.d.ts +36 -11
  16. package/dist/net/model.js.map +1 -1
  17. package/dist/omadaClient/accessControl.js +1 -1
  18. package/dist/omadaClient/accessControl.js.map +1 -1
  19. package/dist/omadaClient/index.d.ts +4 -0
  20. package/dist/omadaClient/index.js +3 -0
  21. package/dist/omadaClient/index.js.map +1 -1
  22. package/dist/omadaClient/networkConfig.d.ts +21 -0
  23. package/dist/omadaClient/networkConfig.js +41 -0
  24. package/dist/omadaClient/networkConfig.js.map +1 -1
  25. package/dist/tools/index.js +1 -1
  26. package/dist/tools/index.js.map +1 -1
  27. package/dist/tools/net/index.d.ts +36 -1
  28. package/dist/tools/net/index.js +140 -11
  29. package/dist/tools/net/index.js.map +1 -1
  30. package/dist/tools/omada/listClients.js +1 -1
  31. package/dist/tools/omada/listClients.js.map +1 -1
  32. package/dist/upstreams.d.ts +1 -0
  33. package/dist/upstreams.js +2 -1
  34. package/dist/upstreams.js.map +1 -1
  35. package/dist/version.d.ts +1 -1
  36. package/dist/version.js +1 -1
  37. package/package.json +6 -6
package/.env.example CHANGED
@@ -168,3 +168,13 @@ MCP_AUTH_SECRET=replace-with-a-random-secret-at-least-32-characters
168
168
  # - Rotate your Home Assistant tokens periodically
169
169
  # - Keep MCP_AUTH_METHOD=bearer in production; none is loopback-only
170
170
  # - Issue a distinct JWT per client (with scoped RBAC permissions) for audit
171
+
172
+ # -----------------------------------------------------------------------------
173
+ # Network tools (net_, with the Omada plugin)
174
+ # -----------------------------------------------------------------------------
175
+
176
+ # LAN address(es) or host name(s) of the machine this server runs on, comma-separated
177
+ # (for Docker: the host's LAN address). The net_ tools protect it like the controller: never
178
+ # its switch port, its network's VLAN or gateway, or its internet access (rules). While this is
179
+ # unset, ports with devices on them are left alone.
180
+ # MCP_SERVER_ADDRESSES=192.168.0.18
package/README.md CHANGED
@@ -77,7 +77,7 @@ high-value questions an LLM can actually answer about your network:
77
77
  > above through two tools — `omada_browse` + `omada_read` — keeping the tool-schema budget
78
78
  > small for low-context models. See the Omada tool tables below for the full eager surface.
79
79
 
80
- ## Available Tools (75 Total)
80
+ ## Available Tools (81 Total)
81
81
 
82
82
  ### Home Assistant Tools (38)
83
83
 
@@ -251,13 +251,14 @@ Lets the controller enforce a schedule itself (e.g. a curfew) instead of a daily
251
251
  | `omada_getSiteNtpStatus` | Get the site's NTP server configuration and status |
252
252
  | `omada_setSiteNtpServers` | Replace the site's NTP server list (needs `CONFIGURE`; `dryRun` previews the change) |
253
253
 
254
- ### Vendor-neutral Network Tools (15)
254
+ ### Vendor-neutral Network Tools (21)
255
255
 
256
256
  The `net_` tools describe networks the same way for every controller vendor: one shared model, with an adapter per
257
257
  vendor (TP-Link Omada today; UniFi and MikroTik are planned). Each adapter says per feature whether it is native,
258
258
  built from several objects, or unsupported (`net_capabilities`), and refuses what it can't do instead of dropping it.
259
- Every change is planned first: `dryRun` shows the steps, what they mean and which online devices would be cut off;
260
- applying refuses if the controller changed in between, or if devices would be cut off without `allowLockout`.
259
+ Every change is planned first: `dryRun` shows the steps, what they mean, which online devices would be cut off, and a
260
+ `basis` (a fingerprint of the change and what it read). Passing that `basis` when applying refuses the change if it
261
+ is another change, or the controller or those devices changed since; `allowLockout` (cutting devices off) requires it.
261
262
  Wi-Fi passwords are never taken or shown: a new or reset Wi-Fi network gets a random temporary password, and the real
262
263
  one is set in the controller's web UI. Reads need `QUERY`, changes `CONFIGURE`.
263
264
 
@@ -265,19 +266,27 @@ one is set in the controller's web UI. Reads need `QUERY`, changes `CONFIGURE`.
265
266
  |------|-------------|
266
267
  | `net_capabilities` | What the controller can do, per feature |
267
268
  | `net_listNetworks` | Networks (VLANs): VLAN, gateway, DHCP, IPv6, protected |
268
- | `net_createNetwork` / `net_updateNetwork` / `net_deleteNetwork` | Create or change a VLAN with its gateway and DHCP range. The network the controller is on is protected; delete is refused while a Wi-Fi network, port profile, reservation or rule uses it |
269
+ | `net_createNetwork` / `net_updateNetwork` / `net_deleteNetwork` | Create or change a VLAN with its gateway and DHCP range. The networks the controller and this server are on are protected; delete is refused while a Wi-Fi network, port profile, switch port (untagged), reservation or rule uses it |
269
270
  | `net_listWifi` | Wi-Fi networks: network, bands, security, isolation, MAC filter |
270
271
  | `net_createWifi` / `net_updateWifi` / `net_deleteWifi` | Create or change an SSID on a given network (bands, WPA2/WPA3, PMF, isolation, hidden, 802.11r, MAC filter), or reset its password to a random one |
271
272
  | `net_listRules` | Traffic rules in evaluation order (the first match decides); rules the model can't express are shown read-only (`foreign`, with the reason) |
272
- | `net_createRule` / `net_updateRule` / `net_deleteRule` / `net_moveRule` | Allow or block traffic from networks, a group or addresses to networks, a group, addresses (optionally on ports) or the internet, at a chosen position. **Stateful:** a block stops new connections, replies to connections started from the other side still pass ("block IoT → Home" lets Home still reach IoT). Addresses given in a rule become a group the rule owns and removes with it. A change after which the controller (and this server) could no longer reach the internet, in its end state or on the way there, is refused |
273
+ | `net_createRule` / `net_updateRule` / `net_deleteRule` / `net_moveRule` | Allow or block traffic from networks, a group or addresses to networks, a group, addresses (optionally on ports) or the internet, at a chosen position. **Stateful:** a block stops new connections, replies to connections started from the other side still pass ("block IoT → Home" lets Home still reach IoT). Addresses given in a rule become a group the rule owns and removes with it. A change after which the controller or this server (`MCP_SERVER_ADDRESSES`) could no longer reach the internet, in its end state or on the way there, is refused |
273
274
  | `net_listGroups` | Address groups (usable in rules) and MAC groups (Wi-Fi allow/deny lists) |
275
+ | `net_listClients` | Online devices with the network and VLAN each is on (wireless ones too), their Wi-Fi network or switch port; optionally only one network ("what is on VLAN 2?") |
276
+ | `net_listPortProfiles` | Switch port profiles and, when a profile sets them, the networks a port following it carries |
277
+ | `net_listPorts` | Switch ports: the networks each carries (untagged and tagged), its profile, the online devices on it, uplinks, and why a port is protected |
278
+ | `net_assignPort` | Set the networks a switch port carries: its untagged network (e.g. a wired IoT device's port on "IoT") and optionally tagged ones (`all`, `none` or a list); its other settings keep following its profile. Uplinks (from the controller's topology: the switch's own uplink and every network device below it), the ports the controller and this server are on (`MCP_SERVER_ADDRESSES`), link aggregation ports and ports with their own settings are refused, whatever `allowLockout` says. While where the controller or this server is can't be told, ports with devices on them are left alone. Devices that would lose their network need `allowLockout` |
279
+ | `net_getMdnsRepeater` / `net_setMdnsRepeater` | Whether mDNS (Bonjour) discovery is repeated between networks; switch it on or off, or change the networks (e.g. so Home Assistant discovers IoT devices). Discovery only: traffic still follows the rules |
274
280
 
275
281
  On Omada, a network isolation flag (use a block rule instead), a "guest" network type, switching IPv6 on, and WPA2/WPA3
276
282
  mixed mode are not available through the API and are refused. Rules are gateway ACLs (the gateway routes between the
277
283
  VLANs): LAN to LAN between your networks, LAN to WAN towards the internet. Refused with the reason: the gateway itself as
278
284
  a destination (no API option for its own addresses), one device by MAC (give its address), a Wi-Fi network as the
279
- source, rules that also match replies, schedules (the `omada_` time-range tools do those) and port ranges. Switch
280
- ports and mDNS arrive in 2.4.8.
285
+ source, rules that also match replies, schedules (the `omada_` time-range tools do those) and port ranges. Port
286
+ profiles are created in the controller web UI; `net_assignPort` sets a port's own networks (on controller 6.3 profiles
287
+ usually set none, and a port can't be put back on its profile's). The mDNS repeater is the controller's
288
+ one gateway mDNS rule: create it once in the web UI (with the services to repeat), then change it here; access point
289
+ mDNS rules, several rules or a one-way rule are shown as `foreign` and left to the web UI.
281
290
 
282
291
  ### AI Tools (1)
283
292
 
@@ -474,6 +483,7 @@ Clients only see the tools they may use: `tools/list` is filtered by the caller'
474
483
  | `OMADA_SITE_ID` | - | Default site ID for operations |
475
484
  | `OMADA_STRICT_SSL` | `true` | Validate SSL certificates |
476
485
  | `OMADA_TIMEOUT` | `30000` | API request timeout (ms) |
486
+ | `MCP_SERVER_ADDRESSES` | - | LAN address(es) or host name(s) of the machine this server runs on, comma-separated (for Docker: the host's LAN address). The `net_` tools protect it like the controller: never its switch port, its network's VLAN or gateway, or its internet access (rules). While unset, ports with devices on them are left alone |
477
487
 
478
488
  ## Advanced Configuration Examples
479
489
 
package/dist/config.d.ts CHANGED
@@ -17,6 +17,8 @@ export interface EnvironmentConfig {
17
17
  siteId?: string;
18
18
  omadaStrictSsl: boolean;
19
19
  requestTimeout?: number;
20
+ /** LAN addresses or host names of the machine this server runs on (MCP_SERVER_ADDRESSES); empty when not set. */
21
+ serverAddresses: string[];
20
22
  aiProvider: AIProviderType;
21
23
  aiUrl: string;
22
24
  aiModel: string;
package/dist/config.js CHANGED
@@ -36,6 +36,8 @@ const envSchema = z
36
36
  omadaSiteId: z.string().min(1).optional(),
37
37
  omadaStrictSsl: createBooleanStringSchema(true),
38
38
  omadaTimeout: numericStringSchema,
39
+ // LAN address(es) of the machine this server runs on, comma-separated (its switch port is never reassigned)
40
+ serverAddresses: z.string().optional(),
39
41
  // Pre-registered REST actions for the invokeAction tool (optional; raw JSON,
40
42
  // parsed + validated by parseRestActions after the env parse)
41
43
  restActions: z.string().optional(),
@@ -163,6 +165,7 @@ export function loadConfig(env = process.env) {
163
165
  omadaSiteId: env.OMADA_SITE_ID,
164
166
  omadaStrictSsl: env.OMADA_STRICT_SSL,
165
167
  omadaTimeout: env.OMADA_TIMEOUT,
168
+ serverAddresses: env.MCP_SERVER_ADDRESSES,
166
169
  // Pre-registered REST actions
167
170
  restActions: env.MCP_REST_ACTIONS,
168
171
  // Chat-face tool slice
@@ -246,6 +249,7 @@ export function loadConfig(env = process.env) {
246
249
  siteId: parsed.data.omadaSiteId,
247
250
  omadaStrictSsl: parsed.data.omadaStrictSsl,
248
251
  requestTimeout: parsed.data.omadaTimeout,
252
+ serverAddresses: (parsed.data.serverAddresses ?? '').split(',').map((a) => a.trim()).filter((a) => a !== ''),
249
253
  // Pre-registered REST actions (throws on malformed JSON — config typos fail loudly)
250
254
  restActions: parseRestActions(parsed.data.restActions),
251
255
  // Chat-face tool slice (throws on unknown category/access — typos fail loudly)
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
@@ -2,8 +2,9 @@
2
2
  * Omada adapter for the vendor-neutral network model (src/net/model.ts).
3
3
  *
4
4
  * 2.4.5 covers networks (LAN networks / VLANs) and Wi-Fi (SSIDs); 2.4.7 rules (gateway
5
- * ACLs, see omadaRules.ts) and listing groups. Switch ports and mDNS arrive with 2.4.8;
6
- * until then those calls fail with NetError UNSUPPORTED.
5
+ * ACLs, see omadaRules.ts) and listing groups; 2.4.8 switch ports (the networks a port
6
+ * carries), listing port profiles and the mDNS repeater (see omadaPorts.ts). Creating
7
+ * port profiles, groups and reservations is refused with NetError UNSUPPORTED.
7
8
  *
8
9
  * Omada specifics handled here:
9
10
  * - networks have no "guest" purpose and no isolation flag in the API (guest is per
@@ -14,11 +15,13 @@
14
15
  * - Omada lists every SSID again under a pseudo WLAN group "gateway" without detail.
15
16
  */
16
17
  import type { OmadaClient } from '../../omadaClient/index.js';
17
- import { type ApplyResult, type Capabilities, type Change, type Client, type Group, type Network, type NetworkController, type Plan, type ProtectedResources, type Reservation, type Rule, type Wifi } from '../model.js';
18
+ import { type ApplyResult, type Capabilities, type Change, type Client, type Group, type MdnsRepeater, type Network, type NetworkController, type Plan, type Port, type PortProfile, type PortRef, type ProtectedResources, type Reservation, type Rule, type Wifi } from '../model.js';
18
19
  export interface OmadaAdapterOptions {
19
20
  siteId?: string;
20
21
  /** The controller's host name or address (host of OMADA_BASE_URL): its network is protected. */
21
22
  controllerHost?: string;
23
+ /** Where this server runs (MCP_SERVER_ADDRESSES): the switch port it is on is never reassigned. */
24
+ serverHosts?: string[];
22
25
  /** Resolves a host name to IPv4 addresses (default: the system resolver). */
23
26
  resolveHost?: (host: string) => Promise<string[]>;
24
27
  }
@@ -30,9 +33,19 @@ export declare class OmadaNetworkController implements NetworkController {
30
33
  private readonly executors;
31
34
  /** The controller's IPv4 addresses; 'unknown' when its host name can't be resolved (then every routed network is protected). */
32
35
  private controllerAddresses;
36
+ /** This server's IPv4 addresses; 'unset' when not configured, 'unknown' when one can't be resolved. */
37
+ private serverAddresses;
38
+ /**
39
+ * The controller's and this server's addresses together: their networks are protected and rules
40
+ * must not cut them off the internet. 'unknown' when either can't be resolved (then every routed
41
+ * network is protected); this server's are left out while not configured.
42
+ */
43
+ private hostAddresses;
33
44
  constructor(client: OmadaClient, options?: OmadaAdapterOptions);
34
45
  capabilities(): Promise<Capabilities>;
35
46
  private resolveController;
47
+ /** IPv4 addresses of hosts given by address or name; 'unknown' if any can't be resolved. */
48
+ private addressesOf;
36
49
  private snapshot;
37
50
  private toNetwork;
38
51
  private isProtected;
@@ -47,11 +60,30 @@ export declare class OmadaNetworkController implements NetworkController {
47
60
  listWifi(): Promise<Wifi[]>;
48
61
  listClients(): Promise<Client[]>;
49
62
  listReservations(): Promise<Reservation[]>;
50
- listPortProfiles(): Promise<never>;
51
- listPorts(): Promise<never>;
63
+ listPortProfiles(): Promise<PortProfile[]>;
64
+ listPorts(device?: PortRef['device']): Promise<Port[]>;
52
65
  listRules(): Promise<Rule[]>;
53
66
  listGroups(kind?: Group['kind']): Promise<Group[]>;
54
- getMdnsRepeater(): Promise<never>;
67
+ getMdnsRepeater(): Promise<MdnsRepeater>;
68
+ private portWorld;
69
+ /** For each network, the devices whose ports carry it. */
70
+ private carrying;
71
+ /** A switch by name, or by MAC (as { mac } or as its id). */
72
+ private resolveSwitch;
73
+ /**
74
+ * Why a port can't be reassigned, or undefined. Never: an uplink, the port the controller
75
+ * or this server is on (allowLockout doesn't change that). When where they are can't be
76
+ * told (address unknown or not configured, or inside the site but not seen on it), ports
77
+ * with online devices are left alone; empty ports can still be assigned.
78
+ */
79
+ private portProtection;
80
+ private toPort;
81
+ /**
82
+ * Gives a port its own networks (untagged + tagged); its other settings keep following its
83
+ * profile. What it carries before and after comes from each network's list of ports.
84
+ */
85
+ private buildPortAssign;
86
+ private buildMdnsSet;
55
87
  plan(change: Change): Promise<Plan>;
56
88
  apply(plan: Plan, options?: {
57
89
  allowLockout?: boolean;
@@ -115,7 +147,7 @@ export declare class OmadaNetworkController implements NetworkController {
115
147
  private buildNetworkCreate;
116
148
  private buildNetworkUpdate;
117
149
  private buildNetworkDelete;
118
- /** Everything that still references a network: SSIDs, port profiles, DHCP reservations, ACL rules. */
150
+ /** Everything that still references a network: SSIDs, port profiles, switch ports carrying it untagged, DHCP reservations, ACL rules. */
119
151
  private networkUsers;
120
152
  private buildWifiCreate;
121
153
  private buildWifiUpdate;