American Eagle Outfitters Capabilities

Naftiko 0.5 capability definitions for American Eagle Outfitters - 100 capabilities showing integration workflows and service orchestrations.

Sort
Expand

When a BigCommerce cart is abandoned, triggers a recovery email via Adobe Campaign with a personalized offer and logs the attempt in Google Sheets.

naftiko: "0.5"
info:
  label: "Abandoned Cart Recovery Pipeline"
  description: "When a BigCommerce cart is abandoned, triggers a recovery email via Adobe Campaign with a personalized offer and logs the attempt in Google Sheets."
  tags:
    - e-commerce
    - marketing
    - bigcommerce
    - adobe-campaign
    - google-sheets
capability:
  exposes:
    - type: mcp
      namespace: cart-recovery
      port: 8080
      tools:
        - name: recover-abandoned-cart
          description: "Send a personalized cart recovery email and track the outreach."
          inputParameters:
            - name: cart_id
              in: body
              type: string
              description: "BigCommerce abandoned cart ID."
            - name: customer_email
              in: body
              type: string
              description: "Customer email."
            - name: offer_code
              in: body
              type: string
              description: "Offer code to include."
          steps:
            - name: get-cart
              type: call
              call: "bigcommerce.get-abandoned-cart"
              with:
                cart_id: "{{cart_id}}"
            - name: send-recovery
              type: call
              call: "adobe-campaign.send-transactional"
              with:
                template: "cart_recovery"
                recipient_email: "{{customer_email}}"
                offer_code: "{{offer_code}}"
                cart_total: "{{get-cart.cart_amount}}"
            - name: log-attempt
              type: call
              call: "gsheets.append-row"
              with:
                spreadsheet_id: "aeo_cart_recovery"
                range: "Attempts!A:D"
                values:
                  - "{{cart_id}}"
                  - "{{customer_email}}"
                  - "{{offer_code}}"
                  - "sent"
  consumes:
    - type: http
      namespace: bigcommerce
      baseUri: "https://api.bigcommerce.com/stores/ae-outfitters/v3"
      authentication:
        type: bearer
        token: "$secrets.bigcommerce_token"
      resources:
        - name: abandoned-carts
          path: "/abandoned-carts/{{cart_id}}"
          inputParameters:
            - name: cart_id
              in: path
          operations:
            - name: get-abandoned-cart
              method: GET
    - type: http
      namespace: adobe-campaign
      baseUri: "https://mc.adobe.io/ae-outfitters/campaign"
      authentication:
        type: bearer
        token: "$secrets.adobe_campaign_token"
      resources:
        - name: transactional
          path: "/profileAndServicesExt/transactionalEmail"
          operations:
            - name: send-transactional
              method: POST
    - type: http
      namespace: gsheets
      baseUri: "https://sheets.googleapis.com/v4/spreadsheets"
      authentication:
        type: bearer
        token: "$secrets.google_sheets_token"
      resources:
        - name: values
          path: "/{{spreadsheet_id}}/values/{{range}}:append"
          inputParameters:
            - name: spreadsheet_id
              in: path
            - name: range
              in: path
          operations:
            - name: append-row
              method: POST

Collects access entitlements, routes for review, revokes expired access, and creates audit records.

naftiko: "0.5"
info:
  label: "Access Review Certification Pipeline"
  description: "Collects access entitlements, routes for review, revokes expired access, and creates audit records."
  tags:
    - security
    - okta
    - servicenow
    - slack
capability:
  exposes:
    - type: mcp
      namespace: security
      port: 8080
      tools:
        - name: access_review_certification_pipeline
          description: "Orchestrate access review certification pipeline workflow."
          inputParameters:
            - name: resource_id
              in: body
              type: string
              description: "Primary resource identifier." 
          steps:
            - name: get-okta
              type: call
              call: "okta.get-resource"
              with:
                resource_id: "{{resource_id}}"
            - name: process-servicenow
              type: call
              call: "servicenow.process-resource"
              with:
                data: "{{get-okta.result}}"
            - name: create-slack
              type: call
              call: "slack.create-resource"
              with:
                channel: "{{notification_channel}}"
                text: "Access Review Certification Pipeline step 3 complete."

  consumes:
    - type: http
      namespace: okta
      baseUri: "https://american-eagle-outfitters.okta.com/api/v1"
      authentication:
        type: apiKey
        key: "$secrets.okta_api_token"
        header: "Authorization" 
      resources:
        - name: resources
          path: "/resources/{{resource_id}}"
          operations:
            - name: okta-op
              method: POST
    - type: http
      namespace: servicenow
      baseUri: "https://american-eagle-outfitters.service-now.com/api/now"
      authentication:
        type: basic
        username: "$secrets.servicenow_user"
        password: "$secrets.servicenow_password" 
      resources:
        - name: resources
          path: "/resources/{{resource_id}}"
          operations:
            - name: servicenow-op
              method: POST
    - type: http
      namespace: slack
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token" 
      resources:
        - name: resources
          path: "/resources/{{resource_id}}"
          operations:
            - name: slack-op
              method: POST

Pulls conversion funnel data from Adobe Analytics for the AEO e-commerce site including add-to-cart, checkout initiation, and purchase completion rates.

naftiko: "0.5"
info:
  label: "Adobe Analytics Conversion Funnel"
  description: "Pulls conversion funnel data from Adobe Analytics for the AEO e-commerce site including add-to-cart, checkout initiation, and purchase completion rates."
  tags:
    - analytics
    - e-commerce
    - adobe-analytics
capability:
  exposes:
    - type: mcp
      namespace: web-analytics
      port: 8080
      tools:
        - name: get-conversion-funnel
          description: "Retrieve e-commerce conversion funnel metrics from Adobe Analytics."
          inputParameters:
            - name: report_suite_id
              in: body
              type: string
              description: "Adobe Analytics report suite ID."
            - name: date_range
              in: body
              type: string
              description: "Date range in YYYY-MM-DD/YYYY-MM-DD format."
          call: "adobe-analytics.get-report"
          with:
            rsid: "{{report_suite_id}}"
            date_range: "{{date_range}}"
            metrics: "cartAdditions,checkoutInitiations,orders"
          outputParameters:
            - name: cart_additions
              type: number
              mapping: "$.report.data.totals[0]"
            - name: checkout_initiations
              type: number
              mapping: "$.report.data.totals[1]"
            - name: orders
              type: number
              mapping: "$.report.data.totals[2]"
  consumes:
    - type: http
      namespace: adobe-analytics
      baseUri: "https://analytics.adobe.io/api/ae-outfitters"
      authentication:
        type: bearer
        token: "$secrets.adobe_analytics_token"
      inputParameters:
        - name: x-api-key
          in: header
          value: "$secrets.adobe_api_key"
      resources:
        - name: reports
          path: "/reports"
          operations:
            - name: get-report
              method: POST

Pulls engagement metrics for the Aerie sub-brand Instagram account and compares them against the main AEO account, posting a weekly comparison to the brand team Teams channel.

naftiko: "0.5"
info:
  label: "Aerie Brand Instagram Performance Tracker"
  description: "Pulls engagement metrics for the Aerie sub-brand Instagram account and compares them against the main AEO account, posting a weekly comparison to the brand team Teams channel."
  tags:
    - marketing
    - social-media
    - instagram
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: brand-social
      port: 8080
      tools:
        - name: compare-brand-engagement
          description: "Compare Instagram engagement between the AEO and Aerie accounts and report to the brand team."
          inputParameters:
            - name: period
              in: body
              type: string
              description: "Reporting period."
          steps:
            - name: get-aeo-metrics
              type: call
              call: "instagram.get-account-insights"
              with:
                account_id: "aeo_main"
                period: "{{period}}"
            - name: get-aerie-metrics
              type: call
              call: "instagram.get-account-insights"
              with:
                account_id: "aerie_official"
                period: "{{period}}"
            - name: post-comparison
              type: call
              call: "msteams.send-message"
              with:
                channel_id: "brand_team"
                text: "Weekly IG comparison: AEO reach {{get-aeo-metrics.reach}}, engagement {{get-aeo-metrics.engagement}}. Aerie reach {{get-aerie-metrics.reach}}, engagement {{get-aerie-metrics.engagement}}."
  consumes:
    - type: http
      namespace: instagram
      baseUri: "https://graph.facebook.com/v18.0"
      authentication:
        type: bearer
        token: "$secrets.instagram_token"
      resources:
        - name: insights
          path: "/{{account_id}}/insights"
          inputParameters:
            - name: account_id
              in: path
          operations:
            - name: get-account-insights
              method: GET
    - type: http
      namespace: msteams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: channel-messages
          path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
          inputParameters:
            - name: channel_id
              in: path
          operations:
            - name: send-message
              method: POST

Retrieves the Real Rewards loyalty points balance and tier status for a customer from the Salesforce loyalty module.

naftiko: "0.5"
info:
  label: "Aerie Loyalty Points Balance"
  description: "Retrieves the Real Rewards loyalty points balance and tier status for a customer from the Salesforce loyalty module."
  tags:
    - retail
    - loyalty
    - salesforce
    - customer-service
capability:
  exposes:
    - type: mcp
      namespace: loyalty
      port: 8080
      tools:
        - name: get-rewards-balance
          description: "Look up a Real Rewards member loyalty balance and tier by contact ID."
          inputParameters:
            - name: contact_id
              in: body
              type: string
              description: "Salesforce contact ID."
          call: "salesforce.get-loyalty"
          with:
            contact_id: "{{contact_id}}"
          outputParameters:
            - name: points_balance
              type: number
              mapping: "$.Loyalty_Points__c"
            - name: tier
              type: string
              mapping: "$.Loyalty_Tier__c"
            - name: rewards_available
              type: number
              mapping: "$.Available_Rewards__c"
  consumes:
    - type: http
      namespace: salesforce
      baseUri: "https://ae.my.salesforce.com/services/data/v59.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token"
      resources:
        - name: loyalty
          path: "/sobjects/Contact/{{contact_id}}?fields=Loyalty_Points__c,Loyalty_Tier__c,Available_Rewards__c"
          inputParameters:
            - name: contact_id
              in: path
          operations:
            - name: get-loyalty
              method: GET

Retrieves current monitoring alert status. Used by American Eagle Outfitters teams.

naftiko: "0.5"
info:
  label: "American Eagle Outfitters Alert Status Check"
  description: "Retrieves current monitoring alert status. Used by American Eagle Outfitters teams."
  tags:
    - retail
    - grafana
capability:
  exposes:
    - type: mcp
      namespace: grafana
      port: 8080
      tools:
        - name: get-alert_status_check
          description: "Retrieves current monitoring alert status. Used by American Eagle Outfitters teams."
          inputParameters:
            - name: alert_id
              in: body
              type: string
              description: "The alert_id to look up." 
          call: "grafana.get-alert_id"
          with:
            alert_id: "{{alert_id}}"
  consumes:
    - type: http
      namespace: grafana
      baseUri: "https://american-eagle-outfitters-grafana.com/api"
      authentication:
        type: bearer
        token: "$secrets.grafana_api_key" 
      resources:
        - name: resources
          path: "/resources/{{resource_id}}"
          operations:
            - name: american_alert_status_check
              method: GET

Checks availability of an API endpoint. Used by American Eagle Outfitters teams.

naftiko: "0.5"
info:
  label: "American Eagle Outfitters API Endpoint Status"
  description: "Checks availability of an API endpoint. Used by American Eagle Outfitters teams."
  tags:
    - retail
    - slack
capability:
  exposes:
    - type: mcp
      namespace: slack
      port: 8080
      tools:
        - name: get-api_endpoint_status
          description: "Checks availability of an API endpoint. Used by American Eagle Outfitters teams."
          inputParameters:
            - name: endpoint_url
              in: body
              type: string
              description: "The endpoint_url to look up." 
          call: "slack.get-endpoint_url"
          with:
            endpoint_url: "{{endpoint_url}}"
  consumes:
    - type: http
      namespace: slack
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token" 
      resources:
        - name: resources
          path: "/resources/{{resource_id}}"
          operations:
            - name: american_api_endpoint_status
              method: GET

Retrieves compliance check status. Used by American Eagle Outfitters teams.

naftiko: "0.5"
info:
  label: "American Eagle Outfitters Compliance Check Status"
  description: "Retrieves compliance check status. Used by American Eagle Outfitters teams."
  tags:
    - retail
    - zendesk
capability:
  exposes:
    - type: mcp
      namespace: zendesk
      port: 8080
      tools:
        - name: get-compliance_check_status
          description: "Retrieves compliance check status. Used by American Eagle Outfitters teams."
          inputParameters:
            - name: check_id
              in: body
              type: string
              description: "The check_id to look up." 
          call: "zendesk.get-check_id"
          with:
            check_id: "{{check_id}}"
  consumes:
    - type: http
      namespace: zendesk
      baseUri: "https://american-eagle-outfitters.zendesk.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.zendesk_token" 
      resources:
        - name: resources
          path: "/resources/{{resource_id}}"
          operations:
            - name: american_compliance_check_stat
              method: GET

Queries cost and spending data. Used by American Eagle Outfitters teams.

naftiko: "0.5"
info:
  label: "American Eagle Outfitters Cost Report Query"
  description: "Queries cost and spending data. Used by American Eagle Outfitters teams."
  tags:
    - retail
    - stripe
capability:
  exposes:
    - type: mcp
      namespace: stripe
      port: 8080
      tools:
        - name: get-cost_report_query
          description: "Queries cost and spending data. Used by American Eagle Outfitters teams."
          inputParameters:
            - name: cost_center
              in: body
              type: string
              description: "The cost_center to look up." 
          call: "stripe.get-cost_center"
          with:
            cost_center: "{{cost_center}}"
  consumes:
    - type: http
      namespace: stripe
      baseUri: "https://api.stripe.com/v1"
      authentication:
        type: bearer
        token: "$secrets.stripe_secret_key" 
      resources:
        - name: resources
          path: "/resources/{{resource_id}}"
          operations:
            - name: american_cost_report_query
              method: GET

Analyzes customer behavior, predicts churn risk, triggers retention campaigns, and tracks results.

naftiko: "0.5"
info:
  label: "Customer Churn Prediction Pipeline"
  description: "Analyzes customer behavior, predicts churn risk, triggers retention campaigns, and tracks results."
  tags:
    - analytics
    - snowflake
    - hubspot
    - slack
capability:
  exposes:
    - type: mcp
      namespace: analytics
      port: 8080
      tools:
        - name: american_customer_churn_prediction_pipel
          description: "Orchestrate customer churn prediction pipeline workflow."
          inputParameters:
            - name: resource_id
              in: body
              type: string
              description: "Primary resource identifier." 
          steps:
            - name: get-snowflake
              type: call
              call: "snowflake.get-resource"
              with:
                resource_id: "{{resource_id}}"
            - name: process-hubspot
              type: call
              call: "hubspot.process-resource"
              with:
                data: "{{get-snowflake.result}}"
            - name: create-slack
              type: call
              call: "slack.create-resource"
              with:
                channel: "{{notification_channel}}"
                text: "Customer Churn Prediction Pipeline step 3 complete."

  consumes:
    - type: http
      namespace: snowflake
      baseUri: "https://american-eagle-outfitters.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token" 
      resources:
        - name: resources
          path: "/resources/{{resource_id}}"
          operations:
            - name: snowflake-op
              method: POST
    - type: http
      namespace: hubspot
      baseUri: "https://api.hubapi.com"
      authentication:
        type: bearer
        token: "$secrets.hubspot_token" 
      resources:
        - name: resources
          path: "/resources/{{resource_id}}"
          operations:
            - name: hubspot-op
              method: POST
    - type: http
      namespace: slack
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token" 
      resources:
        - name: resources
          path: "/resources/{{resource_id}}"
          operations:
            - name: slack-op
              method: POST

Executes a read-only analytics query. Used by American Eagle Outfitters teams.

naftiko: "0.5"
info:
  label: "American Eagle Outfitters Database Query Runner"
  description: "Executes a read-only analytics query. Used by American Eagle Outfitters teams."
  tags:
    - retail
    - confluence
capability:
  exposes:
    - type: mcp
      namespace: confluence
      port: 8080
      tools:
        - name: get-database_query_runner
          description: "Executes a read-only analytics query. Used by American Eagle Outfitters teams."
          inputParameters:
            - name: sql_query
              in: body
              type: string
              description: "The sql_query to look up." 
          call: "confluence.get-sql_query"
          with:
            sql_query: "{{sql_query}}"
  consumes:
    - type: http
      namespace: confluence
      baseUri: "https://american-eagle-outfitters.atlassian.net/wiki/rest/api"
      authentication:
        type: basic
        username: "$secrets.confluence_user"
        password: "$secrets.confluence_api_token" 
      resources:
        - name: resources
          path: "/resources/{{resource_id}}"
          operations:
            - name: american_database_query_runner
              method: GET

Checks status of a recent deployment. Used by American Eagle Outfitters teams.

naftiko: "0.5"
info:
  label: "American Eagle Outfitters Deployment Status Check"
  description: "Checks status of a recent deployment. Used by American Eagle Outfitters teams."
  tags:
    - retail
    - elasticsearch
capability:
  exposes:
    - type: mcp
      namespace: elasticsearc
      port: 8080
      tools:
        - name: get-deployment_status_check
          description: "Checks status of a recent deployment. Used by American Eagle Outfitters teams."
          inputParameters:
            - name: deployment_id
              in: body
              type: string
              description: "The deployment_id to look up." 
          call: "elasticsearch.get-deployment_id"
          with:
            deployment_id: "{{deployment_id}}"
  consumes:
    - type: http
      namespace: elasticsearch
      baseUri: "https://american-eagle-outfitters-es.com:9200"
      authentication:
        type: bearer
        token: "$secrets.elasticsearch_token" 
      resources:
        - name: resources
          path: "/resources/{{resource_id}}"
          operations:
            - name: american_deployment_status_che
              method: GET

Retrieves a document from knowledge management. Used by American Eagle Outfitters teams.

naftiko: "0.5"
info:
  label: "American Eagle Outfitters Document Retrieval"
  description: "Retrieves a document from knowledge management. Used by American Eagle Outfitters teams."
  tags:
    - retail
    - hubspot
capability:
  exposes:
    - type: mcp
      namespace: hubspot
      port: 8080
      tools:
        - name: get-document_retrieval
          description: "Retrieves a document from knowledge management. Used by American Eagle Outfitters teams."
          inputParameters:
            - name: document_id
              in: body
              type: string
              description: "The document_id to look up." 
          call: "hubspot.get-document_id"
          with:
            document_id: "{{document_id}}"
  consumes:
    - type: http
      namespace: hubspot
      baseUri: "https://api.hubapi.com"
      authentication:
        type: bearer
        token: "$secrets.hubspot_token" 
      resources:
        - name: resources
          path: "/resources/{{resource_id}}"
          operations:
            - name: american_document_retrieval
              method: GET

Provisions new employee accounts, assigns training, creates IT tickets, and notifies managers.

naftiko: "0.5"
info:
  label: "Employee Onboarding Automation Pipeline"
  description: "Provisions new employee accounts, assigns training, creates IT tickets, and notifies managers."
  tags:
    - hr
    - workday
    - servicenow
    - slack
capability:
  exposes:
    - type: mcp
      namespace: hr
      port: 8080
      tools:
        - name: american_employee_onboarding_automation
          description: "Orchestrate employee onboarding automation pipeline workflow."
          inputParameters:
            - name: resource_id
              in: body
              type: string
              description: "Primary resource identifier." 
          steps:
            - name: get-salesforce
              type: call
              call: "salesforce.get-resource"
              with:
                resource_id: "{{resource_id}}"
            - name: process-servicenow
              type: call
              call: "servicenow.process-resource"
              with:
                data: "{{get-salesforce.result}}"
            - name: create-slack
              type: call
              call: "slack.create-resource"
              with:
                channel: "{{notification_channel}}"
                text: "Employee Onboarding Automation Pipeline step 3 complete."

  consumes:
    - type: http
      namespace: salesforce
      baseUri: "https://american-eagle-outfitters.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token" 
      resources:
        - name: resources
          path: "/resources/{{resource_id}}"
          operations:
            - name: salesforce-op
              method: POST
    - type: http
      namespace: servicenow
      baseUri: "https://american-eagle-outfitters.service-now.com/api/now"
      authentication:
        type: basic
        username: "$secrets.servicenow_user"
        password: "$secrets.servicenow_password" 
      resources:
        - name: resources
          path: "/resources/{{resource_id}}"
          operations:
            - name: servicenow-op
              method: POST
    - type: http
      namespace: slack
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token" 
      resources:
        - name: resources
          path: "/resources/{{resource_id}}"
          operations:
            - name: slack-op
              method: POST

Queries metric values from a monitoring dashboard. Used by American Eagle Outfitters teams.

naftiko: "0.5"
info:
  label: "American Eagle Outfitters Metric Dashboard Query"
  description: "Queries metric values from a monitoring dashboard. Used by American Eagle Outfitters teams."
  tags:
    - retail
    - jira
