food-recipe-mcp について
food-recipe-mcpは、AIエージェントやLLM向けのレシピ検索MCPサーバーで、Food.comの5万件以上を対象とします。密ベクトル検索とBM25、順位統合、クロスエンコーダーによる再ランキングを組み合わせ、英語とノルウェー語のクエリに対応します。
主な機能
- 015万件以上のレシピ検索
- 02密ベクトルとBM25のハイブリッド検索
- 03RRF統合とクロスエンコーダー再ランキング
- 04食事条件・時間・難易度による絞り込み
- 05英語とノルウェー語のクエリ
- 06栄養情報と評価データの返却
活用シーン
- 01自然言語で夕食レシピを探す
- 02食事制限に合うレシピを絞り込む
- 03調理時間や難易度でレシピを選ぶ
- 04ノルウェー語で郷土料理を検索する
MCP 対応
streamable-httpでMCPインターフェースを提供し、レシピ検索とpingのツールをMCPクライアントに公開します。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://recipes.aidatanorge.no/mcpclaude mcp add --transport http aidatanordic-food-recipe https://recipes.aidatanorge.no/mcp{"mcpServers":{"aidatanordic-food-recipe":{"type":"http","url":"https://recipes.aidatanorge.no/mcp"}}}Cursor で開く{"servers":{"aidatanordic-food-recipe":{"type":"http","url":"https://recipes.aidatanorge.no/mcp"}}}VS Code で開く{"mcpServers":{"aidatanordic-food-recipe":{"type":"http","url":"https://recipes.aidatanorge.no/mcp"}}}{"mcpServers":{"aidatanordic-food-recipe":{"serverUrl":"https://recipes.aidatanorge.no/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
2| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| name | string | いいえ | 応答に含める任意のラベル。例:'healthcheck' |
詳細
Food Recipe MCP
50,000 件以上の料理レシピを対象としたセマンティック検索です。AI エージェントと LLM 向けに構築されています。2 段階のハイブリッド検索(高密度検索と疎検索 BM25 を RRF で統合)に加え、クロスエンコーダーによる再ランキングを行います。ノルウェー語と英語の自然言語クエリに対応しています。
ライブエンドポイント: https://recipes.aidatanorge.no/mcp
トランスポート: streamable-http
デモ: https://recipes.aidatanorge.no/
接続
MCP クライアントの設定に追加してください。
{
"mcpServers": {
"food-recipe": {
"type": "streamable-http",
"url": "https://recipes.aidatanorge.no/mcp"
}
}
}
または、Claude Code を使う場合:
claude mcp add --transport http food-recipe https://recipes.aidatanorge.no/mcp
クイックテスト
ブラウザーでライブデモを試す:
https://recipes.aidatanorge.no/
インストールや設定は不要です。
MCP ツール
search_recipes
ハイブリッド検索と再ランキングにより、Food.com の 50,000 件以上のレシピを対象にセマンティック検索を行います。
search_recipes(
query="quick Italian pasta for weeknight dinner",
diet="vegetarian", # vegetarian | vegan | gluten-free | dairy-free | low-carb | keto | paleo
max_minutes=30, # maximum total cooking time in minutes
difficulty="easy", # easy | medium | hard
limit=5 # default 5, max 20
)
# Returns: rerank_score, rrf_score, title, description, total_time, difficulty,
# diet, main_ingredient, servings, ingredients, instructions, nutrition,
# rating, rating_count, source, recipe_id
クエリの例:
"Swedish meatballs with gravy""healthy high-protein chicken bowl""easy chocolate cake for beginners""traditional Norwegian kjøttkaker""hurtig pasta med kylling"
検索パイプライン: 高密度埋め込み(intfloat/e5-large-v2、1024d)と疎検索 BM25 を、Reciprocal Rank Fusion(RRF)で統合し、mmarco-mMiniLMv2-L12-H384-v1 で再ランキングします。
ping
ping(name="world")
# Returns: "Hello world! Recipe MCP server is running."
データ
- ソース: Food.com(約 50,000 件のレシピ)
- 対象範囲: 幅広い料理、食事の種類、調理スタイル
- 栄養データ: 1 食分あたりのカロリー、脂質、たんぱく質、炭水化物、ナトリウム、食物繊維、糖分
- 評価: レシピごとのユーザー評価と評価件数
- 言語: クエリでは英語とノルウェー語をネイティブにサポート
アーキテクチャ
Food.com recipes → Python ingest → Qdrant (recipe_data_v2 collection)
↓
Hybrid search (dense e5-large-v2 + sparse BM25)
↓
RRF fusion + cross-encoder reranking
↓
FastMCP 3.2 → MCP clients / AI agents
技術スタック
- 埋め込み:
intfloat/e5-large-v2(1024d の高密度)+Qdrant/bm25(疎) - 再ランキング:
cross-encoder/mmarco-mMiniLMv2-L12-H384-v1 - ベクターデータベース: Qdrant(セルフホスト)
- サーバー: HTTP 上の FastMCP 3.2
- インフラストラクチャ: Ubuntu Server 24 LTS、Cloudflare Tunnel
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。