tailscale-mcp 2026.3.17 → 2026.3.18

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/CHANGELOG.md CHANGED
@@ -4,6 +4,24 @@ All notable changes to this project will be documented in this file.
4
4
  This project uses [Calendar Versioning](https://calver.org/) (`YYYY.MM.DD.TS`).
5
5
 
6
6
 
7
+ ## v2026.03.17.1
8
+
9
+ - **Fix DERP map, log streaming, and tailnet lock 404 handling** (#42)
10
+ - Fix `tailscale_derp_map` to read from ACL policy's `derpMap` field instead of non-existent standalone endpoint
11
+ - Add `tailscale_derp_map_set` tool — sets custom DERP regions (IDs 900-999) by patching the ACL policy
12
+ - Handle 404 gracefully for `tailscale_log_stream_get` — returns "not configured" instead of error
13
+ - Handle 404 gracefully for `tailscale_tailnet_lock_status` — returns "not initialized" with CLI setup instructions
14
+ - Tool count: 48 → 49
15
+ - Tests: 199 → 205
16
+
17
+ ## v2026.03.16.4
18
+
19
+ - **Add pre-publish security scan** (#39)
20
+ - Add `scripts/prepublish-check.js` — blocks `npm publish` if forbidden files (`.mcpregistry_*`, `.env`, `.pem`, `.key`, `credentials`) are in the tarball
21
+ - Add `prepublishOnly` npm hook: build + test + security scan before every publish
22
+ - Update `.npmignore` with comprehensive security exclusions
23
+ - Implements ADR-0026
24
+
7
25
  ## v2026.03.16.3
8
26
 
9
27
  - **Plugin API: extract `createServer()` factory for enterprise extensibility** (#37)
package/CLAUDE.md CHANGED
@@ -86,7 +86,8 @@ docs/
86
86
  - **Error handling**: No credential leaks in error messages (Bearer token never appears in logs or errors)
87
87
  - **Credentials**: Never hardcoded, never logged, never in git
88
88
  - **Secret Redaction — MANDATORY**: When using `grep`, `cat`, `sed`, `awk`, shell scripts, or any tool that reads/displays file contents containing secrets (`.env`, credentials, API keys, tokens, passwords), **ALWAYS redact the secret values** in output. Never display raw secret values in terminal output, logs, conversation context, or commit messages.
89
- - **MCP Registry Tokens**: `.mcpregistry_*` files are gitignored (ADR-0024). Never commit registry auth tokens.
89
+ - **MCP Registry Tokens**: `.mcpregistry_*` files are gitignored (ADR-0024) AND npmignored. Never commit or publish registry auth tokens.
90
+ - **Pre-Publish Security Scan — MANDATORY** (ADR-0026): `prepublishOnly` hook runs `scripts/prepublish-check.js` before every `npm publish`. Blocks publish if forbidden files (`.mcpregistry_*`, `.env`, `.pem`, `.key`, `credentials`) are in the tarball. Never bypass with `--ignore-scripts`.
90
91
  - **Public Repo Documentation Policy — MANDATORY**: This is a **public repository**. All documentation, code examples, test data, and commit messages MUST use only generic placeholders:
91
92
  - Tailnet names: `your-tailnet-name`, `example.com`
92
93
  - Device IDs: `123456789`
@@ -132,6 +133,7 @@ docs/
132
133
  - Ensure `npm run build` succeeds before publishing
133
134
  - Verify with `npm view tailscale-mcp version` after publishing
134
135
  - Auth: granular access token set via `npm config set //registry.npmjs.org/:_authToken TOKEN`
136
+ - **`.npmignore` MUST exclude** `.mcpregistry_*` files (ADR-0024) — verify before every publish that tokens are not in tarball
135
137
 
136
138
  ## Git Workflow
137
139
 
package/dist/server.d.ts CHANGED
@@ -15,7 +15,7 @@ export interface CreateServerOptions {
15
15
  middleware?: ToolMiddleware;
16
16
  /** Server name (default: "mcp-tailscale") */
17
17
  name?: string;
18
- /** Server version (default: "2026.3.16") */
18
+ /** Server version (default: "2026.3.18") */
19
19
  version?: string;
20
20
  }
21
21
  /**
@@ -26,7 +26,7 @@ export interface CreateServerResult {
26
26
  server: Server;
27
27
  /** The Tailscale API client */
28
28
  client: ITailscaleClient;
29
- /** All 48 tool definitions */
29
+ /** All 49 tool definitions */
30
30
  allToolDefinitions: Tool[];
31
31
  /** Map of tool name → handler function */
32
32
  toolHandlers: Map<string, ToolHandler>;
package/dist/server.js CHANGED
@@ -32,7 +32,7 @@ import { postureToolDefinitions, handlePostureTool, } from "./tools/posture.js";
32
32
  * });
33
33
  */
34
34
  export function createServer(options) {
35
- const { middleware, name = "mcp-tailscale", version = "2026.3.16", } = options ?? {};
35
+ const { middleware, name = "mcp-tailscale", version = "2026.3.18", } = options ?? {};
36
36
  // Assemble all tool definitions
37
37
  const allToolDefinitions = [
38
38
  ...deviceToolDefinitions,
@@ -9,6 +9,8 @@ export declare const diagnosticsToolDefinitions: ({
9
9
  destinationType?: undefined;
10
10
  url?: undefined;
11
11
  confirm?: undefined;
12
+ regions?: undefined;
13
+ omitDefaultRegions?: undefined;
12
14
  };
13
15
  required?: undefined;
14
16
  };
@@ -26,6 +28,8 @@ export declare const diagnosticsToolDefinitions: ({
26
28
  destinationType?: undefined;
27
29
  url?: undefined;
28
30
  confirm?: undefined;
31
+ regions?: undefined;
32
+ omitDefaultRegions?: undefined;
29
33
  };
30
34
  required: string[];
31
35
  };
@@ -52,6 +56,100 @@ export declare const diagnosticsToolDefinitions: ({
52
56
  type: string;
53
57
  description: string;
54
58
  };
59
+ regions?: undefined;
60
+ omitDefaultRegions?: undefined;
61
+ };
62
+ required: string[];
63
+ };
64
+ } | {
65
+ name: string;
66
+ description: string;
67
+ inputSchema: {
68
+ type: "object";
69
+ properties: {
70
+ regions: {
71
+ type: string;
72
+ description: string;
73
+ additionalProperties: {
74
+ type: string;
75
+ properties: {
76
+ regionId: {
77
+ type: string;
78
+ description: string;
79
+ };
80
+ regionCode: {
81
+ type: string;
82
+ description: string;
83
+ };
84
+ regionName: {
85
+ type: string;
86
+ description: string;
87
+ };
88
+ avoid: {
89
+ type: string;
90
+ description: string;
91
+ };
92
+ nodes: {
93
+ type: string;
94
+ description: string;
95
+ items: {
96
+ type: string;
97
+ properties: {
98
+ name: {
99
+ type: string;
100
+ description: string;
101
+ };
102
+ regionId: {
103
+ type: string;
104
+ description: string;
105
+ };
106
+ hostName: {
107
+ type: string;
108
+ description: string;
109
+ };
110
+ certName: {
111
+ type: string;
112
+ description: string;
113
+ };
114
+ ipv4: {
115
+ type: string;
116
+ description: string;
117
+ };
118
+ ipv6: {
119
+ type: string;
120
+ description: string;
121
+ };
122
+ stunPort: {
123
+ type: string;
124
+ description: string;
125
+ };
126
+ stunOnly: {
127
+ type: string;
128
+ description: string;
129
+ };
130
+ derpPort: {
131
+ type: string;
132
+ description: string;
133
+ };
134
+ };
135
+ required: string[];
136
+ };
137
+ };
138
+ };
139
+ required: string[];
140
+ };
141
+ };
142
+ omitDefaultRegions: {
143
+ type: string;
144
+ description: string;
145
+ };
146
+ confirm: {
147
+ type: string;
148
+ description: string;
149
+ };
150
+ logType?: undefined;
151
+ destinationType?: undefined;
152
+ url?: undefined;
55
153
  };
56
154
  required: string[];
57
155
  };
@@ -1 +1 @@
1
- {"version":3,"file":"diagnostics.d.ts","sourceRoot":"","sources":["../../src/tools/diagnostics.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAkC3D,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAwEtC,CAAC;AAMF,wBAAsB,qBAAqB,CACzC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,MAAM,EAAE,gBAAgB,GACvB,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC,CAsG7D"}
1
+ {"version":3,"file":"diagnostics.d.ts","sourceRoot":"","sources":["../../src/tools/diagnostics.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAgE3D,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA4HtC,CAAC;AAMF,wBAAsB,qBAAqB,CACzC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,MAAM,EAAE,gBAAgB,GACvB,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC,CAoJ7D"}
@@ -1,4 +1,5 @@
1
1
  import { z } from "zod";
2
+ import { TailscaleApiError } from "../utils/errors.js";
2
3
  // ---------------------------------------------------------------------------
3
4
  // Zod schemas for input validation
4
5
  // ---------------------------------------------------------------------------
@@ -20,6 +21,29 @@ const LogStreamSetSchema = z.object({
20
21
  }),
21
22
  });
22
23
  const DerpMapSchema = z.object({});
24
+ const DerpMapSetSchema = z.object({
25
+ regions: z.record(z.string(), z.object({
26
+ regionId: z.number().int().positive(),
27
+ regionCode: z.string().min(1),
28
+ regionName: z.string().min(1),
29
+ avoid: z.boolean().optional(),
30
+ nodes: z.array(z.object({
31
+ name: z.string().min(1),
32
+ regionId: z.number().int().positive(),
33
+ hostName: z.string().min(1),
34
+ certName: z.string().optional(),
35
+ ipv4: z.string().optional(),
36
+ ipv6: z.string().optional(),
37
+ stunPort: z.number().int().optional(),
38
+ stunOnly: z.boolean().optional(),
39
+ derpPort: z.number().int().optional(),
40
+ })),
41
+ })),
42
+ omitDefaultRegions: z.boolean().optional(),
43
+ confirm: z.literal(true, {
44
+ errorMap: () => ({ message: "confirm must be true to update the DERP map" }),
45
+ }),
46
+ });
23
47
  // ---------------------------------------------------------------------------
24
48
  // Tool definitions (for ListTools)
25
49
  // ---------------------------------------------------------------------------
@@ -84,12 +108,63 @@ export const diagnosticsToolDefinitions = [
84
108
  },
85
109
  {
86
110
  name: "tailscale_derp_map",
87
- description: "Get the DERP relay map for the tailnet. Shows all DERP regions and their relay nodes used for traffic routing.",
111
+ description: "Get the custom DERP relay map from the tailnet's ACL policy. Returns the derpMap field from the ACL, or a 'not configured' message if no custom DERP map exists.",
88
112
  inputSchema: {
89
113
  type: "object",
90
114
  properties: {},
91
115
  },
92
116
  },
117
+ {
118
+ name: "tailscale_derp_map_set",
119
+ description: "Set or update the custom DERP relay map in the tailnet's ACL policy. Requires confirm: true. Custom DERP regions use IDs 900-999. Set omitDefaultRegions: true to replace Tailscale's default relays entirely.",
120
+ inputSchema: {
121
+ type: "object",
122
+ properties: {
123
+ regions: {
124
+ type: "object",
125
+ description: "Map of region ID (string) to region config. Custom regions should use IDs 900-999.",
126
+ additionalProperties: {
127
+ type: "object",
128
+ properties: {
129
+ regionId: { type: "number", description: "Region ID (900-999 for custom)" },
130
+ regionCode: { type: "string", description: "Short region code (e.g., 'mydc')" },
131
+ regionName: { type: "string", description: "Human-readable region name" },
132
+ avoid: { type: "boolean", description: "If true, avoid using this region" },
133
+ nodes: {
134
+ type: "array",
135
+ description: "DERP nodes in this region",
136
+ items: {
137
+ type: "object",
138
+ properties: {
139
+ name: { type: "string", description: "Node name" },
140
+ regionId: { type: "number", description: "Must match parent region" },
141
+ hostName: { type: "string", description: "DERP server hostname" },
142
+ certName: { type: "string", description: "TLS cert name if different from hostName" },
143
+ ipv4: { type: "string", description: "IPv4 address" },
144
+ ipv6: { type: "string", description: "IPv6 address" },
145
+ stunPort: { type: "number", description: "STUN port (default 3478)" },
146
+ stunOnly: { type: "boolean", description: "If true, only use for STUN" },
147
+ derpPort: { type: "number", description: "DERP port (default 443)" },
148
+ },
149
+ required: ["name", "regionId", "hostName"],
150
+ },
151
+ },
152
+ },
153
+ required: ["regionId", "regionCode", "regionName", "nodes"],
154
+ },
155
+ },
156
+ omitDefaultRegions: {
157
+ type: "boolean",
158
+ description: "If true, omit Tailscale's default DERP regions and use only custom ones",
159
+ },
160
+ confirm: {
161
+ type: "boolean",
162
+ description: "Must be true to confirm the DERP map update",
163
+ },
164
+ },
165
+ required: ["regions", "confirm"],
166
+ },
167
+ },
93
168
  ];
94
169
  // ---------------------------------------------------------------------------
95
170
  // Tool handler
@@ -146,8 +221,21 @@ export async function handleDiagnosticsTool(name, args, client) {
146
221
  }
147
222
  case "tailscale_log_stream_get": {
148
223
  const parsed = LogStreamGetSchema.parse(args);
149
- const result = await client.get(`/tailnet/${client.tailnet}/logging/${parsed.logType}/stream`);
150
- return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
224
+ try {
225
+ const result = await client.get(`/tailnet/${client.tailnet}/logging/${parsed.logType}/stream`);
226
+ return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
227
+ }
228
+ catch (err) {
229
+ if (err instanceof TailscaleApiError && err.status === 404 ||
230
+ err instanceof Error && err.message.includes("404")) {
231
+ return { content: [{ type: "text", text: JSON.stringify({
232
+ configured: false,
233
+ logType: parsed.logType,
234
+ message: `No log streaming configured for '${parsed.logType}' logs. Configure via the Tailscale admin console (https://login.tailscale.com/admin/logs) or use tailscale_log_stream_set to set a streaming destination.`,
235
+ }, null, 2) }] };
236
+ }
237
+ throw err;
238
+ }
151
239
  }
152
240
  case "tailscale_log_stream_set": {
153
241
  const parsed = LogStreamSetSchema.parse(args);
@@ -159,8 +247,36 @@ export async function handleDiagnosticsTool(name, args, client) {
159
247
  }
160
248
  case "tailscale_derp_map": {
161
249
  DerpMapSchema.parse(args);
162
- const result = await client.get(`/tailnet/${client.tailnet}/derp-map`);
163
- return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
250
+ // DERP map is managed through the ACL policy's derpMap field
251
+ const acl = await client.get(`/tailnet/${client.tailnet}/acl`);
252
+ if (acl.derpMap) {
253
+ return { content: [{ type: "text", text: JSON.stringify({
254
+ source: "acl-policy",
255
+ derpMap: acl.derpMap,
256
+ }, null, 2) }] };
257
+ }
258
+ return { content: [{ type: "text", text: JSON.stringify({
259
+ configured: false,
260
+ message: "No custom DERP map configured in ACL policy. The tailnet uses Tailscale's default DERP relay regions. To add custom DERP servers, use tailscale_derp_map_set with regions using IDs 900-999.",
261
+ }, null, 2) }] };
262
+ }
263
+ case "tailscale_derp_map_set": {
264
+ const parsed = DerpMapSetSchema.parse(args);
265
+ // Read current ACL, patch derpMap, write back
266
+ const currentAcl = await client.get(`/tailnet/${client.tailnet}/acl`);
267
+ const derpMap = {
268
+ Regions: parsed.regions,
269
+ };
270
+ if (parsed.omitDefaultRegions !== undefined) {
271
+ derpMap["OmitDefaultRegions"] = parsed.omitDefaultRegions;
272
+ }
273
+ const updatedAcl = { ...currentAcl, derpMap };
274
+ const result = await client.post(`/tailnet/${client.tailnet}/acl`, updatedAcl);
275
+ return { content: [{ type: "text", text: JSON.stringify({
276
+ message: "DERP map updated in ACL policy",
277
+ derpMap,
278
+ aclUpdated: true,
279
+ }, null, 2) }] };
164
280
  }
165
281
  default:
166
282
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"diagnostics.js","sourceRoot":"","sources":["../../src/tools/diagnostics.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"diagnostics.js","sourceRoot":"","sources":["../../src/tools/diagnostics.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"tailnet.d.ts","sourceRoot":"","sources":["../../src/tools/tailnet.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAwD3D,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAkHlC,CAAC;AAMF,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,MAAM,EAAE,gBAAgB,GACvB,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC,CAqE7D"}
1
+ {"version":3,"file":"tailnet.d.ts","sourceRoot":"","sources":["../../src/tools/tailnet.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAyD3D,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAkHlC,CAAC;AAMF,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,MAAM,EAAE,gBAAgB,GACvB,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC,CAiF7D"}
@@ -1,4 +1,5 @@
1
1
  import { z } from "zod";
2
+ import { TailscaleApiError } from "../utils/errors.js";
2
3
  // ---------------------------------------------------------------------------
3
4
  // Zod schemas for input validation
4
5
  // ---------------------------------------------------------------------------
@@ -181,8 +182,21 @@ export async function handleTailnetTool(name, args, client) {
181
182
  }
182
183
  case "tailscale_tailnet_lock_status": {
183
184
  TailnetLockStatusSchema.parse(args);
184
- const result = await client.get(`/tailnet/${client.tailnet}/lock/status`);
185
- return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
185
+ try {
186
+ const result = await client.get(`/tailnet/${client.tailnet}/lock/status`);
187
+ return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
188
+ }
189
+ catch (err) {
190
+ if (err instanceof TailscaleApiError && err.status === 404 ||
191
+ err instanceof Error && err.message.includes("404")) {
192
+ return { content: [{ type: "text", text: JSON.stringify({
193
+ enabled: false,
194
+ initialized: false,
195
+ message: "Tailnet Lock is not initialized. Tailnet Lock requires CLI setup — it cannot be enabled via API. Steps: (1) Run 'tailscale lock init' on a trusted device, (2) Sign existing nodes with 'tailscale lock sign', (3) Status will then be available via this tool. See https://tailscale.com/kb/1226/tailnet-lock for details.",
196
+ }, null, 2) }] };
197
+ }
198
+ throw err;
199
+ }
186
200
  }
187
201
  case "tailscale_tailnet_settings_update": {
188
202
  const parsed = TailnetSettingsUpdateSchema.parse(args);
@@ -1 +1 @@
1
- {"version":3,"file":"tailnet.js","sourceRoot":"","sources":["../../src/tools/tailnet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAQxB,8EAA8E;AAC9E,mCAAmC;AACnC,8EAA8E;AAE9E,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAE9C,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAE9C,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,OAAO,EAAE,CAAC;SACP,MAAM,CAAC;QACN,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,uBAAuB,CAAC;KACjD,CAAC;SACD,QAAQ,EAAE;IACb,OAAO,EAAE,CAAC;SACP,MAAM,CAAC;QACN,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,uBAAuB,CAAC;KACjD,CAAC;SACD,QAAQ,EAAE;IACb,QAAQ,EAAE,CAAC;SACR,MAAM,CAAC;QACN,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,wBAAwB,CAAC;KAClD,CAAC;SACD,QAAQ,EAAE;IACb,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE;QACvB,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,iDAAiD,EAAE,CAAC;KACjF,CAAC;CACH,CAAC,CAAC;AAEH,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAE7C,MAAM,2BAA2B,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,iBAAiB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACzC,oBAAoB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC5C,sBAAsB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAC9D,eAAe,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACvC,sCAAsC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7D,oBAAoB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC5C,iBAAiB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACzC,2BAA2B,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACnD,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE;QACvB,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,iDAAiD,EAAE,CAAC;KACjF,CAAC;CACH,CAAC,CAAC;AAEH,8EAA8E;AAC9E,mCAAmC;AACnC,8EAA8E;AAE9E,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC;QACE,IAAI,EAAE,gCAAgC;QACtC,WAAW,EACT,gHAAgH;QAClH,WAAW,EAAE;YACX,IAAI,EAAE,QAAiB;YACvB,UAAU,EAAE,EAAE;SACf;KACF;IACD;QACE,IAAI,EAAE,gCAAgC;QACtC,WAAW,EACT,uGAAuG;QACzG,WAAW,EAAE;YACX,IAAI,EAAE,QAAiB;YACvB,UAAU,EAAE,EAAE;SACf;KACF;IACD;QACE,IAAI,EAAE,gCAAgC;QACtC,WAAW,EACT,4IAA4I;QAC9I,WAAW,EAAE;YACX,IAAI,EAAE,QAAiB;YACvB,UAAU,EAAE;gBACV,OAAO,EAAE;oBACP,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE;wBACV,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,+BAA+B,EAAE;qBACxE;oBACD,QAAQ,EAAE,CAAC,OAAO,CAAC;oBACnB,WAAW,EAAE,+CAA+C;iBAC7D;gBACD,OAAO,EAAE;oBACP,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE;wBACV,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,+BAA+B,EAAE;qBACxE;oBACD,QAAQ,EAAE,CAAC,OAAO,CAAC;oBACnB,WAAW,EAAE,iBAAiB;iBAC/B;gBACD,QAAQ,EAAE;oBACR,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE;wBACV,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,gCAAgC,EAAE;qBACzE;oBACD,QAAQ,EAAE,CAAC,OAAO,CAAC;oBACnB,WAAW,EAAE,4CAA4C;iBAC1D;gBACD,OAAO,EAAE;oBACP,IAAI,EAAE,SAAS;oBACf,WAAW,EAAE,mDAAmD;iBACjE;aACF;YACD,QAAQ,EAAE,CAAC,SAAS,CAAC;SACtB;KACF;IACD;QACE,IAAI,EAAE,+BAA+B;QACrC,WAAW,EACT,oHAAoH;QACtH,WAAW,EAAE;YACX,IAAI,EAAE,QAAiB;YACvB,UAAU,EAAE,EAAE;SACf;KACF;IACD;QACE,IAAI,EAAE,mCAAmC;QACzC,WAAW,EACT,2HAA2H;QAC7H,WAAW,EAAE;YACX,IAAI,EAAE,QAAiB;YACvB,UAAU,EAAE;gBACV,iBAAiB,EAAE;oBACjB,IAAI,EAAE,SAAS;oBACf,WAAW,EAAE,yEAAyE;iBACvF;gBACD,oBAAoB,EAAE;oBACpB,IAAI,EAAE,SAAS;oBACf,WAAW,EAAE,2CAA2C;iBACzD;gBACD,sBAAsB,EAAE;oBACtB,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,0CAA0C;iBACxD;gBACD,eAAe,EAAE;oBACf,IAAI,EAAE,SAAS;oBACf,WAAW,EAAE,0DAA0D;iBACxE;gBACD,sCAAsC,EAAE;oBACtC,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,wCAAwC;iBACtD;gBACD,oBAAoB,EAAE;oBACpB,IAAI,EAAE,SAAS;oBACf,WAAW,EAAE,yCAAyC;iBACvD;gBACD,iBAAiB,EAAE;oBACjB,IAAI,EAAE,SAAS;oBACf,WAAW,EAAE,qCAAqC;iBACnD;gBACD,2BAA2B,EAAE;oBAC3B,IAAI,EAAE,SAAS;oBACf,WAAW,EAAE,gDAAgD;iBAC9D;gBACD,OAAO,EAAE;oBACP,IAAI,EAAE,SAAS;oBACf,WAAW,EAAE,mDAAmD;iBACjE;aACF;YACD,QAAQ,EAAE,CAAC,SAAS,CAAC;SACtB;KACF;CACF,CAAC;AAEF,8EAA8E;AAC9E,eAAe;AACf,8EAA8E;AAE9E,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,IAAY,EACZ,IAA6B,EAC7B,MAAwB;IAExB,IAAI,CAAC;QACH,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,gCAAgC,CAAC,CAAC,CAAC;gBACtC,wBAAwB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACrC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,GAAG,CAC7B,YAAY,MAAM,CAAC,OAAO,WAAW,CACtC,CAAC;gBACF,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;YAChF,CAAC;YAED,KAAK,gCAAgC,CAAC,CAAC,CAAC;gBACtC,wBAAwB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACrC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,GAAG,CAC7B,YAAY,MAAM,CAAC,OAAO,WAAW,CACtC,CAAC;gBACF,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;YAChF,CAAC;YAED,KAAK,gCAAgC,CAAC,CAAC,CAAC;gBACtC,MAAM,MAAM,GAAG,wBAAwB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACpD,MAAM,IAAI,GAA4B,EAAE,CAAC;gBACzC,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS;oBAAE,IAAI,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC;gBACnE,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS;oBAAE,IAAI,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC;gBACnE,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS;oBAAE,IAAI,CAAC,UAAU,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC;gBACtE,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,KAAK,CAC/B,YAAY,MAAM,CAAC,OAAO,WAAW,EACrC,IAAI,CACL,CAAC;gBACF,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;YAChF,CAAC;YAED,KAAK,+BAA+B,CAAC,CAAC,CAAC;gBACrC,uBAAuB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACpC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,GAAG,CAC7B,YAAY,MAAM,CAAC,OAAO,cAAc,CACzC,CAAC;gBACF,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;YAChF,CAAC;YAED,KAAK,mCAAmC,CAAC,CAAC,CAAC;gBACzC,MAAM,MAAM,GAAG,2BAA2B,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACvD,MAAM,IAAI,GAA4B,EAAE,CAAC;gBACzC,IAAI,MAAM,CAAC,iBAAiB,KAAK,SAAS;oBAAE,IAAI,CAAC,mBAAmB,CAAC,GAAG,MAAM,CAAC,iBAAiB,CAAC;gBACjG,IAAI,MAAM,CAAC,oBAAoB,KAAK,SAAS;oBAAE,IAAI,CAAC,sBAAsB,CAAC,GAAG,MAAM,CAAC,oBAAoB,CAAC;gBAC1G,IAAI,MAAM,CAAC,sBAAsB,KAAK,SAAS;oBAAE,IAAI,CAAC,wBAAwB,CAAC,GAAG,MAAM,CAAC,sBAAsB,CAAC;gBAChH,IAAI,MAAM,CAAC,eAAe,KAAK,SAAS;oBAAE,IAAI,CAAC,iBAAiB,CAAC,GAAG,MAAM,CAAC,eAAe,CAAC;gBAC3F,IAAI,MAAM,CAAC,sCAAsC,KAAK,SAAS;oBAAE,IAAI,CAAC,wCAAwC,CAAC,GAAG,MAAM,CAAC,sCAAsC,CAAC;gBAChK,IAAI,MAAM,CAAC,oBAAoB,KAAK,SAAS;oBAAE,IAAI,CAAC,sBAAsB,CAAC,GAAG,MAAM,CAAC,oBAAoB,CAAC;gBAC1G,IAAI,MAAM,CAAC,iBAAiB,KAAK,SAAS;oBAAE,IAAI,CAAC,mBAAmB,CAAC,GAAG,MAAM,CAAC,iBAAiB,CAAC;gBACjG,IAAI,MAAM,CAAC,2BAA2B,KAAK,SAAS;oBAAE,IAAI,CAAC,6BAA6B,CAAC,GAAG,MAAM,CAAC,2BAA2B,CAAC;gBAC/H,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,KAAK,CAC/B,YAAY,MAAM,CAAC,OAAO,WAAW,EACrC,IAAI,CACL,CAAC;gBACF,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;YAChF,CAAC;YAED;gBACE,OAAO;oBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,yBAAyB,IAAI,EAAE,EAAE,CAAC;iBACnE,CAAC;QACN,CAAC;IACH,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;QACzE,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,mBAAmB,IAAI,KAAK,OAAO,EAAE,EAAE,CAAC;SACzE,CAAC;IACJ,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"tailnet.js","sourceRoot":"","sources":["../../src/tools/tailnet.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "tailscale-mcp",
3
3
  "mcpName": "io.github.itunified-io/tailscale",
4
- "version": "2026.3.17",
5
- "description": "Secure MCP access for private infrastructure over Tailscale — 48 tools for devices, DNS, ACL, keys, users, webhooks, posture, and tailnet management via Tailscale API v2",
4
+ "version": "2026.3.18",
5
+ "description": "Secure MCP access for private infrastructure over Tailscale — 49 tools for devices, DNS, ACL, keys, users, webhooks, posture, and tailnet management via Tailscale API v2",
6
6
  "type": "module",
7
7
  "main": "dist/index.js",
8
8
  "exports": {
@@ -21,7 +21,8 @@
21
21
  "test": "vitest run",
22
22
  "dev": "tsc --watch",
23
23
  "start": "node dist/index.js",
24
- "typecheck": "tsc --noEmit"
24
+ "typecheck": "tsc --noEmit",
25
+ "prepublishOnly": "npm run build && npm test && node scripts/prepublish-check.js"
25
26
  },
26
27
  "repository": {
27
28
  "type": "git",