diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index ab043a38a1a847a41884325cdce999a4cc6a6c66..b7b08443fc0584fa9729cccecd49cf401c58d402 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -64,6 +64,12 @@ NDPPP:
   script:
     - cwltool --no-container --preserve-environment LD_LIBRARY_PATH --preserve-environment PATH steps/DPPP.cwl test_jobs/NDPPP.json
 
+h5parm_collector:
+  stage: test_steps
+  allow_failure: true
+  script:
+    - cwltool --no-container --preserve-environment LD_LIBRARY_PATH --preserve-environment PATH --preserve-environment PYTHONPATH steps/H5ParmCollector.cwl test_jobs/h5parm_collector.json
+
 aoflagger:
   stage: test_steps
   allow_failure: true
@@ -82,6 +88,12 @@ interpolate_visibilities:
   script:
     - cwltool --no-container --preserve-environment LD_LIBRARY_PATH --preserve-environment PATH --preserve-environment PYTHONPATH steps/interpolate_visibilities.cwl test_jobs/interpolate_visibilities.json
 
+h5parm_collector:
+  stage: test_steps
+  allow_failure: true
+  script:
+    - cwltool --no-container --preserve-environment LD_LIBRARY_PATH --preserve-environment PATH --preserve-environment PYTHONPATH steps/H5ParmCollector.cwl test_jobs/h5parm_collector.json
+ 
 blsmooth:
   stage: test_steps
   allow_failure: true
diff --git a/Docker/Dockerfile b/Docker/Dockerfile
index cf33dffa7fb9cad29a1d3224c18d1833e2df0634..516becf3e383588a2430943e4cdacb09cfa065c2 100644
--- a/Docker/Dockerfile
+++ b/Docker/Dockerfile
@@ -93,8 +93,11 @@ ARG LSMTool_TAG=master
 RUN apt-get update && apt-get install -y nodejs python3-pip git wsclean
 RUN python3 -m pip install cwltool cwl-runner -e "git://github.com/darafferty/LSMTool.git@${LSMTool_TAG}#egg=LSMTool"
 
+RUN python3 -m pip install git+https://github.com/revoltek/losoto.git
+
 ADD L570745_uv_first10.MS.tar.xz /data
 ADD skymodels.tar.gz /data/skymodels
+ADD example.h5 /data
 ADD .entrypoint /home/lofaruser/.entrypoint
 RUN chown lofaruser:lofaruser /home/lofaruser/.entrypoint && \ 
     chmod +rx /home/lofaruser/.entrypoint
diff --git a/steps/H5ParmCollector.cwl b/steps/H5ParmCollector.cwl
new file mode 100755
index 0000000000000000000000000000000000000000..46442b33e0c212f67179fa7371fa684d733e94c8
--- /dev/null
+++ b/steps/H5ParmCollector.cwl
@@ -0,0 +1,36 @@
+#!/usr/bin/env cwl-runner
+
+class: CommandLineTool
+cwlVersion: v1.0
+id: h5parm_collector
+
+hints:
+  DockerRequirement:
+    dockerPull: tammojan/lofar-pipeline
+
+baseCommand:
+  - H5parm_collector.py
+inputs:
+  - id: h5parmFiles
+    type: File[]
+    doc: List of h5parm files
+    inputBinding:
+      position: 0
+  - id: insolset
+    type: string?
+    default: sol000
+    doc: Input solset name
+    inputBinding:
+      prefix: --insolset
+  - id: outh5parmname
+    type: string
+    doc: Output h5parm name
+    default: output.h5
+
+outputs:
+  - id: outh5parm
+    doc: Output h5parm
+    type: File
+    outputBinding:
+      glob: $(inputs.outh5parmname)
+label: H5parm_collector
diff --git a/test_data/example.h5 b/test_data/example.h5
new file mode 100644
index 0000000000000000000000000000000000000000..554933b577a0dcf1b2aa3fa91c7de5b2477fd724
Binary files /dev/null and b/test_data/example.h5 differ
diff --git a/test_jobs/h5parm_collector.json b/test_jobs/h5parm_collector.json
new file mode 100644
index 0000000000000000000000000000000000000000..958493f2d5d8a497720e0cd2a5dfa048be960d09
--- /dev/null
+++ b/test_jobs/h5parm_collector.json
@@ -0,0 +1,8 @@
+{
+   "h5parmFiles": [
+   {
+            "class": "File",
+            "path": "/data/example.h5"
+   }
+   ]
+}