TJX Companies Capabilities

Naftiko 0.5 capability definitions for TJX Companies - 100 capabilities showing integration workflows and service orchestrations.

Sort
Expand

Manages annual compliance certifications by distributing attestations, tracking completion, and filing results.

naftiko: "0.5"
info:
  label: "Annual Compliance Certification Orchestrator"
  description: "Manages annual compliance certifications by distributing attestations, tracking completion, and filing results."
  tags:
    - compliance
    - hr
    - legal
capability:
  exposes:
    - type: mcp
      namespace: compliance
      port: 8080
      tools:
        - name: run-annual-compliance-certification-orchestrator
          description: "Manages annual compliance certifications by distributing attestations, tracking completion, and filing results."
          inputParameters:
            - name: request_id
              in: body
              type: string
              description: "The unique request identifier."
          steps:
            - name: step-1
              type: call
              call: "primary-api.initiate"
              with:
                request_id: "{{request_id}}"
            - name: step-2
              type: call
              call: "secondary-api.process"
              with:
                request_id: "{{request_id}}"
                data: "{{step-1.result}}"
            - name: notify
              type: call
              call: "notification-api.send"
              with:
                channel: "operations"
                message: "Completed Annual Compliance Certification Orchestrator for request {{request_id}}."
  consumes:
    - type: http
      namespace: primary-api
      baseUri: "https://api.tjx-companies.com/v1"
      authentication:
        type: bearer
        token: "$secrets.tjx_companies_api_token"
      resources:
        - name: primary
          path: "/process"
          operations:
            - name: initiate
              method: POST
    - type: http
      namespace: secondary-api
      baseUri: "https://api.tjx-companies.com/v2"
      authentication:
        type: bearer
        token: "$secrets.tjx_companies_api_token"
      resources:
        - name: secondary
          path: "/execute"
          operations:
            - name: process
              method: POST
    - type: http
      namespace: notification-api
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: messages
          path: "/teams/notifications"
          operations:
            - name: send
              method: POST

Manages API lifecycle by versioning, deprecating old endpoints, notifying consumers, and updating documentation.

naftiko: "0.5"
info:
  label: "API Lifecycle Management Orchestrator"
  description: "Manages API lifecycle by versioning, deprecating old endpoints, notifying consumers, and updating documentation."
  tags:
    - engineering
    - api
    - operations
capability:
  exposes:
    - type: mcp
      namespace: engineering
      port: 8080
      tools:
        - name: run-api-lifecycle-management-orchestrator
          description: "Manages API lifecycle by versioning, deprecating old endpoints, notifying consumers, and updating documentation."
          inputParameters:
            - name: request_id
              in: body
              type: string
              description: "The unique request identifier."
          steps:
            - name: step-1
              type: call
              call: "primary-api.initiate"
              with:
                request_id: "{{request_id}}"
            - name: step-2
              type: call
              call: "secondary-api.process"
              with:
                request_id: "{{request_id}}"
                data: "{{step-1.result}}"
            - name: notify
              type: call
              call: "notification-api.send"
              with:
                channel: "operations"
                message: "Completed API Lifecycle Management Orchestrator for request {{request_id}}."
  consumes:
    - type: http
      namespace: primary-api
      baseUri: "https://api.tjx-companies.com/v1"
      authentication:
        type: bearer
        token: "$secrets.tjx_companies_api_token"
      resources:
        - name: primary
          path: "/process"
          operations:
            - name: initiate
              method: POST
    - type: http
      namespace: secondary-api
      baseUri: "https://api.tjx-companies.com/v2"
      authentication:
        type: bearer
        token: "$secrets.tjx_companies_api_token"
      resources:
        - name: secondary
          path: "/execute"
          operations:
            - name: process
              method: POST
    - type: http
      namespace: notification-api
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: messages
          path: "/teams/notifications"
          operations:
            - name: send
              method: POST

Retrieves the latest build status for an Azure DevOps pipeline.

naftiko: "0.5"
info:
  label: "Azure DevOps Build Status"
  description: "Retrieves the latest build status for an Azure DevOps pipeline."
  tags:
    - development
    - azure-devops
    - ci-cd
capability:
  exposes:
    - type: mcp
      namespace: devops-builds
      port: 8080
      tools:
        - name: get-build-status
          description: "Fetch latest build status for an Azure DevOps pipeline."
          inputParameters:
            - name: pipeline_id
              in: body
              type: string
              description: "The Azure DevOps pipeline ID."
          call: "azdo.get-latest-build"
          with:
            pipeline_id: "{{pipeline_id}}"
  consumes:
    - type: http
      namespace: azdo
      baseUri: "https://dev.azure.com/tjx"
      authentication:
        type: basic
        username: ""
        password: "$secrets.azure_devops_pat"
      resources:
        - name: builds
          path: "/_apis/build/builds?definitions={{pipeline_id}}&$top=1&api-version=7.0"
          inputParameters:
            - name: pipeline_id
              in: path
          operations:
            - name: get-latest-build
              method: GET

When a buyer negotiates a deal, pulls vendor details from Salesforce, creates a deal record in SAP, generates a deal sheet in SharePoint, and notifies the buying director via Teams.

naftiko: "0.5"
info:
  label: "Buyer Deal Sheet Creator"
  description: "When a buyer negotiates a deal, pulls vendor details from Salesforce, creates a deal record in SAP, generates a deal sheet in SharePoint, and notifies the buying director via Teams."
  tags:
    - buying
    - deal-management
    - salesforce
    - sap
    - sharepoint
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: deal-management
      port: 8080
      tools:
        - name: create-deal-sheet
          description: "Create a buyer deal sheet across Salesforce, SAP, SharePoint, and Teams."
          inputParameters:
            - name: vendor_account_id
              in: body
              type: string
              description: "The Salesforce vendor account ID."
            - name: deal_value
              in: body
              type: string
              description: "Total deal value in USD."
            - name: category_code
              in: body
              type: string
              description: "The merchandise category code."
            - name: unit_count
              in: body
              type: string
              description: "Total units in the deal."
          steps:
            - name: get-vendor
              type: call
              call: "salesforce.get-account"
              with:
                account_id: "{{vendor_account_id}}"
            - name: create-deal-record
              type: call
              call: "sap.create-deal"
              with:
                vendor_id: "{{get-vendor.sap_vendor_id}}"
                value: "{{deal_value}}"
                category: "{{category_code}}"
                units: "{{unit_count}}"
            - name: create-doc
              type: call
              call: "sharepoint.upload-file"
              with:
                site_id: "buying_deals"
                file_path: "DealSheets/{{get-vendor.name}}_{{create-deal-record.deal_number}}.xlsx"
                content: "{{create-deal-record.deal_sheet_content}}"
            - name: notify-director
              type: call
              call: "msteams.post-channel-message"
              with:
                channel_id: "buying_directors"
                text: "New deal: {{get-vendor.name}} - ${{deal_value}} ({{unit_count}} units, {{category_code}}). Deal #{{create-deal-record.deal_number}}. Sheet: {{create-doc.url}}"
  consumes:
    - type: http
      namespace: salesforce
      baseUri: "https://tjx.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token"
      resources:
        - name: accounts
          path: "/sobjects/Account/{{account_id}}"
          inputParameters:
            - name: account_id
              in: path
          operations:
            - name: get-account
              method: GET
    - type: http
      namespace: sap
      baseUri: "https://tjx.sap.com/sap/opu/odata/sap/ZMM_DEALS_SRV"
      authentication:
        type: basic
        username: "$secrets.sap_user"
        password: "$secrets.sap_password"
      resources:
        - name: deals
          path: "/DealSet"
          operations:
            - name: create-deal
              method: POST
    - 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}}:/content"
          inputParameters:
            - name: site_id
              in: path
            - name: file_path
              in: path
          operations:
            - name: upload-file
              method: PUT
    - type: http
      namespace: msteams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: channel-messages
          path: "/teams/{{channel_id}}/channels/General/messages"
          inputParameters:
            - name: channel_id
              in: path
          operations:
            - name: post-channel-message
              method: POST

Retrieves deal pipeline status for a buyer.

naftiko: "0.5"
info:
  label: "Buyer Deal Tracker"
  description: "Retrieves deal pipeline status for a buyer."
  tags:
    - buying
    - procurement
capability:
  exposes:
    - type: mcp
      namespace: buying
      port: 8080
      tools:
        - name: get-buyer
          description: "Retrieves deal pipeline status for a buyer."
          inputParameters:
            - name: entity_id
              in: body
              type: string
              description: "The buyer deal tracker identifier."
          call: "buying-api.get-data"
          with:
            entity_id: "{{entity_id}}"
  consumes:
    - type: http
      namespace: buying-api
      baseUri: "https://api.tjx-companies.com/buying/v1"
      authentication:
        type: bearer
        token: "$secrets.tjx_companies_api_token"
      resources:
        - name: buyer
          path: "/buyer/deal/tracker/{{entity_id}}"
          inputParameters:
            - name: entity_id
              in: path
          operations:
            - name: get-buyer
              method: GET

Queries the Circana market intelligence platform for competitive pricing data on a product category and returns price benchmarks.

naftiko: "0.5"
info:
  label: "Competitive Price Check"
  description: "Queries the Circana market intelligence platform for competitive pricing data on a product category and returns price benchmarks."
  tags:
    - buying
    - pricing
    - circana
    - market-intelligence
capability:
  exposes:
    - type: mcp
      namespace: price-intelligence
      port: 8080
      tools:
        - name: get-competitive-pricing
          description: "Fetch competitive pricing data from Circana for a product category."
          inputParameters:
            - name: category_code
              in: body
              type: string
              description: "The product category code."
            - name: market
              in: body
              type: string
              description: "The market region."
          call: "circana.get-pricing"
          with:
            category: "{{category_code}}"
            market: "{{market}}"
  consumes:
    - type: http
      namespace: circana
      baseUri: "https://api.circana.com/v2"
      authentication:
        type: bearer
        token: "$secrets.circana_token"
      resources:
        - name: pricing
          path: "/pricing/benchmarks?category={{category}}&market={{market}}"
          inputParameters:
            - name: category
              in: path
            - name: market
              in: path
          operations:
            - name: get-pricing
              method: GET

Searches Confluence for articles matching a query string and returns top results with titles and links.

naftiko: "0.5"
info:
  label: "Confluence Knowledge Base Search"
  description: "Searches Confluence for articles matching a query string and returns top results with titles and links."
  tags:
    - knowledge-management
    - confluence
    - search
capability:
  exposes:
    - type: mcp
      namespace: knowledge-base
      port: 8080
      tools:
        - name: search-confluence
          description: "Search Confluence knowledge base for matching articles."
          inputParameters:
            - name: query
              in: body
              type: string
              description: "The search query string."
          call: "confluence.search"
          with:
            query: "{{query}}"
  consumes:
    - type: http
      namespace: confluence
      baseUri: "https://tjx.atlassian.net/wiki/rest/api"
      authentication:
        type: basic
        username: "$secrets.confluence_user"
        password: "$secrets.confluence_api_token"
      resources:
        - name: search
          path: "/search?cql=text~\"{{query}}\""
          inputParameters:
            - name: query
              in: path
          operations:
            - name: search
              method: GET

Retrieves a Confluence wiki page.

naftiko: "0.5"
info:
  label: "Confluence Page Viewer"
  description: "Retrieves a Confluence wiki page."
  tags:
    - collaboration
    - confluence
capability:
  exposes:
    - type: mcp
      namespace: collaboration
      port: 8080
      tools:
        - name: get-confluence
          description: "Retrieves a Confluence wiki page."
          inputParameters:
            - name: entity_id
              in: body
              type: string
              description: "The confluence page viewer identifier."
          call: "collaboration-api.get-data"
          with:
            entity_id: "{{entity_id}}"
  consumes:
    - type: http
      namespace: collaboration-api
      baseUri: "https://api.tjx-companies.com/collaboration/v1"
      authentication:
        type: bearer
        token: "$secrets.tjx_companies_api_token"
      resources:
        - name: confluence
          path: "/confluence/page/viewer/{{entity_id}}"
          inputParameters:
            - name: entity_id
              in: path
          operations:
            - name: get-confluence
              method: GET

Kicks off cross-functional projects by creating workspaces, scheduling meetings, and distributing project charters.

naftiko: "0.5"
info:
  label: "Cross-Functional Project Kickoff Orchestrator"
  description: "Kicks off cross-functional projects by creating workspaces, scheduling meetings, and distributing project charters."
  tags:
    - project-management
    - collaboration
    - operations
capability:
  exposes:
    - type: mcp
      namespace: project-management
      port: 8080
      tools:
        - name: run-cross-functional-project-kickoff-orchestrator
          description: "Kicks off cross-functional projects by creating workspaces, scheduling meetings, and distributing project charters."
          inputParameters:
            - name: request_id
              in: body
              type: string
              description: "The unique request identifier."
          steps:
            - name: step-1
              type: call
              call: "primary-api.initiate"
              with:
                request_id: "{{request_id}}"
            - name: step-2
              type: call
              call: "secondary-api.process"
              with:
                request_id: "{{request_id}}"
                data: "{{step-1.result}}"
            - name: notify
              type: call
              call: "notification-api.send"
              with:
                channel: "operations"
                message: "Completed Cross-Functional Project Kickoff Orchestrator for request {{request_id}}."
  consumes:
    - type: http
      namespace: primary-api
      baseUri: "https://api.tjx-companies.com/v1"
      authentication:
        type: bearer
        token: "$secrets.tjx_companies_api_token"
      resources:
        - name: primary
          path: "/process"
          operations:
            - name: initiate
              method: POST
    - type: http
      namespace: secondary-api
      baseUri: "https://api.tjx-companies.com/v2"
      authentication:
        type: bearer
        token: "$secrets.tjx_companies_api_token"
      resources:
        - name: secondary
          path: "/execute"
          operations:
            - name: process
              method: POST
    - type: http
      namespace: notification-api
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: messages
          path: "/teams/notifications"
          operations:
            - name: send
              method: POST

Handles customer data privacy requests by locating records, processing deletions, and confirming compliance.

naftiko: "0.5"
info:
  label: "Customer Data Privacy Request Handler"
  description: "Handles customer data privacy requests by locating records, processing deletions, and confirming compliance."
  tags:
    - compliance
    - privacy
    - customer-service
capability:
  exposes:
    - type: mcp
      namespace: compliance
      port: 8080
      tools:
        - name: run-customer-data-privacy-request-handler
          description: "Handles customer data privacy requests by locating records, processing deletions, and confirming compliance."
          inputParameters:
            - name: request_id
              in: body
              type: string
              description: "The unique request identifier."
          steps:
            - name: step-1
              type: call
              call: "primary-api.initiate"
              with:
                request_id: "{{request_id}}"
            - name: step-2
              type: call
              call: "secondary-api.process"
              with:
                request_id: "{{request_id}}"
                data: "{{step-1.result}}"
            - name: notify
              type: call
              call: "notification-api.send"
              with:
                channel: "operations"
                message: "Completed Customer Data Privacy Request Handler for request {{request_id}}."
  consumes:
    - type: http
      namespace: primary-api
      baseUri: "https://api.tjx-companies.com/v1"
      authentication:
        type: bearer
        token: "$secrets.tjx_companies_api_token"
      resources:
        - name: primary
          path: "/process"
          operations:
            - name: initiate
              method: POST
    - type: http
      namespace: secondary-api
      baseUri: "https://api.tjx-companies.com/v2"
      authentication:
        type: bearer
        token: "$secrets.tjx_companies_api_token"
      resources:
        - name: secondary
          path: "/execute"
          operations:
            - name: process
              method: POST
    - type: http
      namespace: notification-api
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: messages
          path: "/teams/notifications"
          operations:
            - name: send
              method: POST

Maps customer journeys by aggregating touchpoint data, identifying friction points, and generating improvement recommendations.

naftiko: "0.5"
info:
  label: "Customer Journey Mapping Orchestrator"
  description: "Maps customer journeys by aggregating touchpoint data, identifying friction points, and generating improvement recommendations."
  tags:
    - customer-experience
    - analytics
    - product-management
capability:
  exposes:
    - type: mcp
      namespace: customer-experience
      port: 8080
      tools:
        - name: run-customer-journey-mapping-orchestrator
          description: "Maps customer journeys by aggregating touchpoint data, identifying friction points, and generating improvement recommendations."
          inputParameters:
            - name: request_id
              in: body
              type: string
              description: "The unique request identifier."
          steps:
            - name: step-1
              type: call
              call: "primary-api.initiate"
              with:
                request_id: "{{request_id}}"
            - name: step-2
              type: call
              call: "secondary-api.process"
              with:
                request_id: "{{request_id}}"
                data: "{{step-1.result}}"
            - name: notify
              type: call
              call: "notification-api.send"
              with:
                channel: "operations"
                message: "Completed Customer Journey Mapping Orchestrator for request {{request_id}}."
  consumes:
    - type: http
      namespace: primary-api
      baseUri: "https://api.tjx-companies.com/v1"
      authentication:
        type: bearer
        token: "$secrets.tjx_companies_api_token"
      resources:
        - name: primary
          path: "/process"
          operations:
            - name: initiate
              method: POST
    - type: http
      namespace: secondary-api
      baseUri: "https://api.tjx-companies.com/v2"
      authentication:
        type: bearer
        token: "$secrets.tjx_companies_api_token"
      resources:
        - name: secondary
          path: "/execute"
          operations:
            - name: process
              method: POST
    - type: http
      namespace: notification-api
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: messages
          path: "/teams/notifications"
          operations:
            - name: send
              method: POST

When a customer returns merchandise, logs the return in SAP POS, updates inventory, checks if the item qualifies for vendor chargeback, and creates a Salesforce case if chargeback applies.

naftiko: "0.5"
info:
  label: "Customer Return Processing Pipeline"
  description: "When a customer returns merchandise, logs the return in SAP POS, updates inventory, checks if the item qualifies for vendor chargeback, and creates a Salesforce case if chargeback applies."
  tags:
    - store-ops
    - returns
    - sap
    - salesforce
    - inventory
capability:
  exposes:
    - type: mcp
      namespace: return-processing
      port: 8080
      tools:
        - name: process-customer-return
          description: "Process a customer return through SAP and create vendor chargeback if applicable."
          inputParameters:
            - name: store_number
              in: body
              type: string
              description: "The store where the return is being made."
            - name: receipt_number
              in: body
              type: string
              description: "The original receipt number."
            - name: material_number
              in: body
              type: string
              description: "The material being returned."
            - name: quantity
              in: body
              type: string
              description: "Quantity returned."
          steps:
            - name: log-return
              type: call
              call: "sap.post-return"
              with:
                store: "{{store_number}}"
                receipt: "{{receipt_number}}"
                material: "{{material_number}}"
                qty: "{{quantity}}"
            - name: check-chargeback
              type: call
              call: "sap.check-chargeback-eligibility"
              with:
                material: "{{material_number}}"
                return_reason: "{{log-return.return_reason}}"
            - name: create-chargeback-case
              type: call
              call: "salesforce.create-case"
              with:
                subject: "Vendor chargeback: {{material_number}} from Store {{store_number}}"
                description: "Return of {{quantity}} units. Chargeback amount: {{check-chargeback.chargeback_amount}}. Vendor: {{check-chargeback.vendor_name}}."
                origin: "Return Processing"
  consumes:
    - type: http
      namespace: sap
      baseUri: "https://tjx.sap.com/sap/opu/odata/sap/ZSD_RETURNS_SRV"
      authentication:
        type: basic
        username: "$secrets.sap_user"
        password: "$secrets.sap_password"
      resources:
        - name: returns
          path: "/ReturnSet"
          operations:
            - name: post-return
              method: POST
        - name: chargebacks
          path: "/ChargebackCheckSet"
          operations:
            - name: check-chargeback-eligibility
              method: POST
    - type: http
      namespace: salesforce
      baseUri: "https://tjx.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token"
      resources:
        - name: cases
          path: "/sobjects/Case"
          operations:
            - name: create-case
              method: POST

