Connects your LLM to a hybrid search engine over 50,000 Food.com recipes using dense e5-large embeddings, sparse BM25, and cross-encoder reranking. Exposes a single search_recipes tool that handles natural language queries in English or Norwegian and filters by diet type, max cooking time, and difficulty level. Returns ranked results with full ingredients, instructions, nutrition data, and user ratings. Useful when you need production-grade recipe retrieval that goes beyond keyword matching, like finding "quick vegetarian Italian pasta under 30 minutes" or handling Norwegian queries like "hurtig pasta med kylling". Built on Qdrant with FastMCP over HTTP, so no local setup required.
Semantic search over 50,000+ food recipes — built for AI agents and LLMs. Two-stage hybrid retrieval (dense + sparse BM25, fused via RRF) with cross-encoder reranking. Supports natural language queries in Norwegian and English.
Live endpoint: https://recipes.aidatanorge.no/mcp
Transport: streamable-http
Demo: https://recipes.aidatanorge.no/
Add to your MCP client config:
{
"mcpServers": {
"food-recipe": {
"type": "streamable-http",
"url": "https://recipes.aidatanorge.no/mcp"
}
}
}
Or with Claude Code:
claude mcp add --transport http food-recipe https://recipes.aidatanorge.no/mcp
Try the live demo in your browser:
https://recipes.aidatanorge.no/
No installation or configuration needed.
search_recipesSemantic search over 50,000+ recipes from Food.com with hybrid retrieval and reranking.
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
Query examples:
"Swedish meatballs with gravy""healthy high-protein chicken bowl""easy chocolate cake for beginners""traditional Norwegian kjøttkaker""hurtig pasta med kylling"Search pipeline: Dense embedding (intfloat/e5-large-v2, 1024d) + sparse BM25, fused via Reciprocal Rank Fusion (RRF), reranked by mmarco-mMiniLMv2-L12-H384-v1.
pingping(name="world")
# Returns: "Hello world! Recipe MCP server is running."
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 dense) + Qdrant/bm25 (sparse)cross-encoder/mmarco-mMiniLMv2-L12-H384-v1MIT
com.mcparmory/google-search
io.github.pipeworx-io/brave-search
marcopesani/mcp-server-serper
brave/brave-search-mcp-server
com.mcparmory/google-search-console
acamolese/google-search-console-mcp