diff --git a/proto/context.proto b/proto/context.proto
index 01e096233e364be8ad4e3810e7619e8f522e66e6..42b8a69cc5d28da4b1bc56777dcd678aaa96cfd8 100644
--- a/proto/context.proto
+++ b/proto/context.proto
@@ -226,6 +226,7 @@ enum DeviceDriverEnum {
   DEVICEDRIVER_IETF_L3VPN = 13;
   DEVICEDRIVER_IETF_SLICE = 14;
   DEVICEDRIVER_NCE = 15;
+  DEVICEDRIVER_MORPHEUS = 16;
 }
 
 enum DeviceOperationalStatusEnum {
diff --git a/src/common/DeviceTypes.py b/src/common/DeviceTypes.py
index 9a982d1eb71e8b139d2a86fe1a774154239c7147..b917524a614900e7ad7f402587b8cd03efeafeff 100644
--- a/src/common/DeviceTypes.py
+++ b/src/common/DeviceTypes.py
@@ -50,6 +50,7 @@ class DeviceTypeEnum(Enum):
     XR_CONSTELLATION                = 'xr-constellation'
     QKD_NODE                        = 'qkd-node'
     OPEN_ROADM                      = 'openroadm'
+    MORPHEUS                        = 'morpheus'
 
     # ETSI TeraFlowSDN controller
     TERAFLOWSDN_CONTROLLER          = 'teraflowsdn'
diff --git a/src/context/service/database/models/enums/DeviceDriver.py b/src/context/service/database/models/enums/DeviceDriver.py
index fe0d83fb1886a42526b1c71304b7e3ecc2b0b7d7..216cd44617899e63c2c660e9e23ae5c88facd4ab 100644
--- a/src/context/service/database/models/enums/DeviceDriver.py
+++ b/src/context/service/database/models/enums/DeviceDriver.py
@@ -38,6 +38,7 @@ class ORM_DeviceDriverEnum(enum.Enum):
     IETF_SLICE            = DeviceDriverEnum.DEVICEDRIVER_IETF_SLICE
     OC                    = DeviceDriverEnum.DEVICEDRIVER_OC
     QKD                   = DeviceDriverEnum.DEVICEDRIVER_QKD
+    MORPHEUS              = DeviceDriverEnum.DEVICEDRIVER_MORPHEUS
 
 grpc_to_enum__device_driver = functools.partial(
     grpc_to_enum, DeviceDriverEnum, ORM_DeviceDriverEnum)
diff --git a/src/device/service/drivers/__init__.py b/src/device/service/drivers/__init__.py
index e3102cdf523a4e0b551873bb8f0c423db00aebf0..fdbf4739ab1186552b5f1a0ec5b7fa4cc3486062 100644
--- a/src/device/service/drivers/__init__.py
+++ b/src/device/service/drivers/__init__.py
@@ -217,3 +217,14 @@ if LOAD_ALL_DEVICE_DRIVERS:
                 FilterFieldEnum.DRIVER     : DeviceDriverEnum.DEVICEDRIVER_QKD,
             }
         ]))
+
+if LOAD_ALL_DEVICE_DRIVERS:
+    from .morpheus.MorpheusApiDriver import MorpheusAPIDriver
+    DRIVERS.append(
+        (MorpheusAPIDriver, [
+            {
+                # Close enough, it does optical switching
+                FilterFieldEnum.DEVICE_TYPE: DeviceTypeEnum.MORPHEUS,
+                FilterFieldEnum.DRIVER     : DeviceDriverEnum.DEVICEDRIVER_MORPHEUS,
+            }
+        ]))
diff --git a/src/webui/service/device/forms.py b/src/webui/service/device/forms.py
index 4fa6829e760be6f24ba011a18664ce2ee4635595..3005c4cb381ba3711841dbc8d3653f297dfb9f16 100644
--- a/src/webui/service/device/forms.py
+++ b/src/webui/service/device/forms.py
@@ -34,6 +34,7 @@ class AddDeviceForm(FlaskForm):
     device_drivers_optical_tfs = BooleanField('OPTICAL TFS')
     device_drivers_ietf_actn = BooleanField('IETF ACTN')
     device_drivers_qkd = BooleanField('QKD')
+    device_drivers_morpheus = BooleanField('MORPHEUS')
 
     device_config_address = StringField('connect/address',default='127.0.0.1',validators=[DataRequired(), Length(min=5)])
     device_config_port = StringField('connect/port',default='0',validators=[DataRequired(), Length(min=1)])
diff --git a/src/webui/service/device/routes.py b/src/webui/service/device/routes.py
index 16b86c769c5af1b69db4b669f5689043d03536bd..a7dbd5e02a394a4bdf7e62277fc5d041cacf180a 100644
--- a/src/webui/service/device/routes.py
+++ b/src/webui/service/device/routes.py
@@ -135,6 +135,8 @@ def add():
             device_drivers.append(DeviceDriverEnum.DEVICEDRIVER_IETF_ACTN)
         if form.device_drivers_qkd.data:
             device_drivers.append(DeviceDriverEnum.DEVICEDRIVER_QKD)
+        if form.device_drivers_morpheus.data:
+            device_drivers.append(DeviceDriverEnum.DEVICEDRIVER_MORPHEUS)
         device_obj.device_drivers.extend(device_drivers) # pylint: disable=no-member
 
         try:
diff --git a/src/webui/service/templates/device/add.html b/src/webui/service/templates/device/add.html
index b5628ab5902d1b59c70413d41d05a6736adc751a..b39ce33ad33a06f61057099f0ecf0a58e89a192c 100644
--- a/src/webui/service/templates/device/add.html
+++ b/src/webui/service/templates/device/add.html
@@ -96,6 +96,7 @@
                 {{ form.device_drivers_optical_tfs }} {{ form.device_drivers_optical_tfs.label(class="col-sm-3 col-form-label") }}
                 {{ form.device_drivers_ietf_actn }} {{ form.device_drivers_ietf_actn.label(class="col-sm-3 col-form-label") }}
                 {{ form.device_drivers_qkd }} {{ form.device_drivers_qkd.label(class="col-sm-3 col-form-label") }}
+                {{ form.device_drivers_morpheus }} {{ form.device_drivers_morpheus.label(class="col-sm-3 col-form-label") }}
                 {% endif %}
             </div>
         </div>
@@ -159,4 +160,4 @@
         </div>
     </fieldset>
 </form>
-{% endblock %}
\ No newline at end of file
+{% endblock %}