Skip to main content
Glama
providers.ts2.54 kB
/** * Provider configurations for all supported LLM APIs * Most providers are OpenAI-compatible, Anthropic and Google have different formats */ export interface ProviderConfig { name: string; baseUrl: string; envKey: string; isOpenAICompatible: boolean; defaultModel: string; } export const PROVIDERS: Record<string, ProviderConfig> = { openai: { name: "OpenAI", baseUrl: "https://api.openai.com/v1", envKey: "OPENAI_API_KEY", isOpenAICompatible: true, defaultModel: "gpt-5.1", }, openrouter: { name: "OpenRouter", baseUrl: "https://openrouter.ai/api/v1", envKey: "OPENROUTER_API_KEY", isOpenAICompatible: true, defaultModel: "moonshotai/kimi-k2-thinking", }, groq: { name: "Groq", baseUrl: "https://api.groq.com/openai/v1", envKey: "GROQ_API_KEY", isOpenAICompatible: true, defaultModel: "moonshotai/kimi-k2-instruct-0905", }, cerebras: { name: "Cerebras", baseUrl: "https://api.cerebras.ai/v1", envKey: "CEREBRAS_API_KEY", isOpenAICompatible: true, defaultModel: "zai-glm-4.6", }, xai: { name: "xAI", baseUrl: "https://api.x.ai/v1", envKey: "XAI_API_KEY", isOpenAICompatible: true, defaultModel: "grok-4-fast", }, anthropic: { name: "Anthropic", baseUrl: "https://api.anthropic.com/v1", envKey: "ANTHROPIC_API_KEY", isOpenAICompatible: false, defaultModel: "claude-opus-4-5", }, google: { name: "Google", baseUrl: "https://generativelanguage.googleapis.com/v1beta", envKey: "GOOGLE_API_KEY", isOpenAICompatible: false, defaultModel: "gemini-3-pro-preview", }, }; /** * Parse an agent spec string like "openrouter:openai/gpt-4o" or just "groq" */ export function parseAgentSpec(spec: string): { provider: string; model: string } { const parts = spec.split(":"); const provider = parts[0].toLowerCase(); if (!PROVIDERS[provider]) { throw new Error(`Unknown provider: ${provider}. Available: ${Object.keys(PROVIDERS).join(", ")}`); } const model = parts[1] || PROVIDERS[provider].defaultModel; return { provider, model }; } /** * Get API key for a provider from environment */ export function getApiKey(provider: string): string { const config = PROVIDERS[provider]; if (!config) { throw new Error(`Unknown provider: ${provider}`); } const key = process.env[config.envKey]; if (!key) { throw new Error(`Missing API key for ${config.name}. Set ${config.envKey} environment variable.`); } return key; }

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/Infatoshi/thinkingcap'

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