Skip to main content
Glama
index.ts1.74 kB
import dotenv from 'dotenv'; import { logger } from '#core/logger'; // Load environment variables from .env file dotenv.config(); function findAndLoadToken(): string | undefined { let token = process.env.GITHUB_TOKEN; if (token) { logger.info('GitHub token loaded successfully.'); return token; } logger.warn('WARNING: No GitHub token found. API requests may be rate limited or fail.'); return undefined; } export const config = { logLevel: process.env.LOG_LEVEL ?? 'info', mcpTimeout: process.env.MCP_TIMEOUT ? parseInt(process.env.MCP_TIMEOUT, 10) : 180000, ssePort: process.env.MCP_SSE_PORT ? parseInt(process.env.MCP_SSE_PORT, 10) : 3200, githubToken: findAndLoadToken() ?? '', sseTimeout: process.env.SSE_TIMEOUT ? parseInt(process.env.SSE_TIMEOUT, 10) : 1800000, corsAllowOrigin: process.env.CORS_ALLOW_ORIGIN ?? '', useMultiplexing: process.env.USE_MULTIPLEXING_SSE === 'true', apiKey: process.env.API_KEY ?? '', // Rate Limiting Configuration rateLimitWindowMs: process.env.RATE_LIMIT_WINDOW_MS ? parseInt(process.env.RATE_LIMIT_WINDOW_MS, 10) : 15 * 60 * 1000, // 15 minutes rateLimitMaxRequests: process.env.RATE_LIMIT_MAX_REQUESTS ? parseInt(process.env.RATE_LIMIT_MAX_REQUESTS, 10) : 100, // 100 requests rateLimitSseMax: process.env.RATE_LIMIT_SSE_MAX ? parseInt(process.env.RATE_LIMIT_SSE_MAX, 10) : 5, // 5 SSE connections per minute rateLimitMessagesMax: process.env.RATE_LIMIT_MESSAGES_MAX ? parseInt(process.env.RATE_LIMIT_MESSAGES_MAX, 10) : 30, // 30 messages per minute defaultUserRateLimit: process.env.DEFAULT_USER_RATE_LIMIT ? parseInt(process.env.DEFAULT_USER_RATE_LIMIT, 10) : 1000, // 1000 requests per hour per user };

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/JesusMaster/github-see-mcp-server'

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