前提条件
- Node.js 18 以降がマシンにインストールされていること
- Avala API キー(Mission Control の Settings > Security で生成できます)
セットアップ
Claude Desktop
Claude Desktop の設定ファイルを開きます:- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
Cursor
プロジェクトルート(またはグローバル設定ディレクトリ)に.cursor/mcp.json を作成または編集します:
VS Code
ワークスペースの.vscode/mcp.json を作成または編集します:
Claude Code
1 つのコマンドで Avala MCP Server を Claude Code に追加できます:ChatGPT
ChatGPT の MCP サポートは進化中です。最新のセットアップ手順やお使いのプランおよび地域での利用可否については、OpenAI のドキュメントを参照してください。
MCP セキュリティモード
安全のため、MCP Server はデフォルトで読み取り専用です。変更を伴うツールは、以下の設定で明示的に有効にしない限り登録されません:create_datasetcreate_agent、delete_agentcreate_annotation_issue、update_annotation_issue、delete_annotation_issuecreate_storage_config、delete_storage_configcreate_webhook、delete_webhookcreate_exportevaluate_qualitycompute_consensusfleet_register_device、fleet_acknowledge_alert
利用可能な MCP ツール
接続すると、AI アシスタントで以下のツールが利用可能になります:| ツール | 説明 |
|---|---|
list_datasets | ワークスペース内のすべてのデータセットを一覧表示します。 |
get_dataset | 特定のデータセットの詳細を取得します。 |
create_dataset | アノテーション用の新しいデータセットを作成します。 mutation |
list_projects | すべてのアノテーションプロジェクトを一覧表示します。 |
get_project | プロジェクトの詳細を取得します。 |
create_export | データセットまたはプロジェクトの新しいエクスポートをトリガーします。(AVALA_MCP_ENABLE_MUTATIONS=true が必要) |
get_export_status | エクスポートのステータスを確認します。 |
list_exports | すべてのエクスポートを一覧表示します。 |
get_workspace_stats | ワークスペースの使用状況の概要を取得します。 |
list_tasks | オプションのフィルタリングでタスクを一覧表示します。 |
get_task | タスクの詳細を取得します。 |
list_agents | オートメーションエージェントを一覧表示します。 |
get_agent | エージェントの詳細を取得します。 |
create_agent | 新しいオートメーションエージェントを作成します。(AVALA_MCP_ENABLE_MUTATIONS=true が必要) |
delete_agent | エージェントを削除します。(AVALA_MCP_ENABLE_MUTATIONS=true が必要) |
list_webhooks | Webhook サブスクリプションを一覧表示します。 |
create_webhook | Webhook サブスクリプションを作成します。(AVALA_MCP_ENABLE_MUTATIONS=true が必要) |
delete_webhook | Webhook を削除します。(AVALA_MCP_ENABLE_MUTATIONS=true が必要) |
list_storage_configs | ストレージ設定を一覧表示します。 |
create_storage_config | ストレージ設定を作成します。(AVALA_MCP_ENABLE_MUTATIONS=true が必要) |
test_storage_config | ストレージ接続をテストします。 |
delete_storage_config | ストレージ設定を削除します。(AVALA_MCP_ENABLE_MUTATIONS=true が必要) |
list_quality_targets | プロジェクトの品質ターゲットを一覧表示します。 |
evaluate_quality | 品質ターゲットを評価します。(AVALA_MCP_ENABLE_MUTATIONS=true が必要) |
get_consensus_summary | プロジェクトのコンセンサスサマリーを取得します。 |
compute_consensus | コンセンサス計算をトリガーします。(AVALA_MCP_ENABLE_MUTATIONS=true が必要) |
list_organizations | 組織を一覧表示します。 |
get_organization | 組織の詳細を取得します。 |
list_slices | オーナーのスライスを一覧表示します。 |
get_slice | スライスの詳細を取得します。 |
list_annotation_issues_by_sequence | シーケンスのアノテーションイシューを一覧表示します。 |
create_annotation_issue | 新しいアノテーションイシューを作成します。(AVALA_MCP_ENABLE_MUTATIONS=true が必要) |
update_annotation_issue | アノテーションイシューを更新します。(AVALA_MCP_ENABLE_MUTATIONS=true が必要) |
delete_annotation_issue | アノテーションイシューを削除します。(AVALA_MCP_ENABLE_MUTATIONS=true が必要) |
list_annotation_issues_by_dataset | データセットのアノテーションイシューを一覧表示します。 |
get_annotation_issue_metrics | データセットのイシューメトリクスを取得します。 |
list_qc_tools | 利用可能な QC ツールを一覧表示します。 |
Fleet(プレビュー)
Fleet ツールはプレビュー版であり、変更される可能性があります。フリートのデバイス、録画、イベント、アラート、ルールへの読み取り・書き込みアクセスを提供します。
| ツール | 説明 |
|---|---|
fleet_list_devices | オプションのフィルタ付きでフリートデバイスを一覧表示します。 |
fleet_get_device | 特定のフリートデバイスの詳細情報を取得します。 |
fleet_list_recordings | オプションのフィルタ付きでフリート録画を一覧表示します。 |
fleet_get_recording | 特定の録画の詳細情報を取得します。 |
fleet_list_events | オプションのフィルタ付きでフリートイベントを一覧表示します。 |
fleet_list_alerts | オプションのフィルタ付きでフリートアラートを一覧表示します。 |
fleet_list_rules | オプションのフィルタ付きでフリートルールを一覧表示します。 |
fleet_register_device | 新しいフリートデバイスを登録します。 mutation |
fleet_acknowledge_alert | フリートアラートを確認済みにします。 mutation |
ツール定義
各 MCP ツールの詳細なスキーマです。すべてのツールはテキストコンテンツとして JSON を返します。list_datasets
ワークスペース内のすべてのデータセットを一覧表示します。 パラメータ:dataType(string, optional) — データタイプでフィルタ(image、video、lidar、mcap、splat)name(string, optional) — データセット名でフィルタ(部分一致)status(string, optional) — データセットのステータスでフィルタvisibility(string, optional) — 可視性でフィルタ(privateまたはpublic)limit(number, optional) — 返すデータセットの最大数cursor(string, optional) — 前回のリクエストからのページネーションカーソル
get_dataset
特定のデータセットの詳細を取得します。 パラメータ:uid(string, required) — データセットの一意識別子(UUID)
list_projects
すべてのアノテーションプロジェクトを一覧表示します。 パラメータ:limit(number, optional) — 返すプロジェクトの最大数cursor(string, optional) — 前回のリクエストからのページネーションカーソル
get_project
特定のプロジェクトの詳細を取得します。 パラメータ:uid(string, required) — プロジェクトの一意識別子(UUID)
create_dataset
アノテーション用の新しいデータセットを作成します。 パラメータ:name(string, required) — データセットの表示名slug(string, required) — データセットの URL フレンドリーな識別子dataType(string, required) — データタイプ:image、video、lidar、またはmcapisSequence(boolean, optional) — データセットにシーケンスが含まれるかどうか(デフォルト:false)visibility(string, optional) — データセットの可視性:privateまたはpublic(デフォルト:private)createMetadata(boolean, optional) — データセットメタデータを作成するかどうか(デフォルト:true)providerConfig(object, optional) — クラウドストレージプロバイダー設定ownerName(string, optional) — データセットオーナーのユーザー名またはメールアドレス
create_export
データセットまたはプロジェクトの新しいエクスポートをトリガーします。 パラメータ:project(string, optional) — エクスポートするプロジェクトの UIDdataset(string, optional) — エクスポートするデータセットの UID
get_export_status
エクスポートのステータスを確認します。 パラメータ:uid(string, required) — エクスポートの一意識別子(UUID)
list_exports
ワークスペース内のすべてのエクスポートを一覧表示します。 パラメータ:limit(number, optional) — 返すエクスポートの最大数cursor(string, optional) — 前回のリクエストからのページネーションカーソル
get_workspace_stats
ワークスペースの内容(データセット、プロジェクト、エクスポート)を簡単に確認します。 パラメータ: なし レスポンス例:list_tasks
プロジェクトやステータスによるオプションのフィルタリングでタスクを一覧表示します。 パラメータ:project(string, optional) — プロジェクト UID でフィルタstatus(string, optional) — タスクのステータスでフィルタlimit(number, optional) — 返すタスクの最大数cursor(string, optional) — 前回のリクエストからのページネーションカーソル
get_task
特定のタスクの詳細情報を取得します。 パラメータ:uid(string, required) — タスクの一意識別子(UUID)
list_agents
ワークスペースに設定されたすべてのオートメーションエージェントを一覧表示します。 パラメータ:limit(number, optional) — 返すエージェントの最大数cursor(string, optional) — 前回のリクエストからのページネーションカーソル
get_agent
特定のオートメーションエージェントの詳細情報を取得します。 パラメータ:uid(string, required) — エージェントの一意識別子(UUID)
create_agent
イベントサブスクリプションとコールバック URL を持つ新しいオートメーションエージェントを作成します。 パラメータ:name(string, required) — エージェントの名前events(string[], required) — エージェントがサブスクライブするイベントタイプのリストcallbackUrl(string, optional) — イベントコールバックを受け取る URLdescription(string, optional) — エージェントの説明project(string, optional) — エージェントのスコープとなるプロジェクト UIDtaskTypes(string[], optional) — エージェントが処理するタスクタイプ
delete_agent
UID を指定してオートメーションエージェントを削除します。 パラメータ:uid(string, required) — 削除するエージェントの一意識別子(UUID)
list_webhooks
ワークスペース内のすべての Webhook サブスクリプションを一覧表示します。 パラメータ:limit(number, optional) — 返す Webhook の最大数cursor(string, optional) — 前回のリクエストからのページネーションカーソル
create_webhook
特定のイベントに対する新しい Webhook サブスクリプションを作成します。 パラメータ:targetUrl(string, required) — Webhook 配信を受け取る URLevents(string[], required) — サブスクライブするイベントタイプのリスト
delete_webhook
UID を指定して Webhook サブスクリプションを削除します。 パラメータ:uid(string, required) — 削除する Webhook の一意識別子(UUID)
list_storage_configs
ワークスペース内のすべてのストレージ設定を一覧表示します。 パラメータ:limit(number, optional) — 返すストレージ設定の最大数cursor(string, optional) — 前回のリクエストからのページネーションカーソル
create_storage_config
新しいストレージ設定(S3 または Google Cloud Storage)を作成します。 パラメータ:name(string, required) — ストレージ設定の名前provider(string, required) — ストレージプロバイダーの種類(s3またはgcs)s3BucketName(string, optional) — S3 バケット名s3BucketRegion(string, optional) — S3 バケットリージョンs3BucketPrefix(string, optional) — S3 キープレフィックスs3AccessKeyId(string, optional) — S3 アクセスキー ID(サーバー側で安全に保存されます)s3SecretAccessKey(string, optional) — S3 シークレットアクセスキー(サーバー側で安全に保存されます)s3IsAccelerated(boolean, optional) — S3 Transfer Acceleration を有効にするgcStorageBucketName(string, optional) — Google Cloud Storage バケット名gcStoragePrefix(string, optional) — Google Cloud Storage プレフィックスgcStorageAuthJsonContent(string, optional) — GCS サービスアカウントの JSON 認証情報(サーバー側で安全に保存されます)
test_storage_config
ストレージ設定の接続をテストします。 パラメータ:uid(string, required) — テストするストレージ設定の一意識別子(UUID)
delete_storage_config
UID を指定してストレージ設定を削除します。 パラメータ:uid(string, required) — 削除するストレージ設定の一意識別子(UUID)
list_quality_targets
特定のプロジェクトに設定された品質ターゲットを一覧表示します。 パラメータ:projectUid(string, required) — プロジェクトの一意識別子(UUID)limit(number, optional) — 返す品質ターゲットの最大数cursor(string, optional) — 前回のリクエストからのページネーションカーソル
evaluate_quality
プロジェクトのすべての品質ターゲットを評価し、現在のステータスを返します。 パラメータ:projectUid(string, required) — 評価するプロジェクトの一意識別子(UUID)
get_consensus_summary
平均/中央値スコアと分布を含むプロジェクトのコンセンサスサマリーを取得します。 パラメータ:projectUid(string, required) — プロジェクトの一意識別子(UUID)
compute_consensus
プロジェクトのコンセンサス計算をトリガーします。 パラメータ:projectUid(string, required) — プロジェクトの一意識別子(UUID)
list_organizations
所属しているすべての組織を一覧表示します。 パラメータ:limit(number, optional) — 返す組織の最大数cursor(string, optional) — 前回のリクエストからのページネーションカーソル
get_organization
特定の組織の詳細情報を取得します。 パラメータ:slug(string, required) — 組織のスラッグ識別子
list_slices
オーナー(ユーザーまたは組織)のスライスを一覧表示します。 パラメータ:owner(string, required) — オーナー名(ユーザーまたは組織のスラッグ)limit(number, optional) — 返すスライスの最大数cursor(string, optional) — 前回のリクエストからのページネーションカーソル
get_slice
特定のスライスの詳細情報を取得します。 パラメータ:owner(string, required) — オーナー名(ユーザーまたは組織のスラッグ)slug(string, required) — スライスのスラッグ
list_annotation_issues_by_sequence
特定のシーケンスのすべてのアノテーションイシューを一覧表示します。 パラメータ:sequenceUid(string, required) — シーケンスの UUIDdatasetItemUid(string, optional) — データセットアイテムの UUID でフィルタprojectUid(string, optional) — プロジェクトの UUID でフィルタ
create_annotation_issue
シーケンスに新しいアノテーションイシューを作成します。 パラメータ:sequenceUid(string, required) — シーケンスの UUIDtoolUid(string, required) — アノテーションツールの UUIDproblemUid(string, required) — 問題タイプの UUIDdatasetItemUid(string, optional) — データセットアイテムの UUIDprojectUid(string, optional) — プロジェクトの UUIDpriority(string, optional) — 優先度:lowest、low、medium、high、highestseverity(string, optional) — 重大度:critical、moderatedescription(string, optional) — イシューの説明wrongClass(string, optional) — 誤ったクラスラベルcorrectClass(string, optional) — 正しいクラスラベルobjectUid(string, optional) — アノテーションオブジェクトの UUIDshouldReAnnotate(boolean, optional) — 再アノテーションが必要かどうかshouldDelete(boolean, optional) — アノテーションを削除するかどうかframesAffected(string, optional) — イシューの影響を受けるフレーム
update_annotation_issue
既存のアノテーションイシュー(ステータス、優先度など)を更新します。 パラメータ:sequenceUid(string, required) — シーケンスの UUIDissueUid(string, required) — アノテーションイシューの UUIDstatus(string, optional) — ステータス:open、relabeling、in_review、completed、cant_reproduce、awaiting_feedback、no_action_takenpriority(string, optional) — 優先度:lowest、low、medium、high、highestseverity(string, optional) — 重大度:critical、moderatedescription(string, optional) — 更新された説明toolUid(string, optional) — アノテーションツールの UUIDproblemUid(string, optional) — 問題タイプの UUIDwrongClass(string, optional) — 誤ったクラスラベルframesAffected(string, optional) — イシューの影響を受けるフレーム
delete_annotation_issue
アノテーションイシューを削除します。 パラメータ:sequenceUid(string, required) — シーケンスの UUIDissueUid(string, required) — 削除するアノテーションイシューの UUID
list_annotation_issues_by_dataset
データセットのすべてのアノテーションイシューを一覧表示します。 パラメータ:owner(string, required) — データセットオーナーのユーザー名datasetSlug(string, required) — データセットのスラッグsequenceUid(string, optional) — シーケンスの UUID でフィルタ
get_annotation_issue_metrics
データセット内のアノテーションイシューの集約メトリクス(ステータス/優先度/重大度の件数、クローズ時間)を取得します。 パラメータ:owner(string, required) — データセットオーナーのユーザー名datasetSlug(string, required) — データセットのスラッグsequenceUid(string, optional) — シーケンスの UUID でフィルタ
list_qc_tools
指定したデータセットタイプで利用可能な QC アノテーションツールを一覧表示します。 パラメータ:datasetType(string, required) — データセットタイプ(例:lidar、image、video)
fleet_list_devices
オプションのフィルタ付きでフリートデバイスを一覧表示します。 パラメータ:status(string, optional) — デバイスのステータスでフィルタ(online、offline、maintenance)type(string, optional) — デバイスタイプでフィルタlimit(number, optional) — 返すデバイスの最大数cursor(string, optional) — ページネーションカーソル
fleet_get_device
特定のフリートデバイスの詳細情報を取得します。 パラメータ:uid(string, required) — デバイスの一意識別子
fleet_list_recordings
オプションのフィルタ付きでフリート録画を一覧表示します。 パラメータ:device(string, optional) — デバイス UID でフィルタstatus(string, optional) — 録画のステータスでフィルタlimit(number, optional) — 返す録画の最大数cursor(string, optional) — ページネーションカーソル
fleet_get_recording
特定の録画の詳細情報を取得します。 パラメータ:uid(string, required) — 録画の一意識別子
fleet_list_events
オプションのフィルタ付きでフリートイベントを一覧表示します。 パラメータ:recording(string, optional) — 録画 UID でフィルタdevice(string, optional) — デバイス UID でフィルタtype(string, optional) — イベントタイプでフィルタseverity(string, optional) — 重大度でフィルタlimit(number, optional) — 返すイベントの最大数cursor(string, optional) — ページネーションカーソル
fleet_list_alerts
オプションのフィルタ付きでフリートアラートを一覧表示します。 パラメータ:status(string, optional) — アラートのステータスでフィルタ(open、acknowledged、resolved)severity(string, optional) — 重大度でフィルタ(info、warning、error、critical)device(string, optional) — デバイス UID でフィルタrule(string, optional) — ルール UID でフィルタlimit(number, optional) — 返すアラートの最大数cursor(string, optional) — ページネーションカーソル
fleet_list_rules
オプションのフィルタ付きでフリートルールを一覧表示します。 パラメータ:enabled(boolean, optional) — 有効/無効ステータスでフィルタlimit(number, optional) — 返すルールの最大数cursor(string, optional) — ページネーションカーソル
fleet_register_device
新しいフリートデバイスを登録します。 パラメータ:name(string, required) — デバイスの名前type(string, required) — デバイスのタイプfirmwareVersion(string, optional) — ファームウェアバージョンtags(string[], optional) — デバイスのタグ
fleet_acknowledge_alert
フリートアラートを確認済みにします。 パラメータ:uid(string, required) — 確認するアラートの一意識別子
レシピ
自然言語で実行できるマルチステップワークフローです。各レシピでは、アシスタントが裏側で行うツール呼び出しを示します。レシピ 1:データセットのヘルスチェック
アシスタントに尋ねます:「ワークスペースのヘルスチェックをして。データセットの数と、アイテム数が最も多いものを教えて。」 ステップ 1 — アシスタントがget_workspace_stats を呼び出して概要を取得します。
list_datasets を limit: 50 で呼び出し、すべてのデータセットを取得します。
ステップ 3 — アシスタントが結果を itemCount でソートし、ランキングサマリーを表示します:
データセットは 14 個あります。最も大きい 3 つは:
- Warehouse Cameras — 34,200 アイテム(image)
- Urban Driving Q1 — 12,450 アイテム(lidar)
- Parking Lot Footage — 8,900 アイテム(video)
レシピ 2:エクスポートとダウンロード
アシスタントに尋ねます:「Urban Driving Q1 プロジェクトをエクスポートして、準備ができたら教えて。」 ステップ 1 — アシスタントがlist_projects を呼び出し、「Urban Driving Q1」に一致するプロジェクト UID を見つけます。
ステップ 2 — アシスタントがプロジェクト UID を使って create_export を呼び出します。
completed に変わるまで get_export_status をポーリングします。
エクスポートの準備ができました(50 MB)。こちらからダウンロードしてください:https://api.avala.ai/exports/.../download
レシピ 3:プロジェクト全体の品質監査
アシスタントに尋ねます:「すべてのプロジェクトの品質ターゲットを評価して、不合格のものをフラグしてください。」 ステップ 1 — アシスタントがlist_projects を呼び出し、すべてのプロジェクトを取得します。
ステップ 2 — 各プロジェクトに対して、アシスタントがプロジェクト UID を使って evaluate_quality を呼び出します。
ステップ 3 — アシスタントが結果を集約し、不合格のものを強調表示します:
7 プロジェクト中 5 つがすべての品質ターゲットに合格しています。注意が必要な 2 つ:
- Sidewalk Segmentation — 「ラベル精度」ターゲットが 88%(しきい値:95%)
- Fleet Camera Review — 「コンセンサススコア」ターゲットが 0.72(しきい値:0.85)
レシピ 4:フリートデバイスの監視
アシスタントに尋ねます:「まだ確認されていないすべてのフリートアラートを重大度別にグループ化して表示して。」 ステップ 1 — アシスタントがfleet_list_alerts を status: "open" で呼び出します。
ステップ 2 — アシスタントがレスポンスをグループ化してフォーマットします:
Critical(1 件)ステップ 3 — 続けて依頼できます:「Warning レベルのアラートをすべて確認済みにして。」 アシスタントが各 Warning アラートの UID に対してWarning(2 件)
- Dock Camera 3 — 「デバイスが 24 時間以上オフライン」(3 月 18 日から)
- Forklift Sensor Unit 12 — 「デバイス温度がしきい値を超過(72C)」(3 月 19 日から)
- Rooftop LiDAR 1 — 「ディスク容量不足(5% 未満)」(3 月 19 日から)
fleet_acknowledge_alert を呼び出します。
レシピ 5:アノテーションイシューのトリアージ
アシスタントに尋ねます:「urban-driving-q1 データセットのアノテーションイシューメトリクスを取得して、内訳を表示して。」 ステップ 1 — アシスタントがオーナーとデータセットスラッグを使ってget_annotation_issue_metrics を呼び出します。
ステップ 2 — アシスタントがフォーマットされたサマリーを表示します:
Urban Driving Q1 — イシューメトリクス ステータス別:12 件 open、5 件 in review、3 件 relabeling、45 件 completed 重大度別:8 件 critical、57 件 moderate 優先度別:2 件 highest、6 件 high、18 件 medium、25 件 low、14 件 lowest 平均クローズ時間:4.2 時間ステップ 3 — 続けて依頼します:「オープン中の critical イシューを一覧表示して。」 アシスタントがフィルタ付きで
list_annotation_issues_by_dataset を呼び出し、結果を表示します。
プロンプト例
MCP 対応の任意のクライアントで使用できる自然言語プロンプトの例です:トラブルシューティング
AVALA_API_KEY が設定されていない
AVALA_API_KEY 環境変数が設定されていない場合、MCP Server はエラーコード 1 で即座に終了します。MCP 設定の env ブロックにキーが設定されているか、サーバー起動前にシェルでエクスポートされていることを確認してください。
ミューテーションツールが表示されない
create_export、create_agent、fleet_register_device などのツールがツール一覧に表示されない場合は、サーバー環境で AVALA_MCP_ENABLE_MUTATIONS=true を設定する必要があります。MCP 設定ファイルの env ブロックに追加してください:
npx が見つからない、または Node.js のバージョンが異なる
MCP Server には Node.js 18 以降が必要です。npx: command not found やモジュール構文エラーが表示される場合は、Node.js のバージョンを確認してください:
キャッシュされた古い MCP Server
@avala-ai/mcp-server パッケージを最近更新したにもかかわらず、古い動作やツールの欠落が見られる場合、npx がキャッシュされたバージョンを使用している可能性があります。強制的に新規インストールしてください:
API キーが無効または期限切れ
ツール呼び出しが401 Unauthorized を返す場合、API キーが無効、期限切れ、または失効している可能性があります。Mission Control の Settings > Security で新しいキーを生成し、MCP 設定を更新してください。
Avala MCP Server はオープンソースです。ソースコードの閲覧やコントリビュートは GitHub リポジトリをご覧ください。