Skip to main content
Glama
page.tsx3.41 kB
"use client"; import { useState } from "react"; export default function HomePage() { const [query, setQuery] = useState("phone"); const [budget, setBudget] = useState<number>(15000); const [feature, setFeature] = useState("camera"); const [loading, setLoading] = useState(false); const [data, setData] = useState<any>(null); async function runBudgetTop() { setLoading(true); try { const res = await fetch("/api/commerce", { method: "POST", headers: { "content-type": "application/json" }, body: JSON.stringify({ action: "budget_top", query, budgetMaxINR: budget, featurePref: feature, topK: 3, filters: { minRating: 3.5 }, }), }); const json = await res.json(); setData(json.data); } finally { setLoading(false); } } return ( <main className="min-h-screen bg-slate-950 text-slate-100 px-6 py-10"> <div className="max-w-5xl mx-auto space-y-6"> <h1 className="text-2xl font-bold text-white">Agentic Shopping MCP — Demo</h1> <section className="card p-6 space-y-4"> <h2 className="text-lg font-medium">Budget Constraint AI</h2> <div className="grid grid-cols-1 sm:grid-cols-4 gap-3"> <input className="rounded-lg bg-slate-800 text-white border border-slate-700 p-2" value={query} onChange={(e) => setQuery(e.target.value)} placeholder="search query" /> <input type="number" className="rounded-lg bg-slate-800 text-white border border-slate-700 p-2" value={budget} onChange={(e) => setBudget(Number(e.target.value))} /> <select className="rounded-lg bg-slate-800 text-white border border-slate-700 p-2" value={feature} onChange={(e) => setFeature(e.target.value)} > <option value="camera">camera</option> <option value="battery">battery</option> <option value="display">display</option> <option value="performance">performance</option> </select> <button onClick={runBudgetTop} disabled={loading} className="rounded-lg bg-emerald-600 hover:bg-emerald-500 disabled:opacity-50 text-white px-4 py-2" > {loading ? "Running…" : "Find Top 3"} </button> </div> </section> <section className="card p-6"> <h2 className="text-lg font-medium mb-3">Results</h2> {data?.results?.length ? ( <ul className="space-y-3"> {data.results.map((r: any) => ( <li key={r.id} className="p-4 rounded-lg bg-slate-800"> <div className="font-semibold">{r.title}</div> <div className="text-sm text-slate-400"> ₹{r.priceINR} • ★ {r.rating} • Score {r.score?.toFixed(2)} </div> <div className="text-xs text-slate-500">{r.reason}</div> </li> ))} </ul> ) : ( <p className="text-slate-400 text-sm">No results yet. Run a query above.</p> )} </section> </div> </main> ); }

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/rochitl72/mcp-den'

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