food-recipe-mcp
AIDataNordic — Food Recipe MCP
Un servidor de búsqueda semántica de nivel de producción para recetas de cocina, diseñado para agentes de IA utilizando el Protocolo de Contexto de Modelo (MCP). Busca entre más de 50.000 recetas con recuperación híbrida densa + dispersa y reordenamiento mediante cross-encoder.
Qué es esto
Un servidor MCP autohospedado que expone un conjunto de datos de recetas a través de búsqueda semántica. Los agentes pueden realizar consultas en lenguaje natural, filtrar por dieta, dificultad, tiempo y porciones, y obtener datos de recetas estructurados y clasificados, incluyendo ingredientes, instrucciones y nutrición.
Diseñado para el consumo autónomo máquina a máquina a través de FastMCP 3.2 sobre HTTP.
Arquitectura
Query (natural language)
↓
Dense embedding Sparse embedding
(e5-large-v2) (BM25 / fastembed)
↓ ↓
Qdrant — Hybrid Fusion (RRF)
↓
Cross-encoder reranking
(mmarco-mMiniLMv2-L12-H384-v1)
↓
Structured JSON response
↓
MCP tool / AI agentCobertura de datos
Campo | Detalles |
Total de recetas | 50.000+ |
Fuente | food.com y otros |
Campos | title, description, ingredients, instructions, nutrition, rating, difficulty, diet, total_time, servings |
Etiquetas de dieta | vegetarian, vegan, gluten-free, dairy-free |
Dificultad | easy, medium, hard |
Stack técnico
Búsqueda
Embeddings densos:
intfloat/e5-large-v2(1024 dim)Embeddings dispersos:
Qdrant/bm25vía fastembedFusión: Reciprocal Rank Fusion (RRF) en Qdrant
Reranker:
cross-encoder/mmarco-mMiniLMv2-L12-H384-v1
Servicio
FastMCP 3.2 sobre HTTP (endpoint
/mcp)Compatible con Claude, LangChain y cualquier agente compatible con MCP
Infraestructura
Ubuntu Server 24 LTS, autohospedado
Base de datos vectorial Qdrant (autohospedada)
Herramienta MCP
search_recipes(
query="quick chicken pasta", # required — natural language
diet="vegetarian", # optional: vegetarian, vegan, gluten-free, dairy-free
difficulty="easy", # optional: easy, medium, hard
max_minutes=30, # optional: maximum total time in minutes
servings=4, # optional: number of servings
limit=5 # optional: number of results (default 5)
)
# Returns semantically ranked recipes with ingredients, instructions, nutrition, and ratingsEjemplo de respuesta
[
{
"rerank_score": 7.96,
"title": "quick and easy chicken pasta salad",
"description": "great use for left-over chicken.",
"total_time": 25,
"difficulty": "medium",
"diet": [],
"main_ingredient": "chicken",
"ingredients": ["cooked chicken", "pasta shells", "tomatoes", "italian dressing"],
"instructions": ["combine ingredients", "pour dressing", "chill 1 hour"],
"nutrition": {"calories": 424, "protein_g": 26, "carbs_g": 38.5, "fat_g": 19.5},
"rating": 4.8,
"rating_count": 5
}
]Inicio rápido
1. Instalar dependencias
pip install -r requirements.txt2. Iniciar el servidor
python recipe_mcp_server.pyEl servidor se inicia en http://localhost:8004/mcp
3. Conectar con el cliente FastMCP
import fastmcp, asyncio
async def main():
async with fastmcp.Client("http://localhost:8004/mcp") as client:
result = await client.call_tool("search_recipes", {
"query": "quick chicken pasta",
"max_minutes": 30,
"limit": 3
})
for recipe in result.structured_content["result"]:
print(recipe["title"], "-", recipe["total_time"], "min")
asyncio.run(main())4. Conectar con Claude Desktop
Añadir a tu claude_desktop_config.json:
{
"mcpServers": {
"food-recipes": {
"url": "https://recipes.aidatanorge.no/mcp"
}
}
}Demo en vivo
Prueba la interfaz de búsqueda en recipes.aidatanorge.no
Archivos
Archivo | Descripción |
| Servidor FastMCP con búsqueda híbrida |
| Ejemplo de cliente Python |
| Dependencias de Python |
Construido y operado como parte de AIDataNordic — infraestructura de datos de IA autohospedada para agentes autónomos.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/AIDataNordic/Food-Recipe-MCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server