@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.
Files changed (2) hide show
  1. package/README.md +115 -1
  2. 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
- - Secret data is never exposed, only metadata
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.2",
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.2",
11
- "@futuretea/rancher-mcp-server-darwin-arm64": "0.4.2",
12
- "@futuretea/rancher-mcp-server-linux-amd64": "0.4.2",
13
- "@futuretea/rancher-mcp-server-linux-arm64": "0.4.2",
14
- "@futuretea/rancher-mcp-server-windows-amd64": "0.4.2",
15
- "@futuretea/rancher-mcp-server-windows-arm64": "0.4.2"
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",