diff --git a/src/ci/mcp/Tools.groovy b/src/ci/mcp/Tools.groovy
index fcf1dec..46e8ffb 100644
--- a/src/ci/mcp/Tools.groovy
+++ b/src/ci/mcp/Tools.groovy
@@ -27,6 +27,43 @@
 }
 
 /**
+* Add LABEL to the end of the Dockerfile
+* User can also add some custom properties
+*
+* @param dockerfilePath is the path to Dockerfile, the default is ./Dockerfile
+* @param customProperties a Array of Strings that should be added to mandatory props
+*        in format ["prop1=value1", "prop2=value2"]
+**/
+def setDockerfileLabels(String dockerfilePath = "./Dockerfile", ArrayList customProperties = null){
+
+  if (!fileExists(dockerfilePath)){
+    throw new RuntimeException("Unable to add LABEL to Dockerfile, ${dockerfilePath} doesn't exists")
+  }
+  echo "Updating ${dockerfilePath}"
+
+  def namespace = "com.mirantis.image-specs."
+  def properties = [
+    "gerritProject=${env.GERRIT_PROJECT}",
+    "gerritChangeNumber=${env.GERRIT_CHANGE_NUMBER}",
+    "gerritPatchsetNumber=${env.GERRIT_PATCHSET_NUMBER}",
+    "gerritChangeId=${env.GERRIT_CHANGE_ID}",
+    "gerritPatchsetRevision=${env.GERRIT_PATCHSET_REVISION}"
+  ]
+
+  if (customProperties != null){
+    properties.addAll(customProperties)
+  }
+
+  def metadata = constructString(properties, namespace, " ")
+  sh """
+      cat <<EOF>> ${dockerfilePath}
+      # Apply additional build metadata
+      LABEL ${metadata}
+  """
+  return metadata
+}
+
+/**
 * Return string of mandatory build properties for binaries
 * User can also add some custom properties
 *
