Skip to main content
Model Context Protocol (MCP) は、AI アシスタントが外部ツールやデータソースと連携するためのオープンスタンダードです。Avala の MCP Server は、データセット、プロジェクト、エクスポートをツールとして公開し、MCP 対応のクライアントから呼び出すことができます。コンテキストを切り替えることなく、自然言語でアノテーションワークフローを管理できます。 つまり、Claude に「データセットをすべて表示して」と頼んだり、Cursor でエクスポートを作成したり、VS Code でプロジェクトのステータスを確認したりできます。すべて、既にお使いの Avala API によって実現されています。

前提条件

  • Node.js 18 以降がマシンにインストールされていること
  • Avala API キーMission ControlSettings > Security で生成できます)

セットアップ

Claude Desktop

Claude Desktop の設定ファイルを開きます:
  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
Avala MCP Server を追加します:
実際の API キーを含む設定ファイルをバージョン管理にコミットしないでください。AVALA_API_KEY をシステム環境変数として設定するか、"your-api-key" を実際のキーに置き換え、設定ファイルが .gitignore に含まれていることを確認してください。
Claude Desktop を再起動してください。ツールピッカーに Avala のツールが表示されます。

Cursor

プロジェクトルート(またはグローバル設定ディレクトリ)に .cursor/mcp.json を作成または編集します:
.cursor/mcp.json はプロジェクトルートにあり、git にコミットされる可能性があります。.gitignore に追加するか、設定ファイルに直接記載する代わりに AVALA_API_KEY をシステム環境変数として設定してください。
Cursor を再起動するか、ウィンドウをリロードしてください。Cursor のエージェントモードで Avala のツールが利用可能になります。

VS Code

ワークスペースの .vscode/mcp.json を作成または編集します:
.vscode/mcp.json はワークスペースにあり、git にコミットされる可能性があります。.gitignore に追加するか、設定ファイルに直接記載する代わりに AVALA_API_KEY をシステム環境変数として設定してください。
MCP サポートが有効な GitHub Copilot 拡張機能がインストールされていることを確認してください。VS Code を再起動すると、新しいサーバーが認識されます。

Claude Code

1 つのコマンドで Avala MCP Server を Claude Code に追加できます:
API キーを環境変数として設定します:
Claude Code を再起動してください。セッションで Avala のツールが利用可能になります。

ChatGPT

ChatGPT の MCP サポートは進化中です。最新のセットアップ手順やお使いのプランおよび地域での利用可否については、OpenAI のドキュメントを参照してください。

MCP セキュリティモード

安全のため、MCP Server はデフォルトで読み取り専用です。変更を伴うツールは、以下の設定で明示的に有効にしない限り登録されません:
この環境変数は、サーバー起動前に MCP Server のプロセス環境で設定できます。 デフォルトでは、以下の書き込み/削除操作がブロックされます:
  • create_dataset
  • create_agentdelete_agent
  • create_annotation_issueupdate_annotation_issuedelete_annotation_issue
  • create_storage_configtest_storage_configdelete_storage_config
  • create_webhookdelete_webhook
  • create_export
  • evaluate_quality
  • compute_consensus
  • fleet_register_devicefleet_acknowledge_alert

利用可能な MCP ツール

接続すると、AI アシスタントで以下のツールが利用可能になります:

Fleet(プレビュー)

Fleet ツールはプレビュー版であり、変更される可能性があります。フリートのデバイス、録画、イベント、アラート、ルールへの読み取り・書き込みアクセスを提供します。

ツール定義

各 MCP ツールの詳細なスキーマです。すべてのツールはテキストコンテンツとして JSON を返します。

list_datasets

