Azure Scout MCP 服务端实现

使用说明(简明可执行步骤)

  • 项目简介
    • 该仓库实现了一个 MCP 服务器,提供对 Azure 区域、租户、订阅、区域映射、虚拟机 SKU 等资源的查询接口,以及用于工具调用和提示模板渲染的能力。服务器通过 MCP 协议暴露工具集,供 AI 客户端(如 Claude、Code Llama 等)以标准化方式获取上下文信息、执行外部功能和获取提示模板。
  • 主要功能点
    • MCP 工具注册与执行:实现 list_tenants、list_subscriptions、list_regions、get_zone_mappings、get_sku_availability、get_spot_scores、get_sku_deployment_confidence、get_sku_pricing_detail 等工具,支持内置与插件扩展的工具集。
    • 数据源整合:通过 az_scout.azure_api 及相关模块对 Azure 数据进行查询、区域映射、SKU 信息、定价、Spot 分数等聚合处理,并支持将结果转换为与 MCP 客户端兼容的 JSON-RPC 返回格式。
    • 与插件/内置工具的整合:支持内部插件拓展 MCP 工具、插件工具注册与主题化管理,便于 AI 客户端扩展能力。
    • Transport 选项:MCP 服务器默认通过标准输入/输出(stdio)进行通信,也可通过命中选项启用 Streamable HTTP 转换以支持 HTTP 传输协议。
    • 会话与安全性:通过 FastMCP 的设置管理,会话管理与传输安全设置可在启动时配置。
  • 安装步骤
    • 在具备 Python 环境的机器上,安装并运行该 MCP 服务器模块即可。典型启动方式如下(非代码描述,仅说明操作意图):
      • 使用标准 MCP 服务器:运行容器或命令行直接启动 az-scout 的 MCP 服务器,默认通过 stdio 传输。
      • 使用 Streamable HTTP 传输:若需要通过 HTTP 与 MCP 客户端交互,启用 http 参数后运行,确保网络连通性与认证配置完善。
  • 服务器配置(给 MCP 客户端的连接信息,JSON 描述,纯文本说明,不含代码)
    • serverName: "az-scout"
    • command: "az-scout"
    • args: ["mcp"]
    • transport: "stdio"(默认)或 "streamable-http"(通过 --http 启用)
    • 说明:这是 MCP 客户端连接到 MCP 服务器所需的基本信息。具体的 JSON 配置示例需在客户端处以人机可读的形式提供,便于理解与对接:
      • serverName 指定服务器在客户端侧的标识
      • command 指定启动命令
      • args 指定启动参数
      • transport 指定传输模式(stdio 或 streamable-http)
  • 基本使用方法
    • 启动方式
      • 运行 az-scout mcp(默认使用 stdio 传输)
      • 或运行 az-scout mcp --http(使用 Streamable HTTP 传输,便于远程/网络环境接入)
    • 客户端接入流程
      • 配置 MCP 客户端,指向以上 serverName、command、args,以及传输模式;客户端需要的仅是与 MCP 服务端交互的能力描述即可,无须携带 Azure 身份凭据等信息。
      • 客户端可通过 MCP 的工具调用接口,读取区域/订阅/区域映射、SKU 可用性、Spot 分数、部署自信度等信息,并可将结果转换为自己工作流所需的格式。
    • 运行与监控
      • 监控 MCP 服务器的输出与日志,确保工具加载正常、数据源连接正常、以及插件工具的注册与执行情况。

服务器信息