diff --git a/keyserver/src/responders/community-responders.js b/keyserver/src/responders/community-responders.js
--- a/keyserver/src/responders/community-responders.js
+++ b/keyserver/src/responders/community-responders.js
@@ -1,8 +1,14 @@
 // @flow
 
-import type { FetchCommunityInfosResponse } from 'lib/types/community-types.js';
+import type {
+  FetchCommunityInfosResponse,
+  FetchAllCommunityInfosWithNamesResponse,
+} from 'lib/types/community-types.js';
 
-import { fetchCommunityInfos } from '../fetchers/community-fetchers.js';
+import {
+  fetchCommunityInfos,
+  fetchAllCommunityInfosWithNames,
+} from '../fetchers/community-fetchers.js';
 import { Viewer } from '../session/viewer.js';
 
 async function fetchCommunityInfosResponder(
@@ -18,4 +24,19 @@
   return { communityInfos };
 }
 
-export { fetchCommunityInfosResponder };
+async function fetchAllCommunityInfosWithNamesResponder(
+  viewer: Viewer,
+): Promise<FetchAllCommunityInfosWithNamesResponse> {
+  if (!viewer.loggedIn) {
+    return { allCommunityInfosWithNames: [] };
+  }
+
+  const allCommunityInfosWithNames = await fetchAllCommunityInfosWithNames();
+
+  return { allCommunityInfosWithNames };
+}
+
+export {
+  fetchCommunityInfosResponder,
+  fetchAllCommunityInfosWithNamesResponder,
+};
diff --git a/lib/types/community-types.js b/lib/types/community-types.js
--- a/lib/types/community-types.js
+++ b/lib/types/community-types.js
@@ -39,6 +39,10 @@
   +communityInfos: $ReadOnlyArray<ServerCommunityInfo>,
 };
 
+export type FetchAllCommunityInfosWithNamesResponse = {
+  +allCommunityInfosWithNames: $ReadOnlyArray<ServerCommunityInfoWithCommunityName>,
+};
+
 export type CreateOrUpdateFarcasterChannelTagRequest = {
   +commCommunityID: string,
   +farcasterChannelID: string,