Skip to content

Commit 1b8585d

Browse files
authored
Merge pull request #99 from Azure/doc-update-tools
doc: update document with new tools added
2 parents 392796e + a08f9f5 commit 1b8585d

File tree

1 file changed

+141
-116
lines changed

1 file changed

+141
-116
lines changed

README.md

Lines changed: 141 additions & 116 deletions
Original file line numberDiff line numberDiff line change
@@ -66,11 +66,13 @@ Command line arguments:
6666

6767
```sh
6868
Usage 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
121123
make 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
339364
trademarks 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).
341366
Use 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

Comments
 (0)