JSON スキーマ

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

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

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

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

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

{
  "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"
  ]
}

フィールドの定義

  • name: エージェントの人が読める形式の名前。
  • description: エージェントの目的の概要。
  • version: エージェントのバージョン(1.0.2 など)。
  • protocolVersion: エージェントが実装する Agent2Agent プロトコルのバージョン(0.3.0 など)。
  • url: エージェントにアクセスできるエンドポイント URL。
  • capabilities: 省略可。エージェントがサポートするオペレーション機能(streamingpushNotificationsstateTransitionHistory など)を指定するオブジェクト。
  • defaultInputModes: 省略可。エージェントが入力として受け入れるデフォルトの MIME タイプを定義する文字列の配列(["text/plain"] など)。
  • defaultOutputModes: 省略可。エージェントが出力として生成するデフォルトの MIME タイプを定義する文字列の配列(["text/plain"] など)。
  • skills: エージェントが持つ機能の配列。

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

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