mcpField
🧠
🧠 Azure Self Help MCP Server

🧠 Azure Self Help MCP Server

Local
github.com/akshaykokaneCloud & Infra1Updated 82w ago

About 🧠 Azure Self Help MCP Server

An MCP server that exposes Azure Self Help API workflows for guided, step-by-step troubleshooting of Azure resources. It is intended for AI apps and agents that need to start, advance, inspect, or restart a troubleshooting session.

Key features

  1. 01Create troubleshooting sessions
  2. 02View the current step and instructions
  3. 03Submit responses to continue a session
  4. 04End or restart sessions
  5. 05Authenticate with DefaultAzureCredential

Use cases

  1. 01Guide diagnosis of Azure VM SSH access issues
  2. 02Continue an Azure troubleshooter interactively

MCP support

Exposes Azure Self Help API operations as MCP tools for compatible hosts, including session creation, step retrieval, continuation, ending, and restart.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

No install method listed yet

We haven’t collected a package or remote endpoint for this server. Follow the instructions in the project README.

Repository

Tools

No tool list yet

Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.

Details

From the project README

🧠 Azure Self Help MCP Server

Welcome to the Azure Troubleshooter MCP Server – a hands-on implementation of Model Context Protocol (MCP), designed to enable intelligent agents (like Claude or Semantic Kernel) to troubleshoot Azure resources step-by-step using the Azure Self Help API.

In short: it lets your AI app talk to Azure’s Guided Troubleshooter, automating common diagnostic workflows.


💡 What Is This?

This project implements an MCP Server that exposes Azure's Self Help API as a toolset. Once connected to an MCP Host (like Claude Desktop or an SK App), you can ask the agent to:

  • Create a troubleshooter session
  • View its current step
  • Continue the flow with your response
  • End or restart the session

Think of this as your interactive AI assistant for Azure diagnostics.


✨ Live Demo Use Case

❓ “I can’t SSH into my Azure VM.”

This tool lets an LLM walk you through possible causes and fixes interactively using Microsoft’s Guided Troubleshooter API.

Demo of the app in action


🧰 Prerequisites

  • .NET 8 SDK
  • Azure CLI (logged in)
  • Claude App or any MCP Host
  • IDE / Terminal

📦 Setup

Step 1: Install Packages
dotnet add package ModelContextProtocol --prerelease
dotnet add package Microsoft.Extensions.Hosting
dotnet add package Azure.ResourceManager.SelfHelp
dotnet add package Azure.Identity

Step 2: Create Your MCP Server

In Program.cs:

var builder = Host.CreateEmptyApplicationBuilder(settings: null);

builder.Services.AddMcpServer()
    .WithStdioServerTransport()
    .WithToolsFromAssembly(); // Registers [McpServerTool] methods

var app = builder.Build();
await app.RunAsync();

Step 3: Write Your MCP Tools

In AzureTroubleshooterTools.cs:

[McpServerToolType]
public static class AzureTroubleshooterTools
{
    [McpServerTool, Description("Create a troubleshooter session")]
    public static async Task<string> CreateTroubleshooter([Description("Resource Uri of the azure resource")]string scope)
    {
        string solutionId = "e104dbdf-9e14-4c9f-bc78-21ac90382231"; // this is solutionId for vm ssh issue. This id can be found using Discovery API of Azure Help, which will also be part of this MCP Server
        string troubleshooterName = Guid.NewGuid().ToString();
        var client = new ArmClient(new DefaultAzureCredential());

        var troubleshooterId = SelfHelpTroubleshooterResource.CreateResourceIdentifier(scope, troubleshooterName);
        var troubleshooter = client.GetSelfHelpTroubleshooterResource(troubleshooterId);

        var data = new SelfHelpTroubleshooterData
        {
            SolutionId = solutionId,
            Parameters = { ["ResourceURI"] = scope }
        };

        ArmOperation<SelfHelpTroubleshooterResource> lro = await troubleshooter.UpdateAsync(WaitUntil.Completed, data);
        return $"Troubleshooter created with ID: {lro.Value.Data.Id}";
    }

    // Tools: Get, Continue, End, Restart...
}

🤖 MCP Config for Claude or Other Hosts

To connect your MCP Server with an MCP-compatible app like Claude, update your config file (in Claude Desktop: Settings > Developer):

{
  "mcpServers": {
    "azurehelpTroubleshooter": {
      "command": "dotnet",
      "args": [
        "run",
        "--project",
        "/Users/yourname/Projects/AzureTroubleshooterServer",
        "--no-build"
      ]
    }
  }
}

Once saved and restarted, Claude will detect your tools — ready to assist with Azure diagnostics! ✅


🧪 Available Tools

MethodDescription
CreateTroubleshooterStart a new troubleshooter session for a resource
GetTroubleshooterStepView current step & instructions
ContinueTroubleshooterRespond to the current step's question
EndTroubleshooterEnd the session
RestartTroubleshooterStart over from step one

🛡 Authentication

Uses DefaultAzureCredential, so it works out-of-the-box with:

  • Azure CLI
  • Environment variables
  • Managed Identity

🧠 Why This Matters

Model Context Protocol (MCP) is revolutionizing how LLMs communicate with tools. By building an MCP Server for Azure Help APIs, you can:

  • Make Azure debugging agent-native
  • Empower AI apps with cloud intelligence
  • Extend to other Microsoft APIs with the same structure

📎 Related Blogs


🙌 Acknowledgements

Thanks to the amazing Azure SDK team and the creators of MCP for making this kind of developer magic possible. ✨


Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.