ワークスペース内のすべてのデータセットを一覧表示します。 パラメータ:
  • dataType (string, optional) — データタイプでフィルタ(imagevideolidarmcapsplat
  • name (string, optional) — データセット名でフィルタ(部分一致)
  • status (string, optional) — データセットのステータスでフィルタ
  • visibility (string, optional) — 可視性でフィルタ(private または public
  • limit (number, optional) — 返すデータセットの最大数
  • cursor (string, optional) — 前回のリクエストからのページネーションカーソル
レスポンス例:

get_dataset

特定のデータセットの詳細を取得します。 パラメータ:
  • uid (string, required) — データセットの一意識別子(UUID)
レスポンス例:
エラーレスポンス(無効な UID):

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) — データタイプ:imagevideolidar、または mcap
  • visibility (string, optional) — データセットの可視性:private または public(デフォルト:private
  • createMetadata (boolean, optional) — データセットメタデータを作成するかどうか(デフォルト:true)
  • providerConfig (object, optional) — クラウドストレージプロバイダー設定
  • ownerName (string, optional) — データセットオーナーのユーザー名またはメールアドレス

create_export

データセットまたはプロジェクトの新しいエクスポートをトリガーします。 パラメータ:
  • project (string, optional) — エクスポートするプロジェクトの UID
  • dataset (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) — イベントコールバックを受け取る URL
  • description (string, optional) — エージェントの説明
  • project (string, optional) — エージェントのスコープとなるプロジェクト UID
  • taskTypes (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 配信を受け取る URL
  • events (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) — シーケンスの UUID
  • datasetItemUid (string, optional) — データセットアイテムの UUID でフィルタ
  • projectUid (string, optional) — プロジェクトの UUID でフィルタ

create_annotation_issue

シーケンスに新しいアノテーションイシューを作成します。 パラメータ:
  • sequenceUid (string, required) — シーケンスの UUID
  • toolUid (string, required) — アノテーションツールの UUID
  • problemUid (string, required) — 問題タイプの UUID
  • datasetItemUid (string, optional) — データセットアイテムの UUID
  • projectUid (string, optional) — プロジェクトの UUID
  • priority (string, optional) — 優先度:lowestlowmediumhighhighest
  • severity (string, optional) — 重大度:criticalmoderate
  • description (string, optional) — イシューの説明
  • wrongClass (string, optional) — 誤ったクラスラベル
  • correctClass (string, optional) — 正しいクラスラベル
  • objectUid (string, optional) — アノテーションオブジェクトの UUID
  • shouldReAnnotate (boolean, optional) — 再アノテーションが必要かどうか
  • shouldDelete (boolean, optional) — アノテーションを削除するかどうか
  • framesAffected (string, optional) — イシューの影響を受けるフレーム

update_annotation_issue

既存のアノテーションイシュー(ステータス、優先度など)を更新します。 パラメータ:
  • sequenceUid (string, required) — シーケンスの UUID
  • issueUid (string, required) — アノテーションイシューの UUID
  • status (string, optional) — ステータス:openrelabelingin_reviewcompletedcant_reproduceawaiting_feedbackno_action_taken
  • priority (string, optional) — 優先度:lowestlowmediumhighhighest
  • severity (string, optional) — 重大度:criticalmoderate
  • description (string, optional) — 更新された説明
  • toolUid (string, optional) — アノテーションツールの UUID
  • problemUid (string, optional) — 問題タイプの UUID
  • wrongClass (string, optional) — 誤ったクラスラベル
  • framesAffected (string, optional) — イシューの影響を受けるフレーム

delete_annotation_issue

アノテーションイシューを削除します。 パラメータ:
  • sequenceUid (string, required) — シーケンスの UUID
  • issueUid (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) — データセットタイプ(例:lidarimagevideo

fleet_list_devices

オプションのフィルタ付きでフリートデバイスを一覧表示します。 パラメータ:
  • status (string, optional) — デバイスのステータスでフィルタ(onlineofflinemaintenance
  • 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) — アラートのステータスでフィルタ(openacknowledgedresolved
  • severity (string, optional) — 重大度でフィルタ(infowarningerrorcritical
  • 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 を呼び出して概要を取得します。
ステップ 2 — アシスタントが list_datasetslimit: 50 で呼び出し、すべてのデータセットを取得します。 ステップ 3 — アシスタントが結果を itemCount でソートし、ランキングサマリーを表示します:
データセットは 14 個あります。最も大きい 3 つは:
  1. Warehouse Cameras — 34,200 アイテム(image)
  2. Urban Driving Q1 — 12,450 アイテム(lidar)
  3. Parking Lot Footage — 8,900 アイテム(video)

レシピ 2:エクスポートとダウンロード

アシスタントに尋ねます:「Urban Driving Q1 プロジェクトをエクスポートして、準備ができたら教えて。」 ステップ 1 — アシスタントが list_projects を呼び出し、「Urban Driving Q1」に一致するプロジェクト UID を見つけます。 ステップ 2 — アシスタントがプロジェクト UID を使って create_export を呼び出します。
ステップ 3 — アシスタントがステータスが completed に変わるまで get_export_status をポーリングします。
ステップ 4 — アシスタントがダウンロードリンクとファイルサイズを提供します。
エクスポートの準備ができました(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_alertsstatus: "open" で呼び出します。 ステップ 2 — アシスタントがレスポンスをグループ化してフォーマットします:
Critical(1 件)
  • Dock Camera 3 — 「デバイスが 24 時間以上オフライン」(3 月 18 日から)
Warning(2 件)
  • Forklift Sensor Unit 12 — 「デバイス温度がしきい値を超過(72C)」(3 月 19 日から)
  • Rooftop LiDAR 1 — 「ディスク容量不足(5% 未満)」(3 月 19 日から)
ステップ 3 — 続けて依頼できます:「Warning レベルのアラートをすべて確認済みにして。」 アシスタントが各 Warning アラートの UID に対して 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 対応の任意のクライアントで使用できる自然言語プロンプトの例です:
AI アシスタントが適切な Avala MCP ツールを呼び出し、レスポンスを処理して、読みやすい形式で結果を表示します。1 つの会話でリクエストを連続して行うことができます。たとえば、データセットを一覧表示し、1 つを選択してからエクスポートのステータスを確認できます。

トラブルシューティング

AVALA_API_KEY が設定されていない

AVALA_API_KEY 環境変数が設定されていない場合、MCP Server はエラーコード 1 で即座に終了します。MCP 設定の env ブロックにキーが設定されているか、サーバー起動前にシェルでエクスポートされていることを確認してください。

ミューテーションツールが表示されない

create_exportcreate_agentfleet_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 がキャッシュされたバージョンを使用している可能性があります。強制的に新規インストールしてください:
その後、MCP クライアントを再起動してください。

API キーが無効または期限切れ

ツール呼び出しが 401 Unauthorized を返す場合、API キーが無効、期限切れ、または失効している可能性があります。Mission ControlSettings > Security で新しいキーを生成し、MCP 設定を更新してください。
Avala MCP Server はオープンソースです。ソースコードの閲覧やコントリビュートは GitHub リポジトリをご覧ください。