capability:
  exposes:
    - type: mcp
      namespace: jira
      port: 8080
      tools:
        - name: get-metric_dashboard_query
          description: "Queries metric values from a monitoring dashboard. Used by American Eagle Outfitters teams."
          inputParameters:
            - name: metric_name
              in: body
              type: string
              description: "The metric_name to look up." 
          call: "jira.get-metric_name"
          with:
            metric_name: "{{metric_name}}"
  consumes:
    - type: http
      namespace: jira
      baseUri: "https://american-eagle-outfitters.atlassian.net/rest/api/3"
      authentication:
        type: basic
        username: "$secrets.jira_user"
        password: "$secrets.jira_api_token" 
      resources:
        - name: resources
          path: "/resources/{{resource_id}}"
          operations:
            - name: american_jira_metric_dashboard
              method: GET

Searches application logs for matching patterns. Used by American Eagle Outfitters teams.

naftiko: "0.5"
info:
  label: "American Eagle Outfitters Log Search Query"
  description: "Searches application logs for matching patterns. Used by American Eagle Outfitters teams."
  tags:
    - retail
    - servicenow
capability:
  exposes:
    - type: mcp
      namespace: servicenow
      port: 8080
      tools:
        - name: get-log_search_query
          description: "Searches application logs for matching patterns. Used by American Eagle Outfitters teams."
          inputParameters:
            - name: search_query
              in: body
              type: string
              description: "The search_query to look up." 
          call: "servicenow.get-search_query"
          with:
            search_query: "{{search_query}}"
  consumes:
    - type: http
      namespace: servicenow
      baseUri: "https://american-eagle-outfitters.service-now.com/api/now"
      authentication:
        type: basic
        username: "$secrets.servicenow_user"
        password: "$secrets.servicenow_password" 
      resources:
        - name: resources
          path: "/resources/{{resource_id}}"
          operations:
            - name: american_log_search_query
              method: GET

Queries metric values from a monitoring dashboard. Used by American Eagle Outfitters teams.

naftiko: "0.5"
info:
  label: "American Eagle Outfitters Metric Dashboard Query"
  description: "Queries metric values from a monitoring dashboard. Used by American Eagle Outfitters teams."
  tags:
    - retail
    - jira
capability:
  exposes:
    - type: mcp
      namespace: jira
      port: 8080
      tools:
        - name: get-metric_dashboard_query
          description: "Queries metric values from a monitoring dashboard. Used by American Eagle Outfitters teams."
          inputParameters:
            - name: metric_name
              in: body
              type: string
              description: "The metric_name to look up." 
          call: "jira.get-metric_name"
          with:
            metric_name: "{{metric_name}}"
  consumes:
    - type: http
      namespace: jira
      baseUri: "https://american-eagle-outfitters.atlassian.net/rest/api/3"
      authentication:
        type: basic
        username: "$secrets.jira_user"
        password: "$secrets.jira_api_token" 
      resources:
        - name: resources
          path: "/resources/{{resource_id}}"
          operations:
            - name: american_metric_dashboard_quer
              method: GET

Synchronizes inventory across channels, resolves discrepancies, and updates all systems.

naftiko: "0.5"
info:
  label: "Omnichannel Inventory Sync Pipeline"
  description: "Synchronizes inventory across channels, resolves discrepancies, and updates all systems."
  tags:
    - inventory
    - salesforce
    - servicenow
    - slack
capability:
  exposes:
    - type: mcp
      namespace: inventory
      port: 8080
      tools:
        - name: american_omnichannel_inventory_sync_pipe
          description: "Orchestrate omnichannel inventory sync pipeline workflow."
          inputParameters:
            - name: resource_id
              in: body
              type: string
              description: "Primary resource identifier." 
          steps:
            - name: get-salesforce
              type: call
              call: "salesforce.get-resource"
              with:
                resource_id: "{{resource_id}}"
            - name: process-servicenow
              type: call
              call: "servicenow.process-resource"
              with:
                data: "{{get-salesforce.result}}"
            - name: create-slack
              type: call
              call: "slack.create-resource"
              with:
                channel: "{{notification_channel}}"
                text: "Omnichannel Inventory Sync Pipeline step 3 complete."

  consumes:
    - type: http
      namespace: salesforce
      baseUri: "https://american-eagle-outfitters.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token" 
      resources:
        - name: resources
          path: "/resources/{{resource_id}}"
          operations:
            - name: salesforce-op
              method: POST
    - type: http
      namespace: servicenow
      baseUri: "https://american-eagle-outfitters.service-now.com/api/now"
      authentication:
        type: basic
        username: "$secrets.servicenow_user"
        password: "$secrets.servicenow_password" 
      resources:
        - name: resources
          path: "/resources/{{resource_id}}"
          operations:
            - name: servicenow-op
              method: POST
    - type: http
      namespace: slack
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token" 
      resources:
        - name: resources
          path: "/resources/{{resource_id}}"
          operations:
            - name: slack-op
              method: POST

Checks the current status of a project. Used by American Eagle Outfitters teams.

naftiko: "0.5"
info:
  label: "American Eagle Outfitters Project Status Check"
  description: "Checks the current status of a project. Used by American Eagle Outfitters teams."
  tags:
    - retail
    - datadog
capability:
  exposes:
    - type: mcp
      namespace: datadog
      port: 8080
      tools:
        - name: get-project_status_check
          description: "Checks the current status of a project. Used by American Eagle Outfitters teams."
          inputParameters:
            - name: project_key
              in: body
              type: string
              description: "The project_key to look up." 
          call: "datadog.get-project_key"
          with:
            project_key: "{{project_key}}"
  consumes:
    - type: http
      namespace: datadog
      baseUri: "https://api.datadoghq.com/api/v1"
      authentication:
        type: apiKey
        key: "$secrets.datadog_api_key"
        header: "DD-API-KEY" 
      resources:
        - name: resources
          path: "/resources/{{resource_id}}"
          operations:
            - name: american_project_status_check
              method: GET

Retrieves code repository information. Used by American Eagle Outfitters teams.

naftiko: "0.5"
info:
  label: "American Eagle Outfitters Repository Info Lookup"
  description: "Retrieves code repository information. Used by American Eagle Outfitters teams."
  tags:
    - retail
    - okta
capability:
  exposes:
    - type: mcp
      namespace: okta
      port: 8080
      tools:
        - name: get-repository_info_lookup
          description: "Retrieves code repository information. Used by American Eagle Outfitters teams."
          inputParameters:
            - name: repo_name
              in: body
              type: string
              description: "The repo_name to look up." 
          call: "okta.get-repo_name"
          with:
            repo_name: "{{repo_name}}"
  consumes:
    - type: http
      namespace: okta
      baseUri: "https://american-eagle-outfitters.okta.com/api/v1"
      authentication:
        type: apiKey
        key: "$secrets.okta_api_token"
        header: "Authorization" 
      resources:
        - name: resources
          path: "/resources/{{resource_id}}"
          operations:
            - name: american_repository_info_looku
              method: GET

Checks the health status of a monitored service. Used by American Eagle Outfitters teams.

naftiko: "0.5"
info:
  label: "American Eagle Outfitters Service Health Check"
  description: "Checks the health status of a monitored service. Used by American Eagle Outfitters teams."
  tags:
    - retail
    - salesforce
capability:
  exposes:
    - type: mcp
      namespace: salesforce
      port: 8080
      tools:
        - name: get-service_health_check
          description: "Checks the health status of a monitored service. Used by American Eagle Outfitters teams."
          inputParameters:
            - name: health_target
              in: body
              type: string
              description: "The health_target to look up." 
          call: "salesforce.get-health_target"
          with:
            health_target: "{{health_target}}"
  consumes:
    - type: http
      namespace: salesforce
      baseUri: "https://american-eagle-outfitters.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token" 
      resources:
        - name: resources
          path: "/resources/{{resource_id}}"
          operations:
            - name: american_salesforce_service_he
              method: GET

Runs demand forecast models, generates buy recommendations, and distributes to merchandising teams.

naftiko: "0.5"
info:
  label: "Seasonal Demand Forecasting Pipeline"
  description: "Runs demand forecast models, generates buy recommendations, and distributes to merchandising teams."
  tags:
    - planning
    - snowflake
    - powerbi
    - slack
capability:
  exposes:
    - type: mcp
      namespace: planning
      port: 8080
      tools:
        - name: american_seasonal_demand_forecasting_pip
          description: "Orchestrate seasonal demand forecasting pipeline workflow."
          inputParameters:
            - name: resource_id
              in: body
              type: string
              description: "Primary resource identifier." 
          steps:
            - name: get-snowflake
              type: call
              call: "snowflake.get-resource"
              with:
                resource_id: "{{resource_id}}"
            - name: process-powerbi
              type: call
              call: "powerbi.process-resource"
              with:
                data: "{{get-snowflake.result}}"
            - name: create-slack
              type: call
              call: "slack.create-resource"
              with:
                channel: "{{notification_channel}}"
                text: "Seasonal Demand Forecasting Pipeline step 3 complete."

  consumes:
    - type: http
      namespace: snowflake
      baseUri: "https://american-eagle-outfitters.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token" 
      resources:
        - name: resources
          path: "/resources/{{resource_id}}"
          operations:
            - name: snowflake-op
              method: POST
    - type: http
      namespace: powerbi
      baseUri: "https://api.powerbi.com/v1.0/myorg"
      authentication:
        type: bearer
        token: "$secrets.powerbi_token" 
      resources:
        - name: resources
          path: "/resources/{{resource_id}}"
          operations:
            - name: powerbi-op
              method: POST
    - type: http
      namespace: slack
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token" 
      resources:
        - name: resources
          path: "/resources/{{resource_id}}"
          operations:
            - name: slack-op
              method: POST

Detects security incidents, enriches with context, creates response tickets, and notifies the SOC.

naftiko: "0.5"
info:
  label: "Security Incident Response Pipeline"
  description: "Detects security incidents, enriches with context, creates response tickets, and notifies the SOC."
  tags:
    - security
    - splunk
    - servicenow
    - pagerduty
capability:
  exposes:
    - type: mcp
      namespace: security
      port: 8080
      tools:
        - name: american_security_incident_response_pipe
          description: "Orchestrate security incident response pipeline workflow."
          inputParameters:
            - name: resource_id
              in: body
              type: string
              description: "Primary resource identifier." 
          steps:
            - name: get-salesforce
              type: call
              call: "salesforce.get-resource"
              with:
                resource_id: "{{resource_id}}"
            - name: process-servicenow
              type: call
              call: "servicenow.process-resource"
              with:
                data: "{{get-salesforce.result}}"
            - name: create-jira
              type: call
              call: "jira.create-resource"
              with:
                channel: "{{notification_channel}}"
                text: "Security Incident Response Pipeline step 3 complete."

  consumes:
    - type: http
      namespace: salesforce
      baseUri: "https://american-eagle-outfitters.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token" 
      resources:
        - name: resources
          path: "/resources/{{resource_id}}"
          operations:
            - name: salesforce-op
              method: POST
    - type: http
      namespace: servicenow
      baseUri: "https://american-eagle-outfitters.service-now.com/api/now"
      authentication:
        type: basic
        username: "$secrets.servicenow_user"
        password: "$secrets.servicenow_password" 
      resources:
        - name: resources
          path: "/resources/{{resource_id}}"
          operations:
            - name: servicenow-op
              method: POST
    - type: http
      namespace: jira
      baseUri: "https://american-eagle-outfitters.atlassian.net/rest/api/3"
      authentication:
        type: basic
        username: "$secrets.jira_user"
        password: "$secrets.jira_api_token" 
      resources:
        - name: resources
          path: "/resources/{{resource_id}}"
          operations:
            - name: jira-op
              method: POST

Retrieves vulnerability scan results. Used by American Eagle Outfitters teams.

naftiko: "0.5"
info:
  label: "American Eagle Outfitters Security Scan Results"
  description: "Retrieves vulnerability scan results. Used by American Eagle Outfitters teams."
  tags:
    - retail
    - github
capability:
  exposes:
    - type: mcp
      namespace: github
      port: 8080
      tools:
        - name: get-security_scan_results
          description: "Retrieves vulnerability scan results. Used by American Eagle Outfitters teams."
          inputParameters:
            - name: scan_id
              in: body
              type: string
              description: "The scan_id to look up." 
          call: "github.get-scan_id"
          with:
            scan_id: "{{scan_id}}"
  consumes:
    - type: http
      namespace: github
      baseUri: "https://api.github.com"
      authentication:
        type: bearer
        token: "$secrets.github_token" 
      resources:
        - name: resources
          path: "/resources/{{resource_id}}"
          operations:
            - name: american_security_scan_results
              method: GET

Checks the health status of a monitored service. Used by American Eagle Outfitters teams.

naftiko: "0.5"
info:
  label: "American Eagle Outfitters Service Health Check"
  description: "Checks the health status of a monitored service. Used by American Eagle Outfitters teams."
  tags:
    - retail
    - salesforce
capability:
  exposes:
    - type: mcp
      namespace: salesforce
      port: 8080
      tools:
        - name: get-service_health_check
          description: "Checks the health status of a monitored service. Used by American Eagle Outfitters teams."
          inputParameters:
            - name: health_target
              in: body
              type: string
              description: "The health_target to look up." 
          call: "salesforce.get-health_target"
          with:
            health_target: "{{health_target}}"
  consumes:
    - type: http
      namespace: salesforce
      baseUri: "https://american-eagle-outfitters.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token" 
      resources:
        - name: resources
          path: "/resources/{{resource_id}}"
          operations:
            - name: american_service_health_check
              method: GET

Searches application logs for matching patterns. Used by American Eagle Outfitters teams.

naftiko: "0.5"
info:
  label: "American Eagle Outfitters Log Search Query"
  description: "Searches application logs for matching patterns. Used by American Eagle Outfitters teams."
  tags:
    - retail
    - servicenow
capability:
  exposes:
    - type: mcp
      namespace: servicenow
      port: 8080
      tools:
        - name: get-log_search_query
          description: "Searches application logs for matching patterns. Used by American Eagle Outfitters teams."
          inputParameters:
            - name: search_query
              in: body
              type: string
              description: "The search_query to look up." 
          call: "servicenow.get-search_query"
          with:
            search_query: "{{search_query}}"
  consumes:
    - type: http
      namespace: servicenow
      baseUri: "https://american-eagle-outfitters.service-now.com/api/now"
      authentication:
        type: basic
        username: "$secrets.servicenow_user"
        password: "$secrets.servicenow_password" 
      resources:
        - name: resources
          path: "/resources/{{resource_id}}"
          operations:
            - name: american_servicenow_log_search
              method: GET

Compares store metrics against benchmarks, identifies top and bottom performers, and distributes reports.

naftiko: "0.5"
info:
  label: "Store Performance Benchmark Pipeline"
  description: "Compares store metrics against benchmarks, identifies top and bottom performers, and distributes reports."
  tags:
    - analytics
    - snowflake
    - powerbi
    - slack
capability:
  exposes:
    - type: mcp
      namespace: analytics
      port: 8080
      tools:
        - name: american_store_performance_benchmark_pip
          description: "Orchestrate store performance benchmark pipeline workflow."
          inputParameters:
            - name: resource_id
              in: body
              type: string
              description: "Primary resource identifier." 
          steps:
            - name: get-snowflake
              type: call
              call: "snowflake.get-resource"
              with:
                resource_id: "{{resource_id}}"
            - name: process-powerbi
              type: call
              call: "powerbi.process-resource"
              with:
                data: "{{get-snowflake.result}}"
            - name: create-slack
              type: call
              call: "slack.create-resource"
              with:
                channel: "{{notification_channel}}"
                text: "Store Performance Benchmark Pipeline step 3 complete."

  consumes:
    - type: http
      namespace: snowflake
      baseUri: "https://american-eagle-outfitters.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token" 
      resources:
        - name: resources
          path: "/resources/{{resource_id}}"
          operations:
            - name: snowflake-op
              method: POST
    - type: http
      namespace: powerbi
      baseUri: "https://api.powerbi.com/v1.0/myorg"
      authentication:
        type: bearer
        token: "$secrets.powerbi_token" 
      resources:
        - name: resources
          path: "/resources/{{resource_id}}"
          operations:
            - name: powerbi-op
              method: POST
    - type: http
      namespace: slack
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token" 
      resources:
        - name: resources
          path: "/resources/{{resource_id}}"
          operations:
            - name: slack-op
              method: POST

Retrieves the details of a support ticket. Used by American Eagle Outfitters teams.

naftiko: "0.5"
info:
  label: "American Eagle Outfitters Ticket Details Lookup"
  description: "Retrieves the details of a support ticket. Used by American Eagle Outfitters teams."
  tags:
    - retail
    - powerbi
capability:
  exposes:
    - type: mcp
      namespace: powerbi
      port: 8080
      tools:
        - name: get-ticket_details_lookup
          description: "Retrieves the details of a support ticket. Used by American Eagle Outfitters teams."
          inputParameters:
            - name: ticket_id
              in: body
              type: string
              description: "The ticket_id to look up." 
          call: "powerbi.get-ticket_id"
          with:
            ticket_id: "{{ticket_id}}"
  consumes:
    - type: http
      namespace: powerbi
      baseUri: "https://api.powerbi.com/v1.0/myorg"
      authentication:
        type: bearer
        token: "$secrets.powerbi_token" 
      resources:
        - name: resources
          path: "/resources/{{resource_id}}"
          operations:
            - name: american_ticket_details_lookup
              method: GET

Retrieves user account details from the directory. Used by American Eagle Outfitters teams.

naftiko: "0.5"
info:
  label: "American Eagle Outfitters User Account Lookup"
  description: "Retrieves user account details from the directory. Used by American Eagle Outfitters teams."
  tags:
    - retail
    - snowflake
capability:
  exposes:
    - type: mcp
      namespace: snowflake
      port: 8080
      tools:
        - name: get-user_account_lookup
          description: "Retrieves user account details from the directory. Used by American Eagle Outfitters teams."
          inputParameters:
            - name: user_id
              in: body
              type: string
              description: "The user_id to look up." 
          call: "snowflake.get-user_id"
          with:
            user_id: "{{user_id}}"
  consumes:
    - type: http
      namespace: snowflake
      baseUri: "https://american-eagle-outfitters.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token" 
      resources:
        - name: resources
          path: "/resources/{{resource_id}}"
          operations:
            - name: american_user_account_lookup
              method: GET

Reconciles vendor invoices with POs, flags discrepancies, processes payments, and sends remittances.

naftiko: "0.5"
info:
  label: "Vendor Payment Reconciliation Pipeline"
  description: "Reconciles vendor invoices with POs, flags discrepancies, processes payments, and sends remittances."
  tags:
    - finance
    - servicenow
    - salesforce
    - slack
capability:
  exposes:
    - type: mcp
      namespace: finance
      port: 8080
      tools:
        - name: american_vendor_payment_reconciliation_p
          description: "Orchestrate vendor payment reconciliation pipeline workflow."
          inputParameters:
            - name: resource_id
              in: body
              type: string
              description: "Primary resource identifier." 
          steps:
            - name: get-servicenow
              type: call
              call: "servicenow.get-resource"
              with:
                resource_id: "{{resource_id}}"
            - name: process-salesforce
              type: call
              call: "salesforce.process-resource"
              with:
                data: "{{get-servicenow.result}}"
            - name: create-slack
              type: call
              call: "slack.create-resource"
              with:
                channel: "{{notification_channel}}"
                text: "Vendor Payment Reconciliation Pipeline step 3 complete."

  consumes:
    - type: http
      namespace: servicenow
      baseUri: "https://american-eagle-outfitters.service-now.com/api/now"
      authentication:
        type: basic
        username: "$secrets.servicenow_user"
        password: "$secrets.servicenow_password" 
      resources:
        - name: resources
          path: "/resources/{{resource_id}}"
          operations:
            - name: servicenow-op
              method: POST
    - type: http
      namespace: salesforce
      baseUri: "https://american-eagle-outfitters.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token" 
      resources:
        - name: resources
          path: "/resources/{{resource_id}}"
          operations:
            - name: salesforce-op
              method: POST
    - type: http
      namespace: slack
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token" 
      resources:
        - name: resources
          path: "/resources/{{resource_id}}"
          operations:
            - name: slack-op
              method: POST

Identifies deprecated API consumers, sends migration notices, tracks adoption, and reports progress.

naftiko: "0.5"
info:
  label: "API Deprecation Notice Pipeline"
  description: "Identifies deprecated API consumers, sends migration notices, tracks adoption, and reports progress."
  tags:
    - engineering
    - datadog
    - jira
    - slack
