diff --git a/CI/add_comment_to_mr.py b/CI/add_comment_to_mr.py
new file mode 100644
index 0000000000000000000000000000000000000000..eea1c94eed45633aedb55096b04530a3ac62ecbd
--- /dev/null
+++ b/CI/add_comment_to_mr.py
@@ -0,0 +1,43 @@
+import argparse, gitlab, logging, sys
+from gitlab.exceptions import GitlabGetError, GitlabCreateError
+
+def main():
+    parser = argparse.ArgumentParser(description="GitLab merge request commentator",formatter_class=argparse.ArgumentDefaultsHelpFormatter)
+    parser.add_argument("comment",type=str,help="comment text to be added")
+    parser.add_argument("-m","--merge-request-id",dest="mr_id",required=True,type=int,help="(unique) ID of merge request (not the project specific IID)")
+    parser.add_argument("-p","--project-name",dest="project_name",required=True,help="GitLab project with namespace (e.g. user/my-project)")
+    parser.add_argument("-t","--token",required=True,help="private GitLab user token")
+    parser.add_argument("-u","--url",default="https://gitlab.cern.ch",help="URL of GitLab instance")
+    parser.add_argument("-v","--verbose",default="INFO",choices=["DEBUG","INFO","WARNING","ERROR","CRITICAL"],help="verbosity level")
+
+    # get command line arguments
+    args = parser.parse_args()
+
+    # configure log output
+    logging.basicConfig(format='%(asctime)s %(levelname)-10s %(message)s',
+                        datefmt='%H:%M:%S',
+                        level=logging.getLevelName(args.verbose))
+
+    logging.debug("parsed arguments:\n" + repr(args))
+
+    # get GitLab API handler
+    gl = gitlab.Gitlab(args.url,args.token)
+    try:
+        # get Gitlab project object
+        project = gl.projects.get(args.project_name)
+        logging.debug("retrieved Gitlab project handle")
+        # get Gitlab merge request object
+        mr = project.mergerequests.get(args.mr_id)
+        logging.debug("retrieved Gitlab merge request handle")
+    except GitlabGetError as e:
+        logging.critical("error communication with Gitlab API '%s'" % (e.error_message))
+        sys.exit(1)
+
+    try:
+        mr.notes.create({'body':args.comment})
+    except GitlabCreateError as e:
+        logging.critical("error creating MR comment '%s'" % (e.error_message))
+        sys.exit(1)
+
+if __name__ == "__main__":
+    main()