Skip to main content
Glama

MCP Server Gemini

by gurr-i
index.tsโ€ข1.89 kB
import 'dotenv/config'; import { z } from 'zod'; // Configuration schema validation const ConfigSchema = z.object({ // API Configuration geminiApiKey: z.string().min(1, 'GEMINI_API_KEY is required'), // Server Configuration logLevel: z.enum(['error', 'warn', 'info', 'debug']).default('info'), enableMetrics: z.boolean().default(false), // Rate Limiting rateLimitEnabled: z.boolean().default(true), rateLimitRequests: z.number().default(100), rateLimitWindow: z.number().default(60000), // 1 minute // Timeouts requestTimeout: z.number().default(30000), // 30 seconds // Development isDevelopment: z.boolean().default(false) }); export type Config = z.infer<typeof ConfigSchema>; /** * Load and validate configuration from environment variables */ export function loadConfig(): Config { const rawConfig = { geminiApiKey: process.env.GEMINI_API_KEY, logLevel: process.env.LOG_LEVEL, enableMetrics: process.env.ENABLE_METRICS === 'true', rateLimitEnabled: process.env.RATE_LIMIT_ENABLED !== 'false', rateLimitRequests: process.env.RATE_LIMIT_REQUESTS ? parseInt(process.env.RATE_LIMIT_REQUESTS, 10) : undefined, rateLimitWindow: process.env.RATE_LIMIT_WINDOW ? parseInt(process.env.RATE_LIMIT_WINDOW, 10) : undefined, requestTimeout: process.env.REQUEST_TIMEOUT ? parseInt(process.env.REQUEST_TIMEOUT, 10) : undefined, isDevelopment: process.env.NODE_ENV === 'development' }; try { return ConfigSchema.parse(rawConfig); } catch (error) { if (error instanceof z.ZodError) { const issues = error.issues .map(issue => `${issue.path.join('.')}: ${issue.message}`) .join('\n'); throw new Error(`Configuration validation failed:\n${issues}`); } throw error; } } // Export singleton config instance export const config = loadConfig();

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/gurr-i/mcp-server-gemini-pro'

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