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: Wishfinity +W MCP Server

エンドポイント

ルート

メソッド

目的

/

GET

Web UI: ウィッシュリストの送信、分析の表示

/api/wishlists

POST

ウィッシュリストを作成 → 最初の FrugalBot 分析を実行

/api/wishlists?id=

GET/PATCH

1つのウィッシュリストを取得または更新

/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 (ノースカロライナ州立公園) は匿名 API 呼び出しをブロックします。必要になったら、クッキー/セッションを使用してプロバイダーとして追加してください。

マルチ LLM 比較 ("品質対コスト管理")

POST /api/compare は、同じ frugal-bot プロンプトで3つのモデルティアを競わせます:

ティア

デフォルトモデル

目的

pareto

openrouter/auto

OpenRouter 自身の最適モデルルーティング

budget_web

openai/gpt-4.1-nano (+web plugin)

最も安価な Web 対応モデル

mid_web

perplexity/sonar

中級の Web 対応モデル

ジャッジ (anthropic/claude-opus-4.1) が、3つすべてをブラインドで (順序をシャッフルして) ランク付けし、1〜10 でスコアリングします。 各実行はトークン/コスト/スコア/勝利数をパフォーマンスストアに記録します。GET /api/compare がそれらを集計し、/admin.html が可視化します。すべてのスラッグはコード変更なしで毎週環境変数で上書き可能です: PARETO_MODELBUDGET_WEB_MODELMID_WEB_MODELJUDGE_MODEL

検証済みの実運用実行: mid_web (Sonar) は 9、pareto (ルーティングされた DeepSeek v4 flash) は 8、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_URLKV_REST_API_TOKEN (本番永続化に必須) — Vercel → Storage で接続された Vercel KV (Upstash) データベースから

  • WISHLIST_TOKEN (オプション) — /api/wishlists 用の共有シークレット

  • CRON_SECRET (オプションだが推奨) — /api/scan-all を保護

  • TELEGRAM_BOT_TOKENTELEGRAM_WEBHOOK_SECRET (オプション) — Telegram 取り込み

  • MCP_TOKEN (オプション) — /api/mcp 用の共有シークレット

  • PARETO_MODELBUDGET_WEB_MODELMID_WEB_MODELJUDGE_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 は Web UI + Telegram + ブックマークレットを使用します。メール取り込みは、インバウンドメールウェブフック (例: Resend/Postmark → /api/wishlists) による自然な v2 追加です。

価格ティア (推奨)

ティア

頻度

価格の根拠

無料

毎日

無料ステルスモデルでの限界コスト $0 で、アイテムあたり月約30回の LLM 呼び出し ≈ インフラはほぼ無視できる

Power

毎時

$0.01/スキャン × 月約720スキャン = アイテムあたり月 $7.20月額 $5 の定額で価格設定、利益は複数のウィッシュリストを1時間ごとの 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 仕様には任意の更新のためのプッシュチャネルがないため、定期的なポーリングが標準的なパターンです。

F
license - not found
Not graded
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

View all related MCP servers

Related MCP Connectors

  • Discover, search, invoke, and rate A2A (Agent-to-Agent) protocol agents.

  • Search and discover advertiser products through an open marketplace for AI agents.

  • Track, analyze, and act on your streaming and SaaS subscriptions from any AI agent.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/finallyaiagency/frugalfinder'

If you have feedback or need assistance with the MCP directory API, please join our Discord server