Skip to main content
Glama
handlers.ts1.93 kB
import { createResponse, parseError } from "../utils"; import * as api from "./api"; import type { ManageAppsSchemaType, ManageKeysetsSchemaType } from "./types"; export async function manageAppsHandler(args: ManageAppsSchemaType) { try { switch (args.operation) { case "list": { const result = await api.listApps(); return createResponse(JSON.stringify(result)); } case "create": { const result = await api.createApp(args.data.name); return createResponse(JSON.stringify(result)); } case "update": { await api.updateApp(args.data.id, args.data.name); return createResponse(JSON.stringify({ message: "App updated successfully" })); } } } catch (e) { console.error(e); return createResponse(JSON.stringify(parseError(e)), true); } } export async function manageKeysetsHandler(args: ManageKeysetsSchemaType) { try { switch (args.operation) { case "get": { const result = await api.getKeyset(args.data.id); return createResponse(JSON.stringify(result)); } case "list": { const result = await api.listKeysets(args.data?.appId); return createResponse(JSON.stringify(result)); } case "create": { const createRequest: api.CreateKeysetRequest = { name: args.data.name, type: args.data.type, config: args.data.config, }; if (args.data.appId) { createRequest.appId = args.data.appId; } const result = await api.createKeyset(createRequest); return createResponse(JSON.stringify(result)); } case "update": { await api.updateKeysetConfig(args.data.id, args.data.config); return createResponse("Keyset updated successfully"); } } } catch (e) { console.error(e); return createResponse(JSON.stringify(parseError(e)), true); } }

Latest Blog Posts

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/pubnub/pubnub-mcp-server'

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