Skip to main content
Glama

PRD Creator MCP Server

import { AiProviderConfig } from '../core/ai-providers/provider.js'; import { logger } from './logging.js'; /** * Load provider configurations from environment variables */ import { getStoredProviderConfig } from '../storage/provider-config.js'; /** * Async: Load provider configurations from persistent storage and environment variables. * If a config is set in storage, it takes precedence; otherwise, environment variables are used. */ export async function getProviderConfigs(): Promise<Record<string, AiProviderConfig>> { const stored = await getStoredProviderConfig(); const configs: Record<string, AiProviderConfig> = {}; // Helper to merge stored config with env config function mergeConfig(id: string, envConfig: Partial<AiProviderConfig>): AiProviderConfig { return { id, ...envConfig, ...(stored[id] || {}), }; } configs['openai'] = mergeConfig('openai', { apiKey: process.env.OPENAI_API_KEY, baseUrl: process.env.OPENAI_API_BASE_URL, model: process.env.OPENAI_MODEL || 'gpt-4', }); configs['anthropic'] = mergeConfig('anthropic', { apiKey: process.env.ANTHROPIC_API_KEY, baseUrl: process.env.ANTHROPIC_API_BASE_URL, model: process.env.ANTHROPIC_MODEL || 'claude-3-opus-20240229', }); configs['gemini'] = mergeConfig('gemini', { apiKey: process.env.GEMINI_API_KEY, model: process.env.GEMINI_MODEL || 'gemini-pro', }); configs['local'] = mergeConfig('local', { baseUrl: process.env.LOCAL_MODEL_API_URL, model: process.env.LOCAL_MODEL_NAME || 'llama3', }); configs['template'] = { id: 'template' }; logger.info('Loaded AI provider configurations (merged env + persistent config)'); // Log which providers have config const configuredProviders = Object.entries(configs) .filter(([id, config]) => config.apiKey || (id === 'local' && config.baseUrl) || id === 'template') .map(([id]) => id); logger.info(`Configured providers: ${configuredProviders.join(', ')}`); return configs; } /** * Get the default provider ID from environment variables or use template fallback */ export function getDefaultProviderId(): string { return process.env.DEFAULT_AI_PROVIDER || 'template'; } /** * Get provider configuration for all providers */ /* Deprecated: Old sync getProviderConfigs removed, replaced by async version above. */

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/Saml1211/PRD-MCP-Server'

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