mcp-server-kubernetes 1.6.2 → 2.1.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.
Files changed (98) hide show
  1. package/README.md +46 -22
  2. package/dist/config/container-templates.d.ts +2 -2
  3. package/dist/index.d.ts +314 -736
  4. package/dist/index.js +93 -200
  5. package/dist/models/resource-models.d.ts +6 -6
  6. package/dist/tools/kubectl-apply.d.ts +46 -0
  7. package/dist/tools/kubectl-apply.js +110 -0
  8. package/dist/tools/kubectl-context.d.ts +49 -0
  9. package/dist/tools/kubectl-context.js +233 -0
  10. package/dist/tools/kubectl-create.d.ts +150 -0
  11. package/dist/tools/kubectl-create.js +321 -0
  12. package/dist/tools/kubectl-delete.d.ts +77 -0
  13. package/dist/tools/kubectl-delete.js +177 -0
  14. package/dist/tools/kubectl-describe.d.ts +47 -0
  15. package/dist/tools/kubectl-describe.js +96 -0
  16. package/dist/tools/kubectl-generic.d.ts +71 -0
  17. package/dist/tools/kubectl-generic.js +121 -0
  18. package/dist/tools/kubectl-get.d.ts +72 -0
  19. package/dist/tools/kubectl-get.js +251 -0
  20. package/dist/tools/kubectl-list.d.ts +61 -0
  21. package/dist/tools/kubectl-list.js +189 -0
  22. package/dist/tools/{get_logs.d.ts → kubectl-logs.d.ts} +35 -19
  23. package/dist/tools/kubectl-logs.js +312 -0
  24. package/dist/tools/kubectl-patch.d.ts +57 -0
  25. package/dist/tools/kubectl-patch.js +128 -0
  26. package/dist/tools/kubectl-rollout.d.ts +67 -0
  27. package/dist/tools/kubectl-rollout.js +115 -0
  28. package/dist/tools/{scale_deployment.d.ts → kubectl-scale.d.ts} +13 -3
  29. package/dist/tools/kubectl-scale.js +73 -0
  30. package/dist/utils/kubernetes-manager.d.ts +4 -0
  31. package/dist/utils/kubernetes-manager.js +21 -3
  32. package/package.json +1 -1
  33. package/dist/tools/create_configmap.d.ts +0 -33
  34. package/dist/tools/create_configmap.js +0 -66
  35. package/dist/tools/create_cronjob.d.ts +0 -47
  36. package/dist/tools/create_cronjob.js +0 -93
  37. package/dist/tools/create_deployment.d.ts +0 -135
  38. package/dist/tools/create_deployment.js +0 -162
  39. package/dist/tools/create_namespace.d.ts +0 -22
  40. package/dist/tools/create_namespace.js +0 -48
  41. package/dist/tools/create_pod.d.ts +0 -130
  42. package/dist/tools/create_pod.js +0 -153
  43. package/dist/tools/create_service.d.ts +0 -74
  44. package/dist/tools/create_service.js +0 -102
  45. package/dist/tools/delete_configmap.d.ts +0 -26
  46. package/dist/tools/delete_configmap.js +0 -49
  47. package/dist/tools/delete_cronjob.d.ts +0 -26
  48. package/dist/tools/delete_cronjob.js +0 -48
  49. package/dist/tools/delete_deployment.d.ts +0 -31
  50. package/dist/tools/delete_deployment.js +0 -47
  51. package/dist/tools/delete_namespace.d.ts +0 -27
  52. package/dist/tools/delete_namespace.js +0 -44
  53. package/dist/tools/delete_pod.d.ts +0 -31
  54. package/dist/tools/delete_pod.js +0 -45
  55. package/dist/tools/delete_service.d.ts +0 -32
  56. package/dist/tools/delete_service.js +0 -46
  57. package/dist/tools/describe_cronjob.d.ts +0 -27
  58. package/dist/tools/describe_cronjob.js +0 -83
  59. package/dist/tools/describe_deployment.d.ts +0 -26
  60. package/dist/tools/describe_deployment.js +0 -40
  61. package/dist/tools/describe_node.d.ts +0 -22
  62. package/dist/tools/describe_node.js +0 -84
  63. package/dist/tools/describe_pod.d.ts +0 -33
  64. package/dist/tools/describe_pod.js +0 -81
  65. package/dist/tools/describe_service.d.ts +0 -34
  66. package/dist/tools/describe_service.js +0 -85
  67. package/dist/tools/get_configmap.d.ts +0 -27
  68. package/dist/tools/get_configmap.js +0 -48
  69. package/dist/tools/get_current_context.d.ts +0 -23
  70. package/dist/tools/get_current_context.js +0 -55
  71. package/dist/tools/get_events.d.ts +0 -28
  72. package/dist/tools/get_events.js +0 -66
  73. package/dist/tools/get_job_logs.d.ts +0 -40
  74. package/dist/tools/get_job_logs.js +0 -104
  75. package/dist/tools/get_logs.js +0 -150
  76. package/dist/tools/list_contexts.d.ts +0 -23
  77. package/dist/tools/list_contexts.js +0 -39
  78. package/dist/tools/list_cronjobs.d.ts +0 -23
  79. package/dist/tools/list_cronjobs.js +0 -35
  80. package/dist/tools/list_deployments.d.ts +0 -23
  81. package/dist/tools/list_deployments.js +0 -30
  82. package/dist/tools/list_jobs.d.ts +0 -29
  83. package/dist/tools/list_jobs.js +0 -77
  84. package/dist/tools/list_nodes.d.ts +0 -15
  85. package/dist/tools/list_nodes.js +0 -21
  86. package/dist/tools/list_pods.d.ts +0 -23
  87. package/dist/tools/list_pods.js +0 -29
  88. package/dist/tools/list_services.d.ts +0 -23
  89. package/dist/tools/list_services.js +0 -31
  90. package/dist/tools/scale_deployment.js +0 -50
  91. package/dist/tools/set_current_context.d.ts +0 -23
  92. package/dist/tools/set_current_context.js +0 -35
  93. package/dist/tools/update_configmap.d.ts +0 -33
  94. package/dist/tools/update_configmap.js +0 -71
  95. package/dist/tools/update_deployment.d.ts +0 -113
  96. package/dist/tools/update_deployment.js +0 -155
  97. package/dist/tools/update_service.d.ts +0 -72
  98. package/dist/tools/update_service.js +0 -125
