diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
new file mode 100644
index 0000000000000000000000000000000000000000..95b317940bda1083c21dc8ad5bec406c0c4f5f1b
--- /dev/null
+++ b/.gitlab-ci.yml
@@ -0,0 +1,9 @@
+image: python:latest
+
+run-default:
+  rules:
+    - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
+  script:
+    - pip install build twine
+    - python -m build
+    - TWINE_PASSWORD=${CI_JOB_TOKEN} TWINE_USERNAME=gitlab-ci-token python -m twine upload --repository-url ${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/pypi dist/*
diff --git a/pyproject.toml b/pyproject.toml
new file mode 100644
index 0000000000000000000000000000000000000000..edd3b334ac11170d15b48ffb51b565599e635812
--- /dev/null
+++ b/pyproject.toml
@@ -0,0 +1,16 @@
+[project]
+name = "python-mkp"
+version = "0.6.0"
+description = "Pack and unpack Check_MK mkp file"
+readme = "README.md"
+authors = [
+  {name = "Thomas Reifenberger", email = "tom-mi@users.noreply.github.com"},
+]
+dependencies = [
+    "requests",
+    "lxml",
+    "zeep",
+    "pydantic[email]",
+    "pydantic-xml",
+]
+requires-python = ">= 3.10"