/ ディレクトリ / プレイグラウンド / Azure AI Gateway
● 公式 Azure-Samples 🔑 自分のキーが必要

Azure AI Gateway

作者 Azure-Samples · Azure-Samples/AI-Gateway

MicrosoftのAPIMベースAIゲートウェイパターン — Azure API ManagementからLLMトラフィック(MCPを含む)のルーティング、メータリング、ガバナンスを実現します。

Azure AI Gatewayは、Azure API Management(APIM)をLLM/MCPエンドポイントの前段に配置し、認証・クォータ・キャッシュ・ルーティング・ログ・サーキットブレーカーを実現する方法を示すMicrosoftのリファレンス実装リポジトリです。このMCPはゲートウェイ操作を公開し、エージェントがそれらを設定・検査できるようにします。

なぜ使うのか

主な機能

ライブデモ

実際の動作

azure-ai-gateway.replay ▶ 準備完了
0/0

インストール

クライアントを選択

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "azure-ai-gateway": {
      "command": "uvx",
      "args": [
        "azure-ai-gateway-mcp"
      ]
    }
  }
}

Claude Desktop → Settings → Developer → Edit Config を開く。保存後、アプリを再起動。

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "azure-ai-gateway": {
      "command": "uvx",
      "args": [
        "azure-ai-gateway-mcp"
      ]
    }
  }
}

Cursor は Claude Desktop と同じ mcpServers スキーマを使用。プロジェクト設定はグローバルより優先。

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "azure-ai-gateway": {
      "command": "uvx",
      "args": [
        "azure-ai-gateway-mcp"
      ]
    }
  }
}

Cline サイドバーの MCP Servers アイコンをクリックし、"Edit Configuration" を選択。

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "azure-ai-gateway": {
      "command": "uvx",
      "args": [
        "azure-ai-gateway-mcp"
      ]
    }
  }
}

Claude Desktop と同じ形式。Windsurf を再起動して反映。

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "azure-ai-gateway",
      "command": "uvx",
      "args": [
        "azure-ai-gateway-mcp"
      ]
    }
  ]
}

Continue はマップではなくサーバーオブジェクトの配列を使用。

~/.config/zed/settings.json
{
  "context_servers": {
    "azure-ai-gateway": {
      "command": {
        "path": "uvx",
        "args": [
          "azure-ai-gateway-mcp"
        ]
      }
    }
  }
}

context_servers に追加。保存時に Zed がホットリロード。

claude mcp add azure-ai-gateway -- uvx azure-ai-gateway-mcp

ワンライナー。claude mcp list で確認、claude mcp remove で削除。

ユースケース

実用的な使い方: Azure AI Gateway

Azure OpenAIデプロイメント全体でチームごとのトークンクォータを適用する

👤 LLM支出を管理する中央プラットフォームチーム ⏱ ~30 min advanced

使うタイミング: 複数のプロダクトチームがAOAIを共有しており、あるチームの暴走ループが共有TPM予算を使い切らないようにしたい場合。

前提条件
  • AI-Gatewayパターンが適用されたAPIMインスタンス — Azure-Samples/AI-Gatewayリポジトリからリファレンスアーキテクチャをデプロイ
  • チームごとのAPIMサブスクリプションキー — 各チームに個別のAPIMサブスクリプション(キー)を発行し、Ocp-Apim-Subscription-Keyヘッダーに含める
フロー
  1. 現在のクォータを確認する
    AOAI製品のAPIMサブスクリプション一覧と、各サブスクリプションの現在のTPMおよびRPMクォータを表示してください。✓ コピーしました
    → チームごとのクォータ一覧表
  2. 使いすぎのチームのクォータを下げる
    チーム'growth'は毎日TPMの90%を消費しています。クォータを200k → 100k TPMに削減してください。他のチームは変更なしで。✓ コピーしました
    → クォータ更新済み、確認完了
  3. 変更後のモニタリング
    次の1時間、サブスクリプションごとの429(レート制限)カウントを取得してください。growthが制限されていること、かつ本番クリティカルなチームに影響がないことを確認。✓ コピーしました
    → メトリクスで制限適用を確認

結果: 正当な高優先度トラフィックを止めることなく、共有AOAIの支出をコントロールできます。

注意点
  • クォータを低く設定しすぎると正当なワークロードが阻害される — まずシャドウモード(ログのみ)でロールアウトし、実際のパターンを把握してから制限を適用する

Azure OpenAIデプロイメントのマルチリージョンフェイルオーバーを構成する

👤 本番AI ワークロードを運用するSRE ⏱ ~45 min advanced

使うタイミング: リージョンのAOAI障害(まれだが実際に起こる)が発生した場合に、別のリージョンへ透過的にフェイルオーバーさせたい場合。

前提条件
  • 2つ以上のリージョン(例: East US、West Europe)にAOAIデプロイメント — Azureポータルからプロビジョニング。モデルとバージョンを一致させること
フロー
  1. 現在のバックエンドプールを確認する
    AOAI APIのAPIMバックエンドプールを表示してください。バックエンド数、優先度、サーキットブレーカー設定はどうなっていますか?✓ コピーしました
    → 現在のプール構成
  2. セカンダリリージョンを追加する
    West EuropeのAOAIエンドポイントをpriority=2で追加してください。サーキットブレーカー設定: 1分間に5回失敗 → 5分間オープン。East USはプライマリのまま。✓ コピーしました
    → プール更新済み、2つのバックエンドを構成
  3. フェイルオーバーをテストする
    East USバックエンドを2分間無効にしてプライマリ障害をシミュレートしてください。トラフィックがWest Europeに切り替わることを確認し、その後ロールバック。✓ コピーしました
    → トラフィック切り替えを確認、ロールバック完了

