Skip to main content
Glama

Karakeep MCP server

by karakeep-app
karakeep-api.d.ts52 kB
/** * This file was auto-generated by openapi-typescript. * Do not make direct changes to the file. */ export interface paths { "/bookmarks": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * Get all bookmarks * @description Get all bookmarks */ get: { parameters: { query?: { archived?: boolean; favourited?: boolean; sortOrder?: "asc" | "desc"; limit?: number; cursor?: components["schemas"]["Cursor"]; /** @description If set to true, bookmark's content will be included in the response. Note, this content can be large for some bookmarks. */ includeContent?: boolean; }; header?: never; path?: never; cookie?: never; }; requestBody?: never; responses: { /** @description Object with all bookmarks data. */ 200: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["PaginatedBookmarks"]; }; }; }; }; put?: never; /** * Create a new bookmark * @description Create a new bookmark */ post: { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** @description The bookmark to create */ requestBody?: { content: { "application/json": { title?: string | null; archived?: boolean; favourited?: boolean; note?: string; summary?: string; createdAt?: string | null; /** @enum {string} */ crawlPriority?: "low" | "normal"; importSessionId?: string; } & ( | { /** @enum {string} */ type: "link"; /** Format: uri */ url: string; precrawledArchiveId?: string; } | { /** @enum {string} */ type: "text"; text: string; sourceUrl?: string; } | { /** @enum {string} */ type: "asset"; /** @enum {string} */ assetType: "image" | "pdf"; assetId: string; fileName?: string; sourceUrl?: string; } ); }; }; responses: { /** @description The bookmark already exists */ 200: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["Bookmark"]; }; }; /** @description The bookmark got created */ 201: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["Bookmark"]; }; }; /** @description Bad request */ 400: { headers: { [name: string]: unknown; }; content: { "application/json": { code: string; message: string; }; }; }; }; }; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/bookmarks/search": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * Search bookmarks * @description Search bookmarks */ get: { parameters: { query: { q: string; sortOrder?: "asc" | "desc" | "relevance"; limit?: number; cursor?: components["schemas"]["Cursor"]; /** @description If set to true, bookmark's content will be included in the response. Note, this content can be large for some bookmarks. */ includeContent?: boolean; }; header?: never; path?: never; cookie?: never; }; requestBody?: never; responses: { /** @description Object with the search results. */ 200: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["PaginatedBookmarks"]; }; }; }; }; put?: never; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/bookmarks/{bookmarkId}": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * Get a single bookmark * @description Get bookmark by its id */ get: { parameters: { query?: { /** @description If set to true, bookmark's content will be included in the response. Note, this content can be large for some bookmarks. */ includeContent?: boolean; }; header?: never; path: { bookmarkId: components["parameters"]["BookmarkId"]; }; cookie?: never; }; requestBody?: never; responses: { /** @description Object with bookmark data. */ 200: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["Bookmark"]; }; }; /** @description Bookmark not found */ 404: { headers: { [name: string]: unknown; }; content: { "application/json": { code: string; message: string; }; }; }; }; }; put?: never; post?: never; /** * Delete a bookmark * @description Delete bookmark by its id */ delete: { parameters: { query?: never; header?: never; path: { bookmarkId: components["parameters"]["BookmarkId"]; }; cookie?: never; }; requestBody?: never; responses: { /** @description No content - the bookmark was deleted */ 204: { headers: { [name: string]: unknown; }; content?: never; }; /** @description Bookmark not found */ 404: { headers: { [name: string]: unknown; }; content: { "application/json": { code: string; message: string; }; }; }; }; }; options?: never; head?: never; /** * Update a bookmark * @description Update bookmark by its id */ patch: { parameters: { query?: never; header?: never; path: { bookmarkId: components["parameters"]["BookmarkId"]; }; cookie?: never; }; /** @description The data to update. Only the fields you want to update need to be provided. */ requestBody?: { content: { "application/json": { archived?: boolean; favourited?: boolean; summary?: string | null; note?: string; title?: string | null; createdAt?: string | null; /** Format: uri */ url?: string; description?: string | null; author?: string | null; publisher?: string | null; datePublished?: string | null; dateModified?: string | null; text?: string | null; assetContent?: string | null; }; }; }; responses: { /** @description The updated bookmark */ 200: { headers: { [name: string]: unknown; }; content: { "application/json": { id: string; createdAt: string; modifiedAt: string | null; title?: string | null; archived: boolean; favourited: boolean; /** @enum {string|null} */ taggingStatus: "success" | "failure" | "pending" | null; /** @enum {string|null} */ summarizationStatus: "success" | "failure" | "pending" | null; note?: string | null; summary?: string | null; }; }; }; /** @description Bookmark not found */ 404: { headers: { [name: string]: unknown; }; content: { "application/json": { code: string; message: string; }; }; }; }; }; trace?: never; }; "/bookmarks/{bookmarkId}/summarize": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; put?: never; /** * Summarize a bookmark * @description Attaches a summary to the bookmark and returns the updated record. */ post: { parameters: { query?: never; header?: never; path: { bookmarkId: components["parameters"]["BookmarkId"]; }; cookie?: never; }; requestBody?: never; responses: { /** @description The updated bookmark with summary */ 200: { headers: { [name: string]: unknown; }; content: { "application/json": { id: string; createdAt: string; modifiedAt: string | null; title?: string | null; archived: boolean; favourited: boolean; /** @enum {string|null} */ taggingStatus: "success" | "failure" | "pending" | null; /** @enum {string|null} */ summarizationStatus: "success" | "failure" | "pending" | null; note?: string | null; summary?: string | null; }; }; }; /** @description Bookmark not found */ 404: { headers: { [name: string]: unknown; }; content: { "application/json": { code: string; message: string; }; }; }; }; }; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/bookmarks/{bookmarkId}/tags": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; put?: never; /** * Attach tags to a bookmark * @description Attach tags to a bookmark */ post: { parameters: { query?: never; header?: never; path: { bookmarkId: components["parameters"]["BookmarkId"]; }; cookie?: never; }; /** @description The tags to attach. */ requestBody?: { content: { "application/json": { tags: { tagId?: string; tagName?: string; }[]; }; }; }; responses: { /** @description The list of attached tag ids */ 200: { headers: { [name: string]: unknown; }; content: { "application/json": { attached: components["schemas"]["TagId"][]; }; }; }; /** @description Bookmark not found */ 404: { headers: { [name: string]: unknown; }; content: { "application/json": { code: string; message: string; }; }; }; }; }; /** * Detach tags from a bookmark * @description Detach tags from a bookmark */ delete: { parameters: { query?: never; header?: never; path: { bookmarkId: components["parameters"]["BookmarkId"]; }; cookie?: never; }; /** @description The tags to detach. */ requestBody?: { content: { "application/json": { tags: { tagId?: string; tagName?: string; }[]; }; }; }; responses: { /** @description The list of detached tag ids */ 200: { headers: { [name: string]: unknown; }; content: { "application/json": { detached: components["schemas"]["TagId"][]; }; }; }; /** @description Bookmark not found */ 404: { headers: { [name: string]: unknown; }; content: { "application/json": { code: string; message: string; }; }; }; }; }; options?: never; head?: never; patch?: never; trace?: never; }; "/bookmarks/{bookmarkId}/lists": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * Get lists of a bookmark * @description Get lists of a bookmark */ get: { parameters: { query?: never; header?: never; path: { bookmarkId: components["parameters"]["BookmarkId"]; }; cookie?: never; }; requestBody?: never; responses: { /** @description The list of highlights */ 200: { headers: { [name: string]: unknown; }; content: { "application/json": { lists: components["schemas"]["List"][]; }; }; }; /** @description Bookmark not found */ 404: { headers: { [name: string]: unknown; }; content: { "application/json": { code: string; message: string; }; }; }; }; }; put?: never; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/bookmarks/{bookmarkId}/highlights": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * Get highlights of a bookmark * @description Get highlights of a bookmark */ get: { parameters: { query?: never; header?: never; path: { bookmarkId: components["parameters"]["BookmarkId"]; }; cookie?: never; }; requestBody?: never; responses: { /** @description The list of highlights */ 200: { headers: { [name: string]: unknown; }; content: { "application/json": { highlights: components["schemas"]["Highlight"][]; }; }; }; /** @description Bookmark not found */ 404: { headers: { [name: string]: unknown; }; content: { "application/json": { code: string; message: string; }; }; }; }; }; put?: never; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/bookmarks/{bookmarkId}/assets": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; put?: never; /** * Attach asset * @description Attach a new asset to a bookmark */ post: { parameters: { query?: never; header?: never; path: { bookmarkId: components["parameters"]["BookmarkId"]; }; cookie?: never; }; /** @description The asset to attach */ requestBody?: { content: { "application/json": { id: string; /** @enum {string} */ assetType: | "linkHtmlContent" | "screenshot" | "assetScreenshot" | "bannerImage" | "fullPageArchive" | "video" | "bookmarkAsset" | "precrawledArchive" | "unknown"; }; }; }; responses: { /** @description The attached asset */ 201: { headers: { [name: string]: unknown; }; content: { "application/json": { id: string; /** @enum {string} */ assetType: | "linkHtmlContent" | "screenshot" | "assetScreenshot" | "bannerImage" | "fullPageArchive" | "video" | "bookmarkAsset" | "precrawledArchive" | "unknown"; }; }; }; /** @description Bookmark not found */ 404: { headers: { [name: string]: unknown; }; content: { "application/json": { code: string; message: string; }; }; }; }; }; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/bookmarks/{bookmarkId}/assets/{assetId}": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; /** * Replace asset * @description Replace an existing asset with a new one */ put: { parameters: { query?: never; header?: never; path: { bookmarkId: components["parameters"]["BookmarkId"]; assetId: components["parameters"]["AssetId"]; }; cookie?: never; }; /** @description The new asset to replace with */ requestBody?: { content: { "application/json": { assetId: string; }; }; }; responses: { /** @description No content - asset was replaced successfully */ 204: { headers: { [name: string]: unknown; }; content?: never; }; /** @description Bookmark not found */ 404: { headers: { [name: string]: unknown; }; content: { "application/json": { code: string; message: string; }; }; }; }; }; post?: never; /** * Detach asset * @description Detach an asset from a bookmark */ delete: { parameters: { query?: never; header?: never; path: { bookmarkId: components["parameters"]["BookmarkId"]; assetId: components["parameters"]["AssetId"]; }; cookie?: never; }; requestBody?: never; responses: { /** @description No content - asset was detached successfully */ 204: { headers: { [name: string]: unknown; }; content?: never; }; /** @description Bookmark not found */ 404: { headers: { [name: string]: unknown; }; content: { "application/json": { code: string; message: string; }; }; }; }; }; options?: never; head?: never; patch?: never; trace?: never; }; "/lists": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * Get all lists * @description Get all lists */ get: { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; requestBody?: never; responses: { /** @description Object with all lists data. */ 200: { headers: { [name: string]: unknown; }; content: { "application/json": { lists: components["schemas"]["List"][]; }; }; }; }; }; put?: never; /** * Create a new list * @description Create a new list */ post: { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** @description The list to create */ requestBody?: { content: { "application/json": { name: string; description?: string; icon: string; /** * @default manual * @enum {string} */ type?: "manual" | "smart"; query?: string; parentId?: string | null; }; }; }; responses: { /** @description The created list */ 201: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["List"]; }; }; /** @description Bad request */ 400: { headers: { [name: string]: unknown; }; content: { "application/json": { code: string; message: string; }; }; }; }; }; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/lists/{listId}": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * Get a single list * @description Get list by its id */ get: { parameters: { query?: never; header?: never; path: { listId: components["parameters"]["ListId"]; }; cookie?: never; }; requestBody?: never; responses: { /** @description Object with list data. */ 200: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["List"]; }; }; /** @description List not found */ 404: { headers: { [name: string]: unknown; }; content: { "application/json": { code: string; message: string; }; }; }; }; }; put?: never; post?: never; /** * Delete a list * @description Delete list by its id */ delete: { parameters: { query?: never; header?: never; path: { listId: components["parameters"]["ListId"]; }; cookie?: never; }; requestBody?: never; responses: { /** @description No content - the bookmark was deleted */ 204: { headers: { [name: string]: unknown; }; content?: never; }; /** @description List not found */ 404: { headers: { [name: string]: unknown; }; content: { "application/json": { code: string; message: string; }; }; }; }; }; options?: never; head?: never; /** * Update a list * @description Update list by its id */ patch: { parameters: { query?: never; header?: never; path: { listId: components["parameters"]["ListId"]; }; cookie?: never; }; /** @description The data to update. Only the fields you want to update need to be provided. */ requestBody?: { content: { "application/json": { name?: string; description?: string | null; icon?: string; parentId?: string | null; query?: string; public?: boolean; }; }; }; responses: { /** @description The updated list */ 200: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["List"]; }; }; /** @description List not found */ 404: { headers: { [name: string]: unknown; }; content: { "application/json": { code: string; message: string; }; }; }; }; }; trace?: never; }; "/lists/{listId}/bookmarks": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * Get bookmarks in the list * @description Get bookmarks in the list */ get: { parameters: { query?: { sortOrder?: "asc" | "desc"; limit?: number; cursor?: components["schemas"]["Cursor"]; /** @description If set to true, bookmark's content will be included in the response. Note, this content can be large for some bookmarks. */ includeContent?: boolean; }; header?: never; path: { listId: components["parameters"]["ListId"]; }; cookie?: never; }; requestBody?: never; responses: { /** @description Object with list data. */ 200: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["PaginatedBookmarks"]; }; }; /** @description List not found */ 404: { headers: { [name: string]: unknown; }; content: { "application/json": { code: string; message: string; }; }; }; }; }; put?: never; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/lists/{listId}/bookmarks/{bookmarkId}": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; /** * Add a bookmark to a list * @description Add the bookmarks to a list */ put: { parameters: { query?: never; header?: never; path: { listId: components["parameters"]["ListId"]; bookmarkId: components["parameters"]["BookmarkId"]; }; cookie?: never; }; requestBody?: never; responses: { /** @description No content - the bookmark was added */ 204: { headers: { [name: string]: unknown; }; content?: never; }; /** @description List or bookmark not found */ 404: { headers: { [name: string]: unknown; }; content: { "application/json": { code: string; message: string; }; }; }; }; }; post?: never; /** * Remove a bookmark from a list * @description Remove the bookmarks from a list */ delete: { parameters: { query?: never; header?: never; path: { listId: components["parameters"]["ListId"]; bookmarkId: components["parameters"]["BookmarkId"]; }; cookie?: never; }; requestBody?: never; responses: { /** @description No content - the bookmark was added */ 204: { headers: { [name: string]: unknown; }; content?: never; }; /** @description Bookmark already not in list */ 400: { headers: { [name: string]: unknown; }; content: { "application/json": { code: string; message: string; }; }; }; /** @description List or bookmark not found */ 404: { headers: { [name: string]: unknown; }; content: { "application/json": { code: string; message: string; }; }; }; }; }; options?: never; head?: never; patch?: never; trace?: never; }; "/tags": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * Get all tags * @description Get all tags */ get: { parameters: { query?: { nameContains?: string; sort?: "name" | "usage" | "relevance"; attachedBy?: "ai" | "human" | "none"; cursor?: string; limit?: number | null; }; header?: never; path?: never; cookie?: never; }; requestBody?: never; responses: { /** @description Object with all tags data. */ 200: { headers: { [name: string]: unknown; }; content: { "application/json": { tags: components["schemas"]["Tag"][]; nextCursor: string | null; }; }; }; }; }; put?: never; /** * Create a new tag * @description Create a new tag */ post: { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** @description The data to create the tag with. */ requestBody?: { content: { "application/json": { name: string; }; }; }; responses: { /** @description The created tag */ 201: { headers: { [name: string]: unknown; }; content: { "application/json": { id: string; name: string; }; }; }; }; }; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/tags/{tagId}": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * Get a single tag * @description Get tag by its id */ get: { parameters: { query?: never; header?: never; path: { tagId: components["parameters"]["TagId"]; }; cookie?: never; }; requestBody?: never; responses: { /** @description Object with list data. */ 200: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["Tag"]; }; }; /** @description Tag not found */ 404: { headers: { [name: string]: unknown; }; content: { "application/json": { code: string; message: string; }; }; }; }; }; put?: never; post?: never; /** * Delete a tag * @description Delete tag by its id */ delete: { parameters: { query?: never; header?: never; path: { tagId: components["parameters"]["TagId"]; }; cookie?: never; }; requestBody?: never; responses: { /** @description No content - the bookmark was deleted */ 204: { headers: { [name: string]: unknown; }; content?: never; }; /** @description Tag not found */ 404: { headers: { [name: string]: unknown; }; content: { "application/json": { code: string; message: string; }; }; }; }; }; options?: never; head?: never; /** * Update a tag * @description Update tag by its id */ patch: { parameters: { query?: never; header?: never; path: { tagId: components["parameters"]["TagId"]; }; cookie?: never; }; /** @description The data to update. Only the fields you want to update need to be provided. */ requestBody?: { content: { "application/json": { name?: string; }; }; }; responses: { /** @description The updated tag */ 200: { headers: { [name: string]: unknown; }; content: { "application/json": { id: string; name: string; }; }; }; /** @description Tag not found */ 404: { headers: { [name: string]: unknown; }; content: { "application/json": { code: string; message: string; }; }; }; }; }; trace?: never; }; "/tags/{tagId}/bookmarks": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * Get bookmarks with the tag * @description Get bookmarks with the tag */ get: { parameters: { query?: { sortOrder?: "asc" | "desc"; limit?: number; cursor?: components["schemas"]["Cursor"]; /** @description If set to true, bookmark's content will be included in the response. Note, this content can be large for some bookmarks. */ includeContent?: boolean; }; header?: never; path: { tagId: components["parameters"]["TagId"]; }; cookie?: never; }; requestBody?: never; responses: { /** @description Object with list data. */ 200: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["PaginatedBookmarks"]; }; }; /** @description Tag not found */ 404: { headers: { [name: string]: unknown; }; content: { "application/json": { code: string; message: string; }; }; }; }; }; put?: never; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/highlights": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * Get all highlights * @description Get all highlights */ get: { parameters: { query?: { limit?: number; cursor?: components["schemas"]["Cursor"]; }; header?: never; path?: never; cookie?: never; }; requestBody?: never; responses: { /** @description Object with all highlights data. */ 200: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["PaginatedHighlights"]; }; }; }; }; put?: never; /** * Create a new highlight * @description Create a new highlight */ post: { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** @description The highlight to create */ requestBody?: { content: { "application/json": { bookmarkId: string; startOffset: number; endOffset: number; /** * @default yellow * @enum {string} */ color?: "yellow" | "red" | "green" | "blue"; text: string | null; note: string | null; }; }; }; responses: { /** @description The created highlight */ 201: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["Highlight"]; }; }; /** @description Bad highlight request */ 400: { headers: { [name: string]: unknown; }; content: { "application/json": { code: string; message: string; }; }; }; /** @description Bookmark not found */ 404: { headers: { [name: string]: unknown; }; content: { "application/json": { code: string; message: string; }; }; }; }; }; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/highlights/{highlightId}": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * Get a single highlight * @description Get highlight by its id */ get: { parameters: { query?: never; header?: never; path: { highlightId: components["parameters"]["HighlightId"]; }; cookie?: never; }; requestBody?: never; responses: { /** @description Object with highlight data. */ 200: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["Highlight"]; }; }; /** @description Highlight not found */ 404: { headers: { [name: string]: unknown; }; content: { "application/json": { code: string; message: string; }; }; }; }; }; put?: never; post?: never; /** * Delete a highlight * @description Delete highlight by its id */ delete: { parameters: { query?: never; header?: never; path: { highlightId: components["parameters"]["HighlightId"]; }; cookie?: never; }; requestBody?: never; responses: { /** @description The deleted highlight */ 200: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["Highlight"]; }; }; /** @description Highlight not found */ 404: { headers: { [name: string]: unknown; }; content: { "application/json": { code: string; message: string; }; }; }; }; }; options?: never; head?: never; /** * Update a highlight * @description Update highlight by its id */ patch: { parameters: { query?: never; header?: never; path: { highlightId: components["parameters"]["HighlightId"]; }; cookie?: never; }; /** @description The data to update. Only the fields you want to update need to be provided. */ requestBody?: { content: { "application/json": { /** @enum {string} */ color?: "yellow" | "red" | "green" | "blue"; }; }; }; responses: { /** @description The updated highlight */ 200: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["Highlight"]; }; }; /** @description Highlight not found */ 404: { headers: { [name: string]: unknown; }; content: { "application/json": { code: string; message: string; }; }; }; }; }; trace?: never; }; "/users/me": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * Get current user info * @description Returns info about the current user */ get: { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; requestBody?: never; responses: { /** @description Object with user data. */ 200: { headers: { [name: string]: unknown; }; content: { "application/json": { id: string; name?: string | null; email?: string | null; localUser: boolean; }; }; }; }; }; put?: never; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/users/me/stats": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * Get current user stats * @description Returns stats about the current user */ get: { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; requestBody?: never; responses: { /** @description Object with user stats. */ 200: { headers: { [name: string]: unknown; }; content: { "application/json": { numBookmarks: number; numFavorites: number; numArchived: number; numTags: number; numLists: number; numHighlights: number; bookmarksByType: { link: number; text: number; asset: number; }; topDomains: { domain: string; count: number; }[]; totalAssetSize: number; assetsByType: { type: string; count: number; totalSize: number; }[]; bookmarkingActivity: { thisWeek: number; thisMonth: number; thisYear: number; byHour: { hour: number; count: number; }[]; byDayOfWeek: { day: number; count: number; }[]; }; tagUsage: { name: string; count: number; }[]; }; }; }; }; }; put?: never; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/assets": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; put?: never; /** * Upload a new asset * @description Upload a new asset */ post: { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** @description The data to create the asset with. */ requestBody?: { content: { "multipart/form-data": { file: components["schemas"]["File to be uploaded"]; }; }; }; responses: { /** @description Details about the created asset */ 200: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["Asset"]; }; }; }; }; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/assets/{assetId}": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * Get a single asset * @description Get asset by its id */ get: { parameters: { query?: never; header?: never; path: { assetId: components["parameters"]["AssetId"]; }; cookie?: never; }; requestBody?: never; responses: { /** @description Asset content. Content type is determined by the asset type. */ 200: { headers: { [name: string]: unknown; }; content?: never; }; }; }; put?: never; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/admin/users/{userId}": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; /** * Update user * @description Update a user's role, bookmark quota, or storage quota. Admin access required. */ put: { parameters: { query?: never; header?: never; path: { userId: string; }; cookie?: never; }; requestBody?: { content: { "application/json": { /** @enum {string} */ role?: "user" | "admin"; bookmarkQuota?: number | null; storageQuota?: number | null; browserCrawlingEnabled?: boolean | null; }; }; }; responses: { /** @description User updated successfully */ 200: { headers: { [name: string]: unknown; }; content: { "application/json": { success: boolean; }; }; }; /** @description Bad request - Invalid input data or cannot update own user */ 400: { headers: { [name: string]: unknown; }; content: { "application/json": { error: string; }; }; }; /** @description Unauthorized - Authentication required */ 401: { headers: { [name: string]: unknown; }; content: { "application/json": { error: string; }; }; }; /** @description Forbidden - Admin access required */ 403: { headers: { [name: string]: unknown; }; content: { "application/json": { error: string; }; }; }; /** @description User not found */ 404: { headers: { [name: string]: unknown; }; content: { "application/json": { error: string; }; }; }; }; }; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; } export type webhooks = Record<string, never>; export interface components { schemas: { /** @example ieidlxygmwj87oxz5hxttoc8 */ BookmarkId: string; /** @example ieidlxygmwj87oxz5hxttoc8 */ ListId: string; /** @example ieidlxygmwj87oxz5hxttoc8 */ TagId: string; /** @example ieidlxygmwj87oxz5hxttoc8 */ HighlightId: string; /** @example ieidlxygmwj87oxz5hxttoc8 */ AssetId: string; Bookmark: { id: string; createdAt: string; modifiedAt: string | null; title?: string | null; archived: boolean; favourited: boolean; /** @enum {string|null} */ taggingStatus: "success" | "failure" | "pending" | null; /** @enum {string|null} */ summarizationStatus: "success" | "failure" | "pending" | null; note?: string | null; summary?: string | null; tags: { id: string; name: string; /** @enum {string} */ attachedBy: "ai" | "human"; }[]; content: | { /** @enum {string} */ type: "link"; url: string; title?: string | null; description?: string | null; imageUrl?: string | null; imageAssetId?: string | null; screenshotAssetId?: string | null; fullPageArchiveAssetId?: string | null; precrawledArchiveAssetId?: string | null; videoAssetId?: string | null; favicon?: string | null; htmlContent?: string | null; contentAssetId?: string | null; crawledAt?: string | null; author?: string | null; publisher?: string | null; datePublished?: string | null; dateModified?: string | null; } | { /** @enum {string} */ type: "text"; text: string; sourceUrl?: string | null; } | { /** @enum {string} */ type: "asset"; /** @enum {string} */ assetType: "image" | "pdf"; assetId: string; fileName?: string | null; sourceUrl?: string | null; size?: number | null; content?: string | null; } | { /** @enum {string} */ type: "unknown"; }; assets: { id: string; /** @enum {string} */ assetType: | "linkHtmlContent" | "screenshot" | "assetScreenshot" | "bannerImage" | "fullPageArchive" | "video" | "bookmarkAsset" | "precrawledArchive" | "unknown"; }[]; }; PaginatedBookmarks: { bookmarks: components["schemas"]["Bookmark"][]; nextCursor: string | null; }; Cursor: string; List: { id: string; name: string; description?: string | null; icon: string; parentId: string | null; /** * @default manual * @enum {string} */ type: "manual" | "smart"; query?: string | null; public: boolean; }; Highlight: { bookmarkId: string; startOffset: number; endOffset: number; /** * @default yellow * @enum {string} */ color: "yellow" | "red" | "green" | "blue"; text: string | null; note: string | null; id: string; userId: string; createdAt: string; }; Tag: { id: string; name: string; numBookmarks: number; numBookmarksByAttachedType: { ai?: number; human?: number; }; }; PaginatedHighlights: { highlights: components["schemas"]["Highlight"][]; nextCursor: string | null; }; Asset: { assetId: string; contentType: string; size: number; fileName: string; }; "File to be uploaded": unknown; }; responses: never; parameters: { BookmarkId: components["schemas"]["BookmarkId"]; ListId: components["schemas"]["ListId"]; TagId: components["schemas"]["TagId"]; HighlightId: components["schemas"]["HighlightId"]; AssetId: components["schemas"]["AssetId"]; }; requestBodies: never; headers: never; pathItems: never; } export type $defs = Record<string, never>; export type operations = Record<string, never>;

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