@futuretea/rancher-mcp-server 0.5.0 → 0.5.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 +261 -13
- package/package.json +7 -7
package/README.md
CHANGED
|
@@ -24,6 +24,10 @@ A [Model Context Protocol (MCP)](https://modelcontextprotocol.io/) server for Ra
|
|
|
24
24
|
- Analyze node health and resource usage
|
|
25
25
|
- Inspect pods with parent workload, metrics, and logs
|
|
26
26
|
- Show dependency/dependent trees for any resource (inspired by kube-lineage)
|
|
27
|
+
- **Get all resources** (inspired by [ketall](https://github.com/corneliusweig/ketall)): List all Kubernetes resources including ConfigMaps, Secrets, RBAC, CRDs
|
|
28
|
+
- **Compare resource versions** (kubernetes_diff): Show git-style diffs between two resource versions
|
|
29
|
+
- **Watch resource changes** (kubernetes_watch): Monitor resources and return git-style diffs at regular intervals
|
|
30
|
+
- **Resource capacity overview** (inspired by [kube-capacity](https://github.com/robscott/kube-capacity)): Show cluster resource capacity, requests, limits, and utilization
|
|
27
31
|
- **Rancher Resources via Norman API**: List clusters and projects
|
|
28
32
|
- **Security Controls**:
|
|
29
33
|
- `read_only`: Disables create, patch, and delete operations
|
|
@@ -282,6 +286,133 @@ Tools are organized into toolsets. Use `--toolsets` to enable specific sets or `
|
|
|
282
286
|
|
|
283
287
|
### kubernetes
|
|
284
288
|
|
|
289
|
+
<details>
|
|
290
|
+
<summary>kubernetes_capacity</summary>
|
|
291
|
+
|
|
292
|
+
Show Kubernetes cluster resource capacity, requests, limits, and utilization. Similar to [kube-capacity](https://github.com/robscott/kube-capacity) CLI tool.
|
|
293
|
+
|
|
294
|
+
| Parameter | Type | Required | Description |
|
|
295
|
+
|-----------|------|----------|-------------|
|
|
296
|
+
| `cluster` | string | Yes | Cluster ID |
|
|
297
|
+
| `pods` | boolean | No | Include individual pod resources in the output (default: false) |
|
|
298
|
+
| `containers` | boolean | No | Include individual container resources in the output (implies pods=true) (default: false) |
|
|
299
|
+
| `util` | boolean | No | Include actual resource utilization from metrics-server (requires metrics-server) (default: false) |
|
|
300
|
+
| `available` | boolean | No | Show raw available capacity instead of percentages (default: false) |
|
|
301
|
+
| `podCount` | boolean | No | Include pod counts for each node and the whole cluster (default: false) |
|
|
302
|
+
| `showLabels` | boolean | No | Include node labels in the output (default: false) |
|
|
303
|
+
| `hideRequests` | boolean | No | Hide request columns from output (default: false) |
|
|
304
|
+
| `hideLimits` | boolean | No | Hide limit columns from output (default: false) |
|
|
305
|
+
| `namespace` | string | No | Filter by namespace (empty for all namespaces) |
|
|
306
|
+
| `labelSelector` | string | No | Filter pods by label selector (e.g., "app=nginx,env=prod") |
|
|
307
|
+
| `nodeLabelSelector` | string | No | Filter nodes by label selector (e.g., "node-role.kubernetes.io/worker=true") |
|
|
308
|
+
| `namespaceLabelSelector` | string | No | Filter namespaces by label selector (e.g., "env=production") |
|
|
309
|
+
| `nodeTaints` | string | No | Filter nodes by taints. Use 'key=value:effect' to include, 'key=value:effect-' to exclude. Multiple taints can be separated by comma |
|
|
310
|
+
| `noTaint` | boolean | No | Exclude nodes with any taints (default: false) |
|
|
311
|
+
| `sortBy` | string | No | Sort by: cpu.util, mem.util, cpu.request, mem.request, cpu.limit, mem.limit, cpu.util.percentage, mem.util.percentage, name |
|
|
312
|
+
| `format` | string | No | Output format: table, json, yaml (default: table) |
|
|
313
|
+
|
|
314
|
+
**Examples:**
|
|
315
|
+
|
|
316
|
+
```json
|
|
317
|
+
// Basic node overview
|
|
318
|
+
{
|
|
319
|
+
"cluster": "c-abc123"
|
|
320
|
+
}
|
|
321
|
+
|
|
322
|
+
// Include pods detail
|
|
323
|
+
{
|
|
324
|
+
"cluster": "c-abc123",
|
|
325
|
+
"pods": true
|
|
326
|
+
}
|
|
327
|
+
|
|
328
|
+
// Include utilization metrics (requires metrics-server)
|
|
329
|
+
{
|
|
330
|
+
"cluster": "c-abc123",
|
|
331
|
+
"util": true
|
|
332
|
+
}
|
|
333
|
+
|
|
334
|
+
// Full detail with utilization
|
|
335
|
+
{
|
|
336
|
+
"cluster": "c-abc123",
|
|
337
|
+
"pods": true,
|
|
338
|
+
"util": true
|
|
339
|
+
}
|
|
340
|
+
|
|
341
|
+
// Filter by namespace
|
|
342
|
+
{
|
|
343
|
+
"cluster": "c-abc123",
|
|
344
|
+
"namespace": "production"
|
|
345
|
+
}
|
|
346
|
+
|
|
347
|
+
// Sort by CPU utilization
|
|
348
|
+
{
|
|
349
|
+
"cluster": "c-abc123",
|
|
350
|
+
"sortBy": "cpu.util"
|
|
351
|
+
}
|
|
352
|
+
|
|
353
|
+
// Filter by node labels (show only worker nodes)
|
|
354
|
+
{
|
|
355
|
+
"cluster": "c-abc123",
|
|
356
|
+
"nodeLabelSelector": "node-role.kubernetes.io/worker=true"
|
|
357
|
+
}
|
|
358
|
+
|
|
359
|
+
// Include container-level details
|
|
360
|
+
{
|
|
361
|
+
"cluster": "c-abc123",
|
|
362
|
+
"containers": true
|
|
363
|
+
}
|
|
364
|
+
|
|
365
|
+
// Show pod counts per node
|
|
366
|
+
{
|
|
367
|
+
"cluster": "c-abc123",
|
|
368
|
+
"podCount": true
|
|
369
|
+
}
|
|
370
|
+
|
|
371
|
+
// Show node labels in output
|
|
372
|
+
{
|
|
373
|
+
"cluster": "c-abc123",
|
|
374
|
+
"showLabels": true
|
|
375
|
+
}
|
|
376
|
+
|
|
377
|
+
// Hide request columns (show only limits)
|
|
378
|
+
{
|
|
379
|
+
"cluster": "c-abc123",
|
|
380
|
+
"hideRequests": true
|
|
381
|
+
}
|
|
382
|
+
|
|
383
|
+
// Filter by namespace labels
|
|
384
|
+
{
|
|
385
|
+
"cluster": "c-abc123",
|
|
386
|
+
"namespaceLabelSelector": "env=production"
|
|
387
|
+
}
|
|
388
|
+
|
|
389
|
+
// Filter by node taints (include nodes with specific taint)
|
|
390
|
+
{
|
|
391
|
+
"cluster": "c-abc123",
|
|
392
|
+
"nodeTaints": "dedicated=special:NoSchedule"
|
|
393
|
+
}
|
|
394
|
+
|
|
395
|
+
// Exclude nodes with specific taint
|
|
396
|
+
{
|
|
397
|
+
"cluster": "c-abc123",
|
|
398
|
+
"nodeTaints": "dedicated=special:NoSchedule-"
|
|
399
|
+
}
|
|
400
|
+
|
|
401
|
+
// Exclude all tainted nodes
|
|
402
|
+
{
|
|
403
|
+
"cluster": "c-abc123",
|
|
404
|
+
"noTaint": true
|
|
405
|
+
}
|
|
406
|
+
|
|
407
|
+
// Sort by CPU utilization percentage
|
|
408
|
+
{
|
|
409
|
+
"cluster": "c-abc123",
|
|
410
|
+
"sortBy": "cpu.util.percentage"
|
|
411
|
+
}
|
|
412
|
+
```
|
|
413
|
+
|
|
414
|
+
</details>
|
|
415
|
+
|
|
285
416
|
<details>
|
|
286
417
|
<summary>kubernetes_dep</summary>
|
|
287
418
|
|
|
@@ -398,7 +529,108 @@ Analyze node health and resource usage. Shows node capacity, allocatable resourc
|
|
|
398
529
|
</details>
|
|
399
530
|
|
|
400
531
|
<details>
|
|
401
|
-
<summary>
|
|
532
|
+
<summary>kubernetes_describe</summary>
|
|
533
|
+
|
|
534
|
+
Describe a Kubernetes resource with its related events. Similar to `kubectl describe`.
|
|
535
|
+
|
|
536
|
+
| Parameter | Type | Required | Description |
|
|
537
|
+
|-----------|------|----------|-------------|
|
|
538
|
+
| `cluster` | string | Yes | Cluster ID |
|
|
539
|
+
| `kind` | string | Yes | Resource kind (e.g., pod, deployment, service, node) |
|
|
540
|
+
| `namespace` | string | No | Namespace (optional for cluster-scoped resources) |
|
|
541
|
+
| `name` | string | Yes | Resource name |
|
|
542
|
+
| `format` | string | No | Output format: json, yaml (default: json) |
|
|
543
|
+
| `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 `***` |
|
|
544
|
+
|
|
545
|
+
</details>
|
|
546
|
+
|
|
547
|
+
<details>
|
|
548
|
+
<summary>kubernetes_diff</summary>
|
|
549
|
+
|
|
550
|
+
Compare two Kubernetes resource versions and show the differences as a git-style diff. Useful for comparing current vs desired state, or before/after changes.
|
|
551
|
+
|
|
552
|
+
| Parameter | Type | Required | Description |
|
|
553
|
+
|-----------|------|----------|-------------|
|
|
554
|
+
| `resource1` | string | Yes | First resource version as JSON string (the 'before' or 'old' version). Use kubernetes_get to retrieve the resource. |
|
|
555
|
+
| `resource2` | string | Yes | Second resource version as JSON string (the 'after' or 'new' version). Use kubernetes_get to retrieve the resource. |
|
|
556
|
+
| `ignoreStatus` | boolean | No | Ignore changes under the status field when computing diffs (default: false) |
|
|
557
|
+
| `ignoreMeta` | boolean | No | Ignore non-essential metadata differences like managedFields, resourceVersion, etc. (default: false) |
|
|
558
|
+
|
|
559
|
+
**Examples:**
|
|
560
|
+
|
|
561
|
+
```json
|
|
562
|
+
// Compare two versions of the same deployment
|
|
563
|
+
// First, get the current resource
|
|
564
|
+
{
|
|
565
|
+
"cluster": "c-abc123",
|
|
566
|
+
"kind": "deployment",
|
|
567
|
+
"namespace": "default",
|
|
568
|
+
"name": "nginx"
|
|
569
|
+
}
|
|
570
|
+
// Then compare with previous version (from rollout history)
|
|
571
|
+
{
|
|
572
|
+
"resource1": "<previous-revision-json>",
|
|
573
|
+
"resource2": "<current-revision-json>",
|
|
574
|
+
"ignoreMeta": true
|
|
575
|
+
}
|
|
576
|
+
```
|
|
577
|
+
|
|
578
|
+
</details>
|
|
579
|
+
|
|
580
|
+
<details>
|
|
581
|
+
<summary>kubernetes_get_all</summary>
|
|
582
|
+
|
|
583
|
+
Get really all Kubernetes resources in the cluster (inspired by [ketall](https://github.com/corneliusweig/ketall)). Unlike `kubectl get all`, this shows all resource types including ConfigMaps, Secrets, RBAC resources, CRDs, and other resources that are normally hidden.
|
|
584
|
+
|
|
585
|
+
| Parameter | Type | Required | Description |
|
|
586
|
+
|-----------|------|----------|-------------|
|
|
587
|
+
| `cluster` | string | Yes | Cluster ID |
|
|
588
|
+
| `namespace` | string | No | Filter by namespace (optional, empty for all namespaces) |
|
|
589
|
+
| `name` | string | No | Filter by resource name (partial match, client-side) |
|
|
590
|
+
| `labelSelector` | string | No | Label selector for filtering (e.g., "app=nginx,env=prod") |
|
|
591
|
+
| `excludeEvents` | boolean | No | Exclude events from output (default: true, as events are often noisy) |
|
|
592
|
+
| `scope` | string | No | Filter by scope: 'namespaced' for namespaced resources only, 'cluster' for cluster-scoped resources only, or empty for all |
|
|
593
|
+
| `since` | string | No | Only show resources created since this duration (e.g., '1h30m', '2d', '1w') |
|
|
594
|
+
| `limit` | integer | No | Limit number of resources per API call (0 for no limit, default: 0) |
|
|
595
|
+
| `format` | string | No | Output format: json, table, yaml (default: table) |
|
|
596
|
+
|
|
597
|
+
**Examples:**
|
|
598
|
+
|
|
599
|
+
```json
|
|
600
|
+
// Get all resources in the cluster
|
|
601
|
+
{
|
|
602
|
+
"cluster": "c-abc123"
|
|
603
|
+
}
|
|
604
|
+
|
|
605
|
+
// Get all resources in a specific namespace
|
|
606
|
+
{
|
|
607
|
+
"cluster": "c-abc123",
|
|
608
|
+
"namespace": "production"
|
|
609
|
+
}
|
|
610
|
+
|
|
611
|
+
// Get only cluster-scoped resources
|
|
612
|
+
{
|
|
613
|
+
"cluster": "c-abc123",
|
|
614
|
+
"scope": "cluster"
|
|
615
|
+
}
|
|
616
|
+
|
|
617
|
+
// Get resources created in the last 24 hours
|
|
618
|
+
{
|
|
619
|
+
"cluster": "c-abc123",
|
|
620
|
+
"since": "24h"
|
|
621
|
+
}
|
|
622
|
+
|
|
623
|
+
// Get all resources with specific labels
|
|
624
|
+
{
|
|
625
|
+
"cluster": "c-abc123",
|
|
626
|
+
"labelSelector": "app=nginx,env=prod"
|
|
627
|
+
}
|
|
628
|
+
```
|
|
629
|
+
|
|
630
|
+
</details>
|
|
631
|
+
|
|
632
|
+
<details>
|
|
633
|
+
<summary>kubernetes_watch</summary>
|
|
402
634
|
|
|
403
635
|
Watch Kubernetes resources and return git-style diffs of changes at regular intervals, similar to the Linux `watch` command.
|
|
404
636
|
|
|
@@ -418,21 +650,37 @@ Watch Kubernetes resources and return git-style diffs of changes at regular inte
|
|
|
418
650
|
- Each iteration compares the current resource state with the previous iteration and only emits diffs when there are changes.
|
|
419
651
|
- The tool returns the concatenated diffs for all iterations in a single response.
|
|
420
652
|
|
|
421
|
-
|
|
653
|
+
**Examples:**
|
|
422
654
|
|
|
423
|
-
|
|
424
|
-
|
|
655
|
+
```json
|
|
656
|
+
// Watch pods in a namespace for changes
|
|
657
|
+
{
|
|
658
|
+
"cluster": "c-abc123",
|
|
659
|
+
"kind": "pod",
|
|
660
|
+
"namespace": "production",
|
|
661
|
+
"intervalSeconds": 5,
|
|
662
|
+
"iterations": 3
|
|
663
|
+
}
|
|
425
664
|
|
|
426
|
-
|
|
665
|
+
// Watch deployments and ignore status changes
|
|
666
|
+
{
|
|
667
|
+
"cluster": "c-abc123",
|
|
668
|
+
"kind": "deployment",
|
|
669
|
+
"namespace": "default",
|
|
670
|
+
"ignoreStatus": true,
|
|
671
|
+
"intervalSeconds": 10,
|
|
672
|
+
"iterations": 6
|
|
673
|
+
}
|
|
427
674
|
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
675
|
+
// Watch resources by label selector
|
|
676
|
+
{
|
|
677
|
+
"cluster": "c-abc123",
|
|
678
|
+
"kind": "pod",
|
|
679
|
+
"labelSelector": "app=nginx",
|
|
680
|
+
"intervalSeconds": 5,
|
|
681
|
+
"iterations": 12
|
|
682
|
+
}
|
|
683
|
+
```
|
|
436
684
|
|
|
437
685
|
</details>
|
|
438
686
|
|
package/package.json
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@futuretea/rancher-mcp-server",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.1",
|
|
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.5.
|
|
11
|
-
"@futuretea/rancher-mcp-server-darwin-arm64": "0.5.
|
|
12
|
-
"@futuretea/rancher-mcp-server-linux-amd64": "0.5.
|
|
13
|
-
"@futuretea/rancher-mcp-server-linux-arm64": "0.5.
|
|
14
|
-
"@futuretea/rancher-mcp-server-windows-amd64": "0.5.
|
|
15
|
-
"@futuretea/rancher-mcp-server-windows-arm64": "0.5.
|
|
10
|
+
"@futuretea/rancher-mcp-server-darwin-amd64": "0.5.1",
|
|
11
|
+
"@futuretea/rancher-mcp-server-darwin-arm64": "0.5.1",
|
|
12
|
+
"@futuretea/rancher-mcp-server-linux-amd64": "0.5.1",
|
|
13
|
+
"@futuretea/rancher-mcp-server-linux-arm64": "0.5.1",
|
|
14
|
+
"@futuretea/rancher-mcp-server-windows-amd64": "0.5.1",
|
|
15
|
+
"@futuretea/rancher-mcp-server-windows-arm64": "0.5.1"
|
|
16
16
|
},
|
|
17
17
|
"repository": {
|
|
18
18
|
"type": "git",
|