Reviews data governance compliance by auditing access controls, classifying data, and generating compliance reports.

naftiko: "0.5"
info:
  label: "Data Governance Review Orchestrator"
  description: "Reviews data governance compliance by auditing access controls, classifying data, and generating compliance reports."
  tags:
    - data-governance
    - compliance
    - analytics
capability:
  exposes:
    - type: mcp
      namespace: data-governance
      port: 8080
      tools:
        - name: run-data-governance-review-orchestrator
          description: "Reviews data governance compliance by auditing access controls, classifying data, and generating compliance reports."
          inputParameters:
            - name: request_id
              in: body
              type: string
              description: "The unique request identifier."
          steps:
            - name: step-1
              type: call
              call: "primary-api.initiate"
              with:
                request_id: "{{request_id}}"
            - name: step-2
              type: call
              call: "secondary-api.process"
              with:
                request_id: "{{request_id}}"
                data: "{{step-1.result}}"
            - name: notify
              type: call
              call: "notification-api.send"
              with:
                channel: "operations"
                message: "Completed Data Governance Review Orchestrator for request {{request_id}}."
  consumes:
    - type: http
      namespace: primary-api
      baseUri: "https://api.tjx-companies.com/v1"
      authentication:
        type: bearer
        token: "$secrets.tjx_companies_api_token"
      resources:
        - name: primary
          path: "/process"
          operations:
            - name: initiate
              method: POST
    - type: http
      namespace: secondary-api
      baseUri: "https://api.tjx-companies.com/v2"
      authentication:
        type: bearer
        token: "$secrets.tjx_companies_api_token"
      resources:
        - name: secondary
          path: "/execute"
          operations:
            - name: process
              method: POST
    - type: http
      namespace: notification-api
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: messages
          path: "/teams/notifications"
          operations:
            - name: send
              method: POST

Queries Datadog for infrastructure health metrics across TJX retail and DC environments.

naftiko: "0.5"
info:
  label: "Datadog Infrastructure Monitor"
  description: "Queries Datadog for infrastructure health metrics across TJX retail and DC environments."
  tags:
    - monitoring
    - datadog
    - infrastructure
capability:
  exposes:
    - type: mcp
      namespace: infra-monitoring
      port: 8080
      tools:
        - name: get-infra-health
          description: "Fetch infrastructure health metrics from Datadog."
          inputParameters:
            - name: environment
              in: body
              type: string
              description: "The environment tag (e.g., store-pos, dc-wms, ecom-prod)."
          call: "datadog.get-infra-metrics"
          with:
            environment: "{{environment}}"
  consumes:
    - type: http
      namespace: datadog
      baseUri: "https://api.datadoghq.com/api/v1"
      authentication:
        type: apiKey
        key: "$secrets.datadog_api_key"
        headerName: "DD-API-KEY"
      resources:
        - name: metrics
          path: "/query?query=avg:system.cpu.user{env:{{environment}}}"
          inputParameters:
            - name: environment
              in: path
          operations:
            - name: get-infra-metrics
              method: GET

Retrieves carton throughput metrics for a distribution center.

naftiko: "0.5"
info:
  label: "DC Carton Throughput"
  description: "Retrieves carton throughput metrics for a distribution center."
  tags:
    - logistics
    - operations
capability:
  exposes:
    - type: mcp
      namespace: logistics
      port: 8080
      tools:
        - name: get-dc
          description: "Retrieves carton throughput metrics for a distribution center."
          inputParameters:
            - name: entity_id
              in: body
              type: string
              description: "The dc carton throughput identifier."
          call: "logistics-api.get-data"
          with:
            entity_id: "{{entity_id}}"
  consumes:
    - type: http
      namespace: logistics-api
      baseUri: "https://api.tjx-companies.com/logistics/v1"
      authentication:
        type: bearer
        token: "$secrets.tjx_companies_api_token"
      resources:
        - name: dc
          path: "/dc/carton/throughput/{{entity_id}}"
          inputParameters:
            - name: entity_id
              in: path
          operations:
            - name: get-dc
              method: GET

Pulls distribution center labor productivity metrics from SAP, comparing actual vs planned units per labor hour, and posts the daily summary to the DC operations Teams channel.

naftiko: "0.5"
info:
  label: "DC Labor Productivity Tracker"
  description: "Pulls distribution center labor productivity metrics from SAP, comparing actual vs planned units per labor hour, and posts the daily summary to the DC operations Teams channel."
  tags:
    - distribution
    - workforce
    - sap
    - microsoft-teams
    - productivity
capability:
  exposes:
    - type: mcp
      namespace: dc-productivity
      port: 8080
      tools:
        - name: get-dc-productivity
          description: "Fetch DC labor productivity from SAP and post summary to Teams."
          inputParameters:
            - name: dc_code
              in: body
              type: string
              description: "The distribution center code."
            - name: date
              in: body
              type: string
              description: "The date in YYYY-MM-DD format."
          steps:
            - name: get-productivity
              type: call
              call: "sap.get-dc-labor-metrics"
              with:
                dc: "{{dc_code}}"
                date: "{{date}}"
            - name: post-summary
              type: call
              call: "msteams.post-channel-message"
              with:
                channel_id: "dc_{{dc_code}}_ops"
                text: "DC {{dc_code}} productivity ({{date}}): Actual {{get-productivity.actual_uph}} UPH vs Plan {{get-productivity.planned_uph}} UPH. Efficiency: {{get-productivity.efficiency_pct}}%."
  consumes:
    - type: http
      namespace: sap
      baseUri: "https://tjx.sap.com/sap/opu/odata/sap/ZWM_LABOR_SRV"
      authentication:
        type: basic
        username: "$secrets.sap_user"
        password: "$secrets.sap_password"
      resources:
        - name: labor-metrics
          path: "/LaborMetricSet(DC='{{dc}}',Date='{{date}}')"
          inputParameters:
            - name: dc
              in: path
            - name: date
              in: path
          operations:
            - name: get-dc-labor-metrics
              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/{{channel_id}}/channels/General/messages"
          inputParameters:
            - name: channel_id
              in: path
          operations:
            - name: post-channel-message
              method: POST

When goods arrive at a distribution center, records the receipt in SAP, allocates units to stores based on demand signals, creates transfer orders, and notifies the DC manager via Teams.

naftiko: "0.5"
info:
  label: "DC Receiving and Allocation Pipeline"
  description: "When goods arrive at a distribution center, records the receipt in SAP, allocates units to stores based on demand signals, creates transfer orders, and notifies the DC manager via Teams."
  tags:
    - distribution
    - receiving
    - allocation
    - sap
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: dc-receiving
      port: 8080
      tools:
        - name: receive-and-allocate
          description: "Record DC receipt in SAP, allocate to stores, and notify DC manager."
          inputParameters:
            - name: po_number
              in: body
              type: string
              description: "The purchase order number being received."
            - name: dc_code
              in: body
              type: string
              description: "The distribution center code."
            - name: received_quantity
              in: body
              type: string
              description: "Total units received."
          steps:
            - name: record-receipt
              type: call
              call: "sap.post-goods-receipt"
              with:
                po_number: "{{po_number}}"
                plant: "{{dc_code}}"
                quantity: "{{received_quantity}}"
            - name: allocate-to-stores
              type: call
              call: "sap.run-allocation"
              with:
                material: "{{record-receipt.material_number}}"
                dc: "{{dc_code}}"
                available_qty: "{{received_quantity}}"
            - name: notify-dc-manager
              type: call
              call: "msteams.post-channel-message"
              with:
                channel_id: "dc_{{dc_code}}_ops"
                text: "Receipt: PO {{po_number}} - {{received_quantity}} units received. Allocated to {{allocate-to-stores.store_count}} stores."
  consumes:
    - type: http
      namespace: sap
      baseUri: "https://tjx.sap.com/sap/opu/odata/sap/ZMM_RECEIVING_SRV"
      authentication:
        type: basic
        username: "$secrets.sap_user"
        password: "$secrets.sap_password"
      resources:
        - name: goods-receipt
          path: "/GoodsReceiptSet"
          operations:
            - name: post-goods-receipt
              method: POST
        - name: allocation
          path: "/AllocationRunSet"
          operations:
            - name: run-allocation
              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/{{channel_id}}/channels/General/messages"
          inputParameters:
            - name: channel_id
              in: path
          operations:
            - name: post-channel-message
              method: POST

Tracks digital transformation progress by aggregating initiative metrics, reporting milestones, and alerting on risks.

naftiko: "0.5"
info:
  label: "Digital Transformation Progress Orchestrator"
  description: "Tracks digital transformation progress by aggregating initiative metrics, reporting milestones, and alerting on risks."
  tags:
    - strategy
    - analytics
    - project-management
capability:
  exposes:
    - type: mcp
      namespace: strategy
      port: 8080
      tools:
        - name: run-digital-transformation-progress-orchestrator
          description: "Tracks digital transformation progress by aggregating initiative metrics, reporting milestones, and alerting on risks."
          inputParameters:
            - name: request_id
              in: body
              type: string
              description: "The unique request identifier."
          steps:
            - name: step-1
              type: call
              call: "primary-api.initiate"
              with:
                request_id: "{{request_id}}"
            - name: step-2
              type: call
              call: "secondary-api.process"
              with:
                request_id: "{{request_id}}"
                data: "{{step-1.result}}"
            - name: notify
              type: call
              call: "notification-api.send"
              with:
                channel: "operations"
                message: "Completed Digital Transformation Progress Orchestrator for request {{request_id}}."
  consumes:
    - type: http
      namespace: primary-api
      baseUri: "https://api.tjx-companies.com/v1"
      authentication:
        type: bearer
        token: "$secrets.tjx_companies_api_token"
      resources:
        - name: primary
          path: "/process"
          operations:
            - name: initiate
              method: POST
    - type: http
      namespace: secondary-api
      baseUri: "https://api.tjx-companies.com/v2"
      authentication:
        type: bearer
        token: "$secrets.tjx_companies_api_token"
      resources:
        - name: secondary
          path: "/execute"
          operations:
            - name: process
              method: POST
    - type: http
      namespace: notification-api
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: messages
          path: "/teams/notifications"
          operations:
            - name: send
              method: POST

Executes disaster recovery tests by failing over systems, validating recovery, and documenting results.

naftiko: "0.5"
info:
  label: "Disaster Recovery Test Orchestrator"
  description: "Executes disaster recovery tests by failing over systems, validating recovery, and documenting results."
  tags:
    - infrastructure
    - operations
    - compliance
capability:
  exposes:
    - type: mcp
      namespace: infrastructure
      port: 8080
      tools:
        - name: run-disaster-recovery-test-orchestrator
          description: "Executes disaster recovery tests by failing over systems, validating recovery, and documenting results."
          inputParameters:
            - name: request_id
              in: body
              type: string
              description: "The unique request identifier."
          steps:
            - name: step-1
              type: call
              call: "primary-api.initiate"
              with:
                request_id: "{{request_id}}"
            - name: step-2
              type: call
              call: "secondary-api.process"
              with:
                request_id: "{{request_id}}"
                data: "{{step-1.result}}"
            - name: notify
              type: call
              call: "notification-api.send"
              with:
                channel: "operations"
                message: "Completed Disaster Recovery Test Orchestrator for request {{request_id}}."
  consumes:
    - type: http
      namespace: primary-api
      baseUri: "https://api.tjx-companies.com/v1"
      authentication:
        type: bearer
        token: "$secrets.tjx_companies_api_token"
      resources:
        - name: primary
          path: "/process"
          operations:
            - name: initiate
              method: POST
    - type: http
      namespace: secondary-api
      baseUri: "https://api.tjx-companies.com/v2"
      authentication:
        type: bearer
        token: "$secrets.tjx_companies_api_token"
      resources:
        - name: secondary
          path: "/execute"
          operations:
            - name: process
              method: POST
    - type: http
      namespace: notification-api
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: messages
          path: "/teams/notifications"
          operations:
            - name: send
              method: POST

Tracks a shipment from a TJX distribution center by delivery number, returning carrier status, estimated arrival, and store destination.

naftiko: "0.5"
info:
  label: "Distribution Center Shipment Tracker"
  description: "Tracks a shipment from a TJX distribution center by delivery number, returning carrier status, estimated arrival, and store destination."
  tags:
    - distribution
    - logistics
    - sap
    - shipping
capability:
  exposes:
    - type: mcp
      namespace: dc-shipping
      port: 8080
      tools:
        - name: track-dc-shipment
          description: "Track a distribution center shipment by SAP delivery number."
          inputParameters:
            - name: delivery_number
              in: body
              type: string
              description: "The SAP delivery document number."
          call: "sap.get-delivery"
          with:
            delivery_number: "{{delivery_number}}"
  consumes:
    - type: http
      namespace: sap
      baseUri: "https://tjx.sap.com/sap/opu/odata/sap/ZSD_DELIVERY_SRV"
      authentication:
        type: basic
        username: "$secrets.sap_user"
        password: "$secrets.sap_password"
      resources:
        - name: deliveries
          path: "/DeliverySet('{{delivery_number}}')"
          inputParameters:
            - name: delivery_number
              in: path
          operations:
            - name: get-delivery
              method: GET

Sends a vendor agreement for e-signature via DocuSign and updates the Salesforce vendor record with signing status.

naftiko: "0.5"
info:
  label: "DocuSign Vendor Agreement Executor"
  description: "Sends a vendor agreement for e-signature via DocuSign and updates the Salesforce vendor record with signing status."
  tags:
    - legal
    - docusign
    - salesforce
    - contracts
capability:
  exposes:
    - type: mcp
      namespace: contract-mgmt
      port: 8080
      tools:
        - name: send-vendor-agreement
          description: "Send a vendor agreement via DocuSign and update Salesforce."
          inputParameters:
            - name: vendor_account_id
              in: body
              type: string
              description: "The Salesforce vendor account ID."
            - name: signer_email
              in: body
              type: string
              description: "The signer's email address."
            - name: signer_name
              in: body
              type: string
              description: "The signer's full name."
          steps:
            - name: get-vendor
              type: call
              call: "salesforce.get-account"
              with:
                account_id: "{{vendor_account_id}}"
            - name: send-envelope
              type: call
              call: "docusign.create-envelope"
              with:
                document_url: "{{get-vendor.agreement_url}}"
                signer_email: "{{signer_email}}"
                signer_name: "{{signer_name}}"
            - name: update-vendor
              type: call
              call: "salesforce.update-account"
              with:
                account_id: "{{vendor_account_id}}"
                agreement_status: "Sent for Signature"
                envelope_id: "{{send-envelope.envelope_id}}"
  consumes:
    - type: http
      namespace: salesforce
      baseUri: "https://tjx.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token"
      resources:
        - name: accounts
          path: "/sobjects/Account/{{account_id}}"
          inputParameters:
            - name: account_id
              in: path
          operations:
            - name: get-account
              method: GET
            - name: update-account
              method: PATCH
    - type: http
      namespace: docusign
      baseUri: "https://na4.docusign.net/restapi/v2.1/accounts/$secrets.docusign_account_id"
      authentication:
        type: bearer
        token: "$secrets.docusign_token"
      resources:
        - name: envelopes
          path: "/envelopes"
          operations:
            - name: create-envelope
              method: POST

Retrieves an e-commerce order from BigCommerce and cross-references fulfillment status in SAP to provide a unified order view.

naftiko: "0.5"
info:
  label: "E-Commerce Order Fulfillment Tracker"
  description: "Retrieves an e-commerce order from BigCommerce and cross-references fulfillment status in SAP to provide a unified order view."
  tags:
    - e-commerce
    - bigcommerce
    - sap
    - order-tracking
capability:
  exposes:
    - type: mcp
      namespace: ecom-fulfillment
      port: 8080
      tools:
        - name: track-ecom-order
          description: "Fetch BigCommerce order and SAP fulfillment status for a unified view."
          inputParameters:
            - name: order_id
              in: body
              type: string
              description: "The BigCommerce order ID."
          steps:
            - name: get-bc-order
              type: call
              call: "bigcommerce.get-order"
              with:
                order_id: "{{order_id}}"
            - name: get-sap-fulfillment
              type: call
              call: "sap.get-ecom-delivery"
              with:
                external_ref: "{{order_id}}"
  consumes:
    - type: http
      namespace: bigcommerce
      baseUri: "https://api.bigcommerce.com/stores/$secrets.bc_store_hash/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: sap
      baseUri: "https://tjx.sap.com/sap/opu/odata/sap/ZSD_ECOM_SRV"
      authentication:
        type: basic
        username: "$secrets.sap_user"
        password: "$secrets.sap_password"
      resources:
        - name: ecom-deliveries
          path: "/EcomDeliverySet?$filter=ExternalRef eq '{{external_ref}}'"
          inputParameters:
            - name: external_ref
              in: path
          operations:
            - name: get-ecom-delivery
              method: GET

Processes employee offboarding by revoking access, returning equipment, and conducting exit interviews.

naftiko: "0.5"
info:
  label: "Employee Offboarding Orchestrator"
  description: "Processes employee offboarding by revoking access, returning equipment, and conducting exit interviews."
  tags:
    - hr
    - identity
    - operations
capability:
  exposes:
    - type: mcp
      namespace: hr
      port: 8080
      tools:
        - name: run-employee-offboarding-orchestrator
          description: "Processes employee offboarding by revoking access, returning equipment, and conducting exit interviews."
          inputParameters:
            - name: request_id
              in: body
              type: string
              description: "The unique request identifier."
          steps:
            - name: step-1
              type: call
              call: "primary-api.initiate"
              with:
                request_id: "{{request_id}}"
            - name: step-2
              type: call
              call: "secondary-api.process"
              with:
                request_id: "{{request_id}}"
                data: "{{step-1.result}}"
            - name: notify
              type: call
              call: "notification-api.send"
              with:
                channel: "operations"
                message: "Completed Employee Offboarding Orchestrator for request {{request_id}}."
  consumes:
    - type: http
      namespace: primary-api
      baseUri: "https://api.tjx-companies.com/v1"
      authentication:
        type: bearer
        token: "$secrets.tjx_companies_api_token"
      resources:
        - name: primary
          path: "/process"
          operations:
            - name: initiate
              method: POST
    - type: http
      namespace: secondary-api
      baseUri: "https://api.tjx-companies.com/v2"
      authentication:
        type: bearer
        token: "$secrets.tjx_companies_api_token"
      resources:
        - name: secondary
          path: "/execute"
          operations:
            - name: process
              method: POST
    - type: http
      namespace: notification-api
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: messages
          path: "/teams/notifications"
          operations:
            - name: send
              method: POST

