Edamam · Capability

Edamam Meal Planner — Planner

Meal Planner — Planner. 4 operations. Lead operation: Create Dietary Plan According to Supplied Specification. Self-contained Naftiko capability covering one Edamam business surface.

Run with Naftiko EdamamMeal PlannerFood And Drink

What You Can Do

POST
Createdietaryplan — Create dietary plan.
/v1/meal-plans
POST
Calculaterecommendedintake — Calculate DRI for a metabolic profile.
/v1/profiles/recommended-intake
GET
Lookuprecipesbyuri — Lookup recipes by URI.
/v1/recipes/by-uri
POST
Createshoppinglist — Create shopping list.
/v1/shopping-lists

MCP Tools

create-meal-plan

Create a dietary meal plan.

calculate-recommended-intake

Calculate DRI for a metabolic profile.

read-only
lookup-recipes-by-uri

Lookup recipes by URI.

read-only idempotent
create-shopping-list

Create shopping list from total meal quantities.

Capability Spec

meal-planner-meal-planner.yaml Raw ↑
naftiko: "1.0.0-alpha2"

info:
  label: "Edamam Meal Planner — Planner"
  description: >-
    Meal Planner — Planner. 4 operations. Lead operation: Create Dietary Plan According to Supplied Specification.
    Self-contained Naftiko capability covering one Edamam business surface.
  tags:
    - Edamam
    - Meal Planner
    - Food And Drink
  created: "2026-05-30"
  modified: "2026-05-30"

binds:
  - namespace: env
    keys:
      EDAMAM_MEAL_APP_ID: EDAMAM_MEAL_APP_ID
      EDAMAM_MEAL_APP_KEY: EDAMAM_MEAL_APP_KEY

capability:

  consumes:
    - type: http
      namespace: "meal-planner-meal-planner"
      baseUri: "https://api.edamam.com"
      description: "Edamam Meal Planner API v1 — daily meal pattern selection, DRI calculation, recipe lookup, shopping list."
      authentication:
        type: basic
        username: "{{env.EDAMAM_MEAL_APP_ID}}"
        password: "{{env.EDAMAM_MEAL_APP_KEY}}"
      resources:
        - name: "meal-planner-select"
          path: "/api/meal-planner/v1/{app_id}/select"
          operations:
            - name: "createDietaryPlan"
              method: POST
              description: "Create dietary plan according to supplied specification."
              inputParameters:
                - name: app_id
                  in: path
                  type: string
                  required: true
                - name: type
                  in: query
                  type: string
                  required: false
                - name: Edamam-Account-User
                  in: header
                  type: string
                  required: true
                - name: body
                  in: body
                  type: object
                  required: true
              outputRawFormat: json
              outputParameters:
                - name: result
                  type: object
                  value: "$."
        - name: "meal-planner-dri"
          path: "/api/meal-planner/v1/{app_id}/profile/recommended-intake"
          operations:
            - name: "calculateRecommendedIntake"
              method: POST
              description: "Calculate recommended daily intake and tolerable upper limits for the specified metabolic profile."
              inputParameters:
                - name: app_id
                  in: path
                  type: string
                  required: true
                - name: body
                  in: body
                  type: object
                  required: true
              outputRawFormat: json
              outputParameters:
                - name: result
                  type: object
                  value: "$."
        - name: "meal-planner-by-uri"
          path: "/api/recipes/v2/by-uri"
          operations:
            - name: "lookupRecipesByUri"
              method: GET
              description: "Lookup recipes by URI from the meal planner surface."
              inputParameters:
                - name: type
                  in: query
                  type: string
                  required: true
                - name: uri
                  in: query
                  type: array
                  required: true
              outputRawFormat: json
              outputParameters:
                - name: result
                  type: object
                  value: "$."
        - name: "meal-planner-shopping-list"
          path: "/api/meal-planner/v1/shopping-list"
          operations:
            - name: "createShoppingList"
              method: POST
              description: "Create shopping list from total meal quantities."
              inputParameters:
                - name: body
                  in: body
                  type: object
                  required: true
              outputRawFormat: json
              outputParameters:
                - name: result
                  type: object
                  value: "$."

  exposes:
    - type: rest
      namespace: "meal-planner-meal-planner-rest"
      port: 8080
      description: "REST adapter for Edamam Meal Planner."
      resources:
        - path: "/v1/meal-plans"
          name: "meal-plans"
          description: "Create dietary plan."
          operations:
            - method: POST
              name: "createDietaryPlan"
              description: "Create dietary plan."
              call: "meal-planner-meal-planner.createDietaryPlan"
              with:
                app_id: "rest.app_id"
                type: "rest.type"
                Edamam-Account-User: "rest.Edamam-Account-User"
                body: "rest.body"
              outputParameters:
                - type: object
                  mapping: "$."
        - path: "/v1/profiles/recommended-intake"
          name: "profiles-recommended-intake"
          description: "Calculate recommended daily intake."
          operations:
            - method: POST
              name: "calculateRecommendedIntake"
              description: "Calculate DRI for a metabolic profile."
              call: "meal-planner-meal-planner.calculateRecommendedIntake"
              with:
                app_id: "rest.app_id"
                body: "rest.body"
              outputParameters:
                - type: object
                  mapping: "$."
        - path: "/v1/recipes/by-uri"
          name: "recipes-by-uri"
          description: "Lookup recipes by URI."
          operations:
            - method: GET
              name: "lookupRecipesByUri"
              description: "Lookup recipes by URI."
              call: "meal-planner-meal-planner.lookupRecipesByUri"
              with:
                type: "rest.type"
                uri: "rest.uri"
              outputParameters:
                - type: object
                  mapping: "$."
        - path: "/v1/shopping-lists"
          name: "shopping-lists"
          description: "Create shopping list."
          operations:
            - method: POST
              name: "createShoppingList"
              description: "Create shopping list."
              call: "meal-planner-meal-planner.createShoppingList"
              with:
                body: "rest.body"
              outputParameters:
                - type: object
                  mapping: "$."

    - type: mcp
      namespace: "meal-planner-meal-planner-mcp"
      port: 9090
      transport: http
      description: "MCP adapter for Edamam Meal Planner."
      tools:
        - name: "create-meal-plan"
          description: "Create a dietary meal plan."
          hints:
            readOnly: false
            destructive: false
            idempotent: false
          call: "meal-planner-meal-planner.createDietaryPlan"
          with:
            app_id: "tools.app_id"
            type: "tools.type"
            Edamam-Account-User: "tools.Edamam-Account-User"
            body: "tools.body"
          outputParameters:
            - type: object
              mapping: "$."
        - name: "calculate-recommended-intake"
          description: "Calculate DRI for a metabolic profile."
          hints:
            readOnly: true
            destructive: false
            idempotent: false
          call: "meal-planner-meal-planner.calculateRecommendedIntake"
          with:
            app_id: "tools.app_id"
            body: "tools.body"
          outputParameters:
            - type: object
              mapping: "$."
        - name: "lookup-recipes-by-uri"
          description: "Lookup recipes by URI."
          hints:
            readOnly: true
            destructive: false
            idempotent: true
          call: "meal-planner-meal-planner.lookupRecipesByUri"
          with:
            type: "tools.type"
            uri: "tools.uri"
          outputParameters:
            - type: object
              mapping: "$."
        - name: "create-shopping-list"
          description: "Create shopping list from total meal quantities."
          hints:
            readOnly: false
            destructive: false
            idempotent: false
          call: "meal-planner-meal-planner.createShoppingList"
          with:
            body: "tools.body"
          outputParameters:
            - type: object
              mapping: "$."