capability:
  exposes:
    - type: mcp
      namespace: engineering
      port: 8080
      tools:
        - name: api_deprecation_notice_pipeline
          description: "Orchestrate api deprecation notice pipeline workflow."
          inputParameters:
            - name: resource_id
              in: body
              type: string
              description: "Primary resource identifier." 
          steps:
            - name: get-datadog
              type: call
              call: "datadog.get-resource"
              with:
                resource_id: "{{resource_id}}"
            - name: process-jira
              type: call
              call: "jira.process-resource"
              with:
                data: "{{get-datadog.result}}"
            - name: create-slack
              type: call
              call: "slack.create-resource"
              with:
                channel: "{{notification_channel}}"
                text: "API Deprecation Notice Pipeline step 3 complete."

  consumes:
    - type: http
      namespace: datadog
      baseUri: "https://api.datadoghq.com/api/v1"
      authentication:
        type: apiKey
        key: "$secrets.datadog_api_key"
        header: "DD-API-KEY" 
      resources:
        - name: resources
          path: "/resources/{{resource_id}}"
          operations:
            - name: datadog-op
              method: POST
    - type: http
      namespace: jira
      baseUri: "https://american-eagle-outfitters.atlassian.net/rest/api/3"
      authentication:
        type: basic
        username: "$secrets.jira_user"
        password: "$secrets.jira_api_token" 
      resources:
        - name: resources
          path: "/resources/{{resource_id}}"
          operations:
            - name: jira-op
              method: POST
    - type: http
      namespace: slack
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token" 
      resources:
        - name: resources
          path: "/resources/{{resource_id}}"
          operations:
            - name: slack-op
              method: POST

Retrieves the latest build status for an Azure DevOps pipeline used by the AEO digital team.

naftiko: "0.5"
info:
  label: "Azure DevOps Build Status Checker"
  description: "Retrieves the latest build status for an Azure DevOps pipeline used by the AEO digital team."
  tags:
    - devops
    - ci-cd
    - azure-devops
capability:
  exposes:
    - type: mcp
      namespace: cicd
      port: 8080
      tools:
        - name: get-build-status
          description: "Check the latest build status for an Azure DevOps pipeline."
          inputParameters:
            - name: pipeline_id
              in: body
              type: string
              description: "Azure DevOps pipeline ID."
          call: "azdo.get-latest-build"
          with:
            pipeline_id: "{{pipeline_id}}"
          outputParameters:
            - name: build_number
              type: string
              mapping: "$.value[0].buildNumber"
            - name: result
              type: string
              mapping: "$.value[0].result"
            - name: finish_time
              type: string
              mapping: "$.value[0].finishTime"
  consumes:
    - type: http
      namespace: azdo
      baseUri: "https://dev.azure.com/ae-outfitters/DigitalCommerce/_apis/build"
      authentication:
        type: basic
        username: ""
        password: "$secrets.azdo_pat"
      resources:
        - name: builds
          path: "/builds?definitions={{pipeline_id}}&$top=1&api-version=7.0"
          inputParameters:
            - name: pipeline_id
              in: path
          operations:
            - name: get-latest-build
              method: GET

Retrieves the current status, shipping details, and payment status for a BigCommerce order by order ID.

naftiko: "0.5"
info:
  label: "BigCommerce Order Status Lookup"
  description: "Retrieves the current status, shipping details, and payment status for a BigCommerce order by order ID."
  tags:
    - retail
    - e-commerce
    - bigcommerce
    - order-status
capability:
  exposes:
    - type: mcp
      namespace: order-tracking
      port: 8080
      tools:
        - name: get-order-status
          description: "Look up a BigCommerce order and return its fulfillment and payment status."
          inputParameters:
            - name: order_id
              in: body
              type: string
              description: "BigCommerce order ID."
          call: "bigcommerce.get-order"
          with:
            order_id: "{{order_id}}"
          outputParameters:
            - name: status
              type: string
              mapping: "$.status"
            - name: shipping_method
              type: string
              mapping: "$.shipping_addresses[0].shipping_method"
            - name: payment_status
              type: string
              mapping: "$.payment_status"
            - name: total
              type: number
              mapping: "$.total_inc_tax"
  consumes:
    - type: http
      namespace: bigcommerce
      baseUri: "https://api.bigcommerce.com/stores/ae-outfitters/v2"
      authentication:
        type: bearer
        token: "$secrets.bigcommerce_token"
      resources:
        - name: orders
          path: "/orders/{{order_id}}"
          inputParameters:
            - name: order_id
              in: path
          operations:
            - name: get-order
              method: GET

Searches the AEO BigCommerce product catalog by keyword and returns matching products with pricing and availability.

naftiko: "0.5"
info:
  label: "BigCommerce Product Search"
  description: "Searches the AEO BigCommerce product catalog by keyword and returns matching products with pricing and availability."
  tags:
    - retail
    - e-commerce
    - bigcommerce
capability:
  exposes:
    - type: mcp
      namespace: catalog
      port: 8080
      tools:
        - name: search-products
          description: "Search the AEO product catalog by keyword."
          inputParameters:
            - name: query
              in: body
              type: string
              description: "Search keyword."
          call: "bigcommerce.search-products"
          with:
            keyword: "{{query}}"
          outputParameters:
            - name: products
              type: array
              mapping: "$.data"
            - name: total
              type: number
              mapping: "$.meta.pagination.total"
  consumes:
    - type: http
      namespace: bigcommerce
      baseUri: "https://api.bigcommerce.com/stores/ae-outfitters/v3"
      authentication:
        type: bearer
        token: "$secrets.bigcommerce_token"
      resources:
        - name: products
          path: "/catalog/products?keyword={{keyword}}"
          inputParameters:
            - name: keyword
              in: path
          operations:
            - name: search-products
              method: GET

Analyzes resource utilization trends, forecasts capacity needs, creates procurement requests, and reports.

naftiko: "0.5"
info:
  label: "Capacity Planning Forecast Pipeline"
  description: "Analyzes resource utilization trends, forecasts capacity needs, creates procurement requests, and reports."
  tags:
    - infrastructure
    - grafana
    - snowflake
    - powerbi
capability:
  exposes:
    - type: mcp
      namespace: infrastructure
      port: 8080
      tools:
        - name: capacity_planning_forecast_pipeline
          description: "Orchestrate capacity planning forecast pipeline workflow."
          inputParameters:
            - name: resource_id
              in: body
              type: string
              description: "Primary resource identifier." 
          steps:
            - name: get-grafana
              type: call
              call: "grafana.get-resource"
              with:
                resource_id: "{{resource_id}}"
            - name: process-snowflake
              type: call
              call: "snowflake.process-resource"
              with:
                data: "{{get-grafana.result}}"
            - name: create-powerbi
              type: call
              call: "powerbi.create-resource"
              with:
                channel: "{{notification_channel}}"
                text: "Capacity Planning Forecast Pipeline step 3 complete."

  consumes:
    - type: http
      namespace: grafana
      baseUri: "https://american-eagle-outfitters-grafana.com/api"
      authentication:
        type: bearer
        token: "$secrets.grafana_api_key" 
      resources:
        - name: resources
          path: "/resources/{{resource_id}}"
          operations:
            - name: grafana-op
              method: POST
    - type: http
      namespace: snowflake
      baseUri: "https://american-eagle-outfitters.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token" 
      resources:
        - name: resources
          path: "/resources/{{resource_id}}"
          operations:
            - name: snowflake-op
              method: POST
    - type: http
      namespace: powerbi
      baseUri: "https://api.powerbi.com/v1.0/myorg"
      authentication:
        type: bearer
        token: "$secrets.powerbi_token" 
      resources:
        - name: resources
          path: "/resources/{{resource_id}}"
          operations:
            - name: powerbi-op
              method: POST

Validates change requests, routes for approval, schedules implementation, and notifies stakeholders.

naftiko: "0.5"
info:
  label: "Change Management Approval Pipeline"
  description: "Validates change requests, routes for approval, schedules implementation, and notifies stakeholders."
  tags:
    - itsm
    - servicenow
    - jira
    - slack
capability:
  exposes:
    - type: mcp
      namespace: itsm
      port: 8080
      tools:
        - name: change_management_approval_pipeline
          description: "Orchestrate change management approval pipeline workflow."
          inputParameters:
            - name: resource_id
              in: body
              type: string
              description: "Primary resource identifier." 
          steps:
            - name: get-servicenow
              type: call
              call: "servicenow.get-resource"
              with:
                resource_id: "{{resource_id}}"
            - name: process-jira
              type: call
              call: "jira.process-resource"
              with:
                data: "{{get-servicenow.result}}"
            - name: create-slack
              type: call
              call: "slack.create-resource"
              with:
                channel: "{{notification_channel}}"
                text: "Change Management Approval Pipeline step 3 complete."

  consumes:
    - type: http
      namespace: servicenow
      baseUri: "https://american-eagle-outfitters.service-now.com/api/now"
      authentication:
        type: basic
        username: "$secrets.servicenow_user"
        password: "$secrets.servicenow_password" 
      resources:
        - name: resources
          path: "/resources/{{resource_id}}"
          operations:
            - name: servicenow-op
              method: POST
    - type: http
      namespace: jira
      baseUri: "https://american-eagle-outfitters.atlassian.net/rest/api/3"
      authentication:
        type: basic
        username: "$secrets.jira_user"
        password: "$secrets.jira_api_token" 
      resources:
        - name: resources
          path: "/resources/{{resource_id}}"
          operations:
            - name: jira-op
              method: POST
    - type: http
      namespace: slack
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token" 
      resources:
        - name: resources
          path: "/resources/{{resource_id}}"
          operations:
            - name: slack-op
              method: POST

Pulls market share and competitive data from Circana for the teen apparel category and returns AEO position and trend.

naftiko: "0.5"
info:
  label: "Circana Market Share Report"
  description: "Pulls market share and competitive data from Circana for the teen apparel category and returns AEO position and trend."
  tags:
    - analytics
    - market-research
    - circana
capability:
  exposes:
    - type: mcp
      namespace: market-intelligence
      port: 8080
      tools:
        - name: get-market-share
          description: "Retrieve market share data for AEO from Circana in the teen apparel category."
          inputParameters:
            - name: category
              in: body
              type: string
              description: "Product category."
            - name: time_period
              in: body
              type: string
              description: "Reporting time period."
          call: "circana.get-market-report"
          with:
            category: "{{category}}"
            time_period: "{{time_period}}"
            brand: "American Eagle Outfitters"
          outputParameters:
            - name: market_share_pct
              type: number
              mapping: "$.brand_data.market_share"
            - name: rank
              type: number
              mapping: "$.brand_data.rank"
            - name: trend
              type: string
              mapping: "$.brand_data.trend_direction"
  consumes:
    - type: http
      namespace: circana
      baseUri: "https://api.circana.com/v2"
      authentication:
        type: bearer
        token: "$secrets.circana_token"
      resources:
        - name: market-reports
          path: "/reports/market-share"
          operations:
            - name: get-market-report
              method: POST

Collects audit events, validates against policies, generates compliance reports, and notifies auditors.

naftiko: "0.5"
info:
  label: "Compliance Audit Trail Pipeline"
  description: "Collects audit events, validates against policies, generates compliance reports, and notifies auditors."
  tags:
    - compliance
    - elasticsearch
    - confluence
    - slack
capability:
  exposes:
    - type: mcp
      namespace: compliance
      port: 8080
      tools:
        - name: compliance_audit_trail_pipeline
          description: "Orchestrate compliance audit trail pipeline workflow."
          inputParameters:
            - name: resource_id
              in: body
              type: string
              description: "Primary resource identifier." 
          steps:
            - name: get-elasticsearch
              type: call
              call: "elasticsearch.get-resource"
              with:
                resource_id: "{{resource_id}}"
            - name: process-confluence
              type: call
              call: "confluence.process-resource"
              with:
                data: "{{get-elasticsearch.result}}"
            - name: create-slack
              type: call
              call: "slack.create-resource"
              with:
                channel: "{{notification_channel}}"
                text: "Compliance Audit Trail Pipeline step 3 complete."

  consumes:
    - type: http
      namespace: elasticsearch
      baseUri: "https://american-eagle-outfitters-es.com:9200"
      authentication:
        type: bearer
        token: "$secrets.elasticsearch_token" 
      resources:
        - name: resources
          path: "/resources/{{resource_id}}"
          operations:
            - name: elasticsearch-op
              method: POST
    - type: http
      namespace: confluence
      baseUri: "https://american-eagle-outfitters.atlassian.net/wiki/rest/api"
      authentication:
        type: basic
        username: "$secrets.confluence_user"
        password: "$secrets.confluence_api_token" 
      resources:
        - name: resources
          path: "/resources/{{resource_id}}"
          operations:
            - name: confluence-op
              method: POST
    - type: http
      namespace: slack
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token" 
      resources:
        - name: resources
          path: "/resources/{{resource_id}}"
          operations:
            - name: slack-op
              method: POST

Searches Confluence for knowledge base articles by keyword and returns matching results with page links.

naftiko: "0.5"
info:
  label: "Confluence Knowledge Article Lookup"
  description: "Searches Confluence for knowledge base articles by keyword and returns matching results with page links."
  tags:
    - collaboration
    - confluence
    - knowledge-management
capability:
  exposes:
    - type: mcp
      namespace: knowledge-base
      port: 8080
      tools:
        - name: search-articles
          description: "Search Confluence for knowledge base articles."
          inputParameters:
            - name: query
              in: body
              type: string
              description: "Search query."
          call: "confluence.search"
          with:
            cql: "text ~ \"{{query}}\" and space = KB"
          outputParameters:
            - name: results
              type: array
              mapping: "$.results"
            - name: total
              type: number
              mapping: "$.totalSize"
  consumes:
    - type: http
      namespace: confluence
      baseUri: "https://ae-outfitters.atlassian.net/wiki/rest/api"
      authentication:
        type: basic
        username: "$secrets.confluence_user"
        password: "$secrets.confluence_api_token"
      resources:
        - name: search
          path: "/search"
          operations:
            - name: search
              method: GET

Tracks spending against budgets, forecasts overruns, creates alerts, and notifies finance leaders.

naftiko: "0.5"
info:
  label: "Cost Center Budget Tracking Pipeline"
  description: "Tracks spending against budgets, forecasts overruns, creates alerts, and notifies finance leaders."
  tags:
    - finance
    - snowflake
    - powerbi
    - slack
capability:
  exposes:
    - type: mcp
      namespace: finance
      port: 8080
      tools:
        - name: cost_center_budget_tracking
          description: "Orchestrate cost center budget tracking pipeline workflow."
          inputParameters:
            - name: resource_id
              in: body
              type: string
              description: "Primary resource identifier." 
          steps:
            - name: get-snowflake
              type: call
              call: "snowflake.get-resource"
              with:
                resource_id: "{{resource_id}}"
            - name: process-powerbi
              type: call
              call: "powerbi.process-resource"
              with:
                data: "{{get-snowflake.result}}"
            - name: create-slack
              type: call
              call: "slack.create-resource"
              with:
                channel: "{{notification_channel}}"
                text: "Cost Center Budget Tracking Pipeline step 3 complete."

  consumes:
    - type: http
      namespace: snowflake
      baseUri: "https://american-eagle-outfitters.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token" 
      resources:
        - name: resources
          path: "/resources/{{resource_id}}"
          operations:
            - name: snowflake-op
              method: POST
    - type: http
      namespace: powerbi
      baseUri: "https://api.powerbi.com/v1.0/myorg"
      authentication:
        type: bearer
        token: "$secrets.powerbi_token" 
      resources:
        - name: resources
          path: "/resources/{{resource_id}}"
          operations:
            - name: powerbi-op
              method: POST
    - type: http
      namespace: slack
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token" 
      resources:
        - name: resources
          path: "/resources/{{resource_id}}"
          operations:
            - name: slack-op
              method: POST

Aggregates customer data from multiple sources, deduplicates, enriches profiles, and syncs to CRM.

naftiko: "0.5"
info:
  label: "Customer 360 Data Sync Pipeline"
  description: "Aggregates customer data from multiple sources, deduplicates, enriches profiles, and syncs to CRM."
  tags:
    - data
    - snowflake
    - salesforce
    - slack
capability:
  exposes:
    - type: mcp
      namespace: data
      port: 8080
      tools:
        - name: customer_360_data_sync_pipeline
          description: "Orchestrate customer 360 data sync pipeline workflow."
          inputParameters:
            - name: resource_id
              in: body
              type: string
              description: "Primary resource identifier." 
          steps:
            - name: get-snowflake
              type: call
              call: "snowflake.get-resource"
              with:
                resource_id: "{{resource_id}}"
            - name: process-salesforce
              type: call
              call: "salesforce.process-resource"
              with:
                data: "{{get-snowflake.result}}"
            - name: create-slack
              type: call
              call: "slack.create-resource"
              with:
                channel: "{{notification_channel}}"
                text: "Customer 360 Data Sync Pipeline step 3 complete."

  consumes:
    - type: http
      namespace: snowflake
      baseUri: "https://american-eagle-outfitters.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token" 
      resources:
        - name: resources
          path: "/resources/{{resource_id}}"
          operations:
            - name: snowflake-op
              method: POST
    - type: http
      namespace: salesforce
      baseUri: "https://american-eagle-outfitters.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token" 
      resources:
        - name: resources
          path: "/resources/{{resource_id}}"
          operations:
            - name: salesforce-op
              method: POST
    - type: http
      namespace: slack
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token" 
      resources:
        - name: resources
          path: "/resources/{{resource_id}}"
          operations:
            - name: slack-op
              method: POST

Analyzes customer behavior, predicts churn risk, triggers retention campaigns, and tracks results.

naftiko: "0.5"
info:
  label: "Customer Churn Prediction Pipeline"
  description: "Analyzes customer behavior, predicts churn risk, triggers retention campaigns, and tracks results."
  tags:
    - analytics
    - snowflake
    - hubspot
    - slack
capability:
  exposes:
    - type: mcp
      namespace: analytics
      port: 8080
      tools:
        - name: customer_churn_prediction_pipeline
          description: "Orchestrate customer churn prediction pipeline workflow."
          inputParameters:
            - name: resource_id
              in: body
              type: string
              description: "Primary resource identifier." 
          steps:
            - name: get-snowflake
              type: call
              call: "snowflake.get-resource"
              with:
                resource_id: "{{resource_id}}"
            - name: process-hubspot
              type: call
              call: "hubspot.process-resource"
              with:
                data: "{{get-snowflake.result}}"
            - name: create-slack
              type: call
              call: "slack.create-resource"
              with:
                channel: "{{notification_channel}}"
                text: "Customer Churn Prediction Pipeline step 3 complete."

  consumes:
    - type: http
      namespace: snowflake
      baseUri: "https://american-eagle-outfitters.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token" 
      resources:
        - name: resources
          path: "/resources/{{resource_id}}"
          operations:
            - name: snowflake-op
              method: POST
    - type: http
      namespace: hubspot
      baseUri: "https://api.hubapi.com"
      authentication:
        type: bearer
        token: "$secrets.hubspot_token" 
      resources:
        - name: resources
          path: "/resources/{{resource_id}}"
          operations:
            - name: hubspot-op
              method: POST
    - type: http
      namespace: slack
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token" 
      resources:
        - name: resources
          path: "/resources/{{resource_id}}"
          operations:
            - name: slack-op
              method: POST

When a return is requested, validates the order in BigCommerce, creates a return merchandise authorization, updates projected inventory, and sends the customer a return label via Adobe Campaign.

naftiko: "0.5"
info:
  label: "Customer Return Authorization Processor"
  description: "When a return is requested, validates the order in BigCommerce, creates a return merchandise authorization, updates projected inventory, and sends the customer a return label via Adobe Campaign."
  tags:
    - retail
    - returns
    - bigcommerce
    - adobe-campaign
capability:
  exposes:
    - type: mcp
      namespace: returns
      port: 8080
      tools:
        - name: process-return
          description: "Process a customer return request across order, inventory, and communications systems."
          inputParameters:
            - name: order_id
              in: body
              type: string
              description: "BigCommerce order ID."
            - name: reason
              in: body
              type: string
              description: "Return reason."
            - name: customer_email
              in: body
              type: string
              description: "Customer email."
          steps:
            - name: get-order
              type: call
              call: "bigcommerce.get-order"
              with:
                order_id: "{{order_id}}"
            - name: create-rma
              type: call
              call: "oms.create-rma"
              with:
                order_id: "{{order_id}}"
                reason: "{{reason}}"
            - name: adjust-inventory
              type: call
              call: "wms.adjust-projected"
              with:
                sku: "{{get-order.products[0].sku}}"
                adjustment: 1
            - name: send-label
              type: call
              call: "adobe-campaign.send-transactional"
              with:
                template: "return_label"
                recipient_email: "{{customer_email}}"
                rma_number: "{{create-rma.rma_number}}"
  consumes:
    - type: http
      namespace: bigcommerce
      baseUri: "https://api.bigcommerce.com/stores/ae-outfitters/v2"
      authentication:
        type: bearer
        token: "$secrets.bigcommerce_token"
      resources:
        - name: orders
          path: "/orders/{{order_id}}"
          inputParameters:
            - name: order_id
              in: path
          operations:
            - name: get-order
              method: GET
    - type: http
      namespace: oms
      baseUri: "https://oms.ae.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.oms_token"
      resources:
        - name: returns
          path: "/returns"
          operations:
            - name: create-rma
              method: POST
    - type: http
      namespace: wms
      baseUri: "https://wms.ae.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.wms_token"
      resources:
        - name: inventory
          path: "/inventory/adjust"
          operations:
            - name: adjust-projected
              method: POST
    - type: http
      namespace: adobe-campaign
      baseUri: "https://mc.adobe.io/ae-outfitters/campaign"
      authentication:
        type: bearer
        token: "$secrets.adobe_campaign_token"
      resources:
        - name: transactional
          path: "/profileAndServicesExt/transactionalEmail"
          operations:
            - name: send-transactional
              method: POST

