mcpField
T
Taste Overlap

Taste Overlap

リモート
taste-overlap.onrender.com地図・旅行02 週間前に更新
リポジトリ公式サイト

Taste Overlap について

Taste Overlap は、2 人の好みに合わせて夜の予定を組む MCP サーバーです。Qloo の親和性スコアで場所を選び、推薦理由を示して、アクティビティ、食事、飲み物の順に並べます。

主な機能

  1. 01個人別と共通の好みで場所を順位付け
  2. 02Qloo の親和性で重なりを算出
  3. 03共通の好みタグで推薦理由を説明
  4. 04アクティビティ、食事、飲み物を順に配置

活用シーン

  1. 012 人の好みに合わせた街での夜の計画
  2. 02場所が双方の好みに合う理由の確認

MCP 対応

stdio とリモートの Streamable HTTP エンドポイントで `plan_shared_evening` ツールを提供します。説明付きのプランをテキストと構造化コンテンツで返します。

設定

リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。

エンドポイントhttps://taste-overlap.onrender.com/mcp
インストールコマンドをコピー
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。

ツール

1
パラメーター型必須説明
citystringはい都市(例:Vienna)
person_aarrayはいA さんのお気に入り
person_barrayはい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

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。