JSON スキーマ

Services API を使用してエージェント レジストリにエージェントまたは Model Context Protocol(MCP)サーバーを明示的に登録する場合は、その機能を記述する構成ファイルを提供する必要があります。

エージェント レジストリは、アップロードされたファイルを外部のオープンソース仕様に照らして検証してから、インデックスに登録してエージェントのスキルとツールを検出します。

このドキュメントでは、エージェント カードと MCP ツールの仕様に必要な JSON 構造の例とリンクを示します。

エージェント カードのスキーマ

A2A 準拠のエージェントを登録する場合、agent-card.json ペイロードは 公式の Agent2Agent(A2A)仕様に準拠している必要があります。 仕様ファイルの最大サイズは 10 KB です。 skills 配列フィールドはキーワード検索インデックスをサポートしています。

エージェント レジストリは、A2A エージェント カードのバージョン 0.31.0 をサポートしています。

バージョン 1.0 のスキーマ(推奨)

A2A エージェント カードのバージョン 1.0 の場合、ペイロードは公式の A2A v1.0 仕様に準拠している必要があります。この仕様では、トランスポート エンドポイントを supportedInterfaces 配列内で宣言します。

{
  "name": "string",
  "description": "string",
  "version": "string",
  "supportedInterfaces": [
    {
      "url": "string",
      "protocolBinding": "string",
      "protocolVersion": "string",
      "tenant": "string"
    }
  ],
  "capabilities": {
    "streaming": false,
    "pushNotifications": false,
    "extendedAgentCard": false
  },
  "defaultInputModes": [
    "text/plain"
  ],
  "defaultOutputModes": [
    "text/plain"
  ],
  "skills": [
    {
      "id": "string",
      "name": "string",
      "description": "string",
      "tags": [
        "string"
      ],
      "examples": [
        "string"
      ]
    }
  ]
}

フィールドの定義(バージョン 1.0)

  • name: 人が読める形式のエージェント名。
  • description: エージェントの目的の概要。
  • version: エージェントのバージョン(1.0.0 など)。
  • supportedInterfaces: サポートされているトランスポートと URL の組み合わせの配列。 各インターフェースには次のものが含まれます。
    • url: このインターフェースに到達するエンドポイント URL。
    • protocolBinding: この URL でサポートされているプロトコル バインディング(HTTP+JSONJSONRPCGRPC など)。
    • protocolVersion: このインターフェースが公開する A2A プロトコルのバージョン(1.0.0 など)。
    • tenant: 省略可。エージェント オーナーの ID。
  • capabilities: 省略可。次のようなサポートされているオペレーション機能を指定します。
    • extensions: 省略可。プロトコル拡張機能の配列。
    • streaming: 省略可。エージェントがストリーミング レスポンスをサポートしているかどうかを示すブール値。
    • pushNotifications: 省略可。タスクの更新でプッシュ通知がサポートされているかどうかを示すブール値。
    • extendedAgentCard: 省略可。認証時にエージェントが拡張エージェント カードを提供するかどうかを示すブール値。
  • defaultInputModes: 省略可。入力として受け入れられる MIME タイプの配列。
  • defaultOutputModes: 省略可。出力として生成される MIME タイプの配列。
  • skills: エージェントが持つ機能の配列。
    • id: スキルの固有のプログラム ID。
    • name: 人が読める形式のスキルの名前。
    • description: スキルの機能の詳細な説明。
    • tags: スキルの分類に使用されるキーワード文字列の配列。
    • examples: プロンプトまたはシナリオの例の配列。

バージョン 0.3 のスキーマ

A2A エージェント カードのバージョン 0.3 の場合、ペイロードは v0.3.0 仕様に準拠している必要があります。この仕様では、プライマリ推論 URL とプロトコル バージョンが最上位フィールドとして宣言されます。

{
  "name": "string",
  "description": "string",
  "version": "string",
  "protocolVersion": "string",
  "url": "string",
  "skills": [
    {
      "id": "string",
      "name": "string",
      "description": "string",
      "tags": [
        "string"
      ],
      "examples": [
        "string"
      ]
    }
  ],
  "capabilities": {
    "streaming": false,
    "pushNotifications": false,
    "stateTransitionHistory": false
  },
  "defaultInputModes": [
    "text/plain"
  ],
  "defaultOutputModes": [
    "text/plain"
  ]
}

フィールドの定義(バージョン 0.3)

  • name: 人が読める形式のエージェント名。
  • description: エージェントの目的の概要。
  • version: エージェントのバージョン(1.0.2 など)。
  • protocolVersion: エージェントが実装する A2A プロトコルのバージョン。 バージョン 1.0 ではこの最上位フィールドが非推奨になっているため、この スキーマの値は 0.3 または 0.3.1 などの 0.3 パッチ バージョンにする必要があります。
  • url: エージェントに到達できるエンドポイント URL。
  • capabilities: 省略可。streamingpushNotificationsstateTransitionHistory などのサポートされているオペレーション機能を指定します。
  • defaultInputModes: 省略可。入力として受け入れられる MIME タイプの配列。
  • defaultOutputModes: 省略可。出力として生成される MIME タイプの配列。
  • skills: エージェントが持つ機能の配列。
    • id: スキルの固有のプログラム ID。
    • name: 人が読める形式のスキルの名前。
    • description: スキルの機能の詳細な説明。
    • tags: スキルの分類に使用されるキーワード文字列の配列。
    • examples: プロンプトまたはシナリオの例の配列。

MCP ツールのスキーマ

MCP サーバーを登録するときは、toolspec.json ペイロードに、 MCP Tool オブジェクト スキーマに準拠するツールのリスト を含める必要があります。

必要なペイロードは、標準の MCP ツールまたはリスト リクエストによって返されるものとまったく同じ、単一の tools フィールドを持つ JSON オブジェクトです。この仕様ファイルの最大サイズは 10 KB です。

{
  "tools": [
    {
      "name": "string",
      "description": "string",
      "inputSchema": {
        "type": "object",
        "properties": {}
      },
      "annotations": {
        "title": "string",
        "readOnlyHint": false,
        "destructiveHint": true,
        "idempotentHint": false,
        "openWorldHint": true
      }
    }
  ]
}

フィールドの定義

  • tools: サーバーによって提供されるツールの配列。

    • name: ツールのプログラム ID。
    • description: ツールの目的を人が読める形式で説明したものです。
    • inputSchema: ツールの想定されるパラメータを定義する JSON スキーマ オブジェクト。
    • annotations: オーケストレータ エージェントがツールとやり取りする方法をガイドする動作のヒント。

      • title: 人が読める形式のツールのタイトル。
      • readOnlyHint: true の場合、ツールはデータを取得するだけで、環境を変更しません。デフォルトは false です。
      • destructiveHint: true の場合、ツールは永続的な変更を引き起こす可能性のあるオペレーションを実行します。デフォルトは true です。
      • idempotentHint: true の場合、ツールを繰り返し呼び出しても追加の効果はありません。デフォルトは false です。
      • openWorldHint: true の場合、ツールは外部システムとやり取りします。デフォルトは true です。