{
  "markdown": "# Food Recipe MCP\n\n<!-- mcp-name: io.github.AIDataNordic/food-recipe-mcp -->\n\nSemantic 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.\n\n**Live endpoint:** `https://recipes.aidatanorge.no/mcp`  \n**Transport:** `streamable-http`  \n**Demo:** [https://recipes.aidatanorge.no/](https://recipes.aidatanorge.no/)\n\n---\n\n## Connect\n\nAdd to your MCP client config:\n\n```json\n{\n  \"mcpServers\": {\n    \"food-recipe\": {\n      \"type\": \"streamable-http\",\n      \"url\": \"https://recipes.aidatanorge.no/mcp\"\n    }\n  }\n}\n```\n\nOr with Claude Code:\n```bash\nclaude mcp add --transport http food-recipe https://recipes.aidatanorge.no/mcp\n```\n\n---\n\n## Quick Test\n\n**Try the live demo in your browser:**  \n[https://recipes.aidatanorge.no/](https://recipes.aidatanorge.no/)\n\nNo installation or configuration needed.\n\n---\n\n## MCP Tools\n\n### `search_recipes`\n\nSemantic search over 50,000+ recipes from Food.com with hybrid retrieval and reranking.\n\n```python\nsearch_recipes(\n    query=\"quick Italian pasta for weeknight dinner\",\n    diet=\"vegetarian\",      # vegetarian | vegan | gluten-free | dairy-free | low-carb | keto | paleo\n    max_minutes=30,         # maximum total cooking time in minutes\n    difficulty=\"easy\",      # easy | medium | hard\n    limit=5                 # default 5, max 20\n)\n# Returns: rerank_score, rrf_score, title, description, total_time, difficulty,\n#          diet, main_ingredient, servings, ingredients, instructions, nutrition,\n#          rating, rating_count, source, recipe_id\n```\n\n**Query examples:**\n- `\"Swedish meatballs with gravy\"`\n- `\"healthy high-protein chicken bowl\"`\n- `\"easy chocolate cake for beginners\"`\n- `\"traditional Norwegian kjøttkaker\"`\n- `\"hurtig pasta med kylling\"`\n\n**Search pipeline:** Dense embedding (`intfloat/e5-large-v2`, 1024d) + sparse BM25, fused via Reciprocal Rank Fusion (RRF), reranked by `mmarco-mMiniLMv2-L12-H384-v1`.\n\n### `ping`\n\n```python\nping(name=\"world\")\n# Returns: \"Hello world! Recipe MCP server is running.\"\n```\n\n---\n\n## Data\n\n- **Source:** Food.com (~50,000 recipes)\n- **Coverage:** Wide range of cuisines, meal types, and cooking styles\n- **Nutritional data:** calories, fat, protein, carbohydrates, sodium, fiber, sugar per serving\n- **Ratings:** user rating + rating count per recipe\n- **Languages:** English and Norwegian supported natively in queries\n\n---\n\n## Architecture\n\n```\nFood.com recipes → Python ingest → Qdrant (recipe_data_v2 collection)\n                                         ↓\n                              Hybrid search (dense e5-large-v2 + sparse BM25)\n                                         ↓\n                              RRF fusion + cross-encoder reranking\n                                         ↓\n                              FastMCP 3.2 → MCP clients / AI agents\n```\n\n---\n\n## Technical Stack\n\n- **Embeddings:** `intfloat/e5-large-v2` (1024d dense) + `Qdrant/bm25` (sparse)\n- **Reranker:** `cross-encoder/mmarco-mMiniLMv2-L12-H384-v1`\n- **Vector DB:** Qdrant (self-hosted)\n- **Server:** FastMCP 3.2 over HTTP\n- **Infrastructure:** Ubuntu Server 24 LTS, Cloudflare Tunnel\n\n---\n\n## License\n\nMIT\n",
  "bytes": 3248,
  "sha": "9d876a95457607f6b7dc7325b907bd9f292198648d149541e05125310bc124c8",
  "repo_slug": "aidatanordic/food-recipe-mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_aidatanordic_food_recipe_mcp_1fc8eabe/readme"
}