@yawlabs/tailscale-mcp 0.23.1 → 0.23.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
@@ -732,13 +732,13 @@ This shows a read-only banner in the Tailscale Admin Console pointing to your re
732
732
 
733
733
  ## Running on oam.js (optional)
734
734
 
735
- [oam.js](https://oamjs.org) runs this server unmodified, and the `tailscale-mcp` command only ever uses the **latest oam release, currently 0.19.1**. Verified against the published oam 0.19.1: full MCP handshake, all 97 admin-API tools plus `tailscale_tool_groups`, all 4 resources, identical error responses, and a clean stdout protocol stream — from the shipped bundle *and* straight from the TypeScript source with no build step.
735
+ [oam.js](https://oamjs.org) runs this server unmodified, and the `tailscale-mcp` command only ever uses the **latest oam release, currently 0.19.5**. Verified against the published oam 0.19.5: full MCP handshake, all 97 admin-API tools plus `tailscale_tool_groups`, all 4 resources, identical error responses, and a clean stdout protocol stream — from the shipped bundle *and* straight from the TypeScript source with no build step.
736
736
 
737
- **oam 0.19.1 is the minimum.** A floor matters here: releases before 0.9.0 ran `child_process.execFile` arguments through a shell, re-splitting them on whitespace and executing shell metacharacters inside an argument, and this server shells out to the `tailscale` binary across its local-CLI tools, so that was a reachable bug rather than a theoretical one.
737
+ **oam 0.19.5 is the minimum.** A floor matters here: releases before 0.9.0 ran `child_process.execFile` arguments through a shell, re-splitting them on whitespace and executing shell metacharacters inside an argument, and this server shells out to the `tailscale` binary across its local-CLI tools, so that was a reachable bug rather than a theoretical one.
738
738
 
739
739
  How the `tailscale-mcp` command (`bin/tailscale-mcp.mjs`) picks a runtime:
740
740
 
741
- - **`TAILSCALE_MCP_RUNTIME=auto`** (the default) — if a client already launched it with `oam run` on oam 0.19.1 or newer, the server runs in that process. Otherwise it uses `OAM_BIN` when that is 0.19.1 or newer, else asks every oam binary it can find — `OAM_INSTALL_DIR` when that is set, then `%LOCALAPPDATA%\oam\bin` and `~/.oam/bin` on Windows, `~/.oam/bin` elsewhere, then `PATH` — for its version and uses the newest at or above the floor (on a tie the installed copy wins). With none, it runs on Node. An oam host older than 0.19.1 never serves the server itself: it hands off to the newest usable oam, or to Node on `PATH`, or exits with an error when there is neither. Whenever it looks for an oam, stderr names an `OAM_BIN` that was passed over and why; the oam binaries it found and passed over are named, each with its reason, only when no usable oam turns up.
741
+ - **`TAILSCALE_MCP_RUNTIME=auto`** (the default) — if a client already launched it with `oam run` on oam 0.19.5 or newer, the server runs in that process. Otherwise it uses `OAM_BIN` when that is 0.19.5 or newer, else asks every oam binary it can find — `OAM_INSTALL_DIR` when that is set, then `%LOCALAPPDATA%\oam\bin` and `~/.oam/bin` on Windows, `~/.oam/bin` elsewhere, then `PATH` — for its version and uses the newest at or above the floor (on a tie the installed copy wins). With none, it runs on Node. An oam host older than 0.19.5 never serves the server itself: it hands off to the newest usable oam, or to Node on `PATH`, or exits with an error when there is neither. Whenever it looks for an oam, stderr names an `OAM_BIN` that was passed over and why; the oam binaries it found and passed over are named, each with its reason, only when no usable oam turns up.
742
742
  - **`TAILSCALE_MCP_RUNTIME=oam`** — the same, but exit with an error instead of falling back to Node. The error names the remedy for what it actually found: `oam self-update` for an oam older than the floor, a check of the binary for one that would not run, and installing oam only when none was found (and on linux-arm64, which oam publishes no build for, not even then).
743
743
  - **`TAILSCALE_MCP_RUNTIME=node`** — always Node: in-process under `npx`, handed off to Node on `PATH` when a client launches the command with `oam run`.
744
744
 
@@ -105,7 +105,7 @@
105
105
  * shipped bundle; keep it in step.
106
106
  *
107
107
  * MINIMUM OAM VERSION
108
- * The latest oam release, 0.19.1 -- bump OAM_MIN when oam ships a newer one.
108
+ * The latest oam release, 0.19.5 -- bump OAM_MIN when oam ships a newer one.
109
109
  * Only the current oam is used and verified; an older one is passed over for a
110
110
  * newer oam, or for Node. The floor is not cosmetic: before 0.9.0
111
111
  * `child_process.execFile` ran its arguments through a SHELL, `exec` accepted
@@ -138,7 +138,7 @@ import { delimiter, join } from "node:path";
138
138
  import { fileURLToPath } from "node:url";
139
139
 
140
140
  /** The latest oam release, and the oldest one used. See MINIMUM OAM VERSION above. */
141
- const OAM_MIN = [0, 19, 1];
141
+ const OAM_MIN = [0, 19, 5];
142
142
 
143
143
  /**
144
144
  * The oldest Node this package supports, matching package.json `engines.node`.