On new hire creation in Workday, opens a ServiceNow onboarding ticket, provisions a SharePoint folder, and sends a Microsoft Teams welcome message.

naftiko: "0.5"
info:
  label: "Employee Onboarding Orchestrator"
  description: "On new hire creation in Workday, opens a ServiceNow onboarding ticket, provisions a SharePoint folder, and sends a Microsoft Teams welcome message."
  tags:
    - hr
    - onboarding
    - workday
    - servicenow
    - sharepoint
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: hr-onboarding
      port: 8080
      tools:
        - name: trigger-onboarding
          description: "Given a Workday employee ID, orchestrate onboarding across ServiceNow, SharePoint, and Teams."
          inputParameters:
            - name: workday_employee_id
              in: body
              type: string
              description: "The Workday worker ID for the new hire."
            - name: start_date
              in: body
              type: string
              description: "The employee start date in YYYY-MM-DD format."
            - name: department
              in: body
              type: string
              description: "The department the new hire is joining."
          steps:
            - name: get-employee
              type: call
              call: "workday.get-worker"
              with:
                worker_id: "{{workday_employee_id}}"
            - name: open-ticket
              type: call
              call: "servicenow.create-incident"
              with:
                short_description: "New hire onboarding: {{get-employee.full_name}}"
                category: "hr_onboarding"
                assigned_group: "IT_Onboarding"
                description: "Onboarding for {{get-employee.full_name}} starting {{start_date}} in {{department}}."
            - name: provision-folder
              type: call
              call: "sharepoint.create-folder"
              with:
                site_id: "hr_onboarding_site"
                folder_path: "OnboardingDocs/{{get-employee.full_name}}_{{start_date}}"
            - name: send-welcome
              type: call
              call: "msteams.send-message"
              with:
                recipient_upn: "{{get-employee.work_email}}"
                text: "Welcome to TJX, {{get-employee.first_name}}! Your onboarding ticket is {{open-ticket.number}}. Documents are at {{provision-folder.url}}."
  consumes:
    - type: http
      namespace: workday
      baseUri: "https://wd2-impl-services1.workday.com/ccx/api/v1"
      authentication:
        type: bearer
        token: "$secrets.workday_token"
      resources:
        - name: workers
          path: "/workers/{{worker_id}}"
          inputParameters:
            - name: worker_id
              in: path
          operations:
            - name: get-worker
              method: GET
    - type: http
      namespace: servicenow
      baseUri: "https://tjx.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: 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: msteams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: messages
          path: "/users/{{recipient_upn}}/sendMail"
          inputParameters:
            - name: recipient_upn
              in: path
          operations:
            - name: send-message
              method: POST

Refreshes executive dashboards by pulling data from multiple sources, transforming metrics, and updating Power BI.

naftiko: "0.5"
info:
  label: "Executive Dashboard Refresh Orchestrator"
  description: "Refreshes executive dashboards by pulling data from multiple sources, transforming metrics, and updating Power BI."
  tags:
    - analytics
    - power-bi
    - business
capability:
  exposes:
    - type: mcp
      namespace: analytics
      port: 8080
      tools:
        - name: run-executive-dashboard-refresh-orchestrator
          description: "Refreshes executive dashboards by pulling data from multiple sources, transforming metrics, and updating Power BI."
          inputParameters:
            - name: request_id
              in: body
              type: string
              description: "The unique request identifier."
          steps:
            - name: step-1
              type: call
              call: "primary-api.initiate"
              with:
                request_id: "{{request_id}}"
            - name: step-2
              type: call
              call: "secondary-api.process"
              with:
                request_id: "{{request_id}}"
                data: "{{step-1.result}}"
            - name: notify
              type: call
              call: "notification-api.send"
              with:
                channel: "operations"
                message: "Completed Executive Dashboard Refresh Orchestrator for request {{request_id}}."
  consumes:
    - type: http
      namespace: primary-api
      baseUri: "https://api.tjx-companies.com/v1"
      authentication:
        type: bearer
        token: "$secrets.tjx_companies_api_token"
      resources:
        - name: primary
          path: "/process"
          operations:
            - name: initiate
              method: POST
    - type: http
      namespace: secondary-api
      baseUri: "https://api.tjx-companies.com/v2"
      authentication:
        type: bearer
        token: "$secrets.tjx_companies_api_token"
      resources:
        - name: secondary
          path: "/execute"
          operations:
            - name: process
              method: POST
    - type: http
      namespace: notification-api
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: messages
          path: "/teams/notifications"
          operations:
            - name: send
              method: POST

Pulls carrier freight invoices and matches against SAP transportation costs to identify discrepancies, logging exceptions in ServiceNow for review.

naftiko: "0.5"
info:
  label: "Freight Cost Reconciliation"
  description: "Pulls carrier freight invoices and matches against SAP transportation costs to identify discrepancies, logging exceptions in ServiceNow for review."
  tags:
    - distribution
    - freight
    - sap
    - servicenow
    - finance
capability:
  exposes:
    - type: mcp
      namespace: freight-reconciliation
      port: 8080
      tools:
        - name: reconcile-freight
          description: "Match carrier invoices against SAP freight costs and log exceptions."
          inputParameters:
            - name: carrier_id
              in: body
              type: string
              description: "The carrier identifier."
            - name: invoice_period
              in: body
              type: string
              description: "The invoice period in YYYY-MM format."
          steps:
            - name: get-carrier-invoices
              type: call
              call: "sap.get-freight-invoices"
              with:
                carrier: "{{carrier_id}}"
                period: "{{invoice_period}}"
            - name: get-transport-costs
              type: call
              call: "sap.get-transport-costs"
              with:
                carrier: "{{carrier_id}}"
                period: "{{invoice_period}}"
            - name: log-exceptions
              type: call
              call: "servicenow.create-record"
              with:
                table: "u_freight_exception"
                carrier: "{{carrier_id}}"
                period: "{{invoice_period}}"
                invoice_total: "{{get-carrier-invoices.total}}"
                cost_total: "{{get-transport-costs.total}}"
                variance: "{{get-carrier-invoices.total - get-transport-costs.total}}"
  consumes:
    - type: http
      namespace: sap
      baseUri: "https://tjx.sap.com/sap/opu/odata/sap/ZTM_FREIGHT_SRV"
      authentication:
        type: basic
        username: "$secrets.sap_user"
        password: "$secrets.sap_password"
      resources:
        - name: freight-invoices
          path: "/FreightInvoiceSet?$filter=Carrier eq '{{carrier}}' and Period eq '{{period}}'"
          inputParameters:
            - name: carrier
              in: path
            - name: period
              in: path
          operations:
            - name: get-freight-invoices
              method: GET
        - name: transport-costs
          path: "/TransportCostSet?$filter=Carrier eq '{{carrier}}' and Period eq '{{period}}'"
          inputParameters:
            - name: carrier
              in: path
            - name: period
              in: path
          operations:
            - name: get-transport-costs
              method: GET
    - type: http
      namespace: servicenow
      baseUri: "https://tjx.service-now.com/api/now"
      authentication:
        type: basic
        username: "$secrets.servicenow_user"
        password: "$secrets.servicenow_password"
      resources:
        - name: records
          path: "/table/{{table}}"
          inputParameters:
            - name: table
              in: path
          operations:
            - name: create-record
              method: POST

Queries the SAP gift card management system for a gift card balance by card number.

naftiko: "0.5"
info:
  label: "Gift Card Balance Checker"
  description: "Queries the SAP gift card management system for a gift card balance by card number."
  tags:
    - store-ops
    - gift-cards
    - sap
    - payments
capability:
  exposes:
    - type: mcp
      namespace: gift-cards
      port: 8080
      tools:
        - name: check-gift-card-balance
          description: "Look up gift card balance in SAP."
          inputParameters:
            - name: card_number
              in: body
              type: string
              description: "The gift card number."
          call: "sap.get-gift-card"
          with:
            card_number: "{{card_number}}"
  consumes:
    - type: http
      namespace: sap
      baseUri: "https://tjx.sap.com/sap/opu/odata/sap/ZSD_GIFTCARD_SRV"
      authentication:
        type: basic
        username: "$secrets.sap_user"
        password: "$secrets.sap_password"
      resources:
        - name: gift-cards
          path: "/GiftCardSet('{{card_number}}')"
          inputParameters:
            - name: card_number
              in: path
          operations:
            - name: get-gift-card
              method: GET

Retrieves website traffic metrics from Google Analytics for the TJX e-commerce properties.

naftiko: "0.5"
info:
  label: "Google Analytics Web Traffic Report"
  description: "Retrieves website traffic metrics from Google Analytics for the TJX e-commerce properties."
  tags:
    - marketing
    - google-analytics
    - e-commerce
capability:
  exposes:
    - type: mcp
      namespace: web-analytics
      port: 8080
      tools:
        - name: get-web-traffic
          description: "Fetch Google Analytics traffic data for a date range."
          inputParameters:
            - name: property_id
              in: body
              type: string
              description: "The GA4 property ID."
            - name: start_date
              in: body
              type: string
              description: "Start date in YYYY-MM-DD format."
            - name: end_date
              in: body
              type: string
              description: "End date in YYYY-MM-DD format."
          call: "ga.get-traffic-report"
          with:
            property_id: "{{property_id}}"
            start_date: "{{start_date}}"
            end_date: "{{end_date}}"
  consumes:
    - type: http
      namespace: ga
      baseUri: "https://analyticsdata.googleapis.com/v1beta"
      authentication:
        type: bearer
        token: "$secrets.google_analytics_token"
      resources:
        - name: reports
          path: "/properties/{{property_id}}:runReport"
          inputParameters:
            - name: property_id
              in: path
          operations:
            - name: get-traffic-report
              method: POST

Fetches a document from Google Drive by file ID and returns metadata and download link.

naftiko: "0.5"
info:
  label: "Google Drive Document Retrieval"
  description: "Fetches a document from Google Drive by file ID and returns metadata and download link."
  tags:
    - document-management
    - google-drive
capability:
  exposes:
    - type: mcp
      namespace: doc-retrieval
      port: 8080
      tools:
        - name: get-drive-document
          description: "Retrieve a Google Drive document by file ID."
          inputParameters:
            - name: file_id
              in: body
              type: string
              description: "The Google Drive file ID."
          call: "gdrive.get-file"
          with:
            file_id: "{{file_id}}"
  consumes:
    - type: http
      namespace: gdrive
      baseUri: "https://www.googleapis.com/drive/v3"
      authentication:
        type: bearer
        token: "$secrets.google_drive_token"
      resources:
        - name: files
          path: "/files/{{file_id}}"
          inputParameters:
            - name: file_id
              in: path
          operations:
            - name: get-file
              method: GET

Retrieves a file from Google Drive.

naftiko: "0.5"
info:
  label: "Google Drive File Viewer"
  description: "Retrieves a file from Google Drive."
  tags:
    - collaboration
    - google-drive
capability:
  exposes:
    - type: mcp
      namespace: collaboration
      port: 8080
      tools:
        - name: get-google
          description: "Retrieves a file from Google Drive."
          inputParameters:
            - name: entity_id
              in: body
              type: string
              description: "The google drive file viewer identifier."
          call: "collaboration-api.get-data"
          with:
            entity_id: "{{entity_id}}"
  consumes:
    - type: http
      namespace: collaboration-api
      baseUri: "https://api.tjx-companies.com/collaboration/v1"
      authentication:
        type: bearer
        token: "$secrets.tjx_companies_api_token"
      resources:
        - name: google
          path: "/google/drive/file/viewer/{{entity_id}}"
          inputParameters:
            - name: entity_id
              in: path
          operations:
            - name: get-google
              method: GET

Retrieves marketing campaign performance metrics from HubSpot including impressions, clicks, and conversion rates.

naftiko: "0.5"
info:
  label: "HubSpot Marketing Campaign Metrics"
  description: "Retrieves marketing campaign performance metrics from HubSpot including impressions, clicks, and conversion rates."
  tags:
    - marketing
    - hubspot
    - campaigns
capability:
  exposes:
    - type: mcp
      namespace: marketing-analytics
      port: 8080
      tools:
        - name: get-hubspot-campaign
          description: "Fetch HubSpot campaign performance data."
          inputParameters:
            - name: campaign_id
              in: body
              type: string
              description: "The HubSpot campaign ID."
          call: "hubspot.get-campaign"
          with:
            campaign_id: "{{campaign_id}}"
  consumes:
    - type: http
      namespace: hubspot
      baseUri: "https://api.hubapi.com/marketing/v3"
      authentication:
        type: bearer
        token: "$secrets.hubspot_token"
      resources:
        - name: campaigns
          path: "/campaigns/{{campaign_id}}"
          inputParameters:
            - name: campaign_id
              in: path
          operations:
            - name: get-campaign
              method: GET

Plans infrastructure capacity by analyzing utilization trends, modeling growth, and generating procurement requests.

naftiko: "0.5"
info:
  label: "Infrastructure Capacity Planning Orchestrator"
  description: "Plans infrastructure capacity by analyzing utilization trends, modeling growth, and generating procurement requests."
  tags:
    - infrastructure
    - planning
    - finance
capability:
  exposes:
    - type: mcp
      namespace: infrastructure
      port: 8080
      tools:
        - name: run-infrastructure-capacity-planning-orchestrator
          description: "Plans infrastructure capacity by analyzing utilization trends, modeling growth, and generating procurement requests."
          inputParameters:
            - name: request_id
              in: body
              type: string
              description: "The unique request identifier."
          steps:
            - name: step-1
              type: call
              call: "primary-api.initiate"
              with:
                request_id: "{{request_id}}"
            - name: step-2
              type: call
              call: "secondary-api.process"
              with:
                request_id: "{{request_id}}"
                data: "{{step-1.result}}"
            - name: notify
              type: call
              call: "notification-api.send"
              with:
                channel: "operations"
                message: "Completed Infrastructure Capacity Planning Orchestrator for request {{request_id}}."
  consumes:
    - type: http
      namespace: primary-api
      baseUri: "https://api.tjx-companies.com/v1"
      authentication:
        type: bearer
        token: "$secrets.tjx_companies_api_token"
      resources:
        - name: primary
          path: "/process"
          operations:
            - name: initiate
              method: POST
    - type: http
      namespace: secondary-api
      baseUri: "https://api.tjx-companies.com/v2"
      authentication:
        type: bearer
        token: "$secrets.tjx_companies_api_token"
      resources:
        - name: secondary
          path: "/execute"
          operations:
            - name: process
              method: POST
    - type: http
      namespace: notification-api
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: messages
          path: "/teams/notifications"
          operations:
            - name: send
              method: POST

Pulls inventory shrinkage data from SAP for a region, generates a Power BI report, and distributes to loss prevention leadership via Microsoft Teams.

naftiko: "0.5"
info:
  label: "Inventory Shrinkage Report Generator"
  description: "Pulls inventory shrinkage data from SAP for a region, generates a Power BI report, and distributes to loss prevention leadership via Microsoft Teams."
  tags:
    - loss-prevention
    - inventory
    - sap
    - power-bi
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: shrinkage-reporting
      port: 8080
      tools:
        - name: generate-shrinkage-report
          description: "Generate and distribute an inventory shrinkage report."
          inputParameters:
            - name: region_code
              in: body
              type: string
              description: "The regional code."
            - name: period
              in: body
              type: string
              description: "The reporting period in YYYY-MM format."
          steps:
            - name: get-shrinkage-data
              type: call
              call: "sap.get-shrinkage"
              with:
                region: "{{region_code}}"
                period: "{{period}}"
            - name: refresh-report
              type: call
              call: "powerbi.refresh-dataset"
              with:
                dataset_id: "shrinkage_ds"
            - name: distribute
              type: call
              call: "msteams.post-channel-message"
              with:
                channel_id: "lp_leadership"
                text: "Shrinkage report for region {{region_code}} ({{period}}): Total shrink: ${{get-shrinkage-data.total_shrink}}. Rate: {{get-shrinkage-data.shrink_rate_pct}}%. Report: {{refresh-report.report_url}}"
  consumes:
    - type: http
      namespace: sap
      baseUri: "https://tjx.sap.com/sap/opu/odata/sap/ZLP_SHRINK_SRV"
      authentication:
        type: basic
        username: "$secrets.sap_user"
        password: "$secrets.sap_password"
      resources:
        - name: shrinkage
          path: "/ShrinkageSet?$filter=Region eq '{{region}}' and Period eq '{{period}}'"
          inputParameters:
            - name: region
              in: path
            - name: period
              in: path
          operations:
            - name: get-shrinkage
              method: GET
    - 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/{{channel_id}}/channels/General/messages"
          inputParameters:
            - name: channel_id
              in: path
          operations:
            - name: post-channel-message
              method: POST

Matches a vendor invoice to its purchase order in SAP, routes for approval via Microsoft Power Automate, and logs the result in ServiceNow.

naftiko: "0.5"
info:
  label: "Invoice Processing Pipeline"
  description: "Matches a vendor invoice to its purchase order in SAP, routes for approval via Microsoft Power Automate, and logs the result in ServiceNow."
  tags:
    - finance
    - sap
    - microsoft-power-automate
    - servicenow
    - invoice
capability:
  exposes:
    - type: mcp
      namespace: invoice-processing
      port: 8080
      tools:
        - name: process-vendor-invoice
          description: "Match invoice to PO in SAP, route for approval, and log in ServiceNow."
          inputParameters:
            - name: invoice_number
              in: body
              type: string
              description: "The vendor invoice number."
            - name: po_number
              in: body
              type: string
              description: "The SAP purchase order number to match."
          steps:
            - name: match-invoice
              type: call
              call: "sap.match-invoice"
              with:
                invoice_number: "{{invoice_number}}"
                po_number: "{{po_number}}"
            - name: route-approval
              type: call
              call: "power-automate.trigger-flow"
              with:
                flow_id: "invoice_approval"
                invoice_number: "{{invoice_number}}"
                amount: "{{match-invoice.amount}}"
            - name: log-processing
              type: call
              call: "servicenow.create-record"
              with:
                table: "u_invoice_log"
                invoice_number: "{{invoice_number}}"
                status: "{{route-approval.status}}"
  consumes:
    - type: http
      namespace: sap
      baseUri: "https://tjx.sap.com/sap/opu/odata/sap/ZFI_INVOICE_SRV"
      authentication:
        type: basic
        username: "$secrets.sap_user"
        password: "$secrets.sap_password"
      resources:
        - name: invoice-match
          path: "/InvoiceMatchSet"
          operations:
            - name: match-invoice
              method: POST
    - type: http
      namespace: power-automate
      baseUri: "https://prod-01.westus.logic.azure.com/workflows"
      authentication:
        type: bearer
        token: "$secrets.power_automate_token"
      resources:
        - name: flows
          path: "/{{flow_id}}/triggers/manual/paths/invoke"
          inputParameters:
            - name: flow_id
              in: path
          operations:
            - name: trigger-flow
              method: POST
    - type: http
      namespace: servicenow
      baseUri: "https://tjx.service-now.com/api/now"
      authentication:
        type: basic
        username: "$secrets.servicenow_user"
        password: "$secrets.servicenow_password"
      resources:
        - name: records
          path: "/table/{{table}}"
          inputParameters:
            - name: table
              in: path
          operations:
            - name: create-record
              method: POST

