@@ -66,11 +66,13 @@ Command line arguments:
6666
6767``` sh
6868Usage of ./aks-mcp:
69- --access-level string Access level (readonly, readwrite, admin) (default " readonly" )
70- --host string Host to listen for the server (only used with transport sse or streamable-http) (default " 127.0.0.1" )
71- --port int Port to listen for the server (only used with transport sse or streamable-http) (default 8000)
72- --timeout int Timeout for command execution in seconds, default is 600s (default 600)
73- --transport string Transport mechanism to use (stdio, sse or streamable-http) (default " stdio" )
69+ --access-level string Access level (readonly, readwrite, admin) (default " readonly" )
70+ --additional-tools string Comma-separated list of additional Kubernetes tools to support (kubectl is always enabled). Available: helm,cilium,inspektor-gadget
71+ --allow-namespaces string Comma-separated list of allowed Kubernetes namespaces (empty means all namespaces)
72+ --host string Host to listen for the server (only used with transport sse or streamable-http) (default " 127.0.0.1" )
73+ --port int Port to listen for the server (only used with transport sse or streamable-http) (default 8000)
74+ --timeout int Timeout for command execution in seconds, default is 600s (default 600)
75+ --transport string Transport mechanism to use (stdio, sse or streamable-http) (default " stdio" )
7476` ` `
7577
7678** Environment variables:**
@@ -119,9 +121,6 @@ make clean
119121
120122# Install binary to GOBIN
121123make install
122-
123- # Run security scan
124- make security
125124` ` `
126125
127126# ### Docker
@@ -164,159 +163,185 @@ Show me all ClusterResourcePlacements in my fleet.
164163
165164# # Available Tools
166165
167- The AKS-MCP server provides the following tools for interacting with AKS clusters:
166+ The AKS-MCP server provides consolidated tools for interacting with AKS clusters. These tools have been designed to provide comprehensive functionality through unified interfaces :
168167
169168< details>
170- < summary> AKS Cluster Management Tools (Read-Only)< /summary>
171-
172- - ` az_aks_show` : Show the details of a managed Kubernetes cluster
173- - ` az_aks_list` : List managed Kubernetes clusters
174- - ` az_aks_get-versions` : Get the versions available for creating a managed Kubernetes cluster
175- - ` az_aks_check-network_outbound` : Perform outbound network connectivity check for a node
176- - ` az_aks_nodepool_list` : List node pools in a managed Kubernetes cluster
177- - ` az_aks_nodepool_show` : Show the details for a node pool in the managed Kubernetes cluster
178- < /details>
169+ < summary> AKS Cluster Management< /summary>
170+
171+ ** Tool:** ` az_aks_operations`
172+
173+ Unified tool for managing Azure Kubernetes Service (AKS) clusters and related operations.
174+
175+ ** Available Operations:**
176+ - ** Read-Only** (all access levels):
177+ - ` show` : Show cluster details
178+ - ` list` : List clusters in subscription/resource group
179+ - ` get-versions` : Get available Kubernetes versions
180+ - ` check-network` : Perform outbound network connectivity check
181+ - ` nodepool-list` : List node pools in cluster
182+ - ` nodepool-show` : Show node pool details
183+ - ` account-list` : List Azure subscriptions
184+
185+ - ** Read-Write** (` readwrite` /` admin` access levels):
186+ - ` create` : Create new cluster
187+ - ` delete` : Delete cluster
188+ - ` scale` : Scale cluster node count
189+ - ` update` : Update cluster configuration
190+ - ` upgrade` : Upgrade Kubernetes version
191+ - ` nodepool-add` : Add node pool to cluster
192+ - ` nodepool-delete` : Delete node pool
193+ - ` nodepool-scale` : Scale node pool
194+ - ` nodepool-upgrade` : Upgrade node pool
195+ - ` account-set` : Set active subscription
196+ - ` login` : Azure authentication
197+
198+ - ** Admin-Only** (` admin` access level):
199+ - ` get-credentials` : Get cluster credentials for kubectl access
179200
180- < details>
181- < summary> AKS Cluster Management Tools (Read-Write)< /summary>
182-
183- * Available with ` --access-level readwrite` or ` admin` *
184-
185- - ` az_aks_create` : Create a new managed Kubernetes cluster
186- - ` az_aks_delete` : Delete a managed Kubernetes cluster
187- - ` az_aks_scale` : Scale the node pool in a managed Kubernetes cluster
188- - ` az_aks_update` : Update a managed Kubernetes cluster
189- - ` az_aks_upgrade` : Upgrade a managed Kubernetes cluster to a newer version
190- - ` az_aks_nodepool_add` : Add a node pool to the managed Kubernetes cluster
191- - ` az_aks_nodepool_delete` : Delete a node pool from the managed Kubernetes cluster
192- - ` az_aks_nodepool_scale` : Scale a node pool in a managed Kubernetes cluster
193- - ` az_aks_nodepool_upgrade` : Upgrade a node pool to a newer version
194201< /details>
195202
196203< details>
197- < summary> AKS Cluster Management Tools (Admin) < /summary>
204+ < summary> Network Resource Management< /summary>
198205
199- * Available with ` --access-level admin ` only *
206+ ** Tool: ** ` az_network_resources `
200207
201- - ` az_aks_get-credentials` : Get access credentials for a managed Kubernetes cluster
202- < /details>
208+ Unified tool for getting Azure network resource information used by AKS clusters.
209+
210+ ** Available Resource Types:**
211+ - ` all` : Get information about all network resources
212+ - ` vnet` : Virtual Network information
213+ - ` subnet` : Subnet information
214+ - ` nsg` : Network Security Group information
215+ - ` route_table` : Route Table information
216+ - ` load_balancer` : Load Balancer information
217+ - ` private_endpoint` : Private endpoint information
203218
204- < details>
205- < summary> Network Tools< /summary>
206-
207- - ` get_vnet_info` : Get information about the VNet used by the AKS cluster
208- - ` get_subnet_info` : Get information about the Subnet used by the AKS cluster
209- - ` get_route_table_info` : Get information about the Route Table used by the AKS cluster
210- - ` get_nsg_info` : Get information about the Network Security Group used by the AKS cluster
211- - ` get_load_balancers_info` : Get information about all Load Balancers used by the AKS cluster
212- - ` get_private_endpoint_info` : Get information about the private endpoint used by the AKS cluster
213219< /details>
214220
215221< details>
216- < summary> Compute Tools < /summary>
222+ < summary> Monitoring and Diagnostics < /summary>
217223
218- - ` get_aks_vmss_info` : Get detailed VMSS configuration for node pools in the AKS cluster
219- - ` az_vmss_run-command_invoke` : Execute a command on instances of a Virtual Machine Scale Set (readwrite/admin)
220- < /details>
224+ ** Tool:** ` az_monitoring`
221225
222- < details>
223- < summary> Monitor Tools< /summary>
226+ Unified tool for Azure monitoring and diagnostics operations for AKS clusters.
227+
228+ ** Available Operations:**
229+ - ` metrics` : List metric values for resources
230+ - ` resource_health` : Retrieve resource health events for AKS clusters
231+ - ` app_insights` : Execute KQL queries against Application Insights telemetry data
232+ - ` diagnostics` : Check if AKS cluster has diagnostic settings configured
233+ - ` control_plane_logs` : Query AKS control plane logs with safety constraints and time range validation
224234
225- - ` az_monitor_metrics_list` : List the metric values for a resource
226- - ` az_monitor_metrics_list-definitions` : List the metric definitions for a resource
227- - ` az_monitor_metrics_list-namespaces` : List the metric namespaces for a resource
228- - ` az_monitor_activity_log_resource_health` : Retrieve resource health events for AKS clusters
229- - ` az_monitor_app_insights_query` : Execute KQL queries against Application Insights telemetry data
230235< /details>
231236
232237< details>
233- < summary> AKS Control Plane Tools< /summary>
238+ < summary> Compute Resources< /summary>
239+
240+ ** Tool:** ` get_aks_vmss_info`
241+ - Get detailed VMSS configuration for node pools in the AKS cluster
242+
243+ ** Tool:** ` az_vmss_run-command_invoke` * (readwrite/admin only)*
244+ - Execute commands on Virtual Machine Scale Set instances
234245
235- - ` aks_control_plane_diagnostic_settings` : Check if AKS cluster has diagnostic settings configured
236- - ` aks_control_plane_logs` : Query AKS control plane logs with safety constraints and time range validation
237246< /details>
238247
239248< details>
240- < summary> Fleet Tools< /summary>
241-
242- - ` az_fleet` : Execute Azure Fleet commands with structured parameters for AKS Fleet management
243- - Supports operations: list, show, create, update, delete, start, stop, get-credentials
244- - Supports resources: fleet, member, updaterun, updatestrategy, clusterresourceplacement
245- - Requires readwrite or admin access for write operations
246- - ** Kubernetes ClusterResourcePlacement Operations** : Create and manage ClusterResourcePlacements
247- - ` clusterresourceplacement create` : Create new ClusterResourcePlacement with policy and selectors
248- - ` clusterresourceplacement list` : List all ClusterResourcePlacements
249- - ` clusterresourceplacement show/get` : Show ClusterResourcePlacement details
250- - ` clusterresourceplacement delete` : Delete ClusterResourcePlacement
249+ < summary> Fleet Management< /summary>
250+
251+ ** Tool:** ` az_fleet`
252+
253+ Comprehensive Azure Fleet management for multi-cluster scenarios.
254+
255+ ** Available Operations:**
256+ - ** Fleet Operations** : list, show, create, update, delete, get-credentials
257+ - ** Member Operations** : list, show, create, update, delete
258+ - ** Update Run Operations** : list, show, create, start, stop, delete
259+ - ** Update Strategy Operations** : list, show, create, delete
260+ - ** ClusterResourcePlacement Operations** : list, show, get, create, delete
261+
262+ Supports both Azure Fleet management and Kubernetes ClusterResourcePlacement CRD operations.
263+
251264< /details>
252265
253266< details>
254- < summary> Detector Tools< /summary>
267+ < summary> Diagnostic Detectors< /summary>
268+
269+ ** Tool:** ` list_detectors`
270+ - List all available AKS cluster detectors
271+
272+ ** Tool:** ` run_detector`
273+ - Run a specific AKS diagnostic detector
274+
275+ ** Tool:** ` run_detectors_by_category`
276+ - Run all detectors in a specific category
277+ - ** Categories** : Best Practices, Cluster and Control Plane Availability and Performance, Connectivity Issues, Create/Upgrade/Delete and Scale, Deprecations, Identity and Security, Node Health, Storage
255278
256- - ` list_detectors` : List all available AKS cluster detectors
257- - ` run_detector` : Run a specific AKS detector
258- - ` run_detectors_by_category` : Run all detectors in a specific category
259279< /details>
260280
261281< details>
262- < summary> Azure Advisor Tools< /summary>
282+ < summary> Azure Advisor< /summary>
283+
284+ ** Tool:** ` az_advisor_recommendation`
285+
286+ Retrieve and manage Azure Advisor recommendations for AKS clusters.
287+
288+ ** Available Operations:**
289+ - ` list` : List recommendations with filtering options
290+ - ` report` : Generate recommendation reports
291+ - ** Filter Options** : resource_group, cluster_names, category (Cost, HighAvailability, Performance, Security), severity (High, Medium, Low)
263292
264- - ` az_advisor_recommendation` : Retrieve and manage Azure Advisor recommendations for AKS clusters
265293< /details>
266294
267295< details>
268296< summary> Kubernetes Tools< /summary>
269297
270- * Note: kubectl commands are available with all access levels. Additional tools (helm, cilium) require explicit enablement via ` --additional-tools` *
298+ * Note: kubectl commands are available with all access levels. Additional tools require explicit enablement via ` --additional-tools` *
271299
272300** kubectl Commands (Read-Only):**
273- - ` kubectl_get` : Display one or many resources
274- - ` kubectl_describe` : Show details of a specific resource or group of resources
275- - ` kubectl_explain` : Documentation of resources
276- - ` kubectl_logs` : Print the logs for a container in a pod
277- - ` kubectl_api-resources` : Print the supported API resources on the server
278- - ` kubectl_api-versions` : Print the supported API versions on the server
279- - ` kubectl_diff` : Diff live configuration against a would-be applied file
280- - ` kubectl_cluster-info` : Display cluster info
281- - ` kubectl_top` : Display resource usage
282- - ` kubectl_events` : List events in the cluster
283- - ` kubectl_auth` : Inspect authorization
301+ - ` kubectl_get` , ` kubectl_describe` , ` kubectl_explain` , ` kubectl_logs`
302+ - ` kubectl_api-resources` , ` kubectl_api-versions` , ` kubectl_diff`
303+ - ` kubectl_cluster-info` , ` kubectl_top` , ` kubectl_events` , ` kubectl_auth`
284304
285305** kubectl Commands (Read-Write/Admin):**
286- - ` kubectl_create` : Create a resource from a file or from stdin
287- - ` kubectl_delete` : Delete resources by file names, stdin, resources and names, or by resources and label selector
288- - ` kubectl_apply` : Apply a configuration to a resource by file name or stdin
289- - ` kubectl_expose` : Take a replication controller, service, deployment or pod and expose it as a new Kubernetes Service
290- - ` kubectl_run` : Run a particular image on the cluster
291- - ` kubectl_set` : Set specific features on objects
292- - ` kubectl_rollout` : Manage the rollout of a resource
293- - ` kubectl_scale` : Set a new size for a Deployment, ReplicaSet, Replication Controller, or StatefulSet
294- - ` kubectl_autoscale` : Auto-scale a Deployment, ReplicaSet, or StatefulSet
295- - ` kubectl_label` : Update the labels on a resource
296- - ` kubectl_annotate` : Update the annotations on a resource
297- - ` kubectl_patch` : Update field(s) of a resource
298- - ` kubectl_replace` : Replace a resource by file name or stdin
299- - ` kubectl_cp` : Copy files and directories to and from containers
300- - ` kubectl_exec` : Execute a command in a container
301- - ` kubectl_cordon` : Mark node as unschedulable
302- - ` kubectl_uncordon` : Mark node as schedulable
303- - ` kubectl_drain` : Drain node in preparation for maintenance
304- - ` kubectl_taint` : Update the taints on one or more nodes
305- - ` kubectl_certificate` : Modify certificate resources
306+ - ` kubectl_create` , ` kubectl_delete` , ` kubectl_apply` , ` kubectl_expose` , ` kubectl_run`
307+ - ` kubectl_set` , ` kubectl_rollout` , ` kubectl_scale` , ` kubectl_autoscale`
308+ - ` kubectl_label` , ` kubectl_annotate` , ` kubectl_patch` , ` kubectl_replace`
309+ - ` kubectl_cp` , ` kubectl_exec` , ` kubectl_cordon` , ` kubectl_uncordon`
310+ - ` kubectl_drain` , ` kubectl_taint` , ` kubectl_certificate`
306311
307312** Additional Tools (Optional):**
308- - ` helm` : Helm package manager for Kubernetes (requires ` --additional-tools helm` )
309- - ` cilium` : Cilium CLI for eBPF-based networking and security (requires ` --additional-tools cilium` )
310- - ` inspektor-gadget` : [Inspektor Gadget](docs/inspektor-gadget-usage.md) for real-time debugging of Kubernetes clusters (requires ` --additional-tools=inspektor-gadget` )
313+ - ` helm` : Helm package manager (requires ` --additional-tools helm` )
314+ - ` cilium` : Cilium CLI for eBPF networking (requires ` --additional-tools cilium` )
311315
312316< /details>
313317
314318< details>
315- < summary> Account Management Tools< /summary>
319+ < summary> Real-time Observability< /summary>
320+
321+ ** Tool:** ` inspektor_gadget` * (requires ` --additional-tools inspektor-gadget` )*
322+
323+ Real-time observability tool for Azure Kubernetes Service (AKS) clusters using eBPF.
324+
325+ ** Available Actions:**
326+ - ` deploy` : Deploy Inspektor Gadget to cluster
327+ - ` undeploy` : Remove Inspektor Gadget from cluster
328+ - ` is_deployed` : Check deployment status
329+ - ` run` : Run one-shot gadgets
330+ - ` start` : Start continuous gadgets
331+ - ` stop` : Stop running gadgets
332+ - ` get_results` : Retrieve gadget results
333+ - ` list_gadgets` : List available gadgets
334+
335+ ** Available Gadgets:**
336+ - ` observe_dns` : Monitor DNS requests and responses
337+ - ` observe_tcp` : Monitor TCP connections
338+ - ` observe_file_open` : Monitor file system operations
339+ - ` observe_process_execution` : Monitor process execution
340+ - ` observe_signal` : Monitor signal delivery
341+ - ` observe_system_calls` : Monitor system calls
342+ - ` top_file` : Top files by I/O operations
343+ - ` top_tcp` : Top TCP connections by traffic
316344
317- - ` az_account_list` : List all subscriptions for the authenticated account
318- - ` az_account_set` : Set a subscription as the current active subscription
319- - ` az_login` : Log in to Azure using service principal credentials
320345< /details>
321346
322347# # Contributing
@@ -339,4 +364,4 @@ This project may contain trademarks or logos for projects, products, or services
339364trademarks or logos is subject to and must follow
340365[Microsoft' s Trademark & Brand Guidelines](https://www.microsoft.com/en-us/legal/intellectualproperty/trademarks/usage/general).
341366Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship.
342- Any use of third-party trademarks or logos are subject to those third-party' s policies.
367+ Any use of third-party trademarks or logos are subject to those third-party' s policies.
0 commit comments