GUI版のAzureと連携できるMCPチャットアプリも公開しました。記事は下記です。
Azure OpenAI と MCP を連携するチャット UI アプリを作りました (Win/Mac 対応)
1. ツールの概要
Azure MCP CLI Clientは、Azure OpenAIと様々なMCP(Model Context Protocol)サーバを、コマンドライン上で手軽に連携できるクロスプラットフォームのPython製チャットアプリです。HTTP・stdio・SSEといった接続方式に対応しており、シンプルなJSON設定ファイルでサーバを見つけて登録し、LLM(大規模言語モデル)との対話を通じて各種ツールを柔軟に呼び出せます。
- クロスプラットフォーム対応: Windows、macOS、Linuxで動作
- Windows用バイナリ提供: GitHub Releasesからダウンロードできる単体EXEファイルあり
- 高い拡張性: stdio・HTTP・SSE型のMCPサーバを幅広くサポート
- インタラクティブなUI: LLMとのチャットインターフェース、MCPサーバの選択やツールの強制呼び出しなどに対応
Web UIや複雑なデプロイは不要。軽量CLIとしてまとめることで、統一的なターミナルベースのオーケストレーション環境を実現しています。
2. このツールの利用シーン
Windows、macOS、Linuxどれでも動く、Azure OpenAIと好きなMCPサーバを自由につなげる「デスクトップネイティブ」なツール、特にWindowsから手軽に利用できるツールがあると便利です。
最近はAzure OpenAIやAzure AI FoundryもリモートMCP連携をサポートしていますが、現実には多くのMCPサーバが今でもstdio
型であり、ちょっと試したいときにすぐに活用できません。特にstdio
型はデスクトップ環境で利用できると便利なものが多い状況です。
主な既存選択肢としては、
- VS Code拡張やPythonスクリプト
- MCPに対応したフレームワーク(Semantic Kernelなど)
- Azure OpenAIやAzure AI FoundryのリモートMCP連携機能
などがありますが、「どんなMCPサーバでもすぐに試せて、特にstdio
型のサーバにも素早くつながる」そんな手軽なデスクトップツールがれば便利です。
このCLIツールがあれば…
- Azure OpenAIのモデルにセキュアにアクセスできる
- Pythonスクリプト or Windows EXEだけで即起動、重たいGUI不要
- リモートMCPだけでなく、stdio型MCPサーバとも簡単に連携
MCP poweredの「デスクトップアシスタント」としても、社内向けのデモやプロトタイピング用途にも最適。AzureベースのOpenAIモデルと任意のMCPサーバを、ひとつの会話シェル上で同時に試せます。
3. 使い方
インストール
リリースパッケージのバイナリで起動
Windows/Linux/MacOSの実行形式ファイルをダウンロードしてすぐにご利用になれます
- GitHub Releasesにアクセス
- ご利用のOS環境に合わせて、
azuremcpcli-<OS種類>-<version>.zip
をダウンロード - アーカイブを展開し、実行形式バイナリ(Windowsは
mcpcli.exe
、Linix/MacOSはmcpcli
に対してコマンド実行パス(PATH環境変数実行など)を設定して実行(Python不要) - コマンド実行
mcpcli
ソースコード版
- ソースコードを取得
git clone https://github.com/hatasaki/azure-mcp-cli-client
- 必要なPythonパッケージをインストール
pip install -r requirements.txt
- スクリプトを起動
python mcp_chat_cli.py
初回セットアップ
Azure OpenAIの設定
初回起動時にAzure OpenAIのエンドポイント、APIキー、APIバージョン、デプロイメント名を入力します。APIキーを空白にすることで、Entra ID 認証も利用できます(デクストップから Entra ID 認証を利用する場合、本コマンドの実行環境でaz loginなどで有効なユーザ認証が実施できていることが必要になります)
--azureconfig
オプションでカスタム設定ファイルを指定することもできます
MCPサーバの登録
mcp.json.template
をホームディレクトリ直下の.azuremcpcli
フォルダにコピーして、mcp.json
にリネームしてください。
mcp.json
を編集してHTTPやstdio等のサーバリストを記載してください(詳しくはREADME参照)。(サンプルのmcp.json.sampleも用意してあります)
{
"servers": {
"Filesystem MCP Server": {
"type": "stdio",
"command": "npx.cmd", // This is for Windows. Use "npx" for Linux/Mac.
"args": [
"-y",
"@modelcontextprotocol/server-filesystem",
"."
]
},
"microsoft.docs.mcp": {
"type": "http",
"url": "https://learn.microsoft.com/api/mcp",
"headers": {}
}
}
}
--mcpconfig
オプションでカスタム設定ファイルを指定することもできます
起動とコマンド
起動例
# インタラクティブモード
mcpcli
# バッチモード
mcpcli --batch "<ユーザーメッセージ>"
主なコマンドオプション
-
--batch "<ユーザメッセージ>"
: バッチモード(ノンインタラクティブモード)でユーザメッセージをコマンドに渡して最終応答だけを得るモード。MCPツールの実行は自動承認 -
--reset
: 設定・サーバ登録をクリア -
--verbose
: 詳細な入出力ログ表示 -
--chatlog <file>
: ツール呼び出しも含めた全履歴をファイルに保存 -
--azureconfig <file>
: カスタムのAzure OpenAIの接続情報やパラメータ、システムプロンプトの構成ファイルを指定(詳細はレポジトリを参照) -
--mcpconfig <file>
: カスタムのMCPサーバ構成ファイルを指定(詳細はレポジトリを参照) - `--system "<システムプロンプト>": Azure OpenAI のシステムプロンプトを指定。エージェントの動作指示に利用可能
mcpcli --system "あなたは情報検索アシスタントです。質問に対して最低3つ以上のデータソースを参照して回答してください"
チャット中コマンド
-
tools
: 登録済みサーバやツール一覧を表示 -
tools describe <server>
: サーバのツールメタ情報を見る -
tools enable|disable <server>
: サーバ単位でツールの有効/無効を切り替え -
tools reset
: mcp.jsonを再読み込みしてすべてのサーバを再接続 -
#<tool名> <クエリ>
: 任意ツールを強制実行 -
reset
: 新規の会話セッション開始 -
exit
,quit
: 会話終了
バッチモードの実行例
下記のようにユーザメッセージを送信して最終回答だけを得ることができます。コマンド内部でAzure OpenAIの呼び出しと必要なMCPツールの呼び出しが自動的に実施されます(ツール実行は自動承認されますのでご注意ください)。
> mcpcli --batch "Azureにおける最新のMCP関連機能を教えて"
Azureにおける最新のMCP(Model Context Protocol)関連機能について、2025年7月時点での主なポイントをまとめます。
.....
バッチモードを用いたマルチエージェント的なコマンドチェーン
さらに、下記のように--azureconfigや--mcpconfigオプションを活用したコマンドを組み合わせることで、異なるAzure OpenAI構成やMCPツールを利用したエージェント連携が可能です。独自のコマンドとのチェーンも可能です
# Windows
mcpcli --batch "300文字に要約して: $(mcpcli --batch "Azureにおける最新のMCP関連機能を教えて" --azureconfig aoai_gpt41.json --mcpconfig mcp_mslearn.json --raw)"
# Linux/MacOS
mcpcli --batch "300文字に要約して: $(mcpcli --batch 'Azureにおける最新のMCP関連機能を教えて' --azureconfig aoai_gpt41.json --mcpconfig mcp_mslearn.json --raw)"
このように、コマンドラインという特徴を活かして、様々なMCPツール連携が容易に実現可能です
4. おわりに
Azure MCP CLI Clientは、Azure OpenAIとMCPサーバの強力な連携をデスクトップにもたらします。Windows EXEやmacOS/LinuxのCLIから、シンプルなJSONでサーバ設定するだけで、チャットを通じてデスクトップアシスタントやリモート検索など多様なワークフローを即座に実現。
Windows向けバイナリのダウンロードやソースビルドも簡単。LLM連携をもっと身近に、日々の作業に取り入れてみませんか?
免責事項
本ツールはテスト・検証・デモ用途向けに開発されています。プロダクション環境での利用は想定していません。利用にあたっては自己責任でお願いします。また、開発者が所属する組織とは無関係であり、いかなる承認や保証もありません。