Two people, a few favourites each: Qloo's taste graph finds the places you would both enjoy, and says why.
- ✓Open-source license (MIT)
- ✓Actively maintained (<30d)
- ✓Clear description
- ✓Documented (README)
git clone https://github.com/Sooonic008/taste-overlap{
"mcpServers": {
"taste-overlap": {
"command": "node",
"args": ["/path/to/taste-overlap/dist/index.js"],
"env": {
"QLOO_API_KEY": "<qloo_api_key>",
"QLOO_BASE_URL": "<qloo_base_url>",
"QLOO_TRUSTED_BASE_URL": "<qloo_trusted_base_url>"
}
}
}
}QLOO_API_KEYQLOO_BASE_URLQLOO_TRUSTED_BASE_URLResumen de MCP Servers
# Taste Overlap
Two people, a few favourites each (artists, films, shows, books, places). Qloo's taste graph ranks places in your city for person A, for person B and for both together. Taste Overlap keeps only the places that rank well for **both** (harmonic mean of the two affinities, so one-sided picks drop out), explains each pick with the shared taste tags, and orders them into an evening: something to do, food, then a drink.
Without Qloo there is nothing to show: the overlap is computed from Qloo's per-person affinities, not from an LLM guess.
## Run
Needs Node.js 22.19+ and the official Qloo harness (the supported event surface):
```bash
npm install --global @qloo/qloo-harness # qloo --version >= 0.1.26
export QLOO_API_KEY=... # the hackathon key (or: qloo setup --qloo)
export QLOO_BASE_URL=https://hackathon.api.qloo.com
export QLOO_TRUSTED_BASE_URL=https://hackathon.api.qloo.com # the harness only sends a key to an approved endpoint
npm start # http://localhost:8787
```
**Demo without credentials:** `QLOO_TRANSPORT=demo npm start` replays a real recorded run (`demo/vienna.json`, 11 `qloo exec` calls) through the same code. Only that example works (Vienna; Radiohead + Wes Anderson / Taylor Swift + Studio Ghibli); other inputs return an error instead of invented places.
Optional: `QLOO_TRANSPORT=rest` with `QLOO_API_KEY` uses the direct REST client (`src/qloo.js`) instead; `QLOO_BASE`, `PORT`.
## Use it from an agent (MCP tool)
**Remote, nothing to install:** the live demo also speaks MCP at `https://taste-overlap.onrender.com/mcp` (streamable HTTP, JSON answers). In claude.ai or the Claude app: *Settings → Connectors → Add custom connector* and paste that URL. Tool calls share the demo's per-visitor and daily limits.
**Local (stdio):**
Taste Overlap is also an agent tool: `mcp-server.js` is a dependency-free MCP stdio server with one tool, `plan_shared_evening` (`city`, `person_a[]`, `person_b[]`). It returns the explained evening as text plus structured content, and any MCP client can call it:
```bash
claude mcp add taste-overlap -- node /path/to/taste-overlap/mcp-server.js # Claude Code
# or in claude_desktop_config.json / Cursor: {"command": "node", "args": ["/path/to/mcp-server.js"],
# "env": {"QLOO_API_KEY": "...", "QLOO_BASE_URL": "https://hackathon.api.qloo.com", "QLOO_TRUSTED_BASE_URL": "https://hackathon.api.qloo.com"}}
```
Without a key, `QLOO_TRANSPORT=demo` makes the tool answer the recorded Vienna example.
## Test
```bash
node --test
```
## How it works
- `src/mcp.js` (default transport) - one long-running `qloo mcp` process (the harness's canonical MCP adapter) serves every workflow as `qloo_<op>`; on a small host this takes ~0.5-1.2 s per call instead of >30 s for a fresh `qloo exec`. `QLOO_TRANSPORT=exec` switches back to one `qloo exec` per call.
- `src/harness.js` - the Qloo workflows: `recommend` (`target_type: place`, the favourites as `signals`, `filter_location`: the city) for A, B and both; `entity_tags` for the tags that explain each pick. The harness resolves the names and validates input before calling Qloo; when a name is ambiguous (`status: needs_input`) the client takes Qloo's top-ranked non-album candidate, retries once with its entity id and returns that choice. Workflow names are fixed, user text goes in on stdin.
- Each pick's reason comes from Qloo's per-result `explainability` (`signal.interests.entities`): which favourites drove the place and by how much.
- `src/demo.js` - records and replays real harness envelopes for the credential-free demo.
- `src/qloo.js` (fallback) - resolves each favourite with `/search`, ranks places with `/v2/insights` (`filter.type=urn:entity:place`, `signal.interests.entities`, `filter.location.query`). The key is sent as a header from the server and never reaches the browser.
- `src/overlap.js` - pure logic: shared picks, reasons, evening order (unit-tested). Qloo returns at most 20 places per call, and two tastes can share none of them (measured: Berlin, Daft Punk + Christopher Nolan vs Adele + Pixar). Real overlaps come first; the rest is topped up from the joint list and labelled "combined taste". A place scored one-sided in both personal lists never comes back that way.
- `src/plan.js` - three Qloo calls (A, B, both) -> overlap -> explained plan.
- `server.js` - dependency-free Node server, serves `public/` and `POST /api/plan`.
- `mcp-server.js` - the same plan as an MCP tool for agents; `src/transport.js` picks the Qloo transport for both.
## License
MIT
Lo que la gente pregunta sobre taste-overlap
¿Qué es Sooonic008/taste-overlap?
+
Sooonic008/taste-overlap es mcp servers para el ecosistema de Claude AI. Two people, a few favourites each: Qloo's taste graph finds the places you would both enjoy, and says why. Tiene 0 estrellas en GitHub y su última actualización registrada es del 2026-10-16.
¿Cómo se instala taste-overlap?
+
Puedes instalar taste-overlap clonando el repositorio (https://github.com/Sooonic008/taste-overlap) o siguiendo las instrucciones del README en GitHub. ClaudeWave también te ofrece bloques de instalación rápida en esta misma página.
¿Es seguro usar Sooonic008/taste-overlap?
+
Nuestro agente de seguridad ha analizado Sooonic008/taste-overlap y le ha asignado un Trust Score de 87/100 (tier: Trusted). Revisa el desglose completo de comprobaciones superadas y flags en esta página.
¿Quién mantiene Sooonic008/taste-overlap?
+
Sooonic008/taste-overlap es mantenido por Sooonic008. La última actividad registrada en GitHub es del 2026-10-16, con 0 issues abiertos.
¿Hay alternativas a taste-overlap?
+
Sí. En ClaudeWave puedes explorar mcp servers similares en /categories/mcp, ordenados por popularidad o actividad reciente.
Despliega taste-overlap en tu cloud
Lleva este repo a producción en minutos. Cada plataforma genera su propio entorno con variables de entorno editables.
¿Mantienes este repo? Añade un badge a tu README
Pega el badge en tu README de GitHub para mostrar que está auditado por ClaudeWave. Cada badge enlaza de vuelta a esta página y muestra el Trust Score actual.
[](https://claudewave.com/repo/sooonic008-taste-overlap)<a href="https://claudewave.com/repo/sooonic008-taste-overlap"><img src="https://claudewave.com/api/badge/sooonic008-taste-overlap" alt="Featured on ClaudeWave: Sooonic008/taste-overlap" width="320" height="64" /></a>Más MCP Servers
Reverse engineer anything with agents, from app behavior down to native binaries.
Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.
User-friendly AI Interface (Supports Ollama, OpenAI API, ...)
An open-source AI agent that brings the power of Gemini directly into your terminal.
Real-time global intelligence dashboard. AI-powered news aggregation, geopolitical monitoring, and infrastructure tracking in a unified situational awareness interface
🕷️ An adaptive Web Scraping framework that handles everything from a single request to a full-scale crawl! Don't be shy, join here: https://discord.gg/EMgGbDceNQ and follow here for daily tips and tricks: https://x.com/Scrapling_dev