Skip to main content
Glama

FrugalFinder

Schnäppchenjagd als Dienstleistung mit bestem Preis-Leistungs-Verhältnis. Reiche ein, was du willst + warum + Budget; ein FrugalBot-Agent scannt regelmäßig und liefert die beste Wert-Gelegenheit – nicht die billigste, nicht die ausgefallenste.

Architektur (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

Endpunkte

Route

Methode

Zweck

/

GET

Web-UI: Wunschliste einreichen, Analyse ansehen

/api/wishlists

POST

Wunschliste erstellen → startet die erste FrugalBot-Analyse

/api/wishlists?id=

GET/PATCH

Eine Wunschliste abrufen oder aktualisieren

/api/scan?id=

GET/POST

Neuesten Scan abrufen / Scan jetzt auslösen

/api/scan-all

POST

Cron-Ziel – scannt alle fälligen Wunschlisten

/api/telegram

POST

Telegram-Webhook-Eingang

/api/mcp

POST

MCP-Streamable-HTTP-Endpunkt für externe KI-Agenten

/api/reservations

POST

Campingplatz-Reservierungs-Watcher erstellen (Recreation.gov)

/api/reservations?id=

GET/PATCH

Reservierungs-Watcher auflisten/abrufen/aktualisieren

/api/reservations/scan?id=

POST

Reservierungs-Scan jetzt auslösen

/api/compare

POST/GET

3-Modell-LLM-Vergleichsscan / Leistungsübersicht

/admin.html

GET

Admin-Dashboard: LLM-Qualitäts-vs-Kosten-Monitor

Campingplatz-Reservierungs-Watcher

Überwache mehrere Recreation.gov-Campingplätze auf freie Plätze in deinem Zeitfenster. site_preference: "lakefront" bewertet Seeufer-Plätze höher, wenn sie durch Stornierungen frei werden. Bewertung: Verfügbarkeit + Präferenzübereinstimmung + Ausstattung (Schatten, Haustiere, befestigte Zufahrt) − Preis.

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"}'

Bekannte Einschränkung: Der datumsbasierte Verfügbarkeits-Endpunkt von Recreation.gov liefert derzeit 404 für anonyme Aufrufer (API geändert). Der Scanner nutzt deren öffentliche Standort-Metadatensuche (verifiziert funktionierend: Schleifen, Attribute, Status, Preis). Wenn datumsgenaue Verfügbarkeit wieder verfügbar ist, binde sie in getCampgroundSites() ein – alles nachgelagerte verarbeitet sie bereits. ReserveAmerica (NC-Staatsparks) blockiert anonyme API-Aufrufe; falls später nötig, als Anbieter mit Cookies/Session hinzufügen.

Multi-LLM-Vergleich („Qualitäts- vs. Kostenkontrolle“)

POST /api/compare lässt drei Modellstufen mit demselben Frugal-Bot-Prompt gegeneinander antreten:

Stufe

Standardmodell

Zweck

pareto

openrouter/auto

OpenRouters eigenes Best-Modell-Routing

budget_web

openai/gpt-4.1-nano (+Web-Plugin)

günstigstes web-fähiges Modell

mid_web

perplexity/sonar

mittleres web-fähiges Modell

Ein Jury-Modell (anthropic/claude-opus-4.1) bewertet dann alle drei blind (Reihenfolge gemischt) mit 1–10. Jeder Lauf protokolliert Tokens/Kosten/Punktzahl/Siege im Leistungsspeicher; GET /api/compare aggregiert sie und /admin.html visualisiert sie. Alle Slugs sind wöchentlich per Umgebungsvariable überschreibbar, ohne Codeänderungen: PARETO_MODEL, BUDGET_WEB_MODEL, MID_WEB_MODEL, JUDGE_MODEL.

Verifizierter Live-Lauf: mid_web (Sonar) erzielte 9 vs. pareto (geroutet DeepSeek v4 flash) 8 vs. budget (GPT-4.1-nano) 4–7, Gesamtkosten ≈ 0,05 $/Vergleich.

Umgebungsvariablen (in Vercel-Dashboard → Settings → Environment Variables festlegen)

  • OPENROUTER_API_KEY (erforderlich) — LLM-Anbieter

  • FRUGAL_MODEL (optional, Standard stealth/ox-alpha) — beliebiger OpenRouter-Modell-Slug

  • KV_REST_API_URL, KV_REST_API_TOKEN (erforderlich für Produktionspersistenz) — aus einer Vercel-KV-Datenbank (Upstash), verbunden in Vercel → Storage

  • WISHLIST_TOKEN (optional) — gemeinsames Geheimnis für /api/wishlists

  • CRON_SECRET (optional, aber empfohlen) — schützt /api/scan-all

  • TELEGRAM_BOT_TOKEN, TELEGRAM_WEBHOOK_SECRET (optional) — Telegram-Eingang

  • MCP_TOKEN (optional) — gemeinsames Geheimnis für /api/mcp

  • PARETO_MODEL, BUDGET_WEB_MODEL, MID_WEB_MODEL, JUDGE_MODEL (optional) — Überschreibungen für die LLM-Vergleichsstufen

Freigabepfade

Zur Wunschliste hinzufügen (Bookmarklet)

Erstelle ein Browser-Lesezeichen mit dem Namen Add to Wishlist und dieser 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))})()

