diff --git a/servers/Azure.Mcp.Server/CHANGELOG.md b/servers/Azure.Mcp.Server/CHANGELOG.md index 20641d3af8..2825326252 100644 --- a/servers/Azure.Mcp.Server/CHANGELOG.md +++ b/servers/Azure.Mcp.Server/CHANGELOG.md @@ -25,7 +25,8 @@ The Azure MCP Server updates automatically by default whenever a new release com - Improved error message for macOS users when interactive browser authentication fails due to broker threading requirements. The error now provides clear guidance to use Azure CLI, Azure PowerShell, or Azure Developer CLI for authentication instead.[[#684](https://github.com/microsoft/mcp/pull/684)] - Added validation for the Cosmos query command `azmcp_cosmos_database_container_item_query`.[[#524](https://github.com/microsoft/mcp/pull/524)] - Fixed the construction of Azure Resource Graph queries for App Configuration in the `FindAppConfigStore` method. The name filter is now correctly passed via the `additionalFilter` parameter instead of `tableName`, resolving "ExactlyOneStartingOperatorRequired" and "BadRequest" errors when setting key-value pairs. [[#670](https://github.com/microsoft/mcp/pull/670)] -- Updated the description of the Monitor tool and corrected the prompt for command `monitor_healthmodels_entity_gethealth` to ensure that the LLM picks up the correct tool. [[#630](https://github.com/microsoft/mcp/pull/630)] +- Updated the description of the Monitor tool and corrected the prompt for command `monitor_healthmodels_entity_gethealth` to ensure that the LLM picks up the correct tool. [[#630](https://github.com/microsoft/mcp/pull/630)] +- Fixed BadRequest error in Azure Container Registry to get a registry, and in EventHubs to get a namespace. [[#729](https://github.com/microsoft/mcp/pull/729)] ### Other Changes diff --git a/tools/Azure.Mcp.Tools.Acr/src/Services/AcrService.cs b/tools/Azure.Mcp.Tools.Acr/src/Services/AcrService.cs index e798bdfe13..0fe5c2553c 100644 --- a/tools/Azure.Mcp.Tools.Acr/src/Services/AcrService.cs +++ b/tools/Azure.Mcp.Tools.Acr/src/Services/AcrService.cs @@ -57,11 +57,11 @@ private async Task GetRegistry( { var registrie = await ExecuteSingleResourceQueryAsync( "Microsoft.ContainerRegistry/registries", - resourceGroup, - subscription, - retryPolicy, - ConvertToAcrRegistryInfoModel, - $"name =~ '{EscapeKqlString(registry)}'"); + resourceGroup: resourceGroup, + subscription: subscription, + retryPolicy: retryPolicy, + converter: ConvertToAcrRegistryInfoModel, + additionalFilter: $"name =~ '{EscapeKqlString(registry)}'"); if (registrie == null) { throw new KeyNotFoundException($"Container registry '{registry}' not found for subscription '{subscription}'."); diff --git a/tools/Azure.Mcp.Tools.AppConfig/src/Services/AppConfigService.cs b/tools/Azure.Mcp.Tools.AppConfig/src/Services/AppConfigService.cs index 4833eabe3c..7f1561c42c 100644 --- a/tools/Azure.Mcp.Tools.AppConfig/src/Services/AppConfigService.cs +++ b/tools/Azure.Mcp.Tools.AppConfig/src/Services/AppConfigService.cs @@ -165,9 +165,9 @@ private async Task FindAppConfigStore(string subscripti var account = await ExecuteSingleResourceQueryAsync( "Microsoft.AppConfiguration/configurationStores", resourceGroup: null, // all resource groups - subscription, - retryPolicy, - ConvertToAppConfigurationAccountModel, + subscription: subscription, + retryPolicy: retryPolicy, + converter: ConvertToAppConfigurationAccountModel, additionalFilter: $"name =~ '{EscapeKqlString(accountName)}'"); if (account == null) diff --git a/tools/Azure.Mcp.Tools.EventHubs/src/Services/EventHubsService.cs b/tools/Azure.Mcp.Tools.EventHubs/src/Services/EventHubsService.cs index 6397763479..74ad497c88 100644 --- a/tools/Azure.Mcp.Tools.EventHubs/src/Services/EventHubsService.cs +++ b/tools/Azure.Mcp.Tools.EventHubs/src/Services/EventHubsService.cs @@ -94,11 +94,11 @@ public async Task GetNamespaceAsync( { var namespaceDetails = await ExecuteSingleResourceQueryAsync( "Microsoft.EventHub/namespaces", - resourceGroup, - subscription, - retryPolicy, - ConvertToNamespace, - $"name =~ '{EscapeKqlString(namespaceName)}'"); + resourceGroup: resourceGroup, + subscription: subscription, + retryPolicy: retryPolicy, + converter: ConvertToNamespace, + additionalFilter: $"name =~ '{EscapeKqlString(namespaceName)}'"); if (namespaceDetails == null) { diff --git a/tools/Azure.Mcp.Tools.Kusto/src/Services/KustoService.cs b/tools/Azure.Mcp.Tools.Kusto/src/Services/KustoService.cs index 3d6a1c1edb..883430c7da 100644 --- a/tools/Azure.Mcp.Tools.Kusto/src/Services/KustoService.cs +++ b/tools/Azure.Mcp.Tools.Kusto/src/Services/KustoService.cs @@ -73,9 +73,9 @@ public async Task GetClusterAsync( var cluster = await ExecuteSingleResourceQueryAsync( "Microsoft.Kusto/clusters", resourceGroup: null, // all resource groups - subscriptionId, - retryPolicy, - ConvertToClusterModel, + subscription: subscriptionId, + retryPolicy: retryPolicy, + converter: ConvertToClusterModel, additionalFilter: $"name =~ '{EscapeKqlString(clusterName)}'"); if (cluster == null) diff --git a/tools/Azure.Mcp.Tools.Sql/src/Services/SqlService.cs b/tools/Azure.Mcp.Tools.Sql/src/Services/SqlService.cs index 761b6fa408..4574bfb7c4 100644 --- a/tools/Azure.Mcp.Tools.Sql/src/Services/SqlService.cs +++ b/tools/Azure.Mcp.Tools.Sql/src/Services/SqlService.cs @@ -43,10 +43,10 @@ public async Task GetDatabaseAsync( { var result = await ExecuteSingleResourceQueryAsync( "Microsoft.Sql/servers/databases", - resourceGroup, - subscription, - retryPolicy, - ConvertToSqlDatabaseModel, + resourceGroup: resourceGroup, + subscription: subscription, + retryPolicy: retryPolicy, + converter: ConvertToSqlDatabaseModel, additionalFilter: $"name =~ '{EscapeKqlString(databaseName)}'", cancellationToken: cancellationToken); diff --git a/tools/Azure.Mcp.Tools.Storage/src/Services/StorageService.cs b/tools/Azure.Mcp.Tools.Storage/src/Services/StorageService.cs index 54767f0d6e..498aa5ff2d 100644 --- a/tools/Azure.Mcp.Tools.Storage/src/Services/StorageService.cs +++ b/tools/Azure.Mcp.Tools.Storage/src/Services/StorageService.cs @@ -69,10 +69,10 @@ public async Task> GetAccountDetails( { var storageAccount = await ExecuteSingleResourceQueryAsync( "Microsoft.Storage/storageAccounts", - null, - subscription, - retryPolicy, - ConvertToAccountInfoModel, + resourceGroup: null, + subscription: subscription, + retryPolicy: retryPolicy, + converter: ConvertToAccountInfoModel, additionalFilter: $"name =~ '{EscapeKqlString(account)}'"); if (storageAccount == null)