PAYATHON 2026

如何让 GitHub Copilot 调用 Azure MCP Server 排查部署问题?

架构老王

可以实现,但必须先让当前代理接入 Azure 工具

Visual Studio 中的 GitHub Copilot Agent mode 可以调用 Azure MCP Server,读取资源信息并辅助调查故障。前提是已配置服务器、启用相关工具,运行服务器的身份也拥有所需权限。Visual Studio 接入指南

仅凭 Copilot 输出 PowerShell 脚本,还不能确定具体原因。需要依次检查当前聊天模式、工具是否加载、身份认证和工具调用记录。提示词可以表达调用意图,但无法补上缺失的连接或权限。

在 Visual Studio 中配置并验证

先确认安装的 Visual Studio 和 GitHub Copilot 支持 MCP 与 Agent mode。如果界面中没有相关入口,先检查版本和组织策略。

以 Node.js 方式为例,安装 Node.js LTS 后,在解决方案根目录创建 .mcp.json:

{
  "servers": {
    "Azure MCP Server": {
      "command": "npx",
      "args": [
        "-y",
        "@azure/mcp@latest",
        "server",
        "start"
      ]
    }
  }
}

然后打开 Copilot,切换到 Agent mode,在工具列表中确认 Azure MCP Server 已加载并启用所需工具。按照提示完成 Azure 登录和工具调用授权。上述文件位置和配置结构来自 Microsoft 的 Visual Studio 配置文档。

先用一个简单任务验证连接:

请调用 Azure MCP Server,列出订阅 <subscription-id> 中的资源组。
请实际执行工具,并根据返回结果回答。
如果无法调用,请说明缺少的工具、认证或权限。

检查界面中是否出现实际工具调用及其结果。Copilot 在文字中声称“已经检查”,不能代替调用记录。

如果工具入口受限,还要检查组织或企业的 MCP 策略。GitHub 允许管理员控制成员是否可以使用 MCP。GitHub MCP 说明

GitHub.com 需要单独配置

GitHub.com 的普通 Copilot Chat 与 Copilot cloud agent 是不同的运行入口。普通聊天的预置工具和云端代理使用的仓库 MCP 配置分开管理,也不能直接认为云端拥有本机 Visual Studio 的配置和登录状态。GitHub 各入口的 MCP 支持说明

如果要让 Copilot cloud agent 调用 Azure MCP Server,需要在仓库设置中的 Copilot → MCP servers 配置服务器,并为云端运行环境准备认证、运行依赖和网络访问。仓库配置使用 mcpServers,不能直接照搬上面的 servers 结构。

目前,仓库 MCP 配置不支持使用 OAuth 认证的远程服务器。本地能够弹出浏览器登录,不代表云端也能使用同一方案。具体配置应按所选认证方式验证。仓库 MCP 配置文档

连接成功后,再提交具体调查任务

Azure MCP Server 提供 Azure Monitor 工具,可以发现 Log Analytics workspace、查看表结构并查询日志。能否完成某项调查,取决于当前暴露的工具和可访问的数据。Azure Monitor 工具文档

可以用下面的提示词明确目标、范围和证据要求:

请使用当前已启用的 Azure MCP Server 工具调查以下问题:
订阅:<subscription-id>
资源组:<resource-group>
应用资源:<resource-id>
Application Insights:<application-insights-resource-id>
故障时间范围:<UTC-start> 至 <UTC-end>
现象:应用日志未出现,且调用 <target-resource> 返回 401。

先读取相关资源信息、可用日志表和故障时间范围内的记录。
结合仓库代码检查遥测配置和调用目标资源时使用的身份。
仅执行读取操作,列出工具返回的证据,并区分已确认事实与待验证假设。
如果某一步缺少工具、权限或数据,请明确说明,再提供最小补充操作。

如果日志缺失,应检查遥测是否启用、连接字符串是否指向预期资源,以及日志过滤或采样是否排除了目标记录。没有查到记录,不能直接证明应用没有产生日志。Application Insights 无数据排查指南

遇到 401 时,先确认哪个请求失败、使用了哪种认证方式,以及部署后的应用实际使用哪个身份。若使用 Microsoft Entra token,再检查 token 的目标资源、租户和有效期。Azure Identity 成功取得凭据后,目标服务仍可能返回 401 或 403,需要结合服务响应继续调查。Azure Identity 故障排查说明

权限和诊断能力的边界

Azure MCP Server 包含读取和修改类工具,不能把它整体当成只读服务器。调查时应限制可用工具和 Azure 身份权限;提示词中的“仅执行读取操作”不能替代实际权限限制。

能读取资源配置,也不代表一定能查询日志或访问服务数据。例如,Log Analytics 查询需要相应的 workspace 查询权限。Azure Monitor 日志查询权限说明

MCP 使用的身份与部署应用的运行身份也可能不同。代理成功读取资源,不能证明应用调用同一资源时的认证正常。对于没有采集到的日志、不可访问的运行环境或尚未暴露的诊断操作,仍可能需要补充一次手动采集。

备注:内容仅供参考。