mcpField
M
Menus Recommender

Menus Recommender

ローカル
github.com/spyypsゲーム・エンタメ019 週間前に更新

Menus Recommender について

Menus Recommenderは、世界各地の料理データを使って料理を提案するMCPサーバーです。重み付きランダム選択と、料理ジャンル・地域・キーワード・価格による絞り込みで、MCP対応エージェントに多様な候補を提示します。

主な機能

  1. 01重み付きランダムによる料理提案
  2. 02料理ジャンル・地域・キーワード・価格で絞り込み
  3. 03提案済み料理IDの除外
  4. 04選択を再現するためのシード指定
  5. 05対応キーワードの一覧表示

活用シーン

  1. 01食事の候補を幅広く取得
  2. 02予算や料理ジャンルで候補を絞り込み
  3. 03重複を避けて次の候補を取得
  4. 04利用可能な絞り込み条件を確認

MCP 対応

MCPサーバーは、条件指定付きの重み付き提案を行う`recommend_dishes`と、対応キーワード一覧を返す`list_keywords`を提供します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"spyyps-menus-recommender": {
"command": "uvx",
"args": [
"menus-mcp"
]
}
}
}
起動コマンドuvx menus-mcp

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
pypimenus-mcp1.0.1

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

プロジェクトの README より

menus-mcp:全球美食推荐 MCP Server

基于 462 道菜、41 个菜系的全球美食知识库做加权随机推荐。任何支持 Model Context Protocol(MCP)的 AI agent 均可使用,包括:

快速安装

也可在 MCP Registry 直接搜到本 server(io.github.spyyps/menus-recommender)。

方式 1:uvx(推荐,无需安装)
{
  "mcpServers": {
    "menus": {
      "command": "uvx",
      "args": ["menus-mcp"]
    }
  }
}

uvx 会自动从 PyPI 下载并运行,首次启动稍有延迟(数据加载约 1s),后续缓存到本地。

方式 2:pip install
pip install menus-mcp

然后在 MCP 客户端配置中:

{
  "mcpServers": {
    "menus": {
      "command": "menus-mcp"
    }
  }
}
方式 3:本地源码运行
git clone https://github.com/spyyps/recommend-dish
cd recommend-dish
pip install -r mcp-server/requirements.txt
# 运行入口
python3 mcp-server/server.py
# 或在 mcp-server/ 目录下:
cd mcp-server && python3 -m menus_mcp

然后客户端配置:

{
  "mcpServers": {
    "menus": {
      "command": "python3",
      "args": ["/path/to/recommend-dish/mcp-server/server.py"]
    }
  }
}

开放的工具

recommend_dishes

主推荐工具。参数(皆为可选):

参数类型默认说明
countint3推荐数量
keywordsstr""逗号分隔的关键词(OR语义),见下方白名单
price_tierstr""经济(≤20)/实惠(21-50)/中档(51-100)/高档(101-200)/奢华(>200)
max_priceint0价格上限(CNY)
cuisinestr""菜系名(如「川菜」「日本料理」)
geostr""地理大类(如「亚洲」「欧洲」)
exclude_idsstr""逗号分隔的菜品 ID,用于换一批去重
seedint0随机种子(0=系统时间)

支持的关键词白名单:

  • 口味:麻辣、辣、甜、酸、咸、鲜
  • 食材:海鲜、牛肉、羊肉、猪肉、鸡肉、素食
  • 类型:面食、米饭类、汤、甜品、烧烤、火锅、咖喱、汉堡披萨、饮品

否定注意:用户说「不要太辣」时不要传入 辣——传空即可。关键词做硬过滤,传入就会强制匹配。

返回示例(JSON):

{
  "dishes": [
    {"id": "cn_ch_001", "name": "麻婆豆腐", "name_en": "Mapo Tofu", "price": 38, "cuisine": "川菜", "region": "中华料理", "description": "嫩豆腐配牛肉末,以花椒和豆瓣酱炒制,麻辣鲜香"}
  ],
  "exhausted": false,
  "filters": {"count": 3, "keywords": ["辣"], "price_tier": "", "relaxed": false, ...},
  "candidate_pool_size": 54,
  "returned": 3
}

exhausted=true 表示候选池不足,应触发兜底链(放宽约束、网络搜索、LLM 常识)。

list_keywords

返回支持的关键词白名单。无参数。

兜底推荐

MCP server 仅负责第一层(本地知识库 + 加权随机)。当 exhausted=true 时,应自行按以下链兜底:

  1. 降级过滤:去掉价格约束,重试
  2. Web 搜索:查 "{用户原话} 推荐 菜品"
  3. LLM 常识:基于通用知识推荐,标注「非知识库菜品」

算法说明

  • 关键词硬过滤:用户传关键词时菜品必须至少匹配一个(OR)
  • 反偏置:权重 × 1/√(该菜系菜品数),防止大菜系压制小菜系
  • 多样性:同一菜系最多 ceil(count/3) 道
  • 价格松弛:候选不足时自动去价格档重试一次

发布

cd mcp-server
pip install build
python3 -m build
twine upload dist/*

详见 PyPI 发布指南。

コメント

MCP は初めてですか?

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

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