diff --git a/core/Microsoft.Mcp.Core/src/Commands/BaseCommand.cs b/core/Microsoft.Mcp.Core/src/Commands/BaseCommand.cs index 0fcf6e1fbd..7c229e9ab2 100644 --- a/core/Microsoft.Mcp.Core/src/Commands/BaseCommand.cs +++ b/core/Microsoft.Mcp.Core/src/Commands/BaseCommand.cs @@ -43,11 +43,11 @@ protected BaseCommand() RegisterOptions(_command); } - public virtual string Id { get; protected set; } = null!; - public virtual string Name { get; protected set; } = null!; - public virtual string Description { get; protected set; } = null!; - public virtual string Title { get; protected set; } = null!; - public virtual ToolMetadata Metadata { get; protected set; } = null!; + public string Id { get; protected set; } = null!; + public string Name { get; protected set; } = null!; + public string Description { get; protected set; } = null!; + public string Title { get; protected set; } = null!; + public ToolMetadata Metadata { get; protected set; } = null!; public Command GetCommand() => _command; diff --git a/tools/Azure.Mcp.Tools.Acr/src/Commands/Registry/RegistryListCommand.cs b/tools/Azure.Mcp.Tools.Acr/src/Commands/Registry/RegistryListCommand.cs index b8aad012ab..9f5ae7c229 100644 --- a/tools/Azure.Mcp.Tools.Acr/src/Commands/Registry/RegistryListCommand.cs +++ b/tools/Azure.Mcp.Tools.Acr/src/Commands/Registry/RegistryListCommand.cs @@ -15,8 +15,7 @@ namespace Azure.Mcp.Tools.Acr.Commands.Registry; Title = "List Container Registries", Description = """ List Azure Container Registries in a subscription. Optionally filter by resource group. Each registry result - includes: name, location, loginServer, skuName, skuTier. If no registries are found the tool returns null results - (consistent with other list commands). + includes name, location, loginServer, skuName, skuTier. """, Destructive = false, Idempotent = true, diff --git a/tools/Azure.Mcp.Tools.Acr/src/Commands/Registry/RegistryRepositoryListCommand.cs b/tools/Azure.Mcp.Tools.Acr/src/Commands/Registry/RegistryRepositoryListCommand.cs index 2645d8aa94..c66fcb3879 100644 --- a/tools/Azure.Mcp.Tools.Acr/src/Commands/Registry/RegistryRepositoryListCommand.cs +++ b/tools/Azure.Mcp.Tools.Acr/src/Commands/Registry/RegistryRepositoryListCommand.cs @@ -17,7 +17,7 @@ namespace Azure.Mcp.Tools.Acr.Commands.Registry; Title = "List Container Registry Repositories", Description = """ List repositories in Azure Container Registries. By default, lists repositories for all registries in the subscription. - You can narrow the scope using --resource-group and/or --registry to list repositories for a specific registry only. + You can narrow the scope using resource group and/or registry to list repositories for a specific registry only. """, Destructive = false, Idempotent = true, diff --git a/tools/Azure.Mcp.Tools.Acr/src/Options/AcrOptionDefinitions.cs b/tools/Azure.Mcp.Tools.Acr/src/Options/AcrOptionDefinitions.cs index fc4a9c8b04..fcf4113cf3 100644 --- a/tools/Azure.Mcp.Tools.Acr/src/Options/AcrOptionDefinitions.cs +++ b/tools/Azure.Mcp.Tools.Acr/src/Options/AcrOptionDefinitions.cs @@ -11,6 +11,6 @@ public static class AcrOptionDefinitions $"--{RegistryName}" ) { - Description = "The name of the Azure Container Registry. This is the unique name you chose for your container registry." + Description = "The name of the Azure Container Registry." }; } diff --git a/tools/Azure.Mcp.Tools.Advisor/src/Commands/Recommendation/RecommendationApplyCommand.cs b/tools/Azure.Mcp.Tools.Advisor/src/Commands/Recommendation/RecommendationApplyCommand.cs index bd65f96c51..4fc4f79d6e 100644 --- a/tools/Azure.Mcp.Tools.Advisor/src/Commands/Recommendation/RecommendationApplyCommand.cs +++ b/tools/Azure.Mcp.Tools.Advisor/src/Commands/Recommendation/RecommendationApplyCommand.cs @@ -13,32 +13,25 @@ namespace Azure.Mcp.Tools.Advisor.Commands.Recommendation; +[CommandMetadata( + Id = "174fd0df-a11a-4139-b987-efd57611f62f", + Name = "apply", + Title = "Apply Advisor Recommendations", + Description = """ + This tool helps in applying advisor recommendations on IaaC files (like ARM, Terraform) for Azure resources. It returns the rules that can be applied to the IaaC file. + """, + Destructive = false, + Idempotent = true, + OpenWorld = false, + ReadOnly = true, + LocalRequired = false, + Secret = false)] public sealed class RecommendationApplyCommand(ILogger logger) : BaseCommand { - private const string CommandTitle = "Apply Advisor Recommendations"; private readonly ILogger _logger = logger; private static readonly ConcurrentDictionary s_advisorRecommendationRulesCache = new(); private static readonly Lazy> s_availableResources = new(LoadAvailableResources); - public override string Id => "174fd0df-a11a-4139-b987-efd57611f62f"; - - public override string Name => "apply"; - - public override string Description => - @"This tool helps in applying advisor recommendations on IaaC files (like ARM, Terraform) for Azure resources. It returns the rules that can be applied to the IaaC file."; - - public override string Title => CommandTitle; - - public override ToolMetadata Metadata => new() - { - Destructive = false, - Idempotent = true, - OpenWorld = false, - ReadOnly = true, - LocalRequired = false, - Secret = false - }; - protected override void RegisterOptions(Command command) { command.Options.Add(RecommendationApplyOptionDefinitions.Resource); diff --git a/tools/Azure.Mcp.Tools.Aks/src/Commands/Cluster/ClusterGetCommand.cs b/tools/Azure.Mcp.Tools.Aks/src/Commands/Cluster/ClusterGetCommand.cs index 666b4a3ce3..1d4bc02787 100644 --- a/tools/Azure.Mcp.Tools.Aks/src/Commands/Cluster/ClusterGetCommand.cs +++ b/tools/Azure.Mcp.Tools.Aks/src/Commands/Cluster/ClusterGetCommand.cs @@ -16,7 +16,7 @@ namespace Azure.Mcp.Tools.Aks.Commands.Cluster; Id = "34e0d3d3-cbc5-4df8-8244-1439b97f3de5", Name = "get", Title = "Get Azure Kubernetes Service (AKS) Cluster Details", - Description = "List/enumerate all AKS (Azure Kubernetes Service) clusters in a subscription. Get/retrieve/show the details of a specific cluster if a name is provided.", + Description = "List/enumerate all AKS (Azure Kubernetes Service) clusters in a subscription. Get/retrieve/show the details of a specific cluster if a cluster name is provided.", Destructive = false, Idempotent = true, OpenWorld = false, diff --git a/tools/Azure.Mcp.Tools.Aks/src/Commands/Nodepool/NodepoolGetCommand.cs b/tools/Azure.Mcp.Tools.Aks/src/Commands/Nodepool/NodepoolGetCommand.cs index 5c87c3c518..483e834a2a 100644 --- a/tools/Azure.Mcp.Tools.Aks/src/Commands/Nodepool/NodepoolGetCommand.cs +++ b/tools/Azure.Mcp.Tools.Aks/src/Commands/Nodepool/NodepoolGetCommand.cs @@ -16,7 +16,7 @@ namespace Azure.Mcp.Tools.Aks.Commands.Nodepool; Id = "9abb0904-2ffc-4aab-b4ea-fc454b6351b1", Name = "get", Title = "Get Azure Kubernetes Service (AKS) Node Pool Details", - Description = "List/enumerate all AKS (Azure Kubernetes Service) node pools in a cluster. Get/retrieve/show the details of a specific node pool if a name is provided.", + Description = "List/enumerate all AKS (Azure Kubernetes Service) node pools in a cluster. Get/retrieve/show the details of a specific node pool if a node pool name is provided.", Destructive = false, Idempotent = true, OpenWorld = false, diff --git a/tools/Azure.Mcp.Tools.AppConfig/src/Commands/Account/AccountListCommand.cs b/tools/Azure.Mcp.Tools.AppConfig/src/Commands/Account/AccountListCommand.cs index 152c8ee7bb..5c3415dfbe 100644 --- a/tools/Azure.Mcp.Tools.AppConfig/src/Commands/Account/AccountListCommand.cs +++ b/tools/Azure.Mcp.Tools.AppConfig/src/Commands/Account/AccountListCommand.cs @@ -18,8 +18,7 @@ namespace Azure.Mcp.Tools.AppConfig.Commands.Account; Name = "list", Title = "List App Configuration Stores", Description = """ - List all App Configuration stores in a subscription. This command retrieves and displays all App Configuration - stores available in the specified subscription. Results include store names returned as a JSON array. + List all App Configuration stores in a subscription. Results include store names returned as a JSON array. """, Destructive = false, Idempotent = true, diff --git a/tools/Azure.Mcp.Tools.AppConfig/src/Commands/KeyValue/KeyValueDeleteCommand.cs b/tools/Azure.Mcp.Tools.AppConfig/src/Commands/KeyValue/KeyValueDeleteCommand.cs index e78d09bdfa..bd2d858b9d 100644 --- a/tools/Azure.Mcp.Tools.AppConfig/src/Commands/KeyValue/KeyValueDeleteCommand.cs +++ b/tools/Azure.Mcp.Tools.AppConfig/src/Commands/KeyValue/KeyValueDeleteCommand.cs @@ -14,9 +14,8 @@ namespace Azure.Mcp.Tools.AppConfig.Commands.KeyValue; Name = "delete", Title = "Delete App Configuration Key-Value Setting", Description = """ - Delete a key-value pair from an App Configuration store. This command removes the specified key-value pair from the store. - If a label is specified, only the labeled version is deleted. If no label is specified, the key-value with the matching - key and the default label will be deleted. + Delete a key-value pair from an App Configuration store. If a label is specified, only the labeled version is deleted. + If no label is specified, the key-value with the matching key and the default label will be deleted. """, Destructive = true, Idempotent = true, diff --git a/tools/Azure.Mcp.Tools.AppConfig/src/Commands/KeyValue/KeyValueSetCommand.cs b/tools/Azure.Mcp.Tools.AppConfig/src/Commands/KeyValue/KeyValueSetCommand.cs index f759b61266..47bf54f483 100644 --- a/tools/Azure.Mcp.Tools.AppConfig/src/Commands/KeyValue/KeyValueSetCommand.cs +++ b/tools/Azure.Mcp.Tools.AppConfig/src/Commands/KeyValue/KeyValueSetCommand.cs @@ -17,9 +17,7 @@ namespace Azure.Mcp.Tools.AppConfig.Commands.KeyValue; Title = "Set App Configuration Key-Value Setting", Description = """ Set a key-value setting in an App Configuration store. This command creates or updates a key-value setting - with the specified value. You must specify an account name, key, and value. Optionally, you can specify a - label otherwise the default label will be used. You can also specify a content type to indicate how the value - should be interpreted. You can add tags in the format 'key=value' to associate metadata with the setting. + with the specified value. If no label is specified, the default label will be used. """, Destructive = true, Idempotent = true, diff --git a/tools/Azure.Mcp.Tools.AppConfig/src/Commands/KeyValue/Lock/KeyValueLockSetCommand.cs b/tools/Azure.Mcp.Tools.AppConfig/src/Commands/KeyValue/Lock/KeyValueLockSetCommand.cs index f2c4f7611e..518fa7598e 100644 --- a/tools/Azure.Mcp.Tools.AppConfig/src/Commands/KeyValue/Lock/KeyValueLockSetCommand.cs +++ b/tools/Azure.Mcp.Tools.AppConfig/src/Commands/KeyValue/Lock/KeyValueLockSetCommand.cs @@ -16,10 +16,9 @@ namespace Azure.Mcp.Tools.AppConfig.Commands.KeyValue.Lock; Name = "set", Title = "Sets the lock state of an App Configuration Key-Value Setting", Description = """ - Sets the lock state of a key-value in an App Configuration store. This command can lock and unlock key-values. - Locking sets a key-value to read-only mode, preventing any modifications to its value. Unlocking removes the - read-only mode from a key-value setting, allowing modifications to its value. You must specify an account name - and key. Optionally, you can specify a label to lock or unlock a specific labeled version of the key-value. + Sets the lock state of a key-value in an App Configuration store. Locking a key-value sets it to read-only mode, + preventing any modifications to its value. Unlocking a key-value removes the read-only mode, allowing modifications + to its value. You can specify a label to lock or unlock a specific labeled version of the key-value. Default is unlocking the key-value. """, Destructive = false, diff --git a/tools/Azure.Mcp.Tools.AppConfig/src/Options/AppConfigOptionDefinitions.cs b/tools/Azure.Mcp.Tools.AppConfig/src/Options/AppConfigOptionDefinitions.cs index 518f31dd52..47cf3b5ab4 100644 --- a/tools/Azure.Mcp.Tools.AppConfig/src/Options/AppConfigOptionDefinitions.cs +++ b/tools/Azure.Mcp.Tools.AppConfig/src/Options/AppConfigOptionDefinitions.cs @@ -29,25 +29,25 @@ public static class AppConfigOptionDefinitions public static readonly Option Value = new($"--{ValueName}") { - Description = "The value to set for the configuration key.", + Description = "The value to set for the key.", Required = true }; public static readonly Option Label = new($"--{LabelName}") { - Description = "The label to apply to the configuration key. Labels are used to group and organize settings.", + Description = "The label to apply to the key. Labels are used to group and organize settings.", Required = false }; public static readonly Option ContentType = new($"--{ContentTypeName}") { - Description = "The content type of the configuration value. This is used to indicate how the value should be interpreted or parsed.", + Description = "The content type of the value. This is used to indicate how the value should be interpreted or parsed.", Required = false }; public static readonly Option Tags = new($"--{TagsName}") { - Description = "The tags to associate with the configuration key. Tags should be in the format 'key=value'. Multiple tags can be specified.", + Description = "The tags to associate with the key. Tags should be in the format 'key=value'. Multiple tags can be specified.", Required = false, AllowMultipleArgumentsPerToken = true }; @@ -60,13 +60,13 @@ public static class AppConfigOptionDefinitions public static readonly Option KeyFilter = new($"--{KeyFilterName}") { - Description = "Specifies the key filter, if any, to be used when retrieving key-values. The filter can be an exact match, for example a filter of 'foo' would get all key-values with a key of 'foo', or the filter can include a '*' character at the end of the string for wildcard searches (e.g., 'App*'). If omitted all keys will be retrieved.", + Description = "Specifies the key filter used when retrieving key-values. The filter can be an exact match, for example a filter of 'foo' would get all key-values with a key of 'foo', or the filter can include a '*' character at the end of the string for wildcard searches (e.g., 'App*'). If omitted all keys will be retrieved.", Required = false }; public static readonly Option LabelFilter = new($"--{LabelFilterName}") { - Description = "Specifies the label filter, if any, to be used when retrieving key-values. The filter can be an exact match, for example a filter of 'foo' would get all key-values with a label of 'foo', or the filter can include a '*' character at the end of the string for wildcard searches (e.g., 'Prod*'). This filter is case-sensitive. If omitted, all labels will be retrieved.", + Description = "Specifies the label filter used when retrieving key-values. The filter can be an exact match, for example a filter of 'foo' would get all key-values with a label of 'foo', or the filter can include a '*' character at the end of the string for wildcard searches (e.g., 'Prod*'). This filter is case-sensitive. If omitted, all labels will be retrieved.", Required = false }; } diff --git a/tools/Azure.Mcp.Tools.AppConfig/src/Options/KeyValue/Lock/KeyValueLockSetOptions.cs b/tools/Azure.Mcp.Tools.AppConfig/src/Options/KeyValue/Lock/KeyValueLockSetOptions.cs index 2d31551398..c8a0f787c7 100644 --- a/tools/Azure.Mcp.Tools.AppConfig/src/Options/KeyValue/Lock/KeyValueLockSetOptions.cs +++ b/tools/Azure.Mcp.Tools.AppConfig/src/Options/KeyValue/Lock/KeyValueLockSetOptions.cs @@ -20,7 +20,7 @@ public class KeyValueLockSetOptions : ISubscriptionOption [Option("The name of the key to access within the App Configuration store.")] public required string Key { get; set; } - [Option("The label to apply to the configuration key. Labels are used to group and organize settings.")] + [Option("The label to apply to the key. Labels are used to group and organize settings.")] public string? Label { get; set; } [Option(OptionDescriptions.Tenant)] diff --git a/tools/Azure.Mcp.Tools.AppService/src/Commands/Database/DatabaseAddCommand.cs b/tools/Azure.Mcp.Tools.AppService/src/Commands/Database/DatabaseAddCommand.cs index 68fb394201..27d89195cf 100644 --- a/tools/Azure.Mcp.Tools.AppService/src/Commands/Database/DatabaseAddCommand.cs +++ b/tools/Azure.Mcp.Tools.AppService/src/Commands/Database/DatabaseAddCommand.cs @@ -17,9 +17,8 @@ namespace Azure.Mcp.Tools.AppService.Commands.Database; Name = "add", Title = "Add Database to App Service", Description = """ - Add a database connection for an App Service using connection string for an existing database. This command configures database connection - settings for the specified App Service, allowing it to connect to a database server name. You must specify the App Service name, database name, - database type, database server name, connection string, resource group name and subscription. + Add a database connection for an App Service using connection string for an existing database, + allowing it to connect to a database server name. """, Destructive = false, Idempotent = false, diff --git a/tools/Azure.Mcp.Tools.AppService/src/Commands/Webapp/WebappGetCommand.cs b/tools/Azure.Mcp.Tools.AppService/src/Commands/Webapp/WebappGetCommand.cs index c2a5e90dee..4fe4a8bd78 100644 --- a/tools/Azure.Mcp.Tools.AppService/src/Commands/Webapp/WebappGetCommand.cs +++ b/tools/Azure.Mcp.Tools.AppService/src/Commands/Webapp/WebappGetCommand.cs @@ -19,8 +19,8 @@ namespace Azure.Mcp.Tools.AppService.Commands.Webapp; Description = """ Retrieves detailed information about Azure App Service web apps, including app name, resource group, location, state, hostnames, etc. If a specific app name is not provided, the command will return details for all web apps - in a subscription or resource group in a subscription. You can specify the app name, resource group name, and - subscription to get details for a specific web app. + in a subscription or resource group. You can specify the app name, resource group name, and subscription to get + details for a specific web app. """, Destructive = false, Idempotent = true, diff --git a/tools/Azure.Mcp.Tools.ApplicationInsights/src/Commands/Recommendation/RecommendationListCommand.cs b/tools/Azure.Mcp.Tools.ApplicationInsights/src/Commands/Recommendation/RecommendationListCommand.cs index f30b634fb4..aab2813c7e 100644 --- a/tools/Azure.Mcp.Tools.ApplicationInsights/src/Commands/Recommendation/RecommendationListCommand.cs +++ b/tools/Azure.Mcp.Tools.ApplicationInsights/src/Commands/Recommendation/RecommendationListCommand.cs @@ -19,7 +19,7 @@ namespace Azure.Mcp.Tools.ApplicationInsights.Commands.Recommendation; Name = "list", Title = "List Application Insights Recommendations", Description = """ - List Application Insights Code Optimization Recommendations in a subscription. Optionally filter by resource group when --resource-group is provided. + List Application Insights Code Optimization Recommendations in a subscription or resource group. Returns the code optimization recommendations based on the profiler data. """, Destructive = false, diff --git a/tools/Azure.Mcp.Tools.Authorization/src/Commands/RoleAssignmentListCommand.cs b/tools/Azure.Mcp.Tools.Authorization/src/Commands/RoleAssignmentListCommand.cs index fbfcda7e2d..b3a0db96e7 100644 --- a/tools/Azure.Mcp.Tools.Authorization/src/Commands/RoleAssignmentListCommand.cs +++ b/tools/Azure.Mcp.Tools.Authorization/src/Commands/RoleAssignmentListCommand.cs @@ -18,8 +18,7 @@ namespace Azure.Mcp.Tools.Authorization.Commands; Name = "list", Title = "List Role Assignments", Description = """ - List role assignments. This command retrieves and displays all Azure RBAC role assignments - in the specified scope. Results include role definition IDs and principal IDs, returned as a JSON array. + List all Azure RBAC role assignments in the specified scope. Results include role definition IDs and principal IDs, returned as a JSON array. """, Destructive = false, Idempotent = true, diff --git a/tools/Azure.Mcp.Tools.AzureBackup/src/Commands/Backup/BackupStatusCommand.cs b/tools/Azure.Mcp.Tools.AzureBackup/src/Commands/Backup/BackupStatusCommand.cs index 914fceac2b..d160e79ff0 100644 --- a/tools/Azure.Mcp.Tools.AzureBackup/src/Commands/Backup/BackupStatusCommand.cs +++ b/tools/Azure.Mcp.Tools.AzureBackup/src/Commands/Backup/BackupStatusCommand.cs @@ -22,8 +22,7 @@ namespace Azure.Mcp.Tools.AzureBackup.Commands.Backup; Description = """ Checks the backup status of an Azure resource and returns whether it is protected, along with vault and policy details. Use this to verify if a VM, disk, storage account, - or other datasource is currently backed up. Requires the datasource ARM resource ID - and the Azure region (location) where the resource exists. + or other datasource is currently backed up. """, Destructive = false, Idempotent = true, diff --git a/tools/Azure.Mcp.Tools.AzureBackup/src/Commands/DisasterRecovery/DisasterRecoveryEnableCrrCommand.cs b/tools/Azure.Mcp.Tools.AzureBackup/src/Commands/DisasterRecovery/DisasterRecoveryEnableCrrCommand.cs index adce3693e6..1588bec2a1 100644 --- a/tools/Azure.Mcp.Tools.AzureBackup/src/Commands/DisasterRecovery/DisasterRecoveryEnableCrrCommand.cs +++ b/tools/Azure.Mcp.Tools.AzureBackup/src/Commands/DisasterRecovery/DisasterRecoveryEnableCrrCommand.cs @@ -7,9 +7,7 @@ using Azure.Mcp.Tools.AzureBackup.Services; using Microsoft.Extensions.Logging; using Microsoft.Mcp.Core.Commands; -using Microsoft.Mcp.Core.Extensions; using Microsoft.Mcp.Core.Models.Command; -using Microsoft.Mcp.Core.Models.Option; namespace Azure.Mcp.Tools.AzureBackup.Commands.DisasterRecovery; diff --git a/tools/Azure.Mcp.Tools.AzureBackup/src/Commands/Job/JobGetCommand.cs b/tools/Azure.Mcp.Tools.AzureBackup/src/Commands/Job/JobGetCommand.cs index 7adb384775..9713b912d9 100644 --- a/tools/Azure.Mcp.Tools.AzureBackup/src/Commands/Job/JobGetCommand.cs +++ b/tools/Azure.Mcp.Tools.AzureBackup/src/Commands/Job/JobGetCommand.cs @@ -23,9 +23,8 @@ namespace Azure.Mcp.Tools.AzureBackup.Commands.Job; Name = "get", Title = "Get Backup Job", Description = """ - Retrieves backup job information. When --job is specified, returns detailed information - about a single job including operation type, status, start/end times, error codes, and - datasource details. When omitted, lists all backup jobs in the vault. + Gets backup job information. When job is specified, gets the specific job, otherwise gets all backup jobs in the vault. + Returns operation type, status, start/end times, error codes, and datasource details. """, Destructive = false, Idempotent = true, diff --git a/tools/Azure.Mcp.Tools.AzureBackup/src/Commands/Policy/PolicyGetCommand.cs b/tools/Azure.Mcp.Tools.AzureBackup/src/Commands/Policy/PolicyGetCommand.cs index 61af9f190f..c1cd7af093 100644 --- a/tools/Azure.Mcp.Tools.AzureBackup/src/Commands/Policy/PolicyGetCommand.cs +++ b/tools/Azure.Mcp.Tools.AzureBackup/src/Commands/Policy/PolicyGetCommand.cs @@ -23,9 +23,9 @@ namespace Azure.Mcp.Tools.AzureBackup.Commands.Policy; Name = "get", Title = "Get Backup Policy", Description = """ - Retrieves backup policy information. When --policy is specified, returns detailed - information about a single policy including datasource types and protected items count. - When omitted, lists all backup policies configured in the vault. + Gets backup policy information. When policy is specified, gets the specific policy, otherwise gets all backup + policies configured in the vault. + Returns datasource types and protected items count. """, Destructive = false, Idempotent = true, diff --git a/tools/Azure.Mcp.Tools.AzureBackup/src/Commands/ProtectableItem/ProtectableItemListCommand.cs b/tools/Azure.Mcp.Tools.AzureBackup/src/Commands/ProtectableItem/ProtectableItemListCommand.cs index 033524a89d..06c43f3e26 100644 --- a/tools/Azure.Mcp.Tools.AzureBackup/src/Commands/ProtectableItem/ProtectableItemListCommand.cs +++ b/tools/Azure.Mcp.Tools.AzureBackup/src/Commands/ProtectableItem/ProtectableItemListCommand.cs @@ -21,7 +21,7 @@ Lists items that can be backed up (protectable items) in a Recovery Services vau such as SQL databases and SAP HANA databases discovered on registered VMs. Use this to find databases and workloads available for backup protection. Only supported for RSV vaults; DPP datasources are protected by ARM resource ID directly. - Filter results by --workload-type (e.g., SQL, SAPHana) or --container. + Filter results by workload-type (e.g., SQL, SAPHana) or container. """, Destructive = false, Idempotent = true, diff --git a/tools/Azure.Mcp.Tools.AzureBackup/src/Commands/ProtectedItem/ProtectedItemGetCommand.cs b/tools/Azure.Mcp.Tools.AzureBackup/src/Commands/ProtectedItem/ProtectedItemGetCommand.cs index 5b4dca9bbf..5f25558e19 100644 --- a/tools/Azure.Mcp.Tools.AzureBackup/src/Commands/ProtectedItem/ProtectedItemGetCommand.cs +++ b/tools/Azure.Mcp.Tools.AzureBackup/src/Commands/ProtectedItem/ProtectedItemGetCommand.cs @@ -22,11 +22,10 @@ namespace Azure.Mcp.Tools.AzureBackup.Commands.ProtectedItem; Name = "get", Title = "Get Protected Item", Description = """ - Retrieves protected item information. When --protected-item is specified, returns - detailed information about a single backup instance including protection status, - datasource details, policy assignment, and last backup time. Specify --container - for RSV workload items. When --protected-item is omitted, lists all protected items - (backup instances) in the vault. + Gets protected item (backup instances) information. When protected-item is specified, gets the specific protected item, + otherwise gets all protected items in the vault. + Returns protection status, datasource details, policy assignment, and last backup time. + Specify container for RSV workload items. """, Destructive = false, Idempotent = true, diff --git a/tools/Azure.Mcp.Tools.AzureBackup/src/Commands/ProtectedItem/ProtectedItemProtectCommand.cs b/tools/Azure.Mcp.Tools.AzureBackup/src/Commands/ProtectedItem/ProtectedItemProtectCommand.cs index b36d5a2ec9..1433018c34 100644 --- a/tools/Azure.Mcp.Tools.AzureBackup/src/Commands/ProtectedItem/ProtectedItemProtectCommand.cs +++ b/tools/Azure.Mcp.Tools.AzureBackup/src/Commands/ProtectedItem/ProtectedItemProtectCommand.cs @@ -19,13 +19,12 @@ namespace Azure.Mcp.Tools.AzureBackup.Commands.ProtectedItem; Name = "protect", Title = "Protect Resource", Description = """ - Enables or configures backup protection for an Azure resource by creating a - protected item or backup instance. Protects VMs, disks, file shares, SQL databases, - SAP HANA databases, and other supported datasources. - For VMs: pass the VM ARM resource ID as --datasource-id. + Enables or configures backup protection for an Azure resource by creating a protected item or backup instance. + Protects VMs, disks, file shares, SQL databases, SAP HANA databases, and other supported datasources. + For VMs: pass the VM ARM resource ID as datasource-id. For workloads (SQL/HANA): pass the protectable item name from 'protectableitem list' - as --datasource-id (e.g., 'SAPHanaDatabase;instance;dbname'), and specify --container. - Requires a backup policy name via --policy. The operation is asynchronous; + as datasource-id (e.g., 'SAPHanaDatabase;instance;dbname'), and specify container. + Requires a backup policy name via policy. The operation is asynchronous; use 'azurebackup job get' to monitor the protection job progress. """, Destructive = true, diff --git a/tools/Azure.Mcp.Tools.AzureBackup/src/Commands/ProtectedItem/ProtectedItemUndeleteCommand.cs b/tools/Azure.Mcp.Tools.AzureBackup/src/Commands/ProtectedItem/ProtectedItemUndeleteCommand.cs index 9636368a3e..3fe90822e1 100644 --- a/tools/Azure.Mcp.Tools.AzureBackup/src/Commands/ProtectedItem/ProtectedItemUndeleteCommand.cs +++ b/tools/Azure.Mcp.Tools.AzureBackup/src/Commands/ProtectedItem/ProtectedItemUndeleteCommand.cs @@ -20,10 +20,10 @@ namespace Azure.Mcp.Tools.AzureBackup.Commands.ProtectedItem; Title = "Undelete Protected Item", Description = """ Undeletes or restores a soft-deleted backup item to an active protection state. - Use this when a backup or protected item was accidentally deleted and needs to be recovered. - For RSV vaults: pass the datasource ARM resource ID as --datasource-id. - For DPP vaults: pass the datasource ARM resource ID as --datasource-id. - Optionally specify --container for RSV workload items (SQL/HANA). + Use this when a backup or protected item was needs to be recovered. + For RSV vaults: pass the datasource ARM resource ID as datasource-id. + For DPP vaults: pass the datasource ARM resource ID as datasource-id. + Optionally specify container for RSV workload items (SQL/HANA). The operation is asynchronous; use 'azurebackup job get' to monitor progress. """, Destructive = true, diff --git a/tools/Azure.Mcp.Tools.AzureBackup/src/Commands/RecoveryPoint/RecoveryPointGetCommand.cs b/tools/Azure.Mcp.Tools.AzureBackup/src/Commands/RecoveryPoint/RecoveryPointGetCommand.cs index 46f20280f3..fd5c63ace7 100644 --- a/tools/Azure.Mcp.Tools.AzureBackup/src/Commands/RecoveryPoint/RecoveryPointGetCommand.cs +++ b/tools/Azure.Mcp.Tools.AzureBackup/src/Commands/RecoveryPoint/RecoveryPointGetCommand.cs @@ -23,9 +23,9 @@ namespace Azure.Mcp.Tools.AzureBackup.Commands.RecoveryPoint; Name = "get", Title = "Get Recovery Point", Description = """ - Retrieves recovery point information for a protected item. When --recovery-point is - specified, returns detailed information about a single recovery point including time - and type. When omitted, lists all available recovery points for the protected item. + Gets recovery point information for a protected item. When recovery-point is specified, gets the specific recovery point, + otherwise gets all available recovery points for the protected item. + Returns recovery point time and type. """, Destructive = false, Idempotent = true, diff --git a/tools/Azure.Mcp.Tools.AzureBackup/src/Commands/Security/SecurityConfigureEncryptionCommand.cs b/tools/Azure.Mcp.Tools.AzureBackup/src/Commands/Security/SecurityConfigureEncryptionCommand.cs index e62ec41046..793275ea9f 100644 --- a/tools/Azure.Mcp.Tools.AzureBackup/src/Commands/Security/SecurityConfigureEncryptionCommand.cs +++ b/tools/Azure.Mcp.Tools.AzureBackup/src/Commands/Security/SecurityConfigureEncryptionCommand.cs @@ -22,8 +22,8 @@ namespace Azure.Mcp.Tools.AzureBackup.Commands.Security; Configures Customer-Managed Key (CMK) encryption on a vault using a key from Azure Key Vault. Supports both Recovery Services vaults (RSV) and Backup vaults (DPP). The vault's managed identity must have the Key Vault Crypto Service Encryption User role on the Key Vault. - Use --identity-type to specify SystemAssigned or UserAssigned identity, and - --user-assigned-identity-id when using a user-assigned identity. + Use identity-type to specify SystemAssigned or UserAssigned identity, and + user-assigned-identity-id when using a user-assigned identity. """, Destructive = true, Idempotent = true, diff --git a/tools/Azure.Mcp.Tools.AzureBackup/src/Commands/Security/SecurityConfigureMuaCommand.cs b/tools/Azure.Mcp.Tools.AzureBackup/src/Commands/Security/SecurityConfigureMuaCommand.cs index db1c6d3fc9..2af038ccbe 100644 --- a/tools/Azure.Mcp.Tools.AzureBackup/src/Commands/Security/SecurityConfigureMuaCommand.cs +++ b/tools/Azure.Mcp.Tools.AzureBackup/src/Commands/Security/SecurityConfigureMuaCommand.cs @@ -19,9 +19,9 @@ namespace Azure.Mcp.Tools.AzureBackup.Commands.Security; Title = "Configure Multi-User Authorization", Description = """ Configures Multi-User Authorization (MUA) on a vault by linking or unlinking a Resource Guard. - Provide --resource-guard-id to enable MUA, protecting critical operations (disable soft delete, + Provide resource-guard-id to enable MUA, protecting critical operations (disable soft delete, remove immutability, stop protection) so they require approval from a security admin with - permissions on the Resource Guard. Omit --resource-guard-id to disable MUA (this itself is a + permissions on the Resource Guard. Omit resource-guard-id to disable MUA (this itself is a protected operation requiring Backup MUA Operator role on the Resource Guard). """, Destructive = true, diff --git a/tools/Azure.Mcp.Tools.AzureBackup/src/Commands/Vault/VaultCreateCommand.cs b/tools/Azure.Mcp.Tools.AzureBackup/src/Commands/Vault/VaultCreateCommand.cs index c9a3ed0155..eac106ade0 100644 --- a/tools/Azure.Mcp.Tools.AzureBackup/src/Commands/Vault/VaultCreateCommand.cs +++ b/tools/Azure.Mcp.Tools.AzureBackup/src/Commands/Vault/VaultCreateCommand.cs @@ -19,12 +19,11 @@ namespace Azure.Mcp.Tools.AzureBackup.Commands.Vault; Name = "create", Title = "Create Backup Vault", Description = """ - Creates a new backup vault. Specify --vault-type as 'rsv' for a Recovery Services vault + Creates a new backup vault. Specify vault-type as 'rsv' for a Recovery Services vault or 'dpp' for a Backup vault (Data Protection). For DPP vaults a System-Assigned Managed Identity is enabled by default so the vault can authenticate to protected datasources (storage accounts, disks, PG Flex, etc.) - change later with - 'azurebackup vault update --identity-type ...' if needed. Returns the created - vault details. + 'azurebackup vault update identity-type ...' if needed. Returns the created vault details. """, Destructive = true, Idempotent = false, diff --git a/tools/Azure.Mcp.Tools.AzureBackup/src/Commands/Vault/VaultGetCommand.cs b/tools/Azure.Mcp.Tools.AzureBackup/src/Commands/Vault/VaultGetCommand.cs index af504f99db..24f7cdabbd 100644 --- a/tools/Azure.Mcp.Tools.AzureBackup/src/Commands/Vault/VaultGetCommand.cs +++ b/tools/Azure.Mcp.Tools.AzureBackup/src/Commands/Vault/VaultGetCommand.cs @@ -23,11 +23,10 @@ namespace Azure.Mcp.Tools.AzureBackup.Commands.Vault; Name = "get", Title = "Get Backup Vault", Description = """ - Retrieves backup vault information. When --vault and --resource-group are specified, - returns detailed information about a single vault including type, location, SKU, and - storage redundancy. When omitted, lists all backup vaults (RSV and Backup vaults) in - the subscription. Optionally filter by --vault-type ('rsv' or 'dpp') and/or - --resource-group to narrow the listing results. + Gets backup vault information. When vault and resource-group are specified, gets the specific vault, otherwise + gets all backup vaults (RSV and Backup vaults) in the subscription. Optionally filter by vault type ('rsv' or 'dpp') + and/or resource group to narrow the listing results. + Returns type, location, SKU, and storage redundancy. """, Destructive = false, Idempotent = true, diff --git a/tools/Azure.Mcp.Tools.AzureBackup/src/Options/AzureBackupOptionDefinitions.cs b/tools/Azure.Mcp.Tools.AzureBackup/src/Options/AzureBackupOptionDefinitions.cs index f76638463a..a4158db375 100644 --- a/tools/Azure.Mcp.Tools.AzureBackup/src/Options/AzureBackupOptionDefinitions.cs +++ b/tools/Azure.Mcp.Tools.AzureBackup/src/Options/AzureBackupOptionDefinitions.cs @@ -111,7 +111,7 @@ public static class AzureBackupOptionDefinitions public static readonly Option VaultType = new($"--{VaultTypeName}") { - Description = "The type of backup vault: 'rsv' (Recovery Services vault) or 'dpp' (Backup vault / Data Protection). Required for vault create; optional elsewhere (auto-detected if omitted).", + Description = "The type of backup vault: 'rsv' (Recovery Services vault) or 'dpp' (Backup vault / Data Protection).", Required = false }; @@ -261,7 +261,7 @@ public static class AzureBackupOptionDefinitions public static readonly Option ScheduleTimes = new($"--{ScheduleTimesName}") { - Description = "Comma-separated list of backup times in 24h HH:mm format (e.g., '02:00' or '02:00,14:00'). Interpreted in --time-zone. Defaults to 02:00 UTC if not specified. Only the first time is used as the schedule start time.", + Description = "Comma-separated list of backup times in 24h HH:mm format (e.g., '02:00' or '02:00,14:00'). Interpreted in time-zone. Defaults to 02:00 UTC if not specified. Only the first time is used as the schedule start time.", Required = false }; @@ -273,61 +273,61 @@ public static class AzureBackupOptionDefinitions public static readonly Option HourlyIntervalHours = new($"--{HourlyIntervalHoursName}") { - Description = "Interval in hours between hourly backups. Valid values: 4, 6, 8, 12. Used only when --schedule-frequency is 'Hourly' (RSV).", + Description = "Interval in hours between hourly backups. Valid values: 4, 6, 8, 12. Used only when schedule-frequency is 'Hourly' (RSV).", Required = false }; public static readonly Option HourlyWindowStartTime = new($"--{HourlyWindowStartTimeName}") { - Description = "Start time of the hourly backup window in 24h HH:mm format (e.g., '08:00'). Used only when --schedule-frequency is 'Hourly' (RSV).", + Description = "Start time of the hourly backup window in 24h HH:mm format (e.g., '08:00'). Used only when schedule-frequency is 'Hourly' (RSV).", Required = false }; public static readonly Option HourlyWindowDurationHours = new($"--{HourlyWindowDurationHoursName}") { - Description = "Duration of the hourly backup window in hours (e.g., 12). Used only when --schedule-frequency is 'Hourly' (RSV).", + Description = "Duration of the hourly backup window in hours (e.g., 12). Used only when schedule-frequency is 'Hourly' (RSV).", Required = false }; public static readonly Option WeeklyRetentionWeeks = new($"--{WeeklyRetentionWeeksName}") { - Description = "Number of weeks to keep weekly recovery points. Required alongside --weekly-retention-days-of-week.", + Description = "Number of weeks to keep weekly recovery points. Required alongside weekly-retention-days-of-week.", Required = false }; public static readonly Option WeeklyRetentionDaysOfWeek = new($"--{WeeklyRetentionDaysOfWeekName}") { - Description = "Comma-separated days of the week tagged for weekly retention (e.g., 'Sunday' or 'Saturday,Sunday'). Required alongside --weekly-retention-weeks.", + Description = "Comma-separated days of the week tagged for weekly retention (e.g., 'Sunday' or 'Saturday,Sunday'). Required alongside weekly-retention-weeks.", Required = false }; public static readonly Option MonthlyRetentionMonths = new($"--{MonthlyRetentionMonthsName}") { - Description = "Number of months to keep monthly recovery points. Combine with either --monthly-retention-days-of-month (absolute) OR --monthly-retention-week-of-month + --monthly-retention-days-of-week (relative).", + Description = "Number of months to keep monthly recovery points. Combine with either monthly-retention-days-of-month (absolute) OR monthly-retention-week-of-month + monthly-retention-days-of-week (relative).", Required = false }; public static readonly Option MonthlyRetentionWeekOfMonth = new($"--{MonthlyRetentionWeekOfMonthName}") { - Description = "Which week of the month to tag for monthly retention: 'First', 'Second', 'Third', 'Fourth', or 'Last'. Use with --monthly-retention-days-of-week (relative scheme).", + Description = "Which week of the month to tag for monthly retention: 'First', 'Second', 'Third', 'Fourth', or 'Last'. Use with monthly-retention-days-of-week (relative scheme).", Required = false }; public static readonly Option MonthlyRetentionDaysOfWeek = new($"--{MonthlyRetentionDaysOfWeekName}") { - Description = "Comma-separated days of the week for the monthly retention tag (e.g., 'Sunday'). Use with --monthly-retention-week-of-month (relative scheme).", + Description = "Comma-separated days of the week for the monthly retention tag (e.g., 'Sunday'). Use with monthly-retention-week-of-month (relative scheme).", Required = false }; public static readonly Option MonthlyRetentionDaysOfMonth = new($"--{MonthlyRetentionDaysOfMonthName}") { - Description = "Comma-separated days of the month for monthly retention (1-28 or 'Last'; e.g., '1,15,Last'). Absolute scheme; mutually exclusive with --monthly-retention-week-of-month.", + Description = "Comma-separated days of the month for monthly retention (1-28 or 'Last'; e.g., '1,15,Last'). Absolute scheme; mutually exclusive with monthly-retention-week-of-month.", Required = false }; public static readonly Option YearlyRetentionYears = new($"--{YearlyRetentionYearsName}") { - Description = "Number of years to keep yearly recovery points. Combine with --yearly-retention-months and either --yearly-retention-days-of-month (absolute) OR --yearly-retention-week-of-month + --yearly-retention-days-of-week (relative).", + Description = "Number of years to keep yearly recovery points. Combine with yearly-retention-months and either yearly-retention-days-of-month (absolute) OR yearly-retention-week-of-month + yearly-retention-days-of-week (relative).", Required = false }; @@ -339,31 +339,31 @@ public static class AzureBackupOptionDefinitions public static readonly Option YearlyRetentionWeekOfMonth = new($"--{YearlyRetentionWeekOfMonthName}") { - Description = "Which week of the selected month(s) to tag for yearly retention: 'First', 'Second', 'Third', 'Fourth', or 'Last'. Use with --yearly-retention-days-of-week (relative scheme).", + Description = "Which week of the selected month(s) to tag for yearly retention: 'First', 'Second', 'Third', 'Fourth', or 'Last'. Use with yearly-retention-days-of-week (relative scheme).", Required = false }; public static readonly Option YearlyRetentionDaysOfWeek = new($"--{YearlyRetentionDaysOfWeekName}") { - Description = "Comma-separated days of the week for the yearly retention tag (e.g., 'Sunday'). Use with --yearly-retention-week-of-month (relative scheme).", + Description = "Comma-separated days of the week for the yearly retention tag (e.g., 'Sunday'). Use with yearly-retention-week-of-month (relative scheme).", Required = false }; public static readonly Option YearlyRetentionDaysOfMonth = new($"--{YearlyRetentionDaysOfMonthName}") { - Description = "Comma-separated days of the selected month(s) for yearly retention (1-28 or 'Last'; e.g., '1,Last'). Absolute scheme; mutually exclusive with --yearly-retention-week-of-month.", + Description = "Comma-separated days of the selected month(s) for yearly retention (1-28 or 'Last'; e.g., '1,Last'). Absolute scheme; mutually exclusive with yearly-retention-week-of-month.", Required = false }; public static readonly Option ArchiveTierAfterDays = new($"--{ArchiveTierAfterDaysName}") { - Description = "Move recovery points to the archive tier after this many days. Pair with --archive-tier-mode.", + Description = "Move recovery points to the archive tier after this many days. Pair with archive-tier-mode.", Required = false }; public static readonly Option ArchiveTierMode = new($"--{ArchiveTierModeName}") { - Description = "Archive tiering mode: 'TierAfter' (always tier after --archive-tier-after-days) or 'CopyOnExpiry' (copy to archive when the recovery point expires). Use --smart-tier for service-recommended tiering.", + Description = "Archive tiering mode: 'TierAfter' (always tier after --archive-tier-after-days) or 'CopyOnExpiry' (copy to archive when the recovery point expires). Use smart-tier for service-recommended tiering.", Required = false }; @@ -399,7 +399,7 @@ public static class AzureBackupOptionDefinitions public static readonly Option FullScheduleDaysOfWeek = new($"--{FullScheduleDaysOfWeekName}") { - Description = "Comma-separated days of the week for the Full backup (e.g., 'Sunday'). Required when --full-schedule-frequency is 'Weekly'. RSV VmWorkload only.", + Description = "Comma-separated days of the week for the Full backup (e.g., 'Sunday'). Required when full-schedule-frequency is 'Weekly'. RSV VmWorkload only.", Required = false }; @@ -456,7 +456,7 @@ public static class AzureBackupOptionDefinitions public static readonly Option SmartTier = new($"--{SmartTierName}") { - Description = "Enable smart-tiering (ML-based archive recommendation). RSV VM only - equivalent to TieringMode=TierRecommended. Kept separate from --archive-tier-mode because it emits a structurally different tiering shape (Duration=0, DurationType=Invalid).", + Description = "Enable smart-tiering (ML-based archive recommendation). RSV VM only - equivalent to TieringMode=TierRecommended. Kept separate from archive-tier-mode because it emits a structurally different tiering shape (Duration=0, DurationType=Invalid).", Required = false }; @@ -564,7 +564,7 @@ public static class AzureBackupOptionDefinitions public static readonly Option UserAssignedIdentityId = new($"--{UserAssignedIdentityIdName}") { - Description = "ARM resource ID of the user-assigned managed identity for Key Vault access. Required when --identity-type is 'UserAssigned'.", + Description = "ARM resource ID of the user-assigned managed identity for Key Vault access. Required when identity-type is 'UserAssigned'.", Required = false }; } diff --git a/tools/Azure.Mcp.Tools.AzureIsv/src/Commands/Datadog/MonitoredResourcesListCommand.cs b/tools/Azure.Mcp.Tools.AzureIsv/src/Commands/Datadog/MonitoredResourcesListCommand.cs index e0b3ef6c15..8ddbf2f24d 100644 --- a/tools/Azure.Mcp.Tools.AzureIsv/src/Commands/Datadog/MonitoredResourcesListCommand.cs +++ b/tools/Azure.Mcp.Tools.AzureIsv/src/Commands/Datadog/MonitoredResourcesListCommand.cs @@ -18,10 +18,7 @@ namespace Azure.Mcp.Tools.AzureIsv.Commands.Datadog; Name = "list", Title = "List Monitored Resources in a Datadog Monitor", Description = """ - List monitored resources in Datadog for a datadog resource taken as input from the user. - This command retrieves all monitored azure resources available. - Requires `datadog-resource`, `resource-group` and `subscription`. - Result is a list of monitored resources as a JSON array. + List all monitored Azure resources in a Datadog resource. Returns a list of monitored resources as a JSON array. """, Destructive = false, Idempotent = true, diff --git a/tools/Azure.Mcp.Tools.AzureIsv/src/Options/DatadogOptionDefinitions.cs b/tools/Azure.Mcp.Tools.AzureIsv/src/Options/DatadogOptionDefinitions.cs index 8f99b886c6..0c3a10e0a9 100644 --- a/tools/Azure.Mcp.Tools.AzureIsv/src/Options/DatadogOptionDefinitions.cs +++ b/tools/Azure.Mcp.Tools.AzureIsv/src/Options/DatadogOptionDefinitions.cs @@ -11,7 +11,7 @@ public static class DatadogOptionDefinitions $"--{DatadogResourceParam}" ) { - Description = "The name of the Datadog resource to use. This is the unique name you chose for your Datadog resource in Azure.", + Description = "The name of the Datadog resource.", Required = true }; } diff --git a/tools/Azure.Mcp.Tools.AzureTerraform/src/Commands/AvmDocumentationGetCommand.cs b/tools/Azure.Mcp.Tools.AzureTerraform/src/Commands/AvmDocumentationGetCommand.cs index bf853f3d94..4c19a5b5a4 100644 --- a/tools/Azure.Mcp.Tools.AzureTerraform/src/Commands/AvmDocumentationGetCommand.cs +++ b/tools/Azure.Mcp.Tools.AzureTerraform/src/Commands/AvmDocumentationGetCommand.cs @@ -17,9 +17,7 @@ namespace Azure.Mcp.Tools.AzureTerraform.Commands; Title = "Get AVM Module Documentation", Description = """ Retrieves the documentation (README.md) for a specific version of an Azure Verified Module (AVM). - Returns the full module documentation including usage examples, input variables, - output values, and resource descriptions. Use --module-name and --module-version - to specify the module and version (e.g., --module-name avm-res-storage-storageaccount --module-version 0.4.0). + Returns the full module documentation including usage examples, input and output variables, and resource descriptions. """, Destructive = false, Idempotent = true, diff --git a/tools/Azure.Mcp.Tools.AzureTerraform/src/Commands/AvmVersionListCommand.cs b/tools/Azure.Mcp.Tools.AzureTerraform/src/Commands/AvmVersionListCommand.cs index ca4fd0c191..d2aeafab89 100644 --- a/tools/Azure.Mcp.Tools.AzureTerraform/src/Commands/AvmVersionListCommand.cs +++ b/tools/Azure.Mcp.Tools.AzureTerraform/src/Commands/AvmVersionListCommand.cs @@ -18,8 +18,6 @@ namespace Azure.Mcp.Tools.AzureTerraform.Commands; Description = """ Retrieves all available versions of a specified Azure Verified Module (AVM). Returns version tags with creation dates, sorted from newest to oldest. - The first version in the list is the latest. Use --module-name to specify - the module (e.g., avm-res-storage-storageaccount). """, Destructive = false, Idempotent = true, diff --git a/tools/Azure.Mcp.Tools.AzureTerraform/src/Commands/AzApiDocsGetCommand.cs b/tools/Azure.Mcp.Tools.AzureTerraform/src/Commands/AzApiDocsGetCommand.cs index 04b416f5a3..f79cb5902e 100644 --- a/tools/Azure.Mcp.Tools.AzureTerraform/src/Commands/AzApiDocsGetCommand.cs +++ b/tools/Azure.Mcp.Tools.AzureTerraform/src/Commands/AzApiDocsGetCommand.cs @@ -19,9 +19,9 @@ namespace Azure.Mcp.Tools.AzureTerraform.Commands; Retrieves AzAPI Terraform provider documentation and schema for a specified Azure resource type. Returns the resource schema in HCL format suitable for azapi_resource blocks, including property definitions with types and requirements, parent resource information, and Terraform usage examples. - Use --resource-type to specify the Azure resource type in ARM format + Use resource-type to specify the Azure resource type in ARM format (e.g., Microsoft.Compute/virtualMachines, Microsoft.Storage/storageAccounts). - Optionally specify --api-version to target a specific API version. + Optionally specify api-version to target a specific API version. This tool reuses Azure Bicep type definitions to generate accurate AzAPI schemas. """, Destructive = false, diff --git a/tools/Azure.Mcp.Tools.AzureTerraform/src/Commands/AztfexportQueryCommand.cs b/tools/Azure.Mcp.Tools.AzureTerraform/src/Commands/AztfexportQueryCommand.cs index 476b2453ae..c8801c6a31 100644 --- a/tools/Azure.Mcp.Tools.AzureTerraform/src/Commands/AztfexportQueryCommand.cs +++ b/tools/Azure.Mcp.Tools.AzureTerraform/src/Commands/AztfexportQueryCommand.cs @@ -18,7 +18,7 @@ namespace Azure.Mcp.Tools.AzureTerraform.Commands; Description = """ Generates an aztfexport command to export Azure resources matching an Azure Resource Graph query to Terraform configuration. Returns the command and arguments for the agent to execute locally. - Specify --query with a KQL WHERE clause for Azure Resource Graph (e.g., "type =~ 'Microsoft.Storage/storageAccounts'"). + Specify query with a KQL WHERE clause for Azure Resource Graph (e.g., "type =~ 'Microsoft.Storage/storageAccounts'"). Optionally configure the Terraform provider (azurerm or azapi), naming pattern, output folder, parallelism, and whether to include role assignments. If aztfexport is not installed locally, returns installation instructions instead. diff --git a/tools/Azure.Mcp.Tools.AzureTerraform/src/Commands/AztfexportResourceCommand.cs b/tools/Azure.Mcp.Tools.AzureTerraform/src/Commands/AztfexportResourceCommand.cs index c1f42bdbec..f67e11faeb 100644 --- a/tools/Azure.Mcp.Tools.AzureTerraform/src/Commands/AztfexportResourceCommand.cs +++ b/tools/Azure.Mcp.Tools.AzureTerraform/src/Commands/AztfexportResourceCommand.cs @@ -18,7 +18,7 @@ namespace Azure.Mcp.Tools.AzureTerraform.Commands; Description = """ Generates an aztfexport command to export a single Azure resource to Terraform configuration. Returns the command and arguments for the agent to execute locally. - Specify --resource-id with the full Azure resource ID. Optionally configure the Terraform provider + Specify resource-id with the full Azure resource ID. Optionally configure the Terraform provider (azurerm or azapi), custom resource name, output folder, parallelism, and whether to include role assignments. If aztfexport is not installed locally, returns installation instructions instead. """, diff --git a/tools/Azure.Mcp.Tools.AzureTerraform/src/Commands/AztfexportResourceGroupCommand.cs b/tools/Azure.Mcp.Tools.AzureTerraform/src/Commands/AztfexportResourceGroupCommand.cs index a96512dc46..6a9ce64528 100644 --- a/tools/Azure.Mcp.Tools.AzureTerraform/src/Commands/AztfexportResourceGroupCommand.cs +++ b/tools/Azure.Mcp.Tools.AzureTerraform/src/Commands/AztfexportResourceGroupCommand.cs @@ -18,7 +18,7 @@ namespace Azure.Mcp.Tools.AzureTerraform.Commands; Description = """ Generates an aztfexport command to export an Azure resource group and all its resources to Terraform configuration. Returns the command and arguments for the agent to execute locally. - Specify --resource-group with the name of the resource group. Optionally configure the Terraform provider + Specify resource-group with the name of the resource group. Optionally configure the Terraform provider (azurerm or azapi), naming pattern, output folder, parallelism, and whether to include role assignments. If aztfexport is not installed locally, returns installation instructions instead. """, diff --git a/tools/Azure.Mcp.Tools.AzureTerraform/src/Commands/AzureRMDocsGetCommand.cs b/tools/Azure.Mcp.Tools.AzureTerraform/src/Commands/AzureRMDocsGetCommand.cs index 5f296e623a..ddc6869e18 100644 --- a/tools/Azure.Mcp.Tools.AzureTerraform/src/Commands/AzureRMDocsGetCommand.cs +++ b/tools/Azure.Mcp.Tools.AzureTerraform/src/Commands/AzureRMDocsGetCommand.cs @@ -18,9 +18,9 @@ namespace Azure.Mcp.Tools.AzureTerraform.Commands; Description = """ Retrieves comprehensive AzureRM Terraform provider documentation for a specified resource type. Returns the resource summary, arguments with descriptions and requirements, attributes, - usage examples, and important notes. Use --resource-type to specify the resource - (e.g., azurerm_resource_group). Optionally filter by --doc-type (resource or data-source), - --argument, or --attribute. + usage examples, and important notes. Use resource-type to specify the resource + (e.g., azurerm_resource_group). Optionally filter by doc-type (resource or data-source), + argument, or attribute. """, Destructive = false, Idempotent = true, diff --git a/tools/Azure.Mcp.Tools.AzureTerraform/src/Commands/Conftest/ConftestPlanValidationCommand.cs b/tools/Azure.Mcp.Tools.AzureTerraform/src/Commands/Conftest/ConftestPlanValidationCommand.cs index efecd6583c..c2972badb9 100644 --- a/tools/Azure.Mcp.Tools.AzureTerraform/src/Commands/Conftest/ConftestPlanValidationCommand.cs +++ b/tools/Azure.Mcp.Tools.AzureTerraform/src/Commands/Conftest/ConftestPlanValidationCommand.cs @@ -19,7 +19,7 @@ namespace Azure.Mcp.Tools.AzureTerraform.Commands; Generates a conftest command to validate a Terraform plan JSON file against Azure policies. Returns the command and arguments for the agent to execute locally. Uses the Azure policy library (policy-library-avm) for validation with configurable policy sets. - Specify --plan-folder with the path to the folder containing tfplan.json. Optionally configure the policy set + Specify plan-folder with the path to the folder containing tfplan.json. Optionally configure the policy set ('all', 'Azure-Proactive-Resiliency-Library-v2', or 'avmsec'), severity filter (for avmsec), and custom policy paths. If conftest is not installed locally, returns installation instructions instead. """, diff --git a/tools/Azure.Mcp.Tools.AzureTerraform/src/Commands/Conftest/ConftestWorkspaceValidationCommand.cs b/tools/Azure.Mcp.Tools.AzureTerraform/src/Commands/Conftest/ConftestWorkspaceValidationCommand.cs index 8258019e48..012b7c9b0a 100644 --- a/tools/Azure.Mcp.Tools.AzureTerraform/src/Commands/Conftest/ConftestWorkspaceValidationCommand.cs +++ b/tools/Azure.Mcp.Tools.AzureTerraform/src/Commands/Conftest/ConftestWorkspaceValidationCommand.cs @@ -19,7 +19,7 @@ namespace Azure.Mcp.Tools.AzureTerraform.Commands; Generates a conftest command to validate Terraform .tf files in a workspace against Azure policies. Returns the command and arguments for the agent to execute locally. Uses the Azure policy library (policy-library-avm) for validation with configurable policy sets. - Specify --workspace-folder with the path to the Terraform workspace. Optionally configure the policy set + Specify workspace-folder with the path to the Terraform workspace. Optionally configure the policy set ('all', 'Azure-Proactive-Resiliency-Library-v2', or 'avmsec'), severity filter (for avmsec), and custom policy paths. If conftest is not installed locally, returns installation instructions instead. """, diff --git a/tools/Azure.Mcp.Tools.Compute/src/Commands/Disk/DiskCreateCommand.cs b/tools/Azure.Mcp.Tools.Compute/src/Commands/Disk/DiskCreateCommand.cs index 8e91e7dd44..0818e9cd86 100644 --- a/tools/Azure.Mcp.Tools.Compute/src/Commands/Disk/DiskCreateCommand.cs +++ b/tools/Azure.Mcp.Tools.Compute/src/Commands/Disk/DiskCreateCommand.cs @@ -21,7 +21,7 @@ namespace Azure.Mcp.Tools.Compute.Commands.Disk; Id = "3f8a1b2c-5d6e-4a7b-8c9d-0e1f2a3b4c5d", Name = "create", Title = "Create Managed Disk", - Description = "Creates a new Azure managed disk in the specified resource group. Supports creating empty disks (specify --size-gb), disks from a source such as a snapshot, another managed disk, or a blob URI (specify --source), disks from a Shared Image Gallery image version (specify --gallery-image-reference), or disks ready for upload (specify --upload-type and --upload-size-bytes). If location is not specified, defaults to the resource group's location. Supports configuring disk size, storage SKU (e.g., Premium_LRS, Standard_LRS, UltraSSD_LRS), OS type, availability zone, hypervisor generation, tags, encryption settings, performance tier, shared disk, on-demand bursting, and IOPS/throughput limits for UltraSSD disks. Create a disk with network access policy DenyAll, AllowAll, or AllowPrivate and associate a disk access resource during creation.", + Description = "Creates a new Azure managed disk in the specified resource group. Supports creating empty disks (specify size-gb), disks from a source such as a snapshot, another managed disk, or a blob URI (specify source), disks from a Shared Image Gallery image version (specify gallery-image-reference), or disks ready for upload (specify upload-type and upload-size-bytes). If location is not specified, defaults to the resource group's location. Supports configuring disk size, storage SKU (e.g., Premium_LRS, Standard_LRS, UltraSSD_LRS), OS type, availability zone, hypervisor generation, tags, encryption settings, performance tier, shared disk, on-demand bursting, and IOPS/throughput limits for UltraSSD disks. Create a disk with network access policy DenyAll, AllowAll, or AllowPrivate and associate a disk access resource during creation.", Destructive = true, Idempotent = false, OpenWorld = false, diff --git a/tools/Azure.Mcp.Tools.Compute/src/Commands/Disk/DiskDeleteCommand.cs b/tools/Azure.Mcp.Tools.Compute/src/Commands/Disk/DiskDeleteCommand.cs index 59528c4bd6..9ca3985969 100644 --- a/tools/Azure.Mcp.Tools.Compute/src/Commands/Disk/DiskDeleteCommand.cs +++ b/tools/Azure.Mcp.Tools.Compute/src/Commands/Disk/DiskDeleteCommand.cs @@ -19,7 +19,7 @@ namespace Azure.Mcp.Tools.Compute.Commands.Disk; Id = "a7c3e9f1-4b82-4d5a-9e6c-1f3d8b2a7c4e", Name = "delete", Title = "Delete Managed Disk", - Description = "Deletes an Azure managed disk from the specified resource group. This is an idempotent operation that returns Deleted = true if the disk was successfully removed, or Deleted = false if the disk was not found. The disk must not be attached to a virtual machine; detach it first before deleting.", + Description = "Deletes an Azure managed disk from the specified resource group. Returns Deleted = true if the disk was successfully removed, or Deleted = false if the disk was not found. The disk must not be attached to a virtual machine; detach it first before deleting.", Destructive = true, Idempotent = true, OpenWorld = false, diff --git a/tools/Azure.Mcp.Tools.Compute/src/Commands/Disk/DiskGetCommand.cs b/tools/Azure.Mcp.Tools.Compute/src/Commands/Disk/DiskGetCommand.cs index bde1c0fdf9..96ef9895c9 100644 --- a/tools/Azure.Mcp.Tools.Compute/src/Commands/Disk/DiskGetCommand.cs +++ b/tools/Azure.Mcp.Tools.Compute/src/Commands/Disk/DiskGetCommand.cs @@ -20,7 +20,7 @@ namespace Azure.Mcp.Tools.Compute.Commands.Disk; Id = "01ab6f7e-2b27-4d6e-b0cc-b29043efac8e", Name = "get", Title = "Get Disk Details", - Description = "Lists available Azure managed disks or retrieves detailed information about a specific disk. Shows all disks in a subscription or resource group, including disk size, SKU, provisioning state, and OS type. Supports wildcard patterns in disk names (e.g., 'win_OsDisk*'). When disk name is provided without resource group, searches across the entire subscription. When resource group is specified, scopes the search to that resource group. Both parameters are optional.", + Description = "Lists available Azure managed disks or retrieves detailed information about a specific disk. Shows all disks in a subscription or resource group, including disk size, SKU, provisioning state, and OS type. Supports wildcard patterns in disk names (e.g., 'win_OsDisk*'). When disk name is provided without resource group, searches across the entire subscription. When resource group is specified, scopes the search to that resource group.", Destructive = false, Idempotent = true, OpenWorld = false, diff --git a/tools/Azure.Mcp.Tools.Compute/src/Commands/Vm/VmCreateCommand.cs b/tools/Azure.Mcp.Tools.Compute/src/Commands/Vm/VmCreateCommand.cs index 905ef3c107..0748e8c85f 100644 --- a/tools/Azure.Mcp.Tools.Compute/src/Commands/Vm/VmCreateCommand.cs +++ b/tools/Azure.Mcp.Tools.Compute/src/Commands/Vm/VmCreateCommand.cs @@ -23,7 +23,7 @@ namespace Azure.Mcp.Tools.Compute.Commands.Vm; Use this to launch a new Linux or Windows VM with SSH key or password authentication. Automatically creates networking resources (VNet, subnet, NSG, NIC, public IP) when not specified. Equivalent to 'az vm create'. Defaults to Standard_D2s_v5 VM size when not specified. - The --image option is required and has no default; if the user does not specify an image, ask them which image to use + The image option is required and has no default; if the user does not specify an image, ask them which image to use (an alias such as 'Ubuntu2404' or 'Win2022Datacenter', a marketplace URN like 'publisher:offer:sku:version', or a shared gallery image ID starting with '/sharedGalleries/'). For Linux VMs with SSH, read the user's public key file (e.g., ~/.ssh/id_rsa.pub) and pass its content. diff --git a/tools/Azure.Mcp.Tools.Compute/src/Commands/Vm/VmDeleteCommand.cs b/tools/Azure.Mcp.Tools.Compute/src/Commands/Vm/VmDeleteCommand.cs index 46203d365d..75a6b8408d 100644 --- a/tools/Azure.Mcp.Tools.Compute/src/Commands/Vm/VmDeleteCommand.cs +++ b/tools/Azure.Mcp.Tools.Compute/src/Commands/Vm/VmDeleteCommand.cs @@ -20,7 +20,7 @@ namespace Azure.Mcp.Tools.Compute.Commands.Vm; Delete, remove, or destroy an Azure Virtual Machine (VM) permanently. Use this only when the VM is no longer needed and should be permanently removed. Equivalent to 'az vm delete'. This operation is irreversible and the VM data will be lost. - Use --force-deletion to force delete the VM even if it is in a running or failed state + Use force-deletion to force delete the VM even if it is in a running or failed state (passes forceDeletion=true to the Azure API). Associated resources like disks, NICs, and public IPs are NOT automatically deleted. Do not use this to stop or pause a VM; use the VM power-state command instead. diff --git a/tools/Azure.Mcp.Tools.Compute/src/Commands/Vm/VmGetCommand.cs b/tools/Azure.Mcp.Tools.Compute/src/Commands/Vm/VmGetCommand.cs index fb991efa09..3928959d69 100644 --- a/tools/Azure.Mcp.Tools.Compute/src/Commands/Vm/VmGetCommand.cs +++ b/tools/Azure.Mcp.Tools.Compute/src/Commands/Vm/VmGetCommand.cs @@ -17,7 +17,7 @@ namespace Azure.Mcp.Tools.Compute.Commands.Vm; Id = "c1a8b3e5-4f2d-4a6e-8c7b-9d2e3f4a5b6c", Name = "get", Title = "Get Virtual Machine(s)", - Description = "List or get all Azure Virtual Machines (VMs) in a subscription, or query VMs in a specific resource group. Show all VMs or retrieve a specific VM by name. Returns read-only VM details including name, location, VM size, provisioning state, OS type, and network interfaces. Use --instance-view to query and check the current runtime status and power state of a VM along with provisioning state. This is a read-only inspection and inventory tool for viewing VM configuration, properties, and runtime status.", + Description = "List or get all Azure Virtual Machines (VMs) in a subscription, or query VMs in a specific resource group. Show all VMs or retrieve a specific VM by name. Returns VM details including name, location, VM size, provisioning state, OS type, and network interfaces. Use instance-view to query and check the current runtime status and power state of a VM along with provisioning state. This is an inspection and inventory tool for viewing VM configuration, properties, and runtime status.", Destructive = false, Idempotent = true, OpenWorld = false, diff --git a/tools/Azure.Mcp.Tools.Compute/src/Commands/Vm/VmPowerStateCommand.cs b/tools/Azure.Mcp.Tools.Compute/src/Commands/Vm/VmPowerStateCommand.cs index d46c3b07c1..93504eb5ce 100644 --- a/tools/Azure.Mcp.Tools.Compute/src/Commands/Vm/VmPowerStateCommand.cs +++ b/tools/Azure.Mcp.Tools.Compute/src/Commands/Vm/VmPowerStateCommand.cs @@ -5,7 +5,6 @@ using Azure.Mcp.Tools.Compute.Options; using Azure.Mcp.Tools.Compute.Options.Vm; using Azure.Mcp.Tools.Compute.Services; -using Microsoft.Extensions.Logging; using Microsoft.Mcp.Core.Commands; using Microsoft.Mcp.Core.Extensions; using Microsoft.Mcp.Core.Models.Command; @@ -13,6 +12,28 @@ namespace Azure.Mcp.Tools.Compute.Commands.Vm; +[CommandMetadata( + Id = "a7c1e4b2-9d3f-4e8a-b5c6-2f1d3e4a5b6c", + Name = "power-state", + Title = "Change Virtual Machine Power State", + Description = """ + Deallocate, start, stop, power on, power off, or restart an Azure Virtual Machine (VM) to change its running state. + Use this to deallocate a VM to release compute resources while keeping the VM and preserving its configuration, + power on a stopped VM, power off or shut down a running VM, or reboot a VM. + Deallocating a VM stops billing for compute resources while the VM remains available to be started again later. + Supported power-action values: deallocate (release compute resources while keeping the VM), start (power on), stop (power off, shut down), restart (reboot). + Equivalent to 'az vm deallocate', 'az vm start', 'az vm stop', 'az vm restart'. + Use skip-shutdown with stop to force the action without graceful OS shutdown. + Use no-wait to return immediately; the response will include a 'statusUri' (the ARM Azure-AsyncOperation URL) + that can be GET'd to poll the operation status (InProgress / Succeeded / Failed). + Do not use this to query, check, or get a VM's current state; use the VM get command with instance-view instead. + """, + Destructive = true, + Idempotent = true, + OpenWorld = false, + ReadOnly = false, + Secret = false, + LocalRequired = false)] public sealed class VmPowerStateCommand(ILogger logger, IComputeService computeService) : BaseComputeCommand(true) { @@ -24,36 +45,6 @@ public sealed class VmPowerStateCommand(ILogger logger, ICo private readonly ILogger _logger = logger; private readonly IComputeService _computeService = computeService; - public override string Id => "a7c1e4b2-9d3f-4e8a-b5c6-2f1d3e4a5b6c"; - - public override string Name => "power-state"; - - public override string Description => - """ - Deallocate, start, stop, power on, power off, or restart an Azure Virtual Machine (VM) to change its running state. - Use this to deallocate a VM to release compute resources while keeping the VM and preserving its configuration, - power on a stopped VM, power off or shut down a running VM, or reboot a VM. - Deallocating a VM stops billing for compute resources while the VM remains available to be started again later. - Supported --power-action values: deallocate (release compute resources while keeping the VM), start (power on), stop (power off, shut down), restart (reboot). - Equivalent to 'az vm deallocate', 'az vm start', 'az vm stop', 'az vm restart'. - Use --skip-shutdown with stop to force the action without graceful OS shutdown. - Use --no-wait to return immediately; the response will include a 'statusUri' (the ARM Azure-AsyncOperation URL) - that can be GET'd to poll the operation status (InProgress / Succeeded / Failed). - Do not use this to query, check, or get a VM's current state; use the VM get command with --instance-view instead. - """; - - public override string Title => CommandTitle; - - public override ToolMetadata Metadata => new() - { - Destructive = true, - Idempotent = true, - OpenWorld = false, - ReadOnly = false, - LocalRequired = false, - Secret = false - }; - protected override void RegisterOptions(Command command) { base.RegisterOptions(command); diff --git a/tools/Azure.Mcp.Tools.Compute/src/Commands/Vmss/VmssCreateCommand.cs b/tools/Azure.Mcp.Tools.Compute/src/Commands/Vmss/VmssCreateCommand.cs index cbfb77ff53..260646bb7c 100644 --- a/tools/Azure.Mcp.Tools.Compute/src/Commands/Vmss/VmssCreateCommand.cs +++ b/tools/Azure.Mcp.Tools.Compute/src/Commands/Vmss/VmssCreateCommand.cs @@ -24,7 +24,7 @@ namespace Azure.Mcp.Tools.Compute.Commands.Vmss; including specifying the initial instance count (e.g., 3 instances, 5 instances) and upgrade policy (Manual, Automatic, or Rolling) at creation time. Equivalent to 'az vmss create'. Defaults to 2 instances and Standard_D2s_v5 size when not specified. - The --image option is required and has no default; if the user does not specify an image, ask them which image to use + The image option is required and has no default; if the user does not specify an image, ask them which image to use (an alias such as 'Ubuntu2404' or 'Win2022Datacenter', a marketplace URN like 'publisher:offer:sku:version', or a shared gallery image ID starting with '/sharedGalleries/'). For Linux VMSS with SSH, read the user's public key file (e.g., ~/.ssh/id_rsa.pub) and pass its content. diff --git a/tools/Azure.Mcp.Tools.Compute/src/Commands/Vmss/VmssDeleteCommand.cs b/tools/Azure.Mcp.Tools.Compute/src/Commands/Vmss/VmssDeleteCommand.cs index a6d38b8c41..e662844c24 100644 --- a/tools/Azure.Mcp.Tools.Compute/src/Commands/Vmss/VmssDeleteCommand.cs +++ b/tools/Azure.Mcp.Tools.Compute/src/Commands/Vmss/VmssDeleteCommand.cs @@ -20,7 +20,7 @@ namespace Azure.Mcp.Tools.Compute.Commands.Vmss; Delete, remove, or destroy an Azure Virtual Machine Scale Set (VMSS) and all its VM instances. Use this to permanently remove a scale set that is no longer needed. Equivalent to 'az vmss delete'. This operation is irreversible and all VMSS instances will be lost. - Use --force-deletion to force delete the VMSS even if it is in a running or failed state + Use force-deletion to force delete the VMSS even if it is in a running or failed state (passes forceDeletion=true to the Azure API). Do not use this to delete a single VM (use VM delete instead) or to update/modify a VMSS (use VMSS update). """, diff --git a/tools/Azure.Mcp.Tools.Compute/src/Options/ComputeOptionDefinitions.cs b/tools/Azure.Mcp.Tools.Compute/src/Options/ComputeOptionDefinitions.cs index bc799880ed..741bccef54 100644 --- a/tools/Azure.Mcp.Tools.Compute/src/Options/ComputeOptionDefinitions.cs +++ b/tools/Azure.Mcp.Tools.Compute/src/Options/ComputeOptionDefinitions.cs @@ -31,12 +31,6 @@ public static class ComputeOptionDefinitions public const string UploadTypeName = "upload-type"; public const string UploadSizeBytesName = "upload-size-bytes"; public const string SecurityTypeName = "security-type"; - - public static readonly Option Source = new($"--{SourceName}") - { - Description = "Source to create the disk from, including a resource ID of a snapshot or disk, or a blob URI of a VHD. When a source is provided, --size-gb is optional and defaults to the source size.", - Required = false - }; public const string VmSizeName = "vm-size"; public const string ImageName = "image"; public const string AdminUsernameName = "admin-username"; @@ -51,6 +45,12 @@ public static class ComputeOptionDefinitions public const string OsDiskSizeGbName = "os-disk-size-gb"; public const string OsDiskTypeName = "os-disk-type"; + public static readonly Option Source = new($"--{SourceName}") + { + Description = "Source to create the disk from, including a resource ID of a snapshot or disk, or a blob URI of a VHD. When a source is provided, size-gb is optional and defaults to the source size.", + Required = false + }; + public static readonly Option Disk = new($"--{DiskName}", "--name") { Description = "The name of the disk", diff --git a/tools/Azure.Mcp.Tools.ContainerApps/src/Commands/ContainerApp/ContainerAppListCommand.cs b/tools/Azure.Mcp.Tools.ContainerApps/src/Commands/ContainerApp/ContainerAppListCommand.cs index a21d9cd69b..6015723fc2 100644 --- a/tools/Azure.Mcp.Tools.ContainerApps/src/Commands/ContainerApp/ContainerAppListCommand.cs +++ b/tools/Azure.Mcp.Tools.ContainerApps/src/Commands/ContainerApp/ContainerAppListCommand.cs @@ -14,9 +14,8 @@ namespace Azure.Mcp.Tools.ContainerApps.Commands.ContainerApp; Name = "list", Title = "List Container Apps", Description = """ - List Azure Container Apps in a subscription. Optionally filter by resource group. Each container app result - includes: name, location, resourceGroup, managedEnvironmentId, provisioningState. If no container apps are - found the tool returns an empty list of results (consistent with other list commands). + List Azure Container Apps in a subscription or resource group. Each container app result includes name, location, + resourceGroup, managedEnvironmentId, provisioningState. """, Destructive = false, Idempotent = true, diff --git a/tools/Azure.Mcp.Tools.Cosmos/src/Commands/CosmosListCommand.cs b/tools/Azure.Mcp.Tools.Cosmos/src/Commands/CosmosListCommand.cs index 1ccf5064a7..b338c7fa0e 100644 --- a/tools/Azure.Mcp.Tools.Cosmos/src/Commands/CosmosListCommand.cs +++ b/tools/Azure.Mcp.Tools.Cosmos/src/Commands/CosmosListCommand.cs @@ -18,7 +18,7 @@ namespace Azure.Mcp.Tools.Cosmos.Commands; Id = "a1b2c3d4-e5f6-7890-abcd-ef1234567890", Name = "list", Title = "List Cosmos DB Resources", - Description = "List Cosmos DB accounts, databases, or containers. Returns all accounts in the subscription by default. Specify --account to list databases in that account, or --account and --database to list containers in a specific database.", + Description = "List Cosmos DB accounts, databases, or containers. Returns all accounts in the subscription by default. Specify account to list databases in that account, or account and database to list containers in a specific database.", Destructive = false, Idempotent = true, OpenWorld = false, diff --git a/tools/Azure.Mcp.Tools.Cosmos/src/Commands/Item/ItemGetCommand.cs b/tools/Azure.Mcp.Tools.Cosmos/src/Commands/Item/ItemGetCommand.cs index 05134f512b..9750a8a466 100644 --- a/tools/Azure.Mcp.Tools.Cosmos/src/Commands/Item/ItemGetCommand.cs +++ b/tools/Azure.Mcp.Tools.Cosmos/src/Commands/Item/ItemGetCommand.cs @@ -16,7 +16,7 @@ namespace Azure.Mcp.Tools.Cosmos.Commands.Item; Id = "d4c1b2a3-9e8f-4d7c-86b5-1a2b3c4d5e6f", Name = "get", Title = "Get Cosmos DB Document by Id", - Description = "Get a single Cosmos DB document by its id in the specified database and container. When a --partition-key is supplied, the query is scoped to a single partition (cheaper than a cross-partition fan-out); otherwise a cross-partition query is executed.", + Description = "Get a single Cosmos DB document by its id in the specified database and container. When a partition-key is supplied, the query is scoped to a single partition (cheaper than a cross-partition fan-out); otherwise a cross-partition query is executed.", Destructive = false, Idempotent = true, OpenWorld = false, diff --git a/tools/Azure.Mcp.Tools.Cosmos/src/Commands/Item/ItemListRecentCommand.cs b/tools/Azure.Mcp.Tools.Cosmos/src/Commands/Item/ItemListRecentCommand.cs index b013e3ecee..c402bc4343 100644 --- a/tools/Azure.Mcp.Tools.Cosmos/src/Commands/Item/ItemListRecentCommand.cs +++ b/tools/Azure.Mcp.Tools.Cosmos/src/Commands/Item/ItemListRecentCommand.cs @@ -16,7 +16,7 @@ namespace Azure.Mcp.Tools.Cosmos.Commands.Item; Id = "9a1b1c2d-3e4f-4a5b-9c6d-7e8f9a0b1c2d", Name = "list-recent", Title = "List Recent Cosmos DB Documents", - Description = "Retrieve the most recently modified documents from a Cosmos DB container, ordered by the system timestamp (_ts) in descending order. Use the --count option to control how many documents are returned (1-20, default is 10).", + Description = "Retrieve the most recently modified documents from a Cosmos DB container, ordered by the system timestamp (_ts) in descending order. Use the count to control how many documents are returned (1-20, default is 10).", Destructive = false, Idempotent = true, OpenWorld = false, diff --git a/tools/Azure.Mcp.Tools.Cosmos/src/Commands/Item/ItemTextSearchCommand.cs b/tools/Azure.Mcp.Tools.Cosmos/src/Commands/Item/ItemTextSearchCommand.cs index 173bd5ff04..6e6d8391cf 100644 --- a/tools/Azure.Mcp.Tools.Cosmos/src/Commands/Item/ItemTextSearchCommand.cs +++ b/tools/Azure.Mcp.Tools.Cosmos/src/Commands/Item/ItemTextSearchCommand.cs @@ -17,7 +17,7 @@ namespace Azure.Mcp.Tools.Cosmos.Commands.Item; Id = "8b4c5d6e-7f80-4a91-bc23-d4e5f6a7b8c9", Name = "text-search", Title = "Text Search Cosmos DB Documents", - Description = "Retrieve the TOP N documents in a Cosmos DB container where a given --search-property matches a provided --search-phrase using the Cosmos FullTextContains function. Matching is word-tokenized (not substring) and uses the container's configured full-text analyzer, so language-specific stemming and stop-word filtering apply (e.g., common English words like 'the' or 'hello' may be excluded from the index). Requires a Cosmos DB full-text index on --search-property. Use --count to control how many documents are returned (1-20, default is 10). Optionally pass --properties-to-select to project specific fields instead of the full document.", + Description = "Retrieve the TOP N documents in a Cosmos DB container where a given search-property matches a provided search-phrase using the Cosmos FullTextContains function. Matching is word-tokenized (not substring) and uses the container's configured full-text analyzer, so language-specific stemming and stop-word filtering apply (e.g., common English words like 'the' or 'hello' may be excluded from the index). Requires a Cosmos DB full-text index on search-property. Use count to control how many documents are returned (1-20, default is 10). Optionally pass properties-to-select to project specific fields instead of the full document.", Destructive = false, Idempotent = true, OpenWorld = false, diff --git a/tools/Azure.Mcp.Tools.Cosmos/src/Commands/Item/ItemVectorSearchCommand.cs b/tools/Azure.Mcp.Tools.Cosmos/src/Commands/Item/ItemVectorSearchCommand.cs index 892bdbce0b..b374e75eb2 100644 --- a/tools/Azure.Mcp.Tools.Cosmos/src/Commands/Item/ItemVectorSearchCommand.cs +++ b/tools/Azure.Mcp.Tools.Cosmos/src/Commands/Item/ItemVectorSearchCommand.cs @@ -18,7 +18,7 @@ namespace Azure.Mcp.Tools.Cosmos.Commands.Item; Id = "5e6f7a8b-9c0d-4e1f-a2b3-c4d5e6f7a8b9", Name = "vector-search", Title = "Vector Search Cosmos DB Documents", - Description = "Retrieve the TOP N documents in a Cosmos DB container most similar to a given --search-text using the Cosmos VectorDistance function on the provided --vector-property. The tool first calls an Azure OpenAI embedding deployment (--openai-endpoint and --embedding-deployment) to convert --search-text into a query vector; optionally pass --embedding-dimensions to request a specific length for models that support custom dimensions (e.g., text-embedding-3-small / text-embedding-3-large). Each returned document includes a `_score` field that represents the server-side computed similarity. Requires a Cosmos DB vector index on --vector-property. Use --count to control how many documents are returned (1-20, default is 10). Optionally pass --properties-to-select to project specific fields; when omitted the full document is returned with --vector-property stripped, since a typical 1536-dim embedding adds ~30 KB / ~10K tokens per hit.", + Description = "Retrieve the TOP N documents in a Cosmos DB container most similar to a given search-text using the Cosmos VectorDistance function on the provided vector-property. The tool first calls an Azure OpenAI embedding deployment (openai-endpoint and embedding-deployment) to convert search-text into a query vector; optionally pass embedding-dimensions to request a specific length for models that support custom dimensions (e.g., text-embedding-3-small / text-embedding-3-large). Each returned document includes a `_score` field that represents the server-side computed similarity. Requires a Cosmos DB vector index on vector-property. Use count to control how many documents are returned (1-20, default is 10). Optionally pass properties-to-select to project specific fields; when omitted the full document is returned with vector-property stripped, since a typical 1536-dim embedding adds ~30 KB / ~10K tokens per hit.", Destructive = false, Idempotent = true, OpenWorld = false, diff --git a/tools/Azure.Mcp.Tools.Cosmos/src/Options/CosmosOptionDefinitions.cs b/tools/Azure.Mcp.Tools.Cosmos/src/Options/CosmosOptionDefinitions.cs index 34344e4311..cfc7e7e30c 100644 --- a/tools/Azure.Mcp.Tools.Cosmos/src/Options/CosmosOptionDefinitions.cs +++ b/tools/Azure.Mcp.Tools.Cosmos/src/Options/CosmosOptionDefinitions.cs @@ -34,7 +34,7 @@ public static class CosmosOptionDefinitions $"--{AccountName}" ) { - Description = "The name of the Cosmos DB account (optional). When not specified, lists all accounts in the subscription. Specify this to list databases, or combine with --database to list containers." + Description = "The name of the Cosmos DB account. When not specified, lists all accounts in the subscription. Specify this to list databases, or combine with database to list containers." }; public static readonly Option Database = new( @@ -49,7 +49,7 @@ public static class CosmosOptionDefinitions $"--{DatabaseName}" ) { - Description = "The name of the database (optional). Requires --account to be specified. When provided, lists containers within this database." + Description = "The name of the database. Requires account to be specified. When provided, lists containers within this database." }; public static readonly Option Container = new( @@ -96,7 +96,7 @@ public static class CosmosOptionDefinitions $"--{PartitionKeyName}" ) { - Description = "Optional partition key value for the document. When provided, the query is scoped to a single partition (cheaper than a cross-partition fan-out)." + Description = "Partition key value for the document. When provided, the query is scoped to a single partition (cheaper than a cross-partition fan-out)." }; public static readonly Option SearchProperty = new( @@ -142,7 +142,7 @@ public static class CosmosOptionDefinitions $"--{OpenAIEndpointName}" ) { - Description = "Azure OpenAI endpoint (e.g., 'https://my-endpoint.openai.azure.com/') used to generate the embedding from --search-text.", + Description = "Azure OpenAI endpoint (e.g., 'https://my-endpoint.openai.azure.com/') used to generate the embedding from search-text.", Required = true }; @@ -150,7 +150,7 @@ public static class CosmosOptionDefinitions $"--{EmbeddingDeploymentName}" ) { - Description = "Name of the Azure OpenAI embedding deployment (e.g., 'text-embedding-3-small') used to generate the embedding from --search-text.", + Description = "Name of the Azure OpenAI embedding deployment (e.g., 'text-embedding-3-small') used to generate the embedding from search-text.", Required = true }; @@ -158,6 +158,6 @@ public static class CosmosOptionDefinitions $"--{EmbeddingDimensionsName}" ) { - Description = "Optional embedding dimensions to request from the model (only honored by models that support custom dimensions, e.g., text-embedding-3-*)." + Description = "Embedding dimensions to request from the model (only honored by models that support custom dimensions, e.g., text-embedding-3-*)." }; } diff --git a/tools/Azure.Mcp.Tools.EventGrid/src/Commands/Events/EventsPublishCommand.cs b/tools/Azure.Mcp.Tools.EventGrid/src/Commands/Events/EventsPublishCommand.cs index 6c09cd5422..d011129c71 100644 --- a/tools/Azure.Mcp.Tools.EventGrid/src/Commands/Events/EventsPublishCommand.cs +++ b/tools/Azure.Mcp.Tools.EventGrid/src/Commands/Events/EventsPublishCommand.cs @@ -19,7 +19,7 @@ namespace Azure.Mcp.Tools.EventGrid.Commands.Events; Description = """ Publish custom events to Event Grid topics for event-driven architectures. This tool sends structured event data to Event Grid topics with schema validation and delivery guarantees for downstream subscribers. Returns publish operation - status. Requires topic, data, and optional schema. + status. """, Destructive = false, Idempotent = false, diff --git a/tools/Azure.Mcp.Tools.EventHubs/src/Commands/ConsumerGroup/ConsumerGroupDeleteCommand.cs b/tools/Azure.Mcp.Tools.EventHubs/src/Commands/ConsumerGroup/ConsumerGroupDeleteCommand.cs index 1d245b8f4a..24b66f7dc0 100644 --- a/tools/Azure.Mcp.Tools.EventHubs/src/Commands/ConsumerGroup/ConsumerGroupDeleteCommand.cs +++ b/tools/Azure.Mcp.Tools.EventHubs/src/Commands/ConsumerGroup/ConsumerGroupDeleteCommand.cs @@ -17,11 +17,7 @@ namespace Azure.Mcp.Tools.EventHubs.Commands.ConsumerGroup; Name = "delete", Title = "Delete Event Hubs Consumer Group", Description = """ - Delete a Consumer Group. This tool will delete a pre-existing Consumer Group from the specified - Event Hub. This tool will remove existing configurations, and is considered to be destructive. - - The tool requires specifying the resource group, Namespace name, Event Hub name, and Consumer - Group name to identify the Consumer Group to delete. + Delete a Consumer Group from the specified Event Hub. This tool will remove existing configurations. """, Destructive = true, Idempotent = true, diff --git a/tools/Azure.Mcp.Tools.EventHubs/src/Commands/ConsumerGroup/ConsumerGroupGetCommand.cs b/tools/Azure.Mcp.Tools.EventHubs/src/Commands/ConsumerGroup/ConsumerGroupGetCommand.cs index 6785cb7c83..01516f67a7 100644 --- a/tools/Azure.Mcp.Tools.EventHubs/src/Commands/ConsumerGroup/ConsumerGroupGetCommand.cs +++ b/tools/Azure.Mcp.Tools.EventHubs/src/Commands/ConsumerGroup/ConsumerGroupGetCommand.cs @@ -17,14 +17,9 @@ namespace Azure.Mcp.Tools.EventHubs.Commands.ConsumerGroup; Name = "get", Title = "Get Event Hubs Consumer Groups", Description = """ - Get consumer groups from Azure Event Hub. This command can either: - - 1) List all consumer groups in an Event Hub - 2) Get a single consumer group by name - - The EventHub, Namespace, and ResourceGroup parameters are required (for both get and list) - The Consumer Group parameter is only required for getting a specific consumer-group - When retrieving a single consumer group and when listing all available consumer groups, return all available metadata on the consumer group. + Get details of a specific Consumer Group or list all consumer groups in an Azure Event Hub. If consumer-group is provided, + returns a specific consumer group; otherwise, lists all consumer groups for the Event Hub. + Returns all available metadata on the consumer group. """, Destructive = false, Idempotent = true, diff --git a/tools/Azure.Mcp.Tools.EventHubs/src/Commands/ConsumerGroup/ConsumerGroupUpdateCommand.cs b/tools/Azure.Mcp.Tools.EventHubs/src/Commands/ConsumerGroup/ConsumerGroupUpdateCommand.cs index bf6a003245..4645b6d48e 100644 --- a/tools/Azure.Mcp.Tools.EventHubs/src/Commands/ConsumerGroup/ConsumerGroupUpdateCommand.cs +++ b/tools/Azure.Mcp.Tools.EventHubs/src/Commands/ConsumerGroup/ConsumerGroupUpdateCommand.cs @@ -17,13 +17,9 @@ namespace Azure.Mcp.Tools.EventHubs.Commands.ConsumerGroup; Name = "update", Title = "Create or Update Event Hubs Consumer Group", Description = """ - Create or Update a Consumer Group. This tool will either create a Consumer Group resource - or update a pre-existing Consumer Group resource within the specified Event Hub, depending - on whether or not the specified Consumer Group already exists. This tool may modify existing - configurations, and is considered to be destructive. - - The tool requires specifying the resource group, namespace name, event hub name, and consumer - group name. Optionally, you can provide user metadata for the consumer group. + Create or Update a Consumer Group. This tool will either create a Consumer Group resource or update a pre-existing + Consumer Group resource within the specified Event Hub, depending on whether or not the specified Consumer Group + already exists. This tool may modify existing configurations. """, Destructive = true, Idempotent = true, diff --git a/tools/Azure.Mcp.Tools.EventHubs/src/Commands/EventHub/EventHubDeleteCommand.cs b/tools/Azure.Mcp.Tools.EventHubs/src/Commands/EventHub/EventHubDeleteCommand.cs index 55d593f7d5..52873007ff 100644 --- a/tools/Azure.Mcp.Tools.EventHubs/src/Commands/EventHub/EventHubDeleteCommand.cs +++ b/tools/Azure.Mcp.Tools.EventHubs/src/Commands/EventHub/EventHubDeleteCommand.cs @@ -19,13 +19,10 @@ namespace Azure.Mcp.Tools.EventHubs.Commands.EventHub; Name = "delete", Title = "Delete Event Hub", Description = """ - Delete an Event Hub from an Azure Event Hubs namespace. This operation permanently removes - the specified Event Hub and all its data. This is a destructive operation. - - The operation is idempotent - if the Event Hub doesn't exist, the command reports success - with Deleted = false. If the Event Hub is successfully deleted, Deleted = true is returned. - Warning: This operation cannot be undone. All messages and consumer groups in the Event Hub - will be permanently deleted. + Delete an Event Hub from an Azure Event Hubs namespace. This operation permanently removes the specified Event Hub + and all its data. If the Event Hub doesn't exist, the command reports success with Deleted = false. If the Event Hub + is successfully deleted, Deleted = true is returned. + Warning: This operation cannot be undone. All messages and consumer groups in the Event Hub will be permanently deleted. """, Destructive = true, Idempotent = true, diff --git a/tools/Azure.Mcp.Tools.EventHubs/src/Commands/EventHub/EventHubGetCommand.cs b/tools/Azure.Mcp.Tools.EventHubs/src/Commands/EventHub/EventHubGetCommand.cs index 9c3eb19f3c..09d25f9c8f 100644 --- a/tools/Azure.Mcp.Tools.EventHubs/src/Commands/EventHub/EventHubGetCommand.cs +++ b/tools/Azure.Mcp.Tools.EventHubs/src/Commands/EventHub/EventHubGetCommand.cs @@ -19,12 +19,9 @@ namespace Azure.Mcp.Tools.EventHubs.Commands.EventHub; Name = "get", Title = "Get Event Hubs from Namespace", Description = """ - Get Event Hubs from Azure namespace. This command can either: - 1. List all Event Hubs in a namespace - 2. Get a single Event Hub by name - - When retrieving a single Event Hub or listing multiple Event Hubs, detailed information including - partition count, settings, and metadata is returned for all Event Hubs. + Get details of a specific Event Hub or list all Event Hubs in an Azure namespace. If eventhub is specified, + returns a specific Event Hub; otherwise, lists all Event Hubs in the namespace. + Returns detailed information including partition count, settings, and metadata. """, Destructive = false, Idempotent = true, diff --git a/tools/Azure.Mcp.Tools.EventHubs/src/Commands/EventHub/EventHubUpdateCommand.cs b/tools/Azure.Mcp.Tools.EventHubs/src/Commands/EventHub/EventHubUpdateCommand.cs index 4c8335e803..e94257e05a 100644 --- a/tools/Azure.Mcp.Tools.EventHubs/src/Commands/EventHub/EventHubUpdateCommand.cs +++ b/tools/Azure.Mcp.Tools.EventHubs/src/Commands/EventHub/EventHubUpdateCommand.cs @@ -19,13 +19,9 @@ namespace Azure.Mcp.Tools.EventHubs.Commands.EventHub; Name = "update", Title = "Create or Update Event Hub", Description = """ - Create or update an Event Hub within an Azure Event Hubs namespace. This command can either: - 1. Create a new Event Hub if it doesn't exist - 2. Update an existing Event Hub's configuration - - You can configure: - - Partition count (number of partitions for parallel processing) - - Message retention time (how long messages are retained in hours) + Create or Update an Event Hub within an Azure Event Hubs namespace. This tool will either create an Event Hub + resource or update a pre-existing Event Hub resource within the specified namespace, depending on whether or + not the specified Event Hub already exists. This tool may modify existing configurations. Note: Some properties like partition count cannot be changed after creation. This is a potentially long-running operation that waits for completion. diff --git a/tools/Azure.Mcp.Tools.EventHubs/src/Commands/Namespace/NamespaceDeleteCommand.cs b/tools/Azure.Mcp.Tools.EventHubs/src/Commands/Namespace/NamespaceDeleteCommand.cs index d1aafed5b5..c2a020b58b 100644 --- a/tools/Azure.Mcp.Tools.EventHubs/src/Commands/Namespace/NamespaceDeleteCommand.cs +++ b/tools/Azure.Mcp.Tools.EventHubs/src/Commands/Namespace/NamespaceDeleteCommand.cs @@ -18,15 +18,10 @@ namespace Azure.Mcp.Tools.EventHubs.Commands.Namespace; Name = "delete", Title = "Delete Event Hubs Namespace", Description = """ - Delete Event Hubs namespace. This tool will delete a pre-existing Namespace from the - specified resource group. This tool will remove existing configurations, and is - considered to be destructive. + Delete an Event Hubs namespace from the specified resource group. This tool will remove existing configurations. - WARNING: This operation is irreversible. All Event Hubs, Consumer Groups, and - configurations within the namespace will be permanently deleted. - - The namespace must exist in the specified resource group. If the namespace is not found, - an error will be returned. + WARNING: This operation is irreversible. All Event Hubs, Consumer Groups, and configurations within the namespace + will be permanently deleted. """, Destructive = true, Idempotent = true, diff --git a/tools/Azure.Mcp.Tools.EventHubs/src/Commands/Namespace/NamespaceGetCommand.cs b/tools/Azure.Mcp.Tools.EventHubs/src/Commands/Namespace/NamespaceGetCommand.cs index 90669e9ce2..084479de64 100644 --- a/tools/Azure.Mcp.Tools.EventHubs/src/Commands/Namespace/NamespaceGetCommand.cs +++ b/tools/Azure.Mcp.Tools.EventHubs/src/Commands/Namespace/NamespaceGetCommand.cs @@ -17,16 +17,11 @@ namespace Azure.Mcp.Tools.EventHubs.Commands.Namespace; Name = "get", Title = "Get Event Hubs Namespaces", Description = """ - Get Event Hubs namespaces from Azure. This command supports three modes of operation: - 1. List all Event Hubs namespaces in a subscription - 2. List all Event Hubs namespaces in a specific resource group - 3. Get a single namespace by name + Lists Event Hubs namespaces in a subscription or resource group or get a specific namespace. If no namespace is + specified, all namespaces in the specified scope will be listed. Otherwise, get a specific namespace based on the + namespace and resource group provided. Resource group is required whrn getting a specific namespace. - When retrieving a single namespace, detailed information including SKU, settings, and metadata - is returned. When listing namespaces, the same detailed information is returned for all - namespaces in the specified scope. - - The --resource-group parameter is optional for listing operations but required when getting a specific namespace. + Returns detailed information including SKU, settings, and metadata. """, Destructive = false, Idempotent = true, diff --git a/tools/Azure.Mcp.Tools.EventHubs/src/Commands/Namespace/NamespaceUpdateCommand.cs b/tools/Azure.Mcp.Tools.EventHubs/src/Commands/Namespace/NamespaceUpdateCommand.cs index 6bea17f858..e6ce2a55ee 100644 --- a/tools/Azure.Mcp.Tools.EventHubs/src/Commands/Namespace/NamespaceUpdateCommand.cs +++ b/tools/Azure.Mcp.Tools.EventHubs/src/Commands/Namespace/NamespaceUpdateCommand.cs @@ -17,10 +17,9 @@ namespace Azure.Mcp.Tools.EventHubs.Commands.Namespace; Name = "update", Title = "Create or Update Event Hubs Namespace", Description = """ - Create or Update a Namespace. This tool will either create a Namespace resource or - update a pre-existing Namespace resource within the specified resource group, depending on - whether or not the specified Namespace already exists. This tool may modify existing - configurations, and is considered to be destructive. This is a potentially long-running operation. + Create or Update a Namespace. This tool will either create a Namespace resource or update a pre-existing + Namespace resource within the specified resource group, depending on whether or not the specified Namespace + already exists. This tool may modify existing configurations and is potentially a long-running operation. When updating an existing namespace, you only need to provide the properties you want to change. Unspecified properties will retain their existing values. At least one update property must be provided. diff --git a/tools/Azure.Mcp.Tools.EventHubs/src/Options/EventHubsOptionDefinitions.cs b/tools/Azure.Mcp.Tools.EventHubs/src/Options/EventHubsOptionDefinitions.cs index 6a97d2152b..e9ad79ae5c 100644 --- a/tools/Azure.Mcp.Tools.EventHubs/src/Options/EventHubsOptionDefinitions.cs +++ b/tools/Azure.Mcp.Tools.EventHubs/src/Options/EventHubsOptionDefinitions.cs @@ -82,7 +82,7 @@ public static class EventHubsOptionDefinitions $"--{Namespace}" ) { - Description = "The name of the Event Hubs namespace to retrieve. Must be used with --resource-group option.", + Description = "The name of the Event Hubs namespace to retrieve. Must be used with resource-group option.", Required = false }; diff --git a/tools/Azure.Mcp.Tools.Extension/src/Commands/AzqrCommand.cs b/tools/Azure.Mcp.Tools.Extension/src/Commands/AzqrCommand.cs index dc47415478..38c8bc68e3 100644 --- a/tools/Azure.Mcp.Tools.Extension/src/Commands/AzqrCommand.cs +++ b/tools/Azure.Mcp.Tools.Extension/src/Commands/AzqrCommand.cs @@ -20,7 +20,7 @@ namespace Azure.Mcp.Tools.Extension.Commands; Id = "e7ef18a3-2730-4300-bad3-dc766f47dd2a", Name = "azqr", Title = "Azure Quick Review CLI Command", - Description = "Runs Azure Quick Review CLI (azqr) commands to generate compliance and security reports for Azure resources, identifying non-compliant configurations or areas for improvement. Requires a subscription id and optionally a resource group name. Returns the generated report file path. Note: azqr is different from Azure CLI (az).", + Description = "Runs Azure Quick Review CLI (azqr) commands to generate compliance and security reports for Azure resources, identifying non-compliant configurations or areas for improvement. Returns the generated report file path. Note: azqr is different from Azure CLI (az).", Destructive = false, Idempotent = true, OpenWorld = false, diff --git a/tools/Azure.Mcp.Tools.Extension/src/Options/ExtensionOptionDefinitions.cs b/tools/Azure.Mcp.Tools.Extension/src/Options/ExtensionOptionDefinitions.cs index c13ba0385a..ff89eeda42 100644 --- a/tools/Azure.Mcp.Tools.Extension/src/Options/ExtensionOptionDefinitions.cs +++ b/tools/Azure.Mcp.Tools.Extension/src/Options/ExtensionOptionDefinitions.cs @@ -12,7 +12,7 @@ public static class CliGenerate $"--{IntentName}" ) { - Description = "The user intent of the task to be solved by using the CLI tool. This user intent will be used to generate the appropriate CLI command to accomplish the desirable goal.", + Description = "The user intent of the task to be solved by using the CLI tool. Used to generate the appropriate CLI command to accomplish the desirable goal.", Required = true }; diff --git a/tools/Azure.Mcp.Tools.FileShares/src/Commands/FileShare/FileShareGetCommand.cs b/tools/Azure.Mcp.Tools.FileShares/src/Commands/FileShare/FileShareGetCommand.cs index 16bebc68ef..134341c7f5 100644 --- a/tools/Azure.Mcp.Tools.FileShares/src/Commands/FileShare/FileShareGetCommand.cs +++ b/tools/Azure.Mcp.Tools.FileShares/src/Commands/FileShare/FileShareGetCommand.cs @@ -15,7 +15,7 @@ namespace Azure.Mcp.Tools.FileShares.Commands.FileShare; Id = "c5d6e7f8-a9b0-4c1d-2e3f-4a5b6c7d8e9f", Name = "get", Title = "Get File Share", - Description = "Get details of a specific file share or list all file shares. If --name is provided, returns a specific file share; otherwise, lists all file shares in the subscription or resource group.", + Description = "Get details of a specific file share or list all file shares. If name is provided, returns a specific file share; otherwise, lists all file shares in the subscription or resource group.", Destructive = false, Idempotent = true, OpenWorld = false, diff --git a/tools/Azure.Mcp.Tools.FileShares/src/Commands/PrivateEndpointConnection/PrivateEndpointConnectionGetCommand.cs b/tools/Azure.Mcp.Tools.FileShares/src/Commands/PrivateEndpointConnection/PrivateEndpointConnectionGetCommand.cs index f7aaa2d41f..12a7f40182 100644 --- a/tools/Azure.Mcp.Tools.FileShares/src/Commands/PrivateEndpointConnection/PrivateEndpointConnectionGetCommand.cs +++ b/tools/Azure.Mcp.Tools.FileShares/src/Commands/PrivateEndpointConnection/PrivateEndpointConnectionGetCommand.cs @@ -16,7 +16,7 @@ namespace Azure.Mcp.Tools.FileShares.Commands.PrivateEndpointConnection; Id = "a8e9f7d6-c5b4-4a3d-9e2f-1c0b8a7d6e5f", Name = "get", Title = "Get Private Endpoint Connection", - Description = "Get details of a specific private endpoint connection or list all private endpoint connections for a file share. If --connection-name is provided, returns a specific connection; otherwise, lists all connections.", + Description = "Get details of a specific private endpoint connection or list all private endpoint connections for a file share. If connection-name is provided, returns a specific connection; otherwise, lists all connections.", Destructive = false, Idempotent = true, OpenWorld = false, diff --git a/tools/Azure.Mcp.Tools.FileShares/src/Commands/Snapshot/SnapshotGetCommand.cs b/tools/Azure.Mcp.Tools.FileShares/src/Commands/Snapshot/SnapshotGetCommand.cs index 6eeefa3482..c038330240 100644 --- a/tools/Azure.Mcp.Tools.FileShares/src/Commands/Snapshot/SnapshotGetCommand.cs +++ b/tools/Azure.Mcp.Tools.FileShares/src/Commands/Snapshot/SnapshotGetCommand.cs @@ -15,7 +15,7 @@ namespace Azure.Mcp.Tools.FileShares.Commands.Snapshot; Id = "a3b4c5d6-e7f8-4a9b-0c1d-2e3f4a5b6c7d", Name = "get", Title = "Get File Share Snapshot", - Description = "Get details of a specific file share snapshot or list all snapshots. If --snapshot-name is provided, returns a specific snapshot; otherwise, lists all snapshots for the file share.", + Description = "Get details of a specific file share snapshot or list all snapshots. If snapshot-name is provided, returns a specific snapshot; otherwise, lists all snapshots for the file share.", Destructive = false, Idempotent = true, OpenWorld = false, diff --git a/tools/Azure.Mcp.Tools.FoundryExtensions/src/Commands/OpenAiChatCompletionsCreateCommand.cs b/tools/Azure.Mcp.Tools.FoundryExtensions/src/Commands/OpenAiChatCompletionsCreateCommand.cs index c133af915e..098bf5adc8 100644 --- a/tools/Azure.Mcp.Tools.FoundryExtensions/src/Commands/OpenAiChatCompletionsCreateCommand.cs +++ b/tools/Azure.Mcp.Tools.FoundryExtensions/src/Commands/OpenAiChatCompletionsCreateCommand.cs @@ -23,7 +23,6 @@ namespace Azure.Mcp.Tools.FoundryExtensions.Commands; in your Microsoft Foundry resource and receive AI-generated conversational responses. Supports multi-turn conversations with message history, system instructions, and response customization. Use this when you need to create chat completions, have AI conversations, get conversational responses, or build interactive dialogues with Azure OpenAI. - Requires resource-name, deployment-name, and message-array. """, Destructive = false, Idempotent = false, diff --git a/tools/Azure.Mcp.Tools.FoundryExtensions/src/Commands/OpenAiCompletionsCreateCommand.cs b/tools/Azure.Mcp.Tools.FoundryExtensions/src/Commands/OpenAiCompletionsCreateCommand.cs index b70c086a7a..bb26279d99 100644 --- a/tools/Azure.Mcp.Tools.FoundryExtensions/src/Commands/OpenAiCompletionsCreateCommand.cs +++ b/tools/Azure.Mcp.Tools.FoundryExtensions/src/Commands/OpenAiCompletionsCreateCommand.cs @@ -22,7 +22,6 @@ namespace Azure.Mcp.Tools.FoundryExtensions.Commands; deployed in your Microsoft Foundry resource and receive generated text answers. Use this when you need to create completions, get AI-generated content, generate answers to questions, or produce text completions from Azure OpenAI based on any input prompt. Supports customization with temperature and max tokens. - Requires resource-name, deployment-name, and prompt-text. """, Destructive = false, Idempotent = false, diff --git a/tools/Azure.Mcp.Tools.FoundryExtensions/src/Commands/OpenAiEmbeddingsCreateCommand.cs b/tools/Azure.Mcp.Tools.FoundryExtensions/src/Commands/OpenAiEmbeddingsCreateCommand.cs index c343d4b26c..4ced932137 100644 --- a/tools/Azure.Mcp.Tools.FoundryExtensions/src/Commands/OpenAiEmbeddingsCreateCommand.cs +++ b/tools/Azure.Mcp.Tools.FoundryExtensions/src/Commands/OpenAiEmbeddingsCreateCommand.cs @@ -18,10 +18,9 @@ namespace Azure.Mcp.Tools.FoundryExtensions.Commands; Name = "embeddings-create", Title = "Create OpenAI Embeddings", Description = """ - Create embeddings using Azure OpenAI in Microsoft Foundry. Generate vector embeddings from text using Azure OpenAI - deployments in your Microsoft Foundry resource for semantic search, similarity comparisons, clustering, or machine - learning. Use this when you need to create foundry embeddings, generate vectors from text, or convert text to - numerical representations using Azure OpenAI. Requires resource-name, deployment-name, and input-text. + Create/Generate vector embeddings using Azure OpenAI in Microsoft Foundry resources from text for semantic search, + similarity comparisons, clustering, or machine learning. Use this when you need to create foundry embeddings, + generate vectors from text, or convert text to numerical representations using Azure OpenAI. """, Destructive = false, Idempotent = false, diff --git a/tools/Azure.Mcp.Tools.FoundryExtensions/src/Commands/OpenAiModelsListCommand.cs b/tools/Azure.Mcp.Tools.FoundryExtensions/src/Commands/OpenAiModelsListCommand.cs index e5486893e7..04bf13ba24 100644 --- a/tools/Azure.Mcp.Tools.FoundryExtensions/src/Commands/OpenAiModelsListCommand.cs +++ b/tools/Azure.Mcp.Tools.FoundryExtensions/src/Commands/OpenAiModelsListCommand.cs @@ -20,8 +20,8 @@ namespace Azure.Mcp.Tools.FoundryExtensions.Commands; Description = """ List Azure OpenAI model deployments in a Microsoft Foundry resource, including deployment names, model names, versions, capabilities, and deployment status. Use this to show model deployments, check which OpenAI models - are deployed, or see available models in a specific Foundry resource. Requires resource-name and resource-group. - For Foundry resource-level details like endpoint URL, location, or SKU, use the resource get command instead. + are deployed, or see available models in a specific Foundry resource. For Foundry resource-level details like + endpoint URL, location, or SKU, use the resource get command instead. """, Destructive = false, Idempotent = true, diff --git a/tools/Azure.Mcp.Tools.FoundryExtensions/src/Options/FoundryExtensionsOptionDefinitions.cs b/tools/Azure.Mcp.Tools.FoundryExtensions/src/Options/FoundryExtensionsOptionDefinitions.cs index 908a64ecf8..7c134c00b8 100644 --- a/tools/Azure.Mcp.Tools.FoundryExtensions/src/Options/FoundryExtensionsOptionDefinitions.cs +++ b/tools/Azure.Mcp.Tools.FoundryExtensions/src/Options/FoundryExtensionsOptionDefinitions.cs @@ -6,28 +6,7 @@ namespace Azure.Mcp.Tools.FoundryExtensions.Options; public static class FoundryExtensionsOptionDefinitions { public const string Endpoint = "endpoint"; - public const string SearchForFreePlayground = "search-for-free-playground"; - public const string PublisherName = "publisher"; - public const string LicenseName = "license"; public const string DeploymentName = "deployment"; - public const string ModelName = "model-name"; - public const string ModelFormat = "model-format"; - public const string AzureAiServicesName = "azure-ai-services"; - public const string ModelVersion = "model-version"; - public const string ModelSource = "model-source"; - public const string SkuName = "sku"; - public const string SkuCapacity = "sku-capacity"; - public const string ScaleType = "scale-type"; - public const string ScaleCapacity = "scale-capacity"; - public const string AgentId = "agent-id"; - public const string Query = "query"; - public const string Evaluators = "evaluators"; - public const string EvaluatorName = "evaluator"; - public const string Response = "response"; - public const string ToolCalls = "tool-calls"; - public const string ToolDefinitions = "tool-definitions"; - public const string AzureOpenAIEndpoint = "azure-openai-endpoint"; - public const string AzureOpenAIDeployment = "azure-openai-deployment"; public const string IndexName = "index"; public const string PromptText = "prompt-text"; public const string MaxTokens = "max-tokens"; @@ -44,12 +23,6 @@ public static class FoundryExtensionsOptionDefinitions public const string Stop = "stop"; public const string Stream = "stream"; public const string Seed = "seed"; - public const string ModelDeploymentName = "model-deployment"; - public const string AgentName = "agent-name"; - public const string SystemInstruction = "system-instruction"; - public const string UserMessage = "user-message"; - public const string ThreadId = "thread-id"; - public const string ProgrammingLanguage = "programming-language"; public static readonly Option EndpointOption = new( $"--{Endpoint}" @@ -67,161 +40,6 @@ public static class FoundryExtensionsOptionDefinitions Required = true }; - public static readonly Option ModelNameOption = new( - $"--{ModelName}" - ) - { - Description = "The name of the model to deploy.", - Required = true - }; - - public static readonly Option ModelFormatOption = new( - $"--{ModelFormat}" - ) - { - Description = "The format of the model (e.g., 'OpenAI', 'Meta', 'Microsoft').", - Required = true - }; - - public static readonly Option AzureAiServicesNameOption = new( - $"--{AzureAiServicesName}" - ) - { - Description = "The name of the Azure AI services account to deploy to.", - Required = true - }; - - public static readonly Option SearchForFreePlaygroundOption = new( - $"--{SearchForFreePlayground}" - ) - { - Description = "If true, filters models to include only those that can be used for free by users for prototyping." - }; - - public static readonly Option PublisherNameOption = new( - $"--{PublisherName}" - ) - { - Description = "A filter to specify the publisher of the models to retrieve." - }; - - public static readonly Option LicenseNameOption = new( - $"--{LicenseName}" - ) - { - Description = "A filter to specify the license type of the models to retrieve." - }; - - public static readonly Option ModelVersionOption = new( - $"--{ModelVersion}" - ) - { - Description = "The version of the model to deploy." - }; - - public static readonly Option ModelSourceOption = new( - $"--{ModelSource}" - ) - { - Description = "The source of the model." - }; - - public static readonly Option SkuNameOption = new( - $"--{SkuName}" - ) - { - Description = "The SKU name for the deployment." - }; - - public static readonly Option SkuCapacityOption = new( - $"--{SkuCapacity}" - ) - { - Description = "The SKU capacity for the deployment." - }; - - public static readonly Option ScaleTypeOption = new( - $"--{ScaleType}" - ) - { - Description = "The scale type for the deployment." - }; - - public static readonly Option ScaleCapacityOption = new( - $"--{ScaleCapacity}" - ) - { - Description = "The scale capacity for the deployment." - }; - - public static readonly Option AgentIdOption = new( - $"--{AgentId}" - ) - { - Description = "The ID of the agent to interact with.", - Required = true - }; - - public static readonly Option QueryOption = new( - $"--{Query}" - ) - { - Description = "The query sent to the agent.", - Required = true - }; - - public static readonly Option EvaluatorsOption = new( - $"--{Evaluators}" - ) - { - Description = "The list of evaluators to use for evaluation, separated by commas. If not specified, all evaluators will be used." - }; - - public static readonly Option EvaluatorNameOption = new( - $"--{EvaluatorName}" - ) - { - Description = "The name of the evaluator to use (intent_resolution, tool_call_accuracy, task_adherence).", - Required = true - }; - - public static readonly Option ResponseOption = new( - $"--{Response}" - ) - { - Description = "The response from the agent.", - }; - - public static readonly Option ToolCallsOption = new( - $"--{ToolCalls}" - ) - { - Description = "The tool calls made by the agent." - }; - - public static readonly Option ToolDefinitionsOption = new( - $"--{ToolDefinitions}" - ) - { - Description = "Optional tool definitions made by the agent in JSON format." - }; - - public static readonly Option AzureOpenAIEndpointOption = new( - $"--{AzureOpenAIEndpoint}" - ) - { - Description = "The endpoint URL for the Azure OpenAI service to be used in evaluation.", - Required = true - }; - - public static readonly Option AzureOpenAIDeploymentOption = new( - $"--{AzureOpenAIDeployment}" - ) - { - Description = "The deployment name for the Azure OpenAI model to be used in evaluation.", - Required = true - }; - public static readonly Option IndexNameOption = new( $"--{IndexName}" ) @@ -272,7 +90,7 @@ public static class FoundryExtensionsOptionDefinitions $"--{User}" ) { - Description = "Optional user identifier for tracking and abuse monitoring." + Description = "User identifier for tracking and abuse monitoring." }; public static readonly Option EncodingFormatOption = new( @@ -339,51 +157,4 @@ public static class FoundryExtensionsOptionDefinitions { Description = "If specified, the system will make a best effort to sample deterministically." }; - - public static readonly Option ModelDeploymentNameOption = new( - $"--{ModelDeploymentName}") - { - Description = "Name of the model deployment", - Required = true - }; - - public static readonly Option AgentNameOption = new( - $"--{AgentName}" - ) - { - Description = "A human-readable name of the Agent", - Required = true - }; - - public static readonly Option SystemInstructionOption = new( - $"--{SystemInstruction}" - ) - { - Description = "System instruction for the agent to follow when process messages", - Required = true - }; - - public static readonly Option UserMessageOption = new( - $"--{UserMessage}" - ) - { - Description = "The user message to add to the thread", - Required = true - }; - - public static readonly Option ThreadIdOption = new( - $"--{ThreadId}" - ) - { - Description = "The Foundry Agent Thread Id", - Required = true - }; - - public static readonly Option ProgrammingLanguageOption = new( - $"--{ProgrammingLanguage}" - ) - { - Description = "The programming language of the sdk for interacting with a Foundry Agent. Supported values are csharp, python and typescript.", - Required = true - }; } diff --git a/tools/Azure.Mcp.Tools.FunctionApp/src/Commands/FunctionApp/FunctionAppGetCommand.cs b/tools/Azure.Mcp.Tools.FunctionApp/src/Commands/FunctionApp/FunctionAppGetCommand.cs index 3b093cd02f..861d1db40f 100644 --- a/tools/Azure.Mcp.Tools.FunctionApp/src/Commands/FunctionApp/FunctionAppGetCommand.cs +++ b/tools/Azure.Mcp.Tools.FunctionApp/src/Commands/FunctionApp/FunctionAppGetCommand.cs @@ -19,7 +19,7 @@ namespace Azure.Mcp.Tools.FunctionApp.Commands.FunctionApp; Name = "get", Title = "Get Azure Function App Details", Description = """ - Gets Azure Function App details. Lists all Function Apps in the subscription or resource group. If function app name and resource group + Gets/Lists details for all Azure Function App in the subscription or resource group. If function app name and resource group is specified, retrieves the details of that specific function app. Returns the details of Azure Function Apps, including its name, location, status, and app service plan name. """, diff --git a/tools/Azure.Mcp.Tools.Functions/src/Options/FunctionsOptionDefinitions.cs b/tools/Azure.Mcp.Tools.Functions/src/Options/FunctionsOptionDefinitions.cs index 6af826ee19..b58efb0b75 100644 --- a/tools/Azure.Mcp.Tools.Functions/src/Options/FunctionsOptionDefinitions.cs +++ b/tools/Azure.Mcp.Tools.Functions/src/Options/FunctionsOptionDefinitions.cs @@ -22,8 +22,7 @@ public static class FunctionsOptionDefinitions public static readonly Option Language = new($"--{LanguageName}") { - Description = $"Programming language for the Azure Functions project. " + - $"Valid values: {string.Join(", ", SupportedLanguages)}.", + Description = $"Programming language for the Azure Functions project. Valid values: {string.Join(", ", SupportedLanguages)}.", Required = true }; diff --git a/tools/Azure.Mcp.Tools.KeyVault/src/Commands/Certificate/CertificateCreateCommand.cs b/tools/Azure.Mcp.Tools.KeyVault/src/Commands/Certificate/CertificateCreateCommand.cs index 563cc9466c..102c12fb31 100644 --- a/tools/Azure.Mcp.Tools.KeyVault/src/Commands/Certificate/CertificateCreateCommand.cs +++ b/tools/Azure.Mcp.Tools.KeyVault/src/Commands/Certificate/CertificateCreateCommand.cs @@ -16,7 +16,7 @@ namespace Azure.Mcp.Tools.KeyVault.Commands.Certificate; Id = "a11e024a-62e6-4237-8d7d-4b9b8439f50e", Name = "create", Title = "Create Key Vault Certificate", - Description = "Create/issue/generate a new certificate in an Azure Key Vault using the default certificate policy. Required: --vault, --certificate, --subscription. Optional: --tenant . Returns: name, id, keyId, secretId, cer (base64), thumbprint, enabled, notBefore, expiresOn, createdOn, updatedOn, subject, issuerName. Creates a new certificate version if it already exists.", + Description = "Create/issue/generate a new certificate in an Azure Key Vault using the default certificate policy. Returns: name, id, keyId, secretId, cer (base64), thumbprint, enabled, notBefore, expiresOn, createdOn, updatedOn, subject, issuerName. Creates a new certificate version if it already exists.", Destructive = true, Idempotent = false, OpenWorld = false, diff --git a/tools/Azure.Mcp.Tools.KeyVault/src/Commands/Certificate/CertificateImportCommand.cs b/tools/Azure.Mcp.Tools.KeyVault/src/Commands/Certificate/CertificateImportCommand.cs index 3de3178f2a..eb22f7b92d 100644 --- a/tools/Azure.Mcp.Tools.KeyVault/src/Commands/Certificate/CertificateImportCommand.cs +++ b/tools/Azure.Mcp.Tools.KeyVault/src/Commands/Certificate/CertificateImportCommand.cs @@ -16,7 +16,7 @@ namespace Azure.Mcp.Tools.KeyVault.Commands.Certificate; Id = "4ae12e3e-dee0-4d8d-ad34-ffeaf70c642b", Name = "import", Title = "Import Key Vault Certificate", - Description = "Imports/uploads an existing certificate (PFX or PEM with private key) into an Azure Key Vault without generating a new certificate or key material. This command accepts either a file path to a PFX/PEM file, a base64 encoded PFX, or raw PEM text starting with -----BEGIN. If the certificate is a password-protected PFX, a password must be provided. Required: --vault , --certificate , --certificate-data , --subscription . Optional: --password , --tenant . Returns: name, id, keyId, secretId, cer (base64), thumbprint, enabled, notBefore, expiresOn, createdOn, updatedOn, subject, issuer. Creates a new certificate version if it already exists.", + Description = "Imports/uploads an existing certificate (PFX or PEM with private key) into an Azure Key Vault without generating a new certificate or key material. This command accepts either a file path to a PFX/PEM file, a base64 encoded PFX, or raw PEM text starting with -----BEGIN. If the certificate is a password-protected PFX, a password must be provided. Returns: name, id, keyId, secretId, cer (base64), thumbprint, enabled, notBefore, expiresOn, createdOn, updatedOn, subject, issuer. Creates a new certificate version if it already exists.", Destructive = true, Idempotent = false, OpenWorld = false, diff --git a/tools/Azure.Mcp.Tools.KeyVault/src/Commands/Key/KeyCreateCommand.cs b/tools/Azure.Mcp.Tools.KeyVault/src/Commands/Key/KeyCreateCommand.cs index 4666e7568a..a81f11478d 100644 --- a/tools/Azure.Mcp.Tools.KeyVault/src/Commands/Key/KeyCreateCommand.cs +++ b/tools/Azure.Mcp.Tools.KeyVault/src/Commands/Key/KeyCreateCommand.cs @@ -16,7 +16,7 @@ namespace Azure.Mcp.Tools.KeyVault.Commands.Key; Id = "ef27bda9-8a1f-4288-b68b-12308ab8e607", Name = "create", Title = "Create Key Vault Key", - Description = "Create a new key in an Azure Key Vault. This command creates a key with the specified name and type in the given vault. Supports types: RSA, RSA-HSM, EC, EC-HSM (RSA-HSM and EC-HSM require a premium SKU vault). Required: --vault , --key --key-type --subscription . Optional: --tenant . Returns: name, id, keyId, keyType, enabled, notBefore, expiresOn, createdOn, updatedOn. Creates a new key version if it already exists.", + Description = "Create a new key in an Azure Key Vault with the specified name and type in the given vault. Supports types: RSA, RSA-HSM, EC, EC-HSM (RSA-HSM and EC-HSM require a premium SKU vault). Returns: name, id, keyId, keyType, enabled, notBefore, expiresOn, createdOn, updatedOn. Creates a new key version if it already exists.", Destructive = true, Idempotent = false, OpenWorld = false, diff --git a/tools/Azure.Mcp.Tools.KeyVault/src/Commands/Key/KeyGetCommand.cs b/tools/Azure.Mcp.Tools.KeyVault/src/Commands/Key/KeyGetCommand.cs index e86a5d1ce8..5f2abff1a9 100644 --- a/tools/Azure.Mcp.Tools.KeyVault/src/Commands/Key/KeyGetCommand.cs +++ b/tools/Azure.Mcp.Tools.KeyVault/src/Commands/Key/KeyGetCommand.cs @@ -17,7 +17,7 @@ namespace Azure.Mcp.Tools.KeyVault.Commands.Key; Id = "c19a45a0-b963-427d-a087-35560a7f4e5b", Name = "get", Title = "Get Key Vault Key", - Description = """List all keys in your Key Vault or get a specific key by name. Shows all key names in the vault, or retrieves full key details including type, enabled status, and expiration dates. Use --include-managed to show managed keys.""", + Description = """List all keys in your Key Vault or get a specific key by name. Shows all key names in the vault, or retrieves full key details including type, enabled status, and expiration dates. Use include-managed to show managed keys.""", Destructive = false, Idempotent = true, OpenWorld = false, diff --git a/tools/Azure.Mcp.Tools.KeyVault/src/Commands/Secret/SecretCreateCommand.cs b/tools/Azure.Mcp.Tools.KeyVault/src/Commands/Secret/SecretCreateCommand.cs index ddd927b7b1..82250486b0 100644 --- a/tools/Azure.Mcp.Tools.KeyVault/src/Commands/Secret/SecretCreateCommand.cs +++ b/tools/Azure.Mcp.Tools.KeyVault/src/Commands/Secret/SecretCreateCommand.cs @@ -16,7 +16,7 @@ namespace Azure.Mcp.Tools.KeyVault.Commands.Secret; Id = "fb1322cd-05b0-4264-9e96-6a9b3d9291a0", Name = "create", Title = "Create Key Vault Secret", - Description = "Create/set a secret in an Azure Key Vault with the specified name and value. Required: --vault , --secret , --subscription . Optional: --tenant . Creates a new secret version if it already exists.", + Description = "Create/set a secret in an Azure Key Vault with the specified name and value. Creates a new secret version if it already exists.", Destructive = true, Idempotent = false, OpenWorld = false, diff --git a/tools/Azure.Mcp.Tools.Kusto/src/Commands/ClusterGetCommand.cs b/tools/Azure.Mcp.Tools.Kusto/src/Commands/ClusterGetCommand.cs index 43a8d10eef..bd39ea9365 100644 --- a/tools/Azure.Mcp.Tools.Kusto/src/Commands/ClusterGetCommand.cs +++ b/tools/Azure.Mcp.Tools.Kusto/src/Commands/ClusterGetCommand.cs @@ -17,7 +17,7 @@ namespace Azure.Mcp.Tools.Kusto.Commands; Id = "5fc5a42b-a7f6-4d4a-9517-a8e119752b7a", Name = "get", Title = "Get Kusto Cluster Details", - Description = "Get/retrieve/show details for a specific Azure Data Explorer/Kusto/KQL cluster in a subscription. Not for listing multiple clusters. Required: --cluster and --subscription.", + Description = "Get/retrieve/show details for a specific Azure Data Explorer/Kusto/KQL cluster in a subscription. Not for listing multiple clusters.", Destructive = false, Idempotent = true, OpenWorld = false, diff --git a/tools/Azure.Mcp.Tools.Kusto/src/Commands/DatabaseListCommand.cs b/tools/Azure.Mcp.Tools.Kusto/src/Commands/DatabaseListCommand.cs index 97a97e0dde..6c6ea39cfb 100644 --- a/tools/Azure.Mcp.Tools.Kusto/src/Commands/DatabaseListCommand.cs +++ b/tools/Azure.Mcp.Tools.Kusto/src/Commands/DatabaseListCommand.cs @@ -14,7 +14,7 @@ namespace Azure.Mcp.Tools.Kusto.Commands; Id = "0bd79f0b-c360-4c96-b3e0-02fce97dcc41", Name = "list", Title = "List Kusto Databases", - Description = "List/enumerate all databases in an Azure Data Explorer/Kusto/KQL cluster. Required: --cluster-uri ( or --cluster and --subscription).", + Description = "List/enumerate all databases in an Azure Data Explorer/Kusto/KQL cluster. Use either cluster-uri or cluster and subscription to specify the target cluster.", Destructive = false, Idempotent = true, OpenWorld = false, diff --git a/tools/Azure.Mcp.Tools.Kusto/src/Commands/QueryCommand.cs b/tools/Azure.Mcp.Tools.Kusto/src/Commands/QueryCommand.cs index 129efe0622..c38c165e1b 100644 --- a/tools/Azure.Mcp.Tools.Kusto/src/Commands/QueryCommand.cs +++ b/tools/Azure.Mcp.Tools.Kusto/src/Commands/QueryCommand.cs @@ -14,7 +14,7 @@ namespace Azure.Mcp.Tools.Kusto.Commands; Id = "d1e22074-53ce-4eef-8596-0ea134a9e317", Name = "query", Title = "Query Kusto Database", - Description = "Executes a query against an Azure Data Explorer/Kusto/KQL cluster to search for specific terms, retrieve records, or perform management operations. Required: --cluster-uri (or --cluster and --subscription), --database, and --query.", + Description = "Executes a query against an Azure Data Explorer/Kusto/KQL cluster to search for specific terms, retrieve records, or perform management operations. Use either cluster-uri or cluster and subscription to specify the target cluster.", Destructive = false, Idempotent = true, OpenWorld = false, diff --git a/tools/Azure.Mcp.Tools.Kusto/src/Commands/SampleCommand.cs b/tools/Azure.Mcp.Tools.Kusto/src/Commands/SampleCommand.cs index 2b4a271369..c09e81a2b9 100644 --- a/tools/Azure.Mcp.Tools.Kusto/src/Commands/SampleCommand.cs +++ b/tools/Azure.Mcp.Tools.Kusto/src/Commands/SampleCommand.cs @@ -15,7 +15,7 @@ namespace Azure.Mcp.Tools.Kusto.Commands; Id = "41daed5c-bf44-4cdf-9f3c-1df775465e53", Name = "sample", Title = "Sample Kusto Table Data", - Description = "Return a sample of rows from a specific table in an Azure Data Explorer/Kusto/KQL cluster. Required: --cluster-uri (or --cluster and --subscription), --database, and --table.", + Description = "Return a sample of rows from a specific table in an Azure Data Explorer/Kusto/KQL cluster. Use either cluster-uri or cluster and subscription to specify the target cluster.", Destructive = false, Idempotent = true, OpenWorld = false, diff --git a/tools/Azure.Mcp.Tools.Kusto/src/Commands/TableListCommand.cs b/tools/Azure.Mcp.Tools.Kusto/src/Commands/TableListCommand.cs index 44599f3b57..8b4ca4e3b1 100644 --- a/tools/Azure.Mcp.Tools.Kusto/src/Commands/TableListCommand.cs +++ b/tools/Azure.Mcp.Tools.Kusto/src/Commands/TableListCommand.cs @@ -14,7 +14,7 @@ namespace Azure.Mcp.Tools.Kusto.Commands; Id = "3cd1e5f1-3353-4029-99f8-1aaa566d05e4", Name = "list", Title = "List Kusto Tables", - Description = "List/enumerate all tables in a specific Azure Data Explorer/Kusto/KQL database. Required: --cluster-uri (or --cluster and --subscription), --database.", + Description = "List/enumerate all tables in a specific Azure Data Explorer/Kusto/KQL database. Use either cluster-uri or cluster and subscription to specify the target cluster.", Destructive = false, Idempotent = true, OpenWorld = false, diff --git a/tools/Azure.Mcp.Tools.Kusto/src/Commands/TableSchemaCommand.cs b/tools/Azure.Mcp.Tools.Kusto/src/Commands/TableSchemaCommand.cs index 5bbaa056cf..a87d96c03b 100644 --- a/tools/Azure.Mcp.Tools.Kusto/src/Commands/TableSchemaCommand.cs +++ b/tools/Azure.Mcp.Tools.Kusto/src/Commands/TableSchemaCommand.cs @@ -14,7 +14,7 @@ namespace Azure.Mcp.Tools.Kusto.Commands; Id = "9a972c48-6797-49bb-9784-8063ad1f7e96", Name = "schema", Title = "Get Kusto Table Schema", - Description = "Get/retrieve/show the schema of a specific table in an Azure Data Explorer/Kusto/KQL cluster. Required: --cluster-uri (or --cluster and --subscription), --database, and --table.", + Description = "Get/retrieve/show the schema of a specific table in an Azure Data Explorer/Kusto/KQL cluster. Use either cluster-uri or cluster and subscription to specify the target cluster.", Destructive = false, Idempotent = true, OpenWorld = false, diff --git a/tools/Azure.Mcp.Tools.Kusto/src/Options/SampleOptions.cs b/tools/Azure.Mcp.Tools.Kusto/src/Options/SampleOptions.cs index ae13075c0c..186d5910d5 100644 --- a/tools/Azure.Mcp.Tools.Kusto/src/Options/SampleOptions.cs +++ b/tools/Azure.Mcp.Tools.Kusto/src/Options/SampleOptions.cs @@ -9,7 +9,7 @@ namespace Azure.Mcp.Tools.Kusto.Options; public class SampleOptions : ISubscriptionOption, ITableOption { - [Option("The maximum number of results to return. Must be a positive integer between 1 and 10000. Default is 10.")] + [Option("The maximum number of results to return. Must be between 1 and 10000. Default is 10.")] public int? Limit { get; set; } [Option("Kusto Table name.")] diff --git a/tools/Azure.Mcp.Tools.ManagedLustre/src/Commands/FileSystem/AutoexportJob/AutoexportJobCancelCommand.cs b/tools/Azure.Mcp.Tools.ManagedLustre/src/Commands/FileSystem/AutoexportJob/AutoexportJobCancelCommand.cs index 3f004473df..bb04462a6b 100644 --- a/tools/Azure.Mcp.Tools.ManagedLustre/src/Commands/FileSystem/AutoexportJob/AutoexportJobCancelCommand.cs +++ b/tools/Azure.Mcp.Tools.ManagedLustre/src/Commands/FileSystem/AutoexportJob/AutoexportJobCancelCommand.cs @@ -18,11 +18,6 @@ namespace Azure.Mcp.Tools.ManagedLustre.Commands.FileSystem.AutoexportJob; Title = "Cancel Azure Managed Lustre Autoexport Job", Description = """ Cancels a running auto export job for an Azure Managed Lustre filesystem. This stops the ongoing sync operation from the Lustre filesystem to the linked blob storage container. Use this to terminate an autoexport job that is in progress. - Required options: - - filesystem-name: The name of the AMLFS filesystem - - job-name: The name of the autoexport job to cancel - - resource-group: The resource group containing the filesystem - - subscription: The subscription containing the filesystem """, Destructive = true, Idempotent = true, diff --git a/tools/Azure.Mcp.Tools.ManagedLustre/src/Commands/FileSystem/AutoexportJob/AutoexportJobCreateCommand.cs b/tools/Azure.Mcp.Tools.ManagedLustre/src/Commands/FileSystem/AutoexportJob/AutoexportJobCreateCommand.cs index 06a62bdbe4..b63c378f40 100644 --- a/tools/Azure.Mcp.Tools.ManagedLustre/src/Commands/FileSystem/AutoexportJob/AutoexportJobCreateCommand.cs +++ b/tools/Azure.Mcp.Tools.ManagedLustre/src/Commands/FileSystem/AutoexportJob/AutoexportJobCreateCommand.cs @@ -18,10 +18,6 @@ namespace Azure.Mcp.Tools.ManagedLustre.Commands.FileSystem.AutoexportJob; Title = "Create Azure Managed Lustre Autoexport Job", Description = """ Creates an auto export job for an Azure Managed Lustre filesystem to continuously export modified files to the linked blob storage container. The auto export job syncs changes from the Lustre filesystem to the configured HSM blob container. Use this to keep blob storage updated with changes in the filesystem. - Required options: - - filesystem-name: The name of the AMLFS filesystem - - resource-group: The resource group containing the filesystem - - subscription: The subscription containing the filesystem """, Destructive = true, Idempotent = false, diff --git a/tools/Azure.Mcp.Tools.ManagedLustre/src/Commands/FileSystem/AutoexportJob/AutoexportJobDeleteCommand.cs b/tools/Azure.Mcp.Tools.ManagedLustre/src/Commands/FileSystem/AutoexportJob/AutoexportJobDeleteCommand.cs index 954ee94ae3..ae650579de 100644 --- a/tools/Azure.Mcp.Tools.ManagedLustre/src/Commands/FileSystem/AutoexportJob/AutoexportJobDeleteCommand.cs +++ b/tools/Azure.Mcp.Tools.ManagedLustre/src/Commands/FileSystem/AutoexportJob/AutoexportJobDeleteCommand.cs @@ -18,11 +18,6 @@ namespace Azure.Mcp.Tools.ManagedLustre.Commands.FileSystem.AutoexportJob; Title = "Delete Azure Managed Lustre Autoexport Job", Description = """ Deletes an auto export job for an Azure Managed Lustre filesystem. This permanently removes the job record from the filesystem. Use this to clean up completed, failed, or cancelled autoexport jobs. - Required options: - - filesystem-name: The name of the AMLFS filesystem - - job-name: The name of the autoexport job to delete - - resource-group: The resource group containing the filesystem - - subscription: The subscription containing the filesystem """, Destructive = true, Idempotent = true, diff --git a/tools/Azure.Mcp.Tools.ManagedLustre/src/Commands/FileSystem/AutoexportJob/AutoexportJobGetCommand.cs b/tools/Azure.Mcp.Tools.ManagedLustre/src/Commands/FileSystem/AutoexportJob/AutoexportJobGetCommand.cs index c72c0f5939..d0b3e8bfad 100644 --- a/tools/Azure.Mcp.Tools.ManagedLustre/src/Commands/FileSystem/AutoexportJob/AutoexportJobGetCommand.cs +++ b/tools/Azure.Mcp.Tools.ManagedLustre/src/Commands/FileSystem/AutoexportJob/AutoexportJobGetCommand.cs @@ -18,12 +18,6 @@ namespace Azure.Mcp.Tools.ManagedLustre.Commands.FileSystem.AutoexportJob; Title = "Get Azure Managed Lustre Autoexport Job", Description = """ Gets the details of auto export jobs for an Azure Managed Lustre filesystem. Use this to retrieve the status, configuration, and progress information of autoexport operations that sync data from the Lustre filesystem to the linked blob storage container. If job-name is provided, returns details of a specific job; otherwise returns all jobs for the filesystem. - Required options: - - filesystem-name: The name of the AMLFS filesystem - - resource-group: The resource group containing the filesystem - - subscription: The subscription containing the filesystem - Optional options: - - job-name: The name of a specific autoexport job (if omitted, all jobs are returned) """, Destructive = false, Idempotent = true, diff --git a/tools/Azure.Mcp.Tools.ManagedLustre/src/Commands/FileSystem/AutoimportJob/AutoimportJobCancelCommand.cs b/tools/Azure.Mcp.Tools.ManagedLustre/src/Commands/FileSystem/AutoimportJob/AutoimportJobCancelCommand.cs index 5503dc1839..1fcf8792f8 100644 --- a/tools/Azure.Mcp.Tools.ManagedLustre/src/Commands/FileSystem/AutoimportJob/AutoimportJobCancelCommand.cs +++ b/tools/Azure.Mcp.Tools.ManagedLustre/src/Commands/FileSystem/AutoimportJob/AutoimportJobCancelCommand.cs @@ -18,11 +18,6 @@ namespace Azure.Mcp.Tools.ManagedLustre.Commands.FileSystem.AutoimportJob; Title = "Cancel Azure Managed Lustre Autoimport Job", Description = """ Cancels a running auto import job for an Azure Managed Lustre filesystem. This stops the ongoing sync operation from the linked blob storage container to the Lustre filesystem. Use this to terminate an autoimport job that is in progress. - Required options: - - filesystem-name: The name of the AMLFS filesystem - - job-name: The name of the autoimport job to cancel - - resource-group: The resource group containing the filesystem - - subscription: The subscription containing the filesystem """, Destructive = true, Idempotent = true, diff --git a/tools/Azure.Mcp.Tools.ManagedLustre/src/Commands/FileSystem/AutoimportJob/AutoimportJobCreateCommand.cs b/tools/Azure.Mcp.Tools.ManagedLustre/src/Commands/FileSystem/AutoimportJob/AutoimportJobCreateCommand.cs index 725d617396..30ae23af9c 100644 --- a/tools/Azure.Mcp.Tools.ManagedLustre/src/Commands/FileSystem/AutoimportJob/AutoimportJobCreateCommand.cs +++ b/tools/Azure.Mcp.Tools.ManagedLustre/src/Commands/FileSystem/AutoimportJob/AutoimportJobCreateCommand.cs @@ -18,17 +18,6 @@ namespace Azure.Mcp.Tools.ManagedLustre.Commands.FileSystem.AutoimportJob; Title = "Create Azure Managed Lustre Autoimport Job", Description = """ Creates an auto import job for an Azure Managed Lustre filesystem to continuously import new or modified files from the linked blob storage container. The auto import job syncs changes from the configured HSM blob container to the Lustre filesystem. Use this to keep the filesystem updated with changes in blob storage. - Required options: - - filesystem-name: The name of the AMLFS filesystem - - resource-group: The resource group containing the filesystem - - subscription: The subscription containing the filesystem - Optional parameters: - - job-name: Custom name for the job (default: autoimport-{timestamp}) - - conflict-resolution-mode: How to handle conflicts (Fail/Skip/OverwriteIfDirty/OverwriteAlways, default: Skip) - - autoimport-prefixes: Array of blob paths/prefixes to auto import (default: '/', max: 100) - - admin-status: Administrative status (Enable/Disable, default: Enable) - - enable-deletions: Enable deletions during auto import (default: false) - - maximum-errors: Max errors before failure (-1: infinite, 0: immediate exit, default: none) """, Destructive = true, Idempotent = false, diff --git a/tools/Azure.Mcp.Tools.ManagedLustre/src/Commands/FileSystem/AutoimportJob/AutoimportJobDeleteCommand.cs b/tools/Azure.Mcp.Tools.ManagedLustre/src/Commands/FileSystem/AutoimportJob/AutoimportJobDeleteCommand.cs index 9982424768..048a36e22f 100644 --- a/tools/Azure.Mcp.Tools.ManagedLustre/src/Commands/FileSystem/AutoimportJob/AutoimportJobDeleteCommand.cs +++ b/tools/Azure.Mcp.Tools.ManagedLustre/src/Commands/FileSystem/AutoimportJob/AutoimportJobDeleteCommand.cs @@ -18,11 +18,6 @@ namespace Azure.Mcp.Tools.ManagedLustre.Commands.FileSystem.AutoimportJob; Title = "Delete Azure Managed Lustre Autoimport Job", Description = """ Deletes an auto import job for an Azure Managed Lustre filesystem. This permanently removes the job record from the filesystem. Use this to clean up completed, failed, or cancelled autoimport jobs. - Required options: - - filesystem-name: The name of the AMLFS filesystem - - job-name: The name of the autoimport job to delete - - resource-group: The resource group containing the filesystem - - subscription: The subscription containing the filesystem """, Destructive = true, Idempotent = true, diff --git a/tools/Azure.Mcp.Tools.ManagedLustre/src/Commands/FileSystem/AutoimportJob/AutoimportJobGetCommand.cs b/tools/Azure.Mcp.Tools.ManagedLustre/src/Commands/FileSystem/AutoimportJob/AutoimportJobGetCommand.cs index 626b9e0460..b55d99514c 100644 --- a/tools/Azure.Mcp.Tools.ManagedLustre/src/Commands/FileSystem/AutoimportJob/AutoimportJobGetCommand.cs +++ b/tools/Azure.Mcp.Tools.ManagedLustre/src/Commands/FileSystem/AutoimportJob/AutoimportJobGetCommand.cs @@ -18,12 +18,6 @@ namespace Azure.Mcp.Tools.ManagedLustre.Commands.FileSystem.AutoimportJob; Title = "Get Azure Managed Lustre Autoimport Job", Description = """ Gets the details of auto import jobs for an Azure Managed Lustre filesystem. Use this to retrieve the status, configuration, and progress information of autoimport operations that sync data from the linked blob storage container to the Lustre filesystem. If job-name is provided, returns details of a specific job; otherwise returns all jobs for the filesystem. - Required options: - - filesystem-name: The name of the AMLFS filesystem - - resource-group: The resource group containing the filesystem - - subscription: The subscription containing the filesystem - Optional options: - - job-name: The name of a specific autoimport job (if omitted, all jobs are returned) """, Destructive = false, Idempotent = true, diff --git a/tools/Azure.Mcp.Tools.ManagedLustre/src/Commands/FileSystem/ImportJob/ImportJobCancelCommand.cs b/tools/Azure.Mcp.Tools.ManagedLustre/src/Commands/FileSystem/ImportJob/ImportJobCancelCommand.cs index e63216ebce..16fa6960af 100644 --- a/tools/Azure.Mcp.Tools.ManagedLustre/src/Commands/FileSystem/ImportJob/ImportJobCancelCommand.cs +++ b/tools/Azure.Mcp.Tools.ManagedLustre/src/Commands/FileSystem/ImportJob/ImportJobCancelCommand.cs @@ -18,9 +18,6 @@ namespace Azure.Mcp.Tools.ManagedLustre.Commands.FileSystem.ImportJob; Title = "Cancel Azure Managed Lustre Import Job", Description = """ Cancels a running import job for an Azure Managed Lustre filesystem. This stops the import operation and prevents further processing. The job cannot be resumed after cancellation. - Required options: - - filesystem-name: The name of the AMLFS filesystem - - job-name: Name of the import job to cancel """, Destructive = true, Idempotent = true, diff --git a/tools/Azure.Mcp.Tools.ManagedLustre/src/Commands/FileSystem/ImportJob/ImportJobCreateCommand.cs b/tools/Azure.Mcp.Tools.ManagedLustre/src/Commands/FileSystem/ImportJob/ImportJobCreateCommand.cs index 552e6917c7..3c0b16deac 100644 --- a/tools/Azure.Mcp.Tools.ManagedLustre/src/Commands/FileSystem/ImportJob/ImportJobCreateCommand.cs +++ b/tools/Azure.Mcp.Tools.ManagedLustre/src/Commands/FileSystem/ImportJob/ImportJobCreateCommand.cs @@ -18,13 +18,6 @@ namespace Azure.Mcp.Tools.ManagedLustre.Commands.FileSystem.ImportJob; Title = "Create Azure Managed Lustre Import Job", Description = """ Creates a one-time import job for an Azure Managed Lustre filesystem to import files from the linked blob storage container. The import job performs a one-time sync of data from the configured HSM blob container to the Lustre filesystem. Use this to import specific prefixes or all data from blob storage into the filesystem at a point in time. - Required options: - - filesystem-name: The name of the AMLFS filesystem - Optional options: - - job-name: Name for the import job (auto-generated if not provided) - - conflict-resolution-mode: How to handle conflicting files (Fail, Skip, OverwriteIfDirty, OverwriteAlways, default: Fail) - - import-prefixes: Blob prefixes to import (default: imports all data from root '/') - - maximum-errors: Maximum errors allowed before job failure (-1: infinite, 0: fail on first error, default: use service default) """, Destructive = true, Idempotent = false, diff --git a/tools/Azure.Mcp.Tools.ManagedLustre/src/Commands/FileSystem/ImportJob/ImportJobDeleteCommand.cs b/tools/Azure.Mcp.Tools.ManagedLustre/src/Commands/FileSystem/ImportJob/ImportJobDeleteCommand.cs index 9ec358f6a0..1c83099fad 100644 --- a/tools/Azure.Mcp.Tools.ManagedLustre/src/Commands/FileSystem/ImportJob/ImportJobDeleteCommand.cs +++ b/tools/Azure.Mcp.Tools.ManagedLustre/src/Commands/FileSystem/ImportJob/ImportJobDeleteCommand.cs @@ -18,9 +18,6 @@ namespace Azure.Mcp.Tools.ManagedLustre.Commands.FileSystem.ImportJob; Title = "Delete Azure Managed Lustre Import Job", Description = """ Deletes an import job for an Azure Managed Lustre filesystem. This removes the job record and history. The job must be completed or cancelled before it can be deleted. - Required options: - - filesystem-name: The name of the AMLFS filesystem - - job-name: Name of the import job to delete """, Destructive = true, Idempotent = true, diff --git a/tools/Azure.Mcp.Tools.ManagedLustre/src/Commands/FileSystem/ImportJob/ImportJobGetCommand.cs b/tools/Azure.Mcp.Tools.ManagedLustre/src/Commands/FileSystem/ImportJob/ImportJobGetCommand.cs index 744704748a..446c301de5 100644 --- a/tools/Azure.Mcp.Tools.ManagedLustre/src/Commands/FileSystem/ImportJob/ImportJobGetCommand.cs +++ b/tools/Azure.Mcp.Tools.ManagedLustre/src/Commands/FileSystem/ImportJob/ImportJobGetCommand.cs @@ -18,10 +18,6 @@ namespace Azure.Mcp.Tools.ManagedLustre.Commands.FileSystem.ImportJob; Title = "Get Azure Managed Lustre Import Job", Description = """ Gets import job details or lists all import jobs for an Azure Managed Lustre filesystem. If job-name is provided, returns details for that specific job. If job-name is omitted, returns a list of all import jobs for the filesystem. - Required options: - - filesystem-name: The name of the AMLFS filesystem - Optional options: - - job-name: Name of specific import job to get (omit to list all jobs) """, Destructive = false, Idempotent = true, diff --git a/tools/Azure.Mcp.Tools.ManagedLustre/src/Options/ManagedLustreOptionDefinitions.cs b/tools/Azure.Mcp.Tools.ManagedLustre/src/Options/ManagedLustreOptionDefinitions.cs index 85f65917e2..0fb741d36f 100644 --- a/tools/Azure.Mcp.Tools.ManagedLustre/src/Options/ManagedLustreOptionDefinitions.cs +++ b/tools/Azure.Mcp.Tools.ManagedLustre/src/Options/ManagedLustreOptionDefinitions.cs @@ -68,7 +68,7 @@ public static class ManagedLustreOptionDefinitions ) { Required = true, - Description = "The AMLFS resource name. Must be DNS-friendly (letters, numbers, hyphens). Example: --name amlfs-001" + Description = "The AMLFS resource name. Must be DNS-friendly (letters, numbers, hyphens)." }; public static readonly Option SubnetIdOption = new( @@ -76,8 +76,7 @@ public static class ManagedLustreOptionDefinitions ) { Required = true, - Description = "Full subnet resource ID. Required format: /subscriptions/{sub}/resourceGroups/{rg}/providers/Microsoft.Network/virtualNetworks/{vnet}/subnets/{subnet}.\n" + - "Example: --subnet-id /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/my-rg/providers/Microsoft.Network/virtualNetworks/vnet-001/subnets/subnet-001" + Description = "Full subnet resource ID in the format /subscriptions/{sub}/resourceGroups/{rg}/providers/Microsoft.Network/virtualNetworks/{vnet}/subnets/{subnet}." }; public static readonly Option ZoneOption = new( @@ -85,8 +84,7 @@ public static class ManagedLustreOptionDefinitions ) { Required = true, - Description = "Availability zone identifier. Use a single digit string matching the region's AZ labels (e.g. '1').\n" + - "Example: --zone 1" + Description = "Availability zone identifier. Use a single digit string matching the region's AZ labels (e.g. '1')." }; public static readonly Option HsmContainerOption = new( @@ -95,8 +93,7 @@ public static class ManagedLustreOptionDefinitions { Required = false, Description = "Full blob container resource ID for HSM integration. HPC Cache Resource Provider must have before deployment Storage Blob Data Contributor and Storage Account Contributor roles on parent Storage Account." + - "Format: /subscriptions/{sub}/resourceGroups/{rg}/providers/Microsoft.Storage/storageAccounts/{account}/blobServices/default/containers/{container}.\n" + - "Example: --hsm-container /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg/providers/Microsoft.Storage/storageAccounts/stacc/blobServices/default/containers/hsm-container\n" + "In format /subscriptions/{sub}/resourceGroups/{rg}/providers/Microsoft.Storage/storageAccounts/{account}/blobServices/default/containers/{container}." }; public static readonly Option HsmLogContainerOption = new( @@ -104,8 +101,7 @@ public static class ManagedLustreOptionDefinitions ) { Required = false, - Description = "Full blob container resource ID for HSM logging. HPC Cache Resource Provider must have before deployment Storage Blob Data Contributor and Storage Account Contributor roles on parent Storage Account. Same format as --hsm-container.\n" + - "Example: --hsm-log-container /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg/providers/Microsoft.Storage/storageAccounts/stacc/blobServices/default/containers/hsm-logs\n" + Description = "Full blob container resource ID for HSM logging. HPC Cache Resource Provider must have before deployment Storage Blob Data Contributor and Storage Account Contributor roles on parent Storage Account. Same format as --hsm-container." }; public static readonly Option ImportPrefixOption = new( @@ -113,7 +109,7 @@ public static class ManagedLustreOptionDefinitions ) { Required = false, - Description = "Optional HSM import prefix (path prefix inside the container starting with /). Examples: '/ingest/', '/archive/2019/'.\n" + Description = "Optional HSM import prefix (path prefix inside the container starting with /)." }; public static readonly Option MaintenanceDayOption = new( @@ -121,7 +117,7 @@ public static class ManagedLustreOptionDefinitions ) { Required = true, - Description = "Preferred maintenance day. Allowed values: Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday.\n" + Description = "Preferred maintenance day. Allowed values: Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday." }; public static readonly Option MaintenanceTimeOption = new( @@ -129,7 +125,7 @@ public static class ManagedLustreOptionDefinitions ) { Required = true, - Description = "Preferred maintenance time in UTC. Format: HH:MM (24-hour). Examples: 00:00, 23:00.\n" + Description = "Preferred maintenance time in UTC. Format: HH:MM (24-hour)." }; public static readonly Option RootSquashModeOption = new( @@ -137,7 +133,7 @@ public static class ManagedLustreOptionDefinitions ) { Required = false, - Description = "Root squash mode. Allowed values: All, RootOnly, None.\n" + Description = "Root squash mode. Allowed values: All, RootOnly, None." }; public static readonly Option NoSquashNidListsOption = new( @@ -145,7 +141,7 @@ public static class ManagedLustreOptionDefinitions ) { Required = false, - Description = "Comma-separated list of NIDs (network identifiers) not to squash. Example: '10.0.2.4@tcp;10.0.2.[6-8]@tcp'.\n" + Description = "Comma-separated list of NIDs (network identifiers) not to squash. Example: '10.0.2.4@tcp;10.0.2.[6-8]@tcp'." }; public static readonly Option SquashUidOption = new( @@ -153,7 +149,7 @@ public static class ManagedLustreOptionDefinitions ) { Required = false, - Description = "Numeric UID to squash root to. Required in case root squash mode is not None. Example: --squash-uid 1000.\n" + Description = "Numeric UID to squash root to. Required in case root squash mode is not None." }; public static readonly Option SquashGidOption = new( @@ -161,7 +157,7 @@ public static class ManagedLustreOptionDefinitions ) { Required = false, - Description = "Numeric GID to squash root to. Required in case root squash mode is not None. Example: --squash-gid 1000.\n" + Description = "Numeric GID to squash root to. Required in case root squash mode is not None." }; public static readonly Option CustomEncryptionOption = new( @@ -169,7 +165,7 @@ public static class ManagedLustreOptionDefinitions ) { Required = false, - Description = "Enable customer-managed encryption using a Key Vault key. When true, --key-url and --source-vault required, with a user-assigned identity already configured for Key Vault key access." + Description = "Enable customer-managed encryption using a Key Vault key. When true, key-url and source-vault required, with a user-assigned identity already configured for Key Vault key access." }; public static readonly Option KeyUrlOption = new( @@ -177,8 +173,7 @@ public static class ManagedLustreOptionDefinitions ) { Required = false, - Description = "Full Key Vault key URL. Format: https://{vaultName}.vault.azure.net/keys/{keyName}/{keyVersion}.\n" + - "Example: --key-url https://kv-amlfs-001.vault.azure.net/keys/key-amlfs-001/a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p\n" + Description = "Full Key Vault key URL in format: https://{vaultName}.vault.azure.net/keys/{keyName}/{keyVersion}." }; public static readonly Option SourceVaultOption = new( @@ -186,8 +181,7 @@ public static class ManagedLustreOptionDefinitions ) { Required = false, - Description = "Full Key Vault resource ID. Format: /subscriptions/{sub}/resourceGroups/{rg}/providers/Microsoft.KeyVault/vaults/{vaultName}.\n" + - "Example: --source-vault /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg/providers/Microsoft.KeyVault/vaults/kv-amlfs-001\n" + Description = "Full Key Vault resource ID in format /subscriptions/{sub}/resourceGroups/{rg}/providers/Microsoft.KeyVault/vaults/{vaultName}." }; public static readonly Option UserAssignedIdentityIdOption = new( @@ -195,9 +189,8 @@ public static class ManagedLustreOptionDefinitions ) { Required = false, - Description = "User-assigned managed identity resource ID (full resource ID) to use for Key Vault access when custom encryption is enabled. The identity must have RBAC role to access the encryption key\n" + - "Format: /subscriptions/{sub}/resourceGroups/{rg}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{name}.\n" + - "Example: --user-assigned-identity-id /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/identity1\n" + Description = "User-assigned managed identity resource ID (full resource ID) to use for Key Vault access when custom encryption is enabled. The identity must have RBAC role to access the encryption key in " + + "format /subscriptions/{sub}/resourceGroups/{rg}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{name}." }; public static readonly Option FileSystemNameOption = new( diff --git a/tools/Azure.Mcp.Tools.Monitor/src/Commands/ActivityLog/ActivityLogListCommand.cs b/tools/Azure.Mcp.Tools.Monitor/src/Commands/ActivityLog/ActivityLogListCommand.cs index a367b8d0d6..7b08ce2bc4 100644 --- a/tools/Azure.Mcp.Tools.Monitor/src/Commands/ActivityLog/ActivityLogListCommand.cs +++ b/tools/Azure.Mcp.Tools.Monitor/src/Commands/ActivityLog/ActivityLogListCommand.cs @@ -22,7 +22,7 @@ namespace Azure.Mcp.Tools.Monitor.Commands.ActivityLog; Always use this tool if user is asking for activity logs for a resource. Lists activity logs for the specified Azure resource over the given prior number of hours. This command retrieves activity logs to help understand resource deployment history, modification activities, and access patterns. - Returns activity log events with details including timestamp, operation name, status, and caller information. should be called to help retrieve information about why a resource failed to deploy or may not be working. + Returns activity log events with details including timestamp, operation name, status, and caller information. Should be called to help retrieve information about why a resource failed to deploy or may not be working. """, Destructive = false, Idempotent = true, diff --git a/tools/Azure.Mcp.Tools.Monitor/src/Commands/HealthModels/Entity/EntityGetHealthCommand.cs b/tools/Azure.Mcp.Tools.Monitor/src/Commands/HealthModels/Entity/EntityGetHealthCommand.cs index 4c1cd387db..cbefe7c670 100644 --- a/tools/Azure.Mcp.Tools.Monitor/src/Commands/HealthModels/Entity/EntityGetHealthCommand.cs +++ b/tools/Azure.Mcp.Tools.Monitor/src/Commands/HealthModels/Entity/EntityGetHealthCommand.cs @@ -19,9 +19,6 @@ namespace Azure.Mcp.Tools.Monitor.Commands.HealthModels.Entity; For basic Azure resource availability status, use Resource Health tool instead `azmcp_resourcehealth_availability-status_get`. For querying logs from a Log Analystics workspace, use `azmcp_monitor_workspace_log_query`. For querying logs of a specific Azure resource, use `azmcp_monitor_resource_log_query`. - Required arguments: - - --entity: The entity to get health for - - --health-model: The health model name """, Destructive = false, Idempotent = true, diff --git a/tools/Azure.Mcp.Tools.Monitor/src/Commands/Log/ResourceLogQueryCommand.cs b/tools/Azure.Mcp.Tools.Monitor/src/Commands/Log/ResourceLogQueryCommand.cs index 669bb78761..eeff622ff6 100644 --- a/tools/Azure.Mcp.Tools.Monitor/src/Commands/Log/ResourceLogQueryCommand.cs +++ b/tools/Azure.Mcp.Tools.Monitor/src/Commands/Log/ResourceLogQueryCommand.cs @@ -22,9 +22,6 @@ This tool filters logs to only show data from the specified resource. When to use: User asks for logs from a specific resource by name or ID. When NOT to use: User asks for general workspace-wide logs without mentioning a specific resource. - - Required arguments: resource ID or resource name, table name, KQL query - Optional: hours, limit """, Destructive = false, Idempotent = true, diff --git a/tools/Azure.Mcp.Tools.Monitor/src/Commands/Log/WorkspaceLogQueryCommand.cs b/tools/Azure.Mcp.Tools.Monitor/src/Commands/Log/WorkspaceLogQueryCommand.cs index 85de01e919..97eb00f928 100644 --- a/tools/Azure.Mcp.Tools.Monitor/src/Commands/Log/WorkspaceLogQueryCommand.cs +++ b/tools/Azure.Mcp.Tools.Monitor/src/Commands/Log/WorkspaceLogQueryCommand.cs @@ -21,9 +21,7 @@ This tool queries across all resources and tables in the workspace. When to use: User asks for workspace-wide logs, all resources, or doesn't mention a specific resource. When NOT to use: User mentions a specific resource name or Resource ID - use resource log query instead. - - Requires workspace and resource group. - Optional: hours and limit. + query accepts KQL syntax. """, Destructive = false, diff --git a/tools/Azure.Mcp.Tools.Monitor/src/Commands/Table/TableListCommand.cs b/tools/Azure.Mcp.Tools.Monitor/src/Commands/Table/TableListCommand.cs index 2d3e55de3b..768cefb15e 100644 --- a/tools/Azure.Mcp.Tools.Monitor/src/Commands/Table/TableListCommand.cs +++ b/tools/Azure.Mcp.Tools.Monitor/src/Commands/Table/TableListCommand.cs @@ -15,7 +15,7 @@ namespace Azure.Mcp.Tools.Monitor.Commands.Table; Name = "list", Title = "List Log Analytics Tables", Description = """ - List all tables in a Log Analytics workspace. Requires workspace. + List all tables in a Log Analytics workspace. Returns table names and schemas that can be used for constructing KQL queries. """, Destructive = false, diff --git a/tools/Azure.Mcp.Tools.Monitor/src/Commands/WebTests/WebTestsGetCommand.cs b/tools/Azure.Mcp.Tools.Monitor/src/Commands/WebTests/WebTestsGetCommand.cs index 86ebd4a548..ebb01d535f 100644 --- a/tools/Azure.Mcp.Tools.Monitor/src/Commands/WebTests/WebTestsGetCommand.cs +++ b/tools/Azure.Mcp.Tools.Monitor/src/Commands/WebTests/WebTestsGetCommand.cs @@ -19,9 +19,8 @@ namespace Azure.Mcp.Tools.Monitor.Commands.WebTests; Name = "get", Title = "Get or list web tests", Description = """ - Gets details for a specific web test or lists all web tests. - When --webtest-resource is provided, returns detailed information about a single web test. - When --webtest-resource is omitted, returns a list of all web tests in the subscription (optionally filtered by resource group). + Gets details about web tests. When a specific web test is provided, returns detailed information about a single web test. + Otherwise, returns a list of all web tests in the subscription optionally filtered by resource group. """, Destructive = false, Idempotent = true, diff --git a/tools/Azure.Mcp.Tools.Monitor/src/Commands/Workspace/WorkspaceListCommand.cs b/tools/Azure.Mcp.Tools.Monitor/src/Commands/Workspace/WorkspaceListCommand.cs index a0dd7a62d8..487609cad7 100644 --- a/tools/Azure.Mcp.Tools.Monitor/src/Commands/Workspace/WorkspaceListCommand.cs +++ b/tools/Azure.Mcp.Tools.Monitor/src/Commands/Workspace/WorkspaceListCommand.cs @@ -18,8 +18,7 @@ namespace Azure.Mcp.Tools.Monitor.Commands.Workspace; Name = "list", Title = "List Log Analytics Workspaces", Description = """ - List Log Analytics workspaces in a subscription. This command retrieves all Log Analytics workspaces - available in the specified Azure subscription, displaying their names, IDs, and other key properties. + List all Log Analytics workspaces workspaces in an Azure subscription, displaying their names, IDs, and other key properties. Use this command to identify workspaces before querying their logs or tables. """, Destructive = false, diff --git a/tools/Azure.Mcp.Tools.Monitor/src/Options/MonitorOptionDefinitions.cs b/tools/Azure.Mcp.Tools.Monitor/src/Options/MonitorOptionDefinitions.cs index 99e2a596de..1a97680dde 100644 --- a/tools/Azure.Mcp.Tools.Monitor/src/Options/MonitorOptionDefinitions.cs +++ b/tools/Azure.Mcp.Tools.Monitor/src/Options/MonitorOptionDefinitions.cs @@ -29,7 +29,7 @@ public static class MonitorOptionDefinitions $"--{TableNameName}" ) { - Description = "The name of the table to query. This is the specific table within the workspace.", + Description = "The name of the table to query within the workspace.", Required = true }; diff --git a/tools/Azure.Mcp.Tools.MySql/src/Commands/MySqlListCommand.cs b/tools/Azure.Mcp.Tools.MySql/src/Commands/MySqlListCommand.cs index e7b9dc98ff..c4aa558724 100644 --- a/tools/Azure.Mcp.Tools.MySql/src/Commands/MySqlListCommand.cs +++ b/tools/Azure.Mcp.Tools.MySql/src/Commands/MySqlListCommand.cs @@ -14,7 +14,7 @@ namespace Azure.Mcp.Tools.MySql.Commands; Id = "77e60b50-5c16-4879-96b1-6a40d9c08a37", Name = "list", Title = "List MySQL Resources", - Description = "List MySQL servers, databases, or tables in your subscription. Returns all servers by default. Specify --server to list databases on that server, or --server and --database to list tables in a specific database.", + Description = "List MySQL servers, databases, or tables in your subscription. Specify server to list databases on that server, or server and database to list tables in a specific database.", Destructive = false, Idempotent = true, OpenWorld = false, diff --git a/tools/Azure.Mcp.Tools.Policy/src/Commands/Assignment/PolicyAssignmentListCommand.cs b/tools/Azure.Mcp.Tools.Policy/src/Commands/Assignment/PolicyAssignmentListCommand.cs index 2a70b9112e..69143f31f7 100644 --- a/tools/Azure.Mcp.Tools.Policy/src/Commands/Assignment/PolicyAssignmentListCommand.cs +++ b/tools/Azure.Mcp.Tools.Policy/src/Commands/Assignment/PolicyAssignmentListCommand.cs @@ -19,11 +19,10 @@ namespace Azure.Mcp.Tools.Policy.Commands.Assignment; Name = "list", Title = "List Policy Assignments", Description = """ - List policy assignments in a subscription or scope. This command retrieves all Azure Policy - assignments along with their complete policy definition details (rules, effects, parameters schema), - enforcement modes, assignment parameters, and metadata. This enables agents to understand policy - requirements and design compliant cloud services. You can optionally filter by scope to list - assignments at a specific resource group, resource, or management group level. + List all Azure Policy assignments in a subscription or scope with their complete policy definition details (rules, effects, parameters schema), + enforcement modes, assignment parameters, and metadata. This enables agents to understand policy requirements + and design compliant cloud services. You can optionally filter by scope to list assignments at a specific + resource group, resource, or management group level. """, Destructive = false, Idempotent = true, diff --git a/tools/Azure.Mcp.Tools.Postgres/src/Commands/PostgresListCommand.cs b/tools/Azure.Mcp.Tools.Postgres/src/Commands/PostgresListCommand.cs index ec6306aa47..d1b1c8243a 100644 --- a/tools/Azure.Mcp.Tools.Postgres/src/Commands/PostgresListCommand.cs +++ b/tools/Azure.Mcp.Tools.Postgres/src/Commands/PostgresListCommand.cs @@ -15,7 +15,7 @@ namespace Azure.Mcp.Tools.Postgres.Commands; Id = "8a12c3f4-2e5d-4b3a-9f2c-5e6d7f8a9b0c", Name = "list", Title = "List PostgreSQL Resources", - Description = "List PostgreSQL servers, databases, or tables. Returns all servers in the subscription by default (optionally scoped to a --resource-group). Specify --server to list databases on that server, or --server and --database to list tables in a specific database. --user is required when --server is provided.", + Description = "List PostgreSQL servers, databases, or tables. Returns all servers in the subscription by default, optionally scoped to a resource group. Specify server to list databases on that server, or server and database to list tables in a specific database. user is required when server is provided.", Destructive = false, Idempotent = true, OpenWorld = false, diff --git a/tools/Azure.Mcp.Tools.Postgres/src/Options/PostgresOptionDefinitions.cs b/tools/Azure.Mcp.Tools.Postgres/src/Options/PostgresOptionDefinitions.cs index 7588499067..67fd74fa03 100644 --- a/tools/Azure.Mcp.Tools.Postgres/src/Options/PostgresOptionDefinitions.cs +++ b/tools/Azure.Mcp.Tools.Postgres/src/Options/PostgresOptionDefinitions.cs @@ -37,7 +37,7 @@ public static class PostgresOptionDefinitions $"--{PasswordText}" ) { - Description = $"The user password to access PostgreSQL server, Only required if '{AuthTypeText}' is set to '{AuthTypes.PostgreSQL}' authentication, not needed for '{AuthTypes.MicrosoftEntra}' authentication.", + Description = $"The user password to access PostgreSQL server. Required if '{AuthTypeText}' is set to '{AuthTypes.PostgreSQL}' authentication, not needed for '{AuthTypes.MicrosoftEntra}' authentication.", Arity = ArgumentArity.ZeroOrOne, Required = false }; @@ -69,7 +69,7 @@ public static class PostgresOptionDefinitions $"--{DatabaseName}" ) { - Description = "The PostgreSQL database to list tables from (optional, requires --server)." + Description = "The PostgreSQL database to list tables from (optional, requires server)." }; public static readonly Option Table = new( diff --git a/tools/Azure.Mcp.Tools.Redis/src/Commands/ResourceCreateCommand.cs b/tools/Azure.Mcp.Tools.Redis/src/Commands/ResourceCreateCommand.cs index 97dab90665..9ee98fd561 100644 --- a/tools/Azure.Mcp.Tools.Redis/src/Commands/ResourceCreateCommand.cs +++ b/tools/Azure.Mcp.Tools.Redis/src/Commands/ResourceCreateCommand.cs @@ -20,7 +20,7 @@ namespace Azure.Mcp.Tools.Redis.Commands; Id = "750133dd-d57f-4ed4-9488-c1d406ad4a83", Name = "create", Title = "Create Redis Resource", - Description = "Create a new Azure Managed Redis resource in Azure. Use this command to provision a new Redis resource in your subscription.", + Description = "Create a new Azure Managed Redis resource in your Azure subscription.", Destructive = true, Idempotent = false, OpenWorld = false, diff --git a/tools/Azure.Mcp.Tools.Redis/src/Commands/ResourceListCommand.cs b/tools/Azure.Mcp.Tools.Redis/src/Commands/ResourceListCommand.cs index 9ff17a086c..0ebf451505 100644 --- a/tools/Azure.Mcp.Tools.Redis/src/Commands/ResourceListCommand.cs +++ b/tools/Azure.Mcp.Tools.Redis/src/Commands/ResourceListCommand.cs @@ -18,7 +18,7 @@ namespace Azure.Mcp.Tools.Redis.Commands; Id = "eded7479-4187-4742-957f-d7778e03a69d", Name = "list", Title = "List Redis Resources", - Description = "List/show all Redis resources in a subscription. Returns details of all Azure Managed Redis, Azure Cache for Redis, and Azure Redis Enterprise resources. Use this command to explore and view which Redis resources are available in your subscription.", + Description = "List/show details of all Azure Managed Redis, Azure Cache for Redis, and Azure Redis Enterprise resources in a subscription.", Destructive = false, Idempotent = true, OpenWorld = false, diff --git a/tools/Azure.Mcp.Tools.Search/src/Commands/Knowledge/KnowledgeBaseGetCommand.cs b/tools/Azure.Mcp.Tools.Search/src/Commands/Knowledge/KnowledgeBaseGetCommand.cs index 5b854dfea9..19b833ce90 100644 --- a/tools/Azure.Mcp.Tools.Search/src/Commands/Knowledge/KnowledgeBaseGetCommand.cs +++ b/tools/Azure.Mcp.Tools.Search/src/Commands/Knowledge/KnowledgeBaseGetCommand.cs @@ -20,9 +20,6 @@ namespace Azure.Mcp.Tools.Search.Commands.Knowledge; Gets the details of Azure AI Search knowledge bases. Knowledge bases encapsulate retrieval and reasoning capabilities over one or more knowledge sources or indexes. If a specific knowledge base name is not provided, the command will return details for all knowledge bases within the specified service. - - Required arguments: - - service """, Destructive = false, Idempotent = true, diff --git a/tools/Azure.Mcp.Tools.Search/src/Commands/Knowledge/KnowledgeBaseRetrieveCommand.cs b/tools/Azure.Mcp.Tools.Search/src/Commands/Knowledge/KnowledgeBaseRetrieveCommand.cs index 4df07b3431..d5d9dd3dca 100644 --- a/tools/Azure.Mcp.Tools.Search/src/Commands/Knowledge/KnowledgeBaseRetrieveCommand.cs +++ b/tools/Azure.Mcp.Tools.Search/src/Commands/Knowledge/KnowledgeBaseRetrieveCommand.cs @@ -23,10 +23,6 @@ namespace Azure.Mcp.Tools.Search.Commands.Knowledge; data sources as needed to find relevant information. Provide either a --query for single-turn retrieval or one or more conversational --messages in role:content form (e.g. user:What policies apply?). Specifying both --query and --messages is not allowed. - - Required arguments: - - service - - knowledge-base """, Destructive = false, Idempotent = true, diff --git a/tools/Azure.Mcp.Tools.Search/src/Commands/Knowledge/KnowledgeSourceGetCommand.cs b/tools/Azure.Mcp.Tools.Search/src/Commands/Knowledge/KnowledgeSourceGetCommand.cs index a899ed731d..6f3055da4b 100644 --- a/tools/Azure.Mcp.Tools.Search/src/Commands/Knowledge/KnowledgeSourceGetCommand.cs +++ b/tools/Azure.Mcp.Tools.Search/src/Commands/Knowledge/KnowledgeSourceGetCommand.cs @@ -22,9 +22,6 @@ Gets the details of Azure AI Search knowledge sources. A knowledge source may po indexed in Azure AI Search internally. These knowledge sources are used by knowledge bases during retrieval. If a specific knowledge source name is not provided, the command will return details for all knowledge sources within the specified service. - - Required arguments: - - service """, Destructive = false, Idempotent = true, diff --git a/tools/Azure.Mcp.Tools.Search/src/Options/SearchOptionDefinitions.cs b/tools/Azure.Mcp.Tools.Search/src/Options/SearchOptionDefinitions.cs index f6b0152a91..ddaf768ef1 100644 --- a/tools/Azure.Mcp.Tools.Search/src/Options/SearchOptionDefinitions.cs +++ b/tools/Azure.Mcp.Tools.Search/src/Options/SearchOptionDefinitions.cs @@ -63,7 +63,7 @@ public static class SearchOptionDefinitions public static readonly Option Messages = new( $"--{MessagesName}") { - Description = "Conversation history messages passed to the knowledge base. Able to specify multiple --messages entries. Each entry formatted as role:content, where role is `user` or `assistant` (e.g., user:How many docs?).", + Description = "Conversation history messages passed to the knowledge base. Multiple messages can be specified.Each entry formatted as role:content, where role is `user` or `assistant` (e.g., user:How many docs?).", Arity = ArgumentArity.ZeroOrMore, AllowMultipleArgumentsPerToken = true }; diff --git a/tools/Azure.Mcp.Tools.ServiceBus/src/Commands/Queue/QueueDetailsCommand.cs b/tools/Azure.Mcp.Tools.ServiceBus/src/Commands/Queue/QueueDetailsCommand.cs index 4b55bb13a4..05a3b8583c 100644 --- a/tools/Azure.Mcp.Tools.ServiceBus/src/Commands/Queue/QueueDetailsCommand.cs +++ b/tools/Azure.Mcp.Tools.ServiceBus/src/Commands/Queue/QueueDetailsCommand.cs @@ -19,12 +19,8 @@ namespace Azure.Mcp.Tools.ServiceBus.Commands.Queue; Name = "details", Title = "Get Service Bus Queue Details", Description = """ - Get details about a Service Bus queue. Returns queue properties and runtime information. Properties returned include + Get details about a Service Bus queue. Returns queue properties and runtime information, such as lock duration, max message size, queue size, creation date, status, current message counts, etc. - - Required arguments: - - namespace: The fully qualified Service Bus namespace host name. (This is usually in the form .servicebus.windows.net) - - queue: Queue name to get details and runtime information for. """, Destructive = false, Idempotent = true, diff --git a/tools/Azure.Mcp.Tools.ServiceBus/src/Commands/Queue/QueuePeekCommand.cs b/tools/Azure.Mcp.Tools.ServiceBus/src/Commands/Queue/QueuePeekCommand.cs index 8d3779d730..217c503cab 100644 --- a/tools/Azure.Mcp.Tools.ServiceBus/src/Commands/Queue/QueuePeekCommand.cs +++ b/tools/Azure.Mcp.Tools.ServiceBus/src/Commands/Queue/QueuePeekCommand.cs @@ -23,10 +23,6 @@ namespace Azure.Mcp.Tools.ServiceBus.Commands.Queue; The peek operation returns active, locked, deferred, and scheduled messages in the queue. Returns message content, properties, and metadata. Messages remain in the queue after peeking. - - Required arguments: - - namespace: The fully qualified Service Bus namespace host name. (This is usually in the form .servicebus.windows.net) - - queue: Queue name to peek messages from """, Destructive = false, Idempotent = true, diff --git a/tools/Azure.Mcp.Tools.ServiceBus/src/Commands/Topic/SubscriptionDetailsCommand.cs b/tools/Azure.Mcp.Tools.ServiceBus/src/Commands/Topic/SubscriptionDetailsCommand.cs index acdbb8f737..ae32b839fa 100644 --- a/tools/Azure.Mcp.Tools.ServiceBus/src/Commands/Topic/SubscriptionDetailsCommand.cs +++ b/tools/Azure.Mcp.Tools.ServiceBus/src/Commands/Topic/SubscriptionDetailsCommand.cs @@ -20,11 +20,6 @@ namespace Azure.Mcp.Tools.ServiceBus.Commands.Topic; Title = "Get Service Bus Topic Subscription Details", Description = """ Get details about a Service Bus subscription. Returns subscription runtime properties including message counts, delivery settings, and other metadata. - - Required arguments: - - namespace: The fully qualified Service Bus namespace host name. (This is usually in the form .servicebus.windows.net) - - topic: Topic name containing the subscription - - subscription-name: Name of the subscription to get details for """, Destructive = false, Idempotent = true, diff --git a/tools/Azure.Mcp.Tools.ServiceBus/src/Commands/Topic/SubscriptionPeekCommand.cs b/tools/Azure.Mcp.Tools.ServiceBus/src/Commands/Topic/SubscriptionPeekCommand.cs index ddb677a2b0..93fdc54534 100644 --- a/tools/Azure.Mcp.Tools.ServiceBus/src/Commands/Topic/SubscriptionPeekCommand.cs +++ b/tools/Azure.Mcp.Tools.ServiceBus/src/Commands/Topic/SubscriptionPeekCommand.cs @@ -23,11 +23,6 @@ namespace Azure.Mcp.Tools.ServiceBus.Commands.Topic; The peek operation returns active, locked, and deferred messages in the subscription. Returns message content, properties, and metadata. Messages remain in the subscription after peeking. - - Required arguments: - - namespace: The fully qualified Service Bus namespace host name. (This is usually in the form .servicebus.windows.net) - - topic: Topic name containing the subscription - - subscription-name: Subscription name to peek messages from """, Destructive = false, Idempotent = true, diff --git a/tools/Azure.Mcp.Tools.ServiceBus/src/Commands/Topic/TopicDetailsCommand.cs b/tools/Azure.Mcp.Tools.ServiceBus/src/Commands/Topic/TopicDetailsCommand.cs index 3d9cd44fa6..e2a5be2164 100644 --- a/tools/Azure.Mcp.Tools.ServiceBus/src/Commands/Topic/TopicDetailsCommand.cs +++ b/tools/Azure.Mcp.Tools.ServiceBus/src/Commands/Topic/TopicDetailsCommand.cs @@ -20,7 +20,6 @@ namespace Azure.Mcp.Tools.ServiceBus.Commands.Topic; Title = "Get Service Bus Topic Details", Description = """ Retrieves details about a Service Bus topic. Returns runtime information and topic properties including number of subscriptions, max message size, max topic size, number of scheduled messages, etc. - Required arguments are namespace: The fully qualified Service Bus namespace host name (usually in the form .servicebus.windows.net) and topic: Topic name to get information about. Do not use this to get details on Service Bus subscription- instead use servicebus_topic_subscription_details. """, Destructive = false, diff --git a/tools/Azure.Mcp.Tools.ServiceBus/src/Options/OptionDefinitions.cs b/tools/Azure.Mcp.Tools.ServiceBus/src/Options/OptionDefinitions.cs index 1d4b5be09b..a49d35b8fe 100644 --- a/tools/Azure.Mcp.Tools.ServiceBus/src/Options/OptionDefinitions.cs +++ b/tools/Azure.Mcp.Tools.ServiceBus/src/Options/OptionDefinitions.cs @@ -15,7 +15,7 @@ public static class ServiceBusOptionDefinitions $"--{NamespaceName}" ) { - Description = "The fully qualified Service Bus namespace host name. (This is usually in the form .servicebus.windows.net)", + Description = "The fully qualified Service Bus namespace host name (usually in the form .servicebus.windows.net).", Required = true }; diff --git a/tools/Azure.Mcp.Tools.ServiceFabric/src/Commands/ManagedCluster/ManagedClusterNodeTypeRestartCommand.cs b/tools/Azure.Mcp.Tools.ServiceFabric/src/Commands/ManagedCluster/ManagedClusterNodeTypeRestartCommand.cs index e5b6329996..ad887b1ffa 100644 --- a/tools/Azure.Mcp.Tools.ServiceFabric/src/Commands/ManagedCluster/ManagedClusterNodeTypeRestartCommand.cs +++ b/tools/Azure.Mcp.Tools.ServiceFabric/src/Commands/ManagedCluster/ManagedClusterNodeTypeRestartCommand.cs @@ -17,7 +17,7 @@ namespace Azure.Mcp.Tools.ServiceFabric.Commands.ManagedCluster; Id = "b4f2c3d5-e6f7-48a9-8b1c-2d3e4f5a6b7c", Name = "restart", Title = "Restart Service Fabric Managed Cluster Nodes", - Description = "Restart nodes of a specific node type in a Service Fabric managed cluster. Requires the cluster name, node type, and list of node names to restart. Optionally specify the update type (Default or ByUpgradeDomain).", + Description = "Restart nodes of a specific node type in a Service Fabric managed cluster. Optionally specify the update type (Default or ByUpgradeDomain).", Destructive = true, Idempotent = true, OpenWorld = false, diff --git a/tools/Azure.Mcp.Tools.Sql/src/Commands/Database/DatabaseCreateCommand.cs b/tools/Azure.Mcp.Tools.Sql/src/Commands/Database/DatabaseCreateCommand.cs index c2127ce312..f7aba61d82 100644 --- a/tools/Azure.Mcp.Tools.Sql/src/Commands/Database/DatabaseCreateCommand.cs +++ b/tools/Azure.Mcp.Tools.Sql/src/Commands/Database/DatabaseCreateCommand.cs @@ -18,8 +18,7 @@ namespace Azure.Mcp.Tools.Sql.Commands.Database; Name = "create", Title = "Create SQL Database", Description = """ - Create a new Azure SQL Database on an existing SQL Server. This command creates a database with configurable - performance tiers, size limits, and other settings. Equivalent to 'az sql db create'. + Create a new Azure SQL Database on an existing SQL Server with configurable performance tiers, size limits, and other settings. Equivalent to 'az sql db create'. Returns the newly created database information including configuration details. """, Destructive = true, diff --git a/tools/Azure.Mcp.Tools.Sql/src/Commands/Database/DatabaseDeleteCommand.cs b/tools/Azure.Mcp.Tools.Sql/src/Commands/Database/DatabaseDeleteCommand.cs index 989aba270f..97491eb9a6 100644 --- a/tools/Azure.Mcp.Tools.Sql/src/Commands/Database/DatabaseDeleteCommand.cs +++ b/tools/Azure.Mcp.Tools.Sql/src/Commands/Database/DatabaseDeleteCommand.cs @@ -14,7 +14,7 @@ namespace Azure.Mcp.Tools.Sql.Commands.Database; Id = "c4ef0375-0df9-445c-b8ae-2542e9612425", Name = "delete", Title = "Delete SQL Database", - Description = "Deletes a database from an Azure SQL Server.This idempotent operation removes the specified database from the server, returning Deleted = false if the database doesn't exist or Deleted = true if successfully removed.", + Description = "Deletes a database from an Azure SQL Server, returning Deleted = false if the database doesn't exist or Deleted = true if successfully removed.", Destructive = true, Idempotent = true, OpenWorld = false, diff --git a/tools/Azure.Mcp.Tools.Sql/src/Commands/Database/DatabaseGetCommand.cs b/tools/Azure.Mcp.Tools.Sql/src/Commands/Database/DatabaseGetCommand.cs index 0cfccc479c..e0ac45257c 100644 --- a/tools/Azure.Mcp.Tools.Sql/src/Commands/Database/DatabaseGetCommand.cs +++ b/tools/Azure.Mcp.Tools.Sql/src/Commands/Database/DatabaseGetCommand.cs @@ -19,11 +19,10 @@ namespace Azure.Mcp.Tools.Sql.Commands.Database; Name = "get", Title = "Get SQL Database", Description = """ - Show, get, or list Azure SQL databases in a SQL Server. Shows details for a specific Azure SQL database - by name, or lists all Azure SQL databases in the specified SQL Server. Use to show or retrieve Azure SQL - database information. Equivalent to 'az sql db show' (show one Azure SQL database) or 'az sql db list' - (list all Azure SQL databases in a server). Returns database information including configuration details - and current status. + Show, get, or list Azure SQL database information in a SQL Server. Shows details for a specific Azure SQL + database by name, or lists all Azure SQL databases in the specified SQL Server. Equivalent to 'az sql db show' + (show one Azure SQL database) or 'az sql db list' (list all Azure SQL databases in a server). Returns database + information including configuration details and current status. """, Destructive = false, Idempotent = true, diff --git a/tools/Azure.Mcp.Tools.Sql/src/Commands/Database/DatabaseRenameCommand.cs b/tools/Azure.Mcp.Tools.Sql/src/Commands/Database/DatabaseRenameCommand.cs index d1e5463eb5..bc55887afc 100644 --- a/tools/Azure.Mcp.Tools.Sql/src/Commands/Database/DatabaseRenameCommand.cs +++ b/tools/Azure.Mcp.Tools.Sql/src/Commands/Database/DatabaseRenameCommand.cs @@ -18,9 +18,8 @@ namespace Azure.Mcp.Tools.Sql.Commands.Database; Name = "rename", Title = "Rename SQL Database", Description = """ - Rename an existing Azure SQL Database to a new name within the same SQL server. This command moves the - database resource to a new identifier while preserving configuration and data. Equivalent to - 'az sql db rename'. Returns the updated database information using the new name. + Rename an existing Azure SQL Database to a new name within the same SQL server, preserving configuration and data. + Equivalent to 'az sql db rename'. Returns the updated database information using the new name. """, Destructive = true, Idempotent = false, diff --git a/tools/Azure.Mcp.Tools.Sql/src/Commands/Database/DatabaseUpdateCommand.cs b/tools/Azure.Mcp.Tools.Sql/src/Commands/Database/DatabaseUpdateCommand.cs index cd293a260b..7d7abc81a7 100644 --- a/tools/Azure.Mcp.Tools.Sql/src/Commands/Database/DatabaseUpdateCommand.cs +++ b/tools/Azure.Mcp.Tools.Sql/src/Commands/Database/DatabaseUpdateCommand.cs @@ -18,9 +18,8 @@ namespace Azure.Mcp.Tools.Sql.Commands.Database; Name = "update", Title = "Update SQL Database", Description = """ - Scale and configure Azure SQL Database performance settings. - Update an existing database's SKU, compute tier, storage capacity, - or redundancy options to meet changing performance requirements. + Scale and configure Azure SQL Database performance settings. Update an existing database's SKU, compute tier, + storage capacity, or redundancy options to meet changing performance requirements. Returns the updated database configuration including applied scaling changes. """, Destructive = true, diff --git a/tools/Azure.Mcp.Tools.Sql/src/Commands/ElasticPool/ElasticPoolListCommand.cs b/tools/Azure.Mcp.Tools.Sql/src/Commands/ElasticPool/ElasticPoolListCommand.cs index 1dd9d99fe1..7c07565e85 100644 --- a/tools/Azure.Mcp.Tools.Sql/src/Commands/ElasticPool/ElasticPoolListCommand.cs +++ b/tools/Azure.Mcp.Tools.Sql/src/Commands/ElasticPool/ElasticPoolListCommand.cs @@ -19,7 +19,6 @@ namespace Azure.Mcp.Tools.Sql.Commands.ElasticPool; Lists all SQL elastic pools in an Azure SQL Server with their SKU, capacity, state, and database limits. Use when you need to: view elastic pool inventory, check pool utilization, compare pool configurations, or find available pools for database placement. - Requires: subscription ID, resource group name, server name. Returns: JSON array of elastic pools with complete configuration details. Equivalent to 'az sql elastic-pool list'. """, diff --git a/tools/Azure.Mcp.Tools.Sql/src/Commands/FirewallRule/FirewallRuleCreateCommand.cs b/tools/Azure.Mcp.Tools.Sql/src/Commands/FirewallRule/FirewallRuleCreateCommand.cs index 76afd8e747..fe5271d841 100644 --- a/tools/Azure.Mcp.Tools.Sql/src/Commands/FirewallRule/FirewallRuleCreateCommand.cs +++ b/tools/Azure.Mcp.Tools.Sql/src/Commands/FirewallRule/FirewallRuleCreateCommand.cs @@ -19,10 +19,9 @@ namespace Azure.Mcp.Tools.Sql.Commands.FirewallRule; Name = "create", Title = "Create SQL Server Firewall Rule", Description = """ - Creates a firewall rule for a SQL server. Firewall rules control which IP addresses - are allowed to connect to the SQL server. You can specify either a single IP address - (by setting start and end IP to the same value) or a range of IP addresses. Returns - the created firewall rule with its properties. + Creates a firewall rule for a SQL server. Firewall rules control which IP addresses are allowed to connect to + the SQL server. You can specify either a single IP address (by setting start and end IP to the same value) or + a range of IP addresses. Returns the created firewall rule with its properties. """, Destructive = true, Idempotent = false, diff --git a/tools/Azure.Mcp.Tools.Sql/src/Commands/FirewallRule/FirewallRuleDeleteCommand.cs b/tools/Azure.Mcp.Tools.Sql/src/Commands/FirewallRule/FirewallRuleDeleteCommand.cs index e2b437285d..ca2928ddbb 100644 --- a/tools/Azure.Mcp.Tools.Sql/src/Commands/FirewallRule/FirewallRuleDeleteCommand.cs +++ b/tools/Azure.Mcp.Tools.Sql/src/Commands/FirewallRule/FirewallRuleDeleteCommand.cs @@ -17,10 +17,8 @@ namespace Azure.Mcp.Tools.Sql.Commands.FirewallRule; Name = "delete", Title = "Delete SQL Server Firewall Rule", Description = """ - Deletes a firewall rule from a SQL server. This operation removes the specified - firewall rule, potentially restricting access for the IP addresses that were - previously allowed by this rule. The operation is idempotent - if the rule - doesn't exist, no error is returned. + Deletes a firewall rule from a SQL server, potentially restricting access for the IP addresses that were + previously allowed by this rule. """, Destructive = true, Idempotent = true, diff --git a/tools/Azure.Mcp.Tools.Sql/src/Commands/FirewallRule/FirewallRuleListCommand.cs b/tools/Azure.Mcp.Tools.Sql/src/Commands/FirewallRule/FirewallRuleListCommand.cs index 4a01c905e9..57f6059293 100644 --- a/tools/Azure.Mcp.Tools.Sql/src/Commands/FirewallRule/FirewallRuleListCommand.cs +++ b/tools/Azure.Mcp.Tools.Sql/src/Commands/FirewallRule/FirewallRuleListCommand.cs @@ -16,9 +16,8 @@ namespace Azure.Mcp.Tools.Sql.Commands.FirewallRule; Name = "list", Title = "List SQL Server Firewall Rules", Description = """ - Gets a list of firewall rules for a SQL server. This command retrieves all - firewall rules configured for the specified SQL server, including their IP address ranges - and rule names. Returns an array of firewall rule objects with their properties. + Get all firewall rules configured for a SQL server, including their IP address ranges and rule names. + Returns an array of firewall rule objects with their properties. """, Destructive = false, Idempotent = true, diff --git a/tools/Azure.Mcp.Tools.Sql/src/Commands/Server/ServerCreateCommand.cs b/tools/Azure.Mcp.Tools.Sql/src/Commands/Server/ServerCreateCommand.cs index 6d53d3cf24..a43c8d2550 100644 --- a/tools/Azure.Mcp.Tools.Sql/src/Commands/Server/ServerCreateCommand.cs +++ b/tools/Azure.Mcp.Tools.Sql/src/Commands/Server/ServerCreateCommand.cs @@ -18,10 +18,9 @@ namespace Azure.Mcp.Tools.Sql.Commands.Server; Name = "create", Title = "Create SQL Server", Description = """ - Creates a new Azure SQL server in the specified resource group and location. - The server will be created with the specified administrator credentials and - optional configuration settings. Returns the created server with its properties - including the fully qualified domain name. + Creates a new Azure SQL server in the specified resource group and location. The server will be created with + the specified administrator credentials and optional configuration settings. Returns the created server with + its properties including the fully qualified domain name. """, Destructive = true, Idempotent = false, diff --git a/tools/Azure.Mcp.Tools.Sql/src/Commands/Server/ServerDeleteCommand.cs b/tools/Azure.Mcp.Tools.Sql/src/Commands/Server/ServerDeleteCommand.cs index 77248911a2..6005d42f98 100644 --- a/tools/Azure.Mcp.Tools.Sql/src/Commands/Server/ServerDeleteCommand.cs +++ b/tools/Azure.Mcp.Tools.Sql/src/Commands/Server/ServerDeleteCommand.cs @@ -19,7 +19,7 @@ namespace Azure.Mcp.Tools.Sql.Commands.Server; Description = """ Remove the specified SQL server from your Azure subscription, including all associated databases. This operation permanently deletes all server data and cannot be reversed. - Use --force to bypass confirmation. + Use force to bypass confirmation. """, Destructive = true, Idempotent = true, diff --git a/tools/Azure.Mcp.Tools.SreAgent/src/Commands/Agents/AgentsCreateCommand.cs b/tools/Azure.Mcp.Tools.SreAgent/src/Commands/Agents/AgentsCreateCommand.cs index f5a9e65f10..a894032430 100644 --- a/tools/Azure.Mcp.Tools.SreAgent/src/Commands/Agents/AgentsCreateCommand.cs +++ b/tools/Azure.Mcp.Tools.SreAgent/src/Commands/Agents/AgentsCreateCommand.cs @@ -17,7 +17,7 @@ namespace Azure.Mcp.Tools.SreAgent.Commands.Agents; Id = "7b8619c2-11e2-4fa6-bff1-a925ad7ca4bb", Name = "create", Title = "Create SRE Sub-Agent", - Description = "Creates or updates a sub-agent on a targeted SRE Agent resource. Required: --subscription, --agent, --name.", + Description = "Creates or updates a sub-agent on a targeted SRE Agent resource.", Destructive = true, Idempotent = true, OpenWorld = false, diff --git a/tools/Azure.Mcp.Tools.SreAgent/src/Commands/Agents/AgentsDeleteCommand.cs b/tools/Azure.Mcp.Tools.SreAgent/src/Commands/Agents/AgentsDeleteCommand.cs index 244efe7541..c6aa4fe496 100644 --- a/tools/Azure.Mcp.Tools.SreAgent/src/Commands/Agents/AgentsDeleteCommand.cs +++ b/tools/Azure.Mcp.Tools.SreAgent/src/Commands/Agents/AgentsDeleteCommand.cs @@ -17,7 +17,7 @@ namespace Azure.Mcp.Tools.SreAgent.Commands.Agents; Id = "53dbfc5d-95f3-4b68-94d0-f7fc5bd390ba", Name = "delete", Title = "Delete SRE Sub-Agent", - Description = "Deletes a sub-agent from a targeted SRE Agent resource. Required: --subscription, --agent, --name, --confirm true.", + Description = "Deletes a sub-agent from a targeted SRE Agent resource. Requires confirm true.", Destructive = true, Idempotent = true, OpenWorld = false, @@ -60,7 +60,7 @@ public override async Task ExecuteAsync(CommandContext context, { if (!options.Confirm) { - throw new InvalidOperationException($"Refusing to delete sub-agent '{options.Name}': destructive operation requires --confirm true."); + throw new InvalidOperationException($"Refusing to delete sub-agent '{options.Name}': destructive operation requires confirm true."); } var endpoint = await SreAgentCommandHelpers.ResolveAgentEndpointAsync( diff --git a/tools/Azure.Mcp.Tools.SreAgent/src/Commands/Agents/AgentsGetCommand.cs b/tools/Azure.Mcp.Tools.SreAgent/src/Commands/Agents/AgentsGetCommand.cs index d1147eca5c..aaa5db5be2 100644 --- a/tools/Azure.Mcp.Tools.SreAgent/src/Commands/Agents/AgentsGetCommand.cs +++ b/tools/Azure.Mcp.Tools.SreAgent/src/Commands/Agents/AgentsGetCommand.cs @@ -17,7 +17,7 @@ namespace Azure.Mcp.Tools.SreAgent.Commands.Agents; Id = "7385f6f1-c535-4edb-908a-65d6e78ed51a", Name = "get", Title = "Get SRE Agent", - Description = "Show the configuration details of a named SRE Agent. Retrieves endpoint, provisioning state, location, and settings for a specific SRE Agent by name, optionally filtered by resource group. Required: --subscription, --agent.", + Description = "Show the configuration details of a named SRE Agent. Retrieves endpoint, provisioning state, location, and settings for a specific SRE Agent by name, optionally filtered by resource group.", Destructive = false, Idempotent = true, OpenWorld = false, diff --git a/tools/Azure.Mcp.Tools.SreAgent/src/Commands/Agents/AgentsToolsCreateCommand.cs b/tools/Azure.Mcp.Tools.SreAgent/src/Commands/Agents/AgentsToolsCreateCommand.cs index 2547d44f27..68a1af889a 100644 --- a/tools/Azure.Mcp.Tools.SreAgent/src/Commands/Agents/AgentsToolsCreateCommand.cs +++ b/tools/Azure.Mcp.Tools.SreAgent/src/Commands/Agents/AgentsToolsCreateCommand.cs @@ -18,7 +18,7 @@ namespace Azure.Mcp.Tools.SreAgent.Commands.Agents; Id = "3e7e3a46-5f64-4cb6-90fa-98c845bc4f92", Name = "create", Title = "Create SRE Agent Tool", - Description = "Creates or updates a custom tool on a targeted SRE Agent resource. Required: --subscription, --agent, --name, --tool-type.", + Description = "Creates or updates a custom tool on a targeted SRE Agent resource.", Destructive = true, Idempotent = true, OpenWorld = false, diff --git a/tools/Azure.Mcp.Tools.SreAgent/src/Commands/Agents/AgentsToolsGetCommand.cs b/tools/Azure.Mcp.Tools.SreAgent/src/Commands/Agents/AgentsToolsGetCommand.cs index 1e2c63a623..cccab1e4a2 100644 --- a/tools/Azure.Mcp.Tools.SreAgent/src/Commands/Agents/AgentsToolsGetCommand.cs +++ b/tools/Azure.Mcp.Tools.SreAgent/src/Commands/Agents/AgentsToolsGetCommand.cs @@ -17,7 +17,7 @@ namespace Azure.Mcp.Tools.SreAgent.Commands.Agents; Id = "9c2d406d-61c3-4740-a0b4-68f27dd684e4", Name = "get", Title = "Get SRE Agent Tool", - Description = "Gets a custom tool definition from a targeted SRE Agent resource. Required: --subscription, --agent, --name.", + Description = "Gets a custom tool definition from a targeted SRE Agent resource.", Destructive = false, Idempotent = true, OpenWorld = false, diff --git a/tools/Azure.Mcp.Tools.SreAgent/src/Commands/Agents/AgentsToolsListCommand.cs b/tools/Azure.Mcp.Tools.SreAgent/src/Commands/Agents/AgentsToolsListCommand.cs index 621a11115a..390ce8bed6 100644 --- a/tools/Azure.Mcp.Tools.SreAgent/src/Commands/Agents/AgentsToolsListCommand.cs +++ b/tools/Azure.Mcp.Tools.SreAgent/src/Commands/Agents/AgentsToolsListCommand.cs @@ -17,7 +17,7 @@ namespace Azure.Mcp.Tools.SreAgent.Commands.Agents; Id = "f3ed0747-6f67-451a-a699-cfaf7ad33f4d", Name = "list", Title = "List SRE Agent Tools", - Description = "Lists custom tools on a targeted SRE Agent resource. Required: --subscription and --agent.", + Description = "Lists custom tools on a targeted SRE Agent resource.", Destructive = false, Idempotent = true, OpenWorld = false, diff --git a/tools/Azure.Mcp.Tools.SreAgent/src/Commands/Architecture/PlanCommand.cs b/tools/Azure.Mcp.Tools.SreAgent/src/Commands/Architecture/PlanCommand.cs index b9fbb253e6..091591a52f 100644 --- a/tools/Azure.Mcp.Tools.SreAgent/src/Commands/Architecture/PlanCommand.cs +++ b/tools/Azure.Mcp.Tools.SreAgent/src/Commands/Architecture/PlanCommand.cs @@ -11,7 +11,17 @@ namespace Azure.Mcp.Tools.SreAgent.Commands.Architecture; -[CommandMetadata(Id = "376134c0-d8f3-4399-a131-11cdfd4e63a4", Name = "plan", Title = "Plan Agent Architecture", Description = "Plan and generate an SRE Agent architecture. Analyzes requirements and produces a structured design for agents, tools, connectors, and triggers.", Destructive = false, Idempotent = true, OpenWorld = false, ReadOnly = true, Secret = false, LocalRequired = false)] +[CommandMetadata( + Id = "376134c0-d8f3-4399-a131-11cdfd4e63a4", + Name = "plan", + Title = "Plan Agent Architecture", + Description = "Plan and generate an SRE Agent architecture. Analyzes requirements and produces a structured design for agents, tools, connectors, and triggers.", + Destructive = false, + Idempotent = true, + OpenWorld = false, + ReadOnly = true, + Secret = false, + LocalRequired = false)] public sealed class PlanCommand(ILogger logger) : GlobalCommand { private readonly ILogger _logger = logger; diff --git a/tools/Azure.Mcp.Tools.SreAgent/src/Commands/CommonPrompts/CommonPromptsCreateCommand.cs b/tools/Azure.Mcp.Tools.SreAgent/src/Commands/CommonPrompts/CommonPromptsCreateCommand.cs index 1e4e607727..ef17ec77de 100644 --- a/tools/Azure.Mcp.Tools.SreAgent/src/Commands/CommonPrompts/CommonPromptsCreateCommand.cs +++ b/tools/Azure.Mcp.Tools.SreAgent/src/Commands/CommonPrompts/CommonPromptsCreateCommand.cs @@ -11,7 +11,17 @@ namespace Azure.Mcp.Tools.SreAgent.Commands.CommonPrompts; -[CommandMetadata(Id = "5d6e7f80-1a2b-4c3d-9e8f-7a6b5c4d3e2f", Name = "create", Title = "Create or Update Common Prompt", Description = "Create or update a named common prompt on the SRE Agent.", Destructive = false, Idempotent = true, OpenWorld = false, ReadOnly = false, Secret = false, LocalRequired = false)] +[CommandMetadata( + Id = "5d6e7f80-1a2b-4c3d-9e8f-7a6b5c4d3e2f", + Name = "create", + Title = "Create or Update Common Prompt", + Description = "Create or update a named common prompt on the SRE Agent.", + Destructive = false, + Idempotent = true, + OpenWorld = false, + ReadOnly = false, + Secret = false, + LocalRequired = false)] public sealed class CommonPromptsCreateCommand(ILogger logger, ISreAgentService sreAgentService) : SreAgentDataPlaneCommand { private readonly ILogger _logger = logger; diff --git a/tools/Azure.Mcp.Tools.SreAgent/src/Commands/CommonPrompts/CommonPromptsDeleteCommand.cs b/tools/Azure.Mcp.Tools.SreAgent/src/Commands/CommonPrompts/CommonPromptsDeleteCommand.cs index 141b8aef15..0032a05f4c 100644 --- a/tools/Azure.Mcp.Tools.SreAgent/src/Commands/CommonPrompts/CommonPromptsDeleteCommand.cs +++ b/tools/Azure.Mcp.Tools.SreAgent/src/Commands/CommonPrompts/CommonPromptsDeleteCommand.cs @@ -11,7 +11,17 @@ namespace Azure.Mcp.Tools.SreAgent.Commands.CommonPrompts; -[CommandMetadata(Id = "1c2d3e4f-5a6b-4c7d-8e9f-0a1b2c3d4e5f", Name = "delete", Title = "Delete Common Prompt", Description = "Permanently remove and irreversibly delete a named common prompt from an SRE Agent. Erases the prompt definition after explicit user confirmation. This action cannot be undone.", Destructive = true, Idempotent = true, OpenWorld = false, ReadOnly = false, Secret = false, LocalRequired = false)] +[CommandMetadata( + Id = "1c2d3e4f-5a6b-4c7d-8e9f-0a1b2c3d4e5f", + Name = "delete", + Title = "Delete Common Prompt", + Description = "Permanently remove and irreversibly delete a named common prompt from an SRE Agent. Erases the prompt definition after explicit user confirmation. This action cannot be undone.", + Destructive = true, + Idempotent = true, + OpenWorld = false, + ReadOnly = false, + Secret = false, + LocalRequired = false)] public sealed class CommonPromptsDeleteCommand(ILogger logger, ISreAgentService sreAgentService) : SreAgentDataPlaneCommand { private readonly ILogger _logger = logger; diff --git a/tools/Azure.Mcp.Tools.SreAgent/src/Commands/CommonPrompts/CommonPromptsGetCommand.cs b/tools/Azure.Mcp.Tools.SreAgent/src/Commands/CommonPrompts/CommonPromptsGetCommand.cs index d9387180c8..e18d41a9e7 100644 --- a/tools/Azure.Mcp.Tools.SreAgent/src/Commands/CommonPrompts/CommonPromptsGetCommand.cs +++ b/tools/Azure.Mcp.Tools.SreAgent/src/Commands/CommonPrompts/CommonPromptsGetCommand.cs @@ -11,7 +11,17 @@ namespace Azure.Mcp.Tools.SreAgent.Commands.CommonPrompts; -[CommandMetadata(Id = "8b1d2f3c-4a5b-4c6d-8e7f-9a0b1c2d3e4f", Name = "get", Title = "Get Common Prompt", Description = "Show the content of a specific named common prompt on an SRE Agent. Returns the full prompt text for a single prompt identified by name.", Destructive = false, Idempotent = true, OpenWorld = false, ReadOnly = true, Secret = false, LocalRequired = false)] +[CommandMetadata( + Id = "8b1d2f3c-4a5b-4c6d-8e7f-9a0b1c2d3e4f", + Name = "get", + Title = "Get Common Prompt", + Description = "Show the content of a specific named common prompt on an SRE Agent. Returns the full prompt text for a single prompt identified by name.", + Destructive = false, + Idempotent = true, + OpenWorld = false, + ReadOnly = true, + Secret = false, + LocalRequired = false)] public sealed class CommonPromptsGetCommand(ILogger logger, ISreAgentService sreAgentService) : SreAgentDataPlaneCommand { private readonly ILogger _logger = logger; diff --git a/tools/Azure.Mcp.Tools.SreAgent/src/Commands/CommonPrompts/CommonPromptsListCommand.cs b/tools/Azure.Mcp.Tools.SreAgent/src/Commands/CommonPrompts/CommonPromptsListCommand.cs index 47671bae19..a943599a0d 100644 --- a/tools/Azure.Mcp.Tools.SreAgent/src/Commands/CommonPrompts/CommonPromptsListCommand.cs +++ b/tools/Azure.Mcp.Tools.SreAgent/src/Commands/CommonPrompts/CommonPromptsListCommand.cs @@ -12,7 +12,17 @@ namespace Azure.Mcp.Tools.SreAgent.Commands.CommonPrompts; -[CommandMetadata(Id = "f6e7c1b2-2a4d-4f7c-9b73-7c6f7e7d3aa1", Name = "list", Title = "List Common Prompts", Description = "List all common prompts available on an SRE Agent. Returns a collection of all registered prompt names and descriptions.", Destructive = false, Idempotent = true, OpenWorld = false, ReadOnly = true, Secret = false, LocalRequired = false)] +[CommandMetadata( + Id = "f6e7c1b2-2a4d-4f7c-9b73-7c6f7e7d3aa1", + Name = "list", + Title = "List Common Prompts", + Description = "List all common prompts available on an SRE Agent. Returns a collection of all registered prompt names and descriptions.", + Destructive = false, + Idempotent = true, + OpenWorld = false, + ReadOnly = true, + Secret = false, + LocalRequired = false)] public sealed class CommonPromptsListCommand(ILogger logger, ISreAgentService sreAgentService) : SreAgentDataPlaneCommand { private readonly ILogger _logger = logger; diff --git a/tools/Azure.Mcp.Tools.SreAgent/src/Commands/Connectors/ConnectorsDeleteCommand.cs b/tools/Azure.Mcp.Tools.SreAgent/src/Commands/Connectors/ConnectorsDeleteCommand.cs index 75021cea73..1ebac0d422 100644 --- a/tools/Azure.Mcp.Tools.SreAgent/src/Commands/Connectors/ConnectorsDeleteCommand.cs +++ b/tools/Azure.Mcp.Tools.SreAgent/src/Commands/Connectors/ConnectorsDeleteCommand.cs @@ -16,7 +16,7 @@ namespace Azure.Mcp.Tools.SreAgent.Commands.Connectors; Id = "50f58038-1258-48cc-a7d2-bc6c29614405", Name = "delete", Title = "Delete SRE Agent Connector", - Description = "Delete a connector from an Azure SRE Agent resource. Required: --subscription, --agent, --name, --confirm true.", + Description = "Delete a connector from an Azure SRE Agent resource. Requires confirm true.", Destructive = true, Idempotent = true, OpenWorld = false, @@ -58,7 +58,7 @@ public override async Task ExecuteAsync(CommandContext context, { if (!options.Confirm) { - throw new InvalidOperationException($"Refusing to delete connector '{options.Name}': destructive operation requires --confirm true."); + throw new InvalidOperationException($"Refusing to delete connector '{options.Name}': destructive operation requires confirm true."); } var resourceGroup = await SreAgentCommandHelpers.ResolveAgentResourceGroupAsync(_sreAgentService, options, cancellationToken); diff --git a/tools/Azure.Mcp.Tools.SreAgent/src/Commands/Docs/DocsGetCommand.cs b/tools/Azure.Mcp.Tools.SreAgent/src/Commands/Docs/DocsGetCommand.cs index 46a28e9aec..7189bb02f4 100644 --- a/tools/Azure.Mcp.Tools.SreAgent/src/Commands/Docs/DocsGetCommand.cs +++ b/tools/Azure.Mcp.Tools.SreAgent/src/Commands/Docs/DocsGetCommand.cs @@ -10,7 +10,17 @@ namespace Azure.Mcp.Tools.SreAgent.Commands.Docs; -[CommandMetadata(Id = "3e7977a8-786b-4db9-a3be-2194af3cdafb", Name = "get", Title = "Get SRE Agent Documentation", Description = "Return reference documentation for SRE Agent concepts.", Destructive = false, Idempotent = true, OpenWorld = false, ReadOnly = true, Secret = false, LocalRequired = false)] +[CommandMetadata( + Id = "3e7977a8-786b-4db9-a3be-2194af3cdafb", + Name = "get", + Title = "Get SRE Agent Documentation", + Description = "Return reference documentation for SRE Agent concepts.", + Destructive = false, + Idempotent = true, + OpenWorld = false, + ReadOnly = true, + Secret = false, + LocalRequired = false)] public sealed class DocsGetCommand(ILogger logger) : GlobalCommand { private readonly ILogger _logger = logger; diff --git a/tools/Azure.Mcp.Tools.SreAgent/src/Commands/Docs/MemoriesAddCommand.cs b/tools/Azure.Mcp.Tools.SreAgent/src/Commands/Docs/MemoriesAddCommand.cs index 192c56da27..ecca2e1a15 100644 --- a/tools/Azure.Mcp.Tools.SreAgent/src/Commands/Docs/MemoriesAddCommand.cs +++ b/tools/Azure.Mcp.Tools.SreAgent/src/Commands/Docs/MemoriesAddCommand.cs @@ -11,7 +11,17 @@ namespace Azure.Mcp.Tools.SreAgent.Commands.Docs; -[CommandMetadata(Id = "06255dae-7848-45f9-8cfc-b48bed1fe763", Name = "memories_add", Title = "Add Memory", Description = "Add a document to the SRE Agent knowledge base by name. Uploads markdown content that will be indexed for RAG-based knowledge retrieval.", Destructive = false, Idempotent = false, OpenWorld = false, ReadOnly = false, Secret = false, LocalRequired = false)] +[CommandMetadata( + Id = "06255dae-7848-45f9-8cfc-b48bed1fe763", + Name = "memories_add", + Title = "Add Memory", + Description = "Add a document to the SRE Agent knowledge base by name. Uploads markdown content that will be indexed for RAG-based knowledge retrieval.", + Destructive = false, + Idempotent = false, + OpenWorld = false, + ReadOnly = false, + Secret = false, + LocalRequired = false)] public sealed class MemoriesAddCommand(ILogger logger, ISreAgentService sreAgentService) : SreAgentDataPlaneCommand { private readonly ILogger _logger = logger; diff --git a/tools/Azure.Mcp.Tools.SreAgent/src/Commands/Docs/MemoriesDeleteCommand.cs b/tools/Azure.Mcp.Tools.SreAgent/src/Commands/Docs/MemoriesDeleteCommand.cs index 529be85f2b..a54c02fee0 100644 --- a/tools/Azure.Mcp.Tools.SreAgent/src/Commands/Docs/MemoriesDeleteCommand.cs +++ b/tools/Azure.Mcp.Tools.SreAgent/src/Commands/Docs/MemoriesDeleteCommand.cs @@ -11,7 +11,17 @@ namespace Azure.Mcp.Tools.SreAgent.Commands.Docs; -[CommandMetadata(Id = "6fe4a44c-b9c5-44b1-b985-12f9043b1051", Name = "memories_delete", Title = "Delete Memory", Description = "Delete a knowledge base document after explicit confirmation.", Destructive = true, Idempotent = true, OpenWorld = false, ReadOnly = false, Secret = false, LocalRequired = false)] +[CommandMetadata( + Id = "6fe4a44c-b9c5-44b1-b985-12f9043b1051", + Name = "memories_delete", + Title = "Delete Memory", + Description = "Delete a knowledge base document after explicit confirmation.", + Destructive = true, + Idempotent = true, + OpenWorld = false, + ReadOnly = false, + Secret = false, + LocalRequired = false)] public sealed class MemoriesDeleteCommand(ILogger logger, ISreAgentService sreAgentService) : SreAgentDataPlaneCommand { private readonly ILogger _logger = logger; diff --git a/tools/Azure.Mcp.Tools.SreAgent/src/Commands/Docs/MemoriesListCommand.cs b/tools/Azure.Mcp.Tools.SreAgent/src/Commands/Docs/MemoriesListCommand.cs index 28e5f7cbd2..223afb1694 100644 --- a/tools/Azure.Mcp.Tools.SreAgent/src/Commands/Docs/MemoriesListCommand.cs +++ b/tools/Azure.Mcp.Tools.SreAgent/src/Commands/Docs/MemoriesListCommand.cs @@ -10,7 +10,17 @@ namespace Azure.Mcp.Tools.SreAgent.Commands.Docs; -[CommandMetadata(Id = "387de9fa-0d29-4b44-b43c-c7d328a751d4", Name = "memories_list", Title = "List Memories", Description = "Retrieve a complete list of all indexed knowledge base documents stored in an SRE Agent's memory. Returns all document names and metadata without any search filter or query. Use this to browse everything in the knowledge base before searching.", Destructive = false, Idempotent = true, OpenWorld = false, ReadOnly = true, Secret = false, LocalRequired = false)] +[CommandMetadata( + Id = "387de9fa-0d29-4b44-b43c-c7d328a751d4", + Name = "memories_list", + Title = "List Memories", + Description = "Retrieve a complete list of all indexed knowledge base documents stored in an SRE Agent's memory. Returns all document names and metadata without any search filter or query. Use this to browse everything in the knowledge base before searching.", + Destructive = false, + Idempotent = true, + OpenWorld = false, + ReadOnly = true, + Secret = false, + LocalRequired = false)] public sealed class MemoriesListCommand(ILogger logger, ISreAgentService sreAgentService) : SreAgentDataPlaneCommand { private readonly ILogger _logger = logger; diff --git a/tools/Azure.Mcp.Tools.SreAgent/src/Commands/Docs/MemoriesReindexCommand.cs b/tools/Azure.Mcp.Tools.SreAgent/src/Commands/Docs/MemoriesReindexCommand.cs index 7e94211b7c..81cba3b5a6 100644 --- a/tools/Azure.Mcp.Tools.SreAgent/src/Commands/Docs/MemoriesReindexCommand.cs +++ b/tools/Azure.Mcp.Tools.SreAgent/src/Commands/Docs/MemoriesReindexCommand.cs @@ -9,7 +9,17 @@ namespace Azure.Mcp.Tools.SreAgent.Commands.Docs; -[CommandMetadata(Id = "ff881ee4-ee6e-4fae-8114-c6c6f36745bb", Name = "memories_reindex", Title = "Reindex Memories", Description = "Trigger a knowledge base reindex.", Destructive = false, Idempotent = false, OpenWorld = false, ReadOnly = false, Secret = false, LocalRequired = false)] +[CommandMetadata( + Id = "ff881ee4-ee6e-4fae-8114-c6c6f36745bb", + Name = "memories_reindex", + Title = "Reindex Memories", + Description = "Trigger a knowledge base reindex.", + Destructive = false, + Idempotent = false, + OpenWorld = false, + ReadOnly = false, + Secret = false, + LocalRequired = false)] public sealed class MemoriesReindexCommand(ILogger logger, ISreAgentService sreAgentService) : SreAgentDataPlaneCommand { private readonly ILogger _logger = logger; diff --git a/tools/Azure.Mcp.Tools.SreAgent/src/Commands/Docs/MemoriesSearchCommand.cs b/tools/Azure.Mcp.Tools.SreAgent/src/Commands/Docs/MemoriesSearchCommand.cs index e395de01c9..de28f09cbe 100644 --- a/tools/Azure.Mcp.Tools.SreAgent/src/Commands/Docs/MemoriesSearchCommand.cs +++ b/tools/Azure.Mcp.Tools.SreAgent/src/Commands/Docs/MemoriesSearchCommand.cs @@ -12,7 +12,17 @@ namespace Azure.Mcp.Tools.SreAgent.Commands.Docs; -[CommandMetadata(Id = "723c42ee-186d-4dfb-bc81-8437257f190d", Name = "memories_search", Title = "Search Memories", Description = "Search the SRE Agent knowledge base. Uses semantic search to find relevant documents stored in the agent's knowledge base.", Destructive = false, Idempotent = true, OpenWorld = false, ReadOnly = true, Secret = false, LocalRequired = false)] +[CommandMetadata( + Id = "723c42ee-186d-4dfb-bc81-8437257f190d", + Name = "memories_search", + Title = "Search Memories", + Description = "Search the SRE Agent knowledge base. Uses semantic search to find relevant documents stored in the agent's knowledge base.", + Destructive = false, + Idempotent = true, + OpenWorld = false, + ReadOnly = true, + Secret = false, + LocalRequired = false)] public sealed class MemoriesSearchCommand(ILogger logger, ISreAgentService sreAgentService) : SreAgentDataPlaneCommand { private readonly ILogger _logger = logger; diff --git a/tools/Azure.Mcp.Tools.SreAgent/src/Commands/Hooks/HooksDeleteCommand.cs b/tools/Azure.Mcp.Tools.SreAgent/src/Commands/Hooks/HooksDeleteCommand.cs index 892980726f..5b8456dc1e 100644 --- a/tools/Azure.Mcp.Tools.SreAgent/src/Commands/Hooks/HooksDeleteCommand.cs +++ b/tools/Azure.Mcp.Tools.SreAgent/src/Commands/Hooks/HooksDeleteCommand.cs @@ -16,7 +16,7 @@ namespace Azure.Mcp.Tools.SreAgent.Commands.Hooks; Id = "290f14b5-720e-4036-82b1-9fd9f577e009", Name = "delete", Title = "Delete SRE Agent Hook", - Description = "Delete a hook from an Azure SRE Agent resource. Required: --subscription, --agent, --name, --confirm true.", + Description = "Delete a hook from an Azure SRE Agent resource. Requires confirm true.", Destructive = true, Idempotent = true, OpenWorld = false, @@ -58,7 +58,7 @@ public override async Task ExecuteAsync(CommandContext context, { if (!options.Confirm) { - throw new InvalidOperationException($"Refusing to delete hook '{options.Name}': destructive operation requires --confirm true."); + throw new InvalidOperationException($"Refusing to delete hook '{options.Name}': destructive operation requires confirm true."); } var endpoint = await SreAgentCommandHelpers.ResolveAgentEndpointAsync(_sreAgentService, options, cancellationToken); diff --git a/tools/Azure.Mcp.Tools.SreAgent/src/Commands/Incidents/IncidentsActiveListCommand.cs b/tools/Azure.Mcp.Tools.SreAgent/src/Commands/Incidents/IncidentsActiveListCommand.cs index 3d418e3934..6dd07740f1 100644 --- a/tools/Azure.Mcp.Tools.SreAgent/src/Commands/Incidents/IncidentsActiveListCommand.cs +++ b/tools/Azure.Mcp.Tools.SreAgent/src/Commands/Incidents/IncidentsActiveListCommand.cs @@ -1,8 +1,6 @@ // Copyright (c) Microsoft Corporation. // Licensed under the MIT License. -using Azure.Mcp.Tools.SreAgent.Models; -using Azure.Mcp.Tools.SreAgent.Options; using Azure.Mcp.Tools.SreAgent.Options.Incidents; using Azure.Mcp.Tools.SreAgent.Services; using Microsoft.Extensions.Logging; @@ -11,7 +9,17 @@ namespace Azure.Mcp.Tools.SreAgent.Commands.Incidents; -[CommandMetadata(Id = "659a3697-9c8c-46e1-b568-9b929d637cb4", Name = "list", Title = "List Active Incidents", Description = "List active incidents on an SRE Agent. Returns open incident threads with title, status, affected services, and investigation details.", Destructive = false, Idempotent = true, OpenWorld = false, ReadOnly = true, Secret = false, LocalRequired = false)] +[CommandMetadata( + Id = "659a3697-9c8c-46e1-b568-9b929d637cb4", + Name = "list", + Title = "List Active Incidents", + Description = "List active incidents on an SRE Agent. Returns open incident threads with title, status, affected services, and investigation details.", + Destructive = false, + Idempotent = true, + OpenWorld = false, + ReadOnly = true, + Secret = false, + LocalRequired = false)] public sealed class IncidentsActiveListCommand(ILogger logger, ISreAgentService sreAgentService) : SreAgentDataPlaneCommand { private readonly ILogger _logger = logger; diff --git a/tools/Azure.Mcp.Tools.SreAgent/src/Commands/Incidents/IncidentsCreateCommand.cs b/tools/Azure.Mcp.Tools.SreAgent/src/Commands/Incidents/IncidentsCreateCommand.cs index 83b8a537b5..6f463d3efa 100644 --- a/tools/Azure.Mcp.Tools.SreAgent/src/Commands/Incidents/IncidentsCreateCommand.cs +++ b/tools/Azure.Mcp.Tools.SreAgent/src/Commands/Incidents/IncidentsCreateCommand.cs @@ -13,7 +13,17 @@ namespace Azure.Mcp.Tools.SreAgent.Commands.Incidents; -[CommandMetadata(Id = "234f234b-76fd-4874-909a-d16a30db6187", Name = "create", Title = "Create Incident", Description = "Create an incident investigation thread for an agent.", Destructive = false, Idempotent = false, OpenWorld = false, ReadOnly = false, Secret = false, LocalRequired = false)] +[CommandMetadata( + Id = "234f234b-76fd-4874-909a-d16a30db6187", + Name = "create", + Title = "Create Incident", + Description = "Create an incident investigation thread for an agent.", + Destructive = false, + Idempotent = false, + OpenWorld = false, + ReadOnly = false, + Secret = false, + LocalRequired = false)] public sealed class IncidentsCreateCommand(ILogger logger, ISreAgentService sreAgentService) : SreAgentDataPlaneCommand { private readonly ILogger _logger = logger; diff --git a/tools/Azure.Mcp.Tools.SreAgent/src/Commands/Incidents/IncidentsPlansCreateCommand.cs b/tools/Azure.Mcp.Tools.SreAgent/src/Commands/Incidents/IncidentsPlansCreateCommand.cs index 1df3fbb6b1..ff7006a575 100644 --- a/tools/Azure.Mcp.Tools.SreAgent/src/Commands/Incidents/IncidentsPlansCreateCommand.cs +++ b/tools/Azure.Mcp.Tools.SreAgent/src/Commands/Incidents/IncidentsPlansCreateCommand.cs @@ -12,7 +12,17 @@ namespace Azure.Mcp.Tools.SreAgent.Commands.Incidents; -[CommandMetadata(Id = "84d958db-8de0-456d-a1d5-99d372f33c80", Name = "plans_create", Title = "Create Incident Response Plan", Description = "Create and enable an incident response plan with a filter and handler.", Destructive = false, Idempotent = false, OpenWorld = false, ReadOnly = false, Secret = false, LocalRequired = false)] +[CommandMetadata( + Id = "84d958db-8de0-456d-a1d5-99d372f33c80", + Name = "plans_create", + Title = "Create Incident Response Plan", + Description = "Create and enable an incident response plan with a filter and handler.", + Destructive = false, + Idempotent = false, + OpenWorld = false, + ReadOnly = false, + Secret = false, + LocalRequired = false)] public sealed class IncidentsPlansCreateCommand(ILogger logger, ISreAgentService sreAgentService) : SreAgentDataPlaneCommand { private static readonly Dictionary SeverityToPriorities = new(StringComparer.OrdinalIgnoreCase) diff --git a/tools/Azure.Mcp.Tools.SreAgent/src/Commands/Incidents/IncidentsPlansListCommand.cs b/tools/Azure.Mcp.Tools.SreAgent/src/Commands/Incidents/IncidentsPlansListCommand.cs index 4d7241274e..5b680adbc8 100644 --- a/tools/Azure.Mcp.Tools.SreAgent/src/Commands/Incidents/IncidentsPlansListCommand.cs +++ b/tools/Azure.Mcp.Tools.SreAgent/src/Commands/Incidents/IncidentsPlansListCommand.cs @@ -10,7 +10,17 @@ namespace Azure.Mcp.Tools.SreAgent.Commands.Incidents; -[CommandMetadata(Id = "ab471ff4-7b46-4a0c-a54a-9a0371dcdd01", Name = "plans_list", Title = "List Incident Response Plans", Description = "List incident response plans configured on an SRE Agent.", Destructive = false, Idempotent = true, OpenWorld = false, ReadOnly = true, Secret = false, LocalRequired = false)] +[CommandMetadata( + Id = "ab471ff4-7b46-4a0c-a54a-9a0371dcdd01", + Name = "plans_list", + Title = "List Incident Response Plans", + Description = "List incident response plans configured on an SRE Agent.", + Destructive = false, + Idempotent = true, + OpenWorld = false, + ReadOnly = true, + Secret = false, + LocalRequired = false)] public sealed class IncidentsPlansListCommand(ILogger logger, ISreAgentService sreAgentService) : SreAgentDataPlaneCommand { private readonly ILogger _logger = logger; diff --git a/tools/Azure.Mcp.Tools.SreAgent/src/Commands/Incidents/IncidentsSetupPagerdutyCommand.cs b/tools/Azure.Mcp.Tools.SreAgent/src/Commands/Incidents/IncidentsSetupPagerdutyCommand.cs index c53e41f689..149c0bb67a 100644 --- a/tools/Azure.Mcp.Tools.SreAgent/src/Commands/Incidents/IncidentsSetupPagerdutyCommand.cs +++ b/tools/Azure.Mcp.Tools.SreAgent/src/Commands/Incidents/IncidentsSetupPagerdutyCommand.cs @@ -13,7 +13,17 @@ namespace Azure.Mcp.Tools.SreAgent.Commands.Incidents; -[CommandMetadata(Id = "49de8921-8331-4328-9de2-f8b216af7dbf", Name = "setup_pagerduty", Title = "Setup PagerDuty Connector", Description = "Connect an SRE Agent to PagerDuty. Creates a PagerDuty MCP connector to enable incident alerting and management integration using an API key from an environment variable.", Destructive = false, Idempotent = true, OpenWorld = false, ReadOnly = false, Secret = true, LocalRequired = false)] +[CommandMetadata( + Id = "49de8921-8331-4328-9de2-f8b216af7dbf", + Name = "setup_pagerduty", + Title = "Setup PagerDuty Connector", + Description = "Connect an SRE Agent to PagerDuty. Creates a PagerDuty MCP connector to enable incident alerting and management integration using an API key from an environment variable.", + Destructive = false, + Idempotent = true, + OpenWorld = false, + ReadOnly = false, + Secret = true, + LocalRequired = false)] public sealed class IncidentsSetupPagerdutyCommand(ILogger logger, ISreAgentService sreAgentService) : SreAgentDataPlaneCommand { private readonly ILogger _logger = logger; diff --git a/tools/Azure.Mcp.Tools.SreAgent/src/Commands/Incidents/IncidentsSetupServicenowCommand.cs b/tools/Azure.Mcp.Tools.SreAgent/src/Commands/Incidents/IncidentsSetupServicenowCommand.cs index dd1826fe33..f4abd323e5 100644 --- a/tools/Azure.Mcp.Tools.SreAgent/src/Commands/Incidents/IncidentsSetupServicenowCommand.cs +++ b/tools/Azure.Mcp.Tools.SreAgent/src/Commands/Incidents/IncidentsSetupServicenowCommand.cs @@ -14,7 +14,17 @@ namespace Azure.Mcp.Tools.SreAgent.Commands.Incidents; -[CommandMetadata(Id = "78c3a0cc-9185-44bf-93db-11be7f39a9b4", Name = "setup_servicenow", Title = "Setup ServiceNow Connector", Description = "Connect an SRE Agent to ServiceNow. Creates a ServiceNow MCP connector to enable incident management integration using credentials from environment variables.", Destructive = false, Idempotent = true, OpenWorld = false, ReadOnly = false, Secret = true, LocalRequired = false)] +[CommandMetadata( + Id = "78c3a0cc-9185-44bf-93db-11be7f39a9b4", + Name = "setup_servicenow", + Title = "Setup ServiceNow Connector", + Description = "Connect an SRE Agent to ServiceNow. Creates a ServiceNow MCP connector to enable incident management integration using credentials from environment variables.", + Destructive = false, + Idempotent = true, + OpenWorld = false, + ReadOnly = false, + Secret = true, + LocalRequired = false)] public sealed class IncidentsSetupServicenowCommand(ILogger logger, ISreAgentService sreAgentService) : SreAgentDataPlaneCommand { private readonly ILogger _logger = logger; diff --git a/tools/Azure.Mcp.Tools.SreAgent/src/Commands/ScheduledTasks/ScheduledTasksCreateCommand.cs b/tools/Azure.Mcp.Tools.SreAgent/src/Commands/ScheduledTasks/ScheduledTasksCreateCommand.cs index b88544cc67..7e867d873d 100644 --- a/tools/Azure.Mcp.Tools.SreAgent/src/Commands/ScheduledTasks/ScheduledTasksCreateCommand.cs +++ b/tools/Azure.Mcp.Tools.SreAgent/src/Commands/ScheduledTasks/ScheduledTasksCreateCommand.cs @@ -12,7 +12,17 @@ namespace Azure.Mcp.Tools.SreAgent.Commands.ScheduledTasks; -[CommandMetadata(Id = "9092d701-68c4-49ac-9096-dbd4d8aa4a03", Name = "create", Title = "Create Scheduled Task", Description = "Create an SRE Agent scheduled task.", Destructive = false, Idempotent = false, OpenWorld = true, ReadOnly = false, Secret = false, LocalRequired = false)] +[CommandMetadata( + Id = "9092d701-68c4-49ac-9096-dbd4d8aa4a03", + Name = "create", + Title = "Create Scheduled Task", + Description = "Create an SRE Agent scheduled task.", + Destructive = false, + Idempotent = false, + OpenWorld = true, + ReadOnly = false, + Secret = false, + LocalRequired = false)] public sealed class ScheduledTasksCreateCommand(ILogger logger, ISreAgentService sreAgentService) : SreAgentDataPlaneCommand { private readonly ILogger _logger = logger; diff --git a/tools/Azure.Mcp.Tools.SreAgent/src/Commands/ScheduledTasks/ScheduledTasksDeleteCommand.cs b/tools/Azure.Mcp.Tools.SreAgent/src/Commands/ScheduledTasks/ScheduledTasksDeleteCommand.cs index ab393cfda7..22181c6f1b 100644 --- a/tools/Azure.Mcp.Tools.SreAgent/src/Commands/ScheduledTasks/ScheduledTasksDeleteCommand.cs +++ b/tools/Azure.Mcp.Tools.SreAgent/src/Commands/ScheduledTasks/ScheduledTasksDeleteCommand.cs @@ -1,7 +1,6 @@ // Copyright (c) Microsoft Corporation. // Licensed under the MIT License. -using Azure.Mcp.Tools.SreAgent.Models; using Azure.Mcp.Tools.SreAgent.Options; using Azure.Mcp.Tools.SreAgent.Options.ScheduledTasks; using Azure.Mcp.Tools.SreAgent.Services; @@ -12,7 +11,17 @@ namespace Azure.Mcp.Tools.SreAgent.Commands.ScheduledTasks; -[CommandMetadata(Id = "64680a1f-b076-460b-87fd-20fdc971a804", Name = "delete", Title = "Delete Scheduled Task", Description = "Delete an SRE Agent scheduled task. Requires confirm=true.", Destructive = true, Idempotent = false, OpenWorld = false, ReadOnly = false, Secret = false, LocalRequired = false)] +[CommandMetadata( + Id = "64680a1f-b076-460b-87fd-20fdc971a804", + Name = "delete", + Title = "Delete Scheduled Task", + Description = "Delete an SRE Agent scheduled task. Requires confirm true.", + Destructive = true, + Idempotent = false, + OpenWorld = false, + ReadOnly = false, + Secret = false, + LocalRequired = false)] public sealed class ScheduledTasksDeleteCommand(ILogger logger, ISreAgentService sreAgentService) : SreAgentDataPlaneCommand { private readonly ILogger _logger = logger; diff --git a/tools/Azure.Mcp.Tools.SreAgent/src/Commands/ScheduledTasks/ScheduledTasksGetCommand.cs b/tools/Azure.Mcp.Tools.SreAgent/src/Commands/ScheduledTasks/ScheduledTasksGetCommand.cs index 3ed2c06a3f..549084f0cf 100644 --- a/tools/Azure.Mcp.Tools.SreAgent/src/Commands/ScheduledTasks/ScheduledTasksGetCommand.cs +++ b/tools/Azure.Mcp.Tools.SreAgent/src/Commands/ScheduledTasks/ScheduledTasksGetCommand.cs @@ -12,7 +12,17 @@ namespace Azure.Mcp.Tools.SreAgent.Commands.ScheduledTasks; -[CommandMetadata(Id = "7e984a24-f5b6-4631-8bfb-58f1d31e8502", Name = "get", Title = "Get Scheduled Task", Description = "Get an SRE Agent scheduled task.", Destructive = false, Idempotent = true, OpenWorld = false, ReadOnly = true, Secret = false, LocalRequired = false)] +[CommandMetadata( + Id = "7e984a24-f5b6-4631-8bfb-58f1d31e8502", + Name = "get", + Title = "Get Scheduled Task", + Description = "Get an SRE Agent scheduled task.", + Destructive = false, + Idempotent = true, + OpenWorld = false, + ReadOnly = true, + Secret = false, + LocalRequired = false)] public sealed class ScheduledTasksGetCommand(ILogger logger, ISreAgentService sreAgentService) : SreAgentDataPlaneCommand { private readonly ILogger _logger = logger; diff --git a/tools/Azure.Mcp.Tools.SreAgent/src/Commands/ScheduledTasks/ScheduledTasksListCommand.cs b/tools/Azure.Mcp.Tools.SreAgent/src/Commands/ScheduledTasks/ScheduledTasksListCommand.cs index 0252c4699f..28410f7b72 100644 --- a/tools/Azure.Mcp.Tools.SreAgent/src/Commands/ScheduledTasks/ScheduledTasksListCommand.cs +++ b/tools/Azure.Mcp.Tools.SreAgent/src/Commands/ScheduledTasks/ScheduledTasksListCommand.cs @@ -10,7 +10,17 @@ namespace Azure.Mcp.Tools.SreAgent.Commands.ScheduledTasks; -[CommandMetadata(Id = "ec36210d-35ee-40a8-bb61-f4681f816201", Name = "list", Title = "List Scheduled Tasks", Description = "List SRE Agent scheduled tasks.", Destructive = false, Idempotent = true, OpenWorld = false, ReadOnly = true, Secret = false, LocalRequired = false)] +[CommandMetadata( + Id = "ec36210d-35ee-40a8-bb61-f4681f816201", + Name = "list", + Title = "List Scheduled Tasks", + Description = "List SRE Agent scheduled tasks.", + Destructive = false, + Idempotent = true, + OpenWorld = false, + ReadOnly = true, + Secret = false, + LocalRequired = false)] public sealed class ScheduledTasksListCommand(ILogger logger, ISreAgentService sreAgentService) : SreAgentDataPlaneCommand { private readonly ILogger _logger = logger; diff --git a/tools/Azure.Mcp.Tools.SreAgent/src/Commands/ScheduledTasks/ScheduledTasksPauseCommand.cs b/tools/Azure.Mcp.Tools.SreAgent/src/Commands/ScheduledTasks/ScheduledTasksPauseCommand.cs index c7e624402c..c86a8fc4a1 100644 --- a/tools/Azure.Mcp.Tools.SreAgent/src/Commands/ScheduledTasks/ScheduledTasksPauseCommand.cs +++ b/tools/Azure.Mcp.Tools.SreAgent/src/Commands/ScheduledTasks/ScheduledTasksPauseCommand.cs @@ -11,7 +11,17 @@ namespace Azure.Mcp.Tools.SreAgent.Commands.ScheduledTasks; -[CommandMetadata(Id = "35dd524f-6888-40a6-b07f-283e7990d601", Name = "pause", Title = "Pause Scheduled Task", Description = "Pause an SRE Agent scheduled task.", Destructive = false, Idempotent = true, OpenWorld = false, ReadOnly = false, Secret = false, LocalRequired = false)] +[CommandMetadata( + Id = "35dd524f-6888-40a6-b07f-283e7990d601", + Name = "pause", + Title = "Pause Scheduled Task", + Description = "Pause an SRE Agent scheduled task.", + Destructive = false, + Idempotent = true, + OpenWorld = false, + ReadOnly = false, + Secret = false, + LocalRequired = false)] public sealed class ScheduledTasksPauseCommand(ILogger logger, ISreAgentService sreAgentService) : SreAgentDataPlaneCommand { private readonly ILogger _logger = logger; diff --git a/tools/Azure.Mcp.Tools.SreAgent/src/Commands/ScheduledTasks/ScheduledTasksResumeCommand.cs b/tools/Azure.Mcp.Tools.SreAgent/src/Commands/ScheduledTasks/ScheduledTasksResumeCommand.cs index 5d1d773d72..3acbe64744 100644 --- a/tools/Azure.Mcp.Tools.SreAgent/src/Commands/ScheduledTasks/ScheduledTasksResumeCommand.cs +++ b/tools/Azure.Mcp.Tools.SreAgent/src/Commands/ScheduledTasks/ScheduledTasksResumeCommand.cs @@ -11,7 +11,17 @@ namespace Azure.Mcp.Tools.SreAgent.Commands.ScheduledTasks; -[CommandMetadata(Id = "ef6f210c-846f-4506-8543-a9969b00ed01", Name = "resume", Title = "Resume Scheduled Task", Description = "Resume an SRE Agent scheduled task.", Destructive = false, Idempotent = true, OpenWorld = false, ReadOnly = false, Secret = false, LocalRequired = false)] +[CommandMetadata( + Id = "ef6f210c-846f-4506-8543-a9969b00ed01", + Name = "resume", + Title = "Resume Scheduled Task", + Description = "Resume an SRE Agent scheduled task.", + Destructive = false, + Idempotent = true, + OpenWorld = false, + ReadOnly = false, + Secret = false, + LocalRequired = false)] public sealed class ScheduledTasksResumeCommand(ILogger logger, ISreAgentService sreAgentService) : SreAgentDataPlaneCommand { private readonly ILogger _logger = logger; diff --git a/tools/Azure.Mcp.Tools.SreAgent/src/Commands/Skills/SkillsCreateCommand.cs b/tools/Azure.Mcp.Tools.SreAgent/src/Commands/Skills/SkillsCreateCommand.cs index 2a5e284ca7..23bdf0d549 100644 --- a/tools/Azure.Mcp.Tools.SreAgent/src/Commands/Skills/SkillsCreateCommand.cs +++ b/tools/Azure.Mcp.Tools.SreAgent/src/Commands/Skills/SkillsCreateCommand.cs @@ -17,7 +17,7 @@ namespace Azure.Mcp.Tools.SreAgent.Commands.Skills; Id = "21bb35ac-7301-495c-8193-57d482290d85", Name = "create", Title = "Create SRE Agent Skill", - Description = "Creates or updates a custom skill on a targeted SRE Agent resource. Required: --subscription, --agent, --name, --content.", + Description = "Creates or updates a custom skill on a targeted SRE Agent resource.", Destructive = true, Idempotent = true, OpenWorld = false, diff --git a/tools/Azure.Mcp.Tools.SreAgent/src/Commands/Skills/SkillsDeleteCommand.cs b/tools/Azure.Mcp.Tools.SreAgent/src/Commands/Skills/SkillsDeleteCommand.cs index a286402802..87448414ee 100644 --- a/tools/Azure.Mcp.Tools.SreAgent/src/Commands/Skills/SkillsDeleteCommand.cs +++ b/tools/Azure.Mcp.Tools.SreAgent/src/Commands/Skills/SkillsDeleteCommand.cs @@ -17,7 +17,7 @@ namespace Azure.Mcp.Tools.SreAgent.Commands.Skills; Id = "a052cd8d-05a5-44ed-8ee1-ef131c8b0321", Name = "delete", Title = "Delete SRE Agent Tool", - Description = "Deletes a custom skill from a targeted SRE Agent resource. Required: --subscription, --agent, --name, --confirm true.", + Description = "Deletes a custom skill from a targeted SRE Agent resource. Requires confirm true.", Destructive = true, Idempotent = true, OpenWorld = false, diff --git a/tools/Azure.Mcp.Tools.SreAgent/src/Commands/Skills/SkillsListCommand.cs b/tools/Azure.Mcp.Tools.SreAgent/src/Commands/Skills/SkillsListCommand.cs index 629141da49..a6c0dbbf90 100644 --- a/tools/Azure.Mcp.Tools.SreAgent/src/Commands/Skills/SkillsListCommand.cs +++ b/tools/Azure.Mcp.Tools.SreAgent/src/Commands/Skills/SkillsListCommand.cs @@ -17,7 +17,7 @@ namespace Azure.Mcp.Tools.SreAgent.Commands.Skills; Id = "e7b54820-425f-4133-a903-0dc16e42d182", Name = "list", Title = "List SRE Agent Skills", - Description = "Lists custom skills on a targeted SRE Agent resource. Required: --subscription and --agent.", + Description = "Lists custom skills on a targeted SRE Agent resource.", Destructive = false, Idempotent = true, OpenWorld = false, diff --git a/tools/Azure.Mcp.Tools.SreAgent/src/Commands/Threads/ThreadsCreateCommand.cs b/tools/Azure.Mcp.Tools.SreAgent/src/Commands/Threads/ThreadsCreateCommand.cs index f626f6fcf0..ed2d22c196 100644 --- a/tools/Azure.Mcp.Tools.SreAgent/src/Commands/Threads/ThreadsCreateCommand.cs +++ b/tools/Azure.Mcp.Tools.SreAgent/src/Commands/Threads/ThreadsCreateCommand.cs @@ -1,7 +1,6 @@ // Copyright (c) Microsoft Corporation. // Licensed under the MIT License. -using Azure.Mcp.Tools.SreAgent.Models; using Azure.Mcp.Tools.SreAgent.Options; using Azure.Mcp.Tools.SreAgent.Options.Threads; using Azure.Mcp.Tools.SreAgent.Services; @@ -12,7 +11,17 @@ namespace Azure.Mcp.Tools.SreAgent.Commands.Threads; -[CommandMetadata(Id = "c81d2450-f262-40a4-a9b0-5b2e1c3d0e03", Name = "create", Title = "Create Thread", Description = "Create a new thread on an SRE Agent and start a conversation by sending the opening message. Returns the initial agent response.", Destructive = false, Idempotent = false, OpenWorld = true, ReadOnly = false, Secret = false, LocalRequired = false)] +[CommandMetadata( + Id = "c81d2450-f262-40a4-a9b0-5b2e1c3d0e03", + Name = "create", + Title = "Create Thread", + Description = "Create a new thread on an SRE Agent and start a conversation by sending the opening message. Returns the initial agent response.", + Destructive = false, + Idempotent = false, + OpenWorld = true, + ReadOnly = false, + Secret = false, + LocalRequired = false)] public sealed class ThreadsCreateCommand(ILogger logger, ISreAgentService sreAgentService) : SreAgentDataPlaneCommand { private readonly ILogger _logger = logger; diff --git a/tools/Azure.Mcp.Tools.SreAgent/src/Commands/Threads/ThreadsDeleteCommand.cs b/tools/Azure.Mcp.Tools.SreAgent/src/Commands/Threads/ThreadsDeleteCommand.cs index 26441601f0..2ff4c124e1 100644 --- a/tools/Azure.Mcp.Tools.SreAgent/src/Commands/Threads/ThreadsDeleteCommand.cs +++ b/tools/Azure.Mcp.Tools.SreAgent/src/Commands/Threads/ThreadsDeleteCommand.cs @@ -12,7 +12,17 @@ namespace Azure.Mcp.Tools.SreAgent.Commands.Threads; -[CommandMetadata(Id = "7c86f73c-bd69-4bb9-908a-d4a02d9f6805", Name = "delete", Title = "Delete Thread", Description = "Delete an SRE Agent thread. Requires confirm=true.", Destructive = true, Idempotent = false, OpenWorld = false, ReadOnly = false, Secret = false, LocalRequired = false)] +[CommandMetadata( + Id = "7c86f73c-bd69-4bb9-908a-d4a02d9f6805", + Name = "delete", + Title = "Delete Thread", + Description = "Delete an SRE Agent thread. Requires confirm true.", + Destructive = true, + Idempotent = false, + OpenWorld = false, + ReadOnly = false, + Secret = false, + LocalRequired = false)] public sealed class ThreadsDeleteCommand(ILogger logger, ISreAgentService sreAgentService) : SreAgentDataPlaneCommand { private readonly ILogger _logger = logger; diff --git a/tools/Azure.Mcp.Tools.SreAgent/src/Commands/Threads/ThreadsGetCommand.cs b/tools/Azure.Mcp.Tools.SreAgent/src/Commands/Threads/ThreadsGetCommand.cs index 5dbe9e967f..382e65fb17 100644 --- a/tools/Azure.Mcp.Tools.SreAgent/src/Commands/Threads/ThreadsGetCommand.cs +++ b/tools/Azure.Mcp.Tools.SreAgent/src/Commands/Threads/ThreadsGetCommand.cs @@ -12,7 +12,17 @@ namespace Azure.Mcp.Tools.SreAgent.Commands.Threads; -[CommandMetadata(Id = "efab1704-5543-496a-830d-19ddb816a102", Name = "get", Title = "Get Thread", Description = "Get messages for an SRE Agent thread.", Destructive = false, Idempotent = true, OpenWorld = false, ReadOnly = true, Secret = false, LocalRequired = false)] +[CommandMetadata( + Id = "efab1704-5543-496a-830d-19ddb816a102", + Name = "get", + Title = "Get Thread", + Description = "Get messages for an SRE Agent thread.", + Destructive = false, + Idempotent = true, + OpenWorld = false, + ReadOnly = true, + Secret = false, + LocalRequired = false)] public sealed class ThreadsGetCommand(ILogger logger, ISreAgentService sreAgentService) : SreAgentDataPlaneCommand { private readonly ILogger _logger = logger; diff --git a/tools/Azure.Mcp.Tools.SreAgent/src/Commands/Threads/ThreadsInvestigateCommand.cs b/tools/Azure.Mcp.Tools.SreAgent/src/Commands/Threads/ThreadsInvestigateCommand.cs index 874e85ff5d..4c6a89de43 100644 --- a/tools/Azure.Mcp.Tools.SreAgent/src/Commands/Threads/ThreadsInvestigateCommand.cs +++ b/tools/Azure.Mcp.Tools.SreAgent/src/Commands/Threads/ThreadsInvestigateCommand.cs @@ -11,7 +11,17 @@ namespace Azure.Mcp.Tools.SreAgent.Commands.Threads; -[CommandMetadata(Id = "ab73d6fa-d53e-446c-9d4c-9d8cf41a3106", Name = "investigate", Title = "Investigate With Agent", Description = "Investigate an issue or incident using an SRE Agent. Sends your investigation message and automatically follows up on agent questions until the investigation is complete.", Destructive = false, Idempotent = false, OpenWorld = true, ReadOnly = false, Secret = false, LocalRequired = false)] +[CommandMetadata( + Id = "ab73d6fa-d53e-446c-9d4c-9d8cf41a3106", + Name = "investigate", + Title = "Investigate With Agent", + Description = "Investigate an issue or incident using an SRE Agent. Sends your investigation message and automatically follows up on agent questions until the investigation is complete.", + Destructive = false, + Idempotent = false, + OpenWorld = true, + ReadOnly = false, + Secret = false, + LocalRequired = false)] public sealed class ThreadsInvestigateCommand(ILogger logger, ISreAgentService sreAgentService) : SreAgentDataPlaneCommand { private readonly ILogger _logger = logger; diff --git a/tools/Azure.Mcp.Tools.SreAgent/src/Commands/Threads/ThreadsInvestigateYoloCommand.cs b/tools/Azure.Mcp.Tools.SreAgent/src/Commands/Threads/ThreadsInvestigateYoloCommand.cs index b6a6bba58d..0fc95804ce 100644 --- a/tools/Azure.Mcp.Tools.SreAgent/src/Commands/Threads/ThreadsInvestigateYoloCommand.cs +++ b/tools/Azure.Mcp.Tools.SreAgent/src/Commands/Threads/ThreadsInvestigateYoloCommand.cs @@ -11,7 +11,17 @@ namespace Azure.Mcp.Tools.SreAgent.Commands.Threads; -[CommandMetadata(Id = "a75f43f7-e08b-47e3-9ef4-8a5832cc3b07", Name = "investigate_yolo", Title = "Investigate With Agent YOLO", Description = "Yolo investigation mode: runs an investigation on an SRE Agent and automatically grants all pending approval requests without waiting for human confirmation. Use this when you want the agent to proceed without any approval gates.", Destructive = false, Idempotent = false, OpenWorld = true, ReadOnly = false, Secret = false, LocalRequired = false)] +[CommandMetadata( + Id = "a75f43f7-e08b-47e3-9ef4-8a5832cc3b07", + Name = "investigate_yolo", + Title = "Investigate With Agent YOLO", + Description = "Yolo investigation mode: runs an investigation on an SRE Agent and automatically grants all pending approval requests without waiting for human confirmation. Use this when you want the agent to proceed without any approval gates.", + Destructive = false, + Idempotent = false, + OpenWorld = true, + ReadOnly = false, + Secret = false, + LocalRequired = false)] public sealed class ThreadsInvestigateYoloCommand(ILogger logger, ISreAgentService sreAgentService) : SreAgentDataPlaneCommand { private readonly ILogger _logger = logger; diff --git a/tools/Azure.Mcp.Tools.SreAgent/src/Commands/Threads/ThreadsListCommand.cs b/tools/Azure.Mcp.Tools.SreAgent/src/Commands/Threads/ThreadsListCommand.cs index 610a980fdb..f2d812e49a 100644 --- a/tools/Azure.Mcp.Tools.SreAgent/src/Commands/Threads/ThreadsListCommand.cs +++ b/tools/Azure.Mcp.Tools.SreAgent/src/Commands/Threads/ThreadsListCommand.cs @@ -10,7 +10,17 @@ namespace Azure.Mcp.Tools.SreAgent.Commands.Threads; -[CommandMetadata(Id = "23b7c0d6-29c5-4d8f-82de-1e0edc1a9b01", Name = "list", Title = "List Threads", Description = "List SRE Agent chat threads.", Destructive = false, Idempotent = true, OpenWorld = false, ReadOnly = true, Secret = false, LocalRequired = false)] +[CommandMetadata( + Id = "23b7c0d6-29c5-4d8f-82de-1e0edc1a9b01", + Name = "list", + Title = "List Threads", + Description = "List SRE Agent chat threads.", + Destructive = false, + Idempotent = true, + OpenWorld = false, + ReadOnly = true, + Secret = false, + LocalRequired = false)] public sealed class ThreadsListCommand(ILogger logger, ISreAgentService sreAgentService) : SreAgentDataPlaneCommand { private readonly ILogger _logger = logger; diff --git a/tools/Azure.Mcp.Tools.SreAgent/src/Commands/Threads/ThreadsSendMessageCommand.cs b/tools/Azure.Mcp.Tools.SreAgent/src/Commands/Threads/ThreadsSendMessageCommand.cs index 8150f55dfa..e216e61ceb 100644 --- a/tools/Azure.Mcp.Tools.SreAgent/src/Commands/Threads/ThreadsSendMessageCommand.cs +++ b/tools/Azure.Mcp.Tools.SreAgent/src/Commands/Threads/ThreadsSendMessageCommand.cs @@ -12,7 +12,17 @@ namespace Azure.Mcp.Tools.SreAgent.Commands.Threads; -[CommandMetadata(Id = "35c72f68-e2b3-4e7b-bb89-4f1d4a6f2104", Name = "send_message", Title = "Send Thread Message", Description = "Send a message to an existing SRE Agent thread.", Destructive = false, Idempotent = false, OpenWorld = true, ReadOnly = false, Secret = false, LocalRequired = false)] +[CommandMetadata( + Id = "35c72f68-e2b3-4e7b-bb89-4f1d4a6f2104", + Name = "send_message", + Title = "Send Thread Message", + Description = "Send a message to an existing SRE Agent thread.", + Destructive = false, + Idempotent = false, + OpenWorld = true, + ReadOnly = false, + Secret = false, + LocalRequired = false)] public sealed class ThreadsSendMessageCommand(ILogger logger, ISreAgentService sreAgentService) : SreAgentDataPlaneCommand { private readonly ILogger _logger = logger; diff --git a/tools/Azure.Mcp.Tools.SreAgent/src/Commands/Workflows/WorkflowsApplyCommand.cs b/tools/Azure.Mcp.Tools.SreAgent/src/Commands/Workflows/WorkflowsApplyCommand.cs index f8e4ac4f44..c35aa3bd76 100644 --- a/tools/Azure.Mcp.Tools.SreAgent/src/Commands/Workflows/WorkflowsApplyCommand.cs +++ b/tools/Azure.Mcp.Tools.SreAgent/src/Commands/Workflows/WorkflowsApplyCommand.cs @@ -14,7 +14,17 @@ namespace Azure.Mcp.Tools.SreAgent.Commands.Workflows; -[CommandMetadata(Id = "7217d724-f07f-4e56-81bc-5e6e182fe987", Name = "apply", Title = "Apply Workflow YAML", Description = "Apply and deploy a YAML workflow to an SRE Agent. Uploads and activates ExtendedAgent or ExtendedAgentTool YAML configuration on the specified SRE Agent resource.", Destructive = false, Idempotent = true, OpenWorld = false, ReadOnly = false, Secret = false, LocalRequired = false)] +[CommandMetadata( + Id = "7217d724-f07f-4e56-81bc-5e6e182fe987", + Name = "apply", + Title = "Apply Workflow YAML", + Description = "Apply and deploy a YAML workflow to an SRE Agent. Uploads and activates ExtendedAgent or ExtendedAgentTool YAML configuration on the specified SRE Agent resource.", + Destructive = false, + Idempotent = true, + OpenWorld = false, + ReadOnly = false, + Secret = false, + LocalRequired = false)] public sealed class WorkflowsApplyCommand(ILogger logger, ISreAgentService sreAgentService) : SreAgentDataPlaneCommand { private readonly ILogger _logger = logger; diff --git a/tools/Azure.Mcp.Tools.SreAgent/src/Commands/Workflows/WorkflowsGenerateCommand.cs b/tools/Azure.Mcp.Tools.SreAgent/src/Commands/Workflows/WorkflowsGenerateCommand.cs index a3b59e2354..bdf693d4d8 100644 --- a/tools/Azure.Mcp.Tools.SreAgent/src/Commands/Workflows/WorkflowsGenerateCommand.cs +++ b/tools/Azure.Mcp.Tools.SreAgent/src/Commands/Workflows/WorkflowsGenerateCommand.cs @@ -11,7 +11,17 @@ namespace Azure.Mcp.Tools.SreAgent.Commands.Workflows; -[CommandMetadata(Id = "6cb0ff68-d279-44bc-9935-84f0b181240b", Name = "generate", Title = "Generate Workflow YAML", Description = "Generate a YAML workflow definition for a named SRE Agent tool or agent. Creates validated YAML configuration for ExtendedAgent, KustoTool, or LinkTool resources.", Destructive = false, Idempotent = true, OpenWorld = false, ReadOnly = true, Secret = false, LocalRequired = false)] +[CommandMetadata( + Id = "6cb0ff68-d279-44bc-9935-84f0b181240b", + Name = "generate", + Title = "Generate Workflow YAML", + Description = "Generate a YAML workflow definition for a named SRE Agent tool or agent. Creates validated YAML configuration for ExtendedAgent, KustoTool, or LinkTool resources.", + Destructive = false, + Idempotent = true, + OpenWorld = false, + ReadOnly = true, + Secret = false, + LocalRequired = false)] public sealed class WorkflowsGenerateCommand(ILogger logger) : GlobalCommand { private readonly ILogger _logger = logger; diff --git a/tools/Azure.Mcp.Tools.SreAgent/src/Commands/Workflows/WorkflowsValidateCommand.cs b/tools/Azure.Mcp.Tools.SreAgent/src/Commands/Workflows/WorkflowsValidateCommand.cs index 70919f0ea0..27a869e25d 100644 --- a/tools/Azure.Mcp.Tools.SreAgent/src/Commands/Workflows/WorkflowsValidateCommand.cs +++ b/tools/Azure.Mcp.Tools.SreAgent/src/Commands/Workflows/WorkflowsValidateCommand.cs @@ -11,7 +11,17 @@ namespace Azure.Mcp.Tools.SreAgent.Commands.Workflows; -[CommandMetadata(Id = "a22bbea7-e805-4039-891c-ac570bb29c9f", Name = "validate", Title = "Validate Workflow YAML", Description = "Validate SRE Agent YAML content for common issues.", Destructive = false, Idempotent = true, OpenWorld = false, ReadOnly = true, Secret = false, LocalRequired = false)] +[CommandMetadata( + Id = "a22bbea7-e805-4039-891c-ac570bb29c9f", + Name = "validate", + Title = "Validate Workflow YAML", + Description = "Validate SRE Agent YAML content for common issues.", + Destructive = false, + Idempotent = true, + OpenWorld = false, + ReadOnly = true, + Secret = false, + LocalRequired = false)] public sealed class WorkflowsValidateCommand(ILogger logger) : GlobalCommand { private readonly ILogger _logger = logger; diff --git a/tools/Azure.Mcp.Tools.Storage/src/Commands/Blob/BlobGetCommand.cs b/tools/Azure.Mcp.Tools.Storage/src/Commands/Blob/BlobGetCommand.cs index d64c1e9f09..55d15c79f3 100644 --- a/tools/Azure.Mcp.Tools.Storage/src/Commands/Blob/BlobGetCommand.cs +++ b/tools/Azure.Mcp.Tools.Storage/src/Commands/Blob/BlobGetCommand.cs @@ -21,9 +21,6 @@ namespace Azure.Mcp.Tools.Storage.Commands.Blob; get details for a specific blob. If no blob specified, lists all blobs present in the container, optionally filtering on a prefix. The prefix is ignored if a blob is specified. - Required: --account, --container, --subscription - Optional: --blob, --tenant, --prefix - Returns: blob name, size, lastModified, contentType, contentHash, metadata, and blob properties. Do not use this tool to list containers in the storage account. """, diff --git a/tools/Azure.Mcp.Tools.Storage/src/Commands/Blob/Container/ContainerCreateCommand.cs b/tools/Azure.Mcp.Tools.Storage/src/Commands/Blob/Container/ContainerCreateCommand.cs index c248c86ae6..7969060358 100644 --- a/tools/Azure.Mcp.Tools.Storage/src/Commands/Blob/Container/ContainerCreateCommand.cs +++ b/tools/Azure.Mcp.Tools.Storage/src/Commands/Blob/Container/ContainerCreateCommand.cs @@ -17,13 +17,9 @@ namespace Azure.Mcp.Tools.Storage.Commands.Blob.Container; Name = "create", Title = "Create Storage Blob Container", Description = """ - Create/provision a new Azure Storage blob container in a storage account. - - Required: --account, --container, --subscription - Optional: --tenant - + Create/provision a new Azure Storage blob container in a storage account. This is a logical container for organizing blobs within a storage account. + Returns: container name, lastModified, eTag, leaseStatus, publicAccessLevel, hasImmutabilityPolicy, hasLegalHold. - Creates a logical container for organizing blobs within a storage account. """, Destructive = true, Idempotent = false, diff --git a/tools/Azure.Mcp.Tools.Storage/src/Commands/Blob/Container/ContainerGetCommand.cs b/tools/Azure.Mcp.Tools.Storage/src/Commands/Blob/Container/ContainerGetCommand.cs index 01d991661b..3d01ee05f1 100644 --- a/tools/Azure.Mcp.Tools.Storage/src/Commands/Blob/Container/ContainerGetCommand.cs +++ b/tools/Azure.Mcp.Tools.Storage/src/Commands/Blob/Container/ContainerGetCommand.cs @@ -21,9 +21,6 @@ namespace Azure.Mcp.Tools.Storage.Commands.Blob.Container; show details for a specific Storage container. If no container specified, shows all containers in the storage account, optionally filtering on a prefix. The prefix is ignored if a container is specified. - Required: --account, --subscription - Optional: --container, --tenant, --prefix - Returns: container name, lastModified, leaseStatus, publicAccess, metadata, and container properties. Do not use this tool to list blobs in a container. """, diff --git a/tools/Azure.Mcp.Tools.Storage/src/Commands/Table/TableListCommand.cs b/tools/Azure.Mcp.Tools.Storage/src/Commands/Table/TableListCommand.cs index 0b9f031833..8d761591ca 100644 --- a/tools/Azure.Mcp.Tools.Storage/src/Commands/Table/TableListCommand.cs +++ b/tools/Azure.Mcp.Tools.Storage/src/Commands/Table/TableListCommand.cs @@ -16,7 +16,7 @@ namespace Azure.Mcp.Tools.Storage.Table.Commands; Id = "1236ad1d-baf1-4b95-8c1d-420637ce08da", Name = "list", Title = "List Tables in Azure Storage", - Description = "List all tables in an Azure Storage account. Shows table names for the specified storage account. Required: account, subscription. Optional: tenant. Returns: table names. Do not use this tool for Cosmos DB tables or Kusto/Data Explorer tables.", + Description = "List all tables in an Azure Storage account. Shows table names for the specified storage account. Returns: table names. Do not use this tool for Cosmos DB tables or Kusto/Data Explorer tables.", Destructive = false, Idempotent = true, OpenWorld = false, diff --git a/tools/Azure.Mcp.Tools.Storage/src/Options/StorageOptionDefinitions.cs b/tools/Azure.Mcp.Tools.Storage/src/Options/StorageOptionDefinitions.cs index cd88e616a2..44b18d7606 100644 --- a/tools/Azure.Mcp.Tools.Storage/src/Options/StorageOptionDefinitions.cs +++ b/tools/Azure.Mcp.Tools.Storage/src/Options/StorageOptionDefinitions.cs @@ -62,13 +62,13 @@ public static class StorageOptionDefinitions public static readonly Option Blob = new($"--{BlobName}") { - Description = "The name of the blob to access within the container. This should be the full path within the container (e.g., 'file.txt' or 'folder/file.txt').", + Description = "The name of the blob to access within the container. This is the full path within the container (e.g., 'file.txt' or 'folder/file.txt').", Required = true }; public static readonly Option LocalFilePath = new($"--{LocalFilePathName}") { - Description = "The local file path to read content from or to write content to. This should be the full path to the file on your local system.", + Description = "The local file path to read content from or to write content to. This is the full path to the file on your local system.", Required = true }; diff --git a/tools/Azure.Mcp.Tools.StorageSync/src/Commands/CloudEndpoint/CloudEndpointGetCommand.cs b/tools/Azure.Mcp.Tools.StorageSync/src/Commands/CloudEndpoint/CloudEndpointGetCommand.cs index 5dc24757b0..0c4c663c98 100644 --- a/tools/Azure.Mcp.Tools.StorageSync/src/Commands/CloudEndpoint/CloudEndpointGetCommand.cs +++ b/tools/Azure.Mcp.Tools.StorageSync/src/Commands/CloudEndpoint/CloudEndpointGetCommand.cs @@ -18,7 +18,7 @@ namespace Azure.Mcp.Tools.StorageSync.Commands.CloudEndpoint; Id = "25dd8bb3-5ba3-4c0d-993d-54917f63d52e", Name = "get", Title = "Get Cloud Endpoint", - Description = "List all cloud endpoints in a sync group or retrieve details about a specific cloud endpoint. Returns cloud endpoint properties including Azure File Share configuration, storage account details, and provisioning state. Use --cloud-endpoint-name for a specific endpoint.", + Description = "List all cloud endpoints in a sync group or retrieve details about a specific cloud endpoint. Returns cloud endpoint properties including Azure File Share configuration, storage account details, and provisioning state. Use cloud-endpoint-name for a specific endpoint.", Destructive = false, Idempotent = true, OpenWorld = false, diff --git a/tools/Azure.Mcp.Tools.StorageSync/src/Commands/RegisteredServer/RegisteredServerGetCommand.cs b/tools/Azure.Mcp.Tools.StorageSync/src/Commands/RegisteredServer/RegisteredServerGetCommand.cs index 7e9d1f8a3d..38f0ddaa61 100644 --- a/tools/Azure.Mcp.Tools.StorageSync/src/Commands/RegisteredServer/RegisteredServerGetCommand.cs +++ b/tools/Azure.Mcp.Tools.StorageSync/src/Commands/RegisteredServer/RegisteredServerGetCommand.cs @@ -18,7 +18,7 @@ namespace Azure.Mcp.Tools.StorageSync.Commands.RegisteredServer; Id = "fe3b07c3-9a11-465e-bfb6-6461b85b2e52", Name = "get", Title = "Get Registered Server", - Description = "List all registered servers in a Storage Sync service or retrieve details about a specific registered server. Returns server properties including server ID, registration status, agent version, OS version, and last heartbeat. Use --server-id for a specific server.", + Description = "List all registered servers in a Storage Sync service or retrieve details about a specific registered server. Returns server properties including server ID, registration status, agent version, OS version, and last heartbeat. Use server-id for a specific server.", Destructive = false, Idempotent = true, OpenWorld = false, diff --git a/tools/Azure.Mcp.Tools.StorageSync/src/Commands/ServerEndpoint/ServerEndpointGetCommand.cs b/tools/Azure.Mcp.Tools.StorageSync/src/Commands/ServerEndpoint/ServerEndpointGetCommand.cs index 282e44dbde..d65968b133 100644 --- a/tools/Azure.Mcp.Tools.StorageSync/src/Commands/ServerEndpoint/ServerEndpointGetCommand.cs +++ b/tools/Azure.Mcp.Tools.StorageSync/src/Commands/ServerEndpoint/ServerEndpointGetCommand.cs @@ -18,7 +18,7 @@ namespace Azure.Mcp.Tools.StorageSync.Commands.ServerEndpoint; Id = "cf197b94-6aa6-403b-8679-3a1ce5440ca3", Name = "get", Title = "Get Server Endpoint", - Description = "List all server endpoints in a sync group or retrieve details about a specific server endpoint. Returns server endpoint properties including local path, cloud tiering status, sync health, and provisioning state. Use --name for a specific endpoint.", + Description = "List all server endpoints in a sync group or retrieve details about a specific server endpoint. Returns server endpoint properties including local path, cloud tiering status, sync health, and provisioning state. Use name for a specific endpoint.", Destructive = false, Idempotent = true, OpenWorld = false, diff --git a/tools/Azure.Mcp.Tools.StorageSync/src/Commands/StorageSyncService/StorageSyncServiceGetCommand.cs b/tools/Azure.Mcp.Tools.StorageSync/src/Commands/StorageSyncService/StorageSyncServiceGetCommand.cs index 75b04a1d07..2b88ba6003 100644 --- a/tools/Azure.Mcp.Tools.StorageSync/src/Commands/StorageSyncService/StorageSyncServiceGetCommand.cs +++ b/tools/Azure.Mcp.Tools.StorageSync/src/Commands/StorageSyncService/StorageSyncServiceGetCommand.cs @@ -18,7 +18,7 @@ namespace Azure.Mcp.Tools.StorageSync.Commands.StorageSyncService; Id = "77734a55-8290-4c16-8b37-cf37277f018f", Name = "get", Title = "Get Storage Sync Service", - Description = "Retrieve Azure Storage Sync service details or list all Storage Sync services. Use --name to get a specific service, or omit it to list all services in the subscription or resource group. Shows service properties, location, provisioning state, and configuration.", + Description = "Retrieve Azure Storage Sync service details or list all Storage Sync services. Use name to get a specific service, or omit it to list all services in the subscription or resource group. Shows service properties, location, provisioning state, and configuration.", Destructive = false, Idempotent = true, OpenWorld = false, diff --git a/tools/Azure.Mcp.Tools.StorageSync/src/Commands/SyncGroup/SyncGroupGetCommand.cs b/tools/Azure.Mcp.Tools.StorageSync/src/Commands/SyncGroup/SyncGroupGetCommand.cs index 382bade8a4..af4ef71b34 100644 --- a/tools/Azure.Mcp.Tools.StorageSync/src/Commands/SyncGroup/SyncGroupGetCommand.cs +++ b/tools/Azure.Mcp.Tools.StorageSync/src/Commands/SyncGroup/SyncGroupGetCommand.cs @@ -18,7 +18,7 @@ namespace Azure.Mcp.Tools.StorageSync.Commands.SyncGroup; Id = "95ce2336-19e6-40fb-a3ea-e2a76772036b", Name = "get", Title = "Get Sync Group", - Description = "Get details about a specific sync group or list all sync groups. If --sync-group-name is provided, returns a specific sync group; otherwise, lists all sync groups in the Storage Sync service.", + Description = "Get details about a specific sync group or list all sync groups. If sync-group-name is provided, returns a specific sync group; otherwise, lists all sync groups in the Storage Sync service.", Destructive = false, Idempotent = true, OpenWorld = false, diff --git a/tools/Azure.Mcp.Tools.StorageSync/src/Options/StorageSyncOptionDefinitions.cs b/tools/Azure.Mcp.Tools.StorageSync/src/Options/StorageSyncOptionDefinitions.cs index 42e1a45f46..47cd3e85ba 100644 --- a/tools/Azure.Mcp.Tools.StorageSync/src/Options/StorageSyncOptionDefinitions.cs +++ b/tools/Azure.Mcp.Tools.StorageSync/src/Options/StorageSyncOptionDefinitions.cs @@ -99,7 +99,7 @@ public static class CloudEndpoint public static readonly Option ChangeDetectionMode = new($"--{ChangeDetectionModeName}") { - Description = "Change detection mode: 'Default' (directory only) or 'Recursive' (directory and subdirectories). Applies to the directory specified in directory-path" + Description = $"Change detection mode: 'Default' (directory only) or 'Recursive' (directory and subdirectories). Applies to the directory specified in {DirectoryPathName}" }; public static readonly Option Paths = new($"--{PathsName}") diff --git a/tools/Azure.Mcp.Tools.VirtualDesktop/src/Commands/Hostpool/HostpoolListCommand.cs b/tools/Azure.Mcp.Tools.VirtualDesktop/src/Commands/Hostpool/HostpoolListCommand.cs index 532d4ea704..997e5403e9 100644 --- a/tools/Azure.Mcp.Tools.VirtualDesktop/src/Commands/Hostpool/HostpoolListCommand.cs +++ b/tools/Azure.Mcp.Tools.VirtualDesktop/src/Commands/Hostpool/HostpoolListCommand.cs @@ -6,7 +6,6 @@ using Microsoft.Extensions.Logging; using Microsoft.Mcp.Core.Commands; using Microsoft.Mcp.Core.Models.Command; -using Microsoft.Mcp.Core.Models.Option; namespace Azure.Mcp.Tools.VirtualDesktop.Commands.Hostpool; @@ -15,9 +14,8 @@ namespace Azure.Mcp.Tools.VirtualDesktop.Commands.Hostpool; Name = "list", Title = "List hostpools", Description = """ - List all hostpools in a subscription or resource group. This command retrieves all Azure Virtual Desktop hostpool objects available - in the specified --subscription. If a resource group is specified, only hostpools in that resource group are returned. - Results include hostpool names and are returned as a JSON array. + List all Azure Virtual Desktop hostpool objects available in a subscription or resource group. + Results include hostpool names. """, Destructive = false, Idempotent = true, diff --git a/tools/Azure.Mcp.Tools.VirtualDesktop/src/Commands/SessionHost/SessionHostListCommand.cs b/tools/Azure.Mcp.Tools.VirtualDesktop/src/Commands/SessionHost/SessionHostListCommand.cs index b1fed6bf18..95ea6fbd8d 100644 --- a/tools/Azure.Mcp.Tools.VirtualDesktop/src/Commands/SessionHost/SessionHostListCommand.cs +++ b/tools/Azure.Mcp.Tools.VirtualDesktop/src/Commands/SessionHost/SessionHostListCommand.cs @@ -8,7 +8,6 @@ using Microsoft.Extensions.Logging; using Microsoft.Mcp.Core.Commands; using Microsoft.Mcp.Core.Models.Command; -using Microsoft.Mcp.Core.Models.Option; namespace Azure.Mcp.Tools.VirtualDesktop.Commands.SessionHost; @@ -17,9 +16,8 @@ namespace Azure.Mcp.Tools.VirtualDesktop.Commands.SessionHost; Name = "list", Title = "List SessionHosts", Description = """ - List all SessionHosts in a hostpool. This command retrieves all Azure Virtual Desktop SessionHost objects available - in the specified --subscription and hostpool. Results include SessionHost details and are - returned as a JSON array. + List all Azure Virtual Desktop SessionHost objects available in a hostpool. + Results include SessionHost details and are returned as a JSON array. """, Destructive = false, Idempotent = true, diff --git a/tools/Azure.Mcp.Tools.VirtualDesktop/src/Commands/SessionHost/SessionHostUserSessionListCommand.cs b/tools/Azure.Mcp.Tools.VirtualDesktop/src/Commands/SessionHost/SessionHostUserSessionListCommand.cs index a9ff56dbd9..2ab93caa60 100644 --- a/tools/Azure.Mcp.Tools.VirtualDesktop/src/Commands/SessionHost/SessionHostUserSessionListCommand.cs +++ b/tools/Azure.Mcp.Tools.VirtualDesktop/src/Commands/SessionHost/SessionHostUserSessionListCommand.cs @@ -15,9 +15,8 @@ namespace Azure.Mcp.Tools.VirtualDesktop.Commands.SessionHost; Name = "user-list", Title = "List User Sessions on Session Host", Description = """ - List all user sessions on a specific session host in a host pool. This command retrieves all Azure Virtual Desktop - user session objects available on the specified session host. Results include user session details such as - user principal name, session state, application type, and creation time. + List all Azure Virtual Desktop user session objects available on the specified session host in a host pool. + Results include user session details such as user principal name, session state, application type, and creation time. """, Destructive = false, Idempotent = true, diff --git a/tools/Azure.Mcp.Tools.VirtualDesktop/src/Options/VirtualDesktopOptionDefinitions.cs b/tools/Azure.Mcp.Tools.VirtualDesktop/src/Options/VirtualDesktopOptionDefinitions.cs index a7c32d4e8c..a158f99843 100644 --- a/tools/Azure.Mcp.Tools.VirtualDesktop/src/Options/VirtualDesktopOptionDefinitions.cs +++ b/tools/Azure.Mcp.Tools.VirtualDesktop/src/Options/VirtualDesktopOptionDefinitions.cs @@ -8,37 +8,21 @@ public static class VirtualDesktopOptionDefinitions public const string HostPoolName = "hostpool"; public const string HostPoolResourceId = "hostpool-resource-id"; public const string SessionHostName = "sessionhost"; - public const string ResourceGroupName = "resource-group"; - public static readonly Option HostPool = new( - $"--{HostPoolName}" - ) + public static readonly Option HostPool = new($"--{HostPoolName}") { Description = "The name of the Azure Virtual Desktop host pool. This is the unique name you chose for your hostpool." - }; - public static readonly Option HostPoolResourceIdOption = new( - $"--{HostPoolResourceId}" - ) + public static readonly Option HostPoolResourceIdOption = new($"--{HostPoolResourceId}") { Description = "The Azure resource ID of the host pool. When provided, this will be used instead of searching by name." - }; - public static readonly Option SessionHost = new( - $"--{SessionHostName}" - ) + public static readonly Option SessionHost = new($"--{SessionHostName}") { Description = "The name of the session host. This is the computer name of the virtual machine in the host pool.", Required = true }; - - public static readonly Option ResourceGroup = new( - $"--{ResourceGroupName}" - ) - { - Description = "The name of the Azure resource group. This is a logical container for Azure resources.", - }; } diff --git a/tools/Azure.Mcp.Tools.WellArchitectedFramework/src/Commands/ServiceGuide/ServiceGuideGetCommand.cs b/tools/Azure.Mcp.Tools.WellArchitectedFramework/src/Commands/ServiceGuide/ServiceGuideGetCommand.cs index ad2176c58b..2c030fa50b 100644 --- a/tools/Azure.Mcp.Tools.WellArchitectedFramework/src/Commands/ServiceGuide/ServiceGuideGetCommand.cs +++ b/tools/Azure.Mcp.Tools.WellArchitectedFramework/src/Commands/ServiceGuide/ServiceGuideGetCommand.cs @@ -17,7 +17,7 @@ namespace Azure.Mcp.Tools.WellArchitectedFramework.Commands.ServiceGuide; Title = "Get Well-Architected Framework Service Guide", Description = """ Get Azure Well-Architected Framework guidance for a specific Azure service, or list all supported services when no service is specified. When a service is provided, returns architectural best practices, design patterns, and recommendations based on the five pillars: reliability, security, cost optimization, operational excellence, and performance efficiency. - Optional: --service: A single Azure service name. Service name format: case-insensitive; hyphens, underscores, spaces, and name variations allowed; use double quotes (not single quotes) for names with spaces. e.g., cosmos-db, Cosmos_DB, "Cosmos DB", cosmosdb, cosmos-database, cosmosdatabase + Service name format: case-insensitive; hyphens, underscores, spaces, and name variations allowed; use double quotes (not single quotes) for names with spaces. e.g., cosmos-db, Cosmos_DB, "Cosmos DB", cosmosdb, cosmos-database, cosmosdatabase """, Destructive = false, Idempotent = true,