Starbucks · Capability

Starbucks Food Service

Unified capability for Starbucks food service workflows including menu discovery, store location, loyalty management, and mobile ordering. Enables partner applications to provide full Starbucks experiences covering menu browsing, store finder, rewards tracking, and order placement.

Run with Naftiko StarbucksFood ServiceCoffeeMobile OrderingLoyaltyStore Locator

What You Can Do

GET
List menu categories — List all available Starbucks menu categories
/v1/menu/categories
GET
List menu items — List menu items in a category with pricing and options
/v1/menu/categories/{categoryId}/items
GET
Get menu item — Get full menu item details including nutrition and customization
/v1/menu/items/{itemId}
GET
List stores — Search for Starbucks stores near a location
/v1/stores
GET
Get store — Get Starbucks store details including hours and amenities
/v1/stores/{storeId}
GET
Get loyalty account — Get loyalty account star balance and tier
/v1/loyalty/accounts/{accountId}
GET
List loyalty transactions — List star earning and redemption transactions
/v1/loyalty/accounts/{accountId}/transactions
POST
Create order — Place a new Starbucks mobile order
/v1/orders
GET
Get order — Get order status and estimated ready time
/v1/orders/{orderId}

MCP Tools

list-menu-categories

Browse all Starbucks menu categories including Hot Coffees, Cold Coffees, Teas, Refreshers, Food, and Merchandise

read-only
list-menu-items

Get all items in a Starbucks menu category with descriptions, pricing, and sizes

read-only
get-menu-item

Get complete details for a Starbucks menu item including nutrition facts, allergens, and customization options

read-only
search-stores

Find Starbucks locations near specified coordinates or address, with filtering by radius

read-only
get-store-details

Get Starbucks store hours, amenities, drive-thru availability, and mobile ordering status

read-only idempotent
get-loyalty-balance

Check Starbucks Rewards star balance, membership tier (Welcome/Green/Gold), and account status

read-only idempotent
list-reward-transactions

View history of Starbucks star earnings and redemptions for a Rewards account

read-only idempotent
place-order

Submit a Starbucks mobile order with customized items at a specified store, optionally applying loyalty rewards

track-order

Check the current status and estimated pickup time for a Starbucks mobile order

read-only idempotent

Capability Spec

food-service.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Starbucks Food Service
  description: Unified capability for Starbucks food service workflows including menu discovery, store location, loyalty management,
    and mobile ordering. Enables partner applications to provide full Starbucks experiences covering menu browsing, store
    finder, rewards tracking, and order placement.
  tags:
  - Starbucks
  - Food Service
  - Coffee
  - Mobile Ordering
  - Loyalty
  - Store Locator
  created: '2026-05-02'
  modified: '2026-05-06'
binds:
- namespace: env
  keys:
    STARBUCKS_API_TOKEN: STARBUCKS_API_TOKEN
