Skip to main content
ClaudeWave

Two people, a few favourites each: Qloo's taste graph finds the places you would both enjoy, and says why.

MCP ServersOfficial Registry0 stars0 forks● JavaScriptMITUpdated today
ClaudeWave Trust Score
87/100
✓ Trusted
Passed
  • ✓Open-source license (MIT)
  • ✓Actively maintained (<30d)
  • ✓Clear description
  • ✓Documented (README)
Last scanned: 10/17/2026
Install in Claude Code / Claude Desktop
Method: Manual
Claude Code CLI
git clone https://github.com/Sooonic008/taste-overlap
claude_desktop_config.json (Claude Desktop)
{
  "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>"
      }
    }
  }
}
1. Run the command above in your terminal (Claude Code), or paste the JSON config into claude_desktop_config.json (Claude Desktop).
2. Replace any <placeholder> values with your API keys or paths.
3. Restart Claude. The MCP server and its tools appear automatically.
💡 Clone https://github.com/Sooonic008/taste-overlap and follow its README for install instructions.
Detected environment variables
QLOO_API_KEYQLOO_BASE_URLQLOO_TRUSTED_BASE_URL
Use cases

MCP Servers overview

# 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

What people ask about taste-overlap

What is Sooonic008/taste-overlap?

+

Sooonic008/taste-overlap is mcp servers for the Claude AI ecosystem. Two people, a few favourites each: Qloo's taste graph finds the places you would both enjoy, and says why. It has 0 GitHub stars and its last recorded update is dated 2026-10-16.

How do I install taste-overlap?

+

You can install taste-overlap by cloning the repository (https://github.com/Sooonic008/taste-overlap) or following the README instructions on GitHub. ClaudeWave also provides quick install blocks on this page.

Is Sooonic008/taste-overlap safe to use?

+

Our security agent has analyzed Sooonic008/taste-overlap and assigned a Trust Score of 87/100 (tier: Trusted). See the full breakdown of passed checks and flags on this page.

Who maintains Sooonic008/taste-overlap?

+

Sooonic008/taste-overlap is maintained by Sooonic008. The last recorded GitHub activity is dated 2026-10-16, with 0 open issues.

Are there alternatives to taste-overlap?

+

Yes. On ClaudeWave you can browse similar mcp servers at /categories/mcp, sorted by popularity or recent activity.

Deploy taste-overlap to your cloud

Ship this repo to production in minutes. Each platform spins up its own environment with editable env vars.

Maintain this repo? Add a badge to your README

Drop the badge into your GitHub README to show it's tracked on ClaudeWave. Each badge links back to this page and reflects the live Trust Score.

Featured on ClaudeWave: Sooonic008/taste-overlap
[![Featured on ClaudeWave](https://claudewave.com/api/badge/sooonic008-taste-overlap)](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>

More MCP Servers

taste-overlap alternatives