@yawlabs/tailscale-mcp 0.10.2 → 0.10.3

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 (2) hide show
  1. package/dist/index.js +13 -6
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -30405,6 +30405,10 @@ async function deployAcl(filePath) {
30405
30405
  console.error(`ACL validation failed: ${validateRes.error}`);
30406
30406
  process.exit(1);
30407
30407
  }
30408
+ if (validateRes.rawBody?.trim()) {
30409
+ console.error(`ACL validation failed: ${extractErrorMessage(validateRes.rawBody.trim())}`);
30410
+ process.exit(1);
30411
+ }
30408
30412
  const deployRes = await apiPost(`/tailnet/${getTailnet()}/acl`, void 0, {
30409
30413
  rawBody: policy,
30410
30414
  contentType: "application/hujson",
@@ -31270,7 +31274,7 @@ var inviteTools = [
31270
31274
  deviceId: external_exports3.string().describe("The device ID to create an invite for"),
31271
31275
  multiUse: external_exports3.boolean().optional().describe("Whether the invite can be used more than once (default: false)"),
31272
31276
  allowExitNode: external_exports3.boolean().optional().describe("Whether the invited device can be used as an exit node (default: false)"),
31273
- email: external_exports3.string().email().optional().describe("Email address to send the invite to")
31277
+ email: external_exports3.email().optional().describe("Email address to send the invite to")
31274
31278
  }),
31275
31279
  handler: async (input) => {
31276
31280
  const body = {};
@@ -31358,7 +31362,7 @@ var inviteTools = [
31358
31362
  openWorldHint: true
31359
31363
  },
31360
31364
  inputSchema: external_exports3.object({
31361
- email: external_exports3.string().email().optional().describe("Email address to send the invite to"),
31365
+ email: external_exports3.email().optional().describe("Email address to send the invite to"),
31362
31366
  role: external_exports3.enum(["member", "admin", "it-admin", "network-admin", "billing-admin", "auditor"]).optional().describe("Role to assign to the invited user (default: member)")
31363
31367
  }),
31364
31368
  handler: async (input) => {
@@ -32174,12 +32178,15 @@ var tailnetTools = [
32174
32178
  openWorldHint: true
32175
32179
  },
32176
32180
  inputSchema: external_exports3.object({
32177
- account: external_exports3.object({ email: external_exports3.string().email() }).optional().describe("Account contact email"),
32178
- support: external_exports3.object({ email: external_exports3.string().email() }).optional().describe("Support contact email"),
32179
- security: external_exports3.object({ email: external_exports3.string().email() }).optional().describe("Security contact email")
32181
+ account: external_exports3.object({ email: external_exports3.email() }).optional().describe("Account contact email"),
32182
+ support: external_exports3.object({ email: external_exports3.email() }).optional().describe("Support contact email"),
32183
+ security: external_exports3.object({ email: external_exports3.email() }).optional().describe("Security contact email")
32180
32184
  }),
32181
32185
  handler: async (input) => {
32182
32186
  const types = ["account", "support", "security"].filter((t) => input[t] !== void 0);
32187
+ if (types.length === 0) {
32188
+ throw new Error("No fields to update. Provide at least one of: account, support, security.");
32189
+ }
32183
32190
  const results = await Promise.all(
32184
32191
  types.map(async (contactType) => {
32185
32192
  const res = await apiPatch(
@@ -32512,7 +32519,7 @@ var webhookTools = [
32512
32519
  ];
32513
32520
 
32514
32521
  // src/index.ts
32515
- var version2 = true ? "0.10.2" : (await null).createRequire(import.meta.url)("../package.json").version;
32522
+ var version2 = true ? "0.10.3" : (await null).createRequire(import.meta.url)("../package.json").version;
32516
32523
  var subcommand = process.argv[2];
32517
32524
  if (subcommand === "deploy-acl") {
32518
32525
  const filePath = process.argv[3];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yawlabs/tailscale-mcp",
3
- "version": "0.10.2",
3
+ "version": "0.10.3",
4
4
  "description": "Tailscale MCP server for managing your tailnet from AI assistants",
5
5
  "license": "MIT",
6
6
  "author": "YawLabs <contact@yaw.sh>",