naftiko: "1.0.0-alpha2" info: label: "Edamam Food Database — Food Database" description: >- Food Database — Parser, Nutrients, AI Vision, Autocomplete. 4 operations. Lead operation: Food Search. Self-contained Naftiko capability covering one Edamam business surface. tags: - Edamam - Food Database - Food And Drink created: "2026-05-30" modified: "2026-05-30" binds: - namespace: env keys: EDAMAM_FOOD_APP_ID: EDAMAM_FOOD_APP_ID EDAMAM_FOOD_APP_KEY: EDAMAM_FOOD_APP_KEY capability: consumes: - type: http namespace: "food-database-food-database" baseUri: "https://api.edamam.com" description: "Edamam Food Database API v2 — keyword/UPC food parsing, nutrient lookup, AI vision, autocomplete." authentication: type: apikey key: app_id value: "{{env.EDAMAM_FOOD_APP_ID}}" placement: query resources: - name: "food-database-parser" path: "/api/food-database/v2/parser" operations: - name: "searchFood" method: GET description: "Food search by keyword, brand or UPC/EAN barcode." inputParameters: - name: app_id in: query type: string required: true - name: app_key in: query type: string required: true - name: ingr in: query type: string required: false - name: brand in: query type: string required: false - name: upc in: query type: string required: false - name: nutrition-type in: query type: string required: false - name: health in: query type: array required: false - name: calories in: query type: string required: false - name: category in: query type: string required: false - name: categoryLabel in: query type: string required: false - name: Edamam-Account-User in: header type: string required: false outputRawFormat: json outputParameters: - name: result type: object value: "$." - name: "food-database-nutrients" path: "/api/food-database/v2/nutrients" operations: - name: "lookupNutrients" method: POST description: "Full nutrition lookup for one or more resolved food + measure quantities." inputParameters: - name: app_id in: query type: string required: true - name: app_key in: query type: string required: true - name: body in: body type: object required: true description: "ingredients[]: {quantity, measureURI, foodId}." outputRawFormat: json outputParameters: - name: result type: object value: "$." - name: "food-database-image" path: "/api/food-database/v2/image" operations: - name: "analyzeFoodImage" method: POST description: "Full nutrition lookup from a food image (URL or base64 data URI). Beta." inputParameters: - name: app_id in: query type: string required: true - name: app_key in: query type: string required: true - name: body in: body type: object required: true description: "{ image: , ... }." outputRawFormat: json outputParameters: - name: result type: object value: "$." - name: "food-database-autocomplete" path: "/auto-complete" operations: - name: "autocompleteFoodSearch" method: GET description: "Autocomplete suggestions for food search input." inputParameters: - name: app_id in: query type: string required: true - name: app_key in: query type: string required: true - name: q in: query type: string required: true - name: limit in: query type: integer required: false outputRawFormat: json outputParameters: - name: result type: object value: "$." exposes: - type: rest namespace: "food-database-food-database-rest" port: 8080 description: "REST adapter for Edamam Food Database." resources: - path: "/v1/foods/search" name: "foods-search" description: "Food search." operations: - method: GET name: "searchFood" description: "Search foods by keyword, brand, or UPC." call: "food-database-food-database.searchFood" with: app_id: "rest.app_id" app_key: "rest.app_key" ingr: "rest.ingr" brand: "rest.brand" upc: "rest.upc" nutrition-type: "rest.nutrition-type" health: "rest.health" calories: "rest.calories" category: "rest.category" categoryLabel: "rest.categoryLabel" Edamam-Account-User: "rest.Edamam-Account-User" outputParameters: - type: object mapping: "$." - path: "/v1/foods/nutrients" name: "foods-nutrients" description: "Resolve nutrients for foods + measures." operations: - method: POST name: "lookupNutrients" description: "Full nutrition lookup." call: "food-database-food-database.lookupNutrients" with: app_id: "rest.app_id" app_key: "rest.app_key" body: "rest.body" outputParameters: - type: object mapping: "$." - path: "/v1/foods/image" name: "foods-image" description: "Nutrition from image (AI Vision)." operations: - method: POST name: "analyzeFoodImage" description: "Nutrition lookup from a food image." call: "food-database-food-database.analyzeFoodImage" with: app_id: "rest.app_id" app_key: "rest.app_key" body: "rest.body" outputParameters: - type: object mapping: "$." - path: "/v1/foods/autocomplete" name: "foods-autocomplete" description: "Autocomplete food search." operations: - method: GET name: "autocompleteFoodSearch" description: "Food search autocomplete." call: "food-database-food-database.autocompleteFoodSearch" with: app_id: "rest.app_id" app_key: "rest.app_key" q: "rest.q" limit: "rest.limit" outputParameters: - type: object mapping: "$." - type: mcp namespace: "food-database-food-database-mcp" port: 9090 transport: http description: "MCP adapter for Edamam Food Database." tools: - name: "search-foods" description: "Search foods by keyword, brand, or UPC." hints: readOnly: true destructive: false idempotent: true call: "food-database-food-database.searchFood" with: app_id: "tools.app_id" app_key: "tools.app_key" ingr: "tools.ingr" brand: "tools.brand" upc: "tools.upc" nutrition-type: "tools.nutrition-type" health: "tools.health" calories: "tools.calories" category: "tools.category" categoryLabel: "tools.categoryLabel" Edamam-Account-User: "tools.Edamam-Account-User" outputParameters: - type: object mapping: "$." - name: "lookup-nutrients" description: "Resolve nutrients for foods + measures." hints: readOnly: true destructive: false idempotent: false call: "food-database-food-database.lookupNutrients" with: app_id: "tools.app_id" app_key: "tools.app_key" body: "tools.body" outputParameters: - type: object mapping: "$." - name: "analyze-food-image" description: "Nutrition lookup from a food image (AI Vision)." hints: readOnly: true destructive: false idempotent: false call: "food-database-food-database.analyzeFoodImage" with: app_id: "tools.app_id" app_key: "tools.app_key" body: "tools.body" outputParameters: - type: object mapping: "$." - name: "autocomplete-foods" description: "Autocomplete food search." hints: readOnly: true destructive: false idempotent: true call: "food-database-food-database.autocompleteFoodSearch" with: app_id: "tools.app_id" app_key: "tools.app_key" q: "tools.q" limit: "tools.limit" outputParameters: - type: object mapping: "$."