Manages IT changes by reviewing requests, scheduling implementation windows, and notifying affected teams.

naftiko: "0.5"
info:
  label: "IT Change Management Orchestrator"
  description: "Manages IT changes by reviewing requests, scheduling implementation windows, and notifying affected teams."
  tags:
    - it
    - servicenow
    - operations
capability:
  exposes:
    - type: mcp
      namespace: it
      port: 8080
      tools:
        - name: run-it-change-management-orchestrator
          description: "Manages IT changes by reviewing requests, scheduling implementation windows, and notifying affected teams."
          inputParameters:
            - name: request_id
              in: body
              type: string
              description: "The unique request identifier."
          steps:
            - name: step-1
              type: call
              call: "primary-api.initiate"
              with:
                request_id: "{{request_id}}"
            - name: step-2
              type: call
              call: "secondary-api.process"
              with:
                request_id: "{{request_id}}"
                data: "{{step-1.result}}"
            - name: notify
              type: call
              call: "notification-api.send"
              with:
                channel: "operations"
                message: "Completed IT Change Management Orchestrator for request {{request_id}}."
  consumes:
    - type: http
      namespace: primary-api
      baseUri: "https://api.tjx-companies.com/v1"
      authentication:
        type: bearer
        token: "$secrets.tjx_companies_api_token"
      resources:
        - name: primary
          path: "/process"
          operations:
            - name: initiate
              method: POST
    - type: http
      namespace: secondary-api
      baseUri: "https://api.tjx-companies.com/v2"
      authentication:
        type: bearer
        token: "$secrets.tjx_companies_api_token"
      resources:
        - name: secondary
          path: "/execute"
          operations:
            - name: process
              method: POST
    - type: http
      namespace: notification-api
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: messages
          path: "/teams/notifications"
          operations:
            - name: send
              method: POST

Retrieves the current sprint and its issues for a Jira project board.

naftiko: "0.5"
info:
  label: "Jira Sprint Board Viewer"
  description: "Retrieves the current sprint and its issues for a Jira project board."
  tags:
    - development
    - jira
    - agile
capability:
  exposes:
    - type: mcp
      namespace: dev-ops
      port: 8080
      tools:
        - name: get-current-sprint
          description: "Fetch current sprint details and issue summary for a Jira board."
          inputParameters:
            - name: board_id
              in: body
              type: string
              description: "The Jira board ID."
          call: "jira.get-sprint"
          with:
            board_id: "{{board_id}}"
  consumes:
    - type: http
      namespace: jira
      baseUri: "https://tjx.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-sprint
              method: GET

Retrieves a Jira ticket by issue key.

naftiko: "0.5"
info:
  label: "Jira Ticket Viewer"
  description: "Retrieves a Jira ticket by issue key."
  tags:
    - engineering
    - jira
capability:
  exposes:
    - type: mcp
      namespace: engineering
      port: 8080
      tools:
        - name: get-jira
          description: "Retrieves a Jira ticket by issue key."
          inputParameters:
            - name: entity_id
              in: body
              type: string
              description: "The jira ticket viewer identifier."
          call: "engineering-api.get-data"
          with:
            entity_id: "{{entity_id}}"
  consumes:
    - type: http
      namespace: engineering-api
      baseUri: "https://api.tjx-companies.com/engineering/v1"
      authentication:
        type: bearer
        token: "$secrets.tjx_companies_api_token"
      resources:
        - name: jira
          path: "/jira/ticket/viewer/{{entity_id}}"
          inputParameters:
            - name: entity_id
              in: path
          operations:
            - name: get-jira
              method: GET

Refreshes the knowledge base by identifying outdated articles, routing for review, and publishing updates.

naftiko: "0.5"
info:
  label: "Knowledge Base Refresh Orchestrator"
  description: "Refreshes the knowledge base by identifying outdated articles, routing for review, and publishing updates."
  tags:
    - knowledge-management
    - collaboration
    - operations
capability:
  exposes:
    - type: mcp
      namespace: knowledge-management
      port: 8080
      tools:
        - name: run-knowledge-base-refresh-orchestrator
          description: "Refreshes the knowledge base by identifying outdated articles, routing for review, and publishing updates."
          inputParameters:
            - name: request_id
              in: body
              type: string
              description: "The unique request identifier."
          steps:
            - name: step-1
              type: call
              call: "primary-api.initiate"
              with:
                request_id: "{{request_id}}"
            - name: step-2
              type: call
              call: "secondary-api.process"
              with:
                request_id: "{{request_id}}"
                data: "{{step-1.result}}"
            - name: notify
              type: call
              call: "notification-api.send"
              with:
                channel: "operations"
                message: "Completed Knowledge Base Refresh Orchestrator for request {{request_id}}."
  consumes:
    - type: http
      namespace: primary-api
      baseUri: "https://api.tjx-companies.com/v1"
      authentication:
        type: bearer
        token: "$secrets.tjx_companies_api_token"
      resources:
        - name: primary
          path: "/process"
          operations:
            - name: initiate
              method: POST
    - type: http
      namespace: secondary-api
      baseUri: "https://api.tjx-companies.com/v2"
      authentication:
        type: bearer
        token: "$secrets.tjx_companies_api_token"
      resources:
        - name: secondary
          path: "/execute"
          operations:
            - name: process
              method: POST
    - type: http
      namespace: notification-api
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: messages
          path: "/teams/notifications"
          operations:
            - name: send
              method: POST

Fetches a job requisition from Workday and publishes it to LinkedIn Talent Solutions.

naftiko: "0.5"
info:
  label: "LinkedIn Job Posting Publisher"
  description: "Fetches a job requisition from Workday and publishes it to LinkedIn Talent Solutions."
  tags:
    - hr
    - recruiting
    - workday
    - linkedin
capability:
  exposes:
    - type: mcp
      namespace: talent-acquisition
      port: 8080
      tools:
        - name: publish-job-to-linkedin
          description: "Fetch a job requisition from Workday and publish to LinkedIn."
          inputParameters:
            - name: requisition_id
              in: body
              type: string
              description: "The Workday job requisition ID."
          steps:
            - name: get-requisition
              type: call
              call: "workday.get-requisition"
              with:
                requisition_id: "{{requisition_id}}"
            - name: publish-posting
              type: call
              call: "linkedin.create-job-posting"
              with:
                title: "{{get-requisition.title}}"
                description: "{{get-requisition.description}}"
                location: "{{get-requisition.location}}"
  consumes:
    - type: http
      namespace: workday
      baseUri: "https://wd2-impl-services1.workday.com/ccx/api/v1"
      authentication:
        type: bearer
        token: "$secrets.workday_token"
      resources:
        - name: requisitions
          path: "/jobRequisitions/{{requisition_id}}"
          inputParameters:
            - name: requisition_id
              in: path
          operations:
            - name: get-requisition
              method: GET
    - type: http
      namespace: linkedin
      baseUri: "https://api.linkedin.com/v2"
      authentication:
        type: bearer
        token: "$secrets.linkedin_token"
      resources:
        - name: job-postings
          path: "/simpleJobPostings"
          operations:
            - name: create-job-posting
              method: POST

When a loss prevention alert fires, creates a ServiceNow incident, notifies store management via Microsoft Teams, and logs the event in SAP.

naftiko: "0.5"
info:
  label: "Loss Prevention Alert Handler"
  description: "When a loss prevention alert fires, creates a ServiceNow incident, notifies store management via Microsoft Teams, and logs the event in SAP."
  tags:
    - loss-prevention
    - security
    - servicenow
    - microsoft-teams
    - sap
capability:
  exposes:
    - type: mcp
      namespace: loss-prevention
      port: 8080
      tools:
        - name: handle-lp-alert
          description: "Process a loss prevention alert across ServiceNow, Teams, and SAP."
          inputParameters:
            - name: store_number
              in: body
              type: string
              description: "The store number where the alert occurred."
            - name: alert_type
              in: body
              type: string
              description: "Type of LP alert (e.g., exception, sweethearting, return-fraud)."
            - name: alert_detail
              in: body
              type: string
              description: "Details of the loss prevention alert."
          steps:
            - name: create-incident
              type: call
              call: "servicenow.create-incident"
              with:
                short_description: "LP Alert: {{alert_type}} at Store {{store_number}}"
                category: "loss_prevention"
                priority: "2"
                description: "{{alert_detail}}"
            - name: notify-management
              type: call
              call: "msteams.post-channel-message"
              with:
                channel_id: "store_{{store_number}}_mgmt"
                text: "LP ALERT ({{alert_type}}): {{alert_detail}}. ServiceNow: {{create-incident.number}}"
            - name: log-in-sap
              type: call
              call: "sap.create-lp-record"
              with:
                store: "{{store_number}}"
                type: "{{alert_type}}"
                incident_ref: "{{create-incident.number}}"
  consumes:
    - type: http
      namespace: servicenow
      baseUri: "https://tjx.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/{{channel_id}}/channels/General/messages"
          inputParameters:
            - name: channel_id
              in: path
          operations:
            - name: post-channel-message
              method: POST
    - type: http
      namespace: sap
      baseUri: "https://tjx.sap.com/sap/opu/odata/sap/ZLP_EVENTS_SRV"
      authentication:
        type: basic
        username: "$secrets.sap_user"
        password: "$secrets.sap_password"
      resources:
        - name: lp-records
          path: "/LPEventSet"
          operations:
            - name: create-lp-record
              method: POST

Retrieves email campaign performance metrics from MailChimp including open rates, click rates, and revenue attribution.

naftiko: "0.5"
info:
  label: "MailChimp Campaign Metrics"
  description: "Retrieves email campaign performance metrics from MailChimp including open rates, click rates, and revenue attribution."
  tags:
    - marketing
    - mailchimp
    - email-campaigns
capability:
  exposes:
    - type: mcp
      namespace: email-marketing
      port: 8080
      tools:
        - name: get-campaign-metrics
          description: "Fetch MailChimp email campaign performance data."
          inputParameters:
            - name: campaign_id
              in: body
              type: string
              description: "The MailChimp campaign ID."
          call: "mailchimp.get-campaign-report"
          with:
            campaign_id: "{{campaign_id}}"
  consumes:
    - type: http
      namespace: mailchimp
      baseUri: "https://us1.api.mailchimp.com/3.0"
      authentication:
        type: basic
        username: "apikey"
        password: "$secrets.mailchimp_api_key"
      resources:
        - name: campaign-reports
          path: "/reports/{{campaign_id}}"
          inputParameters:
            - name: campaign_id
              in: path
          operations:
            - name: get-campaign-report
              method: GET

Analyzes slow-moving inventory in SAP, generates markdown recommendations using sales velocity data from Power BI, and posts recommendations to the merchandising Microsoft Teams channel.

naftiko: "0.5"
info:
  label: "Markdown Optimization Pipeline"
  description: "Analyzes slow-moving inventory in SAP, generates markdown recommendations using sales velocity data from Power BI, and posts recommendations to the merchandising Microsoft Teams channel."
  tags:
    - merchandising
    - markdowns
    - sap
    - power-bi
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: markdown-mgmt
      port: 8080
      tools:
        - name: generate-markdown-recommendations
          description: "Analyze slow-moving inventory and generate markdown recommendations across SAP, Power BI, and Teams."
          inputParameters:
            - name: category_code
              in: body
              type: string
              description: "The merchandise category code."
            - name: weeks_on_hand
              in: body
              type: string
              description: "Minimum weeks on hand threshold."
          steps:
            - name: get-slow-movers
              type: call
              call: "sap.get-aging-inventory"
              with:
                category: "{{category_code}}"
                min_weeks: "{{weeks_on_hand}}"
            - name: get-velocity-data
              type: call
              call: "powerbi.get-velocity-report"
              with:
                category: "{{category_code}}"
            - name: post-recommendations
              type: call
              call: "msteams.post-channel-message"
              with:
                channel_id: "merchandising_markdowns"
                text: "Markdown recommendations for {{category_code}}: {{get-slow-movers.item_count}} items over {{weeks_on_hand}} weeks. Avg velocity: {{get-velocity-data.avg_units_per_week}}. Review: {{get-velocity-data.report_url}}"
  consumes:
    - type: http
      namespace: sap
      baseUri: "https://tjx.sap.com/sap/opu/odata/sap/ZMM_AGING_SRV"
      authentication:
        type: basic
        username: "$secrets.sap_user"
        password: "$secrets.sap_password"
      resources:
        - name: aging-inventory
          path: "/AgingInventorySet?$filter=Category eq '{{category}}' and WeeksOnHand ge {{min_weeks}}"
          inputParameters:
            - name: category
              in: path
            - name: min_weeks
              in: path
          operations:
            - name: get-aging-inventory
              method: GET
    - type: http
      namespace: powerbi
      baseUri: "https://api.powerbi.com/v1.0/myorg"
      authentication:
        type: bearer
        token: "$secrets.powerbi_token"
      resources:
        - name: reports
          path: "/reports/velocity_{{category}}"
          inputParameters:
            - name: category
              in: path
          operations:
            - name: get-velocity-report
              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/{{channel_id}}/channels/General/messages"
          inputParameters:
            - name: channel_id
              in: path
          operations:
            - name: post-channel-message
              method: POST

Retrieves markdown sell-through performance data.

naftiko: "0.5"
info:
  label: "Markdown Performance Report"
  description: "Retrieves markdown sell-through performance data."
  tags:
    - merchandising
    - analytics
capability:
  exposes:
    - type: mcp
      namespace: merchandising
      port: 8080
      tools:
        - name: get-markdown
          description: "Retrieves markdown sell-through performance data."
          inputParameters:
            - name: entity_id
              in: body
              type: string
              description: "The markdown performance report identifier."
          call: "merchandising-api.get-data"
          with:
            entity_id: "{{entity_id}}"
  consumes:
    - type: http
      namespace: merchandising-api
      baseUri: "https://api.tjx-companies.com/merchandising/v1"
      authentication:
        type: bearer
        token: "$secrets.tjx_companies_api_token"
      resources:
        - name: markdown
          path: "/markdown/performance/report/{{entity_id}}"
          inputParameters:
            - name: entity_id
              in: path
          operations:
            - name: get-markdown
              method: GET

Evaluates marketing campaign performance by aggregating metrics across channels and generating ROI reports.

naftiko: "0.5"
info:
  label: "Marketing Campaign Performance Orchestrator"
  description: "Evaluates marketing campaign performance by aggregating metrics across channels and generating ROI reports."
  tags:
    - marketing
    - analytics
    - finance
capability:
  exposes:
    - type: mcp
      namespace: marketing
      port: 8080
      tools:
        - name: run-marketing-campaign-performance-orchestrator
          description: "Evaluates marketing campaign performance by aggregating metrics across channels and generating ROI reports."
          inputParameters:
            - name: request_id
              in: body
              type: string
              description: "The unique request identifier."
          steps:
            - name: step-1
              type: call
              call: "primary-api.initiate"
              with:
                request_id: "{{request_id}}"
            - name: step-2
              type: call
              call: "secondary-api.process"
              with:
                request_id: "{{request_id}}"
                data: "{{step-1.result}}"
            - name: notify
              type: call
              call: "notification-api.send"
              with:
                channel: "operations"
                message: "Completed Marketing Campaign Performance Orchestrator for request {{request_id}}."
  consumes:
    - type: http
      namespace: primary-api
      baseUri: "https://api.tjx-companies.com/v1"
      authentication:
        type: bearer
        token: "$secrets.tjx_companies_api_token"
      resources:
        - name: primary
          path: "/process"
          operations:
            - name: initiate
              method: POST
    - type: http
      namespace: secondary-api
      baseUri: "https://api.tjx-companies.com/v2"
      authentication:
        type: bearer
        token: "$secrets.tjx_companies_api_token"
      resources:
        - name: secondary
          path: "/execute"
          operations:
            - name: process
              method: POST
    - type: http
      namespace: notification-api
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: messages
          path: "/teams/notifications"
          operations:
            - name: send
              method: POST

Sends a formatted email via Microsoft Outlook Graph API for stakeholder communication.

naftiko: "0.5"
info:
  label: "Microsoft Outlook Email Sender"
  description: "Sends a formatted email via Microsoft Outlook Graph API for stakeholder communication."
  tags:
    - communications
    - microsoft-outlook
    - email
capability:
  exposes:
    - type: mcp
      namespace: email-comms
      port: 8080
      tools:
        - name: send-email
          description: "Send an email via Microsoft Outlook."
          inputParameters:
            - name: to_address
              in: body
              type: string
              description: "The recipient email address."
            - name: subject
              in: body
              type: string
              description: "The email subject."
            - name: body_text
              in: body
              type: string
              description: "The email body."
          call: "outlook.send-email"
          with:
            to: "{{to_address}}"
            subject: "{{subject}}"
            body: "{{body_text}}"
  consumes:
    - type: http
      namespace: outlook
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: mail
          path: "/me/sendMail"
          operations:
            - name: send-email
              method: POST

Sends a formatted message to a specified Microsoft Teams channel for workflow notifications.

naftiko: "0.5"
info:
  label: "Microsoft Teams Channel Notifier"
  description: "Sends a formatted message to a specified Microsoft Teams channel for workflow notifications."
  tags:
    - communications
    - microsoft-teams
    - notifications
capability:
  exposes:
    - type: mcp
      namespace: team-notifications
      port: 8080
      tools:
        - name: send-teams-notification
          description: "Post a notification message to a Microsoft Teams channel."
          inputParameters:
            - name: channel_id
              in: body
              type: string
              description: "The Teams channel ID."
            - name: message
              in: body
              type: string
              description: "The message text to send."
          call: "msteams.post-channel-message"
          with:
            channel_id: "{{channel_id}}"
            text: "{{message}}"
  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/{{channel_id}}/channels/General/messages"
          inputParameters:
            - name: channel_id
              in: path
          operations:
            - name: post-channel-message
              method: POST

Sends a message to a Microsoft Teams channel.

naftiko: "0.5"
info:
  label: "Microsoft Teams Message Sender"
  description: "Sends a message to a Microsoft Teams channel."
  tags:
    - communications
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: communications
      port: 8080
      tools:
        - name: get-microsoft
          description: "Sends a message to a Microsoft Teams channel."
          inputParameters:
            - name: entity_id
              in: body
              type: string
              description: "The microsoft teams message sender identifier."
          call: "communications-api.get-data"
          with:
            entity_id: "{{entity_id}}"
  consumes:
    - type: http
      namespace: communications-api
      baseUri: "https://api.tjx-companies.com/communications/v1"
      authentication:
        type: bearer
        token: "$secrets.tjx_companies_api_token"
      resources:
        - name: microsoft
          path: "/microsoft/teams/message/sender/{{entity_id}}"
          inputParameters:
            - name: entity_id
              in: path
          operations:
            - name: get-microsoft
              method: GET

