UNPKG

cakemail-mcp-server

Version:

Enterprise MCP server for Cakemail API integration with Claude AI - includes comprehensive template management, list management, sub-account management, BEEeditor visual email design, and advanced analytics

90 lines 2.86 kB
import { handleCakemailError } from '../utils/errors.js'; export async function handleGetTokenStatus(_args, api) { try { const status = api.getTokenStatus(); return { content: [ { type: 'text', text: `Token Status:\n${JSON.stringify({ ...status, // Format dates for better readability expiresAt: status.expiresAt?.toISOString(), timeUntilExpiryMinutes: status.timeUntilExpiry ? Math.round(status.timeUntilExpiry / 60000) : null }, null, 2)}`, }, ], }; } catch (error) { return handleCakemailError(error); } } export async function handleRefreshToken(args, api) { try { const { force = false } = args; // Check if refresh is needed unless forced if (!force) { const status = api.getTokenStatus(); if (status.hasToken && !status.needsRefresh) { return { content: [ { type: 'text', text: `Token refresh not needed. Current token expires at: ${status.expiresAt?.toISOString()}\nUse force=true to refresh anyway.`, }, ], }; } } const result = await api.forceRefreshToken(); return { content: [ { type: 'text', text: `Token Refresh Result:\n${JSON.stringify({ ...result, previousExpiry: result.previousExpiry?.toISOString(), newExpiry: result.newExpiry?.toISOString() }, null, 2)}`, }, ], }; } catch (error) { return handleCakemailError(error); } } export async function handleValidateToken(_args, api) { try { const validation = await api.validateToken(); return { content: [ { type: 'text', text: `Token Validation:\n${JSON.stringify(validation, null, 2)}`, }, ], }; } catch (error) { return handleCakemailError(error); } } export async function handleGetTokenScopes(_args, api) { try { const scopes = api.getTokenScopes(); return { content: [ { type: 'text', text: `Token Scopes and Permissions:\n${JSON.stringify(scopes, null, 2)}`, }, ], }; } catch (error) { return handleCakemailError(error); } } //# sourceMappingURL=auth.js.map