mcpField
🧠
🧠 Azure Self Help MCP Server

🧠 Azure Self Help MCP Server

本地服务
github.com/akshaykokane云与基础设施182 周前更新

关于 🧠 Azure Self Help MCP Server

这是一个 MCP 服务,将 Azure Self Help API 工作流开放出来,用于逐步排查 Azure 资源问题。适合需要创建、推进、查看或重启故障排查会话的 AI 应用和 Agent。

主要功能

  1. 01创建故障排查会话
  2. 02查看当前步骤和说明
  3. 03提交回复以继续会话
  4. 04结束或重启会话
  5. 05使用 DefaultAzureCredential 身份验证

适用场景

  1. 01引导诊断 Azure VM 的 SSH 访问问题
  2. 02交互式推进 Azure 故障排查流程

MCP 相关

它将 Azure Self Help API 操作作为 MCP 工具提供给兼容宿主,包括创建会话、获取步骤、继续、结束和重启会话。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

🧠 Azure 自助服务 MCP 服务

欢迎使用 Azure 故障排查 MCP 服务——这是 Model Context Protocol (MCP) 的实践实现,旨在让智能 Agent(如 Claude 或 Semantic Kernel)通过 Azure Self Help API,逐步排查 Azure 资源问题。

简而言之:它让你的 AI 应用可以 与 Azure Guided Troubleshooter 对话,自动执行常见诊断工作流。


💡 这是什么?

本项目实现了一个 MCP 服务,将 Azure 的 Self Help API 封装为一组工具。连接到 MCP Host(如 Claude Desktop 或 SK App)后,你可以让 Agent:

  • 创建故障排查会话
  • 查看当前步骤
  • 根据你的回复继续流程
  • 结束或重启会话

你可以将它视为用于 Azure 诊断的交互式 AI 助手。


✨ 实时演示用例

❓ “我无法通过 SSH 连接到我的 Azure VM。”

此工具可以通过 Microsoft 的 Guided Troubleshooter API,让大模型以交互方式引导你了解可能的原因和解决方案。

应用运行演示


🧰 前置条件

  • .NET 8 SDK
  • Azure CLI(已登录)
  • Claude App 或任意 MCP Host
  • IDE / 终端

📦 设置

第 1 步:安装包
dotnet add package ModelContextProtocol --prerelease
dotnet add package Microsoft.Extensions.Hosting
dotnet add package Azure.ResourceManager.SelfHelp
dotnet add package Azure.Identity

第 2 步:创建 MCP 服务

在 Program.cs 中:

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

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

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

第 3 步:编写 MCP 工具

在 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...
}

🤖 Claude 或其他 Host 的 MCP 配置

要将 MCP 服务连接到 Claude 等兼容 MCP 的应用,请更新配置文件(在 Claude Desktop 中:Settings > Developer):

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

保存并重启后,Claude 就会检测到你的工具,随时为 Azure 诊断提供帮助!✅


🧪 可用工具

方法说明
CreateTroubleshooter为资源启动新的故障排查会话
GetTroubleshooterStep查看当前步骤和说明
ContinueTroubleshooter回答当前步骤的问题
EndTroubleshooter结束会话
RestartTroubleshooter从第一步重新开始

🛡 身份验证

使用 DefaultAzureCredential,因此开箱即用,支持:

  • Azure CLI
  • 环境变量
  • 托管标识

🧠 为什么这很重要

Model Context Protocol (MCP) 正在彻底改变大模型与工具的交互方式。通过为 Azure Help API 构建 MCP 服务,你可以:

  • 让 Azure 调试原生支持 Agent
  • 为 AI 应用赋予云端智能
  • 采用相同结构扩展至其他 Microsoft API

📎 相关文章


🙌 致谢

感谢出色的 Azure SDK 团队和 MCP 的创作者,让这种开发者魔法成为可能。✨


评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。