@futuretea/rancher-mcp-server 0.4.2 → 0.4.4
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 +115 -1
- package/package.json +7 -7
package/README.md
CHANGED
|
@@ -20,11 +20,16 @@ A [Model Context Protocol (MCP)](https://modelcontextprotocol.io/) server for Ra
|
|
|
20
20
|
- List and filter Kubernetes events by namespace, object name, and object kind
|
|
21
21
|
- Query container logs with filtering (tail lines, time range, timestamps, keyword search)
|
|
22
22
|
- Inspect pods with parent workload, metrics, and logs
|
|
23
|
+
- Show dependency/dependent trees for any resource (inspired by kube-lineage)
|
|
23
24
|
- **Rancher Resources via Norman API**: List clusters and projects
|
|
24
25
|
- **Security Controls**:
|
|
25
26
|
- `read_only`: Disables create, patch, and delete operations
|
|
26
27
|
- `disable_destructive`: Disables delete operations only
|
|
27
|
-
-
|
|
28
|
+
- `show_sensitive_data`: Global administrator control for sensitive data visibility (default: `false`)
|
|
29
|
+
- When disabled (default): All sensitive data is masked with `***`
|
|
30
|
+
- When enabled: Per-tool `showSensitiveData` parameter controls visibility
|
|
31
|
+
- Applies to: Kubernetes Secret `data` and `stringData` fields
|
|
32
|
+
- Affects tools: `kubernetes_get`, `kubernetes_list`, `kubernetes_describe`
|
|
28
33
|
- **Output Formats**: Table, YAML, and JSON
|
|
29
34
|
- **Output Filters**: Remove verbose fields like `managedFields` from responses
|
|
30
35
|
- **Pagination**: Limit and page parameters for list operations
|
|
@@ -96,6 +101,7 @@ npx @futuretea/rancher-mcp-server@latest --help
|
|
|
96
101
|
| `--rancher-tls-insecure` | Skip TLS verification | `false` |
|
|
97
102
|
| `--read-only` | Disable write operations | `true` |
|
|
98
103
|
| `--disable-destructive` | Disable delete operations | `false` |
|
|
104
|
+
| `--show-sensitive-data` | Global admin flag to allow sensitive data visibility | `false` |
|
|
99
105
|
| `--list-output` | Output format (json, table, yaml) | `json` |
|
|
100
106
|
| `--output-filters` | Fields to remove from output | `metadata.managedFields` |
|
|
101
107
|
| `--toolsets` | Toolsets to enable | `kubernetes,rancher` |
|
|
@@ -121,6 +127,13 @@ rancher_token: your-bearer-token
|
|
|
121
127
|
read_only: true # default: true
|
|
122
128
|
disable_destructive: false
|
|
123
129
|
|
|
130
|
+
# Sensitive Data Control:
|
|
131
|
+
# Global administrator setting that controls whether sensitive data can be shown.
|
|
132
|
+
# - false (default): All sensitive data is always masked with '***'
|
|
133
|
+
# - true: Allows per-tool showSensitiveData parameter to control visibility
|
|
134
|
+
# Applies to Kubernetes Secret data and stringData fields.
|
|
135
|
+
show_sensitive_data: false
|
|
136
|
+
|
|
124
137
|
list_output: json
|
|
125
138
|
|
|
126
139
|
# Remove verbose fields from output
|
|
@@ -145,6 +158,7 @@ RANCHER_MCP_PORT=8080
|
|
|
145
158
|
RANCHER_MCP_RANCHER_SERVER_URL=https://rancher.example.com
|
|
146
159
|
RANCHER_MCP_RANCHER_TOKEN=your-token
|
|
147
160
|
RANCHER_MCP_READ_ONLY=true
|
|
161
|
+
RANCHER_MCP_SHOW_SENSITIVE_DATA=false # Global admin control for sensitive data
|
|
148
162
|
```
|
|
149
163
|
|
|
150
164
|
### HTTP/SSE Mode
|
|
@@ -174,6 +188,86 @@ rancher-mcp-server --port 8080 \
|
|
|
174
188
|
|
|
175
189
|
## Tools and Functionalities <a id="tools-and-functionalities"></a>
|
|
176
190
|
|
|
191
|
+
### Sensitive Data Protection
|
|
192
|
+
|
|
193
|
+
The server provides a two-tier security control for handling sensitive Kubernetes resources (currently Secrets):
|
|
194
|
+
|
|
195
|
+
#### Global Administrator Control
|
|
196
|
+
|
|
197
|
+
The `--show-sensitive-data` flag (default: `false`) is a global administrator setting that determines whether sensitive data can ever be revealed:
|
|
198
|
+
|
|
199
|
+
- **Disabled (default: `false`)**: All sensitive data is **always masked** with `***`, regardless of per-tool parameters
|
|
200
|
+
- Secret `data` and `stringData` fields are masked
|
|
201
|
+
- Provides maximum security by preventing any accidental data exposure
|
|
202
|
+
- Recommended for production environments
|
|
203
|
+
|
|
204
|
+
- **Enabled (`true`)**: Allows per-tool `showSensitiveData` parameter to control visibility
|
|
205
|
+
- Each tool call can choose whether to show or mask sensitive data
|
|
206
|
+
- Useful for troubleshooting and administrative tasks
|
|
207
|
+
- Requires explicit per-call parameter to reveal data
|
|
208
|
+
|
|
209
|
+
#### Per-Tool Parameter Control
|
|
210
|
+
|
|
211
|
+
When global `--show-sensitive-data` is enabled, tools that access sensitive resources accept a `showSensitiveData` parameter:
|
|
212
|
+
|
|
213
|
+
- `showSensitiveData: false` (default): Masks sensitive fields with `***`
|
|
214
|
+
- `showSensitiveData: true`: Shows actual values
|
|
215
|
+
|
|
216
|
+
**Affected Tools:**
|
|
217
|
+
- `kubernetes_get`: Get individual resources including Secrets
|
|
218
|
+
- `kubernetes_list`: List resources including Secrets
|
|
219
|
+
- `kubernetes_describe`: Describe resources with events
|
|
220
|
+
|
|
221
|
+
**Example Behavior:**
|
|
222
|
+
|
|
223
|
+
```yaml
|
|
224
|
+
# Global flag disabled (--show-sensitive-data=false)
|
|
225
|
+
# Secret data is ALWAYS masked, regardless of per-tool parameter
|
|
226
|
+
apiVersion: v1
|
|
227
|
+
kind: Secret
|
|
228
|
+
data:
|
|
229
|
+
password: "***" # Always masked
|
|
230
|
+
token: "***" # Always masked
|
|
231
|
+
|
|
232
|
+
# Global flag enabled (--show-sensitive-data=true)
|
|
233
|
+
# Per-tool parameter controls visibility:
|
|
234
|
+
|
|
235
|
+
# With showSensitiveData: false (default)
|
|
236
|
+
apiVersion: v1
|
|
237
|
+
kind: Secret
|
|
238
|
+
data:
|
|
239
|
+
password: "***" # Masked
|
|
240
|
+
token: "***" # Masked
|
|
241
|
+
|
|
242
|
+
# With showSensitiveData: true
|
|
243
|
+
apiVersion: v1
|
|
244
|
+
kind: Secret
|
|
245
|
+
data:
|
|
246
|
+
password: "<base64-encoded-value>" # Actual base64 value shown
|
|
247
|
+
token: "<base64-encoded-value>" # Actual base64 value shown
|
|
248
|
+
```
|
|
249
|
+
|
|
250
|
+
**Configuration Examples:**
|
|
251
|
+
|
|
252
|
+
```shell
|
|
253
|
+
# Maximum security (production recommended)
|
|
254
|
+
rancher-mcp-server --show-sensitive-data=false # or omit (default)
|
|
255
|
+
|
|
256
|
+
# Allow administrators to reveal data when needed
|
|
257
|
+
rancher-mcp-server --show-sensitive-data=true
|
|
258
|
+
```
|
|
259
|
+
|
|
260
|
+
```yaml
|
|
261
|
+
# config.yaml
|
|
262
|
+
show_sensitive_data: false # Production: always mask
|
|
263
|
+
# show_sensitive_data: true # Development: allow per-tool control
|
|
264
|
+
```
|
|
265
|
+
|
|
266
|
+
```shell
|
|
267
|
+
# Environment variable
|
|
268
|
+
RANCHER_MCP_SHOW_SENSITIVE_DATA=false
|
|
269
|
+
```
|
|
270
|
+
|
|
177
271
|
Tools are organized into toolsets. Use `--toolsets` to enable specific sets or `--enabled-tools`/`--disabled-tools` for fine-grained control.
|
|
178
272
|
|
|
179
273
|
### Toolsets
|
|
@@ -185,6 +279,23 @@ Tools are organized into toolsets. Use `--toolsets` to enable specific sets or `
|
|
|
185
279
|
|
|
186
280
|
### kubernetes
|
|
187
281
|
|
|
282
|
+
<details>
|
|
283
|
+
<summary>kubernetes_dep</summary>
|
|
284
|
+
|
|
285
|
+
Show all dependencies or dependents of any Kubernetes resource as a tree. Covers OwnerReference chains, Pod→Node/SA/ConfigMap/Secret/PVC, Service→Pod (label selector), Ingress→IngressClass/Service/TLS Secret, PVC↔PV→StorageClass, RBAC bindings, PDB→Pod, and Events.
|
|
286
|
+
|
|
287
|
+
| Parameter | Type | Required | Description |
|
|
288
|
+
|-----------|------|----------|-------------|
|
|
289
|
+
| `cluster` | string | Yes | Cluster ID |
|
|
290
|
+
| `kind` | string | Yes | Resource kind (e.g., deployment, pod, service, ingress, node) |
|
|
291
|
+
| `namespace` | string | No | Namespace (optional for cluster-scoped resources) |
|
|
292
|
+
| `name` | string | Yes | Resource name |
|
|
293
|
+
| `direction` | string | No | Traversal direction: `dependents` (default) or `dependencies` |
|
|
294
|
+
| `depth` | integer | No | Maximum traversal depth, 1-20 (default: 10) |
|
|
295
|
+
| `format` | string | No | Output format: tree, json (default: tree) |
|
|
296
|
+
|
|
297
|
+
</details>
|
|
298
|
+
|
|
188
299
|
<details>
|
|
189
300
|
<summary>kubernetes_get</summary>
|
|
190
301
|
|
|
@@ -197,6 +308,7 @@ Get a Kubernetes resource by kind, namespace, and name.
|
|
|
197
308
|
| `namespace` | string | No | Namespace (optional for cluster-scoped resources) |
|
|
198
309
|
| `name` | string | Yes | Resource name |
|
|
199
310
|
| `format` | string | No | Output format: json, yaml (default: json) |
|
|
311
|
+
| `showSensitiveData` | boolean | No | Show sensitive data values (e.g., Secret data). Default: false. Only takes effect when global `--show-sensitive-data` is enabled. When global setting is disabled, data is always masked with `***` |
|
|
200
312
|
|
|
201
313
|
</details>
|
|
202
314
|
|
|
@@ -215,6 +327,7 @@ List Kubernetes resources by kind.
|
|
|
215
327
|
| `limit` | integer | No | Items per page (default: 100) |
|
|
216
328
|
| `page` | integer | No | Page number, starting from 1 (default: 1) |
|
|
217
329
|
| `format` | string | No | Output format: json, table, yaml (default: json) |
|
|
330
|
+
| `showSensitiveData` | boolean | No | Show sensitive data values (e.g., Secret data). Default: false. Only takes effect when global `--show-sensitive-data` is enabled. When global setting is disabled, data is always masked with `***` |
|
|
218
331
|
|
|
219
332
|
</details>
|
|
220
333
|
|
|
@@ -262,6 +375,7 @@ Describe a Kubernetes resource with its related events. Similar to `kubectl desc
|
|
|
262
375
|
| `namespace` | string | No | Namespace (optional for cluster-scoped resources) |
|
|
263
376
|
| `name` | string | Yes | Resource name |
|
|
264
377
|
| `format` | string | No | Output format: json, yaml (default: json) |
|
|
378
|
+
| `showSensitiveData` | boolean | No | Show sensitive data values (e.g., Secret data). Default: false. Only takes effect when global `--show-sensitive-data` is enabled. When global setting is disabled, data is always masked with `***` |
|
|
265
379
|
|
|
266
380
|
</details>
|
|
267
381
|
|
package/package.json
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@futuretea/rancher-mcp-server",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.4",
|
|
4
4
|
"description": "Model Context Protocol (MCP) server for Rancher multi-cluster management",
|
|
5
5
|
"main": "./bin/index.js",
|
|
6
6
|
"bin": {
|
|
7
7
|
"rancher-mcp-server": "bin/index.js"
|
|
8
8
|
},
|
|
9
9
|
"optionalDependencies": {
|
|
10
|
-
"@futuretea/rancher-mcp-server-darwin-amd64": "0.4.
|
|
11
|
-
"@futuretea/rancher-mcp-server-darwin-arm64": "0.4.
|
|
12
|
-
"@futuretea/rancher-mcp-server-linux-amd64": "0.4.
|
|
13
|
-
"@futuretea/rancher-mcp-server-linux-arm64": "0.4.
|
|
14
|
-
"@futuretea/rancher-mcp-server-windows-amd64": "0.4.
|
|
15
|
-
"@futuretea/rancher-mcp-server-windows-arm64": "0.4.
|
|
10
|
+
"@futuretea/rancher-mcp-server-darwin-amd64": "0.4.4",
|
|
11
|
+
"@futuretea/rancher-mcp-server-darwin-arm64": "0.4.4",
|
|
12
|
+
"@futuretea/rancher-mcp-server-linux-amd64": "0.4.4",
|
|
13
|
+
"@futuretea/rancher-mcp-server-linux-arm64": "0.4.4",
|
|
14
|
+
"@futuretea/rancher-mcp-server-windows-amd64": "0.4.4",
|
|
15
|
+
"@futuretea/rancher-mcp-server-windows-arm64": "0.4.4"
|
|
16
16
|
},
|
|
17
17
|
"repository": {
|
|
18
18
|
"type": "git",
|