{
  "protocolVersion": "0.3.0",
  "name": "Galapagos Clinic Booking",
  "description": "クリニックの予約を扱うエージェント。空き照会・メニュー提案・予約作成/キャンセルを提供する。患者の代理エージェントから利用できる。",
  "version": "0.1.0",
  "url": "https://0.0.0.0:3000/api/a2a",
  "preferredTransport": "JSONRPC",
  "additionalInterfaces": [
    {
      "url": "https://0.0.0.0:3000/api/mcp",
      "transport": "MCP"
    }
  ],
  "provider": {
    "organization": "Premed / Galapagos",
    "url": "https://0.0.0.0:3000"
  },
  "capabilities": {
    "streaming": false,
    "pushNotifications": false,
    "stateTransitionHistory": false
  },
  "securitySchemes": {
    "oauth2": {
      "type": "oauth2",
      "description": "OAuth 2.1 (DCR/PKCE). Authorization server metadata at /oauth/.well-known/oauth-authorization-server",
      "flows": {
        "authorizationCode": {
          "authorizationUrl": "https://0.0.0.0:3000/oauth/authorize",
          "tokenUrl": "https://0.0.0.0:3000/oauth/token",
          "scopes": {
            "booking:read": "空き・メニューの照会",
            "booking:write": "予約の作成・キャンセル"
          }
        }
      }
    }
  },
  "security": [
    {
      "oauth2": [
        "booking:read",
        "booking:write"
      ]
    }
  ],
  "defaultInputModes": [
    "application/json",
    "text/plain"
  ],
  "defaultOutputModes": [
    "application/json"
  ],
  "skills": [
    {
      "id": "get_menu_recommendation",
      "name": "診療メニューの提案",
      "description": "相談内容・症状から適切な予約メニュー（初診/ピル外来/再診/検診 等）と menu_id を返す。予約の起点。",
      "tags": [
        "booking",
        "menu",
        "healthcare"
      ],
      "examples": [
        "ピルを始めたいのですが何の予約ですか",
        "月経不順で受診したい"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "check_availability",
      "name": "空き時間の照会",
      "description": "指定メニュー（menu_id）と日付の空きスロットを返す。予約の前段。",
      "tags": [
        "booking",
        "availability"
      ],
      "examples": [
        "来週金曜の初診の空きを教えて"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "create_booking",
      "name": "予約の作成",
      "description": "空きスロットに新規予約を作成する。patient_intake（連絡先＋同意＋確からしさ）で患者情報を渡す。必須=氏名・氏名カナ・生年月日・電話・性別・メール（メニューにより住所等を追加）。不足時は input_required で不足項目を返すので補って再送する。配送等の高stakesで自己申告の場合は患者本人の確認リンク（confirm_url）を返す。審査済みパートナーは即確定。後方互換で patient_name 指定も可。",
      "tags": [
        "booking",
        "write"
      ],
      "examples": [
        "この時間で予約してください"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "cancel_booking",
      "name": "予約のキャンセル",
      "description": "予約 ID を指定してキャンセルする。",
      "tags": [
        "booking",
        "write"
      ],
      "examples": [
        "予約をキャンセルしたい"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    }
  ],
  "supportsAuthenticatedExtendedCard": false,
  "signatures": []
}