skills/smithery.ai/llm-auto-update

llm-auto-update

SKILL.md

LLM 자동 업데이트 시스템

⚠️ 중요: KreatSaaS 실행 시 Context7 MCP를 통해 모든 LLM 모델, 가격, API를 자동으로 최신 정보로 업데이트합니다.


자동 업데이트 워크플로우

┌─────────────────────────────────────────────────────────────┐
│                  KreatSaaS 실행 시                          │
├─────────────────────────────────────────────────────────────┤
│                                                              │
│  1️⃣ Context7 MCP로 최신 문서 조회                            │
│     ├── OpenAI API 문서                                     │
│     ├── Anthropic API 문서                                  │
│     ├── Google AI 문서                                      │
│     ├── Groq 문서                                          │
│     ├── DeepSeek 문서                                       │
│     └── 기타 LLM 문서                                       │
│                         ↓                                    │
│  2️⃣ 최신 모델 정보 추출                                      │
│     ├── 모델 이름/ID                                        │
│     ├── 가격 (입력/출력)                                    │
│     ├── 컨텍스트 길이                                       │
│     ├── 새로운 기능                                         │
│     └── API 변경사항                                        │
│                         ↓                                    │
│  3️⃣ 사용자에게 최신 정보 제공                                │
│     └── 아키텍처 설계 시 최신 모델 추천                      │
│                                                              │
└─────────────────────────────────────────────────────────────┘

구현 방법

방법 1: Context7 MCP 활용 (권장)

💡 : 프롬프트에 use context7를 추가하면 자동으로 최신 문서를 가져옵니다!

┌─────────────────────────────────────────────────────────────┐
│ 📚 Context7 MCP 도구                                         │
├─────────────────────────────────────────────────────────────┤
│                                                              │
│ 1️⃣ resolve-library-id (라이브러리 ID 조회)                   │
│    ├── query: "사용자 질문/작업 설명"                        │
│    └── libraryName: "검색할 라이브러리명"                    │
│                                                              │
│    예시:                                                     │
│    - libraryName: "openai" → /openai/openai-node            │
│    - libraryName: "anthropic" → /anthropic/anthropic-sdk    │
│    - libraryName: "google genai" → /google/generative-ai    │
│    - libraryName: "supabase" → /supabase/supabase           │
│                                                              │
│ 2️⃣ query-docs (문서 검색)                                    │
│    ├── libraryId: "정확한 Context7 ID" (필수)               │
│    └── query: "찾고 싶은 정보" (필수)                        │
│                                                              │
│    예시:                                                     │
│    - libraryId: "/openai/openai-node"                       │
│    - query: "GPT-4o 모델 가격과 사용법"                      │
│                                                              │
└─────────────────────────────────────────────────────────────┘

KreatSaaS 실행 시 자동으로 수행:

1. resolve-library-id 호출
   - "openai" → /openai/openai-node
   - "anthropic" → /anthropic/anthropic-sdk-typescript
   - "google genai" → /google/generative-ai-js
   - "groq" → /groq/groq-typescript
   - "supabase" → /supabase/supabase-js

2. query-docs 호출
   - 각 라이브러리의 최신 모델, 가격, API 사용법 조회

3. 추출된 정보로 아키텍처 가이드 업데이트

라이브러리 ID 직접 지정 (더 빠름!)

프롬프트에 라이브러리 ID를 직접 명시하면 resolve 단계를 건너뜁니다:

"use library /openai/openai-node for API docs"
"use library /supabase/supabase-js for database setup"
"use library /vercel/next.js for App Router documentation"

버전 명시

버전을 언급하면 해당 버전 문서를 가져옵니다:

"Next.js 14 middleware 설정 방법" → Next.js 14 문서
"React 19 use() hook 사용법" → React 19 문서
"Supabase v2 realtime 구독" → Supabase v2 문서

방법 2: 실시간 웹 검색

