diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index c05cdb088684064f59151439bea2cf0640edc2a7..d379a8fe65476abd7dfe09419ecc7c74f2442d58 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -275,7 +275,7 @@ pycodegen-integration:
     reports:
       junit: pycodegen/*/report.xml
 
-# -------------------- Linter & Documentation --------------------------------------------------------------------------
+# -------------------- Linter, Type Checker & Documentation ---------------------------------------------------------------------
 
 
 flake8-lint:
@@ -289,6 +289,19 @@ flake8-lint:
   tags:
     - docker
 
+mypy-typecheck:
+  stage: pretest
+  except:
+    variables:
+      - $ENABLE_NIGHTLY_BUILDS
+  image: i10git.cs.fau.de:5005/pycodegen/pycodegen/full
+  before_script:
+    - pip install -e .[tests]
+  script:
+    - mypy src/pystencils
+  tags:
+    - docker
+
 
 build-documentation:
   stage: test
diff --git a/pyproject.toml b/pyproject.toml
index 718cadf328fbcf156023670562799979cfeae04c..87f425ca83858b1eeb71be376c0bd61ee60e08e4 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -59,6 +59,7 @@ tests = [
     'ansi2html',
     'pytest-xdist',
     'flake8',
+    'mypy>=1.8',
     'nbformat',
     'nbconvert',
     'ipython',