Klicke es auf einer beliebigen Produktseite an, um diesen Artikel als Wunschlisteneintrag zu übermitteln.

E-Mail (MVP-Hinweis)

Noch nicht angebunden – das MVP nutzt Web-UI + Telegram + Bookmarklet. E-Mail-Eingang ist eine natürliche v2-Erweiterung über einen eingehenden E-Mail-Webhook (z. B. Resend/Postmark → /api/wishlists).

Preisstufen (empfohlen)

Stufe

Rhythmus

Preisbegründung

Kostenlos

täglich

~30 LLM-Aufrufe/Monat/Artikel bei 0 $ Grenzkosten für kostenlose Stealth-Modelle ≈ vernachlässigbare Infrastruktur

Power

stündlich

0,01 $/Scan × ~720 Scans/Monat = 7,20 $/Monat pro Artikel – Preis bei 5 $/Monat pauschal, Marge kommt durch Bündeln mehrerer Wunschlisten in einem stündlichen Cron-Tick

Pro (Zukunft)

stündlich + Prioritätswarteschlange + E-Mail-Digests

12 $/Monat

Die Einheitsökonomie funktioniert nur, weil der Analyzer alle fälligen Wunschlisten in einem einzigen Cron-Durchlauf (/api/scan-all) bündelt und so den Cold-Start-Overhead amortisiert.

Auth-Roadmap (nach MVP)

  1. MVP jetzt: keine Authentifizierung, Einzelbenutzer, geschützt durch optionale gemeinsame Geheimnisse.

  2. v1.1: Magic-Link-E-Mail-Login (Auth.js oder Clerk kostenloser Tarif) → benutzerspezifische Wunschlisten, keyed nach Benutzer-ID.

  3. v2: Stripe-Checkout für Power/Pro-Tarife; Verbrauchsmessung = Anzahl der Scans pro Abrechnungszeitraum.

Lokale Entwicklung

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

MCP-Nutzung (für externe Agenten wie ChatGPT/Claude/Codex)

Verbinde einen MCP-fähigen Client mit:

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

Header: x-mcp-token: <MCP_TOKEN>, falls gesetzt.

Verfügbare Werkzeuge:

  • submit_wishlist(item, use_case, budget, flexibility?, cadence?, source_url?) → speichert + sofortige Analyse

  • get_wishlist(id) → vollständigen Datensatz inkl. neuester Analyse & Scan-Verlauf abrufen

  • list_wishlists() → Zusammenfassung aller aktiven Wunschlisten

  • trigger_scan(id) → einen außerplanmäßigen Frugal-Bot-Scan erzwingen

  • submit_reservation_watch(campground_ids, date_window?, site_preference?, min_features?, max_price?, cadence?, notes?) → Campingplatz-Watcher + erster Scan (Seeufer-Präferenz unterstützt)

  • list_reservations() → alle Reservierungs-Watcher mit letzten Ergebnissen

  • trigger_reservation_scan(id) → Reservierung jetzt neu scannen

  • run_model_comparison(item, use_case, budget, flexibility?) → 3-stufiges LLM-Rennen + Jury-Urteil

  • get_model_performance() → aggregierte Qualitäts-/Kostenstatistiken pro Stufe

Aufrufende Agenten sollten es als einreichen + abfragen behandeln: einmal einreichen, dann get_wishlist in ihrem eigenen Rhythmus aufrufen (oder auf ihren eigenen Scheduler warten). Die MCP-Spezifikation hat keinen Push-Kanal für beliebige Updates, daher ist periodisches Abfragen das Standardmuster.

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