// 실행 시 최신 정보 조회
async function getLatestLLMInfo() {
  const queries = [
    "OpenAI GPT models pricing 2025",
    "Anthropic Claude models latest",
    "Google Gemini API pricing 2025",
    "Groq LLM models 2025",
    "DeepSeek API models 2025"
  ];

  // Perplexity API로 실시간 검색
  const results = await Promise.all(
    queries.map(query => searchWithPerplexity(query))
  );

  return parseLatestModels(results);
}

방법 3: 공식 API 엔드포인트 조회

// 각 서비스의 모델 목록 API 호출
async function fetchLatestModels() {
  const models = {
    openai: await fetchOpenAIModels(),
    anthropic: await fetchAnthropicModels(),
    google: await fetchGoogleModels(),
  };
  return models;
}

// OpenAI 모델 목록
async function fetchOpenAIModels() {
  const openai = new OpenAI();
  const response = await openai.models.list();
  return response.data
    .filter(m => m.id.includes('gpt') || m.id.includes('o1'))
    .map(m => ({
      id: m.id,
      created: new Date(m.created * 1000),
    }));
}

// Anthropic 모델 목록
async function fetchAnthropicModels() {
  // Anthropic은 모델 목록 API가 없어서 문서 조회 필요
  const response = await fetch('https://docs.anthropic.com/api/models');
  return parseAnthropicModels(await response.text());
}

// Google 모델 목록
async function fetchGoogleModels() {
  const genai = new GoogleGenerativeAI(process.env.GOOGLE_API_KEY);
  // listModels API 사용
  const models = [];
  for await (const model of genai.listModels()) {
    models.push(model);
  }
  return models;
}

자동 업데이트 스크립트

// scripts/update-llm-info.ts
// KreatSaaS 실행 전 또는 주기적으로 실행

import { writeFileSync } from 'fs';

interface LLMModel {
  provider: string;
  name: string;
  id: string;
  inputPrice: number;  // per 1M tokens
  outputPrice: number;
  contextLength: number;
  features: string[];
  lastUpdated: string;
}

// 최신 정보 저장 파일
const LLM_INFO_FILE = './data/llm-models.json';

async function updateLLMInfo() {
  console.log('🔄 LLM 모델 정보 업데이트 시작...');

  const models: LLMModel[] = [];

  // 1. OpenAI
  console.log('  📡 OpenAI 정보 조회...');
  const openaiModels = await fetchOpenAILatest();
  models.push(...openaiModels);

  // 2. Anthropic
  console.log('  📡 Anthropic 정보 조회...');
  const anthropicModels = await fetchAnthropicLatest();
  models.push(...anthropicModels);

  // 3. Google
  console.log('  📡 Google 정보 조회...');
  const googleModels = await fetchGoogleLatest();
  models.push(...googleModels);

  // 4. 기타 (Groq, DeepSeek, etc.)
  console.log('  📡 기타 LLM 정보 조회...');
  const otherModels = await fetchOtherLatest();
  models.push(...otherModels);

  // 결과 저장
  const result = {
    lastUpdated: new Date().toISOString(),
    models,
  };

  writeFileSync(LLM_INFO_FILE, JSON.stringify(result, null, 2));
  console.log(`${models.length}개 모델 정보 업데이트 완료!`);
  console.log(`   저장 위치: ${LLM_INFO_FILE}`);
}

