diff --git a/modules/ai_content_suggestions/ai_content_suggestions.module b/modules/ai_content_suggestions/ai_content_suggestions.module
index 6e4fcbdefd5d05446b884864f06e0aa072209935..9afd1828a648f37bc668c23ddea9307b8fe234ff 100644
--- a/modules/ai_content_suggestions/ai_content_suggestions.module
+++ b/modules/ai_content_suggestions/ai_content_suggestions.module
@@ -30,8 +30,12 @@ function ai_content_suggestions_form_taxonomy_term_tags_form_alter(&$form, FormS
  *   The form state.
  */
 function ai_content_suggestions_alter_form(array &$form, FormStateInterface $form_state): void {
-  \Drupal::service('ai_content_suggestions.form_alter')->alter($form, $form_state);
-  $form['#cache']['contexts'][] = 'user.permissions';
-  $form['#cache']['contexts'][] = 'ai_content_suggestions_plugins';
-  $form['#cache']['contexts'][] = 'ai_providers';
+  $user = \Drupal::currentUser();
+  $hasPermission = $user->hasPermission('access ai content suggestion tools');
+  if ($hasPermission) {
+    \Drupal::service('ai_content_suggestions.form_alter')->alter($form, $form_state);
+    $form['#cache']['contexts'][] = 'user.permissions';
+    $form['#cache']['contexts'][] = 'ai_content_suggestions_plugins';
+    $form['#cache']['contexts'][] = 'ai_providers';
+  }
 }
diff --git a/modules/ai_content_suggestions/ai_content_suggestions.permissions.yml b/modules/ai_content_suggestions/ai_content_suggestions.permissions.yml
new file mode 100644
index 0000000000000000000000000000000000000000..d9e84a068999dcc6b48a383821af3525ed5653de
--- /dev/null
+++ b/modules/ai_content_suggestions/ai_content_suggestions.permissions.yml
@@ -0,0 +1,3 @@
+access ai content suggestion tools:
+  title: 'Access AI Content suggestion tools'
+  description: 'Permit access to content tools provided by the AI Content suggestions module.'