Skip to main content
Glama
index.ts1.3 kB
/** * Provider factory and registry. * Add new providers here to make them available to the MCP server. */ import { GeminiProvider } from "./gemini.js"; import { ImageProvider, ProviderConfig } from "./types.js"; export * from "./types.js"; export { GeminiProvider } from "./gemini.js"; export type ProviderName = "gemini"; const providerFactories: Record<ProviderName, (config?: ProviderConfig) => ImageProvider> = { gemini: (config) => new GeminiProvider(config), }; /** * Create a provider instance by name. */ export function createProvider(name: ProviderName, config?: ProviderConfig): ImageProvider { const factory = providerFactories[name]; if (!factory) { throw new Error(`Unknown provider: ${name}. Available: ${getAvailableProviders().join(", ")}`); } return factory(config); } /** * Get list of available provider names. */ export function getAvailableProviders(): ProviderName[] { return Object.keys(providerFactories) as ProviderName[]; } /** * Check which providers are configured and ready to use. */ export function getConfiguredProviders(): ProviderName[] { return getAvailableProviders().filter((name) => { try { const provider = createProvider(name); return provider.isConfigured(); } catch { return 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/12-days-of-shipmas-2025/day-1-image-generation-mcp'

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