capability:
  consumes:
  - type: http
    namespace: starbucks
    baseUri: https://api.starbucks.com
    description: Starbucks API for menu, stores, loyalty, and ordering
    authentication:
      type: bearer
      token: '{{STARBUCKS_API_TOKEN}}'
    resources:
    - name: status
      path: /status
      description: API health and status
      operations:
      - name: get-status
        method: GET
        description: Get API status
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: menu-categories
      path: /v1/menu/categories
      description: Menu category listing
      operations:
      - name: list-menu-categories
        method: GET
        description: List all menu categories
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: menu-items
      path: /v1/menu/categories/{categoryId}/items
      description: Menu items within a category
      operations:
      - name: list-menu-items
        method: GET
        description: List menu items for a category
        inputParameters:
        - name: categoryId
          in: path
          type: string
          required: true
          description: Menu category identifier
        - name: limit
          in: query
          type: integer
          required: false
          description: Maximum results to return
        - name: offset
          in: query
          type: integer
          required: false
          description: Pagination offset
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: menu-item
      path: /v1/menu/items/{itemId}
      description: Individual menu item details
      operations:
      - name: get-menu-item
        method: GET
        description: Get detailed menu item information
        inputParameters:
        - name: itemId
          in: path
          type: string
          required: true
          description: Menu item identifier
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: stores
      path: /v1/stores
      description: Store location search
      operations:
      - name: list-stores
        method: GET
        description: Search and list Starbucks store locations
        inputParameters:
        - name: latitude
          in: query
          type: number
          required: false
          description: Latitude for location search
        - name: longitude
          in: query
          type: number
          required: false
          description: Longitude for location search
        - name: query
          in: query
          type: string
          required: false
          description: Text search query for location
        - name: radius
          in: query
          type: integer
          required: false
          description: Search radius in miles
        - name: limit
          in: query
          type: integer
          required: false
          description: Maximum results to return
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: store
      path: /v1/stores/{storeId}
      description: Individual store details
      operations:
      - name: get-store
        method: GET
        description: Get store details and hours
        inputParameters:
        - name: storeId
          in: path
          type: string
          required: true
          description: Store identifier
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: loyalty-account
      path: /v1/loyalty/accounts/{accountId}
      description: Loyalty account management
      operations:
      - name: get-loyalty-account
        method: GET
        description: Get loyalty account star balance and tier
        inputParameters:
        - name: accountId
          in: path
          type: string
          required: true
          description: Loyalty account identifier
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: loyalty-transactions
      path: /v1/loyalty/accounts/{accountId}/transactions
      description: Loyalty transaction history
      operations:
      - name: list-loyalty-transactions
        method: GET
        description: List star earning and redemption transactions
        inputParameters:
        - name: accountId
          in: path
          type: string
          required: true
          description: Loyalty account identifier
        - name: limit
          in: query
          type: integer
          required: false
          description: Maximum results to return
        - name: offset
          in: query
          type: integer
          required: false
          description: Pagination offset
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: orders
      path: /v1/orders
      description: Order management
      operations:
      - name: create-order
        method: POST
        description: Create a new Starbucks order
        body:
          type: json
          data:
            storeId: '{{tools.storeId}}'
            items: '{{tools.items}}'
            loyaltyAccountId: '{{tools.loyaltyAccountId}}'
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: order
      path: /v1/orders/{orderId}
      description: Individual order status
      operations:
      - name: get-order
        method: GET
        description: Get order status and details
        inputParameters:
        - name: orderId
          in: path
          type: string
          required: true
          description: Order identifier
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
  exposes:
  - type: rest
    port: 8080
    namespace: starbucks-food-service-api
    description: Unified REST API for Starbucks food service workflows.
    resources:
    - path: /v1/menu/categories
      name: menu-categories
      description: Browse Starbucks menu categories
      operations:
      - method: GET
        name: list-menu-categories
        description: List all available Starbucks menu categories
        call: starbucks.list-menu-categories
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/menu/categories/{categoryId}/items
      name: menu-items
      description: Browse items within a menu category
      operations:
      - method: GET
        name: list-menu-items
        description: List menu items in a category with pricing and options
        call: starbucks.list-menu-items
        with:
          categoryId: rest.categoryId
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/menu/items/{itemId}
      name: menu-item
      description: Get detailed menu item information
      operations:
      - method: GET
        name: get-menu-item
        description: Get full menu item details including nutrition and customization
        call: starbucks.get-menu-item
        with:
          itemId: rest.itemId
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/stores
      name: stores
      description: Find Starbucks store locations
      operations:
      - method: GET
        name: list-stores
        description: Search for Starbucks stores near a location
        call: starbucks.list-stores
        with:
          latitude: rest.latitude
          longitude: rest.longitude
          query: rest.query
          radius: rest.radius
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/stores/{storeId}
      name: store
      description: Get store details
      operations:
      - method: GET
        name: get-store
        description: Get Starbucks store details including hours and amenities
        call: starbucks.get-store
        with:
          storeId: rest.storeId
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/loyalty/accounts/{accountId}
      name: loyalty-account
      description: Manage Starbucks Rewards account
      operations:
      - method: GET
        name: get-loyalty-account
        description: Get loyalty account star balance and tier
        call: starbucks.get-loyalty-account
        with:
          accountId: rest.accountId
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/loyalty/accounts/{accountId}/transactions
      name: loyalty-transactions
      description: View loyalty transaction history
      operations:
      - method: GET
        name: list-loyalty-transactions
        description: List star earning and redemption transactions
        call: starbucks.list-loyalty-transactions
        with:
          accountId: rest.accountId
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/orders
      name: orders
      description: Mobile order management
      operations:
      - method: POST
        name: create-order
        description: Place a new Starbucks mobile order
        call: starbucks.create-order
        with:
          storeId: rest.storeId
          items: rest.items
          loyaltyAccountId: rest.loyaltyAccountId
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/orders/{orderId}
      name: order
      description: Track an order
      operations:
      - method: GET
        name: get-order
        description: Get order status and estimated ready time
        call: starbucks.get-order
        with:
          orderId: rest.orderId
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    port: 9080
    namespace: starbucks-food-service-mcp
    transport: http
    description: MCP server for AI-assisted Starbucks food service workflows.
    tools:
    - name: list-menu-categories
      description: Browse all Starbucks menu categories including Hot Coffees, Cold Coffees, Teas, Refreshers, Food, and Merchandise
      hints:
        readOnly: true
        openWorld: true
      call: starbucks.list-menu-categories
      outputParameters:
      - type: object
        mapping: $.
    - name: list-menu-items
      description: Get all items in a Starbucks menu category with descriptions, pricing, and sizes
      hints:
        readOnly: true
        openWorld: true
      call: starbucks.list-menu-items
      with:
        categoryId: tools.categoryId
        limit: tools.limit
      outputParameters:
      - type: object
        mapping: $.
    - name: get-menu-item
      description: Get complete details for a Starbucks menu item including nutrition facts, allergens, and customization
        options
      hints:
        readOnly: true
        openWorld: true
      call: starbucks.get-menu-item
      with:
        itemId: tools.itemId
      outputParameters:
      - type: object
        mapping: $.
    - name: search-stores
      description: Find Starbucks locations near specified coordinates or address, with filtering by radius
      hints:
        readOnly: true
        openWorld: true
      call: starbucks.list-stores
      with:
        latitude: tools.latitude
        longitude: tools.longitude
        query: tools.query
        radius: tools.radius
        limit: tools.limit
      outputParameters:
      - type: object
        mapping: $.
    - name: get-store-details
      description: Get Starbucks store hours, amenities, drive-thru availability, and mobile ordering status
      hints:
        readOnly: true
        idempotent: true
      call: starbucks.get-store
      with:
        storeId: tools.storeId
      outputParameters:
      - type: object
        mapping: $.
    - name: get-loyalty-balance
      description: Check Starbucks Rewards star balance, membership tier (Welcome/Green/Gold), and account status
      hints:
        readOnly: true
        idempotent: true
      call: starbucks.get-loyalty-account
      with:
        accountId: tools.accountId
      outputParameters:
      - type: object
        mapping: $.
    - name: list-reward-transactions
      description: View history of Starbucks star earnings and redemptions for a Rewards account
      hints:
        readOnly: true
        idempotent: true
      call: starbucks.list-loyalty-transactions
      with:
        accountId: tools.accountId
        limit: tools.limit
      outputParameters:
      - type: object
        mapping: $.
    - name: place-order
      description: Submit a Starbucks mobile order with customized items at a specified store, optionally applying loyalty
        rewards
      hints:
        readOnly: false
        destructive: false
      call: starbucks.create-order
      with:
        storeId: tools.storeId
        items: tools.items
        loyaltyAccountId: tools.loyaltyAccountId
        redemptionStars: tools.redemptionStars
      outputParameters:
      - type: object
        mapping: $.
    - name: track-order
      description: Check the current status and estimated pickup time for a Starbucks mobile order
      hints:
        readOnly: true
        idempotent: true
      call: starbucks.get-order
      with:
        orderId: tools.orderId
      outputParameters:
      - type: object
        mapping: $.