Inspiration
When a student moves to a new country, the hardest gap is often not the language but the shared references: the shows, music and food classmates bond over. Language apps teach grammar, not "what do people like me actually like here." Rosetta Taste closes that gap.
What it does
The student confirms 3 to 8 favorites (music, TV/film, food) and picks a target city. An agent then:
- Resolves each favorite to a Qloo entity and asks the student to confirm ambiguous matches.
- Finds what people with similar taste like in each domain.
- Checks how popular those picks are in the target city. [UPDATE after location test]
- Turns each match into a short lesson: why it fits, useful phrases and references, and a conversation starter.
- Creates a shareable "reverse bridge" card that explains the student's tastes to classmates in local terms.
How it uses Qloo
The agent calls Qloo through the official harness (MCP server) and uses these tools: qloo_find_tags / qloo_describe (entity resolution), qloo_recommend (taste-based recommendations), qloo_where_popular and qloo_rank (local grounding and shortlisting), and qloo_entity_tags (the shared tags that explain each match). [UPDATE with the tools actually used] Every card shows its evidence: the tool called, the arguments and the result status. A generic LLM can name popular things, but it cannot map one person's taste to what is actually loved in another place. Without Qloo this app would only produce generic top-10 lists.
How we built it
Node 22 + TypeScript API (Hono) that runs the Qloo MCP server as a child process, React + Vite front end, SQLite cache, LLM tool-use loop with step caps, deployed as one Docker container. Lessons are generated only from stored Qloo results and validated so nothing can be invented.
Challenges
- Qloo results are aggregate affinities, not facts about a person, so the app never infers nationality, background or identity.
- Protecting a shared API quota on a public demo: caching, rate limits and pre-computed sample students.
- Making ambiguous entity matches visible to the user instead of silently guessing.
Responsible use
No personal data is sent to Qloo. Results are labeled "Qloo result" versus "our interpretation," and a limitations page explains what the results do not establish.
What's next
Classroom mode for teachers, more domains such as games and fashion, and more languages.
Built With
- model-context-protocol
- node.js
- qloo-api
- react
- sqlite
- tailwindcss
- typescript
- vite
Log in or sign up for Devpost to join the conversation.