Skip to main content
Glama

Azure MCP Server

Official
MIT License
1,161
  • Linux
  • Apple
AvailabilityStatusGetCommand.cs3.02 kB
// Copyright (c) Microsoft Corporation. // Licensed under the MIT License. using AzureMcp.Core.Commands; using AzureMcp.ResourceHealth.Models; using AzureMcp.ResourceHealth.Options.AvailabilityStatus; using AzureMcp.ResourceHealth.Services; using Microsoft.Extensions.Logging; namespace AzureMcp.ResourceHealth.Commands.AvailabilityStatus; /// <summary> /// Gets the current availability status of the specified Azure resource for health diagnostics. /// </summary> public sealed class AvailabilityStatusGetCommand(ILogger<AvailabilityStatusGetCommand> logger) : BaseResourceHealthCommand<AvailabilityStatusGetOptions>() { private const string CommandTitle = "Get Resource Availability Status"; private readonly ILogger<AvailabilityStatusGetCommand> _logger = logger; public override string Name => "get"; public override string Description => $""" Get the current availability status of an Azure resource to diagnose health issues. Provides detailed information about resource availability state, potential issues, and timestamps. Equivalent to Azure Resource Health availability status API. """; public override string Title => CommandTitle; public override ToolMetadata Metadata => new() { Destructive = false, ReadOnly = true }; protected override void RegisterOptions(Command command) { base.RegisterOptions(command); command.AddOption(ResourceHealthOptionDefinitions.ResourceId); } protected override AvailabilityStatusGetOptions BindOptions(ParseResult parseResult) { var options = base.BindOptions(parseResult); options.ResourceId = parseResult.GetValueForOption(ResourceHealthOptionDefinitions.ResourceId); return options; } public override async Task<CommandResponse> ExecuteAsync(CommandContext context, ParseResult parseResult) { var options = BindOptions(parseResult); try { if (!Validate(parseResult.CommandResult, context.Response).IsValid) { return context.Response; } var resourceHealthService = context.GetService<IResourceHealthService>() ?? throw new InvalidOperationException("Resource Health service is not available."); var status = await resourceHealthService.GetAvailabilityStatusAsync( options.ResourceId!, options.RetryPolicy); context.Response.Results = ResponseResult.Create( new AvailabilityStatusGetCommandResult(status), ResourceHealthJsonContext.Default.AvailabilityStatusGetCommandResult); } catch (Exception ex) { _logger.LogError(ex, "Failed to get availability status for resource {ResourceId}", options.ResourceId); HandleException(context, ex); } return context.Response; } internal record AvailabilityStatusGetCommandResult(Models.AvailabilityStatus Status); }

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Azure/azure-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server