diff --git a/README.txt b/README.txt
index dfcc03a..d5edd89 100755
--- a/README.txt
+++ b/README.txt
@@ -50,7 +50,7 @@ INSTALLATION
 CONFIGURATION
 -------------
 
-No configuration is needed.
+ * Configure the admin toolbar tools at (/admin/config/user-interface/settings).
 
 
 MAINTAINERS
diff --git a/admin_toolbar.info.yml b/admin_toolbar.info.yml
index 7704891..57e0e41 100755
--- a/admin_toolbar.info.yml
+++ b/admin_toolbar.info.yml
@@ -1,9 +1,7 @@
 name: Admin Toolbar
 description: Provides an improved drop-down menu interface to the site Toolbar.
 package: Administration
-
 type: module
 core_version_requirement: ^8.8.0 || ^9.0
-
 dependencies:
   - drupal:toolbar
diff --git a/admin_toolbar_search/admin_toolbar_search.info.yml b/admin_toolbar_search/admin_toolbar_search.info.yml
index dea4735..5cf5ed4 100755
--- a/admin_toolbar_search/admin_toolbar_search.info.yml
+++ b/admin_toolbar_search/admin_toolbar_search.info.yml
@@ -1,9 +1,7 @@
 name: Admin Toolbar Search
 description: Provides search of admin toolbar items.
 package: Administration
-
 type: module
 core_version_requirement: ^8.8.0 || ^9.0
-
 dependencies:
-  - admin_toolbar:admin_toolbar
+  - admin_toolbar:admin_toolbar_tools
diff --git a/admin_toolbar_search/admin_toolbar_search.services.yml b/admin_toolbar_search/admin_toolbar_search.services.yml
index 977e6ce..ae99bab 100644
--- a/admin_toolbar_search/admin_toolbar_search.services.yml
+++ b/admin_toolbar_search/admin_toolbar_search.services.yml
@@ -7,3 +7,4 @@ services:
      - '@router.route_provider'
      - '@cache_contexts_manager'
      - '@cache.toolbar'
+     - 'config.factory'
diff --git a/admin_toolbar_search/src/SearchLinks.php b/admin_toolbar_search/src/SearchLinks.php
index e36dba3..ccd178f 100644
--- a/admin_toolbar_search/src/SearchLinks.php
+++ b/admin_toolbar_search/src/SearchLinks.php
@@ -2,10 +2,10 @@
 
 namespace Drupal\admin_toolbar_search;
 
-use Drupal\admin_toolbar_tools\Plugin\Derivative\ExtraLinks;
 use Drupal\Core\Cache\Cache;
 use Drupal\Core\Cache\CacheBackendInterface;
 use Drupal\Core\Cache\Context\CacheContextsManager;
+use Drupal\Core\Config\ConfigFactoryInterface;
 use Drupal\Core\Entity\EntityTypeManagerInterface;
 use Drupal\Core\Extension\ModuleHandlerInterface;
 use Drupal\Core\Language\LanguageInterface;