Coordinates a new store launch by creating a Jira project, provisioning a SharePoint site for store documents, notifying the regional team via Microsoft Teams, and setting up the store in SAP.

naftiko: "0.5"
info:
  label: "New Store Opening Orchestrator"
  description: "Coordinates a new store launch by creating a Jira project, provisioning a SharePoint site for store documents, notifying the regional team via Microsoft Teams, and setting up the store in SAP."
  tags:
    - store-ops
    - new-store
    - jira
    - sharepoint
    - microsoft-teams
    - sap
capability:
  exposes:
    - type: mcp
      namespace: store-launch
      port: 8080
      tools:
        - name: launch-new-store
          description: "Orchestrate new store opening across Jira, SharePoint, Teams, and SAP."
          inputParameters:
            - name: store_number
              in: body
              type: string
              description: "The new store number."
            - name: store_location
              in: body
              type: string
              description: "The store city and state."
            - name: banner
              in: body
              type: string
              description: "The retail banner (TJ Maxx, Marshalls, HomeGoods)."
            - name: open_date
              in: body
              type: string
              description: "Planned opening date in YYYY-MM-DD format."
          steps:
            - name: create-project
              type: call
              call: "jira.create-project"
              with:
                name: "Store {{store_number}} - {{banner}} {{store_location}}"
                key: "ST{{store_number}}"
                template: "store_opening"
            - name: provision-site
              type: call
              call: "sharepoint.create-site"
              with:
                site_name: "Store-{{store_number}}"
                description: "{{banner}} Store {{store_number}} - {{store_location}}"
            - name: setup-sap
              type: call
              call: "sap.create-store-master"
              with:
                store_number: "{{store_number}}"
                location: "{{store_location}}"
                banner: "{{banner}}"
                open_date: "{{open_date}}"
            - name: notify-regional
              type: call
              call: "msteams.post-channel-message"
              with:
                channel_id: "regional_ops"
                text: "New store launch initiated: {{banner}} #{{store_number}} in {{store_location}}. Opening: {{open_date}}. Jira: {{create-project.url}}"
  consumes:
    - type: http
      namespace: jira
      baseUri: "https://tjx.atlassian.net/rest/api/3"
      authentication:
        type: basic
        username: "$secrets.jira_user"
        password: "$secrets.jira_api_token"
      resources:
        - name: projects
          path: "/project"
          operations:
            - name: create-project
              method: POST
    - type: http
      namespace: sharepoint
      baseUri: "https://graph.microsoft.com/v1.0/sites"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: sites
          path: "/root/sites"
          operations:
            - name: create-site
              method: POST
    - type: http
      namespace: sap
      baseUri: "https://tjx.sap.com/sap/opu/odata/sap/ZSD_STORE_SRV"
      authentication:
        type: basic
        username: "$secrets.sap_user"
        password: "$secrets.sap_password"
      resources:
        - name: store-master
          path: "/StoreMasterSet"
          operations:
            - name: create-store-master
              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/{{channel_id}}/channels/General/messages"
          inputParameters:
            - name: channel_id
              in: path
          operations:
            - name: post-channel-message
              method: POST

Queries the SAP merchandise system for available off-price buying opportunities by vendor and category, returning lot sizes, unit costs, and brand details.

naftiko: "0.5"
info:
  label: "Off-Price Buying Opportunity Lookup"
  description: "Queries the SAP merchandise system for available off-price buying opportunities by vendor and category, returning lot sizes, unit costs, and brand details."
  tags:
    - buying
    - merchandising
    - sap
    - off-price
capability:
  exposes:
    - type: mcp
      namespace: buying-ops
      port: 8080
      tools:
        - name: get-buying-opportunities
          description: "Look up available off-price buying opportunities from SAP by vendor and category."
          inputParameters:
            - name: vendor_id
              in: body
              type: string
              description: "The SAP vendor ID."
            - name: category_code
              in: body
              type: string
              description: "The merchandise category code."
          call: "sap.get-opportunities"
          with:
            vendor_id: "{{vendor_id}}"
            category_code: "{{category_code}}"
  consumes:
    - type: http
      namespace: sap
      baseUri: "https://tjx.sap.com/sap/opu/odata/sap/ZMM_BUYING_SRV"
      authentication:
        type: basic
        username: "$secrets.sap_user"
        password: "$secrets.sap_password"
      resources:
        - name: opportunities
          path: "/BuyingOpportunitySet?$filter=VendorId eq '{{vendor_id}}' and Category eq '{{category_code}}'"
          inputParameters:
            - name: vendor_id
              in: path
            - name: category_code
              in: path
          operations:
            - name: get-opportunities
              method: GET

Orchestrates off price retail workflow 1 by coordinating across systems, validating data, and sending notifications.

naftiko: "0.5"
info:
  label: "Off Price Retail Workflow 1"
  description: "Orchestrates off price retail workflow 1 by coordinating across systems, validating data, and sending notifications."
  tags:
    - off
    - operations
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: off
      port: 8080
      tools:
        - name: run-off-price-retail-workflow-001
          description: "Orchestrates off price retail workflow 1 by coordinating across systems, validating data, and sending notifications."
          inputParameters:
            - name: request_id
              in: body
              type: string
              description: "The unique request identifier."
          steps:
            - name: step-1
              type: call
              call: "primary-api.initiate"
              with:
                request_id: "{{request_id}}"
            - name: step-2
              type: call
              call: "secondary-api.process"
              with:
                request_id: "{{request_id}}"
                data: "{{step-1.result}}"
            - name: notify
              type: call
              call: "notification-api.send"
              with:
                channel: "operations"
                message: "Completed Off Price Retail Workflow 1 for request {{request_id}}."
  consumes:
    - type: http
      namespace: primary-api
      baseUri: "https://api.tjx-companies.com/v1"
      authentication:
        type: bearer
        token: "$secrets.tjx_companies_api_token"
      resources:
        - name: primary
          path: "/process"
          operations:
            - name: initiate
              method: POST
    - type: http
      namespace: secondary-api
      baseUri: "https://api.tjx-companies.com/v2"
      authentication:
        type: bearer
        token: "$secrets.tjx_companies_api_token"
      resources:
        - name: secondary
          path: "/execute"
          operations:
            - name: process
              method: POST
    - type: http
      namespace: notification-api
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: messages
          path: "/teams/notifications"
          operations:
            - name: send
              method: POST

Orchestrates off price retail workflow 2 by coordinating across systems, validating data, and sending notifications.

naftiko: "0.5"
info:
  label: "Off Price Retail Workflow 2"
  description: "Orchestrates off price retail workflow 2 by coordinating across systems, validating data, and sending notifications."
  tags:
    - off
    - operations
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: off
      port: 8080
      tools:
        - name: run-off-price-retail-workflow-002
          description: "Orchestrates off price retail workflow 2 by coordinating across systems, validating data, and sending notifications."
          inputParameters:
            - name: request_id
              in: body
              type: string
              description: "The unique request identifier."
          steps:
            - name: step-1
              type: call
              call: "primary-api.initiate"
              with:
                request_id: "{{request_id}}"
            - name: step-2
              type: call
              call: "secondary-api.process"
              with:
                request_id: "{{request_id}}"
                data: "{{step-1.result}}"
            - name: notify
              type: call
              call: "notification-api.send"
              with:
                channel: "operations"
                message: "Completed Off Price Retail Workflow 2 for request {{request_id}}."
  consumes:
    - type: http
      namespace: primary-api
      baseUri: "https://api.tjx-companies.com/v1"
      authentication:
        type: bearer
        token: "$secrets.tjx_companies_api_token"
      resources:
        - name: primary
          path: "/process"
          operations:
            - name: initiate
              method: POST
    - type: http
      namespace: secondary-api
      baseUri: "https://api.tjx-companies.com/v2"
      authentication:
        type: bearer
        token: "$secrets.tjx_companies_api_token"
      resources:
        - name: secondary
          path: "/execute"
          operations:
            - name: process
              method: POST
    - type: http
      namespace: notification-api
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: messages
          path: "/teams/notifications"
          operations:
            - name: send
              method: POST

Retrieves off price retail operational data for workflow 3.

naftiko: "0.5"
info:
  label: "Off Price Retail Data Query 3"
  description: "Retrieves off price retail operational data for workflow 3."
  tags:
    - off
    - operations
capability:
  exposes:
    - type: mcp
      namespace: off
      port: 8080
      tools:
        - name: get-data-3
          description: "Query off price retail data for workflow 3."
          inputParameters:
            - name: entity_id
              in: body
              type: string
              description: "The entity identifier."
          call: "off-api.get-data"
          with:
            entity_id: "{{entity_id}}"
  consumes:
    - type: http
      namespace: off-api
      baseUri: "https://api.tjx-companies.com/off-price-retail/v1"
      authentication:
        type: bearer
        token: "$secrets.tjx_companies_api_token"
      resources:
        - name: data
          path: "/data/{{entity_id}}"
          inputParameters:
            - name: entity_id
              in: path
          operations:
            - name: get-data-3
              method: GET

Orchestrates off price retail workflow 4 by coordinating across systems, validating data, and sending notifications.

naftiko: "0.5"
info:
  label: "Off Price Retail Workflow 4"
  description: "Orchestrates off price retail workflow 4 by coordinating across systems, validating data, and sending notifications."
  tags:
    - off
    - operations
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: off
      port: 8080
      tools:
        - name: run-off-price-retail-workflow-004
          description: "Orchestrates off price retail workflow 4 by coordinating across systems, validating data, and sending notifications."
          inputParameters:
            - name: request_id
              in: body
              type: string
              description: "The unique request identifier."
          steps:
            - name: step-1
              type: call
              call: "primary-api.initiate"
              with:
                request_id: "{{request_id}}"
            - name: step-2
              type: call
              call: "secondary-api.process"
              with:
                request_id: "{{request_id}}"
                data: "{{step-1.result}}"
            - name: notify
              type: call
              call: "notification-api.send"
              with:
                channel: "operations"
                message: "Completed Off Price Retail Workflow 4 for request {{request_id}}."
  consumes:
    - type: http
      namespace: primary-api
      baseUri: "https://api.tjx-companies.com/v1"
      authentication:
        type: bearer
        token: "$secrets.tjx_companies_api_token"
      resources:
        - name: primary
          path: "/process"
          operations:
            - name: initiate
              method: POST
    - type: http
      namespace: secondary-api
      baseUri: "https://api.tjx-companies.com/v2"
      authentication:
        type: bearer
        token: "$secrets.tjx_companies_api_token"
      resources:
        - name: secondary
          path: "/execute"
          operations:
            - name: process
              method: POST
    - type: http
      namespace: notification-api
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: messages
          path: "/teams/notifications"
          operations:
            - name: send
              method: POST

Orchestrates off price retail workflow 5 by coordinating across systems, validating data, and sending notifications.

naftiko: "0.5"
info:
  label: "Off Price Retail Workflow 5"
  description: "Orchestrates off price retail workflow 5 by coordinating across systems, validating data, and sending notifications."
  tags:
    - off
    - operations
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: off
      port: 8080
      tools:
        - name: run-off-price-retail-workflow-005
          description: "Orchestrates off price retail workflow 5 by coordinating across systems, validating data, and sending notifications."
          inputParameters:
            - name: request_id
              in: body
              type: string
              description: "The unique request identifier."
          steps:
            - name: step-1
              type: call
              call: "primary-api.initiate"
              with:
                request_id: "{{request_id}}"
            - name: step-2
              type: call
              call: "secondary-api.process"
              with:
                request_id: "{{request_id}}"
                data: "{{step-1.result}}"
            - name: notify
              type: call
              call: "notification-api.send"
              with:
                channel: "operations"
                message: "Completed Off Price Retail Workflow 5 for request {{request_id}}."
  consumes:
    - type: http
      namespace: primary-api
      baseUri: "https://api.tjx-companies.com/v1"
      authentication:
        type: bearer
        token: "$secrets.tjx_companies_api_token"
      resources:
        - name: primary
          path: "/process"
          operations:
            - name: initiate
              method: POST
    - type: http
      namespace: secondary-api
      baseUri: "https://api.tjx-companies.com/v2"
      authentication:
        type: bearer
        token: "$secrets.tjx_companies_api_token"
      resources:
        - name: secondary
          path: "/execute"
          operations:
            - name: process
              method: POST
    - type: http
      namespace: notification-api
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: messages
          path: "/teams/notifications"
          operations:
            - name: send
              method: POST

Retrieves off price retail operational data for workflow 6.

naftiko: "0.5"
info:
  label: "Off Price Retail Data Query 6"
  description: "Retrieves off price retail operational data for workflow 6."
  tags:
    - off
    - operations
capability:
  exposes:
    - type: mcp
      namespace: off
      port: 8080
      tools:
        - name: get-data-6
          description: "Query off price retail data for workflow 6."
          inputParameters:
            - name: entity_id
              in: body
              type: string
              description: "The entity identifier."
          call: "off-api.get-data"
          with:
            entity_id: "{{entity_id}}"
  consumes:
    - type: http
      namespace: off-api
      baseUri: "https://api.tjx-companies.com/off-price-retail/v1"
      authentication:
        type: bearer
        token: "$secrets.tjx_companies_api_token"
      resources:
        - name: data
          path: "/data/{{entity_id}}"
          inputParameters:
            - name: entity_id
              in: path
          operations:
            - name: get-data-6
              method: GET

Orchestrates off price retail workflow 7 by coordinating across systems, validating data, and sending notifications.

naftiko: "0.5"
info:
  label: "Off Price Retail Workflow 7"
  description: "Orchestrates off price retail workflow 7 by coordinating across systems, validating data, and sending notifications."
  tags:
    - off
    - operations
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: off
      port: 8080
      tools:
        - name: run-off-price-retail-workflow-007
          description: "Orchestrates off price retail workflow 7 by coordinating across systems, validating data, and sending notifications."
          inputParameters:
            - name: request_id
              in: body
              type: string
              description: "The unique request identifier."
          steps:
            - name: step-1
              type: call
              call: "primary-api.initiate"
              with:
                request_id: "{{request_id}}"
            - name: step-2
              type: call
              call: "secondary-api.process"
              with:
                request_id: "{{request_id}}"
                data: "{{step-1.result}}"
            - name: notify
              type: call
              call: "notification-api.send"
              with:
                channel: "operations"
                message: "Completed Off Price Retail Workflow 7 for request {{request_id}}."
  consumes:
    - type: http
      namespace: primary-api
      baseUri: "https://api.tjx-companies.com/v1"
      authentication:
        type: bearer
        token: "$secrets.tjx_companies_api_token"
      resources:
        - name: primary
          path: "/process"
          operations:
            - name: initiate
              method: POST
    - type: http
      namespace: secondary-api
      baseUri: "https://api.tjx-companies.com/v2"
      authentication:
        type: bearer
        token: "$secrets.tjx_companies_api_token"
      resources:
        - name: secondary
          path: "/execute"
          operations:
            - name: process
              method: POST
    - type: http
      namespace: notification-api
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: messages
          path: "/teams/notifications"
          operations:
            - name: send
              method: POST

Orchestrates off price retail workflow 8 by coordinating across systems, validating data, and sending notifications.

naftiko: "0.5"
info:
  label: "Off Price Retail Workflow 8"
  description: "Orchestrates off price retail workflow 8 by coordinating across systems, validating data, and sending notifications."
  tags:
    - off
    - operations
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: off
      port: 8080
      tools:
        - name: run-off-price-retail-workflow-008
          description: "Orchestrates off price retail workflow 8 by coordinating across systems, validating data, and sending notifications."
          inputParameters:
            - name: request_id
              in: body
              type: string
              description: "The unique request identifier."
          steps:
            - name: step-1
              type: call
              call: "primary-api.initiate"
              with:
                request_id: "{{request_id}}"
            - name: step-2
              type: call
              call: "secondary-api.process"
              with:
                request_id: "{{request_id}}"
                data: "{{step-1.result}}"
            - name: notify
              type: call
              call: "notification-api.send"
              with:
                channel: "operations"
                message: "Completed Off Price Retail Workflow 8 for request {{request_id}}."
  consumes:
    - type: http
      namespace: primary-api
      baseUri: "https://api.tjx-companies.com/v1"
      authentication:
        type: bearer
        token: "$secrets.tjx_companies_api_token"
      resources:
        - name: primary
          path: "/process"
          operations:
            - name: initiate
              method: POST
    - type: http
      namespace: secondary-api
      baseUri: "https://api.tjx-companies.com/v2"
      authentication:
        type: bearer
        token: "$secrets.tjx_companies_api_token"
      resources:
        - name: secondary
          path: "/execute"
          operations:
            - name: process
              method: POST
    - type: http
      namespace: notification-api
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: messages
          path: "/teams/notifications"
          operations:
            - name: send
              method: POST

Retrieves off price retail operational data for workflow 9.

naftiko: "0.5"
info:
  label: "Off Price Retail Data Query 9"
  description: "Retrieves off price retail operational data for workflow 9."
  tags:
    - off
    - operations
capability:
  exposes:
    - type: mcp
      namespace: off
      port: 8080
      tools:
        - name: get-data-9
          description: "Query off price retail data for workflow 9."
          inputParameters:
            - name: entity_id
              in: body
              type: string
              description: "The entity identifier."
          call: "off-api.get-data"
          with:
            entity_id: "{{entity_id}}"
  consumes:
    - type: http
      namespace: off-api
      baseUri: "https://api.tjx-companies.com/off-price-retail/v1"
      authentication:
        type: bearer
        token: "$secrets.tjx_companies_api_token"
      resources:
        - name: data
          path: "/data/{{entity_id}}"
          inputParameters:
            - name: entity_id
              in: path
          operations:
            - name: get-data-9
              method: GET

Orchestrates off price retail workflow 10 by coordinating across systems, validating data, and sending notifications.

naftiko: "0.5"
info:
  label: "Off Price Retail Workflow 10"
  description: "Orchestrates off price retail workflow 10 by coordinating across systems, validating data, and sending notifications."
  tags:
    - off
    - operations
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: off
      port: 8080
      tools:
        - name: run-off-price-retail-workflow-010
          description: "Orchestrates off price retail workflow 10 by coordinating across systems, validating data, and sending notifications."
          inputParameters:
            - name: request_id
              in: body
              type: string
              description: "The unique request identifier."
          steps:
            - name: step-1
              type: call
              call: "primary-api.initiate"
              with:
                request_id: "{{request_id}}"
            - name: step-2
              type: call
              call: "secondary-api.process"
              with:
                request_id: "{{request_id}}"
                data: "{{step-1.result}}"
            - name: notify
              type: call
              call: "notification-api.send"
              with:
                channel: "operations"
                message: "Completed Off Price Retail Workflow 10 for request {{request_id}}."
  consumes:
    - type: http
      namespace: primary-api
      baseUri: "https://api.tjx-companies.com/v1"
      authentication:
        type: bearer
        token: "$secrets.tjx_companies_api_token"
      resources:
        - name: primary
          path: "/process"
          operations:
            - name: initiate
              method: POST
    - type: http
      namespace: secondary-api
      baseUri: "https://api.tjx-companies.com/v2"
      authentication:
        type: bearer
        token: "$secrets.tjx_companies_api_token"
      resources:
        - name: secondary
          path: "/execute"
          operations:
            - name: process
              method: POST
    - type: http
      namespace: notification-api
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: messages
          path: "/teams/notifications"
          operations:
            - name: send
              method: POST

