关于 🧠 Azure Self Help MCP Server
这是一个 MCP 服务,将 Azure Self Help API 工作流开放出来,用于逐步排查 Azure 资源问题。适合需要创建、推进、查看或重启故障排查会话的 AI 应用和 Agent。
主要功能
- 01创建故障排查会话
- 02查看当前步骤和说明
- 03提交回复以继续会话
- 04结束或重启会话
- 05使用 DefaultAzureCredential 身份验证
适用场景
- 01引导诊断 Azure VM 的 SSH 访问问题
- 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 的创作者,让这种开发者魔法成为可能。✨
- https://learn.microsoft.com/en-us/rest/api/help/
- https://docs.anthropic.com/en/docs/agents-and-tools/mcp
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。