MCP Server that interacts with Azure AI Foundry (experimental) について
この実験的な MCP サーバーは、Azure AI Foundry のモデル、ナレッジ、評価、ファインチューニングを統合的なツール群として提供します。リポジトリには、本実装は非推奨でありクラウドでホストされる Foundry MCP Server(プレビュー)へ移行したと記載されています。
主な機能
- 01モデルカタログの参照とデプロイ関連ツール
- 02AI Search のインデックス、ドキュメント、インデクサー管理
- 03テキストおよびエージェントの評価と Markdown レポート生成
- 04ファインチューニングジョブの状態、イベント、メトリクス取得
- 05.env ファイルからの環境変数読み込み
活用シーン
- 01VS Code の GitHub Copilot エージェントモードからの Azure AI モデル照会
- 02Azure AI Search のインデックスとデータソースの管理
- 03テキストやエージェントの出力に対する評価実行とレポート作成
MCP 対応
本プロジェクトは MCP サーバーとして、Azure AI Foundry のモデル、ナレッジ、評価、ファインチューニング操作をツールとして MCP クライアントに公開します。リポジトリは本実装を古いものとして扱い、クラウド版の Foundry MCP Server の利用を推奨しています。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Azure AI Foundry と連携する MCP サーバー(実験段階)
Azure AI Foundry 用の Model Context Protocol サーバーです。モデル、ナレッジ、評価などに対応する統一されたツールセットを提供します。
重要なお知らせ
Azure AI Foundry 用 MCP サーバー(実験段階)はクラウドに移行し、Foundry MCP Server(プレビュー)として提供されています。公式ドキュメントのFoundry MCP Server(プレビュー)の使用を開始するをご確認ください。この GitHub リポジトリには、以前の実験的なサーバー実装に関する古い情報が含まれており、今後更新されることはありません。代わりに、新しいリモートホスト型のマネージド Foundry MCP Server をご利用ください。次の利点があります。
- AI ツールオーケストレーションのクラウドホスト型インターフェイス:Foundry MCP Server(プレビュー)は、MCP 準拠のクライアント向けに、安全でスケーラブルなエンドポイントを提供します。インフラストラクチャをデプロイする必要がなく、シームレスな統合とマルチエージェントのシナリオを実現できます。
- ID とアクセス制御:サーバーは Microsoft Entra ID による認証と認可を適用します。すべての操作は、認証済みユーザーの権限内で実行されます(On-Behalf-Of フロー)。
- シナリオに特化した拡張可能なツール:MCP サーバーは、Microsoft Foundry のモデル、デプロイ、評価、エージェントに対する読み取りおよび書き込み操作用のツールを順次拡充しながら公開します。ツールは拡張可能なため、開発者やエージェントはバックエンド API やデータスキーマを把握せずにサービスを操作できます。
- エージェントと開発者の生産性を向上:自然言語によるワークフロー(MCP クライアントと LLM を介したもの)により、ツールをすばやく見つけて呼び出せるため、開発とマルチエージェントのオーケストレーションが効率化されます。
このリポジトリの残りの部分(コードベースを含む)では、現在非推奨となっている Azure AI Foundry と連携する MCP サーバー(実験段階)について説明します。
利用可能なツール
機能:モデル
| カテゴリ | ツール | 説明 |
|---|---|---|
| 探索 | list_models_from_model_catalog | Azure AI Foundry カタログでサポートされているモデルの一覧を取得します。 |
list_azure_ai_foundry_labs_projects | Azure AI Foundry Labs で利用可能な、Microsoft Research の最先端 AI モデルの一覧を取得します。 | |
get_model_details_and_code_samples | Azure AI Foundry カタログの特定のモデルに関する詳細情報を取得します。 | |
| 構築 | get_prototyping_instructions_for_github_and_labs | Azure AI Foundry および Azure AI Foundry Labs のモデルを使い始めるための、包括的な手順とセットアップガイダンスを提供します。 |
| デプロイ | get_model_quotas | 特定の Azure ロケーションにおけるモデルのクォータを取得します。 |
create_azure_ai_services_account | Azure AI Services アカウントを作成します。 | |
list_deployments_from_azure_ai_services | Azure AI Services のデプロイ一覧を取得します。 | |
deploy_model_on_ai_services | Azure AI Services にモデルをデプロイします。 | |
create_foundry_project | 新しい Azure AI Foundry プロジェクトを作成します。 |
機能:ナレッジ
| カテゴリ | ツール | 説明 |
|---|---|---|
| インデックス | list_index_names | AI Search Service のすべてのインデックス名を取得します |
list_index_schemas | AI Search Service のすべてのインデックススキーマを取得します | |
retrieve_index_schema | AI Search Service の特定のインデックスのスキーマを取得します | |
create_index | 新しいインデックスを作成します | |
modify_index | 既存のインデックス定義を変更します | |
delete_index | 既存のインデックスを削除します | |
| ドキュメント | add_document | インデックスにドキュメントを追加します |
delete_document | インデックスからドキュメントを削除します | |
| クエリ | query_index | 特定のインデックスを検索し、一致するドキュメントを取得します |
get_document_count | インデックス内のドキュメントの総数を返します | |
| インデクサー | list_indexers | AI Search Service のすべてのインデクサー名を取得します |
get_indexer | AI Search Service の特定のインデクサーの完全な定義を取得します | |
create_indexer | スキル、インデックス、データソースを指定して、Search Service に新しいインデクサーを作成します | |
delete_indexer | 名前を指定して、AI Search Service からインデクサーを削除します | |
| データソース | list_data_sources | AI Search Service のすべてのデータソース名を取得します |
get_data_source | 特定のデータソースの完全な定義を取得します | |
| スキルセット | list_skill_sets | AI Search Service のすべてのスキルセット名を取得します |
get_skill_set | 特定のスキルセットの完全な定義を取得します | |
| コンテンツ | fk_fetch_local_file_contents | ローカルファイルパスの内容(サンプル JSON、ドキュメントなど)を取得します |
fk_fetch_url_contents | URL の内容(サンプル JSON、ドキュメントなど)を取得します |
機能:評価
| カテゴリ | ツール | 説明 |
|---|---|---|
| 評価ユーティリティ | list_text_evaluators | 利用可能なすべてのテキスト評価器を一覧表示します。 |
list_agent_evaluators | 利用可能なすべてのエージェント評価器を一覧表示します。 | |
get_text_evaluator_requirements | 各テキスト評価器の入力要件を表示します。 | |
get_agent_evaluator_requirements | 各エージェント評価器の入力要件を表示します。 | |
| テキスト評価 | run_text_eval | JSONL ファイルまたはコンテンツに対して、1 つ以上のテキスト評価器を実行します。 |
format_evaluation_report | 評価結果を読みやすい Markdown レポートに変換します。 | |
| エージェント評価 | agent_query_and_evaluate | エージェントにクエリを送信し、選択した評価器を使用して応答を評価します。エンドツーエンドのエージェント評価です。 |
run_agent_eval | クエリ、応答、ツール呼び出し、定義などの特定のデータを使用して、エージェントとの単一のやり取りを評価します。 | |
| エージェントサービス | list_agents | 設定済みプロジェクトで利用可能なすべての Azure AI Agents を一覧表示します。 |
connect_agent | 指定したエージェントにクエリを送信します。 | |
query_default_agent | 環境変数で定義されたデフォルトのエージェントにクエリを送信します。 |
機能:ファインチューニング
| カテゴリ | ツール | 説明 |
|---|---|---|
| ファインチューニング | fetch_finetuning_status | 特定のファインチューニングジョブの状態とメタデータを詳細に取得します。ジョブの状態、モデル、作成日時と完了日時、ハイパーパラメーター、エラーがあればその内容が含まれます。 |
list_finetuning_jobs | リソース内のすべてのファインチューニングジョブを一覧表示します。追跡と管理を容易にするため、ジョブ ID と現在の状態を返します。 | |
get_finetuning_job_events | 特定のファインチューニングジョブのすべてのイベントを時系列順に取得します。各トレーニングステップ、評価、完了に関するタイムスタンプと詳細なメッセージが含まれます。 | |
get_finetuning_metrics | 特定のファインチューニングジョブのトレーニングと評価のメトリクスを取得します。損失曲線、精度、監視と分析に役立つその他のパフォーマンス指標が含まれます。 | |
list_finetuning_files | Azure OpenAI でファインチューニングに利用できるすべてのファイルを一覧表示します。ファイル ID、名前、用途、状態が含まれます。 | |
execute_dynamic_swagger_action | Swagger 仕様から動的に生成された任意のツールを実行し、高度なシナリオで柔軟な API 呼び出しを可能にします。 | |
list_dynamic_swagger_tools | Swagger 仕様から動的に登録されたすべてのツールを一覧表示し、利用可能な API エンドポイントの検出と自動化を可能にします。 |
プロンプトの例
モデル
モデルを探す
- 適切なモデルを見つけるには、どのようにサポートしてもらえますか?
- Azure AI Foundry ではどのモデルを使えますか?
- Azure AI Foundry ではどの OpenAI モデルを利用できますか?
- Azure AI Foundry で特に人気のあるモデルは何ですか?10 個選んでください。
- 推論に適したモデルは何ですか?大規模モデルと小規模モデルの 2 つに分けて、いくつか例を示してください。
- Phi モデルを比較して、違いを説明してもらえますか?
- Phi-4-reasoning のモデルカードを見せてください。
- モデルのテスト方法を教えてもらえますか?
- Azure AI Foundry の無料プレイグラウンドとは何ですか?
- GitHub トークンを使ってモデルをテストできますか?
- GitHub トークンに対応している最新のモデルを見せてください。
- Azure AI Foundry のモデルの提供元はどこですか?
- Meta のモデルを見せてください。
- MIT ライセンスのモデルを見せてください。
プロトタイプを構築する
- モデルを使ったプロトタイプの構築をどのようにサポートしてもらえるか、説明してください。
- GitHub トークンを使って OpenAI モデルを利用するプロトタイプをどのように構築できるか説明してください。まだ作成しないでください。
- モデルを使ってプロトタイプを構築するシナリオをいくつか提案してください。
- Azure AI Foundry Labs について教えてください。
- Magentic One について詳しく教えてください。
- Omniparser とは何ですか?どのようなユースケースが考えられますか?
- Omniparser を使ったプロトタイプの構築を手伝ってもらえますか?
OpenAI モデルをデプロイする
- OpenAI モデルのデプロイを手伝ってもらえますか?
- Azure AI Foundry に OpenAI モデルをデプロイするには、どのような手順が必要ですか?
- GitHub トークンを使って Azure AI Foundry で OpenAI モデルを利用する方法を教えてください。本番環境でも使えますか?
- すでに Azure AI services リソースを持っています。そのリソースに OpenAI モデルをデプロイできますか?
- Azure AI Foundry における OpenAI モデルのクォータとは何ですか?
- AI services リソースの現在のクォータを取得してください。
GitHub Copilot を使ったクイックスタート
この GitHub テンプレートは、MCP サーバーの設定と必要な依存関係を備えた最小限のセットアップで、独自のプロジェクトを簡単に始められます。
これにより、ユーザー設定で VS Code 環境に MCP サーバーを自動的に設定できます。 サーバーを実行するには、環境に
uvxをインストールしておく必要があります。
手動セットアップ
-
uv のインストールに従って
uvをインストールします。 -
VS Code で新しいワークスペースを開始します。
-
(任意)環境変数を設定するため、ワークスペースのルートに
.envファイルを作成します。 -
ワークスペースのルートに
.vscode/mcp.jsonを作成します。{ "servers": { "mcp_foundry_server": { "type": "stdio", "command": "uvx", "args": [ "--prerelease=allow", "--from", "git+https://github.com/azure-ai-foundry/mcp-foundry.git", "run-azure-ai-foundry-mcp", "--envFile", "${workspaceFolder}/.env" ] } } } -
.vscode/mcp.jsonファイルで、サーバーのStartボタンをクリックします。 -
GitHub Copilot のチャットをエージェントモードで開き、質問を始めます。
MCP サーバーのセットアップ方法について詳しくは、高度なセットアップのその他の例をご覧ください。
環境変数の設定
API キー、エンドポイント、その他の機密データなどの情報を MCP サーバーに安全に渡すには、環境変数を使用できます。これは、認証や外部サービスへのアクセスが必要なツールで特に重要です。
これらの環境変数は、プロジェクトのルートにある .env ファイルで設定できます。MCP Server のセットアップ時に .env ファイルの場所を指定すると、サーバーは起動時にこれらの変数を自動的に読み込みます。
設定例については、.env ファイルの例を参照してください。
| カテゴリ | 変数 | 必須? | 説明 |
|---|---|---|---|
| モデル | GITHUB_TOKEN | いいえ | レート制限の範囲内でモデルを無料でテストするための GitHub トークンです。 |
| ナレッジ | AZURE_AI_SEARCH_ENDPOINT | 常に | Azure AI Search サービスのエンドポイント URL です。次のような形式です:https://<your-search-service-name>.search.windows.net/。 |
AZURE_AI_SEARCH_API_VERSION | いいえ | 使用する API バージョンです。デフォルトは 2025-03-01-preview です。 | |
SEARCH_AUTHENTICATION_METHOD | 常に | service-principal または api-search-key。 | |
AZURE_TENANT_ID | service-principal の使用時に必要 | Azure Active Directory テナントの ID です。 | |
AZURE_CLIENT_ID | service-principal の使用時に必要 | サービスプリンシパル(アプリ登録)の ID です。 | |
AZURE_CLIENT_SECRET | service-principal の使用時に必要 | サービスプリンシパルのシークレット資格情報です。 | |
AZURE_AI_SEARCH_API_KEY | api-search-key の使用時に必要 | Azure AI Search サービスの API キーです。 | |
| 評価 | EVAL_DATA_DIR | 常に | JSONL 評価データセットへのパスです |
AZURE_OPENAI_ENDPOINT | テキスト品質評価器 | Azure OpenAI のエンドポイントです | |
AZURE_OPENAI_API_KEY | テキスト品質評価器 | Azure OpenAI の API キーです | |
AZURE_OPENAI_DEPLOYMENT | テキスト品質評価器 | デプロイ名(例:gpt-4o) | |
AZURE_OPENAI_API_VERSION | テキスト品質評価器 | OpenAI API のバージョンです | |
AZURE_AI_PROJECT_ENDPOINT | エージェントサービス | Azure AI Agent のクエリと評価に使用します |
メモ
モデル
GITHUB_TOKENは、モデルをテストするために GitHub API の認証に使用します。Foundry カタログのモデルを確認する場合は必要ありません。ナレッジ
- 検索サービスのプロビジョニングについて詳しくは、検索サービスの作成を参照してください。
- Azure AI Search は複数の認証方法をサポートしています。リクエストの認証には、Microsoft Entra 認証またはキー ベースの認証を使用できます。認証方法の選択は、セキュリティ要件と使用する Azure 環境によって異なります。
- 検索サービスの認証方法について詳しくは、認証を参照してください。
評価
- エージェントツールまたは安全性評価器を使用する場合は、Azure プロジェクトの資格情報が有効であることを確認してください。
- テキスト品質評価のみを行う場合は、OpenAI のエンドポイントとキーで十分です。
ライセンス
MITライセンスです。詳細についてはLICENSEをご覧ください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。