UNPKG

filemaker-data-api-mcp

Version:

Model Context Protocol (MCP) server providing FileMaker Data API integration with database introspection for AI agents. Compatible with Claude, Windsurf, Cursor, Cline, and other MCP-enabled assistants.

100 lines 2.55 kB
/** * Represents a cached token with metadata */ export interface CachedToken { token: string; server: string; database: string; user: string; expiresAt: number; createdAt: number; refreshCount: number; } /** * Token info for debugging/inspection */ export interface TokenInfo { server: string; database: string; user: string; createdAt: number; expiresAt: number; expiresIn: number; refreshCount: number; } /** * Token Manager - Handles token lifecycle with caching, refresh, and error recovery */ export declare class TokenManager { private tokens; private configDir; private tokensFile; private readonly TOKEN_EXPIRY_BUFFER; private readonly DEFAULT_TOKEN_TTL; constructor(configDir?: string); /** * Generate cache key for a token */ private getCacheKey; /** * Load tokens from persistent storage */ private loadTokens; /** * Save tokens to persistent storage */ private saveTokens; /** * Clean up expired tokens from cache */ private cleanupExpiredTokens; /** * Cache a new token */ cacheToken(token: string, server: string, database: string, user: string, ttlMs?: number): void; /** * Get a cached token if valid */ getToken(server: string, database: string, user: string): string | null; /** * Check if a token needs refresh */ needsRefresh(server: string, database: string, user: string): boolean; /** * Update token expiry time (for refresh) */ refreshToken(server: string, database: string, user: string, ttlMs?: number): void; /** * Invalidate a token (on logout or 401 error) */ invalidateToken(server: string, database: string, user: string): void; /** * Get token info for debugging */ getTokenInfo(server: string, database: string, user: string): TokenInfo | null; /** * Clear all cached tokens */ clearAll(): void; /** * Get token cache statistics */ getStats(): { totalCached: number; validTokens: number; expiredTokens: number; }; /** * Get tokens file path */ getTokensFilePath(): string; } /** * Get or create the global token manager instance */ export declare function getTokenManager(configDir?: string): TokenManager; /** * Reset the global token manager (useful for testing) */ export declare function resetTokenManager(): void; //# sourceMappingURL=token-manager.d.ts.map