@yawlabs/tailscale-mcp 0.3.0 → 0.5.0
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 +36 -33
- package/dist/index.js +23250 -120
- package/package.json +10 -11
- package/dist/api.d.ts +0 -35
- package/dist/api.js +0 -134
- package/dist/api.js.map +0 -1
- package/dist/cli.d.ts +0 -5
- package/dist/cli.js +0 -43
- package/dist/cli.js.map +0 -1
- package/dist/index.d.ts +0 -2
- package/dist/index.js.map +0 -1
- package/dist/tools/acl.d.ts +0 -86
- package/dist/tools/acl.js +0 -105
- package/dist/tools/acl.js.map +0 -1
- package/dist/tools/audit.d.ts +0 -50
- package/dist/tools/audit.js +0 -60
- package/dist/tools/audit.js.map +0 -1
- package/dist/tools/devices.d.ts +0 -290
- package/dist/tools/devices.js +0 -254
- package/dist/tools/devices.js.map +0 -1
- package/dist/tools/dns.d.ts +0 -130
- package/dist/tools/dns.js +0 -139
- package/dist/tools/dns.js.map +0 -1
- package/dist/tools/invites.d.ts +0 -158
- package/dist/tools/invites.js +0 -160
- package/dist/tools/invites.js.map +0 -1
- package/dist/tools/keys.d.ts +0 -94
- package/dist/tools/keys.js +0 -92
- package/dist/tools/keys.js.map +0 -1
- package/dist/tools/log-streaming.d.ts +0 -90
- package/dist/tools/log-streaming.js +0 -89
- package/dist/tools/log-streaming.js.map +0 -1
- package/dist/tools/network-lock.d.ts +0 -14
- package/dist/tools/network-lock.js +0 -20
- package/dist/tools/network-lock.js.map +0 -1
- package/dist/tools/oauth-clients.d.ts +0 -118
- package/dist/tools/oauth-clients.js +0 -102
- package/dist/tools/oauth-clients.js.map +0 -1
- package/dist/tools/posture.d.ts +0 -126
- package/dist/tools/posture.js +0 -103
- package/dist/tools/posture.js.map +0 -1
- package/dist/tools/services.d.ts +0 -124
- package/dist/tools/services.js +0 -106
- package/dist/tools/services.js.map +0 -1
- package/dist/tools/status.d.ts +0 -26
- package/dist/tools/status.js +0 -38
- package/dist/tools/status.js.map +0 -1
- package/dist/tools/tailnet.d.ts +0 -142
- package/dist/tools/tailnet.js +0 -111
- package/dist/tools/tailnet.js.map +0 -1
- package/dist/tools/users.d.ts +0 -118
- package/dist/tools/users.js +0 -108
- package/dist/tools/users.js.map +0 -1
- package/dist/tools/webhooks.d.ts +0 -126
- package/dist/tools/webhooks.js +0 -121
- package/dist/tools/webhooks.js.map +0 -1
- package/dist/tools/workload-identity.d.ts +0 -118
- package/dist/tools/workload-identity.js +0 -105
- package/dist/tools/workload-identity.js.map +0 -1
package/README.md
CHANGED
|
@@ -3,9 +3,9 @@
|
|
|
3
3
|
[](https://www.npmjs.com/package/@yawlabs/tailscale-mcp)
|
|
4
4
|
[](https://opensource.org/licenses/MIT)
|
|
5
5
|
[](https://github.com/YawLabs/tailscale-mcp/stargazers)
|
|
6
|
-
[](https://github.com/YawLabs/tailscale-mcp/actions/workflows/ci.yml)
|
|
6
|
+
[](https://github.com/YawLabs/tailscale-mcp/actions/workflows/ci.yml) [](https://github.com/YawLabs/tailscale-mcp/actions/workflows/release.yml)
|
|
7
7
|
|
|
8
|
-
**Manage your Tailscale tailnet from Claude Code, Cursor, and any MCP client.**
|
|
8
|
+
**Manage your Tailscale tailnet from Claude Code, Cursor, and any MCP client.** 98 tools + 4 resources. One env var. Works on first try.
|
|
9
9
|
|
|
10
10
|
Built and maintained by [YawLabs](https://yaw.sh).
|
|
11
11
|
|
|
@@ -17,6 +17,7 @@ Other Tailscale MCP servers were vibe-coded in a weekend and abandoned. This one
|
|
|
17
17
|
- **Safe ACL updates** — uses ETags to prevent overwriting concurrent changes. No silent data loss.
|
|
18
18
|
- **Tool annotations** — every tool declares `readOnlyHint`, `destructiveHint`, and `idempotentHint`, so MCP clients skip confirmation dialogs for safe operations.
|
|
19
19
|
- **MCP Resources** — exposes tailnet status, device list, ACL policy, and DNS config as browsable resources.
|
|
20
|
+
- **Instant startup** — ships as a single self-contained bundle with zero runtime dependencies. `npx` downloads ~150 KB and starts immediately — no 5-minute `node_modules` installs.
|
|
20
21
|
- **Zero restarts** — the server always starts, even with missing credentials. Auth errors surface as clear tool-call errors, not silent crashes that force you to restart your AI assistant.
|
|
21
22
|
- **One env var setup** — no config files, no setup wizards, no multi-step flows.
|
|
22
23
|
- **Every tool verified** — no placeholder endpoints that 404. If it's in the tool list, it works.
|
|
@@ -33,8 +34,6 @@ export TAILSCALE_API_KEY="tskey-api-..."
|
|
|
33
34
|
|
|
34
35
|
**2. Create `.mcp.json` in your project root**
|
|
35
36
|
|
|
36
|
-
macOS / Linux / WSL:
|
|
37
|
-
|
|
38
37
|
```json
|
|
39
38
|
{
|
|
40
39
|
"mcpServers": {
|
|
@@ -46,20 +45,7 @@ macOS / Linux / WSL:
|
|
|
46
45
|
}
|
|
47
46
|
```
|
|
48
47
|
|
|
49
|
-
Windows
|
|
50
|
-
|
|
51
|
-
```json
|
|
52
|
-
{
|
|
53
|
-
"mcpServers": {
|
|
54
|
-
"tailscale": {
|
|
55
|
-
"command": "cmd",
|
|
56
|
-
"args": ["/c", "npx", "-y", "@yawlabs/tailscale-mcp"]
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
```
|
|
61
|
-
|
|
62
|
-
> **Tip:** This file is safe to commit — it contains no secrets. Teammates who set their own `TAILSCALE_API_KEY` will get the MCP server automatically.
|
|
48
|
+
> **Tip:** This file is safe to commit — it contains no secrets. Teammates who set their own `TAILSCALE_API_KEY` will get the MCP server automatically. Works on macOS, Linux, and Windows — no platform-specific config needed.
|
|
63
49
|
|
|
64
50
|
**3. Restart and approve**
|
|
65
51
|
|
|
@@ -110,7 +96,7 @@ MCP Resources expose read-only data that clients can browse without tool calls.
|
|
|
110
96
|
| ACL Policy | `tailscale://tailnet/acl` | Full ACL policy (HuJSON preserved) |
|
|
111
97
|
| DNS Config | `tailscale://tailnet/dns` | Nameservers, search paths, split DNS, MagicDNS |
|
|
112
98
|
|
|
113
|
-
## Tools (
|
|
99
|
+
## Tools (98)
|
|
114
100
|
|
|
115
101
|
<details>
|
|
116
102
|
<summary><strong>Status</strong> (1 tool)</summary>
|
|
@@ -122,7 +108,7 @@ MCP Resources expose read-only data that clients can browse without tool calls.
|
|
|
122
108
|
</details>
|
|
123
109
|
|
|
124
110
|
<details>
|
|
125
|
-
<summary><strong>Devices</strong> (
|
|
111
|
+
<summary><strong>Devices</strong> (16 tools)</summary>
|
|
126
112
|
|
|
127
113
|
| Tool | Description |
|
|
128
114
|
|------|-------------|
|
|
@@ -139,6 +125,9 @@ MCP Resources expose read-only data that clients can browse without tool calls.
|
|
|
139
125
|
| `tailscale_set_device_posture_attribute` | Set a custom posture attribute (with optional expiry) |
|
|
140
126
|
| `tailscale_delete_device_posture_attribute` | Delete a custom posture attribute |
|
|
141
127
|
| `tailscale_set_device_tags` | Set ACL tags on a device |
|
|
128
|
+
| `tailscale_set_device_ip` | Set a device's Tailscale IPv4 address |
|
|
129
|
+
| `tailscale_update_device_key` | Update device key settings (e.g. disable key expiry) |
|
|
130
|
+
| `tailscale_batch_update_posture_attributes` | Batch update custom posture attributes across devices |
|
|
142
131
|
|
|
143
132
|
</details>
|
|
144
133
|
|
|
@@ -155,7 +144,7 @@ MCP Resources expose read-only data that clients can browse without tool calls.
|
|
|
155
144
|
</details>
|
|
156
145
|
|
|
157
146
|
<details>
|
|
158
|
-
<summary><strong>DNS</strong> (
|
|
147
|
+
<summary><strong>DNS</strong> (11 tools)</summary>
|
|
159
148
|
|
|
160
149
|
| Tool | Description |
|
|
161
150
|
|------|-------------|
|
|
@@ -164,14 +153,17 @@ MCP Resources expose read-only data that clients can browse without tool calls.
|
|
|
164
153
|
| `tailscale_get_search_paths` | Get DNS search paths |
|
|
165
154
|
| `tailscale_set_search_paths` | Set DNS search paths |
|
|
166
155
|
| `tailscale_get_split_dns` | Get split DNS configuration |
|
|
167
|
-
| `tailscale_set_split_dns` | Set split DNS configuration |
|
|
156
|
+
| `tailscale_set_split_dns` | Set split DNS configuration (full replace) |
|
|
157
|
+
| `tailscale_update_split_dns` | Update split DNS configuration (partial merge) |
|
|
168
158
|
| `tailscale_get_dns_preferences` | Get DNS preferences (MagicDNS) |
|
|
169
159
|
| `tailscale_set_dns_preferences` | Set DNS preferences (MagicDNS) |
|
|
160
|
+
| `tailscale_get_dns_configuration` | Get unified DNS configuration (all settings in one call) |
|
|
161
|
+
| `tailscale_set_dns_configuration` | Set unified DNS configuration (all settings in one call) |
|
|
170
162
|
|
|
171
163
|
</details>
|
|
172
164
|
|
|
173
165
|
<details>
|
|
174
|
-
<summary><strong>Auth Keys</strong> (
|
|
166
|
+
<summary><strong>Auth Keys</strong> (5 tools)</summary>
|
|
175
167
|
|
|
176
168
|
| Tool | Description |
|
|
177
169
|
|------|-------------|
|
|
@@ -179,11 +171,12 @@ MCP Resources expose read-only data that clients can browse without tool calls.
|
|
|
179
171
|
| `tailscale_get_key` | Get details for an auth key |
|
|
180
172
|
| `tailscale_create_key` | Create a new auth key |
|
|
181
173
|
| `tailscale_delete_key` | Delete an auth key |
|
|
174
|
+
| `tailscale_update_key` | Update an existing auth key |
|
|
182
175
|
|
|
183
176
|
</details>
|
|
184
177
|
|
|
185
178
|
<details>
|
|
186
|
-
<summary><strong>Users</strong> (
|
|
179
|
+
<summary><strong>Users</strong> (7 tools)</summary>
|
|
187
180
|
|
|
188
181
|
| Tool | Description |
|
|
189
182
|
|------|-------------|
|
|
@@ -193,18 +186,20 @@ MCP Resources expose read-only data that clients can browse without tool calls.
|
|
|
193
186
|
| `tailscale_suspend_user` | Suspend a user, revoking access |
|
|
194
187
|
| `tailscale_restore_user` | Restore a suspended user |
|
|
195
188
|
| `tailscale_update_user_role` | Update a user's role (owner, admin, member, etc.) |
|
|
189
|
+
| `tailscale_delete_user` | Delete a user and all their devices |
|
|
196
190
|
|
|
197
191
|
</details>
|
|
198
192
|
|
|
199
193
|
<details>
|
|
200
|
-
<summary><strong>Tailnet Settings</strong> (
|
|
194
|
+
<summary><strong>Tailnet Settings</strong> (5 tools)</summary>
|
|
201
195
|
|
|
202
196
|
| Tool | Description |
|
|
203
197
|
|------|-------------|
|
|
204
198
|
| `tailscale_get_tailnet_settings` | Get tailnet settings (HTTPS, device approval, key expiry, etc.) |
|
|
205
|
-
| `tailscale_update_tailnet_settings` | Update tailnet settings (HTTPS certificates, approval, auto-updates, key expiry, posture, regional routing, network flow logging) |
|
|
199
|
+
| `tailscale_update_tailnet_settings` | Update tailnet settings (HTTPS certificates, approval, auto-updates, key expiry, posture, regional routing, network flow logging, external ACL management) |
|
|
206
200
|
| `tailscale_get_contacts` | Get tailnet contacts |
|
|
207
201
|
| `tailscale_set_contacts` | Set tailnet contacts |
|
|
202
|
+
| `tailscale_resend_contact_verification` | Resend verification email for a contact |
|
|
208
203
|
|
|
209
204
|
</details>
|
|
210
205
|
|
|
@@ -218,7 +213,7 @@ MCP Resources expose read-only data that clients can browse without tool calls.
|
|
|
218
213
|
</details>
|
|
219
214
|
|
|
220
215
|
<details>
|
|
221
|
-
<summary><strong>Webhooks</strong> (
|
|
216
|
+
<summary><strong>Webhooks</strong> (7 tools)</summary>
|
|
222
217
|
|
|
223
218
|
| Tool | Description |
|
|
224
219
|
|------|-------------|
|
|
@@ -228,6 +223,7 @@ MCP Resources expose read-only data that clients can browse without tool calls.
|
|
|
228
223
|
| `tailscale_update_webhook` | Update a webhook's endpoint URL and/or subscriptions |
|
|
229
224
|
| `tailscale_delete_webhook` | Delete a webhook |
|
|
230
225
|
| `tailscale_rotate_webhook_secret` | Rotate a webhook's secret |
|
|
226
|
+
| `tailscale_test_webhook` | Send a test event to verify webhook delivery |
|
|
231
227
|
|
|
232
228
|
</details>
|
|
233
229
|
|
|
@@ -245,7 +241,7 @@ MCP Resources expose read-only data that clients can browse without tool calls.
|
|
|
245
241
|
</details>
|
|
246
242
|
|
|
247
243
|
<details>
|
|
248
|
-
<summary><strong>Tailscale Services</strong> (
|
|
244
|
+
<summary><strong>Tailscale Services</strong> (7 tools)</summary>
|
|
249
245
|
|
|
250
246
|
| Tool | Description |
|
|
251
247
|
|------|-------------|
|
|
@@ -254,18 +250,23 @@ MCP Resources expose read-only data that clients can browse without tool calls.
|
|
|
254
250
|
| `tailscale_update_service` | Update a service's configuration |
|
|
255
251
|
| `tailscale_delete_service` | Delete a service |
|
|
256
252
|
| `tailscale_list_service_hosts` | List devices hosting a service |
|
|
253
|
+
| `tailscale_get_service_device_approval` | Get approval status of a device for a service |
|
|
254
|
+
| `tailscale_set_service_device_approval` | Approve or reject a device to host a service |
|
|
257
255
|
|
|
258
256
|
</details>
|
|
259
257
|
|
|
260
258
|
<details>
|
|
261
|
-
<summary><strong>Log Streaming</strong> (
|
|
259
|
+
<summary><strong>Log Streaming</strong> (7 tools)</summary>
|
|
262
260
|
|
|
263
261
|
| Tool | Description |
|
|
264
262
|
|------|-------------|
|
|
265
|
-
| `tailscale_list_log_stream_configs` | List log streaming configurations |
|
|
263
|
+
| `tailscale_list_log_stream_configs` | List log streaming configurations (both audit and network) |
|
|
266
264
|
| `tailscale_get_log_stream_config` | Get log streaming config for a log type |
|
|
267
265
|
| `tailscale_set_log_stream_config` | Set where logs are sent (Axiom, Datadog, Splunk, etc.) |
|
|
268
266
|
| `tailscale_delete_log_stream_config` | Delete a log streaming configuration |
|
|
267
|
+
| `tailscale_get_log_stream_status` | Check if log streaming is delivering successfully |
|
|
268
|
+
| `tailscale_create_aws_external_id` | Create/get AWS external ID for S3 log streaming |
|
|
269
|
+
| `tailscale_validate_aws_trust_policy` | Validate AWS IAM role trust policy for S3 log streaming |
|
|
269
270
|
|
|
270
271
|
</details>
|
|
271
272
|
|
|
@@ -296,19 +297,20 @@ MCP Resources expose read-only data that clients can browse without tool calls.
|
|
|
296
297
|
</details>
|
|
297
298
|
|
|
298
299
|
<details>
|
|
299
|
-
<summary><strong>Device Invites</strong> (
|
|
300
|
+
<summary><strong>Device Invites</strong> (5 tools)</summary>
|
|
300
301
|
|
|
301
302
|
| Tool | Description |
|
|
302
303
|
|------|-------------|
|
|
303
|
-
| `tailscale_list_device_invites` | List device invites |
|
|
304
|
+
| `tailscale_list_device_invites` | List device invites for a specific device |
|
|
304
305
|
| `tailscale_create_device_invite` | Create a device invite |
|
|
305
306
|
| `tailscale_get_device_invite` | Get a device invite |
|
|
306
307
|
| `tailscale_delete_device_invite` | Delete a device invite |
|
|
308
|
+
| `tailscale_resend_device_invite` | Resend a device invite email |
|
|
307
309
|
|
|
308
310
|
</details>
|
|
309
311
|
|
|
310
312
|
<details>
|
|
311
|
-
<summary><strong>User Invites</strong> (
|
|
313
|
+
<summary><strong>User Invites</strong> (5 tools)</summary>
|
|
312
314
|
|
|
313
315
|
| Tool | Description |
|
|
314
316
|
|------|-------------|
|
|
@@ -316,6 +318,7 @@ MCP Resources expose read-only data that clients can browse without tool calls.
|
|
|
316
318
|
| `tailscale_create_user_invite` | Create a user invite |
|
|
317
319
|
| `tailscale_get_user_invite` | Get a user invite |
|
|
318
320
|
| `tailscale_delete_user_invite` | Delete a user invite |
|
|
321
|
+
| `tailscale_resend_user_invite` | Resend a user invite email |
|
|
319
322
|
|
|
320
323
|
</details>
|
|
321
324
|
|