Creates a ServiceNow incident for a customer complaint, attaches the order context from BigCommerce, and notifies the support team in Microsoft Teams.

naftiko: "0.5"
info:
  label: "Customer Support Ticket Pipeline"
  description: "Creates a ServiceNow incident for a customer complaint, attaches the order context from BigCommerce, and notifies the support team in Microsoft Teams."
  tags:
    - customer-service
    - servicenow
    - bigcommerce
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: customer-support
      port: 8080
      tools:
        - name: create-support-ticket
          description: "Open a support incident with order context and notify the team."
          inputParameters:
            - name: order_id
              in: body
              type: string
              description: "BigCommerce order ID."
            - name: customer_email
              in: body
              type: string
              description: "Customer email."
            - name: issue
              in: body
              type: string
              description: "Issue description."
          steps:
            - name: get-order
              type: call
              call: "bigcommerce.get-order"
              with:
                order_id: "{{order_id}}"
            - name: create-incident
              type: call
              call: "servicenow.create-incident"
              with:
                short_description: "Customer issue: order {{order_id}}"
                description: "{{issue}} | Total: {{get-order.total_inc_tax}} | Customer: {{customer_email}}"
                category: "customer_service"
            - name: notify-team
              type: call
              call: "msteams.send-message"
              with:
                channel_id: "cs_team"
                text: "New ticket {{create-incident.number}} for order {{order_id}}."
  consumes:
    - type: http
      namespace: bigcommerce
      baseUri: "https://api.bigcommerce.com/stores/ae-outfitters/v2"
      authentication:
        type: bearer
        token: "$secrets.bigcommerce_token"
      resources:
        - name: orders
          path: "/orders/{{order_id}}"
          inputParameters:
            - name: order_id
              in: path
          operations:
            - name: get-order
              method: GET
    - type: http
      namespace: servicenow
      baseUri: "https://ae.service-now.com/api/now"
      authentication:
        type: basic
        username: "$secrets.servicenow_user"
        password: "$secrets.servicenow_password"
      resources:
        - name: incidents
          path: "/table/incident"
          operations:
            - name: create-incident
              method: POST
    - type: http
      namespace: msteams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: channel-messages
          path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
          inputParameters:
            - name: channel_id
              in: path
          operations:
            - name: send-message
              method: POST

Runs data quality checks, scores datasets, creates remediation tickets, and publishes scorecards.

naftiko: "0.5"
info:
  label: "Data Quality Monitoring Pipeline"
  description: "Runs data quality checks, scores datasets, creates remediation tickets, and publishes scorecards."
  tags:
    - data-quality
    - snowflake
    - jira
    - grafana
capability:
  exposes:
    - type: mcp
      namespace: data-quality
      port: 8080
      tools:
        - name: data_quality_monitoring_pipeline
          description: "Orchestrate data quality monitoring pipeline workflow."
          inputParameters:
            - name: resource_id
              in: body
              type: string
              description: "Primary resource identifier." 
          steps:
            - name: get-snowflake
              type: call
              call: "snowflake.get-resource"
              with:
                resource_id: "{{resource_id}}"
            - name: process-jira
              type: call
              call: "jira.process-resource"
              with:
                data: "{{get-snowflake.result}}"
            - name: create-grafana
              type: call
              call: "grafana.create-resource"
              with:
                channel: "{{notification_channel}}"
                text: "Data Quality Monitoring Pipeline step 3 complete."

  consumes:
    - type: http
      namespace: snowflake
      baseUri: "https://american-eagle-outfitters.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token" 
      resources:
        - name: resources
          path: "/resources/{{resource_id}}"
          operations:
            - name: snowflake-op
              method: POST
    - type: http
      namespace: jira
      baseUri: "https://american-eagle-outfitters.atlassian.net/rest/api/3"
      authentication:
        type: basic
        username: "$secrets.jira_user"
        password: "$secrets.jira_api_token" 
      resources:
        - name: resources
          path: "/resources/{{resource_id}}"
          operations:
            - name: jira-op
              method: POST
    - type: http
      namespace: grafana
      baseUri: "https://american-eagle-outfitters-grafana.com/api"
      authentication:
        type: bearer
        token: "$secrets.grafana_api_key" 
      resources:
        - name: resources
          path: "/resources/{{resource_id}}"
          operations:
            - name: grafana-op
              method: POST

Queries Datadog for the current health status of AEO critical services including the e-commerce platform, payment gateway, and inventory system.

naftiko: "0.5"
info:
  label: "Datadog Application Health Monitor"
  description: "Queries Datadog for the current health status of AEO critical services including the e-commerce platform, payment gateway, and inventory system."
  tags:
    - monitoring
    - devops
    - datadog
capability:
  exposes:
    - type: mcp
      namespace: app-health
      port: 8080
      tools:
        - name: get-service-health
          description: "Retrieve health status for AEO critical services from Datadog."
          inputParameters:
            - name: service_name
              in: body
              type: string
              description: "Service name to check."
          call: "datadog.get-service-status"
          with:
            service_name: "{{service_name}}"
          outputParameters:
            - name: status
              type: string
              mapping: "$.overall_state"
            - name: uptime_pct
              type: number
              mapping: "$.uptime_percentage"
            - name: last_incident
              type: string
              mapping: "$.last_incident_time"
  consumes:
    - type: http
      namespace: datadog
      baseUri: "https://api.datadoghq.com/api/v1"
      authentication:
        type: apikey
        key: "$secrets.datadog_api_key"
      inputParameters:
        - name: DD-APPLICATION-KEY
          in: header
          value: "$secrets.datadog_app_key"
      resources:
        - name: monitors
          path: "/monitor/search?query=service:{{service_name}}"
          inputParameters:
            - name: service_name
              in: path
          operations:
            - name: get-service-status
              method: GET

Tests DR procedures, validates backup integrity, generates readiness reports, and notifies leadership.

naftiko: "0.5"
info:
  label: "Disaster Recovery Readiness Pipeline"
  description: "Tests DR procedures, validates backup integrity, generates readiness reports, and notifies leadership."
  tags:
    - disaster-recovery
    - servicenow
    - confluence
    - pagerduty
capability:
  exposes:
    - type: mcp
      namespace: disaster-recovery
      port: 8080
      tools:
        - name: disaster_recovery_readiness_pipeline
          description: "Orchestrate disaster recovery readiness pipeline workflow."
          inputParameters:
            - name: resource_id
              in: body
              type: string
              description: "Primary resource identifier." 
          steps:
            - name: get-servicenow
              type: call
              call: "servicenow.get-resource"
              with:
                resource_id: "{{resource_id}}"
            - name: process-confluence
              type: call
              call: "confluence.process-resource"
              with:
                data: "{{get-servicenow.result}}"
            - name: create-jira
              type: call
              call: "jira.create-resource"
              with:
                channel: "{{notification_channel}}"
                text: "Disaster Recovery Readiness Pipeline step 3 complete."

  consumes:
    - type: http
      namespace: servicenow
      baseUri: "https://american-eagle-outfitters.service-now.com/api/now"
      authentication:
        type: basic
        username: "$secrets.servicenow_user"
        password: "$secrets.servicenow_password" 
      resources:
        - name: resources
          path: "/resources/{{resource_id}}"
          operations:
            - name: servicenow-op
              method: POST
    - type: http
      namespace: confluence
      baseUri: "https://american-eagle-outfitters.atlassian.net/wiki/rest/api"
      authentication:
        type: basic
        username: "$secrets.confluence_user"
        password: "$secrets.confluence_api_token" 
      resources:
        - name: resources
          path: "/resources/{{resource_id}}"
          operations:
            - name: confluence-op
              method: POST
    - type: http
      namespace: jira
      baseUri: "https://american-eagle-outfitters.atlassian.net/rest/api/3"
      authentication:
        type: basic
        username: "$secrets.jira_user"
        password: "$secrets.jira_api_token" 
      resources:
        - name: resources
          path: "/resources/{{resource_id}}"
          operations:
            - name: jira-op
              method: POST

Queries Dynatrace for real-time performance metrics of the AEO e-commerce platform.

naftiko: "0.5"
info:
  label: "Dynatrace Performance Monitor"
  description: "Queries Dynatrace for real-time performance metrics of the AEO e-commerce platform."
  tags:
    - monitoring
    - devops
    - dynatrace
capability:
  exposes:
    - type: mcp
      namespace: apm
      port: 8080
      tools:
        - name: get-app-performance
          description: "Retrieve application performance metrics from Dynatrace."
          inputParameters:
            - name: entity_id
              in: body
              type: string
              description: "Dynatrace entity ID."
          call: "dynatrace.get-entity-metrics"
          with:
            entity_id: "{{entity_id}}"
          outputParameters:
            - name: response_time
              type: number
              mapping: "$.dataPoints[0].values[0]"
            - name: error_rate
              type: number
              mapping: "$.dataPoints[1].values[0]"
  consumes:
    - type: http
      namespace: dynatrace
      baseUri: "https://aeo.live.dynatrace.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.dynatrace_token"
      resources:
        - name: metrics
          path: "/metrics/query?entitySelector=entityId({{entity_id}})"
          inputParameters:
            - name: entity_id
              in: path
          operations:
            - name: get-entity-metrics
              method: GET

Provisions new employee accounts, assigns training, creates IT tickets, and notifies managers.

naftiko: "0.5"
info:
  label: "Employee Onboarding Automation Pipeline"
  description: "Provisions new employee accounts, assigns training, creates IT tickets, and notifies managers."
  tags:
    - hr
    - workday
    - servicenow
    - slack
capability:
  exposes:
    - type: mcp
      namespace: hr
      port: 8080
      tools:
        - name: employee_onboarding_automation
          description: "Orchestrate employee onboarding automation pipeline workflow."
          inputParameters:
            - name: resource_id
              in: body
              type: string
              description: "Primary resource identifier." 
          steps:
            - name: get-salesforce
              type: call
              call: "salesforce.get-resource"
              with:
                resource_id: "{{resource_id}}"
            - name: process-servicenow
              type: call
              call: "servicenow.process-resource"
              with:
                data: "{{get-salesforce.result}}"
            - name: create-slack
              type: call
              call: "slack.create-resource"
              with:
                channel: "{{notification_channel}}"
                text: "Employee Onboarding Automation Pipeline step 3 complete."

  consumes:
    - type: http
      namespace: salesforce
      baseUri: "https://american-eagle-outfitters.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token" 
      resources:
        - name: resources
          path: "/resources/{{resource_id}}"
          operations:
            - name: salesforce-op
              method: POST
    - type: http
      namespace: servicenow
      baseUri: "https://american-eagle-outfitters.service-now.com/api/now"
      authentication:
        type: basic
        username: "$secrets.servicenow_user"
        password: "$secrets.servicenow_password" 
      resources:
        - name: resources
          path: "/resources/{{resource_id}}"
          operations:
            - name: servicenow-op
              method: POST
    - type: http
      namespace: slack
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token" 
      resources:
        - name: resources
          path: "/resources/{{resource_id}}"
          operations:
            - name: slack-op
              method: POST

When a new associate is hired in PeopleSoft, provisions a SharePoint folder for training documents, creates a ServiceNow onboarding ticket, and sends a welcome message via Microsoft Teams.

naftiko: "0.5"
info:
  label: "Employee Onboarding Pipeline"
  description: "When a new associate is hired in PeopleSoft, provisions a SharePoint folder for training documents, creates a ServiceNow onboarding ticket, and sends a welcome message via Microsoft Teams."
  tags:
    - hr
    - onboarding
    - peoplesoft
    - sharepoint
    - servicenow
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: hr-onboarding
      port: 8080
      tools:
        - name: onboard-employee
          description: "Run the full onboarding workflow for a new AEO employee across HR, IT, and collaboration systems."
          inputParameters:
            - name: employee_id
              in: body
              type: string
              description: "PeopleSoft employee ID."
            - name: start_date
              in: body
              type: string
              description: "Start date in YYYY-MM-DD format."
            - name: department
              in: body
              type: string
              description: "Department name."
          steps:
            - name: get-employee
              type: call
              call: "peoplesoft.get-employee"
              with:
                employee_id: "{{employee_id}}"
            - name: create-folder
              type: call
              call: "sharepoint.create-folder"
              with:
                site_id: "hr_onboarding"
                folder_path: "Onboarding/{{get-employee.full_name}}_{{start_date}}"
            - name: create-ticket
              type: call
              call: "servicenow.create-incident"
              with:
                short_description: "Onboarding: {{get-employee.full_name}}"
                category: "hr_onboarding"
                description: "New hire {{get-employee.full_name}} starting {{start_date}} in {{department}}."
            - name: send-welcome
              type: call
              call: "msteams.send-message"
              with:
                channel_id: "new_hires"
                text: "Welcome {{get-employee.first_name}} to AEO! Starting {{start_date}} in {{department}}. Onboarding ticket: {{create-ticket.number}}."
  consumes:
    - type: http
      namespace: peoplesoft
      baseUri: "https://hr.ae.com/psftrest/v1"
      authentication:
        type: basic
        username: "$secrets.peoplesoft_user"
        password: "$secrets.peoplesoft_password"
      resources:
        - name: employees
          path: "/employees/{{employee_id}}"
          inputParameters:
            - name: employee_id
              in: path
          operations:
            - name: get-employee
              method: GET
    - type: http
      namespace: sharepoint
      baseUri: "https://graph.microsoft.com/v1.0/sites"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: drive-items
          path: "/{{site_id}}/drive/root:/{{folder_path}}"
          inputParameters:
            - name: site_id
              in: path
            - name: folder_path
              in: path
          operations:
            - name: create-folder
              method: POST
    - type: http
      namespace: servicenow
      baseUri: "https://ae.service-now.com/api/now"
      authentication:
        type: basic
        username: "$secrets.servicenow_user"
        password: "$secrets.servicenow_password"
      resources:
        - name: incidents
          path: "/table/incident"
          operations:
            - name: create-incident
              method: POST
    - type: http
      namespace: msteams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: channel-messages
          path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
          inputParameters:
            - name: channel_id
              in: path
          operations:
            - name: send-message
              method: POST

Activates a flash sale by reserving inventory, applying temporary pricing in BigCommerce, scheduling push notifications, and alerting the e-commerce team via Microsoft Teams.

naftiko: "0.5"
info:
  label: "Flash Sale Activation Pipeline"
  description: "Activates a flash sale by reserving inventory, applying temporary pricing in BigCommerce, scheduling push notifications, and alerting the e-commerce team via Microsoft Teams."
  tags:
    - retail
    - flash-sale
    - bigcommerce
    - wms
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: flash-sales
      port: 8080
      tools:
        - name: activate-flash-sale
          description: "Reserve inventory, set sale prices, and notify all stakeholders for a flash sale."
          inputParameters:
            - name: sale_id
              in: body
              type: string
              description: "Flash sale identifier."
            - name: product_ids
              in: body
              type: array
              description: "Product IDs in the sale."
            - name: discount_pct
              in: body
              type: number
              description: "Discount percentage."
          steps:
            - name: reserve-stock
              type: call
              call: "wms.reserve-inventory"
              with:
                sale_id: "{{sale_id}}"
                product_ids: "{{product_ids}}"
            - name: apply-pricing
              type: call
              call: "bigcommerce.apply-sale-pricing"
              with:
                product_ids: "{{product_ids}}"
                discount_pct: "{{discount_pct}}"
            - name: notify-ecom
              type: call
              call: "msteams.send-message"
              with:
                channel_id: "ecommerce"
                text: "Flash sale {{sale_id}} LIVE: {{reserve-stock.reserved_count}} products at {{discount_pct}}% off."
  consumes:
    - type: http
      namespace: wms
      baseUri: "https://wms.ae.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.wms_token"
      resources:
        - name: reservations
          path: "/reservations"
          operations:
            - name: reserve-inventory
              method: POST
    - type: http
      namespace: bigcommerce
      baseUri: "https://api.bigcommerce.com/stores/ae-outfitters/v3"
      authentication:
        type: bearer
        token: "$secrets.bigcommerce_token"
      resources:
        - name: pricing
          path: "/pricelists"
          operations:
            - name: apply-sale-pricing
              method: POST
    - type: http
      namespace: msteams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: channel-messages
          path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
          inputParameters:
            - name: channel_id
              in: path
          operations:
            - name: send-message
              method: POST

Fetches website traffic metrics from Google Analytics for the AEO digital storefront including sessions, page views, and bounce rate.

naftiko: "0.5"
info:
  label: "Google Analytics Traffic Dashboard"
  description: "Fetches website traffic metrics from Google Analytics for the AEO digital storefront including sessions, page views, and bounce rate."
  tags:
    - analytics
    - e-commerce
    - google-analytics
capability:
  exposes:
    - type: mcp
      namespace: ga-traffic
      port: 8080
      tools:
        - name: get-site-traffic
          description: "Retrieve key traffic metrics for the AEO website from Google Analytics."
          inputParameters:
            - name: start_date
              in: body
              type: string
              description: "Start date in YYYY-MM-DD."
            - name: end_date
              in: body
              type: string
              description: "End date in YYYY-MM-DD."
          call: "ga.get-report"
          with:
            view_id: "aeo_web"
            start_date: "{{start_date}}"
            end_date: "{{end_date}}"
            metrics: "ga:sessions,ga:pageviews,ga:bounceRate"
          outputParameters:
            - name: sessions
              type: number
              mapping: "$.reports[0].data.totals[0].values[0]"
            - name: page_views
              type: number
              mapping: "$.reports[0].data.totals[0].values[1]"
            - name: bounce_rate
              type: string
              mapping: "$.reports[0].data.totals[0].values[2]"
  consumes:
    - type: http
      namespace: ga
      baseUri: "https://analyticsreporting.googleapis.com/v4"
      authentication:
        type: bearer
        token: "$secrets.google_analytics_token"
      resources:
        - name: reports
          path: "/reports:batchGet"
          operations:
            - name: get-report
              method: POST

Finds the nearest AEO store locations based on a customer ZIP code using the Google Maps API.

naftiko: "0.5"
info:
  label: "Google Maps Store Locator"
  description: "Finds the nearest AEO store locations based on a customer ZIP code using the Google Maps API."
  tags:
    - retail
    - google-maps
    - store-locator
capability:
  exposes:
    - type: mcp
      namespace: store-locator
      port: 8080
      tools:
        - name: find-nearest-stores
          description: "Find the nearest American Eagle stores by ZIP code."
          inputParameters:
            - name: zip_code
              in: body
              type: string
              description: "Customer ZIP code."
            - name: radius_miles
              in: body
              type: number
              description: "Search radius."
          call: "gmaps.search-places"
          with:
            query: "American Eagle Outfitters"
            location: "{{zip_code}}"
            radius: "{{radius_miles}}"
          outputParameters:
            - name: stores
              type: array
              mapping: "$.results"
  consumes:
    - type: http
      namespace: gmaps
      baseUri: "https://maps.googleapis.com/maps/api"
      authentication:
        type: apikey
        key: "$secrets.google_maps_key"
      resources:
        - name: places
          path: "/place/textsearch/json"
          operations:
            - name: search-places
              method: GET

Retrieves A/B test results from Google Optimize for the AEO website and returns variant performance data.

naftiko: "0.5"
info:
  label: "Google Optimize Experiment Results"
  description: "Retrieves A/B test results from Google Optimize for the AEO website and returns variant performance data."
  tags:
    - analytics
    - e-commerce
    - google-optimize
capability:
  exposes:
    - type: mcp
      namespace: experimentation
      port: 8080
      tools:
        - name: get-experiment-results
          description: "Fetch Google Optimize experiment variant performance."
          inputParameters:
            - name: experiment_id
              in: body
              type: string
              description: "Google Optimize experiment ID."
          call: "goptimize.get-experiment"
          with:
            experiment_id: "{{experiment_id}}"
          outputParameters:
            - name: variants
              type: array
              mapping: "$.experiment.variants"
            - name: winning_variant
              type: string
              mapping: "$.experiment.leading_variant"
  consumes:
    - type: http
      namespace: goptimize
      baseUri: "https://www.googleapis.com/analytics/v3/management"
      authentication:
        type: bearer
        token: "$secrets.google_optimize_token"
      resources:
        - name: experiments
          path: "/accounts/{{account_id}}/webproperties/{{property_id}}/experiments/{{experiment_id}}"
          inputParameters:
            - name: experiment_id
              in: path
          operations:
            - name: get-experiment
              method: GET

Appends a row to a Google Sheets spreadsheet. Reusable logging building block.

naftiko: "0.5"
info:
  label: "Google Sheets Row Logger"
  description: "Appends a row to a Google Sheets spreadsheet. Reusable logging building block."
  tags:
    - productivity
    - google-sheets
    - logging
