Skip to main content
Glama

FrugalFinder

최고의 가성비 딜 찾기 서비스. 원하는 것 + 이유 + 예산을 제출하면, FrugalBot 에이전트가 주기적으로 스캔하여 최고의 가치 기회를 반환합니다 — 가장 싼 것도, 가장 화려한 것도 아닌.

아키텍처 (MVP)

[Web UI / Telegram bot / MCP client agents] 
        ↓ POST
   Vercel serverless API  ──→  Vercel KV store (wishlists + scans)
        ↓                        ↑
   FrugalBot analyzer            │ scheduled re-scan
   (OpenRouter LLM)      ────────┘  (Vercel Cron, hourly tick)

Related MCP server: ecommerce-mcp-server

엔드포인트

라우트

메서드

용도

/

GET

웹 UI: 위시리스트 제출, 분석 결과 보기

/api/wishlists

POST

위시리스트 생성 → 첫 FrugalBot 분석 실행

/api/wishlists?id=

GET/PATCH

위시리스트 하나 조회 또는 업데이트

/api/scan?id=

GET/POST

최신 스캔 폴링 / 지금 스캔 트리거

/api/scan-all

POST

Cron 대상 — 만기된 모든 위시리스트 스캔

/api/telegram

POST

Telegram 웹훅 수신

/api/mcp

POST

외부 AI 에이전트용 MCP Streamable HTTP 엔드포인트

/api/reservations

POST

캠프장 예약 감시자 생성 (Recreation.gov)

/api/reservations?id=

GET/PATCH

예약 감시자 목록/조회/수정

/api/reservations/scan?id=

POST

예약 스캔 지금 트리거

/api/compare

POST/GET

3-모델 LLM 비교 스캔 / 성능 요약

/admin.html

GET

관리 대시보드: LLM 품질 대비 비용 모니터

캠프장 예약 감시자

여러 Recreation.gov 캠프장의 원하는 날짜 범위에서 빈자리를 모니터링합니다. site_preference: "lakefront"는 취소로 빈자리가 생길 때 호숫가 사이트의 점수를 더 높게 매깁니다. 점수 산정: 가용성 + 선호도 일치 + 편의시설(그늘, 반려동물 허용, 포장 진입로) − 가격.

curl -X POST https://YOUR-DOMAIN.vercel.app/api/reservations \
  -H 'Content-Type: application/json' \
  -d '{"campground_ids":["233117","232665"],"date_window":"2026-10-09 to 2026-10-12","site_preference":"lakefront","cadence":"daily"}'

알려진 제한 사항: Recreation.gov의 날짜 기반 가용성 엔드포인트는 현재 익명 호출자에게 404를 반환합니다 (API 변경). 스캐너는 공개 사이트 메타데이터 검색을 사용합니다(작동 확인됨: 루프, 속성, 상태, 가격). 날짜 수준 가용성이 다시 공개되면 getCampgroundSites()에 연결하세요 — 이후 모든 처리는 이미 지원합니다. ReserveAmerica(NC 주립공원)는 익명 API 호출을 차단합니다. 필요 시 쿠키/세션을 사용하여 제공자로 추가하세요.

멀티-LLM 비교 ("품질 대비 비용 관리")

POST /api/compare는 동일한 frugal-bot 프롬프트에 세 가지 모델 티어를 경쟁시킵니다:

티어

기본 모델

용도

pareto

openrouter/auto

OpenRouter 자체 최적 모델 라우팅

budget_web

openai/gpt-4.1-nano (+웹 플러그인)

가장 저렴한 웹 지원 모델

mid_web

perplexity/sonar

중간 가격대 웹 지원 모델

심판(anthropic/claude-opus-4.1)이 세 결과를 모두 블라인드(순서 셔플)로 평가하여 1–10점을 매깁니다. 모든 실행은 토큰/비용/점수/승리를 성능 저장소에 기록하며, GET /api/compare가 이를 집계하고 /admin.html이 시각화합니다. 모든 슬러그는 코드 변경 없이 주 단위로 환경 변수로 덮어쓸 수 있습니다: PARETO_MODEL, BUDGET_WEB_MODEL, MID_WEB_MODEL, JUDGE_MODEL.

검증된 실전 실행: mid_web (Sonar) 9점 vs pareto (라우팅된 DeepSeek v4 flash) 8점 vs budget (GPT-4.1-nano) 4–7점, 총 비용 ≈ $0.05/비교.