Orchestrates off price retail workflow 11 by coordinating across systems, validating data, and sending notifications.

naftiko: "0.5"
info:
  label: "Off Price Retail Workflow 11"
  description: "Orchestrates off price retail workflow 11 by coordinating across systems, validating data, and sending notifications."
  tags:
    - off
    - operations
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: off
      port: 8080
      tools:
        - name: run-off-price-retail-workflow-011
          description: "Orchestrates off price retail workflow 11 by coordinating across systems, validating data, and sending notifications."
          inputParameters:
            - name: request_id
              in: body
              type: string
              description: "The unique request identifier."
          steps:
            - name: step-1
              type: call
              call: "primary-api.initiate"
              with:
                request_id: "{{request_id}}"
            - name: step-2
              type: call
              call: "secondary-api.process"
              with:
                request_id: "{{request_id}}"
                data: "{{step-1.result}}"
            - name: notify
              type: call
              call: "notification-api.send"
              with:
                channel: "operations"
                message: "Completed Off Price Retail Workflow 11 for request {{request_id}}."
  consumes:
    - type: http
      namespace: primary-api
      baseUri: "https://api.tjx-companies.com/v1"
      authentication:
        type: bearer
        token: "$secrets.tjx_companies_api_token"
      resources:
        - name: primary
          path: "/process"
          operations:
            - name: initiate
              method: POST
    - type: http
      namespace: secondary-api
      baseUri: "https://api.tjx-companies.com/v2"
      authentication:
        type: bearer
        token: "$secrets.tjx_companies_api_token"
      resources:
        - name: secondary
          path: "/execute"
          operations:
            - name: process
              method: POST
    - type: http
      namespace: notification-api
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: messages
          path: "/teams/notifications"
          operations:
            - name: send
              method: POST

Retrieves off price retail operational data for workflow 12.

naftiko: "0.5"
info:
  label: "Off Price Retail Data Query 12"
  description: "Retrieves off price retail operational data for workflow 12."
  tags:
    - off
    - operations
capability:
  exposes:
    - type: mcp
      namespace: off
      port: 8080
      tools:
        - name: get-data-12
          description: "Query off price retail data for workflow 12."
          inputParameters:
            - name: entity_id
              in: body
              type: string
              description: "The entity identifier."
          call: "off-api.get-data"
          with:
            entity_id: "{{entity_id}}"
  consumes:
    - type: http
      namespace: off-api
      baseUri: "https://api.tjx-companies.com/off-price-retail/v1"
      authentication:
        type: bearer
        token: "$secrets.tjx_companies_api_token"
      resources:
        - name: data
          path: "/data/{{entity_id}}"
          inputParameters:
            - name: entity_id
              in: path
          operations:
            - name: get-data-12
              method: GET

Orchestrates off price retail workflow 13 by coordinating across systems, validating data, and sending notifications.

naftiko: "0.5"
info:
  label: "Off Price Retail Workflow 13"
  description: "Orchestrates off price retail workflow 13 by coordinating across systems, validating data, and sending notifications."
  tags:
    - off
    - operations
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: off
      port: 8080
      tools:
        - name: run-off-price-retail-workflow-013
          description: "Orchestrates off price retail workflow 13 by coordinating across systems, validating data, and sending notifications."
          inputParameters:
            - name: request_id
              in: body
              type: string
              description: "The unique request identifier."
          steps:
            - name: step-1
              type: call
              call: "primary-api.initiate"
              with:
                request_id: "{{request_id}}"
            - name: step-2
              type: call
              call: "secondary-api.process"
              with:
                request_id: "{{request_id}}"
                data: "{{step-1.result}}"
            - name: notify
              type: call
              call: "notification-api.send"
              with:
                channel: "operations"
                message: "Completed Off Price Retail Workflow 13 for request {{request_id}}."
  consumes:
    - type: http
      namespace: primary-api
      baseUri: "https://api.tjx-companies.com/v1"
      authentication:
        type: bearer
        token: "$secrets.tjx_companies_api_token"
      resources:
        - name: primary
          path: "/process"
          operations:
            - name: initiate
              method: POST
    - type: http
      namespace: secondary-api
      baseUri: "https://api.tjx-companies.com/v2"
      authentication:
        type: bearer
        token: "$secrets.tjx_companies_api_token"
      resources:
        - name: secondary
          path: "/execute"
          operations:
            - name: process
              method: POST
    - type: http
      namespace: notification-api
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: messages
          path: "/teams/notifications"
          operations:
            - name: send
              method: POST

Orchestrates off price retail workflow 14 by coordinating across systems, validating data, and sending notifications.

naftiko: "0.5"
info:
  label: "Off Price Retail Workflow 14"
  description: "Orchestrates off price retail workflow 14 by coordinating across systems, validating data, and sending notifications."
  tags:
    - off
    - operations
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: off
      port: 8080
      tools:
        - name: run-off-price-retail-workflow-014
          description: "Orchestrates off price retail workflow 14 by coordinating across systems, validating data, and sending notifications."
          inputParameters:
            - name: request_id
              in: body
              type: string
              description: "The unique request identifier."
          steps:
            - name: step-1
              type: call
              call: "primary-api.initiate"
              with:
                request_id: "{{request_id}}"
            - name: step-2
              type: call
              call: "secondary-api.process"
              with:
                request_id: "{{request_id}}"
                data: "{{step-1.result}}"
            - name: notify
              type: call
              call: "notification-api.send"
              with:
                channel: "operations"
                message: "Completed Off Price Retail Workflow 14 for request {{request_id}}."
  consumes:
    - type: http
      namespace: primary-api
      baseUri: "https://api.tjx-companies.com/v1"
      authentication:
        type: bearer
        token: "$secrets.tjx_companies_api_token"
      resources:
        - name: primary
          path: "/process"
          operations:
            - name: initiate
              method: POST
    - type: http
      namespace: secondary-api
      baseUri: "https://api.tjx-companies.com/v2"
      authentication:
        type: bearer
        token: "$secrets.tjx_companies_api_token"
      resources:
        - name: secondary
          path: "/execute"
          operations:
            - name: process
              method: POST
    - type: http
      namespace: notification-api
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: messages
          path: "/teams/notifications"
          operations:
            - name: send
              method: POST

Retrieves off price retail operational data for workflow 15.

naftiko: "0.5"
info:
  label: "Off Price Retail Data Query 15"
  description: "Retrieves off price retail operational data for workflow 15."
  tags:
    - off
    - operations
capability:
  exposes:
    - type: mcp
      namespace: off
      port: 8080
      tools:
        - name: get-data-15
          description: "Query off price retail data for workflow 15."
          inputParameters:
            - name: entity_id
              in: body
              type: string
              description: "The entity identifier."
          call: "off-api.get-data"
          with:
            entity_id: "{{entity_id}}"
  consumes:
    - type: http
      namespace: off-api
      baseUri: "https://api.tjx-companies.com/off-price-retail/v1"
      authentication:
        type: bearer
        token: "$secrets.tjx_companies_api_token"
      resources:
        - name: data
          path: "/data/{{entity_id}}"
          inputParameters:
            - name: entity_id
              in: path
          operations:
            - name: get-data-15
              method: GET

Orchestrates off price retail workflow 16 by coordinating across systems, validating data, and sending notifications.

naftiko: "0.5"
info:
  label: "Off Price Retail Workflow 16"
  description: "Orchestrates off price retail workflow 16 by coordinating across systems, validating data, and sending notifications."
  tags:
    - off
    - operations
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: off
      port: 8080
      tools:
        - name: run-off-price-retail-workflow-016
          description: "Orchestrates off price retail workflow 16 by coordinating across systems, validating data, and sending notifications."
          inputParameters:
            - name: request_id
              in: body
              type: string
              description: "The unique request identifier."
          steps:
            - name: step-1
              type: call
              call: "primary-api.initiate"
              with:
                request_id: "{{request_id}}"
            - name: step-2
              type: call
              call: "secondary-api.process"
              with:
                request_id: "{{request_id}}"
                data: "{{step-1.result}}"
            - name: notify
              type: call
              call: "notification-api.send"
              with:
                channel: "operations"
                message: "Completed Off Price Retail Workflow 16 for request {{request_id}}."
  consumes:
    - type: http
      namespace: primary-api
      baseUri: "https://api.tjx-companies.com/v1"
      authentication:
        type: bearer
        token: "$secrets.tjx_companies_api_token"
      resources:
        - name: primary
          path: "/process"
          operations:
            - name: initiate
              method: POST
    - type: http
      namespace: secondary-api
      baseUri: "https://api.tjx-companies.com/v2"
      authentication:
        type: bearer
        token: "$secrets.tjx_companies_api_token"
      resources:
        - name: secondary
          path: "/execute"
          operations:
            - name: process
              method: POST
    - type: http
      namespace: notification-api
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: messages
          path: "/teams/notifications"
          operations:
            - name: send
              method: POST

Checks point-of-sale system health for a store via Datadog and creates a ServiceNow incident if the system is degraded.

naftiko: "0.5"
info:
  label: "POS System Health Monitor"
  description: "Checks point-of-sale system health for a store via Datadog and creates a ServiceNow incident if the system is degraded."
  tags:
    - store-ops
    - monitoring
    - datadog
    - servicenow
    - pos
capability:
  exposes:
    - type: mcp
      namespace: pos-monitoring
      port: 8080
      tools:
        - name: check-pos-health
          description: "Monitor POS system health and create incident if degraded."
          inputParameters:
            - name: store_number
              in: body
              type: string
              description: "The store number to check."
          steps:
            - name: get-pos-metrics
              type: call
              call: "datadog.get-pos-health"
              with:
                store: "{{store_number}}"
            - name: create-incident
              type: call
              call: "servicenow.create-incident"
              with:
                short_description: "POS system degraded at Store {{store_number}}"
                category: "pos_systems"
                priority: "1"
                description: "POS error rate: {{get-pos-metrics.error_rate}}%. Latency: {{get-pos-metrics.avg_latency}}ms."
  consumes:
    - type: http
      namespace: datadog
      baseUri: "https://api.datadoghq.com/api/v1"
      authentication:
        type: apiKey
        key: "$secrets.datadog_api_key"
        headerName: "DD-API-KEY"
      resources:
        - name: pos-health
          path: "/query?query=avg:pos.transaction.error_rate{store:{{store}}}"
          inputParameters:
            - name: store
              in: path
          operations:
            - name: get-pos-health
              method: GET
    - type: http
      namespace: servicenow
      baseUri: "https://tjx.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

Triggers a Power BI dataset refresh.

naftiko: "0.5"
info:
  label: "Power BI Dashboard Refresher"
  description: "Triggers a Power BI dataset refresh."
  tags:
    - analytics
    - power-bi
capability:
  exposes:
    - type: mcp
      namespace: analytics
      port: 8080
      tools:
        - name: get-power
          description: "Triggers a Power BI dataset refresh."
          inputParameters:
            - name: entity_id
              in: body
              type: string
              description: "The power bi dashboard refresher identifier."
          call: "analytics-api.get-data"
          with:
            entity_id: "{{entity_id}}"
  consumes:
    - type: http
      namespace: analytics-api
      baseUri: "https://api.tjx-companies.com/analytics/v1"
      authentication:
        type: bearer
        token: "$secrets.tjx_companies_api_token"
      resources:
        - name: power
          path: "/power/bi/dashboard/refresher/{{entity_id}}"
          inputParameters:
            - name: entity_id
              in: path
          operations:
            - name: get-power
              method: GET

Triggers a Power BI dataset refresh for the sales analytics dashboard and returns the refresh status.

naftiko: "0.5"
info:
  label: "Power BI Sales Dashboard Refresh"
  description: "Triggers a Power BI dataset refresh for the sales analytics dashboard and returns the refresh status."
  tags:
    - analytics
    - power-bi
    - reporting
capability:
  exposes:
    - type: mcp
      namespace: bi-refresh
      port: 8080
      tools:
        - name: refresh-sales-dashboard
          description: "Trigger a Power BI dataset refresh for sales analytics."
          inputParameters:
            - name: dataset_id
              in: body
              type: string
              description: "The Power BI dataset ID."
          call: "powerbi.refresh-dataset"
          with:
            dataset_id: "{{dataset_id}}"
  consumes:
    - type: http
      namespace: powerbi
      baseUri: "https://api.powerbi.com/v1.0/myorg"
      authentication:
        type: bearer
        token: "$secrets.powerbi_token"
      resources:
        - name: refreshes
          path: "/datasets/{{dataset_id}}/refreshes"
          inputParameters:
            - name: dataset_id
              in: path
          operations:
            - name: refresh-dataset
              method: POST

Analyzes procurement spend by categorizing purchases, identifying savings opportunities, and generating reports.

naftiko: "0.5"
info:
  label: "Procurement Spend Analysis Orchestrator"
  description: "Analyzes procurement spend by categorizing purchases, identifying savings opportunities, and generating reports."
  tags:
    - procurement
    - analytics
    - finance
capability:
  exposes:
    - type: mcp
      namespace: procurement
      port: 8080
      tools:
        - name: run-procurement-spend-analysis-orchestrator
          description: "Analyzes procurement spend by categorizing purchases, identifying savings opportunities, and generating reports."
          inputParameters:
            - name: request_id
              in: body
              type: string
              description: "The unique request identifier."
          steps:
            - name: step-1
              type: call
              call: "primary-api.initiate"
              with:
                request_id: "{{request_id}}"
            - name: step-2
              type: call
              call: "secondary-api.process"
              with:
                request_id: "{{request_id}}"
                data: "{{step-1.result}}"
            - name: notify
              type: call
              call: "notification-api.send"
              with:
                channel: "operations"
                message: "Completed Procurement Spend Analysis Orchestrator for request {{request_id}}."
  consumes:
    - type: http
      namespace: primary-api
      baseUri: "https://api.tjx-companies.com/v1"
      authentication:
        type: bearer
        token: "$secrets.tjx_companies_api_token"
      resources:
        - name: primary
          path: "/process"
          operations:
            - name: initiate
              method: POST
    - type: http
      namespace: secondary-api
      baseUri: "https://api.tjx-companies.com/v2"
      authentication:
        type: bearer
        token: "$secrets.tjx_companies_api_token"
      resources:
        - name: secondary
          path: "/execute"
          operations:
            - name: process
              method: POST
    - type: http
      namespace: notification-api
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: messages
          path: "/teams/notifications"
          operations:
            - name: send
              method: POST

Looks up a SAP purchase order by number and returns header status, vendor, total value, and delivery schedule for the buying team.

naftiko: "0.5"
info:
  label: "Purchase Order Status Checker"
  description: "Looks up a SAP purchase order by number and returns header status, vendor, total value, and delivery schedule for the buying team."
  tags:
    - procurement
    - sap
    - buying
    - purchase-order
capability:
  exposes:
    - type: mcp
      namespace: procurement-ops
      port: 8080
      tools:
        - name: get-purchase-order
          description: "Look up a SAP purchase order by PO number."
          inputParameters:
            - name: po_number
              in: body
              type: string
              description: "The SAP purchase order number."
          call: "sap.get-po"
          with:
            po_number: "{{po_number}}"
  consumes:
    - type: http
      namespace: sap
      baseUri: "https://tjx.sap.com/sap/opu/odata/sap/MM_PUR_PO_MAINT_V2_SRV"
      authentication:
        type: basic
        username: "$secrets.sap_user"
        password: "$secrets.sap_password"
      resources:
        - name: purchase-orders
          path: "/A_PurchaseOrder('{{po_number}}')"
          inputParameters:
            - name: po_number
              in: path
          operations:
            - name: get-po
              method: GET

Generates quarterly business reviews by aggregating KPIs from multiple systems, creating presentations, and distributing to stakeholders.

naftiko: "0.5"
info:
  label: "Quarterly Business Review Orchestrator"
  description: "Generates quarterly business reviews by aggregating KPIs from multiple systems, creating presentations, and distributing to stakeholders."
  tags:
    - analytics
    - business
    - sharepoint
capability:
  exposes:
    - type: mcp
      namespace: analytics
      port: 8080
      tools:
        - name: run-quarterly-business-review-orchestrator
          description: "Generates quarterly business reviews by aggregating KPIs from multiple systems, creating presentations, and distributing to stakeholders."
          inputParameters:
            - name: request_id
              in: body
              type: string
              description: "The unique request identifier."
          steps:
            - name: step-1
              type: call
              call: "primary-api.initiate"
              with:
                request_id: "{{request_id}}"
            - name: step-2
              type: call
              call: "secondary-api.process"
              with:
                request_id: "{{request_id}}"
                data: "{{step-1.result}}"
            - name: notify
              type: call
              call: "notification-api.send"
              with:
                channel: "operations"
                message: "Completed Quarterly Business Review Orchestrator for request {{request_id}}."
  consumes:
    - type: http
      namespace: primary-api
      baseUri: "https://api.tjx-companies.com/v1"
      authentication:
        type: bearer
        token: "$secrets.tjx_companies_api_token"
      resources:
        - name: primary
          path: "/process"
          operations:
            - name: initiate
              method: POST
    - type: http
      namespace: secondary-api
      baseUri: "https://api.tjx-companies.com/v2"
      authentication:
        type: bearer
        token: "$secrets.tjx_companies_api_token"
      resources:
        - name: secondary
          path: "/execute"
          operations:
            - name: process
              method: POST
    - type: http
      namespace: notification-api
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: messages
          path: "/teams/notifications"
          operations:
            - name: send
              method: POST

Analyzes store inventory against demand forecasts in SAP and automatically creates replenishment orders for stores below safety stock thresholds.

naftiko: "0.5"
info:
  label: "Replenishment Order Generator"
  description: "Analyzes store inventory against demand forecasts in SAP and automatically creates replenishment orders for stores below safety stock thresholds."
  tags:
    - inventory
    - replenishment
    - sap
    - distribution
capability:
  exposes:
    - type: mcp
      namespace: replenishment
      port: 8080
      tools:
        - name: generate-replenishment
          description: "Analyze store inventory gaps and create replenishment orders in SAP."
          inputParameters:
            - name: store_number
              in: body
              type: string
              description: "The TJX store number."
            - name: category_code
              in: body
              type: string
              description: "The merchandise category to check."
          steps:
            - name: check-gaps
              type: call
              call: "sap.get-inventory-gaps"
              with:
                store: "{{store_number}}"
                category: "{{category_code}}"
            - name: create-replenishment
              type: call
              call: "sap.create-transfer-order"
              with:
                store: "{{store_number}}"
                items: "{{check-gaps.below_safety_stock}}"
                dc: "{{check-gaps.assigned_dc}}"
  consumes:
    - type: http
      namespace: sap
      baseUri: "https://tjx.sap.com/sap/opu/odata/sap/ZMM_REPLENISH_SRV"
      authentication:
        type: basic
        username: "$secrets.sap_user"
        password: "$secrets.sap_password"
      resources:
        - name: inventory-gaps
          path: "/InventoryGapSet?$filter=Store eq '{{store}}' and Category eq '{{category}}'"
          inputParameters:
            - name: store
              in: path
            - name: category
              in: path
          operations:
            - name: get-inventory-gaps
              method: GET
        - name: transfer-orders
          path: "/TransferOrderSet"
          operations:
            - name: create-transfer-order
              method: POST