capability:
  exposes:
    - type: mcp
      namespace: sheets-logger
      port: 8080
      tools:
        - name: log-to-sheet
          description: "Append a row of data to a Google Sheets spreadsheet."
          inputParameters:
            - name: spreadsheet_id
              in: body
              type: string
              description: "Spreadsheet ID."
            - name: range
              in: body
              type: string
              description: "Sheet range."
            - name: values
              in: body
              type: array
              description: "Row values."
          call: "gsheets.append-row"
          with:
            spreadsheet_id: "{{spreadsheet_id}}"
            range: "{{range}}"
            values: "{{values}}"
  consumes:
    - type: http
      namespace: gsheets
      baseUri: "https://sheets.googleapis.com/v4/spreadsheets"
      authentication:
        type: bearer
        token: "$secrets.google_sheets_token"
      resources:
        - name: values
          path: "/{{spreadsheet_id}}/values/{{range}}:append"
          inputParameters:
            - name: spreadsheet_id
              in: path
            - name: range
              in: path
          operations:
            - name: append-row
              method: POST

Publishes a new version of the Google Tag Manager container for the AEO web property after review approval and notifies the web team.

naftiko: "0.5"
info:
  label: "Google Tag Manager Container Version Publisher"
  description: "Publishes a new version of the Google Tag Manager container for the AEO web property after review approval and notifies the web team."
  tags:
    - analytics
    - google-tag-manager
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: tag-management
      port: 8080
      tools:
        - name: publish-gtm-version
          description: "Publish a GTM container version and notify the web team."
          inputParameters:
            - name: container_id
              in: body
              type: string
              description: "GTM container ID."
            - name: version_id
              in: body
              type: string
              description: "GTM version ID to publish."
          steps:
            - name: publish-version
              type: call
              call: "gtm.publish-version"
              with:
                container_id: "{{container_id}}"
                version_id: "{{version_id}}"
            - name: notify-team
              type: call
              call: "msteams.send-message"
              with:
                channel_id: "web_team"
                text: "GTM container {{container_id}} version {{version_id}} has been published to production."
  consumes:
    - type: http
      namespace: gtm
      baseUri: "https://www.googleapis.com/tagmanager/v2"
      authentication:
        type: bearer
        token: "$secrets.google_tagmanager_token"
      resources:
        - name: versions
          path: "/accounts/{{account_id}}/containers/{{container_id}}/versions/{{version_id}}:publish"
          inputParameters:
            - name: container_id
              in: path
            - name: version_id
              in: path
          operations:
            - name: publish-version
              method: POST
    - type: http
      namespace: msteams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: channel-messages
          path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
          inputParameters:
            - name: channel_id
              in: path
          operations:
            - name: send-message
              method: POST

When a new lead is captured via HubSpot forms, enriches the lead with ZoomInfo company data, creates a Salesforce contact, and notifies the sales team in Microsoft Teams.

naftiko: "0.5"
info:
  label: "HubSpot Lead Capture Processor"
  description: "When a new lead is captured via HubSpot forms, enriches the lead with ZoomInfo company data, creates a Salesforce contact, and notifies the sales team in Microsoft Teams."
  tags:
    - sales
    - hubspot
    - zoominfo
    - salesforce
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: lead-processing
      port: 8080
      tools:
        - name: process-new-lead
          description: "Enrich a HubSpot lead with ZoomInfo data, sync to Salesforce, and notify the sales team."
          inputParameters:
            - name: hubspot_contact_id
              in: body
              type: string
              description: "HubSpot contact ID."
          steps:
            - name: get-lead
              type: call
              call: "hubspot.get-contact"
              with:
                contact_id: "{{hubspot_contact_id}}"
            - name: enrich-company
              type: call
              call: "zoominfo.enrich-company"
              with:
                company_name: "{{get-lead.company}}"
            - name: create-sf-contact
              type: call
              call: "salesforce.create-contact"
              with:
                first_name: "{{get-lead.firstname}}"
                last_name: "{{get-lead.lastname}}"
                email: "{{get-lead.email}}"
                company: "{{get-lead.company}}"
                industry: "{{enrich-company.industry}}"
            - name: notify-sales
              type: call
              call: "msteams.send-message"
              with:
                channel_id: "sales_leads"
                text: "New lead: {{get-lead.firstname}} {{get-lead.lastname}} from {{get-lead.company}} ({{enrich-company.industry}}). Salesforce ID: {{create-sf-contact.id}}."
  consumes:
    - type: http
      namespace: hubspot
      baseUri: "https://api.hubapi.com/crm/v3"
      authentication:
        type: bearer
        token: "$secrets.hubspot_token"
      resources:
        - name: contacts
          path: "/objects/contacts/{{contact_id}}"
          inputParameters:
            - name: contact_id
              in: path
          operations:
            - name: get-contact
              method: GET
    - type: http
      namespace: zoominfo
      baseUri: "https://api.zoominfo.com/v2"
      authentication:
        type: bearer
        token: "$secrets.zoominfo_token"
      resources:
        - name: companies
          path: "/company/enrich"
          operations:
            - name: enrich-company
              method: POST
    - type: http
      namespace: salesforce
      baseUri: "https://ae.my.salesforce.com/services/data/v59.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token"
      resources:
        - name: contacts
          path: "/sobjects/Contact"
          operations:
            - name: create-contact
              method: POST
    - type: http
      namespace: msteams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: channel-messages
          path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
          inputParameters:
            - name: channel_id
              in: path
          operations:
            - name: send-message
              method: POST

Compares deployed state against desired config, identifies drift, creates remediation tickets, and alerts ops.

naftiko: "0.5"
info:
  label: "Infrastructure Drift Detection Pipeline"
  description: "Compares deployed state against desired config, identifies drift, creates remediation tickets, and alerts ops."
  tags:
    - devops
    - github
    - jira
    - slack
capability:
  exposes:
    - type: mcp
      namespace: devops
      port: 8080
      tools:
        - name: infrastructure_drift_detection
          description: "Orchestrate infrastructure drift detection pipeline workflow."
          inputParameters:
            - name: resource_id
              in: body
              type: string
              description: "Primary resource identifier." 
          steps:
            - name: get-github
              type: call
              call: "github.get-resource"
              with:
                resource_id: "{{resource_id}}"
            - name: process-jira
              type: call
              call: "jira.process-resource"
              with:
                data: "{{get-github.result}}"
            - name: create-slack
              type: call
              call: "slack.create-resource"
              with:
                channel: "{{notification_channel}}"
                text: "Infrastructure Drift Detection Pipeline step 3 complete."

  consumes:
    - type: http
      namespace: github
      baseUri: "https://api.github.com"
      authentication:
        type: bearer
        token: "$secrets.github_token" 
      resources:
        - name: resources
          path: "/resources/{{resource_id}}"
          operations:
            - name: github-op
              method: POST
    - type: http
      namespace: jira
      baseUri: "https://american-eagle-outfitters.atlassian.net/rest/api/3"
      authentication:
        type: basic
        username: "$secrets.jira_user"
        password: "$secrets.jira_api_token" 
      resources:
        - name: resources
          path: "/resources/{{resource_id}}"
          operations:
            - name: jira-op
              method: POST
    - type: http
      namespace: slack
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token" 
      resources:
        - name: resources
          path: "/resources/{{resource_id}}"
          operations:
            - name: slack-op
              method: POST

Tracks asset lifecycle stages, schedules replacements, manages disposal, and updates CMDB.

naftiko: "0.5"
info:
  label: "IT Asset Lifecycle Pipeline"
  description: "Tracks asset lifecycle stages, schedules replacements, manages disposal, and updates CMDB."
  tags:
    - operations
    - servicenow
    - snowflake
    - slack
capability:
  exposes:
    - type: mcp
      namespace: operations
      port: 8080
      tools:
        - name: it_asset_lifecycle_pipeline
          description: "Orchestrate it asset lifecycle pipeline workflow."
          inputParameters:
            - name: resource_id
              in: body
              type: string
              description: "Primary resource identifier." 
          steps:
            - name: get-servicenow
              type: call
              call: "servicenow.get-resource"
              with:
                resource_id: "{{resource_id}}"
            - name: process-snowflake
              type: call
              call: "snowflake.process-resource"
              with:
                data: "{{get-servicenow.result}}"
            - name: create-slack
              type: call
              call: "slack.create-resource"
              with:
                channel: "{{notification_channel}}"
                text: "IT Asset Lifecycle Pipeline step 3 complete."

  consumes:
    - type: http
      namespace: servicenow
      baseUri: "https://american-eagle-outfitters.service-now.com/api/now"
      authentication:
        type: basic
        username: "$secrets.servicenow_user"
        password: "$secrets.servicenow_password" 
      resources:
        - name: resources
          path: "/resources/{{resource_id}}"
          operations:
            - name: servicenow-op
              method: POST
    - type: http
      namespace: snowflake
      baseUri: "https://american-eagle-outfitters.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token" 
      resources:
        - name: resources
          path: "/resources/{{resource_id}}"
          operations:
            - name: snowflake-op
              method: POST
    - type: http
      namespace: slack
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token" 
      resources:
        - name: resources
          path: "/resources/{{resource_id}}"
          operations:
            - name: slack-op
              method: POST

Creates a Jira issue in a specified project. Reusable building block for task creation workflows.

naftiko: "0.5"
info:
  label: "Jira Issue Creator"
  description: "Creates a Jira issue in a specified project. Reusable building block for task creation workflows."
  tags:
    - project-management
    - jira
capability:
  exposes:
    - type: mcp
      namespace: task-management
      port: 8080
      tools:
        - name: create-jira-issue
          description: "Create a new Jira issue."
          inputParameters:
            - name: project
              in: body
              type: string
              description: "Jira project key."
            - name: issue_type
              in: body
              type: string
              description: "Issue type such as Task, Bug, or Story."
            - name: summary
              in: body
              type: string
              description: "Issue summary."
            - name: description
              in: body
              type: string
              description: "Issue description."
          call: "jira.create-issue"
          with:
            project: "{{project}}"
            issue_type: "{{issue_type}}"
            summary: "{{summary}}"
            description: "{{description}}"
          outputParameters:
            - name: issue_key
              type: string
              mapping: "$.key"
            - name: issue_url
              type: string
              mapping: "$.self"
  consumes:
    - type: http
      namespace: jira
      baseUri: "https://ae-outfitters.atlassian.net/rest/api/3"
      authentication:
        type: basic
        username: "$secrets.jira_user"
        password: "$secrets.jira_api_token"
      resources:
        - name: issues
          path: "/issue"
          operations:
            - name: create-issue
              method: POST

Retrieves the current sprint status from Jira including total story points, completed points, and remaining work for the AEO digital team.

naftiko: "0.5"
info:
  label: "Jira Sprint Progress Tracker"
  description: "Retrieves the current sprint status from Jira including total story points, completed points, and remaining work for the AEO digital team."
  tags:
    - project-management
    - jira
    - agile
capability:
  exposes:
    - type: mcp
      namespace: sprint-tracking
      port: 8080
      tools:
        - name: get-sprint-progress
          description: "Look up the current sprint progress for a Jira board."
          inputParameters:
            - name: board_id
              in: body
              type: string
              description: "Jira board ID."
          call: "jira.get-active-sprint"
          with:
            board_id: "{{board_id}}"
          outputParameters:
            - name: sprint_name
              type: string
              mapping: "$.values[0].name"
            - name: start_date
              type: string
              mapping: "$.values[0].startDate"
            - name: end_date
              type: string
              mapping: "$.values[0].endDate"
  consumes:
    - type: http
      namespace: jira
      baseUri: "https://ae-outfitters.atlassian.net/rest/agile/1.0"
      authentication:
        type: basic
        username: "$secrets.jira_user"
        password: "$secrets.jira_api_token"
      resources:
        - name: sprints
          path: "/board/{{board_id}}/sprint?state=active"
          inputParameters:
            - name: board_id
              in: path
          operations:
            - name: get-active-sprint
              method: GET

Identifies stale articles, assigns review tasks, tracks updates, and publishes freshness reports.

naftiko: "0.5"
info:
  label: "Knowledge Base Freshness Pipeline"
  description: "Identifies stale articles, assigns review tasks, tracks updates, and publishes freshness reports."
  tags:
    - knowledge
    - confluence
    - jira
    - slack
capability:
  exposes:
    - type: mcp
      namespace: knowledge
      port: 8080
      tools:
        - name: knowledge_base_freshness_pipeline
          description: "Orchestrate knowledge base freshness pipeline workflow."
          inputParameters:
            - name: resource_id
              in: body
              type: string
              description: "Primary resource identifier." 
          steps:
            - name: get-confluence
              type: call
              call: "confluence.get-resource"
              with:
                resource_id: "{{resource_id}}"
            - name: process-jira
              type: call
              call: "jira.process-resource"
              with:
                data: "{{get-confluence.result}}"
            - name: create-slack
              type: call
              call: "slack.create-resource"
              with:
                channel: "{{notification_channel}}"
                text: "Knowledge Base Freshness Pipeline step 3 complete."

  consumes:
    - type: http
      namespace: confluence
      baseUri: "https://american-eagle-outfitters.atlassian.net/wiki/rest/api"
      authentication:
        type: basic
        username: "$secrets.confluence_user"
        password: "$secrets.confluence_api_token" 
      resources:
        - name: resources
          path: "/resources/{{resource_id}}"
          operations:
            - name: confluence-op
              method: POST
    - type: http
      namespace: jira
      baseUri: "https://american-eagle-outfitters.atlassian.net/rest/api/3"
      authentication:
        type: basic
        username: "$secrets.jira_user"
        password: "$secrets.jira_api_token" 
      resources:
        - name: resources
          path: "/resources/{{resource_id}}"
          operations:
            - name: jira-op
              method: POST
    - type: http
      namespace: slack
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token" 
      resources:
        - name: resources
          path: "/resources/{{resource_id}}"
          operations:
            - name: slack-op
              method: POST

Posts employer branding content to the AEO LinkedIn company page.

naftiko: "0.5"
info:
  label: "LinkedIn Brand Content Publisher"
  description: "Posts employer branding content to the AEO LinkedIn company page."
  tags:
    - marketing
    - social-media
    - linkedin
capability:
  exposes:
    - type: mcp
      namespace: linkedin-publishing
      port: 8080
      tools:
        - name: post-linkedin-update
          description: "Publish a company update to the AEO LinkedIn page."
          inputParameters:
            - name: text
              in: body
              type: string
              description: "Post text content."
          call: "linkedin.create-share"
          with:
            owner: "urn:li:organization:aeo"
            text: "{{text}}"
          outputParameters:
            - name: post_id
              type: string
              mapping: "$.id"
  consumes:
    - type: http
      namespace: linkedin
      baseUri: "https://api.linkedin.com/v2"
      authentication:
        type: bearer
        token: "$secrets.linkedin_token"
      resources:
        - name: shares
          path: "/shares"
          operations:
            - name: create-share
              method: POST

Posts job openings to the AEO LinkedIn company page and tracks postings in Google Sheets.

naftiko: "0.5"
info:
  label: "LinkedIn Job Posting Publisher"
  description: "Posts job openings to the AEO LinkedIn company page and tracks postings in Google Sheets."
  tags:
    - hr
    - recruiting
    - linkedin
    - google-sheets
capability:
  exposes:
    - type: mcp
      namespace: recruiting
      port: 8080
      tools:
        - name: post-job
          description: "Publish a job opening on LinkedIn and log it for tracking."
          inputParameters:
            - name: title
              in: body
              type: string
              description: "Job title."
            - name: description
              in: body
              type: string
              description: "Job description."
            - name: location
              in: body
              type: string
              description: "Location."
          steps:
            - name: create-posting
              type: call
              call: "linkedin.create-job"
              with:
                title: "{{title}}"
                description: "{{description}}"
                location: "{{location}}"
                company_id: "american-eagle-outfitters"
            - name: log-posting
              type: call
              call: "gsheets.append-row"
              with:
                spreadsheet_id: "aeo_recruiting"
                range: "Jobs!A:D"
                values:
                  - "{{title}}"
                  - "{{location}}"
                  - "{{create-posting.id}}"
                  - "active"
  consumes:
    - type: http
      namespace: linkedin
      baseUri: "https://api.linkedin.com/v2"
      authentication:
        type: bearer
        token: "$secrets.linkedin_token"
      resources:
        - name: jobs
          path: "/simpleJobPostings"
          operations:
            - name: create-job
              method: POST
    - type: http
      namespace: gsheets
      baseUri: "https://sheets.googleapis.com/v4/spreadsheets"
      authentication:
        type: bearer
        token: "$secrets.google_sheets_token"
      resources:
        - name: values
          path: "/{{spreadsheet_id}}/values/{{range}}:append"
          inputParameters:
            - name: spreadsheet_id
              in: path
            - name: range
              in: path
          operations:
            - name: append-row
              method: POST

When the POS flags a suspicious transaction, creates a ServiceNow incident, logs the alert in Google Sheets, and urgently notifies the loss prevention team in Microsoft Teams.

naftiko: "0.5"
info:
  label: "Loss Prevention Alert Processor"
  description: "When the POS flags a suspicious transaction, creates a ServiceNow incident, logs the alert in Google Sheets, and urgently notifies the loss prevention team in Microsoft Teams."
  tags:
    - retail
    - loss-prevention
    - servicenow
    - google-sheets
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: loss-prevention
      port: 8080
      tools:
        - name: process-lp-alert
          description: "Handle a loss prevention alert across incident management, logging, and notifications."
          inputParameters:
            - name: transaction_id
              in: body
              type: string
              description: "Flagged transaction ID."
            - name: store_id
              in: body
              type: string
              description: "Store ID."
            - name: alert_type
              in: body
              type: string
              description: "Alert type."
          steps:
            - name: create-incident
              type: call
              call: "servicenow.create-incident"
              with:
                short_description: "LP Alert: {{alert_type}} at store {{store_id}}"
                category: "loss_prevention"
                urgency: "1"
            - name: log-alert
              type: call
              call: "gsheets.append-row"
              with:
                spreadsheet_id: "aeo_lp_log"
                range: "Alerts!A:D"
                values:
                  - "{{transaction_id}}"
                  - "{{store_id}}"
                  - "{{alert_type}}"
                  - "{{create-incident.number}}"
            - name: alert-team
              type: call
              call: "msteams.send-message"
              with:
                channel_id: "loss_prevention"
                text: "URGENT: {{alert_type}} at store {{store_id}}, txn {{transaction_id}}. Incident: {{create-incident.number}}"
  consumes:
    - type: http
      namespace: servicenow
      baseUri: "https://ae.service-now.com/api/now"
      authentication:
        type: basic
        username: "$secrets.servicenow_user"
        password: "$secrets.servicenow_password"
      resources:
        - name: incidents
          path: "/table/incident"
          operations:
            - name: create-incident
              method: POST
    - type: http
      namespace: gsheets
      baseUri: "https://sheets.googleapis.com/v4/spreadsheets"
      authentication:
        type: bearer
        token: "$secrets.google_sheets_token"
      resources:
        - name: values
          path: "/{{spreadsheet_id}}/values/{{range}}:append"
          inputParameters:
            - name: spreadsheet_id
              in: path
            - name: range
              in: path
          operations:
            - name: append-row
              method: POST
    - type: http
      namespace: msteams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: channel-messages
          path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
          inputParameters:
            - name: channel_id
              in: path
          operations:
            - name: send-message
              method: POST

Sends an email through Microsoft Outlook. Reusable email component.

naftiko: "0.5"
info:
  label: "Microsoft Outlook Email Sender"
  description: "Sends an email through Microsoft Outlook. Reusable email component."
  tags:
    - collaboration
    - microsoft-outlook
    - email
capability:
  exposes:
    - type: mcp
      namespace: email
      port: 8080
      tools:
        - name: send-email
          description: "Send an email via Microsoft Outlook."
          inputParameters:
            - name: to
              in: body
              type: string
              description: "Recipient email."
            - name: subject
              in: body
              type: string
              description: "Subject line."
            - name: body
              in: body
              type: string
              description: "Email body."
          call: "outlook.send-mail"
          with:
            to: "{{to}}"
            subject: "{{subject}}"
            body: "{{body}}"
  consumes:
    - type: http
      namespace: outlook
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: send-mail
          path: "/me/sendMail"
          operations:
            - name: send-mail
              method: POST

Triggers a Microsoft Power Automate flow for automated business process execution.

naftiko: "0.5"
info:
  label: "Microsoft Power Automate Flow Trigger"
  description: "Triggers a Microsoft Power Automate flow for automated business process execution."
  tags:
    - automation
    - microsoft-power-automate
capability:
  exposes:
    - type: mcp
      namespace: workflow-automation
      port: 8080
      tools:
        - name: trigger-flow
          description: "Trigger a Power Automate flow by ID."
          inputParameters:
            - name: flow_id
              in: body
              type: string
              description: "Power Automate flow ID."
            - name: payload
              in: body
              type: object
              description: "Flow input payload."
          call: "power-automate.trigger-flow"
          with:
            flow_id: "{{flow_id}}"
            body: "{{payload}}"
          outputParameters:
            - name: run_id
              type: string
              mapping: "$.id"
  consumes:
    - type: http
      namespace: power-automate
      baseUri: "https://api.flow.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.power_automate_token"
      resources:
        - name: flows
          path: "/flows/{{flow_id}}/triggers/manual/run"
          inputParameters:
            - name: flow_id
              in: path
          operations:
            - name: trigger-flow
              method: POST

