🚀 trackio-mcp
trackio実験追跡のためのMCP (Model Context Protocol) サーバーサポート
このパッケージは、AIエージェントがModel Context Protocol (MCP) を通じて trackio の実験を観察し、相互作用することを可能にします。trackio の前に trackio_mcp をインポートするだけで、自動的にMCPサーバー機能が有効になります。

🚀 クイックスタート
基本的な使用法
trackio をインポートする前に、単に trackio_mcp をインポートします。
import trackio_mcp
import trackio as wandb
wandb.init(project="my-experiment")
wandb.log({"loss": 0.1, "accuracy": 0.95})
wandb.finish()
MCPサーバーは以下の場所で自動的に利用可能になります。
- ローカル:
http://localhost:7860/gradio_api/mcp/sse
- Spaces:
https://your-space.hf.space/gradio_api/mcp/sse
MCPを使用してHugging Face Spacesにデプロイする
import trackio_mcp
import trackio as wandb
wandb.init(
project="my-experiment",
space_id="username/my-trackio-space"
)
wandb.log({"loss": 0.1})
wandb.finish()
スタンドアロンのMCPサーバーを起動する
from trackio_mcp.tools import launch_trackio_mcp_server
launch_trackio_mcp_server(port=7861, share=False)
✨ 主な機能
- ゼロコードでの統合:
trackio の前に trackio_mcp をインポートするだけです。
- 自動MCPサーバー: すべてのtrackioデプロイメント(ローカルとSpaces)でMCPサーバーを有効にします。
- 豊富なツールセット: trackioの機能をAIエージェント用のMCPツールとして公開します。
- Spaces互換: Hugging Face Spacesデプロイメントとシームレスに動作します。
- ドロップイン置換: 既存のtrackioコードに変更は必要ありません。
📦 インストール
pip install trackio-mcp
または、開発用の依存関係を含める場合は、以下のコマンドを使用します。
pip install trackio-mcp[dev]
💻 使用例
基本的な使用法
import trackio_mcp
import trackio as wandb
wandb.init(project="my-experiment")
wandb.log({"loss": 0.1, "accuracy": 0.95})
wandb.finish()
高度な使用法
import trackio_mcp
import trackio as wandb
wandb.init(
project="my-experiment",
space_id="username/my-trackio-space"
)
wandb.log({"loss": 0.1})
wandb.finish()
利用可能なMCPツール
接続後、AIエージェントは以下のtrackioツールを使用できます。
コアツール (Gradio API経由)
- log: trackioの実行にメトリクスを記録します。
- upload_db_to_space: ローカルデータベースをSpaceにアップロードします。
拡張ツール (trackio-mcp経由)
- get_projects: すべてのtrackioプロジェクトをリストします。
- get_runs: 特定のプロジェクトの実行を取得します。
- filter_runs: 名前パターンで実行をフィルタリングします。
- get_run_metrics: 特定の実行のメトリクスデータを取得します。
- get_available_metrics: プロジェクトのすべての利用可能なメトリクス名を取得します。
- load_run_data: 実行データをロードし、必要に応じて平滑化して処理します。
- get_project_summary: 包括的なプロジェクト統計を取得します。
エージェントの対話例
Human: "私の 'image-classification' プロジェクトの最新の結果を見せてください"
Agent: あなたのtrackioプロジェクトを確認し、最新の結果を取得します。
[Tool: get_projects] → "image-classification" プロジェクトを見つけます
[Tool: get_runs] → "image-classification" の実行を取得します
[Tool: get_run_metrics] → 最新の実行のメトリクスを取得します
[Tool: get_available_metrics] → メトリクス名を取得します
Agent: あなたの最新の画像分類実行は、最終損失0.18で94.2%の精度を達成しました。モデルは50エポックでトレーニングされ、エポック45で最高の検証精度94.7%を達成しました。
MCPクライアントの設定
Claude Desktop
~/Library/Application Support/Claude/claude_desktop_config.json (macOS) または同等のファイルに追加します。
パブリックSpaces:
{
"mcpServers": {
"trackio": {
"url": "https://your-space.hf.space/gradio_api/mcp/sse"
}
}
}
プライベートSpaces/データセット:
{
"mcpServers": {
"trackio": {
"url": "https://your-private-space.hf.space/gradio_api/mcp/sse",
"headers": {
"Authorization": "Bearer YOUR_HF_TOKEN"
}
}
}
}
ローカル開発:
{
"mcpServers": {
"trackio": {
"url": "http://localhost:7860/gradio_api/mcp/sse"
}
}
}
Claude Code
詳細については、Claude Code MCP docs を参照してください。
パブリックSpaces:
claude mcp add --transport sse trackio https://your-space.hf.space/gradio_api/mcp/sse
プライベートSpaces/データセット:
claude mcp add --transport sse --header "Authorization: Bearer YOUR_HF_TOKEN" trackio https://your-private-space.hf.space/gradio_api/mcp/sse
ローカル開発:
{
"mcpServers": {
"trackio": {
"type": "sse",
"url": "http://localhost:7860/gradio_api/mcp/sse"
}
}
}
Cursor
Cursorの ~/.cursor/mcp.json ファイルに追加するか、プロジェクトフォルダに .cursor/mcp.json を作成します。詳細については、Cursor MCP docs を参照してください。
パブリックSpaces:
{
"mcpServers": {
"trackio": {
"url": "https://your-space.hf.space/gradio_api/mcp/sse"
}
}
}
プライベートSpaces/データセット:
{
"mcpServers": {
"trackio": {
"url": "https://your-private-space.hf.space/gradio_api/mcp/sse",
"headers": {
"Authorization": "Bearer YOUR_HF_TOKEN"
}
}
}
}
ローカル開発:
{
"mcpServers": {
"trackio": {
"url": "http://localhost:7860/gradio_api/mcp/sse"
}
}
}
Windsurf
WindsurfのMCP設定ファイルに追加します。詳細については、Windsurf MCP docs を参照してください。
パブリックSpaces:
{
"mcpServers": {
"trackio": {
"serverUrl": "https://your-space.hf.space/gradio_api/mcp/sse"
}
}
}
プライベートSpaces/データセット:
{
"mcpServers": {
"trackio": {
"serverUrl": "https://your-private-space.hf.space/gradio_api/mcp/sse",
"headers": {
"Authorization": "Bearer YOUR_HF_TOKEN"
}
}
}
}
ローカル開発:
{
"mcpServers": {
"trackio": {
"serverUrl": "http://localhost:7860/gradio_api/mcp/sse"
}
}
}
VS Code
.vscode/mcp.json に追加します。詳細については、VS Code MCP docs を参照してください。
パブリックSpaces:
{
"mcp": {
"servers": {
"trackio": {
"type": "http",
"url": "https://your-space.hf.space/gradio_api/mcp/sse"
}
}
}
}
プライベートSpaces/データセット:
{
"mcp": {
"servers": {
"trackio": {
"type": "http",
"url": "https://your-private-space.hf.space/gradio_api/mcp/sse",
"headers": {
"Authorization": "Bearer YOUR_HF_TOKEN"
}
}
}
}
}
ローカル開発:
{
"mcp": {
"servers": {
"trackio": {
"type": "http",
"url": "http://localhost:7860/gradio_api/mcp/sse"
}
}
}
}
Gemini CLI
プロジェクトディレクトリの mcp.json に追加します。詳細については、Gemini CLI Configuration を参照してください。
パブリックSpaces:
{
"mcpServers": {
"trackio": {
"command": "npx",
"args": ["mcp-remote", "https://your-space.hf.space/gradio_api/mcp/sse"]
}
}
}
プライベートSpaces/データセット:
{
"mcpServers": {
"trackio": {
"command": "npx",
"args": ["mcp-remote", "https://your-private-space.hf.space/gradio_api/mcp/sse"],
"env": {
"HF_TOKEN": "YOUR_HF_TOKEN"
}
}
}
}
ローカル開発:
{
"mcpServers": {
"trackio": {
"command": "npx",
"args": ["mcp-remote", "http://localhost:7860/gradio_api/mcp/sse"]
}
}
}
Cline
.cursor/mcp.json (またはIDEに応じた同等のファイル)を作成します。
パブリックSpaces:
{
"mcpServers": {
"trackio": {
"url": "https://your-space.hf.space/gradio_api/mcp/sse"
}
}
}
プライベートSpaces/データセット:
{
"mcpServers": {
"trackio": {
"url": "https://your-private-space.hf.space/gradio_api/mcp/sse",
"headers": {
"Authorization": "Bearer YOUR_HF_TOKEN"
}
}
}
}
ローカル開発:
{
"mcpServers": {
"trackio": {
"url": "http://localhost:7860/gradio_api/mcp/sse"
}
}
}
設定
環境変数
TRACKIO_DISABLE_MCP: MCP機能を無効にするには "true" に設定します(デフォルト: MCP有効)
プログラムによる制御
import os
os.environ["TRACKIO_DISABLE_MCP"] = "true"
import trackio_mcp
import trackio
動作原理
trackio-mcp はモンキーパッチを使用して自動的に以下のことを行います。
- MCPサーバーを有効にする: すべてのGradio起動で
mcp_server=True を設定します。
- APIを有効にする:
show_api=True を設定して、Gradio APIエンドポイントを公開します。
- ツールを追加する: 追加のtrackio固有のMCPツールを登録します。
- 互換性を維持する: 既存のtrackioコードに変更は必要ありません。
このパッケージは以下をパッチします。
gradio.Blocks.launch() - コアGradio起動メソッド
trackio.ui.demo.launch() - trackioダッシュボードの起動
/gradio_api/mcp/sse に新しいMCPエンドポイントを追加します。
デプロイメント例
ローカル開発
import trackio_mcp
import trackio
trackio.show()
パブリックSpacesデプロイメント
import trackio_mcp
import trackio as wandb
wandb.init(
project="public-model",
space_id="username/model-tracking"
)
wandb.log({"epoch": 1, "loss": 0.5})
wandb.finish()
プライベートSpaces/データセットデプロイメント
import trackio_mcp
import trackio as wandb
wandb.init(
project="private-model",
space_id="organization/private-model-tracking",
dataset_id="organization/private-model-metrics"
)
wandb.log({"epoch": 1, "loss": 0.5})
wandb.finish()
CLIインターフェイス
trackio-mcp server --port 7861
trackio-mcp status
trackio-mcp test --url http://localhost:7860
セキュリティに関する考慮事項
- プライベートSpaces: プライベートSpaces/データセットとの認証にはHFトークンを使用します。
- アクセス制御: MCPサーバーはtrackioのアクセス制御を引き継ぎます。
- ネットワークセキュリティ: 本番デプロイメントではファイアウォールルールを考慮します。
- トークン管理: HFトークンを安全に保管し、環境変数を使用します。
トラブルシューティング
MCPサーバーが利用できない場合
import trackio_mcp
import trackio
import os
print("MCP Disabled:", os.getenv("TRACKIO_DISABLE_MCP"))
trackio.show()
接続問題
- URLを確認する: 正しい
/gradio_api/mcp/sse エンドポイントを確認します。
- 認証: プライベートSpaces/データセットにはベアラートークンを追加します。
- ネットワーク: ファイアウォール/プロキシ設定を確認します。
- 依存関係:
gradio[mcp] がインストールされていることを確認します。
ツール検出問題
from trackio_mcp.tools import register_trackio_tools
tools = register_trackio_tools()
tools.launch(mcp_server=True)
コントリビューション
- リポジトリをフォークします。
- 開発用の依存関係をインストールします:
pip install -e .[dev]
- 変更を加えます。
- テストを実行します:
pytest
- プルリクエストを送信します。
📄 ライセンス
MITライセンス - LICENSE ファイルを参照してください。
謝辞
AI研究コミュニティのために誠意を持って作成されました