Taste Overlap について
Taste Overlap は、2 人の好みに合わせて夜の予定を組む MCP サーバーです。Qloo の親和性スコアで場所を選び、推薦理由を示して、アクティビティ、食事、飲み物の順に並べます。
主な機能
- 01個人別と共通の好みで場所を順位付け
- 02Qloo の親和性で重なりを算出
- 03共通の好みタグで推薦理由を説明
- 04アクティビティ、食事、飲み物を順に配置
活用シーン
- 012 人の好みに合わせた街での夜の計画
- 02場所が双方の好みに合う理由の確認
MCP 対応
stdio とリモートの Streamable HTTP エンドポイントで `plan_shared_evening` ツールを提供します。説明付きのプランをテキストと構造化コンテンツで返します。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://taste-overlap.onrender.com/mcpclaude mcp add --transport http sooonic008-taste-overlap https://taste-overlap.onrender.com/mcp{"mcpServers":{"sooonic008-taste-overlap":{"type":"http","url":"https://taste-overlap.onrender.com/mcp"}}}Cursor で開く{"servers":{"sooonic008-taste-overlap":{"type":"http","url":"https://taste-overlap.onrender.com/mcp"}}}VS Code で開く{"mcpServers":{"sooonic008-taste-overlap":{"type":"http","url":"https://taste-overlap.onrender.com/mcp"}}}{"mcpServers":{"sooonic008-taste-overlap":{"serverUrl":"https://taste-overlap.onrender.com/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
1| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| city | string | はい | 都市(例:Vienna) |
| person_a | array | はい | A さんのお気に入り |
| person_b | array | はい | B さんのお気に入り |
詳細
Taste Overlap
2人がそれぞれお気に入りをいくつか挙げます(アーティスト、映画、番組、本、場所)。Qlooのテイストグラフが、あなたの街の場所をAさん向け、Bさん向け、そして2人向けにランキングします。Taste Overlapは、2人とも上位にランクインした場所だけを残します(2つの親和度の調和平均を使うため、片方だけに合う候補は除外されます)。共通するテイストタグを使って各候補の理由を説明し、夜の予定として「何かをする」「食事」「飲み物」の順に並べます。
Qlooなしでは、表示できるものはありません。重なりは、LLMの推測ではなく、Qlooが算出した各人の親和度から計算されます。
実行
Node.js 22.19+と公式のQlooハーネス(サポートされているイベントインターフェース)が必要です。
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
認証情報なしでのデモ: QLOO_TRANSPORT=demo npm startを実行すると、同じコードを通じて、実際に記録された実行結果(demo/vienna.json、11回のqloo exec呼び出し)を再生します。この例(ウィーン、Radiohead + Wes Anderson / Taylor Swift + Studio Ghibli)のみ動作します。それ以外の入力には、場所を捏造するのではなくエラーを返します。
オプション:QLOO_TRANSPORT=restとQLOO_API_KEYを設定すると、代わりに直接RESTクライアント(src/qloo.js)を使用します。QLOO_BASE、PORTも設定できます。
エージェントから使う(MCP ツール)
**リモート、インストール不要:**ライブデモはhttps://taste-overlap.onrender.com/mcpでもMCPに対応しています(ストリーミング可能なHTTP、JSON応答)。claude.aiまたはClaudeアプリで、Settings → Connectors → Add custom connectorを選択し、そのURLを貼り付けます。ツール呼び出しには、デモの訪問者ごとおよび日ごとの上限が適用されます。
ローカル(stdio):
Taste Overlapはエージェントツールとしても使えます。mcp-server.jsは依存関係のないMCP stdioサーバーで、plan_shared_evening(city、person_a[]、person_b[])というツールを1つ提供します。説明付きの夜の予定をテキストと構造化コンテンツで返し、任意のMCPクライアントから呼び出せます。
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"}}
キーがない場合、QLOO_TRANSPORT=demoを設定すると、このツールは記録済みのウィーンの例を応答します。
テスト
node --test
動作の仕組み
src/mcp.js(デフォルトのトランスポート)- 長時間実行する1つのqloo mcpプロセス(ハーネスの標準MCPアダプター)が、すべてのワークフローをqloo_<op>として提供します。小規模なホストでは、新たにqloo execを実行する場合の30秒超に対し、呼び出しごとの所要時間は約0.5~1.2秒です。QLOO_TRANSPORT=execに切り替えると、呼び出しごとに1回qloo execを実行します。src/harness.js- Qlooのワークフロー:A、B、2人向けに、それぞれrecommend(target_type: place、お気に入りをsignals、都市をfilter_locationに指定)を実行し、各候補の説明に使うタグにはentity_tagsを実行します。ハーネスはQlooを呼び出す前に名前を解決し、入力を検証します。名前が曖昧な場合(status: needs_input)、クライアントはQlooのランキング上位にあるアルバム以外の候補を選び、そのエンティティIDを使って1回再試行し、その候補を返します。ワークフロー名は固定で、ユーザーのテキストはstdinで渡されます。- 各候補の理由は、Qlooが結果ごとに返す
explainability(signal.interests.entities)に基づきます。どのお気に入りがその場所の選定に影響したか、その影響度を示します。 src/demo.js- 認証情報なしのデモ用に、実際のハーネスのエンベロープを記録し、再生します。src/qloo.js(フォールバック)-/searchで各お気に入りを解決し、/v2/insightsで場所をランキングします(filter.type=urn:entity:place、signal.interests.entities、filter.location.query)。キーはサーバーからヘッダーとして送信され、ブラウザーには渡りません。src/overlap.js- 純粋なロジック:共通候補、理由、夜の予定の順序(単体テスト済み)。Qlooは呼び出しごとに最大20か所を返しますが、2人のテイストに共通する場所がない場合もあります(実測例:ベルリン、Daft Punk + Christopher Nolan 対 Adele + Pixar)。実際に重なる候補を優先し、残りは両者のテイストを組み合わせたリストから補い、「combined taste」とラベル付けします。片方だけに合うスコアがそれぞれの個人リストで付いた場所は、そのような候補として返されることはありません。src/plan.js- Qlooを3回呼び出し(A、B、両者) -> 重なりを抽出 -> 説明付きのプランを作成します。server.js- 依存関係のないNodeサーバーで、public/とPOST /api/planを提供します。mcp-server.js- 同じプランをエージェント向けのMCPツールとして提供します。src/transport.jsが両方のQlooトランスポートを選択します。
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。