Sends a message to a specified Microsoft Teams channel. Reusable building block for notifications.

naftiko: "0.5"
info:
  label: "Microsoft Teams Channel Notifier"
  description: "Sends a message to a specified Microsoft Teams channel. Reusable building block for notifications."
  tags:
    - collaboration
    - microsoft-teams
    - notifications
capability:
  exposes:
    - type: mcp
      namespace: teams-messaging
      port: 8080
      tools:
        - name: send-channel-message
          description: "Post a message to a Microsoft Teams channel."
          inputParameters:
            - name: channel_id
              in: body
              type: string
              description: "Teams channel ID."
            - name: text
              in: body
              type: string
              description: "Message text."
          call: "msteams.send-message"
          with:
            channel_id: "{{channel_id}}"
            text: "{{text}}"
  consumes:
    - type: http
      namespace: msteams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: channel-messages
          path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
          inputParameters:
            - name: channel_id
              in: path
          operations:
            - name: send-message
              method: POST

When a new product line is approved, creates listings in BigCommerce, syncs inventory with the warehouse management system, schedules an Adobe Campaign email blast, and posts a teaser to Instagram.

naftiko: "0.5"
info:
  label: "New Product Launch Orchestrator"
  description: "When a new product line is approved, creates listings in BigCommerce, syncs inventory with the warehouse management system, schedules an Adobe Campaign email blast, and posts a teaser to Instagram."
  tags:
    - retail
    - merchandising
    - bigcommerce
    - adobe-campaign
    - instagram
capability:
  exposes:
    - type: mcp
      namespace: product-launch
      port: 8080
      tools:
        - name: launch-product-line
          description: "Orchestrate a new product line launch across e-commerce, email, and social channels."
          inputParameters:
            - name: product_line_id
              in: body
              type: string
              description: "Internal product line identifier."
            - name: launch_date
              in: body
              type: string
              description: "Target launch date in YYYY-MM-DD format."
            - name: collection_name
              in: body
              type: string
              description: "Collection display name."
          steps:
            - name: create-listings
              type: call
              call: "bigcommerce.create-products"
              with:
                product_line_id: "{{product_line_id}}"
                is_visible: true
            - name: sync-inventory
              type: call
              call: "wms.sync-product-line"
              with:
                product_line_id: "{{product_line_id}}"
            - name: schedule-email
              type: call
              call: "adobe-campaign.create-delivery"
              with:
                template: "new_launch"
                label: "New Drop: {{collection_name}}"
                scheduled_date: "{{launch_date}}"
            - name: post-teaser
              type: call
              call: "instagram.create-post"
              with:
                caption: "Something new is coming. {{collection_name}} drops {{launch_date}}. #AEO #AmericanEagle"
                media_url: "{{create-listings.hero_image}}"
  consumes:
    - type: http
      namespace: bigcommerce
      baseUri: "https://api.bigcommerce.com/stores/ae-outfitters/v3"
      authentication:
        type: bearer
        token: "$secrets.bigcommerce_token"
      resources:
        - name: products
          path: "/catalog/products"
          operations:
            - name: create-products
              method: POST
    - type: http
      namespace: wms
      baseUri: "https://wms.ae.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.wms_token"
      resources:
        - name: sync
          path: "/product-lines/{{product_line_id}}/sync"
          inputParameters:
            - name: product_line_id
              in: path
          operations:
            - name: sync-product-line
              method: POST
    - type: http
      namespace: adobe-campaign
      baseUri: "https://mc.adobe.io/ae-outfitters/campaign"
      authentication:
        type: bearer
        token: "$secrets.adobe_campaign_token"
      resources:
        - name: deliveries
          path: "/profileAndServicesExt/delivery"
          operations:
            - name: create-delivery
              method: POST
    - type: http
      namespace: instagram
      baseUri: "https://graph.facebook.com/v18.0"
      authentication:
        type: bearer
        token: "$secrets.instagram_token"
      resources:
        - name: media
          path: "/me/media"
          operations:
            - name: create-post
              method: POST

When New Relic fires a performance degradation alert for the AEO website, creates a ServiceNow incident and notifies the SRE team in Microsoft Teams.

naftiko: "0.5"
info:
  label: "New Relic Performance Alert Handler"
  description: "When New Relic fires a performance degradation alert for the AEO website, creates a ServiceNow incident and notifies the SRE team in Microsoft Teams."
  tags:
    - monitoring
    - devops
    - new-relic
    - servicenow
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: perf-alerting
      port: 8080
      tools:
        - name: handle-perf-alert
          description: "Process a New Relic performance alert and route to incident management."
          inputParameters:
            - name: alert_id
              in: body
              type: string
              description: "New Relic alert policy ID."
            - name: condition_name
              in: body
              type: string
              description: "Alert condition name."
            - name: severity
              in: body
              type: string
              description: "Alert severity level."
          steps:
            - name: get-alert-details
              type: call
              call: "newrelic.get-alert"
              with:
                alert_id: "{{alert_id}}"
            - name: create-incident
              type: call
              call: "servicenow.create-incident"
              with:
                short_description: "Performance alert: {{condition_name}}"
                category: "infrastructure"
                urgency: "{{severity}}"
                description: "New Relic alert {{alert_id}}: {{get-alert-details.description}}"
            - name: notify-sre
              type: call
              call: "msteams.send-message"
              with:
                channel_id: "sre_alerts"
                text: "ALERT: {{condition_name}} ({{severity}}). Incident {{create-incident.number}} opened."
  consumes:
    - type: http
      namespace: newrelic
      baseUri: "https://api.newrelic.com/v2"
      authentication:
        type: apikey
        key: "$secrets.newrelic_api_key"
      resources:
        - name: alerts
          path: "/alerts_violations/{{alert_id}}.json"
          inputParameters:
            - name: alert_id
              in: path
          operations:
            - name: get-alert
              method: GET
    - type: http
      namespace: servicenow
      baseUri: "https://ae.service-now.com/api/now"
      authentication:
        type: basic
        username: "$secrets.servicenow_user"
        password: "$secrets.servicenow_password"
      resources:
        - name: incidents
          path: "/table/incident"
          operations:
            - name: create-incident
              method: POST
    - type: http
      namespace: msteams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: channel-messages
          path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
          inputParameters:
            - name: channel_id
              in: path
          operations:
            - name: send-message
              method: POST

When an online order is placed, evaluates inventory at the DC and nearby stores, selects the optimal fulfillment source, and routes the order through the OMS for either ship-from-store or DC shipment.

naftiko: "0.5"
info:
  label: "Omnichannel Fulfillment Router"
  description: "When an online order is placed, evaluates inventory at the DC and nearby stores, selects the optimal fulfillment source, and routes the order through the OMS for either ship-from-store or DC shipment."
  tags:
    - retail
    - fulfillment
    - omnichannel
    - oms
    - wms
capability:
  exposes:
    - type: mcp
      namespace: fulfillment
      port: 8080
      tools:
        - name: route-order-fulfillment
          description: "Determine the best fulfillment location for an order and route it."
          inputParameters:
            - name: order_id
              in: body
              type: string
              description: "BigCommerce order ID."
            - name: customer_zip
              in: body
              type: string
              description: "Customer ZIP code."
          steps:
            - name: get-order
              type: call
              call: "bigcommerce.get-order"
              with:
                order_id: "{{order_id}}"
            - name: check-dc
              type: call
              call: "wms.check-availability"
              with:
                skus: "{{get-order.product_skus}}"
                location: "main_dc"
            - name: check-stores
              type: call
              call: "wms.find-nearest-stock"
              with:
                skus: "{{get-order.product_skus}}"
                zip: "{{customer_zip}}"
            - name: assign-fulfillment
              type: call
              call: "oms.assign-fulfillment"
              with:
                order_id: "{{order_id}}"
                dc_available: "{{check-dc.available}}"
                store_id: "{{check-stores.store_id}}"
  consumes:
    - type: http
      namespace: bigcommerce
      baseUri: "https://api.bigcommerce.com/stores/ae-outfitters/v2"
      authentication:
        type: bearer
        token: "$secrets.bigcommerce_token"
      resources:
        - name: orders
          path: "/orders/{{order_id}}"
          inputParameters:
            - name: order_id
              in: path
          operations:
            - name: get-order
              method: GET
    - type: http
      namespace: wms
      baseUri: "https://wms.ae.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.wms_token"
      resources:
        - name: availability
          path: "/inventory/availability"
          operations:
            - name: check-availability
              method: POST
            - name: find-nearest-stock
              method: POST
    - type: http
      namespace: oms
      baseUri: "https://oms.ae.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.oms_token"
      resources:
        - name: fulfillment
          path: "/orders/{{order_id}}/fulfillment"
          inputParameters:
            - name: order_id
              in: path
          operations:
            - name: assign-fulfillment
              method: POST

Synchronizes inventory across channels, resolves discrepancies, and updates all systems.

naftiko: "0.5"
info:
  label: "Omnichannel Inventory Sync Pipeline"
  description: "Synchronizes inventory across channels, resolves discrepancies, and updates all systems."
  tags:
    - inventory
    - salesforce
    - servicenow
    - slack
capability:
  exposes:
    - type: mcp
      namespace: inventory
      port: 8080
      tools:
        - name: omnichannel_inventory_sync_pipeline
          description: "Orchestrate omnichannel inventory sync pipeline workflow."
          inputParameters:
            - name: resource_id
              in: body
              type: string
              description: "Primary resource identifier." 
          steps:
            - name: get-salesforce
              type: call
              call: "salesforce.get-resource"
              with:
                resource_id: "{{resource_id}}"
            - name: process-servicenow
              type: call
              call: "servicenow.process-resource"
              with:
                data: "{{get-salesforce.result}}"
            - name: create-slack
              type: call
              call: "slack.create-resource"
              with:
                channel: "{{notification_channel}}"
                text: "Omnichannel Inventory Sync Pipeline step 3 complete."

  consumes:
    - type: http
      namespace: salesforce
      baseUri: "https://american-eagle-outfitters.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token" 
      resources:
        - name: resources
          path: "/resources/{{resource_id}}"
          operations:
            - name: salesforce-op
              method: POST
    - type: http
      namespace: servicenow
      baseUri: "https://american-eagle-outfitters.service-now.com/api/now"
      authentication:
        type: basic
        username: "$secrets.servicenow_user"
        password: "$secrets.servicenow_password" 
      resources:
        - name: resources
          path: "/resources/{{resource_id}}"
          operations:
            - name: servicenow-op
              method: POST
    - type: http
      namespace: slack
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token" 
      resources:
        - name: resources
          path: "/resources/{{resource_id}}"
          operations:
            - name: slack-op
              method: POST

Looks up a purchase order in Oracle E-Business Suite by PO number and returns the approval status, vendor name, and total amount.

naftiko: "0.5"
info:
  label: "Oracle E-Business Suite Purchase Order Status"
  description: "Looks up a purchase order in Oracle E-Business Suite by PO number and returns the approval status, vendor name, and total amount."
  tags:
    - procurement
    - erp
    - oracle-e-business-suite
capability:
  exposes:
    - type: mcp
      namespace: procurement
      port: 8080
      tools:
        - name: get-po-status
          description: "Look up an Oracle EBS purchase order by number."
          inputParameters:
            - name: po_number
              in: body
              type: string
              description: "Oracle EBS purchase order number."
          call: "oracle-ebs.get-po"
          with:
            po_number: "{{po_number}}"
          outputParameters:
            - name: approval_status
              type: string
              mapping: "$.AUTHORIZATION_STATUS"
            - name: vendor_name
              type: string
              mapping: "$.VENDOR_NAME"
            - name: total_amount
              type: number
              mapping: "$.TOTAL_AMOUNT"
  consumes:
    - type: http
      namespace: oracle-ebs
      baseUri: "https://erp.ae.com/webservices/rest/v1"
      authentication:
        type: basic
        username: "$secrets.oracle_ebs_user"
        password: "$secrets.oracle_ebs_password"
      resources:
        - name: purchase-orders
          path: "/purchaseOrders/{{po_number}}"
          inputParameters:
            - name: po_number
              in: path
          operations:
            - name: get-po
              method: GET

Initiates review cycles, collects feedback, aggregates scores, and distributes to managers.

naftiko: "0.5"
info:
  label: "Performance Review Cycle Pipeline"
  description: "Initiates review cycles, collects feedback, aggregates scores, and distributes to managers."
  tags:
    - hr
    - workday
    - confluence
    - slack
capability:
  exposes:
    - type: mcp
      namespace: hr
      port: 8080
      tools:
        - name: performance_review_cycle_pipeline
          description: "Orchestrate performance review cycle pipeline workflow."
          inputParameters:
            - name: resource_id
              in: body
              type: string
              description: "Primary resource identifier." 
          steps:
            - name: get-salesforce
              type: call
              call: "salesforce.get-resource"
              with:
                resource_id: "{{resource_id}}"
            - name: process-confluence
              type: call
              call: "confluence.process-resource"
              with:
                data: "{{get-salesforce.result}}"
            - name: create-slack
              type: call
              call: "slack.create-resource"
              with:
                channel: "{{notification_channel}}"
                text: "Performance Review Cycle Pipeline step 3 complete."

  consumes:
    - type: http
      namespace: salesforce
      baseUri: "https://american-eagle-outfitters.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token" 
      resources:
        - name: resources
          path: "/resources/{{resource_id}}"
          operations:
            - name: salesforce-op
              method: POST
    - type: http
      namespace: confluence
      baseUri: "https://american-eagle-outfitters.atlassian.net/wiki/rest/api"
      authentication:
        type: basic
        username: "$secrets.confluence_user"
        password: "$secrets.confluence_api_token" 
      resources:
        - name: resources
          path: "/resources/{{resource_id}}"
          operations:
            - name: confluence-op
              method: POST
    - type: http
      namespace: slack
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token" 
      resources:
        - name: resources
          path: "/resources/{{resource_id}}"
          operations:
            - name: slack-op
              method: POST

Triggers a dataset refresh in Power BI for the AEO daily sales dashboard and posts a notification to the analytics team in Microsoft Teams.

naftiko: "0.5"
info:
  label: "Power BI Sales Dashboard Refresh"
  description: "Triggers a dataset refresh in Power BI for the AEO daily sales dashboard and posts a notification to the analytics team in Microsoft Teams."
  tags:
    - analytics
    - power-bi
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: bi-refresh
      port: 8080
      tools:
        - name: refresh-sales-dashboard
          description: "Trigger a Power BI dataset refresh and notify the analytics team."
          inputParameters:
            - name: dataset_id
              in: body
              type: string
              description: "Power BI dataset ID."
          steps:
            - name: trigger-refresh
              type: call
              call: "powerbi.refresh-dataset"
              with:
                dataset_id: "{{dataset_id}}"
            - name: notify-team
              type: call
              call: "msteams.send-message"
              with:
                channel_id: "analytics_team"
                text: "Power BI sales dashboard refresh triggered for dataset {{dataset_id}}. Data will be updated within 15 minutes."
  consumes:
    - type: http
      namespace: powerbi
      baseUri: "https://api.powerbi.com/v1.0/myorg"
      authentication:
        type: bearer
        token: "$secrets.powerbi_token"
      resources:
        - name: datasets
          path: "/datasets/{{dataset_id}}/refreshes"
          inputParameters:
            - name: dataset_id
              in: path
          operations:
            - name: refresh-dataset
              method: POST
    - type: http
      namespace: msteams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: channel-messages
          path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
          inputParameters:
            - name: channel_id
              in: path
          operations:
            - name: send-message
              method: POST

Collects recent product reviews from BigCommerce, posts a weekly sentiment summary to the product team Microsoft Teams channel.

naftiko: "0.5"
info:
  label: "Product Review Sentiment Analyzer"
  description: "Collects recent product reviews from BigCommerce, posts a weekly sentiment summary to the product team Microsoft Teams channel."
  tags:
    - retail
    - customer-feedback
    - bigcommerce
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: review-analytics
      port: 8080
      tools:
        - name: analyze-reviews
          description: "Aggregate recent product reviews and deliver a sentiment summary."
          inputParameters:
            - name: product_id
              in: body
              type: string
              description: "Product ID."
            - name: since_date
              in: body
              type: string
              description: "Start date."
          steps:
            - name: get-reviews
              type: call
              call: "bigcommerce.get-reviews"
              with:
                product_id: "{{product_id}}"
                since: "{{since_date}}"
            - name: post-summary
              type: call
              call: "msteams.send-message"
              with:
                channel_id: "product_team"
                text: "Product {{product_id}} reviews since {{since_date}}: {{get-reviews.count}} reviews, avg {{get-reviews.avg_rating}}/5."
  consumes:
    - type: http
      namespace: bigcommerce
      baseUri: "https://api.bigcommerce.com/stores/ae-outfitters/v3"
      authentication:
        type: bearer
        token: "$secrets.bigcommerce_token"
      resources:
        - name: reviews
          path: "/catalog/products/{{product_id}}/reviews"
          inputParameters:
            - name: product_id
              in: path
          operations:
            - name: get-reviews
              method: GET
    - type: http
      namespace: msteams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: channel-messages
          path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
          inputParameters:
            - name: channel_id
              in: path
          operations:
            - name: send-message
              method: POST

Creates an Adobe Campaign email delivery targeting a customer segment, schedules the send, and logs campaign details to Google Sheets for the marketing team.

naftiko: "0.5"
info:
  label: "Promotional Email Campaign Manager"
  description: "Creates an Adobe Campaign email delivery targeting a customer segment, schedules the send, and logs campaign details to Google Sheets for the marketing team."
  tags:
    - marketing
    - email
    - adobe-campaign
    - google-sheets
capability:
  exposes:
    - type: mcp
      namespace: email-campaigns
      port: 8080
      tools:
        - name: create-promo-campaign
          description: "Create, schedule, and track a promotional email campaign."
          inputParameters:
            - name: campaign_label
              in: body
              type: string
              description: "Campaign label."
            - name: segment_id
              in: body
              type: string
              description: "Adobe Campaign audience segment ID."
            - name: template_name
              in: body
              type: string
              description: "Email template name."
            - name: send_date
              in: body
              type: string
              description: "Scheduled send date."
          steps:
            - name: create-delivery
              type: call
              call: "adobe-campaign.create-delivery"
              with:
                label: "{{campaign_label}}"
                template: "{{template_name}}"
                audience_segment: "{{segment_id}}"
                scheduled_date: "{{send_date}}"
            - name: log-campaign
              type: call
              call: "gsheets.append-row"
              with:
                spreadsheet_id: "aeo_email_tracker"
                range: "Campaigns!A:D"
                values:
                  - "{{campaign_label}}"
                  - "{{create-delivery.delivery_id}}"
                  - "{{send_date}}"
                  - "scheduled"
  consumes:
    - type: http
      namespace: adobe-campaign
      baseUri: "https://mc.adobe.io/ae-outfitters/campaign"
      authentication:
        type: bearer
        token: "$secrets.adobe_campaign_token"
      resources:
        - name: deliveries
          path: "/profileAndServicesExt/delivery"
          operations:
            - name: create-delivery
              method: POST
    - type: http
      namespace: gsheets
      baseUri: "https://sheets.googleapis.com/v4/spreadsheets"
      authentication:
        type: bearer
        token: "$secrets.google_sheets_token"
      resources:
        - name: values
          path: "/{{spreadsheet_id}}/values/{{range}}:append"
          inputParameters:
            - name: spreadsheet_id
              in: path
            - name: range
              in: path
          operations:
            - name: append-row
              method: POST

Retrieves the full customer profile from Salesforce including contact info, order history summary, and loyalty tier.

naftiko: "0.5"
info:
  label: "Salesforce Customer Profile Lookup"
  description: "Retrieves the full customer profile from Salesforce including contact info, order history summary, and loyalty tier."
  tags:
    - crm
    - salesforce
    - customer-service
capability:
  exposes:
    - type: mcp
      namespace: crm
      port: 8080
      tools:
        - name: get-customer-profile
          description: "Look up an AEO customer profile in Salesforce by customer ID."
          inputParameters:
            - name: customer_id
              in: body
              type: string
              description: "Salesforce contact ID."
          call: "salesforce.get-contact"
          with:
            contact_id: "{{customer_id}}"
          outputParameters:
            - name: name
              type: string
              mapping: "$.Name"
            - name: email
              type: string
              mapping: "$.Email"
            - name: loyalty_tier
              type: string
              mapping: "$.Loyalty_Tier__c"
            - name: lifetime_value
              type: number
              mapping: "$.Lifetime_Value__c"
  consumes:
    - type: http
      namespace: salesforce
      baseUri: "https://ae.my.salesforce.com/services/data/v59.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token"
      resources:
        - name: contacts
          path: "/sobjects/Contact/{{contact_id}}"
          inputParameters:
            - name: contact_id
              in: path
          operations:
            - name: get-contact
              method: GET

Looks up the payment status and due date of a vendor invoice in SAP.

naftiko: "0.5"
info:
  label: "SAP Vendor Invoice Status"
  description: "Looks up the payment status and due date of a vendor invoice in SAP."
  tags:
    - finance
    - erp
    - sap
