@yawlabs/tailscale-mcp 0.9.0 → 0.9.1
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 +1 -1
- package/dist/index.js +25 -12
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -158,7 +158,7 @@ Set to `1` or `true` to drop every tool without `readOnlyHint: true`. Stacks wit
|
|
|
158
158
|
The server logs the active filter to stderr on startup:
|
|
159
159
|
|
|
160
160
|
```
|
|
161
|
-
@yawlabs/tailscale-mcp v0.9.
|
|
161
|
+
@yawlabs/tailscale-mcp v0.9.1 ready (19 tools, profile=core, readonly)
|
|
162
162
|
```
|
|
163
163
|
|
|
164
164
|
If you don't set any filter, startup prints a tip pointing you at the profiles.
|
package/dist/index.js
CHANGED
|
@@ -31284,16 +31284,16 @@ var keyTools = [
|
|
|
31284
31284
|
},
|
|
31285
31285
|
{
|
|
31286
31286
|
name: "tailscale_get_key",
|
|
31287
|
-
description: "Get details for a specific auth key.",
|
|
31287
|
+
description: "Get details for a specific key (auth key, OAuth client, or federated identity).",
|
|
31288
31288
|
annotations: {
|
|
31289
|
-
title: "Get
|
|
31289
|
+
title: "Get key",
|
|
31290
31290
|
readOnlyHint: true,
|
|
31291
31291
|
destructiveHint: false,
|
|
31292
31292
|
idempotentHint: true,
|
|
31293
31293
|
openWorldHint: true
|
|
31294
31294
|
},
|
|
31295
31295
|
inputSchema: external_exports3.object({
|
|
31296
|
-
keyId: external_exports3.string().describe("The auth key
|
|
31296
|
+
keyId: external_exports3.string().describe("The key ID (auth key, OAuth client, or federated identity)")
|
|
31297
31297
|
}),
|
|
31298
31298
|
handler: async (input) => {
|
|
31299
31299
|
return apiGet(`/tailnet/${getTailnet()}/keys/${encPath(input.keyId)}`);
|
|
@@ -31376,16 +31376,16 @@ var keyTools = [
|
|
|
31376
31376
|
},
|
|
31377
31377
|
{
|
|
31378
31378
|
name: "tailscale_delete_key",
|
|
31379
|
-
description: "Delete
|
|
31379
|
+
description: "Delete a key (auth key, OAuth client, or federated identity). This is irreversible. For auth keys, devices already authenticated are unaffected but no new devices can use it. For OAuth clients and federated identities, any integrations using them lose access immediately.",
|
|
31380
31380
|
annotations: {
|
|
31381
|
-
title: "Delete
|
|
31381
|
+
title: "Delete key",
|
|
31382
31382
|
readOnlyHint: false,
|
|
31383
31383
|
destructiveHint: true,
|
|
31384
31384
|
idempotentHint: true,
|
|
31385
31385
|
openWorldHint: true
|
|
31386
31386
|
},
|
|
31387
31387
|
inputSchema: external_exports3.object({
|
|
31388
|
-
keyId: external_exports3.string().describe("The
|
|
31388
|
+
keyId: external_exports3.string().describe("The key ID to delete (auth key, OAuth client, or federated identity)")
|
|
31389
31389
|
}),
|
|
31390
31390
|
handler: async (input) => {
|
|
31391
31391
|
return apiDelete(`/tailnet/${getTailnet()}/keys/${encPath(input.keyId)}`);
|
|
@@ -31433,7 +31433,7 @@ var keyTools = [
|
|
|
31433
31433
|
var logStreamingTools = [
|
|
31434
31434
|
{
|
|
31435
31435
|
name: "tailscale_list_log_stream_configs",
|
|
31436
|
-
description: "List all log streaming configurations for your tailnet. Fetches both 'configuration' (audit) and 'network' (flow) log stream configs. Log streaming sends logs to external destinations like Axiom, Datadog, Splunk, Elasticsearch,
|
|
31436
|
+
description: "List all log streaming configurations for your tailnet. Fetches both 'configuration' (audit) and 'network' (flow) log stream configs. Log streaming sends logs to external destinations like Axiom, Datadog, Splunk, Elasticsearch, or S3.",
|
|
31437
31437
|
annotations: {
|
|
31438
31438
|
title: "List log stream configs",
|
|
31439
31439
|
readOnlyHint: true,
|
|
@@ -31484,7 +31484,7 @@ var logStreamingTools = [
|
|
|
31484
31484
|
},
|
|
31485
31485
|
{
|
|
31486
31486
|
name: "tailscale_set_log_stream_config",
|
|
31487
|
-
description: "Set the log streaming configuration for a specific log type. Configures where logs are sent (e.g. Axiom, Datadog, Splunk, Elasticsearch, S3,
|
|
31487
|
+
description: "Set the log streaming configuration for a specific log type. Configures where logs are sent (e.g. Axiom, Datadog, Splunk, Elasticsearch, S3).\n\nPer-destination required fields:\n- splunk / elastic / panther / cribl / datadog / axiom: url + token (user optional)\n- s3: s3Bucket + s3Region + s3AuthenticationType, plus either (s3AccessKeyId + s3SecretAccessKey) for 'accesskey' auth or s3RoleArn for 'rolearn' auth. Call tailscale_create_aws_external_id first when using 'rolearn'.",
|
|
31488
31488
|
annotations: {
|
|
31489
31489
|
title: "Set log stream config",
|
|
31490
31490
|
readOnlyHint: false,
|
|
@@ -31494,10 +31494,23 @@ var logStreamingTools = [
|
|
|
31494
31494
|
},
|
|
31495
31495
|
inputSchema: external_exports3.object({
|
|
31496
31496
|
logType: external_exports3.enum(["configuration", "network"]).describe("The log type: 'configuration' for audit logs, 'network' for network flow logs"),
|
|
31497
|
-
destinationType: external_exports3.enum(["splunk", "elastic", "panther", "cribl", "datadog", "axiom", "s3"
|
|
31498
|
-
url: external_exports3.string().optional().describe("Destination URL (required for
|
|
31497
|
+
destinationType: external_exports3.enum(["splunk", "elastic", "panther", "cribl", "datadog", "axiom", "s3"]).describe("The log streaming destination type"),
|
|
31498
|
+
url: external_exports3.string().optional().describe("Destination URL (required for non-s3 destinations)"),
|
|
31499
31499
|
token: external_exports3.string().optional().describe("Authentication token or API key for the destination"),
|
|
31500
|
-
user: external_exports3.string().optional().describe("Username for the destination (if required)")
|
|
31500
|
+
user: external_exports3.string().optional().describe("Username for the destination (if required)"),
|
|
31501
|
+
uploadPeriodMinutes: external_exports3.number().optional().describe("Minutes to wait between uploads (max 1440). Optional."),
|
|
31502
|
+
compressionFormat: external_exports3.enum(["zstd", "gzip", "none"]).optional().describe("Compression algorithm for log uploads. Defaults to 'none'."),
|
|
31503
|
+
s3Bucket: external_exports3.string().optional().describe("(s3 only) S3 bucket name. Required when destinationType is 's3'."),
|
|
31504
|
+
s3Region: external_exports3.string().optional().describe("(s3 only) AWS region of the S3 bucket. Required when destinationType is 's3'."),
|
|
31505
|
+
s3KeyPrefix: external_exports3.string().optional().describe("(s3 only) Optional prefix prepended to the auto-generated S3 object key."),
|
|
31506
|
+
s3AuthenticationType: external_exports3.enum(["accesskey", "rolearn"]).optional().describe(
|
|
31507
|
+
"(s3 only) Authentication mode. Required when destinationType is 's3'. Tailscale recommends 'rolearn'."
|
|
31508
|
+
),
|
|
31509
|
+
s3AccessKeyId: external_exports3.string().optional().describe("(s3 only) AWS access key id. Required when s3AuthenticationType is 'accesskey'."),
|
|
31510
|
+
s3SecretAccessKey: external_exports3.string().optional().describe("(s3 only) AWS secret access key. Required when s3AuthenticationType is 'accesskey'."),
|
|
31511
|
+
s3RoleArn: external_exports3.string().optional().describe(
|
|
31512
|
+
"(s3 only) IAM role ARN that Tailscale will assume. Required when s3AuthenticationType is 'rolearn'."
|
|
31513
|
+
)
|
|
31501
31514
|
}),
|
|
31502
31515
|
handler: async (input) => {
|
|
31503
31516
|
const { logType, ...body } = input;
|
|
@@ -32281,7 +32294,7 @@ var webhookTools = [
|
|
|
32281
32294
|
];
|
|
32282
32295
|
|
|
32283
32296
|
// src/index.ts
|
|
32284
|
-
var version2 = true ? "0.9.
|
|
32297
|
+
var version2 = true ? "0.9.1" : (await null).createRequire(import.meta.url)("../package.json").version;
|
|
32285
32298
|
var subcommand = process.argv[2];
|
|
32286
32299
|
if (subcommand === "deploy-acl") {
|
|
32287
32300
|
const filePath = process.argv[3];
|