Skip to main content
Glama

Karakeep MCP server

by karakeep-app
bulkActions.ts1.73 kB
// reference article https://refine.dev/blog/zustand-react-state/#build-a-to-do-app-using-zustand import { create } from "zustand"; import type { ZBookmark } from "@karakeep/shared/types/bookmarks"; interface BookmarkState { selectedBookmarks: ZBookmark[]; visibleBookmarks: ZBookmark[]; isBulkEditEnabled: boolean; setIsBulkEditEnabled: (isEnabled: boolean) => void; toggleBookmark: (bookmark: ZBookmark) => void; setVisibleBookmarks: (visibleBookmarks: ZBookmark[]) => void; selectAll: () => void; unSelectAll: () => void; isEverythingSelected: () => boolean; } const useBulkActionsStore = create<BookmarkState>((set, get) => ({ selectedBookmarks: [], visibleBookmarks: [], isBulkEditEnabled: false, toggleBookmark: (bookmark: ZBookmark) => { const selectedBookmarks = get().selectedBookmarks; const isBookmarkAlreadySelected = selectedBookmarks.some( (b) => b.id === bookmark.id, ); if (isBookmarkAlreadySelected) { set({ selectedBookmarks: selectedBookmarks.filter( (b) => b.id !== bookmark.id, ), }); } else { set({ selectedBookmarks: [...selectedBookmarks, bookmark] }); } }, selectAll: () => { set({ selectedBookmarks: get().visibleBookmarks }); }, unSelectAll: () => { set({ selectedBookmarks: [] }); }, isEverythingSelected: () => { return get().selectedBookmarks.length === get().visibleBookmarks.length; }, setIsBulkEditEnabled: (isEnabled) => { set({ isBulkEditEnabled: isEnabled }); set({ selectedBookmarks: [] }); }, setVisibleBookmarks: (visibleBookmarks: ZBookmark[]) => { set({ visibleBookmarks, }); }, })); export default useBulkActionsStore;

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/karakeep-app/karakeep'

If you have feedback or need assistance with the MCP directory API, please join our Discord server