Skip to main content
Glama
index.ts2.85 kB
import logger from '../utils/logger'; // Load environment variables always try { const dotenv = require('dotenv'); const result = dotenv.config(); if (result.error) { logger.warn(`Error loading .env file: ${result.error.message}`); } else { logger.debug('Environment variables loaded from .env file'); } } catch (error) { logger.warn('dotenv module not found, skipping .env file loading.'); } const config = { projectName: process.env.PROJECT_NAME || 'DocMCP', projectVersion: process.env.PROJECT_VERSION || '0.1.0', server: { port: process.env.PORT || 3000, nodeEnv: process.env.NODE_ENV || 'development', }, logging: { level: process.env.LOG_LEVEL || 'info', }, security: { corsOrigin: process.env.CORS_ORIGIN || '*', rateLimitWindowMs: Number(process.env.RATE_LIMIT_WINDOW_MS) || 900000, // 15 minutes rateLimitMaxRequests: Number(process.env.RATE_LIMIT_MAX_REQUESTS) || 100, }, embedding: { provider: process.env.EMBEDDING_PROVIDER || 'bedrock', dimensions: Number(process.env.EMBEDDING_DIMENSIONS) || 1536, }, aws: { region: 'us-east-1', embeddingDimensions: Number(process.env.AWS_EMBEDDING_DIMENSIONS) || 1536, accessKeyId: process.env.AWS_ACCESS_KEY_ID || 'your-access-key-id', secretAccessKey: process.env.AWS_SECRET_ACCESS_KEY || 'your-secret-access-key', }, ollama: { apiUrl: process.env.OLLAMA_API_URL || 'http://localhost:11434/api/embed', embedModel: process.env.OLLAMA_EMBED_MODEL || 'granite-embedding:30m', }, // Add chunking configuration chunking: { strategy: process.env.CHUNKING_STRATEGY || 'headings', // 'headings' or 'fixed' fixedChunkSize: Number(process.env.FIXED_CHUNK_SIZE) || 1000, // Characters fixedChunkOverlap: Number(process.env.FIXED_CHUNK_OVERLAP) || 100, // Characters // Added token-based chunking settings tokenChunkSize: Number(process.env.TOKEN_CHUNK_SIZE) || 6000, // Tokens (reduced from 7000) tokenChunkOverlap: Number(process.env.TOKEN_CHUNK_OVERLAP) || 100, // Tokens (reduced from 200) markdownChunkSize: Number(process.env.MARKDOWN_CHUNK_SIZE) || 6000, // Characters (~1500 tokens) markdownChunkOverlap: Number(process.env.MARKDOWN_CHUNK_OVERLAP) || 200, // Characters }, }; // Log AWS environment variables logger.debug('AWS Environment Variables:', { AWS_REGION: process.env.AWS_REGION, AWS_ACCESS_KEY_ID_EXISTS: !!process.env.AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY_EXISTS: !!process.env.AWS_SECRET_ACCESS_KEY, }); // Validate required environment variables const requiredEnvVars: string[] = []; const missingEnvVars = requiredEnvVars.filter((envVar) => !process.env[envVar]); if (missingEnvVars.length > 0) { logger.error(`Missing required environment variables: ${missingEnvVars.join(', ')}`); process.exit(1); } export default config;

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/visheshd/docmcp'

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