capability:
  exposes:
    - type: mcp
      namespace: vendor-finance
      port: 8080
      tools:
        - name: get-invoice-status
          description: "Look up a vendor invoice status in SAP by invoice number."
          inputParameters:
            - name: invoice_number
              in: body
              type: string
              description: "SAP vendor invoice number."
          call: "sap.get-invoice"
          with:
            invoice_number: "{{invoice_number}}"
          outputParameters:
            - name: payment_status
              type: string
              mapping: "$.d.PaymentStatus"
            - name: amount
              type: number
              mapping: "$.d.GrossAmount"
            - name: due_date
              type: string
              mapping: "$.d.DueDate"
  consumes:
    - type: http
      namespace: sap
      baseUri: "https://ae-sap.s4hana.cloud/sap/opu/odata/sap/API_SUPPLIER_INVOICE_PROCESS_SRV"
      authentication:
        type: basic
        username: "$secrets.sap_user"
        password: "$secrets.sap_password"
      resources:
        - name: invoices
          path: "/A_SuplrInvcItemPurOrdRef('{{invoice_number}}')"
          inputParameters:
            - name: invoice_number
              in: path
          operations:
            - name: get-invoice
              method: GET

Identifies slow-moving inventory from POS data, applies progressive markdowns in BigCommerce, and generates a clearance report in Google Sheets.

naftiko: "0.5"
info:
  label: "Seasonal Clearance Automation"
  description: "Identifies slow-moving inventory from POS data, applies progressive markdowns in BigCommerce, and generates a clearance report in Google Sheets."
  tags:
    - retail
    - clearance
    - pos
    - bigcommerce
    - google-sheets
capability:
  exposes:
    - type: mcp
      namespace: clearance
      port: 8080
      tools:
        - name: run-clearance
          description: "Identify slow movers, apply markdowns, and generate reports."
          inputParameters:
            - name: season
              in: body
              type: string
              description: "Season being cleared."
            - name: markdown_pct
              in: body
              type: number
              description: "Markdown percentage."
          steps:
            - name: get-slow-movers
              type: call
              call: "pos.get-low-sell-through"
              with:
                season: "{{season}}"
            - name: apply-markdowns
              type: call
              call: "bigcommerce.bulk-markdown"
              with:
                product_ids: "{{get-slow-movers.product_ids}}"
                discount_pct: "{{markdown_pct}}"
            - name: log-report
              type: call
              call: "gsheets.append-row"
              with:
                spreadsheet_id: "aeo_clearance"
                range: "Reports!A:C"
                values:
                  - "{{season}}"
                  - "{{get-slow-movers.count}}"
                  - "{{markdown_pct}}"
  consumes:
    - type: http
      namespace: pos
      baseUri: "https://pos.ae.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.pos_token"
      resources:
        - name: sell-through
          path: "/analytics/sell-through"
          operations:
            - name: get-low-sell-through
              method: GET
    - type: http
      namespace: bigcommerce
      baseUri: "https://api.bigcommerce.com/stores/ae-outfitters/v3"
      authentication:
        type: bearer
        token: "$secrets.bigcommerce_token"
      resources:
        - name: pricing
          path: "/pricelists"
          operations:
            - name: bulk-markdown
              method: POST
    - type: http
      namespace: gsheets
      baseUri: "https://sheets.googleapis.com/v4/spreadsheets"
      authentication:
        type: bearer
        token: "$secrets.google_sheets_token"
      resources:
        - name: values
          path: "/{{spreadsheet_id}}/values/{{range}}:append"
          inputParameters:
            - name: spreadsheet_id
              in: path
            - name: range
              in: path
          operations:
            - name: append-row
              method: POST

Runs demand forecast models, generates buy recommendations, and distributes to merchandising teams.

naftiko: "0.5"
info:
  label: "Seasonal Demand Forecasting Pipeline"
  description: "Runs demand forecast models, generates buy recommendations, and distributes to merchandising teams."
  tags:
    - planning
    - snowflake
    - powerbi
    - slack
capability:
  exposes:
    - type: mcp
      namespace: planning
      port: 8080
      tools:
        - name: seasonal_demand_forecasting_pipeline
          description: "Orchestrate seasonal demand forecasting pipeline workflow."
          inputParameters:
            - name: resource_id
              in: body
              type: string
              description: "Primary resource identifier." 
          steps:
            - name: get-snowflake
              type: call
              call: "snowflake.get-resource"
              with:
                resource_id: "{{resource_id}}"
            - name: process-powerbi
              type: call
              call: "powerbi.process-resource"
              with:
                data: "{{get-snowflake.result}}"
            - name: create-slack
              type: call
              call: "slack.create-resource"
              with:
                channel: "{{notification_channel}}"
                text: "Seasonal Demand Forecasting Pipeline step 3 complete."

  consumes:
    - type: http
      namespace: snowflake
      baseUri: "https://american-eagle-outfitters.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token" 
      resources:
        - name: resources
          path: "/resources/{{resource_id}}"
          operations:
            - name: snowflake-op
              method: POST
    - type: http
      namespace: powerbi
      baseUri: "https://api.powerbi.com/v1.0/myorg"
      authentication:
        type: bearer
        token: "$secrets.powerbi_token" 
      resources:
        - name: resources
          path: "/resources/{{resource_id}}"
          operations:
            - name: powerbi-op
              method: POST
    - type: http
      namespace: slack
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token" 
      resources:
        - name: resources
          path: "/resources/{{resource_id}}"
          operations:
            - name: slack-op
              method: POST

Detects security incidents, enriches with context, creates response tickets, and notifies the SOC.

naftiko: "0.5"
info:
  label: "Security Incident Response Pipeline"
  description: "Detects security incidents, enriches with context, creates response tickets, and notifies the SOC."
  tags:
    - security
    - splunk
    - servicenow
    - pagerduty
capability:
  exposes:
    - type: mcp
      namespace: security
      port: 8080
      tools:
        - name: security_incident_response_pipeline
          description: "Orchestrate security incident response pipeline workflow."
          inputParameters:
            - name: resource_id
              in: body
              type: string
              description: "Primary resource identifier." 
          steps:
            - name: get-salesforce
              type: call
              call: "salesforce.get-resource"
              with:
                resource_id: "{{resource_id}}"
            - name: process-servicenow
              type: call
              call: "servicenow.process-resource"
              with:
                data: "{{get-salesforce.result}}"
            - name: create-jira
              type: call
              call: "jira.create-resource"
              with:
                channel: "{{notification_channel}}"
                text: "Security Incident Response Pipeline step 3 complete."

  consumes:
    - type: http
      namespace: salesforce
      baseUri: "https://american-eagle-outfitters.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token" 
      resources:
        - name: resources
          path: "/resources/{{resource_id}}"
          operations:
            - name: salesforce-op
              method: POST
    - type: http
      namespace: servicenow
      baseUri: "https://american-eagle-outfitters.service-now.com/api/now"
      authentication:
        type: basic
        username: "$secrets.servicenow_user"
        password: "$secrets.servicenow_password" 
      resources:
        - name: resources
          path: "/resources/{{resource_id}}"
          operations:
            - name: servicenow-op
              method: POST
    - type: http
      namespace: jira
      baseUri: "https://american-eagle-outfitters.atlassian.net/rest/api/3"
      authentication:
        type: basic
        username: "$secrets.jira_user"
        password: "$secrets.jira_api_token" 
      resources:
        - name: resources
          path: "/resources/{{resource_id}}"
          operations:
            - name: jira-op
              method: POST

Retrieves the current state, priority, and assignment details for a ServiceNow incident by number.

naftiko: "0.5"
info:
  label: "ServiceNow Incident Lookup"
  description: "Retrieves the current state, priority, and assignment details for a ServiceNow incident by number."
  tags:
    - it-support
    - servicenow
capability:
  exposes:
    - type: mcp
      namespace: it-support
      port: 8080
      tools:
        - name: get-incident
          description: "Look up a ServiceNow incident by number."
          inputParameters:
            - name: incident_number
              in: body
              type: string
              description: "ServiceNow incident number."
          call: "servicenow.get-incident"
          with:
            incident_number: "{{incident_number}}"
          outputParameters:
            - name: state
              type: string
              mapping: "$.result.state"
            - name: priority
              type: string
              mapping: "$.result.priority"
            - name: assigned_to
              type: string
              mapping: "$.result.assigned_to.display_value"
  consumes:
    - type: http
      namespace: servicenow
      baseUri: "https://ae.service-now.com/api/now"
      authentication:
        type: basic
        username: "$secrets.servicenow_user"
        password: "$secrets.servicenow_password"
      resources:
        - name: incidents
          path: "/table/incident?sysparm_query=number={{incident_number}}"
          inputParameters:
            - name: incident_number
              in: path
          operations:
            - name: get-incident
              method: GET

Retrieves a training document from the AEO SharePoint knowledge base by file path.

naftiko: "0.5"
info:
  label: "SharePoint Training Document Retrieval"
  description: "Retrieves a training document from the AEO SharePoint knowledge base by file path."
  tags:
    - collaboration
    - sharepoint
    - training
capability:
  exposes:
    - type: mcp
      namespace: knowledge-base
      port: 8080
      tools:
        - name: get-training-doc
          description: "Retrieve a training document from SharePoint."
          inputParameters:
            - name: file_path
              in: body
              type: string
              description: "Path to the document."
          call: "sharepoint.get-file"
          with:
            site_id: "training_site"
            file_path: "{{file_path}}"
          outputParameters:
            - name: download_url
              type: string
              mapping: "$.@microsoft.graph.downloadUrl"
            - name: last_modified
              type: string
              mapping: "$.lastModifiedDateTime"
  consumes:
    - type: http
      namespace: sharepoint
      baseUri: "https://graph.microsoft.com/v1.0/sites"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: files
          path: "/{{site_id}}/drive/root:/{{file_path}}"
          inputParameters:
            - name: site_id
              in: path
            - name: file_path
              in: path
          operations:
            - name: get-file
              method: GET

Queries carrier APIs to get shipping rates for a package to a customer destination and returns the cheapest option.

naftiko: "0.5"
info:
  label: "Shipping Rate Calculator"
  description: "Queries carrier APIs to get shipping rates for a package to a customer destination and returns the cheapest option."
  tags:
    - logistics
    - shipping
    - fulfillment
capability:
  exposes:
    - type: mcp
      namespace: shipping
      port: 8080
      tools:
        - name: get-best-rate
          description: "Compare shipping rates across carriers and return the optimal option."
          inputParameters:
            - name: weight_lbs
              in: body
              type: number
              description: "Package weight."
            - name: origin_zip
              in: body
              type: string
              description: "Origin ZIP."
            - name: destination_zip
              in: body
              type: string
              description: "Destination ZIP."
          steps:
            - name: ups-rate
              type: call
              call: "ups.get-rate"
              with:
                weight: "{{weight_lbs}}"
                origin: "{{origin_zip}}"
                destination: "{{destination_zip}}"
            - name: fedex-rate
              type: call
              call: "fedex.get-rate"
              with:
                weight: "{{weight_lbs}}"
                origin: "{{origin_zip}}"
                destination: "{{destination_zip}}"
  consumes:
    - type: http
      namespace: ups
      baseUri: "https://onlinetools.ups.com/api"
      authentication:
        type: bearer
        token: "$secrets.ups_token"
      resources:
        - name: rating
          path: "/rating/v1/rate"
          operations:
            - name: get-rate
              method: POST
    - type: http
      namespace: fedex
      baseUri: "https://apis.fedex.com/rate/v1"
      authentication:
        type: bearer
        token: "$secrets.fedex_token"
      resources:
        - name: rates
          path: "/rates/quotes"
          operations:
            - name: get-rate
              method: POST

Monitors service levels, detects SLA breaches, creates escalation tickets, and reports to management.

naftiko: "0.5"
info:
  label: "SLA Compliance Monitoring Pipeline"
  description: "Monitors service levels, detects SLA breaches, creates escalation tickets, and reports to management."
  tags:
    - operations
    - datadog
    - servicenow
    - powerbi
capability:
  exposes:
    - type: mcp
      namespace: operations
      port: 8080
      tools:
        - name: sla_compliance_monitoring_pipeline
          description: "Orchestrate sla compliance monitoring pipeline workflow."
          inputParameters:
            - name: resource_id
              in: body
              type: string
              description: "Primary resource identifier." 
          steps:
            - name: get-datadog
              type: call
              call: "datadog.get-resource"
              with:
                resource_id: "{{resource_id}}"
            - name: process-servicenow
              type: call
              call: "servicenow.process-resource"
              with:
                data: "{{get-datadog.result}}"
            - name: create-powerbi
              type: call
              call: "powerbi.create-resource"
              with:
                channel: "{{notification_channel}}"
                text: "SLA Compliance Monitoring Pipeline step 3 complete."

  consumes:
    - type: http
      namespace: datadog
      baseUri: "https://api.datadoghq.com/api/v1"
      authentication:
        type: apiKey
        key: "$secrets.datadog_api_key"
        header: "DD-API-KEY" 
      resources:
        - name: resources
          path: "/resources/{{resource_id}}"
          operations:
            - name: datadog-op
              method: POST
    - type: http
      namespace: servicenow
      baseUri: "https://american-eagle-outfitters.service-now.com/api/now"
      authentication:
        type: basic
        username: "$secrets.servicenow_user"
        password: "$secrets.servicenow_password" 
      resources:
        - name: resources
          path: "/resources/{{resource_id}}"
          operations:
            - name: servicenow-op
              method: POST
    - type: http
      namespace: powerbi
      baseUri: "https://api.powerbi.com/v1.0/myorg"
      authentication:
        type: bearer
        token: "$secrets.powerbi_token" 
      resources:
        - name: resources
          path: "/resources/{{resource_id}}"
          operations:
            - name: powerbi-op
              method: POST

Collects engagement metrics from Instagram, Twitter, and YouTube for a specified campaign period, logs them to Google Sheets, and posts a summary to the marketing Microsoft Teams channel.

naftiko: "0.5"
info:
  label: "Social Media Engagement Aggregator"
  description: "Collects engagement metrics from Instagram, Twitter, and YouTube for a specified campaign period, logs them to Google Sheets, and posts a summary to the marketing Microsoft Teams channel."
  tags:
    - marketing
    - social-media
    - instagram
    - twitter
    - youtube
    - google-sheets
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: social-analytics
      port: 8080
      tools:
        - name: aggregate-social-metrics
          description: "Gather engagement metrics across social platforms and deliver a consolidated report."
          inputParameters:
            - name: campaign_name
              in: body
              type: string
              description: "Campaign name."
            - name: date_range
              in: body
              type: string
              description: "Date range for metrics collection."
          steps:
            - name: get-ig-metrics
              type: call
              call: "instagram.get-account-insights"
              with:
                period: "{{date_range}}"
                metrics: "impressions,reach,engagement"
            - name: get-twitter-metrics
              type: call
              call: "twitter.get-tweet-metrics"
              with:
                query: "#AEO OR #AmericanEagle"
                since: "{{date_range}}"
            - name: get-yt-metrics
              type: call
              call: "youtube.get-channel-stats"
              with:
                channel_id: "aeo_official"
                date_range: "{{date_range}}"
            - name: log-to-sheets
              type: call
              call: "gsheets.append-row"
              with:
                spreadsheet_id: "aeo_social_tracker"
                range: "Campaigns!A:F"
                values:
                  - "{{campaign_name}}"
                  - "{{date_range}}"
                  - "{{get-ig-metrics.engagement}}"
                  - "{{get-twitter-metrics.total_engagements}}"
                  - "{{get-yt-metrics.views}}"
                  - "aggregated"
            - name: post-summary
              type: call
              call: "msteams.send-message"
              with:
                channel_id: "marketing_social"
                text: "Campaign '{{campaign_name}}' social report: IG engagement {{get-ig-metrics.engagement}}, Twitter {{get-twitter-metrics.total_engagements}}, YouTube views {{get-yt-metrics.views}}."
  consumes:
    - type: http
      namespace: instagram
      baseUri: "https://graph.facebook.com/v18.0"
      authentication:
        type: bearer
        token: "$secrets.instagram_token"
      resources:
        - name: insights
          path: "/me/insights"
          operations:
            - name: get-account-insights
              method: GET
    - type: http
      namespace: twitter
      baseUri: "https://api.twitter.com/2"
      authentication:
        type: bearer
        token: "$secrets.twitter_bearer_token"
      resources:
        - name: tweets-search
          path: "/tweets/search/recent"
          operations:
            - name: get-tweet-metrics
              method: GET
    - type: http
      namespace: youtube
      baseUri: "https://www.googleapis.com/youtube/v3"
      authentication:
        type: apikey
        key: "$secrets.youtube_api_key"
      resources:
        - name: channels
          path: "/channels?part=statistics"
          operations:
            - name: get-channel-stats
              method: GET
    - type: http
      namespace: gsheets
      baseUri: "https://sheets.googleapis.com/v4/spreadsheets"
      authentication:
        type: bearer
        token: "$secrets.google_sheets_token"
      resources:
        - name: values
          path: "/{{spreadsheet_id}}/values/{{range}}:append"
          inputParameters:
            - name: spreadsheet_id
              in: path
            - name: range
              in: path
          operations:
            - name: append-row
              method: POST
    - type: http
      namespace: msteams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: channel-messages
          path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
          inputParameters:
            - name: channel_id
              in: path
          operations:
            - name: send-message
              method: POST

Audits license usage, identifies underutilized licenses, recommends optimization, and notifies IT.

naftiko: "0.5"
info:
  label: "Software License Optimization Pipeline"
  description: "Audits license usage, identifies underutilized licenses, recommends optimization, and notifies IT."
  tags:
    - operations
    - servicenow
    - snowflake
    - slack
capability:
  exposes:
    - type: mcp
      namespace: operations
      port: 8080
      tools:
        - name: software_license_optimization
          description: "Orchestrate software license optimization pipeline workflow."
          inputParameters:
            - name: resource_id
              in: body
              type: string
              description: "Primary resource identifier." 
          steps:
            - name: get-servicenow
              type: call
              call: "servicenow.get-resource"
              with:
                resource_id: "{{resource_id}}"
            - name: process-snowflake
              type: call
              call: "snowflake.process-resource"
              with:
                data: "{{get-servicenow.result}}"
            - name: create-slack
              type: call
              call: "slack.create-resource"
              with:
                channel: "{{notification_channel}}"
                text: "Software License Optimization Pipeline step 3 complete."

  consumes:
    - type: http
      namespace: servicenow
      baseUri: "https://american-eagle-outfitters.service-now.com/api/now"
      authentication:
        type: basic
        username: "$secrets.servicenow_user"
        password: "$secrets.servicenow_password" 
      resources:
        - name: resources
          path: "/resources/{{resource_id}}"
          operations:
            - name: servicenow-op
              method: POST
    - type: http
      namespace: snowflake
      baseUri: "https://american-eagle-outfitters.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token" 
      resources:
        - name: resources
          path: "/resources/{{resource_id}}"
          operations:
            - name: snowflake-op
              method: POST
    - type: http
      namespace: slack
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token" 
      resources:
        - name: resources
          path: "/resources/{{resource_id}}"
          operations:
            - name: slack-op
              method: POST

Retrieves details of a Square payment transaction including amount, card brand, and status for in-store transactions.

naftiko: "0.5"
info:
  label: "Square Payment Transaction Lookup"
  description: "Retrieves details of a Square payment transaction including amount, card brand, and status for in-store transactions."
  tags:
    - retail
    - payments
    - square
capability:
  exposes:
    - type: mcp
      namespace: payments
      port: 8080
      tools:
        - name: get-payment-details
          description: "Look up a Square payment transaction by transaction ID."
          inputParameters:
            - name: payment_id
              in: body
              type: string
              description: "Square payment ID."
          call: "square.get-payment"
          with:
            payment_id: "{{payment_id}}"
          outputParameters:
            - name: amount
              type: number
              mapping: "$.payment.amount_money.amount"
            - name: card_brand
              type: string
              mapping: "$.payment.card_details.card.card_brand"
            - name: status
              type: string
              mapping: "$.payment.status"
  consumes:
    - type: http
      namespace: square
      baseUri: "https://connect.squareup.com/v2"
      authentication:
        type: bearer
        token: "$secrets.square_token"
      resources:
        - name: payments
          path: "/payments/{{payment_id}}"
          inputParameters:
            - name: payment_id
              in: path
          operations:
            - name: get-payment
              method: GET

When a store inventory falls below minimum threshold, creates a transfer order in the OMS from the nearest distribution center, updates the WMS, and notifies the store manager via Microsoft Teams.