// OpenAI 최신 정보 (웹 스크래핑 또는 API)
async function fetchOpenAILatest(): Promise<LLMModel[]> {
  // Context7 또는 직접 조회
  return [
    {
      provider: 'OpenAI',
      name: 'GPT-4o',
      id: 'gpt-4o',
      inputPrice: 2.50,
      outputPrice: 10.00,
      contextLength: 128000,
      features: ['vision', 'function-calling', 'json-mode'],
      lastUpdated: new Date().toISOString(),
    },
    {
      provider: 'OpenAI',
      name: 'GPT-4o Mini',
      id: 'gpt-4o-mini',
      inputPrice: 0.15,
      outputPrice: 0.60,
      contextLength: 128000,
      features: ['vision', 'function-calling', 'json-mode'],
      lastUpdated: new Date().toISOString(),
    },
    {
      provider: 'OpenAI',
      name: 'o1',
      id: 'o1',
      inputPrice: 15.00,
      outputPrice: 60.00,
      contextLength: 200000,
      features: ['reasoning', 'vision'],
      lastUpdated: new Date().toISOString(),
    },
    {
      provider: 'OpenAI',
      name: 'o3-mini',
      id: 'o3-mini',
      inputPrice: 1.10,
      outputPrice: 4.40,
      contextLength: 128000,
      features: ['reasoning'],
      lastUpdated: new Date().toISOString(),
    },
  ];
}

// Anthropic 최신 정보
async function fetchAnthropicLatest(): Promise<LLMModel[]> {
  return [
    {
      provider: 'Anthropic',
      name: 'Claude Opus 4.5',
      id: 'claude-opus-4-5-20251101',
      inputPrice: 15.00,
      outputPrice: 75.00,
      contextLength: 200000,
      features: ['vision', 'tool-use', 'computer-use', 'extended-thinking'],
      lastUpdated: new Date().toISOString(),
    },
    {
      provider: 'Anthropic',
      name: 'Claude Sonnet 4',
      id: 'claude-sonnet-4-20250514',
      inputPrice: 3.00,
      outputPrice: 15.00,
      contextLength: 200000,
      features: ['vision', 'tool-use', 'computer-use', 'extended-thinking'],
      lastUpdated: new Date().toISOString(),
    },
    {
      provider: 'Anthropic',
      name: 'Claude Haiku 3.5',
      id: 'claude-haiku-3-5-20241022',
      inputPrice: 0.80,
      outputPrice: 4.00,
      contextLength: 200000,
      features: ['vision', 'tool-use'],
      lastUpdated: new Date().toISOString(),
    },
  ];
}

// Google 최신 정보
async function fetchGoogleLatest(): Promise<LLMModel[]> {
  return [
    {
      provider: 'Google',
      name: 'Gemini 2.5 Pro',
      id: 'gemini-2.5-pro',
      inputPrice: 1.25,
      outputPrice: 5.00,
      contextLength: 1000000,
      features: ['vision', 'audio', 'video', 'code-execution', 'grounding'],
      lastUpdated: new Date().toISOString(),
    },
    {
      provider: 'Google',
      name: 'Gemini 2.5 Flash',
      id: 'gemini-2.5-flash',
      inputPrice: 0.075,
      outputPrice: 0.30,
      contextLength: 1000000,
      features: ['vision', 'audio', 'video', 'thinking'],
      lastUpdated: new Date().toISOString(),
    },
    {
      provider: 'Google',
      name: 'Gemini 2.5 Flash (무료)',
      id: 'gemini-2.5-flash-preview-04-17',
      inputPrice: 0,
      outputPrice: 0,
      contextLength: 1000000,
      features: ['vision', 'audio', 'video', 'free-tier'],
      lastUpdated: new Date().toISOString(),
    },
  ];
}