환경 변수 (Vercel 대시보드 → Settings → Environment Variables에서 설정)

  • OPENROUTER_API_KEY (필수) — LLM 제공자

  • FRUGAL_MODEL (선택, 기본 stealth/ox-alpha) — 모든 OpenRouter 모델 슬러그

  • KV_REST_API_URL, KV_REST_API_TOKEN (프로덕션 지속성에 필수) — Vercel → Storage에서 연결된 Vercel KV (Upstash) 데이터베이스

  • WISHLIST_TOKEN (선택) — /api/wishlists 공유 비밀

  • CRON_SECRET (선택이지만 권장) — /api/scan-all 보호

  • TELEGRAM_BOT_TOKEN, TELEGRAM_WEBHOOK_SECRET (선택) — Telegram 수신

  • MCP_TOKEN (선택) — /api/mcp 공유 비밀

  • PARETO_MODEL, BUDGET_WEB_MODEL, MID_WEB_MODEL, JUDGE_MODEL (선택) — LLM 비교 티어 오버라이드

공유 경로

위시리스트에 추가 (북마클릿)

Add to Wishlist라는 이름의 브라우저 북마크를 다음 URL로 생성하세요:

javascript:(function(){var u=location.href;var t=document.title;prompt('Send to FrugalFinder? Add budget/use hints:',t+'\n'+u)&&fetch('https://frugalfinder.vercel.app/api/wishlists',{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({item:t,source_url:u,budget:'see notes',use_case:'shared from '+u,cadence:'daily'})}).then(r=>r.json()).then(d=>alert('Added! id='+d.id))})()

어떤 제품 페이지에서든 클릭하면 해당 리스팅이 위시리스트 항목으로 제출됩니다.

이메일 (MVP 참고)

아직 연결되지 않음 — MVP는 웹 UI + Telegram + 북마클릿을 사용합니다. 이메일 수신은 인바운드 이메일 웹훅(예: Resend/Postmark → /api/wishlists)을 통해 자연스러운 v2 추가 기능입니다.

요금제 (권장)

티어

주기

가격 근거

무료

매일

~30 LLM 호출/월/항목, 무료 stealth 모델의 한계 비용 $0 ≈ 무시 가능한 인프라

Power

매시간

$0.01/스캔 × ~720 스캔/월 = $7.20/월/항목 — 월 $5 고정으로 책정, 여러 위시리스트를 한 시간별 cron 틱으로 배치하여 마진 확보

Pro (향후)

매시간 + 우선순위 큐 + 이메일 다이제스트

$12/월

단위 경제성은 분석기가 모든 만기 위시리스트를 단일 cron 패스(/api/scan-all)로 배치하여 콜드 스타트 오버헤드를 분산시키기 때문에 성립합니다.

인증 로드맵 (포스트-MVP)

  1. MVP 지금: 인증 없음, 단일 사용자, 선택적 공유 비밀로 보호.

  2. v1.1: 매직 링크 이메일 로그인 (Auth.js 또는 Clerk 무료 티어) → 사용자 ID로 키잉된 사용자별 위시리스트.

  3. v2: Power/Pro 티어용 Stripe 결제, 사용량 측정 = 청구 기간당 스캔 수.

로컬 개발

npm install
vercel dev   # needs `vercel link` once
npm test    # node:test unit tests

MCP 사용법 (ChatGPT/Claude/Codex 같은 외부 에이전트용)

MCP 지원 클라이언트를 다음에 연결하세요:

https://YOUR-DOMAIN.vercel.app/api/mcp

헤더: 설정된 경우 x-mcp-token: <MCP_TOKEN>.

노출된 도구:

  • submit_wishlist(item, use_case, budget, flexibility?, cadence?, source_url?) → 저장 + 즉시 분석

  • get_wishlist(id) → 최신 분석 및 스캔 기록 포함 전체 레코드

  • list_wishlists() → 모든 활성 위시리스트 요약

  • trigger_scan(id) → 대역 외 frugal-bot 스캔 강제 실행

  • submit_reservation_watch(campground_ids, date_window?, site_preference?, min_features?, max_price?, cadence?, notes?) → 캠프장 감시자 + 첫 스캔 (호숫가 선호 지원)

  • list_reservations() → 마지막 결과 포함 모든 예약 감시자

  • trigger_reservation_scan(id) → 예약 지금 재스캔

  • run_model_comparison(item, use_case, budget, flexibility?) → 3-티어 LLM 경쟁 + 심판 판정

  • get_model_performance() → 티어별 집계 품질/비용 통계

호출 에이전트는 제출 + 폴링으로 취급해야 합니다: 한 번 제출한 후 자신에게 맞는 주기로 get_wishlist를 호출하세요(또는 자체 스케줄러 대기). MCP 사양에는 임의 업데이트를 위한 푸시 채널이 없으므로 주기적 폴링이 표준 패턴입니다.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to save product URLs to a user's Wishfinity wishlist. When recommending products, the AI can generate a clickable link that saves items for later purchase or gifting.
    63 npm
    1
    MIT
  • F
    license
    A
    quality
    D
    maintenance
    Enables AI assistants to manage shopping lists and items (create, edit, delete, mark as purchased) via integration with a backend API.
    8
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    Implements the iwant.fyi demand-side protocol, enabling AI agents to express structured purchase intent, receive matched supply from multiple sources, and report outcomes.
    Apache 2.0