FrugalFinder
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 |
| POST | Wunschliste erstellen → startet die erste FrugalBot-Analyse |
| GET/PATCH | Eine Wunschliste abrufen oder aktualisieren |
| GET/POST | Neuesten Scan abrufen / Scan jetzt auslösen |
| POST | Cron-Ziel – scannt alle fälligen Wunschlisten |
| POST | Telegram-Webhook-Eingang |
| POST | MCP-Streamable-HTTP-Endpunkt für externe KI-Agenten |
| POST | Campingplatz-Reservierungs-Watcher erstellen (Recreation.gov) |
| GET/PATCH | Reservierungs-Watcher auflisten/abrufen/aktualisieren |
| POST | Reservierungs-Scan jetzt auslösen |
| POST/GET | 3-Modell-LLM-Vergleichsscan / Leistungsübersicht |
| 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 |
|
| OpenRouters eigenes Best-Modell-Routing |
|
| günstigstes web-fähiges Modell |
|
| 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-AnbieterFRUGAL_MODEL(optional, Standardstealth/ox-alpha) — beliebiger OpenRouter-Modell-SlugKV_REST_API_URL,KV_REST_API_TOKEN(erforderlich für Produktionspersistenz) — aus einer Vercel-KV-Datenbank (Upstash), verbunden in Vercel → StorageWISHLIST_TOKEN(optional) — gemeinsames Geheimnis für/api/wishlistsCRON_SECRET(optional, aber empfohlen) — schützt/api/scan-allTELEGRAM_BOT_TOKEN,TELEGRAM_WEBHOOK_SECRET(optional) — Telegram-EingangMCP_TOKEN(optional) — gemeinsames Geheimnis für/api/mcpPARETO_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)
MVP jetzt: keine Authentifizierung, Einzelbenutzer, geschützt durch optionale gemeinsame Geheimnisse.
v1.1: Magic-Link-E-Mail-Login (Auth.js oder Clerk kostenloser Tarif) → benutzerspezifische Wunschlisten, keyed nach Benutzer-ID.
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 testsMCP-Nutzung (für externe Agenten wie ChatGPT/Claude/Codex)
Verbinde einen MCP-fähigen Client mit:
https://YOUR-DOMAIN.vercel.app/api/mcpHeader: x-mcp-token: <MCP_TOKEN>, falls gesetzt.
Verfügbare Werkzeuge:
submit_wishlist(item, use_case, budget, flexibility?, cadence?, source_url?)→ speichert + sofortige Analyseget_wishlist(id)→ vollständigen Datensatz inkl. neuester Analyse & Scan-Verlauf abrufenlist_wishlists()→ Zusammenfassung aller aktiven Wunschlistentrigger_scan(id)→ einen außerplanmäßigen Frugal-Bot-Scan erzwingensubmit_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 Ergebnissentrigger_reservation_scan(id)→ Reservierung jetzt neu scannenrun_model_comparison(item, use_case, budget, flexibility?)→ 3-stufiges LLM-Rennen + Jury-Urteilget_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.
This server cannot be deployed
Maintenance
Related MCP Connectors
AI-powered product search, affiliate links, and price negotiation for e-commerce platforms
Personal-finance workspace for AI agents: accounts, spending, budgets, goals, and investments.
Directory of APIs, merchants, and tools AI agents can actually use.
AI Agent Utility Layer for agent safety, web monitoring, crypto research and tool discovery.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables 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 npm1MIT
- AlicenseAqualityFmaintenanceEnables AI agents to search products, lookup barcodes, and manage shopping carts and wishlists using free e-commerce APIs.8MIT
- FlicenseAqualityDmaintenanceEnables AI assistants to manage shopping lists and items (create, edit, delete, mark as purchased) via integration with a backend API.8-
- AlicenseNot gradedqualityDmaintenanceImplements 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