Retrieves a Salesforce account by account ID.

naftiko: "0.5"
info:
  label: "Salesforce Account Viewer"
  description: "Retrieves a Salesforce account by account ID."
  tags:
    - sales
    - salesforce
capability:
  exposes:
    - type: mcp
      namespace: sales
      port: 8080
      tools:
        - name: get-salesforce
          description: "Retrieves a Salesforce account by account ID."
          inputParameters:
            - name: entity_id
              in: body
              type: string
              description: "The salesforce account viewer identifier."
          call: "sales-api.get-data"
          with:
            entity_id: "{{entity_id}}"
  consumes:
    - type: http
      namespace: sales-api
      baseUri: "https://api.tjx-companies.com/sales/v1"
      authentication:
        type: bearer
        token: "$secrets.tjx_companies_api_token"
      resources:
        - name: salesforce
          path: "/salesforce/account/viewer/{{entity_id}}"
          inputParameters:
            - name: entity_id
              in: path
          operations:
            - name: get-salesforce
              method: GET

Creates and submits an expense report in SAP Concur for associate travel and expenses.

naftiko: "0.5"
info:
  label: "SAP Concur Expense Report Submitter"
  description: "Creates and submits an expense report in SAP Concur for associate travel and expenses."
  tags:
    - finance
    - sap-concur
    - expense-management
capability:
  exposes:
    - type: mcp
      namespace: expense-mgmt
      port: 8080
      tools:
        - name: submit-expense-report
          description: "Create and submit an expense report in SAP Concur."
          inputParameters:
            - name: employee_id
              in: body
              type: string
              description: "The employee ID."
            - name: report_name
              in: body
              type: string
              description: "Name for the expense report."
            - name: expense_entries
              in: body
              type: string
              description: "JSON array of expense entries."
          call: "concur.create-report"
          with:
            employee_id: "{{employee_id}}"
            report_name: "{{report_name}}"
            entries: "{{expense_entries}}"
  consumes:
    - type: http
      namespace: concur
      baseUri: "https://us.api.concursolutions.com/api/v3.0"
      authentication:
        type: bearer
        token: "$secrets.concur_token"
      resources:
        - name: expense-reports
          path: "/expense/reports"
          operations:
            - name: create-report
              method: POST

Retrieves material master data from SAP by material number including description, category, vendor, and unit cost.

naftiko: "0.5"
info:
  label: "SAP Material Master Lookup"
  description: "Retrieves material master data from SAP by material number including description, category, vendor, and unit cost."
  tags:
    - erp
    - sap
    - materials
    - master-data
capability:
  exposes:
    - type: mcp
      namespace: material-master
      port: 8080
      tools:
        - name: get-material
          description: "Look up SAP material master data by material number."
          inputParameters:
            - name: material_number
              in: body
              type: string
              description: "The SAP material number."
          call: "sap.get-material"
          with:
            material_number: "{{material_number}}"
  consumes:
    - type: http
      namespace: sap
      baseUri: "https://tjx.sap.com/sap/opu/odata/sap/API_PRODUCT_SRV"
      authentication:
        type: basic
        username: "$secrets.sap_user"
        password: "$secrets.sap_password"
      resources:
        - name: materials
          path: "/A_Product('{{material_number}}')"
          inputParameters:
            - name: material_number
              in: path
          operations:
            - name: get-material
              method: GET

Retrieves vendor master data from SAP by vendor number including name, payment terms, and contact details.

naftiko: "0.5"
info:
  label: "SAP Vendor Master Lookup"
  description: "Retrieves vendor master data from SAP by vendor number including name, payment terms, and contact details."
  tags:
    - procurement
    - sap
    - vendors
    - master-data
capability:
  exposes:
    - type: mcp
      namespace: vendor-master
      port: 8080
      tools:
        - name: get-vendor
          description: "Look up SAP vendor master data by vendor number."
          inputParameters:
            - name: vendor_number
              in: body
              type: string
              description: "The SAP vendor number."
          call: "sap.get-vendor"
          with:
            vendor_number: "{{vendor_number}}"
  consumes:
    - type: http
      namespace: sap
      baseUri: "https://tjx.sap.com/sap/opu/odata/sap/API_BUSINESS_PARTNER"
      authentication:
        type: basic
        username: "$secrets.sap_user"
        password: "$secrets.sap_password"
      resources:
        - name: vendors
          path: "/A_Supplier('{{vendor_number}}')"
          inputParameters:
            - name: vendor_number
              in: path
          operations:
            - name: get-vendor
              method: GET

Retrieves the seasonal buying calendar from SharePoint and creates corresponding milestone tasks in Jira for the buying team.

naftiko: "0.5"
info:
  label: "Seasonal Buying Calendar Sync"
  description: "Retrieves the seasonal buying calendar from SharePoint and creates corresponding milestone tasks in Jira for the buying team."
  tags:
    - buying
    - planning
    - sharepoint
    - jira
capability:
  exposes:
    - type: mcp
      namespace: buying-calendar
      port: 8080
      tools:
        - name: sync-buying-calendar
          description: "Fetch buying calendar from SharePoint and create Jira milestones."
          inputParameters:
            - name: season
              in: body
              type: string
              description: "The season identifier (e.g., Fall-2026)."
            - name: banner
              in: body
              type: string
              description: "The retail banner."
          steps:
            - name: get-calendar
              type: call
              call: "sharepoint.get-file"
              with:
                site_id: "buying_calendars"
                file_path: "Calendars/{{banner}}/{{season}}.xlsx"
            - name: create-milestones
              type: call
              call: "jira.create-issue"
              with:
                project: "BUY"
                summary: "{{banner}} {{season}} buying milestones"
                description: "Seasonal buying calendar synced from SharePoint. Calendar: {{get-calendar.download_url}}"
                issue_type: "Epic"
  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
    - type: http
      namespace: jira
      baseUri: "https://tjx.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 latest seasonal floor plan from SharePoint and distributes it to store teams via Microsoft Teams with implementation deadlines.

naftiko: "0.5"
info:
  label: "Seasonal Floor Plan Distributor"
  description: "Retrieves the latest seasonal floor plan from SharePoint and distributes it to store teams via Microsoft Teams with implementation deadlines."
  tags:
    - store-ops
    - visual-merchandising
    - sharepoint
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: floor-planning
      port: 8080
      tools:
        - name: distribute-floor-plan
          description: "Fetch a seasonal floor plan from SharePoint and distribute to store teams via Teams."
          inputParameters:
            - name: season
              in: body
              type: string
              description: "The season identifier (e.g., Spring-2026)."
            - name: banner
              in: body
              type: string
              description: "The retail banner."
            - name: deadline
              in: body
              type: string
              description: "Implementation deadline in YYYY-MM-DD format."
          steps:
            - name: get-floor-plan
              type: call
              call: "sharepoint.get-file"
              with:
                site_id: "visual_merchandising"
                file_path: "FloorPlans/{{banner}}/{{season}}.pdf"
            - name: distribute-to-stores
              type: call
              call: "msteams.post-channel-message"
              with:
                channel_id: "{{banner}}_store_ops"
                text: "New floor plan for {{season}} is available: {{get-floor-plan.download_url}}. Implementation deadline: {{deadline}}."
  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
    - type: http
      namespace: msteams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: channel-messages
          path: "/teams/{{channel_id}}/channels/General/messages"
          inputParameters:
            - name: channel_id
              in: path
          operations:
            - name: post-channel-message
              method: POST

Conducts security audits by scanning systems, documenting findings in ServiceNow, and tracking remediation.

naftiko: "0.5"
info:
  label: "Security Audit Orchestrator"
  description: "Conducts security audits by scanning systems, documenting findings in ServiceNow, and tracking remediation."
  tags:
    - security
    - servicenow
    - compliance
capability:
  exposes:
    - type: mcp
      namespace: security
      port: 8080
      tools:
        - name: run-security-audit-orchestrator
          description: "Conducts security audits by scanning systems, documenting findings in ServiceNow, and tracking remediation."
          inputParameters:
            - name: request_id
              in: body
              type: string
              description: "The unique request identifier."
          steps:
            - name: step-1
              type: call
              call: "primary-api.initiate"
              with:
                request_id: "{{request_id}}"
            - name: step-2
              type: call
              call: "secondary-api.process"
              with:
                request_id: "{{request_id}}"
                data: "{{step-1.result}}"
            - name: notify
              type: call
              call: "notification-api.send"
              with:
                channel: "operations"
                message: "Completed Security Audit Orchestrator for request {{request_id}}."
  consumes:
    - type: http
      namespace: primary-api
      baseUri: "https://api.tjx-companies.com/v1"
      authentication:
        type: bearer
        token: "$secrets.tjx_companies_api_token"
      resources:
        - name: primary
          path: "/process"
          operations:
            - name: initiate
              method: POST
    - type: http
      namespace: secondary-api
      baseUri: "https://api.tjx-companies.com/v2"
      authentication:
        type: bearer
        token: "$secrets.tjx_companies_api_token"
      resources:
        - name: secondary
          path: "/execute"
          operations:
            - name: process
              method: POST
    - type: http
      namespace: notification-api
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: messages
          path: "/teams/notifications"
          operations:
            - name: send
              method: POST

Creates a new incident in ServiceNow.

naftiko: "0.5"
info:
  label: "ServiceNow Incident Creator"
  description: "Creates a new incident in ServiceNow."
  tags:
    - it
    - servicenow
capability:
  exposes:
    - type: mcp
      namespace: it
      port: 8080
      tools:
        - name: get-servicenow
          description: "Creates a new incident in ServiceNow."
          inputParameters:
            - name: entity_id
              in: body
              type: string
              description: "The servicenow incident creator identifier."
          call: "it-api.get-data"
          with:
            entity_id: "{{entity_id}}"
  consumes:
    - type: http
      namespace: it-api
      baseUri: "https://api.tjx-companies.com/it/v1"
      authentication:
        type: bearer
        token: "$secrets.tjx_companies_api_token"
      resources:
        - name: servicenow
          path: "/servicenow/incident/creator/{{entity_id}}"
          inputParameters:
            - name: entity_id
              in: path
          operations:
            - name: get-servicenow
              method: GET

Retrieves a ServiceNow incident by number and returns current state, priority, assigned group, and resolution notes.

naftiko: "0.5"
info:
  label: "ServiceNow Incident Lookup"
  description: "Retrieves a ServiceNow incident by number and returns current state, priority, assigned group, and resolution notes."
  tags:
    - it-support
    - servicenow
    - incident-management
capability:
  exposes:
    - type: mcp
      namespace: it-service
      port: 8080
      tools:
        - name: get-incident
          description: "Look up a ServiceNow incident by number."
          inputParameters:
            - name: incident_number
              in: body
              type: string
              description: "The ServiceNow incident number."
          call: "servicenow.get-incident"
          with:
            incident_number: "{{incident_number}}"
  consumes:
    - type: http
      namespace: servicenow
      baseUri: "https://tjx.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

Fetches a document from SharePoint by site and path, returning metadata and download link.

naftiko: "0.5"
info:
  label: "SharePoint Document Retrieval"
  description: "Fetches a document from SharePoint by site and path, returning metadata and download link."
  tags:
    - document-management
    - sharepoint
capability:
  exposes:
    - type: mcp
      namespace: doc-management
      port: 8080
      tools:
        - name: get-sharepoint-doc
          description: "Retrieve a document from SharePoint."
          inputParameters:
            - name: site_id
              in: body
              type: string
              description: "The SharePoint site identifier."
            - name: file_path
              in: body
              type: string
              description: "The file path within the site."
          call: "sharepoint.get-file"
          with:
            site_id: "{{site_id}}"
            file_path: "{{file_path}}"
  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

Sends a notification to a Slack channel.

naftiko: "0.5"
info:
  label: "Slack Notification Publisher"
  description: "Sends a notification to a Slack channel."
  tags:
    - communications
    - slack
capability:
  exposes:
    - type: mcp
      namespace: communications
      port: 8080
      tools:
        - name: get-slack
          description: "Sends a notification to a Slack channel."
          inputParameters:
            - name: entity_id
              in: body
              type: string
              description: "The slack notification publisher identifier."
          call: "communications-api.get-data"
          with:
            entity_id: "{{entity_id}}"
  consumes:
    - type: http
      namespace: communications-api
      baseUri: "https://api.tjx-companies.com/communications/v1"
      authentication:
        type: bearer
        token: "$secrets.tjx_companies_api_token"
      resources:
        - name: slack
          path: "/slack/notification/publisher/{{entity_id}}"
          inputParameters:
            - name: entity_id
              in: path
          operations:
            - name: get-slack
              method: GET

Runs an analytics query against the Snowflake data warehouse.

naftiko: "0.5"
info:
  label: "Snowflake Analytics Query"
  description: "Runs an analytics query against the Snowflake data warehouse."
  tags:
    - analytics
    - snowflake
capability:
  exposes:
    - type: mcp
      namespace: analytics
      port: 8080
      tools:
        - name: get-snowflake
          description: "Runs an analytics query against the Snowflake data warehouse."
          inputParameters:
            - name: entity_id
              in: body
              type: string
              description: "The snowflake analytics query identifier."
          call: "analytics-api.get-data"
          with:
            entity_id: "{{entity_id}}"
  consumes:
    - type: http
      namespace: analytics-api
      baseUri: "https://api.tjx-companies.com/analytics/v1"
      authentication:
        type: bearer
        token: "$secrets.tjx_companies_api_token"
      resources:
        - name: snowflake
          path: "/snowflake/analytics/query/{{entity_id}}"
          inputParameters:
            - name: entity_id
              in: path
          operations:
            - name: get-snowflake
              method: GET

Retrieves store associate schedules from Workday for a given week and store, returning shift assignments and coverage gaps.

naftiko: "0.5"
info:
  label: "Store Associate Scheduling"
  description: "Retrieves store associate schedules from Workday for a given week and store, returning shift assignments and coverage gaps."
  tags:
    - store-ops
    - scheduling
    - workday
    - workforce
capability:
  exposes:
    - type: mcp
      namespace: store-scheduling
      port: 8080
      tools:
        - name: get-store-schedule
          description: "Fetch store associate schedules from Workday."
          inputParameters:
            - name: store_number
              in: body
              type: string
              description: "The TJX store number."
            - name: week_start
              in: body
              type: string
              description: "The week start date in YYYY-MM-DD format."
          call: "workday.get-schedule"
          with:
            store: "{{store_number}}"
            week: "{{week_start}}"
  consumes:
    - type: http
      namespace: workday
      baseUri: "https://wd2-impl-services1.workday.com/ccx/api/v1"
      authentication:
        type: bearer
        token: "$secrets.workday_token"
      resources:
        - name: schedules
          path: "/schedules?location={{store}}&weekOf={{week}}"
          inputParameters:
            - name: store
              in: path
            - name: week
              in: path
          operations:
            - name: get-schedule
              method: GET

Retrieves daily point-of-sale summary data from SAP for a store, returning total revenue, transaction count, average basket size, and top categories.

naftiko: "0.5"
info:
  label: "Store Daily Sales Summary"
  description: "Retrieves daily point-of-sale summary data from SAP for a store, returning total revenue, transaction count, average basket size, and top categories."
  tags:
    - store-ops
    - sales
    - sap
    - reporting
capability:
  exposes:
    - type: mcp
      namespace: store-sales
      port: 8080
      tools:
        - name: get-daily-sales
          description: "Fetch daily sales summary for a store from SAP."
          inputParameters:
            - name: store_number
              in: body
              type: string
              description: "The TJX store number."
            - name: sales_date
              in: body
              type: string
              description: "The sales date in YYYY-MM-DD format."
          call: "sap.get-daily-sales"
          with:
            store_number: "{{store_number}}"
            date: "{{sales_date}}"
  consumes:
    - type: http
      namespace: sap
      baseUri: "https://tjx.sap.com/sap/opu/odata/sap/ZSD_POS_SRV"
      authentication:
        type: basic
        username: "$secrets.sap_user"
        password: "$secrets.sap_password"
      resources:
        - name: daily-sales
          path: "/DailySalesSet(Store='{{store_number}}',Date='{{date}}')"
          inputParameters:
            - name: store_number
              in: path
            - name: date
              in: path
          operations:
            - name: get-daily-sales
              method: GET

Queries SAP for current inventory levels at a specific store by material number, returning on-hand quantity, in-transit stock, and days-of-supply.

naftiko: "0.5"
info:
  label: "Store Inventory Level Checker"
  description: "Queries SAP for current inventory levels at a specific store by material number, returning on-hand quantity, in-transit stock, and days-of-supply."
  tags:
    - inventory
    - store-ops
    - sap
    - retail
capability:
  exposes:
    - type: mcp
      namespace: store-inventory
      port: 8080
      tools:
        - name: get-store-inventory
          description: "Check current inventory levels for a product at a store in SAP."
          inputParameters:
            - name: store_number
              in: body
              type: string
              description: "The TJX store number."
            - name: material_number
              in: body
              type: string
              description: "The SAP material number."
          call: "sap.get-store-stock"
          with:
            store_number: "{{store_number}}"
            material_number: "{{material_number}}"
  consumes:
    - type: http
      namespace: sap
      baseUri: "https://tjx.sap.com/sap/opu/odata/sap/ZMM_STOCK_SRV"
      authentication:
        type: basic
        username: "$secrets.sap_user"
        password: "$secrets.sap_password"
      resources:
        - name: store-stock
          path: "/StoreStockSet(Store='{{store_number}}',Material='{{material_number}}')"
          inputParameters:
            - name: store_number
              in: path
            - name: material_number
              in: path
          operations:
            - name: get-store-stock
              method: GET

Creates a facilities maintenance request in ServiceNow for a store, assigns the appropriate vendor, and notifies the store manager via Microsoft Teams.

naftiko: "0.5"
info:
  label: "Store Maintenance Request Handler"
  description: "Creates a facilities maintenance request in ServiceNow for a store, assigns the appropriate vendor, and notifies the store manager via Microsoft Teams."
  tags:
    - store-ops
    - maintenance
    - servicenow
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: facilities-mgmt
      port: 8080
      tools:
        - name: create-maintenance-request
          description: "Create a maintenance request in ServiceNow and notify store manager."
          inputParameters:
            - name: store_number
              in: body
              type: string
              description: "The store number."
            - name: issue_type
              in: body
              type: string
              description: "Type of maintenance issue (HVAC, plumbing, electrical, etc.)."
            - name: description
              in: body
              type: string
              description: "Description of the maintenance issue."
            - name: priority
              in: body
              type: string
              description: "Priority level (1-5)."
          steps:
            - name: create-request
              type: call
              call: "servicenow.create-record"
              with:
                table: "fm_request"
                short_description: "Store {{store_number}} - {{issue_type}}"
                description: "{{description}}"
                priority: "{{priority}}"
                location: "Store {{store_number}}"
            - name: notify-manager
              type: call
              call: "msteams.post-channel-message"
              with:
                channel_id: "store_{{store_number}}_mgmt"
                text: "Maintenance request created: {{issue_type}} (P{{priority}}). ServiceNow: {{create-request.number}}"
  consumes:
    - type: http
      namespace: servicenow
      baseUri: "https://tjx.service-now.com/api/now"
      authentication:
        type: basic
        username: "$secrets.servicenow_user"
        password: "$secrets.servicenow_password"
      resources:
        - name: records
          path: "/table/{{table}}"
          inputParameters:
            - name: table
              in: path
          operations:
            - name: create-record
              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/{{channel_id}}/channels/General/messages"
          inputParameters:
            - name: channel_id
              in: path
          operations:
            - name: post-channel-message
              method: POST