// 기타 LLM
async function fetchOtherLatest(): Promise<LLMModel[]> {
  return [
    // Groq
    {
      provider: 'Groq',
      name: 'Llama 3.3 70B',
      id: 'llama-3.3-70b-versatile',
      inputPrice: 0.59,
      outputPrice: 0.79,
      contextLength: 128000,
      features: ['fast-inference', 'tool-use'],
      lastUpdated: new Date().toISOString(),
    },
    {
      provider: 'Groq',
      name: 'Llama 3.1 8B (무료)',
      id: 'llama-3.1-8b-instant',
      inputPrice: 0,
      outputPrice: 0,
      contextLength: 128000,
      features: ['fast-inference', 'free-tier'],
      lastUpdated: new Date().toISOString(),
    },
    // DeepSeek
    {
      provider: 'DeepSeek',
      name: 'DeepSeek V3',
      id: 'deepseek-chat',
      inputPrice: 0.14,
      outputPrice: 0.28,
      contextLength: 128000,
      features: ['coding', 'reasoning', 'cheap'],
      lastUpdated: new Date().toISOString(),
    },
    {
      provider: 'DeepSeek',
      name: 'DeepSeek R1',
      id: 'deepseek-reasoner',
      inputPrice: 0.55,
      outputPrice: 2.19,
      contextLength: 128000,
      features: ['reasoning', 'chain-of-thought'],
      lastUpdated: new Date().toISOString(),
    },
    // Mistral
    {
      provider: 'Mistral',
      name: 'Mistral Large',
      id: 'mistral-large-latest',
      inputPrice: 2.00,
      outputPrice: 6.00,
      contextLength: 128000,
      features: ['function-calling', 'multilingual'],
      lastUpdated: new Date().toISOString(),
    },
    // Together AI
    {
      provider: 'Together',
      name: 'Llama 3.3 70B Turbo',
      id: 'meta-llama/Llama-3.3-70B-Instruct-Turbo',
      inputPrice: 0.88,
      outputPrice: 0.88,
      contextLength: 128000,
      features: ['fast', 'open-source'],
      lastUpdated: new Date().toISOString(),
    },
    {
      provider: 'Together',
      name: 'Qwen 2.5 72B',
      id: 'Qwen/Qwen2.5-72B-Instruct-Turbo',
      inputPrice: 1.20,
      outputPrice: 1.20,
      contextLength: 32000,
      features: ['multilingual', 'coding'],
      lastUpdated: new Date().toISOString(),
    },
  ];
}

// 실행
updateLLMInfo().catch(console.error);

사용자 인터페이스

실행 시 최신 정보 표시

┌─────────────────────────────────────────────────────────────┐
│ 🚀 KreatSaaS 시작                                            │
├─────────────────────────────────────────────────────────────┤
│                                                              │
│ 📡 LLM 모델 정보 업데이트 중...                               │
│                                                              │
│ ✅ OpenAI: 4개 모델 (gpt-4o, gpt-4o-mini, o1, o3-mini)       │
│ ✅ Anthropic: 3개 모델 (opus, sonnet, haiku)                 │
│ ✅ Google: 3개 모델 (gemini-2.5-pro, flash, flash-free)     │
│ ✅ Groq: 2개 모델 (llama-3.3, llama-3.1)                    │
│ ✅ DeepSeek: 2개 모델 (v3, r1)                               │
│                                                              │
│ 📊 총 14개 모델 정보 로드 완료!                               │
│ 🕐 마지막 업데이트: 2025-01-04 10:30:00                      │
│                                                              │
│ 💡 새 모델 발견:                                              │
│    - GPT-4o 가격 인하 ($5 → $2.50/1M)                       │
│    - Claude Opus 4.5 출시                                   │
│    - Gemini 2.5 Flash 무료 티어 추가                        │
│                                                              │
└─────────────────────────────────────────────────────────────┘

최신 모델 추천 로직

// 용도별 최신 모델 추천
function recommendModel(useCase: string): LLMModel[] {
  const models = loadLatestModels();

  switch (useCase) {
    case 'cheap':
      // 가장 저렴한 모델
      return models
        .filter(m => m.inputPrice > 0)  // 무료 제외
        .sort((a, b) => a.inputPrice - a.inputPrice)
        .slice(0, 3);

    case 'free':
      // 무료 모델
      return models.filter(m => m.inputPrice === 0);

    case 'best':
      // 최고 성능 모델
      return models.filter(m =>
        m.id.includes('opus') ||
        m.id.includes('gpt-4o') ||
        m.id.includes('gemini-2.5-pro')
      );

    case 'coding':
      // 코딩 특화
      return models.filter(m =>
        m.features.includes('coding') ||
        m.provider === 'Anthropic'
      );

    case 'reasoning':
      // 추론 특화
      return models.filter(m =>
        m.features.includes('reasoning') ||
        m.id.includes('o1') ||
        m.id.includes('o3')
      );

    case 'vision':
      // 이미지 분석
      return models.filter(m => m.features.includes('vision'));

    case 'fast':
      // 빠른 응답
      return models.filter(m =>
        m.provider === 'Groq' ||
        m.id.includes('mini') ||
        m.id.includes('flash')
      );

    default:
      // 기본: 가성비
      return models
        .sort((a, b) => {
          const costA = a.inputPrice + a.outputPrice;
          const costB = b.inputPrice + b.outputPrice;
          return costA - costB;
        })
        .slice(0, 5);
  }
}

