Skip to main content
Glama
chrisleekr

MCP Server Boilerplate

by chrisleekr
valkey.ts1.4 kB
import Valkey from 'iovalkey'; import { StorageValkeyConfig } from '@/config/type'; import { loggingContext } from '@/core/server/http/context'; import { Storage } from './types'; export class ValkeyStorage implements Storage { private client: Valkey; constructor(config: StorageValkeyConfig) { try { this.client = new Valkey(config.url); } catch (error: unknown) { loggingContext.log('error', 'Failed to create Valkey client', { error: { message: error instanceof Error ? error.message : 'Unknown error', stack: error instanceof Error ? error.stack : undefined, }, }); throw error; } } async get(key: string): Promise<string | null> { return this.client.get(key); } async set(key: string, value: string, ttl?: number): Promise<void> { if (ttl !== undefined) { await this.client.set(key, value, 'EX', ttl); } else { await this.client.set(key, value); } } async delete(key: string): Promise<boolean> { const deleted = await this.client.del(key); return deleted > 0; } async close(): Promise<void> { await this.client.quit(); } async keys(pattern: string): Promise<string[]> { const keys = await this.client.keys(pattern); return keys.map(key => key.replace(pattern, '')); } async length(): Promise<number> { return this.client.dbsize(); } }

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

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