33 private static $discriminatorClasses = [
34 'addTool' => McpServerAddToolActionModel::class,
35 'addToolCustomization' => McpServerAddToolCustomizationActionModel::class,
36 'removeTool' => McpServerRemoveToolActionModel::class,
37 'removeToolCustomization' => McpServerRemoveToolCustomizationActionModel::class,
38 'setAuthenticationMode' => McpServerSetAuthenticationModeActionModel::class,
39 'setDescription' => McpServerSetDescriptionActionModel::class,
40 'setJsonOutputFiltering' => McpServerSetJsonOutputFilteringActionModel::class,
41 'setName' => McpServerSetNameActionModel::class,
42 'setState' => McpServerSetStateActionModel::class,
43 'setToolCustomizations' => McpServerSetToolCustomizationsActionModel::class,
44 'setToolOutputFormatting' => McpServerSetToolOutputFormattingActionModel::class,
45 'setTools' => McpServerSetToolsActionModel::class,
65 if (is_null($this->action)) {
67 $data = $this->
raw(self::FIELD_ACTION);
71 $this->action = (string) $data;
88 if (is_object($value) && isset($value->$fieldName)) {
90 $discriminatorValue = $value->$fieldName;
91 if (isset(self::$discriminatorClasses[$discriminatorValue])) {
92 return self::$discriminatorClasses[$discriminatorValue];
95 if (is_array($value) && isset($value[$fieldName])) {
97 $discriminatorValue = $value[$fieldName];
98 if (isset(self::$discriminatorClasses[$discriminatorValue])) {
99 return self::$discriminatorClasses[$discriminatorValue];
104 $type = McpServerUpdateActionModel::class;