MCP 설정 (자동 업데이트용)

방법 A: Local (npx) - 권장

// .mcp.json
{
  "mcpServers": {
    "context7": {
      "command": "npx",
      "args": ["-y", "@upstash/context7-mcp@latest"],
      "description": "최신 라이브러리 문서 자동 조회"
    }
  }
}

방법 B: Remote HTTP (API Key 필요)

// .mcp.json
{
  "mcpServers": {
    "context7": {
      "url": "https://mcp.context7.com/mcp",
      "transport": "http",
      "headers": {
        "CONTEXT7_API_KEY": "${CONTEXT7_API_KEY}"
      },
      "description": "Context7 Remote MCP"
    }
  }
}

Claude Code 설정

# Remote 방식 (권장)
claude mcp add context7 https://mcp.context7.com/mcp --transport http

# Local 방식
claude mcp add context7 -- npx -y @upstash/context7-mcp@latest

Cursor 설정 (Settings > MCP)

// Remote 방식
{
  "mcpServers": {
    "context7": {
      "url": "https://mcp.context7.com/mcp"
    }
  }
}

// Local 방식
{
  "mcpServers": {
    "context7": {
      "command": "npx",
      "args": ["-y", "@upstash/context7-mcp@latest"]
    }
  }
}

자동 규칙 설정 (Cursor Rules)

// Cursor Settings > Rules에 추가하면 자동으로 Context7 호출
Always use Context7 MCP when I need library or API documentation.
When I mention a library name, automatically fetch the latest docs.

KreatSaaS 전체 설정

{
  "mcpServers": {
    "context7": {
      "command": "npx",
      "args": ["-y", "@upstash/context7-mcp@latest"],
      "description": "최신 라이브러리 문서 자동 조회",
      "autoUpdate": {
        "enabled": true,
        "onStart": true
      }
    }
  },
  "autoUpdate": {
    "enabled": true,
    "libraries": [
      "openai",
      "@anthropic-ai/sdk",
      "@google/genai",
      "groq-sdk",
      "together-ai",
      "@mistralai/mistralai",
      "@supabase/supabase-js",
      "next"
    ],
    "updateOnStart": true,
    "updateInterval": "24h"
  }
}

정리

┌─────────────────────────────────────────────────────────────┐
│ 🔄 LLM 자동 업데이트 시스템                                   │
├─────────────────────────────────────────────────────────────┤
│                                                              │
│ 1. 시작 시 자동 업데이트                                     │
│    - Context7 MCP로 최신 문서 조회                          │
│    - 각 API의 모델 목록 조회                                │
│    - 가격, 기능 정보 추출                                   │
│                                                              │
│ 2. 주기적 업데이트 (24시간)                                  │
│    - 백그라운드에서 자동 조회                               │
│    - 변경사항 감지 시 알림                                  │
│                                                              │
│ 3. 용도별 최신 모델 추천                                     │
│    - 저렴한 모델                                            │
│    - 무료 모델                                              │
│    - 최고 성능 모델                                         │
│    - 코딩/추론/비전 특화                                    │
│                                                              │
│ ⚠️ 항상 최신 정보로 SaaS 아키텍처를 설계합니다!              │
│                                                              │
└─────────────────────────────────────────────────────────────┘
Weekly Installs
1
First Seen
8 days ago
Installed on
qwen-code1