package/dist/index.d.ts CHANGED
@@ -16,56 +16,6 @@ declare const destructiveTools: ({
16
16
  };
17
17
  required: string[];
18
18
  };
19
- } | {
20
- readonly name: "delete_cronjob";
21
- readonly description: "Delete a Kubernetes CronJob";
22
- readonly inputSchema: {
23
- readonly type: "object";
24
- readonly properties: {
25
- readonly name: {
26
- readonly type: "string";
27
- };
28
- readonly namespace: {
29
- readonly type: "string";
30
- };
31
- };
32
- readonly required: readonly ["name", "namespace"];
33
- };
34
- } | {
35
- readonly name: "delete_pod";
36
- readonly description: "Delete a Kubernetes pod";
37
- readonly inputSchema: {
38
- readonly type: "object";
39
- readonly properties: {
40
- readonly name: {
41
- readonly type: "string";
42
- };
43
- readonly namespace: {
44
- readonly type: "string";
45
- };
46
- readonly ignoreNotFound: {
47
- readonly type: "boolean";
48
- readonly default: false;
49
- };
50
- };
51
- readonly required: readonly ["name", "namespace"];
52
- };
53
- } | {
54
- readonly name: "delete_namespace";
55
- readonly description: "Delete a Kubernetes namespace";
56
- readonly inputSchema: {
57
- readonly type: "object";
58
- readonly properties: {
59
- readonly name: {
60
- readonly type: "string";
61
- };
62
- readonly ignoreNotFound: {
63
- readonly type: "boolean";
64
- readonly default: false;
65
- };
66
- };
67
- readonly required: readonly ["name"];
68
- };
69
19
  } | {
70
20
  readonly name: "cleanup";
71
21
  readonly description: "Cleanup all managed resources";
@@ -74,178 +24,59 @@ declare const destructiveTools: ({
74
24
  readonly properties: {};
75
25
  };
76
26
  } | {
77
- readonly name: "delete_deployment";
78
- readonly description: "Delete a Kubernetes deployment";
27
+ readonly name: "kubectl_delete";
28
+ readonly description: "Delete Kubernetes resources by resource type, name, labels, or from a manifest file";
79
29
  readonly inputSchema: {
80
30
  readonly type: "object";
81
31
  readonly properties: {
82
- readonly name: {
83
- readonly type: "string";
84
- };
85
- readonly namespace: {
32
+ readonly resourceType: {
86
33
  readonly type: "string";
34
+ readonly description: "Type of resource to delete (e.g., pods, deployments, services, etc.)";
87
35
  };
88
- readonly ignoreNotFound: {
89
- readonly type: "boolean";
90
- readonly default: false;
91
- };
92
- };
93
- readonly required: readonly ["name", "namespace"];
94
- };
95
- } | {
96
- readonly name: "delete_service";
97
- readonly description: "Delete a Kubernetes service";
98
- readonly inputSchema: {
99
- readonly type: "object";
100
- readonly properties: {
101
36
  readonly name: {
102
37
  readonly type: "string";
38
+ readonly description: "Name of the resource to delete";
103
39
  };
104
40
  readonly namespace: {
105
41
  readonly type: "string";
42
+ readonly description: "Namespace of the resource (optional - defaults to 'default' for namespaced resources)";
106
43
  readonly default: "default";
107
44
  };
108
- readonly ignoreNotFound: {
109
- readonly type: "boolean";
110
- readonly default: false;
111
- };
112
- };
113
- readonly required: readonly ["name"];
114
- };
115
- })[];
116
- declare const allTools: ({
117
- readonly name: "list_pods";
118
- readonly description: "List pods in a namespace";
119
- readonly inputSchema: {
120
- readonly type: "object";
121
- readonly properties: {
122
- readonly namespace: {
123
- readonly type: "string";
124
- readonly default: "default";
125
- };
126
- };
127
- readonly required: readonly ["namespace"];
128
- };
129
- } | {
130
- readonly name: "list_nodes";
131
- readonly description: "List all nodes in the cluster";
132
- readonly inputSchema: {
133
- readonly type: "object";
134
- readonly properties: {};
135
- };
136
- } | {
137
- readonly name: "list_services";
138
- readonly description: "List services in a namespace";
139
- readonly inputSchema: {
140
- readonly type: "object";
141
- readonly properties: {
142
- readonly namespace: {
143
- readonly type: "string";
144
- readonly default: "default";
145
- };
146
- };
147
- readonly required: readonly ["namespace"];
148
- };
149
- } | {
150
- readonly name: "list_deployments";
151
- readonly description: "List deployments in a namespace";
152
- readonly inputSchema: {
153
- readonly type: "object";
154
- readonly properties: {
155
- readonly namespace: {
156
- readonly type: "string";
157
- readonly default: "default";
158
- };
159
- };
160
- readonly required: readonly ["namespace"];
161
- };
162
- } | {
163
- readonly name: "list_cronjobs";
164
- readonly description: "List CronJobs in a namespace";
165
- readonly inputSchema: {
166
- readonly type: "object";
167
- readonly properties: {
168
- readonly namespace: {
169
- readonly type: "string";
170
- readonly default: "default";
171
- };
172
- };
173
- readonly required: readonly ["namespace"];
174
- };
175
- } | {
176
- readonly name: "describe_cronjob";
177
- readonly description: "Get detailed information about a Kubernetes CronJob including recent job history";
178
- readonly inputSchema: {
179
- readonly type: "object";
180
- readonly properties: {
181
- readonly name: {
182
- readonly type: "string";
183
- };
184
- readonly namespace: {
45
+ readonly labelSelector: {
185
46
  readonly type: "string";
186
- readonly default: "default";
47
+ readonly description: "Delete resources matching this label selector (e.g. 'app=nginx')";
48
+ readonly optional: true;
187
49
  };
188
- };
189
- readonly required: readonly ["name", "namespace"];
190
- };
191
- } | {
192
- readonly name: "list_jobs";
193
- readonly description: "List Jobs in a namespace, optionally filtered by a CronJob parent";
194
- readonly inputSchema: {
195
- readonly type: "object";
196
- readonly properties: {
197
- readonly namespace: {
50
+ readonly manifest: {
198
51
  readonly type: "string";
199
- readonly default: "default";
52
+ readonly description: "YAML manifest defining resources to delete (optional)";
53
+ readonly optional: true;
200
54
  };
201
- readonly cronJobName: {
55
+ readonly filename: {
202
56
  readonly type: "string";
203
- readonly description: "Optional: Filter jobs created by a specific CronJob";
57
+ readonly description: "Path to a YAML file to delete resources from (optional)";
204
58
  readonly optional: true;
205
59
  };
206
- };
207
- readonly required: readonly ["namespace"];
208
- };
209
- } | {
210
- readonly name: "get_job_logs";
211
- readonly description: "Get logs from Pods created by a specific Job";
212
- readonly inputSchema: {
213
- readonly type: "object";
214
- readonly properties: {
215
- readonly name: {
216
- readonly type: "string";
217
- readonly description: "Name of the Job to get logs from";
60
+ readonly allNamespaces: {
61
+ readonly type: "boolean";
62
+ readonly description: "If true, delete resources across all namespaces";
63
+ readonly default: false;
218
64
  };
219
- readonly namespace: {
220
- readonly type: "string";
221
- readonly default: "default";
65
+ readonly force: {
66
+ readonly type: "boolean";
67
+ readonly description: "If true, immediately remove resources from API and bypass graceful deletion";
68
+ readonly default: false;
222
69
  };
223
- readonly tail: {
70
+ readonly gracePeriodSeconds: {
224
71
  readonly type: "number";
225
- readonly description: "Number of lines to return from the end of the logs";
226
- readonly optional: true;
227
- };
228
- readonly timestamps: {
229
- readonly type: "boolean";
230
- readonly description: "Include timestamps in the logs";
72
+ readonly description: "Period of time in seconds given to the resource to terminate gracefully";
231
73
  readonly optional: true;
232
74
  };
233
75
  };
234
- readonly required: readonly ["name", "namespace"];
76
+ readonly required: readonly [];
235
77
  };
236
- } | {
237
- readonly name: "describe_node";
238
- readonly description: "Describe a Kubernetes node (read details like status, capacity, conditions, etc.)";
239
- readonly inputSchema: {
240
- readonly type: "object";
241
- readonly properties: {
242
- readonly name: {
243
- readonly type: "string";
244
- };
245
- };
246
- readonly required: readonly ["name"];
247
- };
248
- } | {
78
+ })[];
79
+ declare const allTools: ({
249
80
  name: string;
250
81
  description: string;
251
82
  inputSchema: {
@@ -320,716 +151,463 @@ declare const allTools: ({
320
151
  };
321
152
  };
322
153
  } | {
323
- readonly name: "create_namespace";
324
- readonly description: "Create a new Kubernetes namespace";
154
+ readonly name: "cleanup";
155
+ readonly description: "Cleanup all managed resources";
325
156
  readonly inputSchema: {
326
157
  readonly type: "object";
327
- readonly properties: {
328
- readonly name: {
329
- readonly type: "string";
158
+ readonly properties: {};
159
+ };
160
+ } | {
161
+ name: string;
162
+ description: string;
163
+ inputSchema: {
164
+ type: string;
165
+ properties: {
166
+ resourceType: {
167
+ type: string;
168
+ };
169
+ resourceName: {
170
+ type: string;
171
+ };
172
+ localPort: {
173
+ type: string;
174
+ };
175
+ targetPort: {
176
+ type: string;
177
+ };
178
+ namespace: {
179
+ type: string;
180
+ };
181
+ };
182
+ required: string[];
183
+ };
184
+ } | {
185
+ name: string;
186
+ description: string;
187
+ inputSchema: {
188
+ type: string;
189
+ properties: {
190
+ id: {
191
+ type: string;
330
192
  };
331
193
  };
332
- readonly required: readonly ["name"];
194
+ required: string[];
333
195
  };
334
196
  } | {
335
- readonly name: "create_pod";
336
- readonly description: "Create a new Kubernetes pod";
197
+ readonly name: "kubectl_context";
198
+ readonly description: "Manage Kubernetes contexts - list, get, or set the current context";
337
199
  readonly inputSchema: {
338
200
  readonly type: "object";
339
201
  readonly properties: {
340
- readonly name: {
202
+ readonly operation: {
341
203
  readonly type: "string";
204
+ readonly enum: readonly ["list", "get", "set"];
205
+ readonly description: "Operation to perform: list contexts, get current context, or set current context";
206
+ readonly default: "list";
342
207
  };
343
- readonly namespace: {
208
+ readonly name: {
344
209
  readonly type: "string";
210
+ readonly description: "Name of the context to set as current (required for set operation)";
345
211
  };
346
- readonly template: {
347
- readonly type: "string";
348
- readonly enum: ["ubuntu", "nginx", "busybox", "alpine", "custom"];
212
+ readonly showCurrent: {
213
+ readonly type: "boolean";
214
+ readonly description: "When listing contexts, highlight which one is currently active";
215
+ readonly default: true;
349
216
  };
350
- readonly command: {
351
- readonly type: "array";
352
- readonly items: {
353
- readonly type: "string";
354
- };
355
- readonly optional: true;
217
+ readonly detailed: {
218
+ readonly type: "boolean";
219
+ readonly description: "Include detailed information about the context";
220
+ readonly default: false;
356
221
  };
357
- readonly customConfig: {
358
- readonly type: "object";
359
- readonly optional: true;
360
- readonly properties: {
361
- readonly image: {
362
- readonly type: "string";
363
- };
364
- readonly command: {
365
- readonly type: "array";
366
- readonly items: {
367
- readonly type: "string";
368
- };
369
- };
370
- readonly args: {
371
- readonly type: "array";
372
- readonly items: {
373
- readonly type: "string";
374
- };
375
- };
376
- readonly ports: {
377
- readonly type: "array";
378
- readonly items: {
379
- readonly type: "object";
380
- readonly properties: {
381
- readonly containerPort: {
382
- readonly type: "number";
383
- };
384
- readonly name: {
385
- readonly type: "string";
386
- };
387
- readonly protocol: {
388
- readonly type: "string";
389
- };
390
- };
391
- };
392
- };
393
- readonly resources: {
394
- readonly type: "object";
395
- readonly properties: {
396
- readonly limits: {
397
- readonly type: "object";
398
- readonly additionalProperties: {
399
- readonly type: "string";
400
- };
401
- };
402
- readonly requests: {
403
- readonly type: "object";
404
- readonly additionalProperties: {
405
- readonly type: "string";
406
- };
407
- };
408
- };
409
- };
410
- readonly env: {
411
- readonly type: "array";
412
- readonly items: {
413
- readonly type: "object";
414
- readonly properties: {
415
- readonly name: {
416
- readonly type: "string";
417
- };
418
- readonly value: {
419
- readonly type: "string";
420
- };
421
- readonly valueFrom: {
422
- readonly type: "object";
423
- };
424
- };
425
- };
426
- };
427
- readonly volumeMounts: {
428
- readonly type: "array";
429
- readonly items: {
430
- readonly type: "object";
431
- readonly properties: {
432
- readonly name: {
433
- readonly type: "string";
434
- };
435
- readonly mountPath: {
436
- readonly type: "string";
437
- };
438
- readonly readOnly: {
439
- readonly type: "boolean";
440
- };
441
- };
442
- };
443
- };
444
- };
222
+ readonly output: {
223
+ readonly type: "string";
224
+ readonly enum: readonly ["json", "yaml", "name", "custom"];
225
+ readonly description: "Output format";
226
+ readonly default: "json";
445
227
  };
446
228
  };
447
- readonly required: readonly ["name", "namespace", "template"];
229
+ readonly required: readonly ["operation"];
448
230
  };
449
231
  } | {
450
- readonly name: "create_cronjob";
451
- readonly description: "Create a new Kubernetes CronJob";
232
+ readonly name: "kubectl_get";
233
+ readonly description: "Get or list Kubernetes resources by resource type, name, and optionally namespace";
452
234
  readonly inputSchema: {
453
235
  readonly type: "object";
454
236
  readonly properties: {
237
+ readonly resourceType: {
238
+ readonly type: "string";
239
+ readonly description: "Type of resource to get (e.g., pods, deployments, services, configmaps, events, etc.)";
240
+ };
455
241
  readonly name: {
456
242
  readonly type: "string";
243
+ readonly description: "Name of the resource (optional - if not provided, lists all resources of the specified type)";
457
244
  };
458
245
  readonly namespace: {
459
246
  readonly type: "string";
247
+ readonly description: "Namespace of the resource (optional - defaults to 'default' for namespaced resources)";
248
+ readonly default: "default";
460
249
  };
461
- readonly schedule: {
250
+ readonly output: {
462
251
  readonly type: "string";
252
+ readonly enum: readonly ["json", "yaml", "wide", "name", "custom"];
253
+ readonly description: "Output format";
254
+ readonly default: "json";
463
255
  };
464
- readonly image: {
256
+ readonly allNamespaces: {
257
+ readonly type: "boolean";
258
+ readonly description: "If true, list resources across all namespaces";
259
+ readonly default: false;
260
+ };
261
+ readonly labelSelector: {
465
262
  readonly type: "string";
263
+ readonly description: "Filter resources by label selector (e.g. 'app=nginx')";
264
+ readonly optional: true;
466
265
  };
467
- readonly command: {
468
- readonly type: "array";
469
- readonly items: {
470
- readonly type: "string";
471
- };
266
+ readonly fieldSelector: {
267
+ readonly type: "string";
268
+ readonly description: "Filter resources by field selector (e.g. 'metadata.name=my-pod')";
472
269
  readonly optional: true;
473
270
  };
474
- readonly suspend: {
475
- readonly type: "boolean";
271
+ readonly sortBy: {
272
+ readonly type: "string";
273
+ readonly description: "Sort events by a field (default: lastTimestamp). Only applicable for events.";
476
274
  readonly optional: true;
477
275
  };
478
276
  };
479
- readonly required: readonly ["name", "namespace", "schedule", "image"];
277
+ readonly required: readonly ["resourceType"];
480
278
  };
481
279
  } | {
482
- readonly name: "delete_cronjob";
483
- readonly description: "Delete a Kubernetes CronJob";
280
+ readonly name: "kubectl_describe";
281
+ readonly description: "Describe Kubernetes resources by resource type, name, and optionally namespace";
484
282
  readonly inputSchema: {
485
283
  readonly type: "object";
486
284
  readonly properties: {
285
+ readonly resourceType: {
286
+ readonly type: "string";
287
+ readonly description: "Type of resource to describe (e.g., pods, deployments, services, etc.)";
288
+ };
487
289
  readonly name: {
488
290
  readonly type: "string";
291
+ readonly description: "Name of the resource to describe";
489
292
  };
490
293
  readonly namespace: {
491
294
  readonly type: "string";
295
+ readonly description: "Namespace of the resource (optional - defaults to 'default' for namespaced resources)";
296
+ readonly default: "default";
297
+ };
298
+ readonly allNamespaces: {
299
+ readonly type: "boolean";
300
+ readonly description: "If true, describe resources across all namespaces";
301
+ readonly default: false;
492
302
  };
493
303
  };
494
- readonly required: readonly ["name", "namespace"];
304
+ readonly required: readonly ["resourceType", "name"];
495
305
  };
496
306
  } | {
497
- readonly name: "delete_pod";
498
- readonly description: "Delete a Kubernetes pod";
307
+ readonly name: "kubectl_list";
308
+ readonly description: "List Kubernetes resources by resource type and optionally namespace";
499
309
  readonly inputSchema: {
500
310
  readonly type: "object";
501
311
  readonly properties: {
502
- readonly name: {
312
+ readonly resourceType: {
503
313
  readonly type: "string";
314
+ readonly description: "Type of resource to list (e.g., pods, deployments, services, configmaps, etc.)";
504
315
  };
505
316
  readonly namespace: {
506
317
  readonly type: "string";
318
+ readonly description: "Namespace of the resources (optional - defaults to 'default' for namespaced resources)";
319
+ readonly default: "default";
320
+ };
321
+ readonly output: {
322
+ readonly type: "string";
323
+ readonly enum: readonly ["json", "yaml", "wide", "name", "custom", "formatted"];
324
+ readonly description: "Output format - 'formatted' uses a resource-specific format with key information";
325
+ readonly default: "formatted";
507
326
  };
508
- readonly ignoreNotFound: {
327
+ readonly allNamespaces: {
509
328
  readonly type: "boolean";
329
+ readonly description: "If true, list resources across all namespaces";
510
330
  readonly default: false;
511
331
  };
332
+ readonly labelSelector: {
333
+ readonly type: "string";
334
+ readonly description: "Filter resources by label selector (e.g. 'app=nginx')";
335
+ readonly optional: true;
336
+ };
337
+ readonly fieldSelector: {
338
+ readonly type: "string";
339
+ readonly description: "Filter resources by field selector (e.g. 'metadata.name=my-pod')";
340
+ readonly optional: true;
341
+ };
512
342
  };
513
- readonly required: readonly ["name", "namespace"];
343
+ readonly required: readonly ["resourceType"];
514
344
  };
515
345
  } | {
516
- readonly name: "describe_pod";
517
- readonly description: "Describe a Kubernetes pod (read details like status, containers, etc.)";
346
+ readonly name: "kubectl_apply";
347
+ readonly description: "Apply a Kubernetes YAML manifest from a string or file";
518
348
  readonly inputSchema: {
519
349
  readonly type: "object";
520
350
  readonly properties: {
521
- readonly name: {
351
+ readonly manifest: {
352
+ readonly type: "string";
353
+ readonly description: "YAML manifest to apply";
354
+ };
355
+ readonly filename: {
522
356
  readonly type: "string";
357
+ readonly description: "Path to a YAML file to apply (optional - use either manifest or filename)";
523
358
  };
524
359
  readonly namespace: {
525
360
  readonly type: "string";
361
+ readonly description: "Namespace to apply the resource to (optional)";
362
+ readonly default: "default";
363
+ };
364
+ readonly dryRun: {
365
+ readonly type: "boolean";
366
+ readonly description: "If true, only validate the resource, don't apply it";
367
+ readonly default: false;
368
+ };
369
+ readonly force: {
370
+ readonly type: "boolean";
371
+ readonly description: "If true, immediately remove resources from API and bypass graceful deletion";
372
+ readonly default: false;
526
373
  };
527
374
  };
528
- readonly required: readonly ["name", "namespace"];
375
+ readonly required: readonly [];
529
376
  };
530
377
  } | {
531
- readonly name: "get_logs";
532
- readonly description: "Get logs from pods, deployments, jobs, or resources matching a label selector";
378
+ readonly name: "kubectl_delete";
379
+ readonly description: "Delete Kubernetes resources by resource type, name, labels, or from a manifest file";
533
380
  readonly inputSchema: {
534
381
  readonly type: "object";
535
382
  readonly properties: {
536
383
  readonly resourceType: {
537
384
  readonly type: "string";
538
- readonly enum: readonly ["pod", "deployment", "job"];
539
- readonly description: "Type of resource to get logs from";
385
+ readonly description: "Type of resource to delete (e.g., pods, deployments, services, etc.)";
540
386
  };
541
387
  readonly name: {
542
388
  readonly type: "string";
543
- readonly description: "Name of the resource";
389
+ readonly description: "Name of the resource to delete";
544
390
  };
545
391
  readonly namespace: {
546
392
  readonly type: "string";
547
- readonly description: "Namespace of the resource";
393
+ readonly description: "Namespace of the resource (optional - defaults to 'default' for namespaced resources)";
548
394
  readonly default: "default";
549
395
  };
550
396
  readonly labelSelector: {
551
397
  readonly type: "string";
552
- readonly description: "Label selector to filter resources";
398
+ readonly description: "Delete resources matching this label selector (e.g. 'app=nginx')";
553
399
  readonly optional: true;
554
400
  };
555
- readonly container: {
401
+ readonly manifest: {
556
402
  readonly type: "string";
557
- readonly description: "Container name (required when pod has multiple containers)";
558
- readonly optional: true;
559
- };
560
- readonly tail: {
561
- readonly type: "number";
562
- readonly description: "Number of lines to show from end of logs";
403
+ readonly description: "YAML manifest defining resources to delete (optional)";
563
404
  readonly optional: true;
564
405
  };
565
- readonly since: {
566
- readonly type: "number";
567
- readonly description: "Get logs since relative time in seconds";
406
+ readonly filename: {
407
+ readonly type: "string";
408
+ readonly description: "Path to a YAML file to delete resources from (optional)";
568
409
  readonly optional: true;
569
410
  };
570
- readonly timestamps: {
411
+ readonly allNamespaces: {
571
412
  readonly type: "boolean";
572
- readonly description: "Include timestamps in logs";
413
+ readonly description: "If true, delete resources across all namespaces";
573
414
  readonly default: false;
574
415
  };
575
- };
576
- readonly required: readonly ["resourceType"];
577
- };
578
- } | {
579
- name: string;
580
- description: string;
581
- inputSchema: {
582
- type: string;
583
- properties: {
584
- namespace: {
585
- type: string;
586
- description: string;
587
- };
588
- fieldSelector: {
589
- type: string;
590
- description: string;
591
- };
592
- };
593
- required: never[];
594
- };
595
- } | {
596
- readonly name: "create_deployment";
597
- readonly description: "Create a new Kubernetes deployment";
598
- readonly inputSchema: {
599
- readonly type: "object";
600
- readonly properties: {
601
- readonly name: {
602
- readonly type: "string";
603
- };
604
- readonly namespace: {
605
- readonly type: "string";
606
- };
607
- readonly template: {
608
- readonly type: "string";
609
- readonly enum: ["ubuntu", "nginx", "busybox", "alpine", "custom"];
416
+ readonly force: {
417
+ readonly type: "boolean";
418
+ readonly description: "If true, immediately remove resources from API and bypass graceful deletion";
419
+ readonly default: false;
610
420
  };
611
- readonly replicas: {
421
+ readonly gracePeriodSeconds: {
612
422
  readonly type: "number";
613
- readonly default: 1;
614
- };
615
- readonly ports: {
616
- readonly type: "array";
617
- readonly items: {
618
- readonly type: "number";
619
- };
423
+ readonly description: "Period of time in seconds given to the resource to terminate gracefully";
620
424
  readonly optional: true;
621
425
  };
622
- readonly customConfig: {
623
- readonly type: "object";
624
- readonly optional: true;
625
- readonly properties: {
626
- readonly image: {
627
- readonly type: "string";
628
- };
629
- readonly command: {
630
- readonly type: "array";
631
- readonly items: {
632
- readonly type: "string";
633
- };
634
- };
635
- readonly args: {
636
- readonly type: "array";
637
- readonly items: {
638
- readonly type: "string";
639
- };
640
- };
641
- readonly ports: {
642
- readonly type: "array";
643
- readonly items: {
644
- readonly type: "object";
645
- readonly properties: {
646
- readonly containerPort: {
647
- readonly type: "number";
648
- };
649
- readonly name: {
650
- readonly type: "string";
651
- };
652
- readonly protocol: {
653
- readonly type: "string";
654
- };
655
- };
656
- };
657
- };
658
- readonly resources: {
659
- readonly type: "object";
660
- readonly properties: {
661
- readonly limits: {
662
- readonly type: "object";
663
- readonly additionalProperties: {
664
- readonly type: "string";
665
- };
666
- };
667
- readonly requests: {
668
- readonly type: "object";
669
- readonly additionalProperties: {
670
- readonly type: "string";
671
- };
672
- };
673
- };
674
- };
675
- readonly env: {
676
- readonly type: "array";
677
- readonly items: {
678
- readonly type: "object";
679
- readonly properties: {
680
- readonly name: {
681
- readonly type: "string";
682
- };
683
- readonly value: {
684
- readonly type: "string";
685
- };
686
- readonly valueFrom: {
687
- readonly type: "object";
688
- };
689
- };
690
- };
691
- };
692
- readonly volumeMounts: {
693
- readonly type: "array";
694
- readonly items: {
695
- readonly type: "object";
696
- readonly properties: {
697
- readonly name: {
698
- readonly type: "string";
699
- };
700
- readonly mountPath: {
701
- readonly type: "string";
702
- };
703
- readonly readOnly: {
704
- readonly type: "boolean";
705
- };
706
- };
707
- };
708
- };
709
- };
710
- };
711
426
  };
712
- readonly required: readonly ["name", "namespace", "template"];
713
- };
714
- } | {
715
- readonly name: "list_namespaces";
716
- readonly description: "List all namespaces";
717
- readonly inputSchema: {
718
- readonly type: "object";
719
- readonly properties: {};
427
+ readonly required: readonly [];
720
428
  };
721
429
  } | {
722
- readonly name: "delete_namespace";
723
- readonly description: "Delete a Kubernetes namespace";
430
+ readonly name: "kubectl_create";
431
+ readonly description: "Create Kubernetes resources using various methods (from file or using subcommands)";
724
432
  readonly inputSchema: {
725
433
  readonly type: "object";
726
434
  readonly properties: {
727
- readonly name: {
728
- readonly type: "string";
729
- };
730
- readonly ignoreNotFound: {
435
+ readonly dryRun: {
731
436
  readonly type: "boolean";
437
+ readonly description: "If true, only validate the resource, don't actually create it";
732
438
  readonly default: false;
733
439
  };
734
- };
735
- readonly required: readonly ["name"];
736
- };
737
- } | {
738
- readonly name: "cleanup";
739
- readonly description: "Cleanup all managed resources";
740
- readonly inputSchema: {
741
- readonly type: "object";
742
- readonly properties: {};
743
- };
744
- } | {
745
- name: string;
746
- description: string;
747
- inputSchema: {
748
- type: string;
749
- properties: {
750
- resourceType: {
751
- type: string;
752
- };
753
- resourceName: {
754
- type: string;
440
+ readonly output: {
441
+ readonly type: "string";
442
+ readonly enum: readonly ["json", "yaml", "name", "go-template", "go-template-file", "template", "templatefile", "jsonpath", "jsonpath-as-json", "jsonpath-file"];
443
+ readonly description: "Output format. One of: json|yaml|name|go-template|go-template-file|template|templatefile|jsonpath|jsonpath-as-json|jsonpath-file";
444
+ readonly default: "yaml";
755
445
  };
756
- localPort: {
757
- type: string;
446
+ readonly validate: {
447
+ readonly type: "boolean";
448
+ readonly description: "If true, validate resource schema against server schema";
449
+ readonly default: true;
758
450
  };
759
- targetPort: {
760
- type: string;
451
+ readonly manifest: {
452
+ readonly type: "string";
453
+ readonly description: "YAML manifest to create resources from";
761
454
  };
762
- namespace: {
763
- type: string;
455
+ readonly filename: {
456
+ readonly type: "string";
457
+ readonly description: "Path to a YAML file to create resources from";
764
458
  };
765
- };
766
- required: string[];
767
- };
768
- } | {
769
- name: string;
770
- description: string;
771
- inputSchema: {
772
- type: string;
773
- properties: {
774
- id: {
775
- type: string;
459
+ readonly resourceType: {
460
+ readonly type: "string";
461
+ readonly description: "Type of resource to create (namespace, configmap, deployment, service, etc.)";
776
462
  };
777
- };
778
- required: string[];
779
- };
780
- } | {
781
- readonly name: "delete_deployment";
782
- readonly description: "Delete a Kubernetes deployment";
783
- readonly inputSchema: {
784
- readonly type: "object";
785
- readonly properties: {
786
463
  readonly name: {
787
464
  readonly type: "string";
465
+ readonly description: "Name of the resource to create";
788
466
  };
789
467
  readonly namespace: {
790
468
  readonly type: "string";
469
+ readonly description: "Namespace to create the resource in";
470
+ readonly default: "default";
791
471
  };
792
- readonly ignoreNotFound: {
793
- readonly type: "boolean";
794
- readonly default: false;
795
- };
796
- };
797
- readonly required: readonly ["name", "namespace"];
798
- };
799
- } | {
800
- name: string;
801
- description: string;
802
- inputSchema: {
803
- type: string;
804
- properties: {
805
- name: {
806
- type: string;
807
- };
808
- namespace: {
809
- type: string;
472
+ readonly fromLiteral: {
473
+ readonly type: "array";
474
+ readonly items: {
475
+ readonly type: "string";
476
+ };
477
+ readonly description: "Key-value pair for creating configmap (e.g. [\"key1=value1\", \"key2=value2\"])";
810
478
  };
811
- replicas: {
812
- type: string;
479
+ readonly fromFile: {
480
+ readonly type: "array";
481
+ readonly items: {
482
+ readonly type: "string";
483
+ };
484
+ readonly description: "Path to file for creating configmap (e.g. [\"key1=/path/to/file1\", \"key2=/path/to/file2\"])";
813
485
  };
814
- };
815
- required: string[];
816
- };
817
- } | {
818
- readonly name: "describe_deployment";
819
- readonly description: "Get details about a Kubernetes deployment";
820
- readonly inputSchema: {
821
- readonly type: "object";
822
- readonly properties: {
823
- readonly name: {
486
+ readonly secretType: {
824
487
  readonly type: "string";
488
+ readonly enum: readonly ["generic", "docker-registry", "tls"];
489
+ readonly description: "Type of secret to create (generic, docker-registry, tls)";
825
490
  };
826
- readonly namespace: {
491
+ readonly serviceType: {
827
492
  readonly type: "string";
493
+ readonly enum: readonly ["clusterip", "nodeport", "loadbalancer", "externalname"];
494
+ readonly description: "Type of service to create (clusterip, nodeport, loadbalancer, externalname)";
828
495
  };
829
- };
830
- readonly required: readonly ["name", "namespace"];
831
- };
832
- } | {
833
- name: string;
834
- description: string;
835
- inputSchema: {
836
- type: string;
837
- properties: {
838
- name: {
839
- type: string;
840
- };
841
- namespace: {
842
- type: string;
843
- };
844
- data: {
845
- type: string;
846
- ConfigData: {
847
- type: string;
496
+ readonly tcpPort: {
497
+ readonly type: "array";
498
+ readonly items: {
499
+ readonly type: "string";
848
500
  };
501
+ readonly description: "Port pairs for tcp service (e.g. [\"80:8080\", \"443:8443\"])";
849
502
  };
850
- };
851
- required: string[];
852
- };
853
- } | {
854
- readonly name: "list_contexts";
855
- readonly description: "List all available Kubernetes contexts";
856
- readonly inputSchema: {
857
- readonly type: "object";
858
- readonly properties: {
859
- readonly showCurrent: {
860
- readonly type: "boolean";
861
- readonly description: "Show which context is currently active";
862
- readonly default: true;
503
+ readonly image: {
504
+ readonly type: "string";
505
+ readonly description: "Image to use for the containers in the deployment";
863
506
  };
864
- };
865
- };
866
- } | {
867
- readonly name: "get_current_context";
868
- readonly description: "Get the current Kubernetes context";
869
- readonly inputSchema: {
870
- readonly type: "object";
871
- readonly properties: {
872
- readonly detailed: {
873
- readonly type: "boolean";
874
- readonly description: "Include detailed information about the current context";
875
- readonly default: false;
507
+ readonly replicas: {
508
+ readonly type: "number";
509
+ readonly description: "Number of replicas to create for the deployment";
510
+ readonly default: 1;
876
511
  };
877
- };
878
- };
879
- } | {
880
- readonly name: "set_current_context";
881
- readonly description: "Set the current Kubernetes context";
882
- readonly inputSchema: {
883
- readonly type: "object";
884
- readonly properties: {
885
- readonly name: {
886
- readonly type: "string";
887
- readonly description: "Name of the context to set as current";
512
+ readonly port: {
513
+ readonly type: "number";
514
+ readonly description: "Port that the container exposes";
888
515
  };
889
- };
890
- readonly required: readonly ["name"];
891
- };
892
- } | {
893
- readonly name: "create_service";
894
- readonly description: "Create a new Kubernetes service";
895
- readonly inputSchema: {
896
- readonly type: "object";
897
- readonly properties: {
898
- readonly name: {
516
+ readonly schedule: {
899
517
  readonly type: "string";
518
+ readonly description: "Cron schedule expression for the CronJob (e.g. \"*/5 * * * *\")";
900
519
  };
901
- readonly namespace: {
902
- readonly type: "string";
903
- readonly default: "default";
520
+ readonly suspend: {
521
+ readonly type: "boolean";
522
+ readonly description: "Whether to suspend the CronJob";
523
+ readonly default: false;
904
524
  };
905
- readonly type: {
906
- readonly type: "string";
907
- readonly enum: readonly ["ClusterIP", "NodePort", "LoadBalancer"];
908
- readonly default: "ClusterIP";
525
+ readonly command: {
526
+ readonly type: "array";
527
+ readonly items: {
528
+ readonly type: "string";
529
+ };
530
+ readonly description: "Command to run in the container";
909
531
  };
910
- readonly selector: {
911
- readonly type: "object";
912
- readonly additionalProperties: {
532
+ readonly labels: {
533
+ readonly type: "array";
534
+ readonly items: {
913
535
  readonly type: "string";
914
536
  };
915
- readonly default: {};
537
+ readonly description: "Labels to apply to the resource (e.g. [\"key1=value1\", \"key2=value2\"])";
916
538
  };
917
- readonly ports: {
539
+ readonly annotations: {
918
540
  readonly type: "array";
919
541
  readonly items: {
920
- readonly type: "object";
921
- readonly properties: {
922
- readonly port: {
923
- readonly type: "number";
924
- };
925
- readonly targetPort: {
926
- readonly type: "number";
927
- };
928
- readonly protocol: {
929
- readonly type: "string";
930
- readonly enum: readonly ["TCP", "UDP"];
931
- readonly default: "TCP";
932
- };
933
- readonly name: {
934
- readonly type: "string";
935
- };
936
- readonly nodePort: {
937
- readonly type: "number";
938
- };
939
- };
940
- readonly required: readonly ["port"];
542
+ readonly type: "string";
941
543
  };
544
+ readonly description: "Annotations to apply to the resource (e.g. [\"key1=value1\", \"key2=value2\"])";
942
545
  };
943
546
  };
944
- readonly required: readonly ["name", "ports"];
547
+ readonly required: readonly [];
945
548
  };
946
549
  } | {
947
- readonly name: "describe_service";
948
- readonly description: "Describe a Kubernetes service (read details like status, ports, selectors, etc.)";
550
+ readonly name: "kubectl_logs";
551
+ readonly description: "Get logs from Kubernetes resources like pods, deployments, or jobs";
949
552
  readonly inputSchema: {
950
553
  readonly type: "object";
951
554
  readonly properties: {
555
+ readonly resourceType: {
556
+ readonly type: "string";
557
+ readonly enum: readonly ["pod", "deployment", "job", "cronjob"];
558
+ readonly description: "Type of resource to get logs from";
559
+ };
952
560
  readonly name: {
953
561
  readonly type: "string";
562
+ readonly description: "Name of the resource";
954
563
  };
955
564
  readonly namespace: {
956
565
  readonly type: "string";
566
+ readonly description: "Namespace of the resource";
957
567
  readonly default: "default";
958
568
  };
959
- };
960
- readonly required: readonly ["name"];
961
- };
962
- } | {
963
- name: string;
964
- description: string;
965
- inputSchema: {
966
- type: string;
967
- required: string[];
968
- properties: {
969
- name: {
970
- type: string;
971
- };
972
- namespace: {
973
- type: string;
974
- default: string;
975
- };
976
- type: {
977
- type: string;
978
- enum: string[];
979
- };
980
- selector: {
981
- type: string;
982
- additionalProperties: {
983
- type: string;
984
- };
569
+ readonly container: {
570
+ readonly type: "string";
571
+ readonly description: "Container name (required when pod has multiple containers)";
572
+ readonly optional: true;
985
573
  };
986
- ports: {
987
- type: string;
988
- items: {
989
- type: string;
990
- properties: {
991
- port: {
992
- type: string;
993
- };
994
- targetPort: {
995
- type: string;
996
- };
997
- protocol: {
998
- type: string;
999
- enum: string[];
1000
- default: string;
1001
- };
1002
- name: {
1003
- type: string;
1004
- };
1005
- nodePort: {
1006
- type: string;
1007
- };
1008
- };
1009
- required: string[];
1010
- };
574
+ readonly tail: {
575
+ readonly type: "number";
576
+ readonly description: "Number of lines to show from end of logs";
577
+ readonly optional: true;
1011
578
  };
1012
- };
1013
- };
1014
- } | {
1015
- readonly name: "delete_service";
1016
- readonly description: "Delete a Kubernetes service";
1017
- readonly inputSchema: {
1018
- readonly type: "object";
1019
- readonly properties: {
1020
- readonly name: {
579
+ readonly since: {
1021
580
  readonly type: "string";
581
+ readonly description: "Show logs since relative time (e.g. '5s', '2m', '3h')";
582
+ readonly optional: true;
1022
583
  };
1023
- readonly namespace: {
584
+ readonly sinceTime: {
1024
585
  readonly type: "string";
1025
- readonly default: "default";
586
+ readonly description: "Show logs since absolute time (RFC3339)";
587
+ readonly optional: true;
588
+ };
589
+ readonly timestamps: {
590
+ readonly type: "boolean";
591
+ readonly description: "Include timestamps in logs";
592
+ readonly default: false;
593
+ };
594
+ readonly previous: {
595
+ readonly type: "boolean";
596
+ readonly description: "Include logs from previously terminated containers";
597
+ readonly default: false;
1026
598
  };
1027
- readonly ignoreNotFound: {
599
+ readonly follow: {
1028
600
  readonly type: "boolean";
601
+ readonly description: "Follow logs output (not recommended, may cause timeouts)";
1029
602
  readonly default: false;
1030
603
  };
604
+ readonly labelSelector: {
605
+ readonly type: "string";
606
+ readonly description: "Filter resources by label selector";
607
+ readonly optional: true;
608
+ };
1031
609
  };
1032
- readonly required: readonly ["name"];
610
+ readonly required: readonly ["resourceType", "name", "namespace"];
1033
611
  };
1034
612
  })[];
1035
613
  export { allTools, destructiveTools };