結果: 必要になる前に動作を実証済みの、透過的なフェイルオーバーを実現します。

注意点
  • リージョンごとにデプロイされたモデルのバージョンが異なる — 両方のリージョンに存在するモデルバージョンに固定する。バージョンの不一致は無言で異なる品質の結果を返す

セマンティックキャッシュを導入して繰り返しプロンプトのコストを削減する

👤 コスト意識の高いプラットフォームチーム ⏱ ~30 min advanced

使うタイミング: ユーザーが似た質問を繰り返し行い、コールの30〜60%が実質的にキャッシュヒットとなる場合。

フロー
  1. セマンティックキャッシュポリシーを有効にする
    AOAI completions APIに対して、APIMのsemantic-cache-lookupポリシーを類似度閾値0.95、TTL 1時間で有効にしてください。✓ コピーしました
    → ポリシー適用済み
  2. ヒット率を確認する
    24時間後、App Insightsからキャッシュヒット率とトークン削減量を取得してください。✓ コピーしました
    → ヒット率(%)とトークン削減量
  3. 閾値を調整する
    ヒット率が20%未満の場合は閾値を0.92に下げて再度観察。品質の苦情がある場合は0.97に戻してください。✓ コピーしました
    → 計測に基づく反復的な調整

結果: 出力品質を低下させることなく、繰り返しクエリのコスト削減を計測可能な形で実現します。

注意点
  • 過度なキャッシュにより、似ているが異なる質問に対して誤った回答を返す — 高い値(0.97)から始め、品質を確認しながら段階的に下げる

組み合わせ

他のMCPと組み合わせて10倍の力を

azure-ai-gateway + sentry

APIMの5xxスパイクとアプリケーション側のエラーを関連付ける

Sentryでアプリ Xの5xxスパイクが10:02に発生している場合、同じ時間帯のAPIMメトリクスを取得し、ゲートウェイが原因かどうかを特定してください。✓ コピーしました
azure-ai-gateway + notion

週次AIトラフィックガバナンスレポートをNotionに投稿する

週間のチームごとTPM使用量、429カウント、キャッシュヒット率をまとめて、Notionページとして投稿してください。✓ コピーしました

ツール

このMCPが提供する機能

ツール入力呼び出すタイミングコスト
list_subscriptions product_id? ゲートウェイを利用しているチームの一覧を取得する free (ARM API call)
update_quota subscription_id, tpm?, rpm? チームのトークン/リクエスト制限を調整する free
get_backend_pool api_id ルーティングとフェイルオーバーの構成を確認する free
update_backend_pool api_id, backends, policies 優先度、サーキットブレーカー、ロードバランシングを変更する free
apply_policy api_id, policy_xml APIMポリシー(キャッシュ、認証、ログ)をデプロイする free
get_metrics api_id, since, until API単位のトラフィック状況を確認する free

コストと制限

運用コスト

APIクォータ
Azure Resource Managerのレート制限(テナントごとに十分な余裕あり)
呼び出しあたりのトークン
ポリシー/バックエンドプールの読み取り: 500〜2000トークン
金額
APIMの料金はBasicティアで約$40/月〜。本番環境にはStandardティアを推奨
ヒント
トラフィックに繰り返しパターンがある場合、セマンティックキャッシュだけでAPIMのコストを十分回収できることが多いです。ヒット率を計測して投資対効果を確認してください。

セキュリティ

権限、シークレット、影響範囲

最小スコープ: APIM Contributor on the target APIM instance
認証情報の保管: Azureサービスプリンシパルの資格情報(client id/secret/tenant)を環境変数に格納
データ送信先: management.azure.comへのARM API呼び出し。プロンプト/レスポンス本文はAPIM自体を経由
絶対に付与しない: Owner on the subscription Global admin

トラブルシューティング

よくあるエラーと対処法

ARM API呼び出しで401エラー

サービスプリンシパルにリソースグループに対するAPIM Contributorロールがありません。ポータルまたはaz cliで付与してください。

確認: az role assignment list --assignee <sp>
ポリシー適用失敗 — XML validation error

APIMポリシーXMLは厳密です。ポータルのポリシーエディターで検証してから、コピー&ペーストしてください。

TPMクォータを引き上げても429エラーが続く

AOAIデプロイメント自体がボトルネックの可能性があります。APIMサブスクリプションのTPMだけでなく、デプロイメントのTPMを確認してください。

セマンティックキャッシュヒット率が0%

cache-lookup用のエンベディングバックエンドが設定されていません。キャッシュポリシーのembeddings参照を確認してください。

代替案

Azure AI Gateway 他との比較

代替案代わりに使う場面トレードオフ
Cloudflare AI GatewayCloudflareを利用しており、マルチプロバイダーのLLMルーティングをすぐに使いたい場合Azureホスト型モデルとの統合が浅い
Portkey / LiteLLMプロバイダー非依存のゲートウェイとダッシュボードが必要な場合サードパーティSaaS。データが自社クラウドの外に出る

その他

リソース

📖 GitHub の公式 README を読む

🐙 オープンな issue を見る

🔍 400以上のMCPサーバーとSkillsを見る