Skip to main content
Glama

Karakeep MCP server

by karakeep-app
feeds.ts1.74 kB
import { z } from "zod"; import { FeedQueue } from "@karakeep/shared-server"; import { zFeedSchema, zNewFeedSchema, zUpdateFeedSchema, } from "@karakeep/shared/types/feeds"; import { authedProcedure, router } from "../index"; import { Feed } from "../models/feeds"; export const feedsAppRouter = router({ create: authedProcedure .input(zNewFeedSchema) .output(zFeedSchema) .mutation(async ({ input, ctx }) => { const feed = await Feed.create(ctx, input); return feed.asPublicFeed(); }), update: authedProcedure .input(zUpdateFeedSchema) .output(zFeedSchema) .mutation(async ({ input, ctx }) => { const feed = await Feed.fromId(ctx, input.feedId); await feed.update(input); return feed.asPublicFeed(); }), get: authedProcedure .input( z.object({ feedId: z.string(), }), ) .output(zFeedSchema) .query(async ({ ctx, input }) => { const feed = await Feed.fromId(ctx, input.feedId); return feed.asPublicFeed(); }), list: authedProcedure .output(z.object({ feeds: z.array(zFeedSchema) })) .query(async ({ ctx }) => { const feeds = await Feed.getAll(ctx); return { feeds: feeds.map((f) => f.asPublicFeed()) }; }), delete: authedProcedure .input( z.object({ feedId: z.string(), }), ) .mutation(async ({ input, ctx }) => { const feed = await Feed.fromId(ctx, input.feedId); await feed.delete(); }), fetchNow: authedProcedure .input(z.object({ feedId: z.string() })) .mutation(async ({ input, ctx }) => { await Feed.fromId(ctx, input.feedId); await FeedQueue.enqueue({ feedId: input.feedId, }); }), });

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