@yawlabs/tailscale-mcp 0.8.0 → 0.8.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 +51 -15
- package/dist/index.js +11219 -2079
- package/package.json +5 -5
package/README.md
CHANGED
|
@@ -107,34 +107,70 @@ That's it. Now ask your agent:
|
|
|
107
107
|
|
|
108
108
|
## Too many tools? Subset them.
|
|
109
109
|
|
|
110
|
-
99 tools is a lot. If you've already got a dozen MCP servers and your client is feeling heavy, trim what this one exposes:
|
|
110
|
+
99 tools is a lot. If you've already got a dozen MCP servers and your client is feeling heavy, trim what this one exposes. Three knobs, combinable:
|
|
111
|
+
|
|
112
|
+
### Option 1: `TAILSCALE_PROFILE` (preset, easiest)
|
|
111
113
|
|
|
112
114
|
```json
|
|
113
115
|
{
|
|
114
|
-
"
|
|
115
|
-
"
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
116
|
+
"env": {
|
|
117
|
+
"TAILSCALE_API_KEY": "tskey-api-...",
|
|
118
|
+
"TAILSCALE_PROFILE": "core"
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
- **`minimal`** (≈22 tools) — `status`, `devices`, `audit`. Observe the tailnet, read the audit log.
|
|
124
|
+
- **`core`** (≈49 tools) — adds `acl`, `dns`, `keys`, `users`. The day-to-day admin surface.
|
|
125
|
+
- **`full`** (99 tools, default) — everything. Same as omitting the env var.
|
|
126
|
+
|
|
127
|
+
### Option 2: `TAILSCALE_TOOLS` (explicit group list)
|
|
128
|
+
|
|
129
|
+
```json
|
|
130
|
+
{
|
|
131
|
+
"env": {
|
|
132
|
+
"TAILSCALE_API_KEY": "tskey-api-...",
|
|
133
|
+
"TAILSCALE_TOOLS": "devices,acl,dns,audit"
|
|
124
134
|
}
|
|
125
135
|
}
|
|
126
136
|
```
|
|
127
137
|
|
|
128
|
-
-
|
|
129
|
-
- **`TAILSCALE_READONLY`** — set to `1` or `true` to drop every mutating tool (only tools with `readOnlyHint: true` remain). Combine with `TAILSCALE_TOOLS` for maximum minimalism.
|
|
138
|
+
Comma-separated group names. Overrides `TAILSCALE_PROFILE` when both are set — use this when the presets aren't quite right.
|
|
130
139
|
|
|
131
140
|
Valid group names: `status`, `devices`, `acl`, `dns`, `keys`, `users`, `tailnet`, `webhooks`, `network-lock`, `posture`, `audit`, `invites`, `services`, `log-streaming`, `workload-identity`, `oauth-clients`.
|
|
132
141
|
|
|
133
|
-
|
|
142
|
+
### Option 3: `TAILSCALE_READONLY` (drop mutations)
|
|
134
143
|
|
|
144
|
+
```json
|
|
145
|
+
{
|
|
146
|
+
"env": {
|
|
147
|
+
"TAILSCALE_API_KEY": "tskey-api-...",
|
|
148
|
+
"TAILSCALE_PROFILE": "core",
|
|
149
|
+
"TAILSCALE_READONLY": "1"
|
|
150
|
+
}
|
|
151
|
+
}
|
|
135
152
|
```
|
|
136
|
-
|
|
153
|
+
|
|
154
|
+
Set to `1` or `true` to drop every tool without `readOnlyHint: true`. Stacks with `TAILSCALE_PROFILE` or `TAILSCALE_TOOLS` as an intersection — combine for maximum minimalism.
|
|
155
|
+
|
|
156
|
+
### Confirming what loaded
|
|
157
|
+
|
|
158
|
+
The server logs the active filter to stderr on startup:
|
|
159
|
+
|
|
137
160
|
```
|
|
161
|
+
@yawlabs/tailscale-mcp v0.8.1 ready (21 tools, profile=core, readonly)
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
If you don't set any filter, startup prints a tip pointing you at the profiles.
|
|
165
|
+
|
|
166
|
+
## Using with mcp.hosting / mcph
|
|
167
|
+
|
|
168
|
+
If you run this server through [mcp.hosting](https://mcp.hosting) (via the `@yawlabs/mcph` local agent), the two filtering layers compose cleanly:
|
|
169
|
+
|
|
170
|
+
1. **Server-side** — `TAILSCALE_PROFILE` / `TAILSCALE_TOOLS` / `TAILSCALE_READONLY` reduce the tool surface *before* mcph sees it. The unloaded tools aren't registered at all.
|
|
171
|
+
2. **Client-side** — mcph's `mcp_connect_activate({ tools: [...] })` filters further for what appears in `tools/list`. Tools not in that list stay reachable via `mcp_connect_dispatch`, so you don't lose capability.
|
|
172
|
+
|
|
173
|
+
Recommended pattern for mcph users: set `TAILSCALE_PROFILE=core` (or narrower) in your mcp.hosting server config, then let mcph handle per-conversation activation on top. The server stays lean by default, and `mcp_connect_dispatch` covers the long-tail tools for ad-hoc needs.
|
|
138
174
|
|
|
139
175
|
## Authentication
|
|
140
176
|
|