Pulls weekly sales and traffic data from SAP for multiple stores, generates a comparison report in Power BI, and distributes it to regional leadership via Microsoft Teams.

naftiko: "0.5"
info:
  label: "Store Performance Comparison Report"
  description: "Pulls weekly sales and traffic data from SAP for multiple stores, generates a comparison report in Power BI, and distributes it to regional leadership via Microsoft Teams."
  tags:
    - store-ops
    - reporting
    - sap
    - power-bi
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: store-performance
      port: 8080
      tools:
        - name: generate-store-comparison
          description: "Generate a multi-store performance comparison across SAP, Power BI, and Teams."
          inputParameters:
            - name: region_code
              in: body
              type: string
              description: "The regional code for stores to compare."
            - name: week_ending
              in: body
              type: string
              description: "The week ending date in YYYY-MM-DD format."
          steps:
            - name: pull-sales-data
              type: call
              call: "sap.get-regional-sales"
              with:
                region: "{{region_code}}"
                week: "{{week_ending}}"
            - name: refresh-report
              type: call
              call: "powerbi.refresh-dataset"
              with:
                dataset_id: "store_comparison_ds"
            - name: distribute-report
              type: call
              call: "msteams.post-channel-message"
              with:
                channel_id: "regional_{{region_code}}_leadership"
                text: "Weekly store comparison for region {{region_code}} (week ending {{week_ending}}) is ready: {{refresh-report.report_url}}"
  consumes:
    - type: http
      namespace: sap
      baseUri: "https://tjx.sap.com/sap/opu/odata/sap/ZSD_REGIONAL_SRV"
      authentication:
        type: basic
        username: "$secrets.sap_user"
        password: "$secrets.sap_password"
      resources:
        - name: regional-sales
          path: "/RegionalSalesSet?$filter=Region eq '{{region}}' and WeekEnding eq '{{week}}'"
          inputParameters:
            - name: region
              in: path
            - name: week
              in: path
          operations:
            - name: get-regional-sales
              method: GET
    - 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/{{channel_id}}/channels/General/messages"
          inputParameters:
            - name: channel_id
              in: path
          operations:
            - name: post-channel-message
              method: POST

Retrieves hourly traffic count data for a store.

naftiko: "0.5"
info:
  label: "Store Traffic Counter"
  description: "Retrieves hourly traffic count data for a store."
  tags:
    - operations
    - analytics
capability:
  exposes:
    - type: mcp
      namespace: operations
      port: 8080
      tools:
        - name: get-store
          description: "Retrieves hourly traffic count data for a store."
          inputParameters:
            - name: entity_id
              in: body
              type: string
              description: "The store traffic counter identifier."
          call: "operations-api.get-data"
          with:
            entity_id: "{{entity_id}}"
  consumes:
    - type: http
      namespace: operations-api
      baseUri: "https://api.tjx-companies.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.tjx_companies_api_token"
      resources:
        - name: store
          path: "/store/traffic/counter/{{entity_id}}"
          inputParameters:
            - name: entity_id
              in: path
          operations:
            - name: get-store
              method: GET

Collects sustainability metrics by gathering environmental data, calculating carbon footprint, and publishing ESG reports.

naftiko: "0.5"
info:
  label: "Sustainability Metrics Collection Orchestrator"
  description: "Collects sustainability metrics by gathering environmental data, calculating carbon footprint, and publishing ESG reports."
  tags:
    - sustainability
    - analytics
    - compliance
capability:
  exposes:
    - type: mcp
      namespace: sustainability
      port: 8080
      tools:
        - name: run-sustainability-metrics-collection-orchestrator
          description: "Collects sustainability metrics by gathering environmental data, calculating carbon footprint, and publishing ESG reports."
          inputParameters:
            - name: request_id
              in: body
              type: string
              description: "The unique request identifier."
          steps:
            - name: step-1
              type: call
              call: "primary-api.initiate"
              with:
                request_id: "{{request_id}}"
            - name: step-2
              type: call
              call: "secondary-api.process"
              with:
                request_id: "{{request_id}}"
                data: "{{step-1.result}}"
            - name: notify
              type: call
              call: "notification-api.send"
              with:
                channel: "operations"
                message: "Completed Sustainability Metrics Collection Orchestrator for request {{request_id}}."
  consumes:
    - type: http
      namespace: primary-api
      baseUri: "https://api.tjx-companies.com/v1"
      authentication:
        type: bearer
        token: "$secrets.tjx_companies_api_token"
      resources:
        - name: primary
          path: "/process"
          operations:
            - name: initiate
              method: POST
    - type: http
      namespace: secondary-api
      baseUri: "https://api.tjx-companies.com/v2"
      authentication:
        type: bearer
        token: "$secrets.tjx_companies_api_token"
      resources:
        - name: secondary
          path: "/execute"
          operations:
            - name: process
              method: POST
    - type: http
      namespace: notification-api
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: messages
          path: "/teams/notifications"
          operations:
            - name: send
              method: POST

Assesses third-party risks by collecting vendor questionnaires, scoring responses, and tracking remediation plans.

naftiko: "0.5"
info:
  label: "Third Party Risk Assessment Orchestrator"
  description: "Assesses third-party risks by collecting vendor questionnaires, scoring responses, and tracking remediation plans."
  tags:
    - risk
    - procurement
    - compliance
capability:
  exposes:
    - type: mcp
      namespace: risk
      port: 8080
      tools:
        - name: run-third-party-risk-assessment-orchestrator
          description: "Assesses third-party risks by collecting vendor questionnaires, scoring responses, and tracking remediation plans."
          inputParameters:
            - name: request_id
              in: body
              type: string
              description: "The unique request identifier."
          steps:
            - name: step-1
              type: call
              call: "primary-api.initiate"
              with:
                request_id: "{{request_id}}"
            - name: step-2
              type: call
              call: "secondary-api.process"
              with:
                request_id: "{{request_id}}"
                data: "{{step-1.result}}"
            - name: notify
              type: call
              call: "notification-api.send"
              with:
                channel: "operations"
                message: "Completed Third Party Risk Assessment Orchestrator for request {{request_id}}."
  consumes:
    - type: http
      namespace: primary-api
      baseUri: "https://api.tjx-companies.com/v1"
      authentication:
        type: bearer
        token: "$secrets.tjx_companies_api_token"
      resources:
        - name: primary
          path: "/process"
          operations:
            - name: initiate
              method: POST
    - type: http
      namespace: secondary-api
      baseUri: "https://api.tjx-companies.com/v2"
      authentication:
        type: bearer
        token: "$secrets.tjx_companies_api_token"
      resources:
        - name: secondary
          path: "/execute"
          operations:
            - name: process
              method: POST
    - type: http
      namespace: notification-api
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: messages
          path: "/teams/notifications"
          operations:
            - name: send
              method: POST

When a high-value off-price opportunity is identified, creates a buying alert in Salesforce, notifies buying directors via Microsoft Teams, and reserves allocation in SAP.

naftiko: "0.5"
info:
  label: "Treasure Hunt Merchandise Alert"
  description: "When a high-value off-price opportunity is identified, creates a buying alert in Salesforce, notifies buying directors via Microsoft Teams, and reserves allocation in SAP."
  tags:
    - buying
    - merchandising
    - salesforce
    - microsoft-teams
    - sap
    - treasure-hunt
capability:
  exposes:
    - type: mcp
      namespace: treasure-hunt
      port: 8080
      tools:
        - name: create-treasure-hunt-alert
          description: "Alert buyers to a high-value off-price opportunity across Salesforce, Teams, and SAP."
          inputParameters:
            - name: vendor_name
              in: body
              type: string
              description: "The vendor offering the goods."
            - name: brand
              in: body
              type: string
              description: "The brand name."
            - name: category
              in: body
              type: string
              description: "Merchandise category."
            - name: unit_count
              in: body
              type: string
              description: "Available units."
            - name: unit_cost
              in: body
              type: string
              description: "Cost per unit."
            - name: retail_value
              in: body
              type: string
              description: "Estimated retail value per unit."
          steps:
            - name: create-opportunity
              type: call
              call: "salesforce.create-opportunity"
              with:
                name: "Treasure Hunt: {{brand}} - {{category}}"
                vendor: "{{vendor_name}}"
                amount: "{{unit_count * unit_cost}}"
                stage: "Qualification"
            - name: alert-directors
              type: call
              call: "msteams.post-channel-message"
              with:
                channel_id: "buying_directors_urgent"
                text: "TREASURE HUNT: {{brand}} {{category}} from {{vendor_name}}. {{unit_count}} units at ${{unit_cost}} (retail ${{retail_value}}). SF: {{create-opportunity.id}}"
            - name: reserve-allocation
              type: call
              call: "sap.create-reservation"
              with:
                vendor: "{{vendor_name}}"
                category: "{{category}}"
                units: "{{unit_count}}"
  consumes:
    - type: http
      namespace: salesforce
      baseUri: "https://tjx.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token"
      resources:
        - name: opportunities
          path: "/sobjects/Opportunity"
          operations:
            - name: create-opportunity
              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/{{channel_id}}/channels/General/messages"
          inputParameters:
            - name: channel_id
              in: path
          operations:
            - name: post-channel-message
              method: POST
    - type: http
      namespace: sap
      baseUri: "https://tjx.sap.com/sap/opu/odata/sap/ZMM_RESERVE_SRV"
      authentication:
        type: basic
        username: "$secrets.sap_user"
        password: "$secrets.sap_password"
      resources:
        - name: reservations
          path: "/ReservationSet"
          operations:
            - name: create-reservation
              method: POST

Checks vendor closeout merchandise availability.

naftiko: "0.5"
info:
  label: "Vendor Closeout Availability"
  description: "Checks vendor closeout merchandise availability."
  tags:
    - buying
    - procurement
capability:
  exposes:
    - type: mcp
      namespace: buying
      port: 8080
      tools:
        - name: get-vendor
          description: "Checks vendor closeout merchandise availability."
          inputParameters:
            - name: entity_id
              in: body
              type: string
              description: "The vendor closeout availability identifier."
          call: "buying-api.get-data"
          with:
            entity_id: "{{entity_id}}"
  consumes:
    - type: http
      namespace: buying-api
      baseUri: "https://api.tjx-companies.com/buying/v1"
      authentication:
        type: bearer
        token: "$secrets.tjx_companies_api_token"
      resources:
        - name: vendor
          path: "/vendor/closeout/availability/{{entity_id}}"
          inputParameters:
            - name: entity_id
              in: path
          operations:
            - name: get-vendor
              method: GET

Manages vendor contract renewals by reviewing terms, routing for legal approval, and executing via DocuSign.

naftiko: "0.5"
info:
  label: "Vendor Contract Renewal Pipeline"
  description: "Manages vendor contract renewals by reviewing terms, routing for legal approval, and executing via DocuSign."
  tags:
    - procurement
    - legal
    - docusign
capability:
  exposes:
    - type: mcp
      namespace: procurement
      port: 8080
      tools:
        - name: run-vendor-contract-renewal-pipeline
          description: "Manages vendor contract renewals by reviewing terms, routing for legal approval, and executing via DocuSign."
          inputParameters:
            - name: request_id
              in: body
              type: string
              description: "The unique request identifier."
          steps:
            - name: step-1
              type: call
              call: "primary-api.initiate"
              with:
                request_id: "{{request_id}}"
            - name: step-2
              type: call
              call: "secondary-api.process"
              with:
                request_id: "{{request_id}}"
                data: "{{step-1.result}}"
            - name: notify
              type: call
              call: "notification-api.send"
              with:
                channel: "operations"
                message: "Completed Vendor Contract Renewal Pipeline for request {{request_id}}."
  consumes:
    - type: http
      namespace: primary-api
      baseUri: "https://api.tjx-companies.com/v1"
      authentication:
        type: bearer
        token: "$secrets.tjx_companies_api_token"
      resources:
        - name: primary
          path: "/process"
          operations:
            - name: initiate
              method: POST
    - type: http
      namespace: secondary-api
      baseUri: "https://api.tjx-companies.com/v2"
      authentication:
        type: bearer
        token: "$secrets.tjx_companies_api_token"
      resources:
        - name: secondary
          path: "/execute"
          operations:
            - name: process
              method: POST
    - type: http
      namespace: notification-api
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: messages
          path: "/teams/notifications"
          operations:
            - name: send
              method: POST

Creates a return-to-vendor authorization in SAP for defective merchandise and notifies the vendor via Salesforce case.

naftiko: "0.5"
info:
  label: "Vendor Return Authorization"
  description: "Creates a return-to-vendor authorization in SAP for defective merchandise and notifies the vendor via Salesforce case."
  tags:
    - buying
    - returns
    - sap
    - salesforce
capability:
  exposes:
    - type: mcp
      namespace: vendor-returns
      port: 8080
      tools:
        - name: create-return-authorization
          description: "Create a SAP return-to-vendor authorization and notify vendor via Salesforce."
          inputParameters:
            - name: po_number
              in: body
              type: string
              description: "The original purchase order number."
            - name: material_number
              in: body
              type: string
              description: "The material being returned."
            - name: return_quantity
              in: body
              type: string
              description: "Quantity to return."
            - name: reason
              in: body
              type: string
              description: "Return reason code."
          steps:
            - name: create-rma
              type: call
              call: "sap.create-return-order"
              with:
                po_number: "{{po_number}}"
                material: "{{material_number}}"
                quantity: "{{return_quantity}}"
                reason: "{{reason}}"
            - name: notify-vendor
              type: call
              call: "salesforce.create-case"
              with:
                subject: "Return Authorization: {{create-rma.rma_number}} for PO {{po_number}}"
                description: "Return of {{return_quantity}} units of {{material_number}}. Reason: {{reason}}."
                origin: "Internal"
  consumes:
    - type: http
      namespace: sap
      baseUri: "https://tjx.sap.com/sap/opu/odata/sap/ZMM_RETURNS_SRV"
      authentication:
        type: basic
        username: "$secrets.sap_user"
        password: "$secrets.sap_password"
      resources:
        - name: return-orders
          path: "/ReturnOrderSet"
          operations:
            - name: create-return-order
              method: POST
    - type: http
      namespace: salesforce
      baseUri: "https://tjx.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token"
      resources:
        - name: cases
          path: "/sobjects/Case"
          operations:
            - name: create-case
              method: POST

Fetches a vendor scorecard from Salesforce including on-time delivery rate, quality rating, and fill rate metrics.

naftiko: "0.5"
info:
  label: "Vendor Scorecard Retrieval"
  description: "Fetches a vendor scorecard from Salesforce including on-time delivery rate, quality rating, and fill rate metrics."
  tags:
    - buying
    - vendors
    - salesforce
    - performance
capability:
  exposes:
    - type: mcp
      namespace: vendor-management
      port: 8080
      tools:
        - name: get-vendor-scorecard
          description: "Retrieve vendor performance scorecard from Salesforce."
          inputParameters:
            - name: vendor_account_id
              in: body
              type: string
              description: "The Salesforce vendor account ID."
          call: "salesforce.get-vendor-scorecard"
          with:
            vendor_account_id: "{{vendor_account_id}}"
  consumes:
    - type: http
      namespace: salesforce
      baseUri: "https://tjx.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token"
      resources:
        - name: vendor-scorecards
          path: "/sobjects/Vendor_Scorecard__c?q=Account__c='{{vendor_account_id}}'"
          inputParameters:
            - name: vendor_account_id
              in: path
          operations:
            - name: get-vendor-scorecard
              method: GET

Retrieves employee profile from Workday.

naftiko: "0.5"
info:
  label: "Workday Employee Profile"
  description: "Retrieves employee profile from Workday."
  tags:
    - hr
    - workday
capability:
  exposes:
    - type: mcp
      namespace: hr
      port: 8080
      tools:
        - name: get-workday
          description: "Retrieves employee profile from Workday."
          inputParameters:
            - name: entity_id
              in: body
              type: string
              description: "The workday employee profile identifier."
          call: "hr-api.get-data"
          with:
            entity_id: "{{entity_id}}"
  consumes:
    - type: http
      namespace: hr-api
      baseUri: "https://api.tjx-companies.com/hr/v1"
      authentication:
        type: bearer
        token: "$secrets.tjx_companies_api_token"
      resources:
        - name: workday
          path: "/workday/employee/profile/{{entity_id}}"
          inputParameters:
            - name: entity_id
              in: path
          operations:
            - name: get-workday
              method: GET

Retrieves payroll summary data from Workday for a pay period by department.

naftiko: "0.5"
info:
  label: "Workday Payroll Summary"
  description: "Retrieves payroll summary data from Workday for a pay period by department."
  tags:
    - hr
    - payroll
    - workday
    - finance
capability:
  exposes:
    - type: mcp
      namespace: payroll
      port: 8080
      tools:
        - name: get-payroll-summary
          description: "Fetch Workday payroll summary for a pay period."
          inputParameters:
            - name: pay_period
              in: body
              type: string
              description: "The pay period identifier."
          call: "workday.get-payroll"
          with:
            pay_period: "{{pay_period}}"
  consumes:
    - type: http
      namespace: workday
      baseUri: "https://wd2-impl-services1.workday.com/ccx/api/v1"
      authentication:
        type: bearer
        token: "$secrets.workday_token"
      resources:
        - name: payroll
          path: "/payroll/summaries?payPeriod={{pay_period}}"
          inputParameters:
            - name: pay_period
              in: path
          operations:
            - name: get-payroll
              method: GET

Retrieves an employee's current time-off balances from Workday including vacation, sick, and personal day totals.

naftiko: "0.5"
info:
  label: "Workday Time-Off Balance"
  description: "Retrieves an employee's current time-off balances from Workday including vacation, sick, and personal day totals."
  tags:
    - hr
    - workday
    - time-off
capability:
  exposes:
    - type: mcp
      namespace: hr-time-off
      port: 8080
      tools:
        - name: get-time-off-balance
          description: "Look up an employee's time-off balances in Workday."
          inputParameters:
            - name: worker_id
              in: body
              type: string
              description: "The Workday worker ID."
          call: "workday.get-time-off"
          with:
            worker_id: "{{worker_id}}"
  consumes:
    - type: http
      namespace: workday
      baseUri: "https://wd2-impl-services1.workday.com/ccx/api/v1"
      authentication:
        type: bearer
        token: "$secrets.workday_token"
      resources:
        - name: time-off
          path: "/workers/{{worker_id}}/timeOffBalance"
          inputParameters:
            - name: worker_id
              in: path
          operations:
            - name: get-time-off
              method: GET