diff --git a/search_api.drush.inc b/search_api.drush.inc
index b1239805..e6599827 100644
--- a/search_api.drush.inc
+++ b/search_api.drush.inc
@@ -171,6 +171,16 @@ function search_api_drush_command() {
     'aliases' => array('sapi-sd'),
   );
 
+  $items['search-api-server-clear'] = array(
+    'description' => 'Clear all search indexes on the search server and mark them for reindexing.',
+    'examples' => array(
+      'drush search-api-server-clear' => dt('Clear all search indexes on the search server @server.', array('@server' => 'my_solr_server')),
+      'drush sapi-sc' => dt('Alias to clear all search indexes on the search server @server.', array('@server' => 'my_solr_server')),
+    ),
+    'arguments' => $server,
+    'aliases' => array('sapi-sc'),
+  );
+
   $items['search-api-set-index-server'] = array(
     'description' => 'Set the search server used by a given index.',
     'examples' => array(
@@ -639,6 +649,29 @@ function drush_search_api_server_disable($server_id = NULL) {
 }
 
 /**
+ * Clears all search indexes on the server and marks them for reindexing.
+ *
+ * @param string $server_id
+ *   The ID of the server to clear all search indexes.
+ */
+function drush_search_api_server_clear($server_id = NULL) {
+  if (!isset($server_id)) {
+    drush_print(dt('Please provide a valid server id.'));
+    return;
+  }
+  $server = Server::load($server_id);
+  if (empty($server)) {
+    drush_print(dt('The server could not be loaded.'));
+    return;
+  }
+
+  foreach ($server->getIndexes() as $index) {
+    $index->clear();
+  }
+  drush_print(dt('All indexes on the search server @server_id were cleared.', array('@server_id' => $server_id)));
+}
+
+/**
  * Sets the server for a given index.
  *
  * @param string $index_id
