FrugalFinder
FrugalFinder
Búsqueda de ofertas con mejor valor como servicio. Envía qué quieres + por qué + presupuesto; un agente FrugalBot escanea periódicamente y devuelve la mejor oportunidad en términos de valor — no la más barata, no la más lujosa.
Arquitectura (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
Endpoints
Ruta | Método | Propósito |
| GET | Interfaz web: enviar lista de deseos, ver análisis |
| POST | Crear lista de deseos → ejecuta el primer análisis de FrugalBot |
| GET/PATCH | Obtener o actualizar una lista de deseos |
| GET/POST | Consultar el último escaneo / activar escaneo ahora |
| POST | Destino de cron — escanea todas las listas de deseos pendientes |
| POST | Ingesta de webhook de Telegram |
| POST | Endpoint HTTP Streamable de MCP para agentes de IA externos |
| POST | Crear vigilante de reservas de campamento (Recreation.gov) |
| GET/PATCH | Listar/obtener/actualizar vigilantes de reservas |
| POST | Activar escaneo de reservas ahora |
| POST/GET | Escaneo de comparación con 3 modelos de LLM / resumen de rendimiento |
| GET | Panel de administración: monitor de calidad vs. costo de LLM |
Vigilante de reservas de campamento
Vigila múltiples campamentos de Recreation.gov para ver disponibilidad en tu ventana de fechas.
site_preference: "lakefront" puntúa más alto los sitios frente al lago cuando se liberan por cancelación.
Puntuación: disponibilidad + coincidencia de preferencia + características (sombra, mascotas, entrada pavimentada) − precio.
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"}'Limitación conocida: el endpoint de disponibilidad por fechas de Recreation.gov actualmente devuelve 404 a llamadas anónimas (la API cambió). El escáner usa su búsqueda pública de metadatos del sitio (verificada funcionando: bucles, atributos, estado, precio). Cuando la disponibilidad a nivel de fecha se vuelva a exponer, conéctala en getCampgroundSites() — todo lo posterior ya lo maneja. ReserveAmerica (parques estatales de NC) bloquea llamadas anónimas a la API; agrégalo como proveedor con cookies/sesión si se necesita más adelante.
Comparación multi-LLM ("control de calidad vs. costo")
POST /api/compare hace competir tres niveles de modelos en el mismo prompt de frugal-bot:
Nivel | Modelo predeterminado | Propósito |
|
| Enrutamiento del mejor modelo propio de OpenRouter |
|
| el más barato con capacidad web |
|
| gama media con capacidad web |
Un juez (anthropic/claude-opus-4.1) luego clasifica los tres a ciegas (orden aleatorio), puntuando 1–10.
Cada ejecución registra tokens/costo/puntuación/ganancias en el almacén de rendimiento; GET /api/compare los agrega y
/admin.html los visualiza. Todos los slugs se pueden sobrescribir por variables de entorno semanalmente sin cambios de código:
PARETO_MODEL, BUDGET_WEB_MODEL, MID_WEB_MODEL, JUDGE_MODEL.
Ejecución en vivo verificada: mid_web (Sonar) puntuó 9 vs pareto (DeepSeek v4 flash enrutado) 8 vs budget (GPT-4.1-nano) 4–7, costo total ≈ $0.05/comparación.
Variables de entorno (configurar en el panel de Vercel → Settings → Environment Variables)
OPENROUTER_API_KEY(obligatoria) — proveedor de LLMFRUGAL_MODEL(opcional, predeterminadostealth/ox-alpha) — cualquier slug de modelo de OpenRouterKV_REST_API_URL,KV_REST_API_TOKEN(obligatorias para persistencia en producción) — de una base de datos Vercel KV (Upstash) adjunta en Vercel → StorageWISHLIST_TOKEN(opcional) — secreto compartido para/api/wishlistsCRON_SECRET(opcional pero recomendado) — protege/api/scan-allTELEGRAM_BOT_TOKEN,TELEGRAM_WEBHOOK_SECRET(opcionales) — ingesta de TelegramMCP_TOKEN(opcional) — secreto compartido para/api/mcpPARETO_MODEL,BUDGET_WEB_MODEL,MID_WEB_MODEL,JUDGE_MODEL(opcionales) — anulaciones de nivel de comparación de LLM
Rutas para compartir
Añadir a lista de deseos (bookmarklet)
Crea un marcador del navegador llamado Añadir a lista de deseos con esta 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))})()Haz clic en él en cualquier página de producto para enviar ese listado como entrada de lista de deseos.
Correo electrónico (nota del MVP)
Aún no conectado — el MVP usa interfaz web + Telegram + bookmarklet. La ingesta por correo es una adición natural para v2 mediante un webhook de correo entrante (p. ej. Resend/Postmark → /api/wishlists).
Niveles de precios (recomendados)
Nivel | Cadencia | Justificación del precio |
Gratis | diaria | ~30 llamadas de LLM/mes/artículo a $0 costo marginal en modelos stealth gratuitos ≈ infraestructura insignificante |
Power | por hora | $0.01/escaneo × ~720 escaneos/mes = $7.20/mes por artículo — precio en $5/mes fijo, el margen proviene de agrupar múltiples listas de deseos en un solo tick de cron por hora |
Pro (futuro) | por hora + cola prioritaria + resúmenes por correo | $12/mes |
La economía unitaria solo funciona porque el analizador agrupa todas las listas de deseos pendientes en una sola pasada de cron (/api/scan-all), amortizando la sobrecarga de arranque en frío.
Hoja de ruta de autenticación (post-MVP)
MVP ahora: sin autenticación, un solo usuario, protegido por secretos compartidos opcionales.
v1.1: inicio de sesión por correo con enlace mágico (Auth.js o nivel gratuito de Clerk) → listas de deseos por usuario claveadas por ID de usuario.
v2: checkout de Stripe para niveles Power/Pro; medición de uso = conteo de escaneos por período de facturación.
Desarrollo local
npm install
vercel dev # needs `vercel link` once
npm test # node:test unit testsUso de MCP (para agentes externos como ChatGPT/Claude/Codex)
Conecta un cliente compatible con MCP a:
https://YOUR-DOMAIN.vercel.app/api/mcpEncabezados: x-mcp-token: <MCP_TOKEN> si está configurado.
Herramientas expuestas:
submit_wishlist(item, use_case, budget, flexibility?, cadence?, source_url?)→ guarda + análisis inmediatoget_wishlist(id)→ registro completo incl. último análisis e historial de escaneoslist_wishlists()→ resumen de todas las listas de deseos activastrigger_scan(id)→ forzar un escaneo frugal-bot fuera de bandasubmit_reservation_watch(campground_ids, date_window?, site_preference?, min_features?, max_price?, cadence?, notes?)→ vigilante de campamento + primer escaneo (preferencia frente al lago compatible)list_reservations()→ todos los vigilantes de reservas con últimos resultadostrigger_reservation_scan(id)→ volver a escanear una reserva ahorarun_model_comparison(item, use_case, budget, flexibility?)→ carrera de 3 niveles de LLM + veredicto del juezget_model_performance()→ estadísticas agregadas de calidad/costo por nivel
Los agentes que llaman deben tratarlo como enviar + consultar: envía una vez, luego llama a get_wishlist en la cadencia que les convenga (o esperen a su propio programador). La especificación de MCP no tiene canal push para actualizaciones arbitrarias, por lo que la consulta periódica es el patrón estándar.
This server cannot be installed
Maintenance
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
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to manage personal expenses through natural language conversations. Supports adding, searching, and analyzing transactions with automatic categorization and financial insights.3MIT
- 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.631MIT
- FlicenseBqualityFmaintenanceEnables AI assistants to manage StashDog inventory through natural language commands, supporting item management, collections, tags, smart search, and URL imports with secure authentication.11
- AlicenseAqualityFmaintenanceEnables AI agents to search products, lookup barcodes, and manage shopping carts and wishlists using free e-commerce APIs.8MIT
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.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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