naftiko: "0.5"
info:
  label: "Store Inventory Replenishment Pipeline"
  description: "When a store inventory falls below minimum threshold, creates a transfer order in the OMS from the nearest distribution center, updates the WMS, and notifies the store manager via Microsoft Teams."
  tags:
    - retail
    - inventory
    - oms
    - wms
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: replenishment
      port: 8080
      tools:
        - name: trigger-replenishment
          description: "Create a transfer order from DC to store for low-stock items and notify the store manager."
          inputParameters:
            - name: store_id
              in: body
              type: string
              description: "Store location ID."
            - name: sku
              in: body
              type: string
              description: "Product SKU needing replenishment."
            - name: quantity
              in: body
              type: number
              description: "Quantity to transfer."
          steps:
            - name: create-transfer
              type: call
              call: "oms.create-transfer-order"
              with:
                from_location: "main_dc"
                to_location: "{{store_id}}"
                sku: "{{sku}}"
                quantity: "{{quantity}}"
            - name: update-wms
              type: call
              call: "wms.reserve-transfer"
              with:
                transfer_id: "{{create-transfer.transfer_id}}"
                sku: "{{sku}}"
                quantity: "{{quantity}}"
            - name: notify-manager
              type: call
              call: "msteams.send-message"
              with:
                channel_id: "store_{{store_id}}"
                text: "Replenishment transfer {{create-transfer.transfer_id}} created: {{quantity}} units of {{sku}} shipping from DC. ETA: {{create-transfer.eta}}."
  consumes:
    - type: http
      namespace: oms
      baseUri: "https://oms.ae.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.oms_token"
      resources:
        - name: transfers
          path: "/transfer-orders"
          operations:
            - name: create-transfer-order
              method: POST
    - type: http
      namespace: wms
      baseUri: "https://wms.ae.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.wms_token"
      resources:
        - name: reservations
          path: "/transfers/{{transfer_id}}/reserve"
          inputParameters:
            - name: transfer_id
              in: path
          operations:
            - name: reserve-transfer
              method: POST
    - type: http
      namespace: msteams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: channel-messages
          path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
          inputParameters:
            - name: channel_id
              in: path
          operations:
            - name: send-message
              method: POST

When a new AEO store location is approved, creates a Microsoft Planner plan for the build-out, provisions the store in the POS system, sets up a Teams channel, and creates a Jira epic for IT setup.

naftiko: "0.5"
info:
  label: "Store Opening Coordinator"
  description: "When a new AEO store location is approved, creates a Microsoft Planner plan for the build-out, provisions the store in the POS system, sets up a Teams channel, and creates a Jira epic for IT setup."
  tags:
    - retail
    - operations
    - microsoft-planner
    - microsoft-teams
    - jira
capability:
  exposes:
    - type: mcp
      namespace: store-opening
      port: 8080
      tools:
        - name: initiate-store-opening
          description: "Coordinate all systems for a new AEO store opening."
          inputParameters:
            - name: store_id
              in: body
              type: string
              description: "New store location ID."
            - name: store_name
              in: body
              type: string
              description: "Store name and location."
            - name: target_date
              in: body
              type: string
              description: "Target opening date."
          steps:
            - name: create-plan
              type: call
              call: "planner.create-plan"
              with:
                title: "Store Opening: {{store_name}}"
                group_id: "store_openings"
            - name: provision-pos
              type: call
              call: "pos.create-store"
              with:
                store_id: "{{store_id}}"
                name: "{{store_name}}"
            - name: create-channel
              type: call
              call: "msteams.create-channel"
              with:
                team_id: "store_ops"
                display_name: "{{store_name}} Opening"
            - name: create-epic
              type: call
              call: "jira.create-issue"
              with:
                project: "STORES"
                issue_type: "Epic"
                summary: "IT setup: {{store_name}}"
                due_date: "{{target_date}}"
  consumes:
    - type: http
      namespace: planner
      baseUri: "https://graph.microsoft.com/v1.0/planner"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: plans
          path: "/plans"
          operations:
            - name: create-plan
              method: POST
    - type: http
      namespace: pos
      baseUri: "https://pos.ae.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.pos_token"
      resources:
        - name: stores
          path: "/stores"
          operations:
            - name: create-store
              method: POST
    - type: http
      namespace: msteams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: channels
          path: "/teams/{{team_id}}/channels"
          inputParameters:
            - name: team_id
              in: path
          operations:
            - name: create-channel
              method: POST
    - type: http
      namespace: jira
      baseUri: "https://ae-outfitters.atlassian.net/rest/api/3"
      authentication:
        type: basic
        username: "$secrets.jira_user"
        password: "$secrets.jira_api_token"
      resources:
        - name: issues
          path: "/issue"
          operations:
            - name: create-issue
              method: POST

Compares store metrics against benchmarks, identifies top and bottom performers, and distributes reports.

naftiko: "0.5"
info:
  label: "Store Performance Benchmark Pipeline"
  description: "Compares store metrics against benchmarks, identifies top and bottom performers, and distributes reports."
  tags:
    - analytics
    - snowflake
    - powerbi
    - slack
capability:
  exposes:
    - type: mcp
      namespace: analytics
      port: 8080
      tools:
        - name: store_performance_benchmark_pipeline
          description: "Orchestrate store performance benchmark pipeline workflow."
          inputParameters:
            - name: resource_id
              in: body
              type: string
              description: "Primary resource identifier." 
          steps:
            - name: get-snowflake
              type: call
              call: "snowflake.get-resource"
              with:
                resource_id: "{{resource_id}}"
            - name: process-powerbi
              type: call
              call: "powerbi.process-resource"
              with:
                data: "{{get-snowflake.result}}"
            - name: create-slack
              type: call
              call: "slack.create-resource"
              with:
                channel: "{{notification_channel}}"
                text: "Store Performance Benchmark Pipeline step 3 complete."

  consumes:
    - type: http
      namespace: snowflake
      baseUri: "https://american-eagle-outfitters.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token" 
      resources:
        - name: resources
          path: "/resources/{{resource_id}}"
          operations:
            - name: snowflake-op
              method: POST
    - type: http
      namespace: powerbi
      baseUri: "https://api.powerbi.com/v1.0/myorg"
      authentication:
        type: bearer
        token: "$secrets.powerbi_token" 
      resources:
        - name: resources
          path: "/resources/{{resource_id}}"
          operations:
            - name: powerbi-op
              method: POST
    - type: http
      namespace: slack
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token" 
      resources:
        - name: resources
          path: "/resources/{{resource_id}}"
          operations:
            - name: slack-op
              method: POST

Pulls end-of-day register summaries from each POS terminal, compares against expected totals, and flags discrepancies in ServiceNow.

naftiko: "0.5"
info:
  label: "Store POS Daily Reconciliation"
  description: "Pulls end-of-day register summaries from each POS terminal, compares against expected totals, and flags discrepancies in ServiceNow."
  tags:
    - retail
    - finance
    - pos
    - servicenow
capability:
  exposes:
    - type: mcp
      namespace: pos-reconciliation
      port: 8080
      tools:
        - name: reconcile-daily-pos
          description: "Reconcile daily POS register totals and flag discrepancies."
          inputParameters:
            - name: store_id
              in: body
              type: string
              description: "Store ID."
            - name: date
              in: body
              type: string
              description: "Business date."
          steps:
            - name: get-totals
              type: call
              call: "pos.get-register-summary"
              with:
                store_id: "{{store_id}}"
                date: "{{date}}"
            - name: flag-variance
              type: call
              call: "servicenow.create-incident"
              with:
                short_description: "POS variance at store {{store_id}} on {{date}}"
                category: "finance"
                description: "Variance: ${{get-totals.variance_amount}} at store {{store_id}}."
  consumes:
    - type: http
      namespace: pos
      baseUri: "https://pos.ae.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.pos_token"
      resources:
        - name: register-summary
          path: "/stores/{{store_id}}/registers/summary/{{date}}"
          inputParameters:
            - name: store_id
              in: path
            - name: date
              in: path
          operations:
            - name: get-register-summary
              method: GET
    - type: http
      namespace: servicenow
      baseUri: "https://ae.service-now.com/api/now"
      authentication:
        type: basic
        username: "$secrets.servicenow_user"
        password: "$secrets.servicenow_password"
      resources:
        - name: incidents
          path: "/table/incident"
          operations:
            - name: create-incident
              method: POST

Monitors integration endpoints, detects failures, creates support tickets, and notifies integration team.

naftiko: "0.5"
info:
  label: "Third-Party Integration Health Pipeline"
  description: "Monitors integration endpoints, detects failures, creates support tickets, and notifies integration team."
  tags:
    - integrations
    - datadog
    - servicenow
    - slack
capability:
  exposes:
    - type: mcp
      namespace: integrations
      port: 8080
      tools:
        - name: third_party_integration_health_pipeline
          description: "Orchestrate third-party integration health pipeline workflow."
          inputParameters:
            - name: resource_id
              in: body
              type: string
              description: "Primary resource identifier." 
          steps:
            - name: get-datadog
              type: call
              call: "datadog.get-resource"
              with:
                resource_id: "{{resource_id}}"
            - name: process-servicenow
              type: call
              call: "servicenow.process-resource"
              with:
                data: "{{get-datadog.result}}"
            - name: create-slack
              type: call
              call: "slack.create-resource"
              with:
                channel: "{{notification_channel}}"
                text: "Third-Party Integration Health Pipeline step 3 complete."

  consumes:
    - type: http
      namespace: datadog
      baseUri: "https://api.datadoghq.com/api/v1"
      authentication:
        type: apiKey
        key: "$secrets.datadog_api_key"
        header: "DD-API-KEY" 
      resources:
        - name: resources
          path: "/resources/{{resource_id}}"
          operations:
            - name: datadog-op
              method: POST
    - type: http
      namespace: servicenow
      baseUri: "https://american-eagle-outfitters.service-now.com/api/now"
      authentication:
        type: basic
        username: "$secrets.servicenow_user"
        password: "$secrets.servicenow_password" 
      resources:
        - name: resources
          path: "/resources/{{resource_id}}"
          operations:
            - name: servicenow-op
              method: POST
    - type: http
      namespace: slack
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token" 
      resources:
        - name: resources
          path: "/resources/{{resource_id}}"
          operations:
            - name: slack-op
              method: POST

Tracks mandatory training completion, sends reminders, escalates non-compliance, and reports status.

naftiko: "0.5"
info:
  label: "Training Compliance Tracker Pipeline"
  description: "Tracks mandatory training completion, sends reminders, escalates non-compliance, and reports status."
  tags:
    - compliance
    - workday
    - servicenow
    - slack
capability:
  exposes:
    - type: mcp
      namespace: compliance
      port: 8080
      tools:
        - name: training_compliance_tracker_pipeline
          description: "Orchestrate training compliance tracker pipeline workflow."
          inputParameters:
            - name: resource_id
              in: body
              type: string
              description: "Primary resource identifier." 
          steps:
            - name: get-salesforce
              type: call
              call: "salesforce.get-resource"
              with:
                resource_id: "{{resource_id}}"
            - name: process-servicenow
              type: call
              call: "servicenow.process-resource"
              with:
                data: "{{get-salesforce.result}}"
            - name: create-slack
              type: call
              call: "slack.create-resource"
              with:
                channel: "{{notification_channel}}"
                text: "Training Compliance Tracker Pipeline step 3 complete."

  consumes:
    - type: http
      namespace: salesforce
      baseUri: "https://american-eagle-outfitters.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token" 
      resources:
        - name: resources
          path: "/resources/{{resource_id}}"
          operations:
            - name: salesforce-op
              method: POST
    - type: http
      namespace: servicenow
      baseUri: "https://american-eagle-outfitters.service-now.com/api/now"
      authentication:
        type: basic
        username: "$secrets.servicenow_user"
        password: "$secrets.servicenow_password" 
      resources:
        - name: resources
          path: "/resources/{{resource_id}}"
          operations:
            - name: servicenow-op
              method: POST
    - type: http
      namespace: slack
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token" 
      resources:
        - name: resources
          path: "/resources/{{resource_id}}"
          operations:
            - name: slack-op
              method: POST

Retrieves supplier compliance documents from the vendor portal, uploads them to SharePoint for archival, and creates a Jira review task for the compliance team.

naftiko: "0.5"
info:
  label: "Vendor Compliance Check Pipeline"
  description: "Retrieves supplier compliance documents from the vendor portal, uploads them to SharePoint for archival, and creates a Jira review task for the compliance team."
  tags:
    - procurement
    - compliance
    - sharepoint
    - jira
capability:
  exposes:
    - type: mcp
      namespace: vendor-compliance
      port: 8080
      tools:
        - name: check-vendor-compliance
          description: "Collect vendor compliance documents and route for review."
          inputParameters:
            - name: vendor_id
              in: body
              type: string
              description: "Vendor identifier."
            - name: doc_type
              in: body
              type: string
              description: "Compliance document type."
          steps:
            - name: get-doc
              type: call
              call: "vendor-portal.get-document"
              with:
                vendor_id: "{{vendor_id}}"
                doc_type: "{{doc_type}}"
            - name: upload-doc
              type: call
              call: "sharepoint.upload-file"
              with:
                site_id: "vendor_compliance"
                folder_path: "Vendors/{{vendor_id}}"
                file_name: "{{get-doc.file_name}}"
                file_content: "{{get-doc.content}}"
            - name: create-review
              type: call
              call: "jira.create-issue"
              with:
                project: "COMPLIANCE"
                issue_type: "Task"
                summary: "Review {{doc_type}} from vendor {{vendor_id}}"
                description: "Document: {{upload-doc.url}}"
  consumes:
    - type: http
      namespace: vendor-portal
      baseUri: "https://vendors.ae.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.vendor_portal_token"
      resources:
        - name: documents
          path: "/vendors/{{vendor_id}}/documents/{{doc_type}}"
          inputParameters:
            - name: vendor_id
              in: path
            - name: doc_type
              in: path
          operations:
            - name: get-document
              method: GET
    - type: http
      namespace: sharepoint
      baseUri: "https://graph.microsoft.com/v1.0/sites"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: files
          path: "/{{site_id}}/drive/root:/{{folder_path}}/{{file_name}}:/content"
          inputParameters:
            - name: site_id
              in: path
            - name: folder_path
              in: path
            - name: file_name
              in: path
          operations:
            - name: upload-file
              method: PUT
    - type: http
      namespace: jira
      baseUri: "https://ae-outfitters.atlassian.net/rest/api/3"
      authentication:
        type: basic
        username: "$secrets.jira_user"
        password: "$secrets.jira_api_token"
      resources:
        - name: issues
          path: "/issue"
          operations:
            - name: create-issue
              method: POST

Reconciles vendor invoices with POs, flags discrepancies, processes payments, and sends remittances.

naftiko: "0.5"
info:
  label: "Vendor Payment Reconciliation Pipeline"
  description: "Reconciles vendor invoices with POs, flags discrepancies, processes payments, and sends remittances."
  tags:
    - finance
    - servicenow
    - salesforce
    - slack
capability:
  exposes:
    - type: mcp
      namespace: finance
      port: 8080
      tools:
        - name: vendor_payment_reconciliation_pipeline
          description: "Orchestrate vendor payment reconciliation pipeline workflow."
          inputParameters:
            - name: resource_id
              in: body
              type: string
              description: "Primary resource identifier." 
          steps:
            - name: get-servicenow
              type: call
              call: "servicenow.get-resource"
              with:
                resource_id: "{{resource_id}}"
            - name: process-salesforce
              type: call
              call: "salesforce.process-resource"
              with:
                data: "{{get-servicenow.result}}"
            - name: create-slack
              type: call
              call: "slack.create-resource"
              with:
                channel: "{{notification_channel}}"
                text: "Vendor Payment Reconciliation Pipeline step 3 complete."

  consumes:
    - type: http
      namespace: servicenow
      baseUri: "https://american-eagle-outfitters.service-now.com/api/now"
      authentication:
        type: basic
        username: "$secrets.servicenow_user"
        password: "$secrets.servicenow_password" 
      resources:
        - name: resources
          path: "/resources/{{resource_id}}"
          operations:
            - name: servicenow-op
              method: POST
    - type: http
      namespace: salesforce
      baseUri: "https://american-eagle-outfitters.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token" 
      resources:
        - name: resources
          path: "/resources/{{resource_id}}"
          operations:
            - name: salesforce-op
              method: POST
    - type: http
      namespace: slack
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token" 
      resources:
        - name: resources
          path: "/resources/{{resource_id}}"
          operations:
            - name: slack-op
              method: POST

Evaluates vendor security posture, scores risk, creates assessment records, and notifies procurement.

naftiko: "0.5"
info:
  label: "Vendor Risk Assessment Pipeline"
  description: "Evaluates vendor security posture, scores risk, creates assessment records, and notifies procurement."
  tags:
    - procurement
    - servicenow
    - confluence
    - slack
capability:
  exposes:
    - type: mcp
      namespace: procurement
      port: 8080
      tools:
        - name: vendor_risk_assessment_pipeline
          description: "Orchestrate vendor risk assessment pipeline workflow."
          inputParameters:
            - name: resource_id
              in: body
              type: string
              description: "Primary resource identifier." 
          steps:
            - name: get-servicenow
              type: call
              call: "servicenow.get-resource"
              with:
                resource_id: "{{resource_id}}"
            - name: process-confluence
              type: call
              call: "confluence.process-resource"
              with:
                data: "{{get-servicenow.result}}"
            - name: create-slack
              type: call
              call: "slack.create-resource"
              with:
                channel: "{{notification_channel}}"
                text: "Vendor Risk Assessment Pipeline step 3 complete."

  consumes:
    - type: http
      namespace: servicenow
      baseUri: "https://american-eagle-outfitters.service-now.com/api/now"
      authentication:
        type: basic
        username: "$secrets.servicenow_user"
        password: "$secrets.servicenow_password" 
      resources:
        - name: resources
          path: "/resources/{{resource_id}}"
          operations:
            - name: servicenow-op
              method: POST
    - type: http
      namespace: confluence
      baseUri: "https://american-eagle-outfitters.atlassian.net/wiki/rest/api"
      authentication:
        type: basic
        username: "$secrets.confluence_user"
        password: "$secrets.confluence_api_token" 
      resources:
        - name: resources
          path: "/resources/{{resource_id}}"
          operations:
            - name: confluence-op
              method: POST
    - type: http
      namespace: slack
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token" 
      resources:
        - name: resources
          path: "/resources/{{resource_id}}"
          operations:
            - name: slack-op
              method: POST

Aggregates weekly POS sales data across all stores, generates a performance summary, and emails the weekly report to district managers via Microsoft Outlook.

naftiko: "0.5"
info:
  label: "Weekly Store Performance Email"
  description: "Aggregates weekly POS sales data across all stores, generates a performance summary, and emails the weekly report to district managers via Microsoft Outlook."
  tags:
    - retail
    - analytics
    - pos
    - microsoft-outlook
capability:
  exposes:
    - type: mcp
      namespace: weekly-reporting
      port: 8080
      tools:
        - name: send-weekly-performance
          description: "Generate and email the weekly store performance summary to district managers."
          inputParameters:
            - name: district_id
              in: body
              type: string
              description: "District identifier."
            - name: week_ending
              in: body
              type: string
              description: "Week ending date."
            - name: manager_email
              in: body
              type: string
              description: "District manager email."
          steps:
            - name: get-sales
              type: call
              call: "pos.get-district-sales"
              with:
                district_id: "{{district_id}}"
                week_ending: "{{week_ending}}"
            - name: send-report
              type: call
              call: "outlook.send-mail"
              with:
                to: "{{manager_email}}"
                subject: "Weekly Performance - District {{district_id}} ending {{week_ending}}"
                body: "Total revenue: ${{get-sales.total_revenue}}. Top store: {{get-sales.top_store}}. YoY comp: {{get-sales.comp_pct}}%."
  consumes:
    - type: http
      namespace: pos
      baseUri: "https://pos.ae.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.pos_token"
      resources:
        - name: district-sales
          path: "/districts/{{district_id}}/sales/weekly"
          inputParameters:
            - name: district_id
              in: path
          operations:
            - name: get-district-sales
              method: GET
    - type: http
      namespace: outlook
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: send-mail
          path: "/me/sendMail"
          operations:
            - name: send-mail
              method: POST

Pulls weekly shift schedules from the workforce management system and sends schedule reminders to associates via Microsoft Teams.

naftiko: "0.5"
info:
  label: "Workforce Scheduling Reminder"
  description: "Pulls weekly shift schedules from the workforce management system and sends schedule reminders to associates via Microsoft Teams."
  tags:
    - hr
    - workforce-management
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: workforce
      port: 8080
      tools:
        - name: send-schedule-reminders
          description: "Send weekly shift reminders to store associates."
          inputParameters:
            - name: store_id
              in: body
              type: string
              description: "Store ID."
            - name: week_start
              in: body
              type: string
              description: "Week start date."
          steps:
            - name: get-schedule
              type: call
              call: "wfm.get-schedule"
              with:
                store_id: "{{store_id}}"
                week_start: "{{week_start}}"
            - name: notify-store
              type: call
              call: "msteams.send-message"
              with:
                channel_id: "store_{{store_id}}"
                text: "Weekly schedule for store {{store_id}} starting {{week_start}} is posted. {{get-schedule.summary}}"
  consumes:
    - type: http
      namespace: wfm
      baseUri: "https://wfm.ae.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.wfm_token"
      resources:
        - name: schedules
          path: "/stores/{{store_id}}/schedules"
          inputParameters:
            - name: store_id
              in: path
          operations:
            - name: get-schedule
              method: GET
    - type: http
      namespace: msteams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: channel-messages
          path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
          inputParameters:
            - name: channel_id
              in: path
          operations:
            - name: send-message
              method: POST