diff --git a/.github/workflows/reusable-ubuntu-ci.yml b/.github/workflows/reusable-ubuntu-ci.yml
index c179c934368..3bfed6955f6 100644
--- a/.github/workflows/reusable-ubuntu-ci.yml
+++ b/.github/workflows/reusable-ubuntu-ci.yml
@@ -649,7 +649,7 @@ jobs:
       - name: Install Python dependencies
         uses: eProsima/eProsima-CI/ubuntu/install_python_packages@v0
         with:
-          packages: vcstool xmlschema xmltodict==0.13.0 jsondiff==2.0.0 pandas==1.5.2
+          packages: vcstool xmlschema xmltodict==0.13.0 jsondiff==2.0.0 pandas==1.5.2 psutil
 
       - name: Setup CCache
         uses: eProsima/eProsima-CI/external/setup-ccache-action@v0
diff --git a/tools/fastdds/fastdds.py b/tools/fastdds/fastdds.py
index a380c54138a..8bfb5669584 100755
--- a/tools/fastdds/fastdds.py
+++ b/tools/fastdds/fastdds.py
@@ -84,7 +84,7 @@ def __init__(self):
 
         if args.command is not None:
             if not hasattr(self, args.command):
-                print('Invalid command')
+                print(f"Invalid command: '{args.command}'. Use 'fastdds -h' for help.")
             else:
                 getattr(self, args.command)()
         elif args.version:
diff --git a/tools/fds/CliDiscoveryParser.hpp b/tools/fds/CliDiscoveryParser.hpp
index 3593e8ef220..c170ca83753 100644
--- a/tools/fds/CliDiscoveryParser.hpp
+++ b/tools/fds/CliDiscoveryParser.hpp
@@ -211,17 +211,20 @@ const option::Descriptor usage[] = {
       "\t               tool.\n"},
 
     { UNKNOWN,   0, "",   "",             Arg::None,
-      "\n\nDaemon options:\n  auto\t Handles the daemon start-up automatically." },
+      "\nDaemon options:\n  auto\t Handle the daemon start-up automatically. It will create\n"
+      "\t a Discovery Server in the specified domain."},
 
     { UNKNOWN,   0, "",   "",             Arg::None,
-      "\n  start\t Starts the Discovery Server daemon with the remote connections\n"
-      "\t specified."},
+      "\n  start\t Start the Discovery Server daemon with the remote connections\n"
+      "\t specified. (Example: start -d 1 \"127.0.0.1:2;10.0.0.3:42\")."},
 
     { UNKNOWN,   0, "",   "",             Arg::None,
-      "\n  stop\t Stops the Discovery Server daemon if it is active." },
+      "\n  stop\t Stop the Discovery Server daemon if it is active. If a domain\n"
+      "\t is specified with the '-d' arg it will only stop the\n"
+      "\t corresponding server and the daemon will remain alive."},
 
     { UNKNOWN,   0, "",   "",             Arg::None,
-      "\n  add\t Adds new remotes Discovery Servers to the local server. This\n"
+      "\n  add\t Add new remote Discovery Servers to the local server. This\n"
       "\t will connect both servers and their sub-networks without\n"
       "\t modifying existing remote servers."},
 
@@ -234,7 +237,8 @@ const option::Descriptor usage[] = {
       "\n  list\t List local active discovery servers created with the CLI Tool." },
 
     { UNKNOWN,   0, "",   "",             Arg::None,
-      "\n  info         \t Inspect the Discovery Server in the specified domain.\n\n"
+      "\n  info         \t Inspect the Discovery Server in the specified domain. Feature\n"
+      "\t not implemented yet.\n\n "
       "  Daemon parameters: \n "},
 
     { DOMAIN_OPT,  0, "d", "domain",    Arg::check_server_id,