JSON スキーマ

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

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

このドキュメントでは、エージェント カードと MCP ツールの仕様で想定される JSON 構造の例とリンクを示します。

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

A2A 準拠のエージェントを登録する場合、agent-card.json ペイロードは公式の A2A 仕様に準拠している必要があります。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 オブジェクトです。

{
  "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 です。