mlflowAgent について
mlflowAgentは、MLflowのトラッキングサーバーを自然言語で調べるためのインターフェースです。実験や登録済みモデルを確認する人向けに、MCPサーバーと対話型クライアントを備えています。
主な機能
- 01自然言語によるMLflow検索
- 02登録済みモデルの一覧
- 03実験とランの確認
- 04モデル詳細の取得
- 05サーバーとシステム情報の確認
活用シーン
- 01質問して登録済みモデルを確認
- 02MLflowの実験とランを調査
- 03指定したモデルの詳細を検索
- 04MLflowサーバーの状態を確認
MCP 対応
MCPサーバーはMLflowトラッキングサーバーに接続し、モデル、実験、モデル詳細、システム情報のツールを公開します。別のクライアントから自然言語のクエリを送信できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
MLflow MCP Server:MLflow の自然言語インターフェース
このプロジェクトは、Model Context Protocol(MCP)を介して MLflow の自然言語インターフェースを提供します。平易な英語で MLflow のトラッキングサーバーに問い合わせることができ、機械学習の実験やモデルの管理、探索を簡単に行えます。
概要
MLflow MCP Agent は、次の 2 つの主要なコンポーネントで構成されています。
-
MLflow MCP Server(
mlflow_server.py):MLflow のトラッキングサーバーに接続し、Model Context Protocol(MCP)を通じて MLflow の機能を公開します。 -
MLflow MCP Client(
mlflow_client.py):会話型 AI アシスタントを使用して MLflow MCP Server とやり取りするための自然言語インターフェースを提供します。
特徴
- 自然言語での問い合わせ:平易な英語で MLflow のトラッキングサーバーについて質問できます
- モデルレジストリの探索:登録済みモデルの情報を取得できます
- 実験のトラッキング:実験や実行を一覧表示して探索できます
- システム情報:MLflow 環境のステータスとメタデータを取得できます
前提条件
- Python 3.8+
- MLflow サーバーが稼働していること(デフォルト:
http://localhost:8080) - LLM 用の OpenAI API キー
インストール
Smithery を使用したインストール
Smithery を介して Claude Desktop 用の MLflow Natural Language Interface Server を自動的にインストールするには:
npx -y @smithery/cli install @iRahulPandey/mlflowMCPServer --client claude
手動インストール
-
このリポジトリをクローンします:
git clone https://github.com/iRahulPandey/mlflowMCPServer.git cd mlflowMCPServer -
仮想環境を作成します:
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate -
必要なパッケージをインストールします:
pip install mcp[cli] langchain-mcp-adapters langchain-openai langgraph mlflow -
OpenAI API キーを設定します:
export OPENAI_API_KEY=your_key_here -
(任意)MLflow トラッキングサーバーの URI を設定します:
export MLFLOW_TRACKING_URI=http://localhost:8080
使い方
MCP サーバーの起動
まず、MLflow MCP サーバーを起動します:
python mlflow_server.py
サーバーは MLflow のトラッキングサーバーに接続し、MCP を介して MLflow の機能を公開します。
問い合わせ
サーバーが起動したら、クライアントを使用して自然言語で問い合わせることができます:
python mlflow_client.py "What models do I have registered in MLflow?"
問い合わせの例:
- 「MLflow に登録されているすべてのモデルを表示して」
- 「すべての実験を一覧表示して」
- 「'iris-classifier' という名前のモデルの詳細を取得して」
- 「MLflow サーバーのステータスは?」
設定
環境変数を使用して動作をカスタマイズできます。
MLFLOW_TRACKING_URI:MLflow トラッキングサーバーの URI(デフォルト:http://localhost:8080)OPENAI_API_KEY:OpenAI API キーMODEL_NAME:使用する OpenAI モデル(デフォルト:gpt-3.5-turbo-0125)MLFLOW_SERVER_SCRIPT:MLflow MCP サーバースクリプトのパス(デフォルト:mlflow_server.py)LOG_LEVEL:ログレベル(デフォルト:INFO)
MLflow MCP Server(mlflow_server.py)
サーバーは MLflow のトラッキングサーバーに接続し、MCP を介して次のツールを公開します。
list_models:MLflow モデルレジストリに登録されているすべてのモデルを一覧表示しますlist_experiments:MLflow トラッキングサーバーにあるすべての実験を一覧表示しますget_model_details:特定の登録済みモデルの詳細情報を取得しますget_system_info:MLflow トラッキングサーバーとシステムの情報を取得します
制限事項
- 現在、MLflow の機能の一部のみをサポートしています
- クライアントで OpenAI モデルを使用するにはインターネット接続が必要です
- 複雑な MLflow 操作では、エラー処理が限定的な場合があります
今後の改善
- MLflow モデルの予測機能への対応を追加
- より複雑な問い合わせに対応できるよう、自然言語理解を改善
- メトリクスとパラメーターの可視化機能を追加
- 実行管理やアーティファクト処理など、より多くの MLflow 操作に対応
謝辞
- Model Context Protocol(MCP):プロトコル仕様の提供
- LangChain:エージェントフレームワークの提供
- MLflow:トラッキング機能とモデルレジストリ機能の提供
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。