UNPKG

tryaii-mcp-server

Version:

MCP Server for TryAII - Lightweight proxy to TryAII API service

459 lines (458 loc) 17.1 kB
// ============================================================================================ // MODEL REGISTRY - Extracted from core-logic.ts // ============================================================================================ export const AVAILABLE_MODELS = [ // Default model - ensuring this is always available { id: "gpt-4o", modelId: "gpt-4o", name: "GPT-4o (omni)", provider: "OpenAI", webSearch: true, reasoning: false, maxContextTokens: 128000, inputCostPer1kTokens: 0.0025, outputCostPer1kTokens: 0.01, latencySpeed: "medium", description: "GPT-4o is OpenAI's most advanced model with strong capabilities across multiple domains.", capabilities: ['text', 'code', 'reasoning', 'analysis'] }, // Other OpenAI models { id: "gpt-4o-mini", modelId: "gpt-4o-mini", name: "GPT-4o-mini", provider: "OpenAI", webSearch: true, reasoning: false, maxContextTokens: 128000, inputCostPer1kTokens: 0.00015, outputCostPer1kTokens: 0.0006, latencySpeed: "very-fast", description: "GPT-4o-mini is OpenAI's smallest and fastest model for quick tasks.", capabilities: ['text', 'code', 'reasoning'] }, // { // id: "o3", // modelId: "o3", // name: "o3", // provider: "OpenAI" as Provider, // webSearch: false, // reasoning: true, // maxContextTokens: 200000, // inputCostPer1kTokens: 0.002, // outputCostPer1kTokens: 0.008, // latencySpeed: "very-slow", // description: "OpenAI's most advanced model for complex tasks.", // capabilities: ['text', 'code', 'reasoning'] // }, // { // id: "o3-mini", // modelId: "o3-mini", // name: "o3-mini", // provider: "OpenAI" as Provider, // webSearch: false, // reasoning: true, // maxContextTokens: 128000, // inputCostPer1kTokens: 0.0011, // outputCostPer1kTokens: 0.0044, // latencySpeed: "fast", // description: "Lightweight OpenAI model with good performance at a lower cost.", // capabilities: ['text', 'code', 'reasoning'] // }, // { // id: "o4-mini", // modelId: "o4-mini", // name: "o4-mini", // provider: "OpenAI" as Provider, // webSearch: false, // reasoning: true, // maxContextTokens: 200000, // inputCostPer1kTokens: 0.0011, // outputCostPer1kTokens: 0.0044, // latencySpeed: "medium", // description: "OpenAI's smallest and fastest model for quick tasks.", // capabilities: ['text', 'code', 'reasoning'] // }, // { // id: "o1", // modelId: "o1", // name: "o1", // provider: "OpenAI" as Provider, // webSearch: false, // reasoning: true, // maxContextTokens: 200000, // inputCostPer1kTokens: 0.015, // outputCostPer1kTokens: 0.06, // latencySpeed: "very-slow", // description: "OpenAI's most advanced model for complex tasks.", // capabilities: ['text', 'code', 'reasoning'] // }, // { // id: "gpt-4.1-nano", // modelId: "gpt-4.1-nano", // name: "GPT-4.1-nano", // provider: "OpenAI" as Provider, // webSearch: false, // reasoning: false, // maxContextTokens: 1048576, // inputCostPer1kTokens: 0.0001, // outputCostPer1kTokens: 0.0004, // latencySpeed: "fast", // description: "OpenAI's most advanced model for complex tasks.", // capabilities: ['text', 'code', 'reasoning'] // }, // { // id: "gpt-4.1", // modelId: "gpt-4.1", // name: "GPT-4.1", // provider: "OpenAI" as Provider, // webSearch: true, // reasoning: false, // maxContextTokens: 1048576, // inputCostPer1kTokens: 0.002, // outputCostPer1kTokens: 0.008, // latencySpeed: "medium", // description: "OpenAI's most advanced model for complex tasks.", // capabilities: ['text', 'code', 'reasoning'] // }, // { // id: "gpt-4.5-preview", // modelId: "gpt-4.5-preview", // name: "GPT-4.5-preview", // provider: "OpenAI" as Provider, // webSearch: false, // reasoning: false, // maxContextTokens: 1048576, // inputCostPer1kTokens: 0.075, // outputCostPer1kTokens: 0.15, // latencySpeed: "fast", // description: "OpenAI's latest model for complex tasks.", // capabilities: ['text', 'code', 'reasoning'] // }, // // Anthropic Models (no built-in web search) // { // id: "claude-3-haiku-20240307", // modelId: "claude-3-haiku-20240307", // name: "Claude 3 Haiku (Mar 2024)", // provider: "Anthropic" as Provider, // webSearch: false, // reasoning: false, // maxContextTokens: 200000, // inputCostPer1kTokens: 0.00025, // outputCostPer1kTokens: 0.00125, // latencySpeed: "very-fast", // description: "Claude 3 Haiku with 200K token context window. Fast and efficient for simple tasks.", // capabilities: ['text', 'code', 'vision', 'multilingual', 'fast-responses'] // }, // { // id: "claude-3-7-sonnet-20250219", // modelId: "claude-3-7-sonnet-20250219", // name: "Claude 3.7 Sonnet (Feb 2025)", // provider: "Anthropic" as Provider, // webSearch: false, // reasoning: true, // maxContextTokens: 200000, // inputCostPer1kTokens: 0.003, // outputCostPer1kTokens: 0.015, // latencySpeed: "medium", // description: "Our most intelligent Claude model with extended thinking capabilities and 200K token context window.", // capabilities: ['text', 'code', 'reasoning', 'vision', 'multilingual', 'extended-thinking'] // }, // { // id: "claude-3-5-haiku-20241022", // modelId: "claude-3-5-haiku-20241022", // name: "Claude 3.5 Haiku (Oct 2024)", // provider: "Anthropic" as Provider, // webSearch: false, // reasoning: false, // maxContextTokens: 200000, // inputCostPer1kTokens: 0.0008, // outputCostPer1kTokens: 0.004, // latencySpeed: "very-fast", // description: "Our fastest model with great intelligence for routine tasks and quick responses.", // capabilities: ['text', 'code', 'vision', 'multilingual', 'fast-responses'] // }, // { // id: "claude-3-5-sonnet-20241022", // modelId: "claude-3-5-sonnet-20241022", // name: "Claude 3.5 Sonnet v2 (Oct 2024)", // provider: "Anthropic" as Provider, // webSearch: false, // reasoning: true, // maxContextTokens: 200000, // inputCostPer1kTokens: 0.003, // outputCostPer1kTokens: 0.015, // latencySpeed: "medium", // description: "Upgraded Claude 3.5 Sonnet with 200K token context window and improved capabilities.", // capabilities: ['text', 'code', 'reasoning', 'vision', 'multilingual'] // }, // { // id: "claude-3-opus-20240229", // modelId: "claude-3-opus-20240229", // name: "Claude 3 Opus (Feb 2024)", // provider: "Anthropic" as Provider, // webSearch: false, // reasoning: true, // maxContextTokens: 200000, // inputCostPer1kTokens: 0.015, // outputCostPer1kTokens: 0.075, // latencySpeed: "very-slow", // description: "Claude 3 Opus with 200K token context window. Anthropic's most powerful model for complex tasks.", // capabilities: ['text', 'code', 'reasoning', 'vision', 'multilingual', 'long-content'] // }, // { // id: "claude-opus-4-20250514", // modelId: "claude-opus-4-20250514", // name: "Claude Opus 4 (May 2025)", // provider: "Anthropic" as Provider, // webSearch: false, // reasoning: true, // maxContextTokens: 200000, // inputCostPer1kTokens: 0.015, // outputCostPer1kTokens: 0.075, // latencySpeed: "slow", // description: "Claude's latest model for advanced reasoning and complex tasks.", // capabilities: ['text', 'code', 'reasoning', 'multilingual'] // }, // { // id: "claude-sonnet-4-20250514", // modelId: "claude-sonnet-4-20250514", // name: "Claude Sonnet 4 (May 2025)", // provider: "Anthropic" as Provider, // webSearch: false, // reasoning: true, // maxContextTokens: 200000, // inputCostPer1kTokens: 0.003, // outputCostPer1kTokens: 0.015, // latencySpeed: "medium", // description: "Claude's latest model for advanced reasoning and complex tasks.", // capabilities: ['text', 'code', 'reasoning', 'multilingual'] // }, // // DeepSeek Models // { // id: "deepseek-reasoner", // modelId: "deepseek-reasoner", // name: "deepseek-reasoner", // provider: "DeepSeek" as Provider, // webSearch: false, // reasoning: true, // maxContextTokens: 64000, // inputCostPer1kTokens: 0.00055, // outputCostPer1kTokens: 0.00219, // latencySpeed: "slow", // description: "DeepSeek's advanced AI model with focus on code and technical content.", // capabilities: ['text', 'code', 'reasoning', 'technical'] // }, // { // id: "deepseek-chat", // modelId: "deepseek-chat", // name: "deepseek-chat", // provider: "DeepSeek" as Provider, // webSearch: false, // reasoning: false, // maxContextTokens: 64000, // inputCostPer1kTokens: 0.00027, // outputCostPer1kTokens: 0.0011, // latencySpeed: "fast", // description: "DeepSeek's advanced AI model with focus on code and technical content.", // capabilities: ['text', 'code', 'technical'] // }, // // Google Models // { // id: "gemini-1.5-pro", // modelId: "gemini-1.5-pro", // name: "Gemini 1.5 Pro", // provider: "Gemini" as Provider, // webSearch: false, // reasoning: false, // maxContextTokens: 1048576, // inputCostPer1kTokens: 0.0025, // outputCostPer1kTokens: 0.01, // latencySpeed: "medium", // description: "Google's most capable multimodal model for highly complex tasks.", // capabilities: ['text', 'code', 'reasoning', 'vision', 'multilingual', 'long-content'] // }, // { // id: "gemini-1.5-flash", // modelId: "gemini-1.5-flash", // name: "Gemini 1.5 Flash", // provider: "Gemini" as Provider, // webSearch: false, // reasoning: false, // maxContextTokens: 1048576, // inputCostPer1kTokens: 0.00015, // outputCostPer1kTokens: 0.0006, // latencySpeed: "fast", // description: "Quick and efficient multimodal model for routine tasks.", // capabilities: ['text', 'code', 'vision', 'multilingual', 'fast-responses'] // }, // { // id: "gemini-2.0-flash-lite", // modelId: "gemini-2.0-flash-lite", // name: "Gemini 2.0 Flash Lite", // provider: "Gemini" as Provider, // webSearch: false, // reasoning: false, // maxContextTokens: 1048576, // inputCostPer1kTokens: 0.000075, // outputCostPer1kTokens: 0.0003, // latencySpeed: "very-fast", // description: "Google's latest multimodal model with improved capabilities.", // capabilities: ['text', 'image', 'video', 'audio', 'multilingual', 'fast-responses'] // }, // { // id: "gemini-2.0-flash", // modelId: "gemini-2.0-flash", // name: "Gemini 2.0 Flash", // provider: "Gemini" as Provider, // webSearch: true, // reasoning: false, // maxContextTokens: 1048576, // inputCostPer1kTokens: 0.0001, // outputCostPer1kTokens: 0.0004, // latencySpeed: "fast", // description: "Google's latest multimodal model with improved capabilities.", // capabilities: ['text', 'code', 'vision', 'multilingual', 'fast-responses'] // }, // { // id: "gemini-2.5-flash-preview-05-20", // modelId: "gemini-2.5-flash-preview-05-20", // name: "Gemini 2.5 Flash (Apr 2025)", // provider: "Gemini" as Provider, // webSearch: true, // reasoning: true, // maxContextTokens: 1048576, // inputCostPer1kTokens: 0.0001, // outputCostPer1kTokens: 0.0004, // latencySpeed: "fast", // description: "Google's latest multimodal model with improved capabilities.", // capabilities: ['text', 'code', 'vision', 'multilingual', 'fast-responses'] // }, // { // id: "gemini-2.5-pro-preview-05-06", // modelId: "gemini-2.5-pro-preview-05-06", // name: "Gemini 2.5 Pro (May 2025)", // provider: "Gemini" as Provider, // webSearch: true, // reasoning: true, // maxContextTokens: 1048576, // inputCostPer1kTokens: 0.0025, // outputCostPer1kTokens: 0.01, // latencySpeed: "slow", // description: "Google's latest multimodal model with improved capabilities.", // capabilities: ['text', 'code', 'vision', 'multilingual', 'fast-responses'] // }, // // Mistral Models // { // id: "mistral-large-latest", // modelId: "mistral-large-latest", // name: "Mistral Large (Latest)", // provider: "Mistral" as Provider, // webSearch: false, // reasoning: true, // maxContextTokens: 131000, // inputCostPer1kTokens: 0.002, // outputCostPer1kTokens: 0.006, // latencySpeed: "medium", // description: "Mistral's most powerful model for advanced reasoning and complex tasks.", // capabilities: ['text', 'code', 'reasoning', 'multilingual'] // }, // { // id: "mistral-small-latest", // modelId: "mistral-small-latest", // name: "Mistral Small (Latest)", // provider: "Mistral" as Provider, // webSearch: false, // reasoning: false, // maxContextTokens: 131000, // inputCostPer1kTokens: 0.0001, // outputCostPer1kTokens: 0.0001, // latencySpeed: "very-fast", // description: "Mistral's smallest model for quick tasks.", // capabilities: ['text', 'code', 'multilingual'] // }, // // XAI Models // { // id: "grok-3-latest", // modelId: "grok-3-latest", // name: "Grok 3 (Latest)", // provider: "XAI" as Provider, // webSearch: false, // reasoning: true, // maxContextTokens: 131000, // inputCostPer1kTokens: 0.003, // outputCostPer1kTokens: 0.015, // latencySpeed: "medium", // description: "XAI's latest model for advanced reasoning and complex tasks.", // capabilities: ['text', 'code', 'reasoning', 'multilingual'] // }, // { // id: "grok-3-fast-latest", // modelId: "grok-3-fast-latest", // name: "Grok 3 Fast (Latest)", // provider: "XAI" as Provider, // webSearch: false, // reasoning: true, // maxContextTokens: 131000, // inputCostPer1kTokens: 0.005, // outputCostPer1kTokens: 0.025, // latencySpeed: "fast", // description: "XAI's fastest model for advanced reasoning and complex tasks.", // capabilities: ['text', 'code', 'reasoning', 'multilingual'] // }, // { // id: "grok-3-mini-latest", // modelId: "grok-3-mini-latest", // name: "Grok 3 Mini (Latest)", // provider: "XAI" as Provider, // webSearch: false, // reasoning: true, // maxContextTokens: 131000, // inputCostPer1kTokens: 0.0003, // outputCostPer1kTokens: 0.0005, // latencySpeed: "fast", // description: "XAI's smallest model for quick tasks.", // capabilities: ['text', 'code', 'reasoning', 'multilingual'] // }, { id: "grok-3-mini-fast-latest", modelId: "grok-3-mini-fast-latest", name: "Grok 3 Mini Fast (Latest)", provider: "XAI", webSearch: false, reasoning: true, maxContextTokens: 131000, inputCostPer1kTokens: 0.0006, outputCostPer1kTokens: 0.004, latencySpeed: "fast", description: "XAI's fastest model for quick tasks.", capabilities: ['text', 'code', 'reasoning', 'multilingual'] } ]; // Utility functions for model registry export function getAllModels() { return AVAILABLE_MODELS; } export function getModelById(modelId) { return AVAILABLE_MODELS.find(m => m.id === modelId); } export function getModelsByProvider(provider) { return AVAILABLE_MODELS.filter(m => m.provider.toLowerCase() === provider.toLowerCase()); } export function getReasoningModels() { return AVAILABLE_MODELS.filter(m => m.reasoning); } export function getModelsWithWebSearch() { return AVAILABLE_MODELS.filter(m => m.webSearch); } export function getBrainsModels() { const brainModelIds = [ "o3", "claude-opus-4-20250514", "deepseek-chat", "gemini-2.5-pro-preview-05-06", "grok-3-latest" ]; return AVAILABLE_MODELS.filter(model => brainModelIds.includes(model.id)); }