Skip to main content
Glama
config.ts1.91 kB
import { Config } from './types.js'; export function loadConfig(): Config { return { capabilityLevel: parseInt(process.env.CAPABILITY_LEVEL || '1', 10), apiKey: process.env.API_KEY || '', port: process.env.PORT ? parseInt(process.env.PORT, 10) : null, serverDomain: process.env.SERVER_DOMAIN || 'mcp.example.com', // OAuth 2.0 oauthClientId: process.env.OAUTH_CLIENT_ID || null, oauthClientSecret: process.env.OAUTH_CLIENT_SECRET || null, dockerSocket: process.env.DOCKER_SOCKET || '/var/run/docker.sock', dockgeStacksPath: process.env.DOCKGE_STACKS_PATH || '/opt/stacks', opnsenseHost: process.env.OPNSENSE_HOST || null, opnsenseApiKey: process.env.OPNSENSE_API_KEY || null, opnsenseApiSecret: process.env.OPNSENSE_API_SECRET || null, truenasHost: process.env.TRUENAS_HOST || null, truenasApiKey: process.env.TRUENAS_API_KEY || null, proxmoxHost: process.env.PROXMOX_HOST || null, proxmoxTokenId: process.env.PROXMOX_TOKEN_ID || null, proxmoxTokenSecret: process.env.PROXMOX_TOKEN_SECRET || null, homeAssistantHost: process.env.HOME_ASSISTANT_HOST || null, homeAssistantPort: parseInt(process.env.HOME_ASSISTANT_PORT || '8123', 10), homeAssistantToken: process.env.HOME_ASSISTANT_TOKEN || null, homeAssistantUseHttps: process.env.HOME_ASSISTANT_USE_HTTPS === 'true', }; } export function validateConfig(config: Config): void { if (config.capabilityLevel < 1 || config.capabilityLevel > 4) { throw new Error('CAPABILITY_LEVEL must be between 1 and 4'); } // For HTTP mode, need either API_KEY or OAuth credentials if (config.port) { const hasApiKey = !!config.apiKey; const hasOAuth = !!(config.oauthClientId && config.oauthClientSecret); if (!hasApiKey && !hasOAuth) { throw new Error('HTTP mode requires either API_KEY or OAUTH_CLIENT_ID + OAUTH_CLIENT_SECRET'); } } }

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/bshandley/homelab-mcp'

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