Skip to main content
Glama
MUSE-CODE-SPACE

Vibe Coding Documentation MCP (MUSE)

config.ts2.76 kB
/** * Configuration validation and management */ import { logger } from './logger.js'; export interface ConfigStatus { platform: string; configured: boolean; missing: string[]; } export interface ConfigValidationResult { valid: boolean; platforms: ConfigStatus[]; warnings: string[]; } /** * Platform configuration requirements */ const platformRequirements: Record<string, { required: string[]; optional: string[] }> = { notion: { required: ['NOTION_API_KEY'], optional: ['NOTION_DATABASE_ID'] }, 'github-wiki': { required: ['GITHUB_TOKEN', 'GITHUB_REPO'], optional: [] }, obsidian: { required: [], optional: ['OBSIDIAN_VAULT_PATH'] }, confluence: { required: ['CONFLUENCE_BASE_URL', 'CONFLUENCE_USERNAME', 'CONFLUENCE_API_TOKEN', 'CONFLUENCE_SPACE_KEY'], optional: [] }, slack: { required: [], optional: ['SLACK_WEBHOOK_URL'] }, discord: { required: [], optional: ['DISCORD_WEBHOOK_URL'] } }; /** * Validates configuration for all platforms */ export function validateConfiguration(): ConfigValidationResult { const platforms: ConfigStatus[] = []; const warnings: string[] = []; for (const [platform, requirements] of Object.entries(platformRequirements)) { const missing: string[] = []; for (const envVar of requirements.required) { if (!process.env[envVar]) { missing.push(envVar); } } const configured = missing.length === 0; platforms.push({ platform, configured, missing }); if (!configured && requirements.required.length > 0) { warnings.push(`${platform}: Missing required env vars: ${missing.join(', ')}`); } } const valid = platforms.some(p => p.configured); return { valid, platforms, warnings }; } /** * Logs configuration status on startup */ export function logConfigurationStatus(): void { const result = validateConfiguration(); logger.info('Configuration validation complete', { valid: result.valid, configuredPlatforms: result.platforms.filter(p => p.configured).map(p => p.platform) }); for (const warning of result.warnings) { logger.warn(warning); } if (!result.valid) { logger.warn('No platforms are fully configured. Some features may not work.'); } } /** * Gets configuration status for a specific platform */ export function getPlatformConfig(platform: string): ConfigStatus | undefined { const result = validateConfiguration(); return result.platforms.find(p => p.platform === platform); } /** * Checks if a platform is properly configured */ export function isPlatformConfigured(platform: string): boolean { const config = getPlatformConfig(platform); return config?.configured ?? false; }

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/MUSE-CODE-SPACE/vibe-coding-mcp'

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