diff --git a/MANIFEST.in b/MANIFEST.in
index a1a7032c6dbca2bdcb53c71d8a4d0682843285ec..5f025ede9c8df484368bbb5d0e2933abecfd716f 100644
--- a/MANIFEST.in
+++ b/MANIFEST.in
@@ -1,6 +1,7 @@
 recursive-include dependencies/optimade-python-tools *.txt *.g *.py *.ini
 recursive-include nomad *.json *.j2 *.md *.yaml
 include README.md
+include LICENSE.txt
 include requirements.txt
 include auto_complete_install.sh
 include setup.json
\ No newline at end of file
diff --git a/setup.py b/setup.py
index 402e9d98a838729f13fc7637f00255fe29d2f551..880d8fb8c5e552d3dd0fb154f4abeffa30307a41 100644
--- a/setup.py
+++ b/setup.py
@@ -184,6 +184,14 @@ def compile_dependency_setup_kwargs(paths, **kwargs):
             local_install_requires.add(require)
         all_install_requires[name] = local_install_requires
 
+    # automatically add parser deps
+    for _, setup_data in results.items():
+        if 'parsers' in setup_data['meta']['setup.py']:
+            parsing = kwargs.setdefault('extras_require', {}).setdefault('parsing', [])
+            for require in setup_data['kwargs'].get('install_requires', []):
+                if require not in parsing:
+                    parsing.append(require)
+
     def replace_own_packages(requires):
         ''' replaces nomad dependencies with their requirements '''
         for other in all_names: