diff --git a/admin_toolbar_tools/README.txt b/admin_toolbar_tools/README.txt
index 4b73b20..404959f 100755
--- a/admin_toolbar_tools/README.txt
+++ b/admin_toolbar_tools/README.txt
@@ -15,7 +15,7 @@ INTRODUCTION
 Admin Toolbar Extra Tools provides menu links to administration pages or actions
 (eg. Flushing caches) that are not generated by Drupal core. It adds menu items
 that are not generated by Drupal core. For example there are no menu items for
-each content type by default or menu links to Manage fields on each entity 
+each content type by default or menu links to Manage fields on each entity
 types. That's the purpose of Admin Toolbar Extra Tools to add them.
 
  * For a full description of the module, visit the project page:
@@ -43,7 +43,7 @@ INSTALLATION
 CONFIGURATION
 -------------
 
-No configuration is needed.
+ * Configure the admin toolbar tools at (/admin/config/user-interface/settings).
 
 
 MAINTAINERS
diff --git a/admin_toolbar_tools/admin_toolbar_tools.info.yml b/admin_toolbar_tools/admin_toolbar_tools.info.yml
index 835d24f..8323df8 100755
--- a/admin_toolbar_tools/admin_toolbar_tools.info.yml
+++ b/admin_toolbar_tools/admin_toolbar_tools.info.yml
@@ -5,5 +5,7 @@ package: Administration
 type: module
 core_version_requirement: ^8.7.7 || ^9.0
 
+configure: admin_toolbar_tools.settings
+
 dependencies:
   - admin_toolbar:admin_toolbar
diff --git a/admin_toolbar_tools/admin_toolbar_tools.install b/admin_toolbar_tools/admin_toolbar_tools.install
new file mode 100644
index 0000000..e7fdf1b
--- /dev/null
+++ b/admin_toolbar_tools/admin_toolbar_tools.install
@@ -0,0 +1,16 @@
+<?php
+
+/**
+ * @file
+ * Install, update and uninstall functions for the Admin Toolbar Extra module.
+ */
+
+/**
+ * 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..6bd9f47 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'
+  description: 'Configure the admin toolbar.'
+  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 dde3860..f19e24b 100755
--- a/admin_toolbar_tools/admin_toolbar_tools.routing.yml
+++ b/admin_toolbar_tools/admin_toolbar_tools.routing.yml
@@ -79,6 +79,14 @@ admin_toolbar_tools.theme_rebuild:
     _permission: 'administer site configuration'
     _csrf_token: 'TRUE'
 
+admin_toolbar_tools.settings:
+  path: '/admin/config/user-interface/settings'
+  defaults:
+    _form: '\Drupal\admin_toolbar_tools\Form\AdminToolbarToolsSettingsForm'
+    _title: 'Admin Toolbar Tools settings'
+  requirements:
+    _permission: 'administer site configuration'
+
 admin_toolbar.run.cron:
   path: '/run-cron'
   defaults:
diff --git a/admin_toolbar_tools/admin_toolbar_tools.services.yml b/admin_toolbar_tools/admin_toolbar_tools.services.yml
index f772cff..161fd81 100644
--- a/admin_toolbar_tools/admin_toolbar_tools.services.yml
+++ b/admin_toolbar_tools/admin_toolbar_tools.services.yml
@@ -7,3 +7,4 @@ services:
      - '@router.route_provider'
      - '@cache_contexts_manager'
      - '@cache.toolbar'
+     - '@config.factory'
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..d749625
--- /dev/null
+++ b/admin_toolbar_tools/src/Form/AdminToolbarToolsSettingsForm.php
@@ -0,0 +1,55 @@
+<?php
+
+namespace Drupal\admin_toolbar_tools\Form;
+
+use Drupal\Core\Form\ConfigFormBase;
+use Drupal\Core\Form\FormStateInterface;
+
+/**
+ * Class AdminToolbarToolsSettingsForm.
+ *
+ * @package Drupal\admin_toolbar_tools\Form
+ */
+class AdminToolbarToolsSettingsForm extends ConfigFormBase {
+
+  /**
+   * {@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 bundles per entity type 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);
+  }
+
+}
diff --git a/admin_toolbar_tools/src/Plugin/Derivative/ExtraLinks.php b/admin_toolbar_tools/src/Plugin/Derivative/ExtraLinks.php
index b63d0fd..08a5135 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($base_plugin_id, EntityTypeManagerInterface $entity_type_manager, ModuleHandlerInterface $module_handler, RouteProviderInterface $route_provider, ThemeHandlerInterface $theme_handler) {
+  public function __construct($base_plugin_id, 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');
   }
 
   /**
@@ -68,7 +75,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')
     );
   }
 
@@ -77,6 +85,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) {
@@ -92,11 +101,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',
@@ -318,11 +326,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',
diff --git a/admin_toolbar_tools/src/SearchLinks.php b/admin_toolbar_tools/src/SearchLinks.php
index 703edbe..0d72124 100644
--- a/admin_toolbar_tools/src/SearchLinks.php
+++ b/admin_toolbar_tools/src/SearchLinks.php
@@ -2,10 +2,10 @@
 
 namespace Drupal\admin_toolbar_tools;
 
-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,15 +56,23 @@ class SearchLinks {
    */
   protected $toolbarCache;
 
+  /**
+   * 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, 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');
   }
 
   /**
@@ -77,6 +85,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',
@@ -84,9 +94,9 @@ class SearchLinks {
     $cid_parts = array_merge(['admin_toolbar_search:links'], $additional_keys);
     $cid = implode(':', $cid_parts);
 
-    if ($cache = $this->toolbarCache->get($cid)) {
-      return $cache->data;
-    }
+//    if ($cache = $this->toolbarCache->get($cid)) {
+//      return $cache->data;
+//    }
 
     $links = [];
     $cache_tags = [];
@@ -96,9 +106,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)
@@ -182,7 +192,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/tests/src/Functional/AdminToolbarToolsSortTest.php b/tests/src/Functional/AdminToolbarToolsSortTest.php
index a5cb795..2b27ccd 100644
--- a/tests/src/Functional/AdminToolbarToolsSortTest.php
+++ b/tests/src/Functional/AdminToolbarToolsSortTest.php
@@ -190,6 +190,24 @@ class AdminToolbarToolsSortTest extends BrowserTestBase {
       25 => '/admin/structure/menu/manage/eee',
       26 => '/admin/structure/menu/manage/eee/add',
       27 => '/admin/structure/menu/manage/eee/delete',
+      28 => '/admin/structure/menu/manage/ddd',
+      29 => '/admin/structure/menu/manage/ddd/add',
+      30 => '/admin/structure/menu/manage/ddd/delete',
+      31 => '/admin/structure/menu/manage/ccc',
+      32 => '/admin/structure/menu/manage/ccc/add',
+      33 => '/admin/structure/menu/manage/ccc/delete',
+      34 => '/admin/structure/menu/manage/bbb',
+      35 => '/admin/structure/menu/manage/bbb/add',
+      36 => '/admin/structure/menu/manage/bbb/delete',
+      37 => '/admin/structure/menu/manage/aaa',
+      38 => '/admin/structure/menu/manage/aaa/add',
+      39 => '/admin/structure/menu/manage/aaa/delete',
+      40 => '/admin/structure/menu/manage/main',
+      41 => '/admin/structure/menu/manage/main/add',
+      42 => '/admin/structure/menu/manage/tools',
+      43 => '/admin/structure/menu/manage/tools/add',
+      44 => '/admin/structure/menu/manage/account',
+      45 => '/admin/structure/menu/manage/account/add',
     ];
 
     foreach ($links as $key => $link) {
diff --git a/tests/src/FunctionalJavascript/AdminToolbarSearchTest.php b/tests/src/FunctionalJavascript/AdminToolbarSearchTest.php
index 805edce..e11a9d7 100755
--- a/tests/src/FunctionalJavascript/AdminToolbarSearchTest.php
+++ b/tests/src/FunctionalJavascript/AdminToolbarSearchTest.php
@@ -161,16 +161,6 @@ class AdminToolbarSearchTest extends WebDriverTestBase {
     $this->drupalGet('/admin/admin-toolbar-search');
 
     $search_menus = [
-      'cora',
-      'eleanor',
-      'eloise',
-      'felix',
-      'freya',
-      'genevieve',
-      'isla',
-      'jasper',
-      'luna',
-      'maeve',
       'milo',
       'nora',
       'olivia',
@@ -227,7 +217,7 @@ class AdminToolbarSearchTest extends WebDriverTestBase {
     // 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';
     $this->assertSession()
       ->elementNotContains('css', '#toolbar-administration', $toby_url);