@@ -56,6 +56,13 @@ class SearchLinks {
    */
   protected $toolbarCache;
 
+  /**
+   * The admin toolbar tools configuration.
+   *
+   * @var \Drupal\Core\Config\Config
+   */
+  protected $config;
+
   /**
    * Constructs a SearchLinks object.
    *
@@ -69,13 +76,16 @@ class SearchLinks {
    *   The cache contexts manager.
    * @param \Drupal\Core\Cache\CacheBackendInterface $toolbar_cache
    *   Cache backend instance to use.
+   * @param \Drupal\Core\Config\ConfigFactoryInterface $config_factory
+   *   Config factory mservice.
    */
-  public function __construct(EntityTypeManagerInterface $entity_type_manager, ModuleHandlerInterface $module_handler, RouteProviderInterface $route_provider, CacheContextsManager $cache_context_manager, CacheBackendInterface $toolbar_cache) {
+  public function __construct(EntityTypeManagerInterface $entity_type_manager, ModuleHandlerInterface $module_handler, RouteProviderInterface $route_provider, CacheContextsManager $cache_context_manager, CacheBackendInterface $toolbar_cache, ConfigFactoryInterface $config_factory) {
     $this->entityTypeManager = $entity_type_manager;
     $this->moduleHandler = $module_handler;
     $this->routeProvider = $route_provider;
     $this->cacheContextManager = $cache_context_manager;
     $this->toolbarCache = $toolbar_cache;
+    $this->config = $config_factory->get('admin_toolbar_tools.settings');
   }
 
   /**
@@ -88,6 +98,8 @@ class SearchLinks {
    * @throws \Drupal\Component\Plugin\Exception\PluginNotFoundException
    */
   public function getLinks() {
+    $max_bundle_number = $this->config->get('max_bundle_number');
+    $i = 0;
     $additional_keys = $this->cacheContextManager->convertTokensToKeys([
       'languages:' . LanguageInterface::TYPE_INTERFACE,
       'user.permissions',
@@ -107,9 +119,9 @@ class SearchLinks {
     foreach ($content_entities as $entities) {
       $content_entity_bundle = $entities['content_entity_bundle'];
       $content_entity = $entities['content_entity'];
-      // Start at offset 10, since the toolbar has already loaded the first 10.
+      // Load the remaining items that were not loaded by the toolbar.
       $content_entity_bundle_storage = $this->entityTypeManager->getStorage($content_entity_bundle);
-      $bundles_ids = $content_entity_bundle_storage->getQuery()->range(ExtraLinks::MAX_BUNDLE_NUMBER)->execute();
+      $bundles_ids = $content_entity_bundle_storage->getQuery()->range($max_bundle_number)->execute();
       if (!empty($bundles_ids)) {
         $bundles = $this->entityTypeManager
           ->getStorage($content_entity_bundle)
@@ -193,7 +205,7 @@ class SearchLinks {
 
       $menus = $this->entityTypeManager->getStorage('menu')->loadMultiple();
       uasort($menus, [Menu::class, 'sort']);
-      $menus = array_slice($menus, ExtraLinks::MAX_BUNDLE_NUMBER);
+      $menus = array_slice($menus, $max_bundle_number);
 
       $cache_tags = Cache::mergeTags($cache_tags, ['config:menu_list']);
       foreach ($menus as $menu_id => $menu) {
diff --git a/admin_toolbar_search/tests/src/FunctionalJavascript/AdminToolbarToolsSearchTest.php b/admin_toolbar_search/tests/src/FunctionalJavascript/AdminToolbarToolsSearchTest.php
index 84604bc..b38679d 100755
--- a/admin_toolbar_search/tests/src/FunctionalJavascript/AdminToolbarToolsSearchTest.php
+++ b/admin_toolbar_search/tests/src/FunctionalJavascript/AdminToolbarToolsSearchTest.php
@@ -184,7 +184,7 @@ class AdminToolbarToolsSearchTest extends AdminToolbarSearchTestBase {
     // Test that bundle within admin toolbar appears in search.
     $this->assertSuggestionContains('lola', 'admin/structure/media/manage/lola/fields');
 
-    // Assert that a link after the limit (10) doesn't appear in admin toolbar.
+    // Assert that a link after the limit doesn't appear in admin toolbar.
     $toby_url = '/admin/structure/media/manage/toby/fields';
     $assert_session->elementNotContains('css', '#toolbar-administration', $toby_url);
 
diff --git a/admin_toolbar_tools/admin_toolbar_tools.info.yml b/admin_toolbar_tools/admin_toolbar_tools.info.yml
index c6616b2..406e04c 100755
--- a/admin_toolbar_tools/admin_toolbar_tools.info.yml
+++ b/admin_toolbar_tools/admin_toolbar_tools.info.yml
@@ -1,9 +1,8 @@
 name: Admin Toolbar Extra Tools
 description: Adds menu links to the Admin Toolbar.
 package: Administration
-
+configure: admin_toolbar_tools.settings
 type: module
 core_version_requirement: ^8.8.0 || ^9.0
-
 dependencies:
   - admin_toolbar:admin_toolbar
diff --git a/admin_toolbar_tools/admin_toolbar_tools.install b/admin_toolbar_tools/admin_toolbar_tools.install
index 1cc14c7..f573860 100644
--- a/admin_toolbar_tools/admin_toolbar_tools.install
+++ b/admin_toolbar_tools/admin_toolbar_tools.install
@@ -12,3 +12,13 @@ function admin_toolbar_tools_update_8001() {
   // Installing the Admin Toolbar Search module.
   \Drupal::service('module_installer')->install(['admin_toolbar_search']);
 }
+
+/**
+ * Default setting for maximum number of bundles per entity type to display.
+ */
+function admin_toolbar_tools_update_8201() {
+  \Drupal::service('config.factory')
+    ->getEditable('admin_toolbar_tools.settings')
+    ->set('max_bundle_number', 20)
+    ->save(TRUE);
+}
diff --git a/admin_toolbar_tools/admin_toolbar_tools.links.menu.yml b/admin_toolbar_tools/admin_toolbar_tools.links.menu.yml
index 670a4f7..acdf930 100755
--- a/admin_toolbar_tools/admin_toolbar_tools.links.menu.yml
+++ b/admin_toolbar_tools/admin_toolbar_tools.links.menu.yml
@@ -84,3 +84,9 @@ admin_toolbar_tools.theme_rebuild:
 admin_toolbar_tools.extra_links:
   deriver: \Drupal\admin_toolbar_tools\Plugin\Derivative\ExtraLinks
   menu_name: admin
+
+admin_toolbar_tools.settings:
+  title: 'Admin Toolbar Tools'
+  description: 'Configure the Admin Toolbar Tools module.'
+  route_name: admin_toolbar_tools.settings
+  parent: system.admin_config_ui
diff --git a/admin_toolbar_tools/admin_toolbar_tools.routing.yml b/admin_toolbar_tools/admin_toolbar_tools.routing.yml
index bcae9db..1806e80 100755
--- a/admin_toolbar_tools/admin_toolbar_tools.routing.yml
+++ b/admin_toolbar_tools/admin_toolbar_tools.routing.yml
@@ -87,3 +87,11 @@ admin_toolbar.run.cron:
   requirements:
     _permission: 'administer site configuration'
     _csrf_token: 'TRUE'
+
+admin_toolbar_tools.settings:
+  path: '/admin/config/user-interface/admin-toolbar-tools'
+  defaults:
+    _form: '\Drupal\admin_toolbar_tools\Form\AdminToolbarToolsSettingsForm'
+    _title: 'Admin Toolbar Tools settings'
+  requirements:
+    _permission: 'administer site configuration'
diff --git a/admin_toolbar_tools/config/install/admin_toolbar_tools.settings.yml b/admin_toolbar_tools/config/install/admin_toolbar_tools.settings.yml
new file mode 100644
index 0000000..d2ac5ea
--- /dev/null
+++ b/admin_toolbar_tools/config/install/admin_toolbar_tools.settings.yml
@@ -0,0 +1 @@
+max_bundle_number: 20
diff --git a/admin_toolbar_tools/config/schema/admin_toolbar_tools.schema.yml b/admin_toolbar_tools/config/schema/admin_toolbar_tools.schema.yml
new file mode 100644
index 0000000..28f0bd3
--- /dev/null
+++ b/admin_toolbar_tools/config/schema/admin_toolbar_tools.schema.yml
@@ -0,0 +1,7 @@
+admin_toolbar_tools.settings:
+  type: config_object
+  label: 'Admin Toolbar Tools settings'
+  mapping:
+    max_bundle_number:
+      type: integer
+      label: 'Number of bundles per entity type to display'
diff --git a/admin_toolbar_tools/src/Form/AdminToolbarToolsSettingsForm.php b/admin_toolbar_tools/src/Form/AdminToolbarToolsSettingsForm.php
new file mode 100644
index 0000000..42b9bae
--- /dev/null
+++ b/admin_toolbar_tools/src/Form/AdminToolbarToolsSettingsForm.php
@@ -0,0 +1,102 @@
+<?php
+
+namespace Drupal\admin_toolbar_tools\Form;
+
+use Drupal\Core\Cache\CacheBackendInterface;
+use Drupal\Core\Config\ConfigFactoryInterface;
+use Drupal\Core\Form\ConfigFormBase;
+use Drupal\Core\Form\FormStateInterface;
+use Drupal\Core\Menu\MenuLinkManagerInterface;
+use Symfony\Component\DependencyInjection\ContainerInterface;
+
+/**
+ * Class AdminToolbarToolsSettingsForm.
+ *
+ * @package Drupal\admin_toolbar_tools\Form
+ */
+class AdminToolbarToolsSettingsForm extends ConfigFormBase {
+
+  /**
+   * The cache menu instance.
+   *
+   * @var \Drupal\Core\Cache\CacheBackendInterface
+   */
+  protected $cacheMenu;
+
+  /**
+   * The menu link manager instance.
+   *
+   * @var \Drupal\Core\Menu\MenuLinkManagerInterface
+   */
+  protected $menuLinkManager;
+
+  /**
+   * AdminToolbarToolsSettingsForm constructor.
+   *
+   * @param \Drupal\Core\Config\ConfigFactoryInterface $configFactory
+   *   The factory for configuration objects.
+   * @param \Drupal\Core\Menu\MenuLinkManagerInterface $menuLinkManager
+   *   A menu link manager instance.
+   * @param \Drupal\Core\Cache\CacheBackendInterface $cacheMenu
+   *   A cache menu instance.
+   */
+  public function __construct(ConfigFactoryInterface $configFactory, MenuLinkManagerInterface $menuLinkManager, CacheBackendInterface $cacheMenu) {
+    parent::__construct($configFactory);
+    $this->cacheMenu = $cacheMenu;
+    $this->menuLinkManager = $menuLinkManager;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public static function create(ContainerInterface $container) {
+    return new static(
+      $container->get('config.factory'),
+      $container->get('plugin.manager.menu.link'),
+      $container->get('cache.menu')
+    );
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  protected function getEditableConfigNames() {
+    return [
+      'admin_toolbar_tools.settings',
+    ];
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function getFormId() {
+    return 'admin_toolbar_tools_settings';
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function buildForm(array $form, FormStateInterface $form_state) {
+    $config = $this->config('admin_toolbar_tools.settings');
+    $form['max_bundle_number'] = [
+      '#type' => 'number',
+      '#title' => $this->t('Maximum number of bundle sub-menus to display'),
+      '#description' => $this->t('Loading a large number of items can cause performance issues.'),
+      '#default_value' => $config->get('max_bundle_number'),
+    ];
+    return parent::buildForm($form, $form_state);
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function submitForm(array &$form, FormStateInterface $form_state) {
+    $this->config('admin_toolbar_tools.settings')
+      ->set('max_bundle_number', $form_state->getValue('max_bundle_number'))
+      ->save();
+    parent::submitForm($form, $form_state);
+    $this->cacheMenu->invalidateAll();
+    $this->menuLinkManager->rebuild();
+  }
+
+}
diff --git a/admin_toolbar_tools/src/Plugin/Derivative/ExtraLinks.php b/admin_toolbar_tools/src/Plugin/Derivative/ExtraLinks.php
index e9d6de8..3598c73 100755
--- a/admin_toolbar_tools/src/Plugin/Derivative/ExtraLinks.php
+++ b/admin_toolbar_tools/src/Plugin/Derivative/ExtraLinks.php
@@ -3,6 +3,7 @@
 namespace Drupal\admin_toolbar_tools\Plugin\Derivative;
 
 use Drupal\Component\Plugin\Derivative\DeriverBase;
+use Drupal\Core\Config\ConfigFactoryInterface;
 use Drupal\Core\Entity\EntityTypeManagerInterface;
 use Drupal\Core\Extension\ModuleHandlerInterface;
 use Drupal\Core\Extension\ThemeHandlerInterface;
@@ -19,8 +20,6 @@ class ExtraLinks extends DeriverBase implements ContainerDeriverInterface {
 
   use StringTranslationTrait;
 
-  const MAX_BUNDLE_NUMBER = 10;
-
   /**
    * The entity type manager.
    *
@@ -49,14 +48,22 @@ class ExtraLinks extends DeriverBase implements ContainerDeriverInterface {
    */
   protected $themeHandler;
 
+  /**
+   * The admin toolbar tools configuration.
+   *
+   * @var \Drupal\Core\Config\Config
+   */
+  protected $config;
+
   /**
    * {@inheritdoc}
    */
-  public function __construct(EntityTypeManagerInterface $entity_type_manager, ModuleHandlerInterface $module_handler, RouteProviderInterface $route_provider, ThemeHandlerInterface $theme_handler) {
+  public function __construct(EntityTypeManagerInterface $entity_type_manager, ModuleHandlerInterface $module_handler, RouteProviderInterface $route_provider, ThemeHandlerInterface $theme_handler, ConfigFactoryInterface $config_factory) {
     $this->entityTypeManager = $entity_type_manager;
     $this->moduleHandler = $module_handler;
     $this->routeProvider = $route_provider;
     $this->themeHandler = $theme_handler;
+    $this->config = $config_factory->get('admin_toolbar_tools.settings');
   }
 
   /**
@@ -67,7 +74,8 @@ class ExtraLinks extends DeriverBase implements ContainerDeriverInterface {
       $container->get('entity_type.manager'),
       $container->get('module_handler'),
       $container->get('router.route_provider'),
-      $container->get('theme_handler')
+      $container->get('theme_handler'),
+      $container->get('config.factory')
     );
   }
 
@@ -76,6 +84,7 @@ class ExtraLinks extends DeriverBase implements ContainerDeriverInterface {
    */
   public function getDerivativeDefinitions($base_plugin_definition) {
     $links = [];
+    $max_bundle_number = $this->config->get('max_bundle_number');
     $entity_types = $this->entityTypeManager->getDefinitions();
     $content_entities = [];
     foreach ($entity_types as $key => $entity_type) {
@@ -91,11 +100,10 @@ class ExtraLinks extends DeriverBase implements ContainerDeriverInterface {
     foreach ($content_entities as $entities) {
       $content_entity_bundle = $entities['content_entity_bundle'];
       $content_entity = $entities['content_entity'];
-      // We do not display more than 10 different bundles per entity type.
       $content_entity_bundle_storage = $this->entityTypeManager->getStorage($content_entity_bundle);
-      $bundles_ids = $content_entity_bundle_storage->getQuery()->pager(self::MAX_BUNDLE_NUMBER)->execute();
+      $bundles_ids = $content_entity_bundle_storage->getQuery()->pager($max_bundle_number)->execute();
       $bundles = $this->entityTypeManager->getStorage($content_entity_bundle)->loadMultiple($bundles_ids);
-      if (count($bundles) == self::MAX_BUNDLE_NUMBER && $this->routeExists('entity.' . $content_entity_bundle . '.collection')) {
+      if (count($bundles) == $max_bundle_number && $this->routeExists('entity.' . $content_entity_bundle . '.collection')) {
         $links[$content_entity_bundle . '.collection'] = [
           'title' => $this->t('All types'),
           'route_name' => 'entity.' . $content_entity_bundle . '.collection',
@@ -317,11 +325,10 @@ class ExtraLinks extends DeriverBase implements ContainerDeriverInterface {
         'weight' => -2,
       ] + $base_plugin_definition;
       // Adds links to /admin/structure/menu.
-      // We do not display more than 10 different menus.
       $menus = $this->entityTypeManager->getStorage('menu')->loadMultiple();
       uasort($menus, [Menu::class, 'sort']);
-      $menus = array_slice($menus, 0, self::MAX_BUNDLE_NUMBER);
-      if (count($menus) == self::MAX_BUNDLE_NUMBER) {
+      $menus = array_slice($menus, 0, $max_bundle_number);
+      if (count($menus) == $max_bundle_number) {
         $links['entity.menu.collection'] = [
           'title' => $this->t('All menus'),
           'route_name' => 'entity.menu.collection',
