Reckitt Benckiser Capabilities

Naftiko 0.5 capability definitions for Reckitt Benckiser - 100 capabilities showing integration workflows and service orchestrations.

Sort
Expand

Runs a report in Adobe Analytics for a specified report suite and date range, returning page views, visits, and unique visitors.

naftiko: "0.5"
info:
  label: "Adobe Analytics Report"
  description: "Runs a report in Adobe Analytics for a specified report suite and date range, returning page views, visits, and unique visitors."
  tags:
    - analytics
    - digital-marketing
    - adobe-analytics
capability:
  exposes:
    - type: mcp
      namespace: analytics-adobe
      port: 8080
      tools:
        - name: run-report
          description: "Run an Adobe Analytics report for a report suite and date range. Returns page views, visits, and unique visitors."
          inputParameters:
            - name: report_suite_id
              in: body
              type: string
              description: "The Adobe Analytics report suite 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: "adobe-analytics.get-report"
          with:
            rsid: "{{report_suite_id}}"
            start_date: "{{start_date}}"
            end_date: "{{end_date}}"
  consumes:
    - type: http
      namespace: adobe-analytics
      baseUri: "https://analytics.adobe.io/api/reckitt"
      authentication:
        type: bearer
        token: "$secrets.adobe_analytics_token"
      resources:
        - name: reports
          path: "/reports"
          operations:
            - name: get-report
              method: POST

Retrieves a user profile from Azure Active Directory by UPN, returning display name, job title, department, and group memberships.

naftiko: "0.5"
info:
  label: "Azure Active Directory User Lookup"
  description: "Retrieves a user profile from Azure Active Directory by UPN, returning display name, job title, department, and group memberships."
  tags:
    - identity
    - directory
    - azure-active-directory
capability:
  exposes:
    - type: mcp
      namespace: identity-aad
      port: 8080
      tools:
        - name: get-user
          description: "Look up an Azure AD user by UPN. Returns display name, job title, department, and group memberships."
          inputParameters:
            - name: user_upn
              in: body
              type: string
              description: "The user principal name (email)."
          call: "aad.get-user"
          with:
            upn: "{{user_upn}}"
  consumes:
    - type: http
      namespace: aad
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: users
          path: "/users/{{upn}}"
          inputParameters:
            - name: upn
              in: path
          operations:
            - name: get-user
              method: GET

Retrieves the latest build status for a given Azure DevOps pipeline, returning build result, duration, and triggered-by info.

naftiko: "0.5"
info:
  label: "Azure DevOps Build Status"
  description: "Retrieves the latest build status for a given Azure DevOps pipeline, returning build result, duration, and triggered-by info."
  tags:
    - devops
    - ci-cd
    - azure-devops
capability:
  exposes:
    - type: mcp
      namespace: devops-builds
      port: 8080
      tools:
        - name: get-build-status
          description: "Get the latest build status for an Azure DevOps pipeline. Returns result, duration, and source branch."
          inputParameters:
            - name: project
              in: body
              type: string
              description: "The Azure DevOps project name."
            - name: pipeline_id
              in: body
              type: string
              description: "The pipeline definition ID."
          call: "azuredevops.get-builds"
          with:
            project: "{{project}}"
            pipeline_id: "{{pipeline_id}}"
  consumes:
    - type: http
      namespace: azuredevops
      baseUri: "https://dev.azure.com/reckitt"
      authentication:
        type: basic
        username: ""
        password: "$secrets.azure_devops_pat"
      resources:
        - name: builds
          path: "/{{project}}/_apis/build/builds?definitions={{pipeline_id}}&$top=1&api-version=7.0"
          inputParameters:
            - name: project
              in: path
            - name: pipeline_id
              in: path
          operations:
            - name: get-builds
              method: GET

Creates a new folder in Box under a specified parent and returns the folder URL and ID.

naftiko: "0.5"
info:
  label: "Box Folder Provisioning"
  description: "Creates a new folder in Box under a specified parent and returns the folder URL and ID."
  tags:
    - collaboration
    - storage
    - box
capability:
  exposes:
    - type: mcp
      namespace: storage-box
      port: 8080
      tools:
        - name: create-folder
          description: "Create a new Box folder under a parent folder. Returns folder ID and URL."
          inputParameters:
            - name: folder_name
              in: body
              type: string
              description: "The name of the new folder."
            - name: parent_folder_id
              in: body
              type: string
              description: "The parent folder ID in Box."
          call: "box.create-folder"
          with:
            name: "{{folder_name}}"
            parent_id: "{{parent_folder_id}}"
  consumes:
    - type: http
      namespace: box
      baseUri: "https://api.box.com/2.0"
      authentication:
        type: bearer
        token: "$secrets.box_token"
      resources:
        - name: folders
          path: "/folders"
          operations:
            - name: create-folder
              method: POST

Orchestrates brand campaign performance pipeline across consumer health and hygiene products systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Brand Campaign Performance Pipeline"
  description: "Orchestrates brand campaign performance pipeline across consumer health and hygiene products systems, coordinating multiple services and notifying stakeholders."
  tags:
    - brand
    - reckitt
    - reckitt
    - salesforce
    - servicenow
capability:
  exposes:
    - type: mcp
      namespace: brand
      port: 8080
      tools:
        - name: brand-campaign-performance-pipeline
          description: "Orchestrates brand campaign performance pipeline across consumer health and hygiene products systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "reckitt.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "salesforce.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "servicenow.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: reckitt
      baseUri: "https://api.reckitt.com/v2"
      authentication:
        type: bearer
        token: "$secrets.reckitt_api_token"
      resources:
        - name: reckitt-resource
          path: "/api/brand"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: salesforce
      baseUri: "https://reckitt.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_access_token"
      resources:
        - name: salesforce-resource
          path: "/api/brand"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: servicenow
      baseUri: "https://reckitt.service-now.com/api/now"
      authentication:
        type: bearer
        token: "$secrets.servicenow_token"
      resources:
        - name: servicenow-resource
          path: "/api/brand"
          operations:
            - name: execute-3
              method: POST

Retrieves brand equity score lookup data from the Reckitt consumer health and hygiene products systems.

naftiko: "0.5"
info:
  label: "Brand Equity Score Lookup"
  description: "Retrieves brand equity score lookup data from the Reckitt consumer health and hygiene products systems."
  tags:
    - brand
    - reckitt
    - lookup
capability:
  exposes:
    - type: mcp
      namespace: brand
      port: 8080
      tools:
        - name: brand-equity-score-lookup
          description: "Retrieves brand equity score lookup data from the Reckitt consumer health and hygiene products systems."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The input id."
          call: "reckitt.brand-equity-score-lookup"
          with:
            input_id: "{{input_id}}"
          outputParameters:
            - name: result
              type: string
              mapping: "$.data"
            - name: status
              type: string
              mapping: "$.status"
  consumes:
    - type: http
      namespace: reckitt
      baseUri: "https://api.reckitt.com/v2"
      authentication:
        type: bearer
        token: "$secrets.reckitt_api_token"
      resources:
        - name: resource
          path: "/brand/equity/score/lookup/{{input_id}}"
          inputParameters:
            - name: input_id
              in: path
          operations:
            - name: brand-equity-score-lookup
              method: GET

Retrieves brand market share lookup data from the Reckitt consumer health and hygiene products systems.

naftiko: "0.5"
info:
  label: "Brand Market Share Lookup"
  description: "Retrieves brand market share lookup data from the Reckitt consumer health and hygiene products systems."
  tags:
    - brand
    - reckitt
    - lookup
capability:
  exposes:
    - type: mcp
      namespace: brand
      port: 8080
      tools:
        - name: brand-market-share-lookup
          description: "Retrieves brand market share lookup data from the Reckitt consumer health and hygiene products systems."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The input id."
          call: "reckitt.brand-market-share-lookup"
          with:
            input_id: "{{input_id}}"
          outputParameters:
            - name: result
              type: string
              mapping: "$.data"
            - name: status
              type: string
              mapping: "$.status"
  consumes:
    - type: http
      namespace: reckitt
      baseUri: "https://api.reckitt.com/v2"
      authentication:
        type: bearer
        token: "$secrets.reckitt_api_token"
      resources:
        - name: resource
          path: "/brand/market/share/lookup/{{input_id}}"
          inputParameters:
            - name: input_id
              in: path
          operations:
            - name: brand-market-share-lookup
              method: GET

Orchestrates brand reputation monitoring pipeline across consumer health and hygiene products systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Brand Reputation Monitoring Pipeline"
  description: "Orchestrates brand reputation monitoring pipeline across consumer health and hygiene products systems, coordinating multiple services and notifying stakeholders."
  tags:
    - brand
    - reckitt
    - sap
    - teams
    - jira
capability:
  exposes:
    - type: mcp
      namespace: brand
      port: 8080
      tools:
        - name: brand-reputation-monitoring-pipeline
          description: "Orchestrates brand reputation monitoring pipeline across consumer health and hygiene products systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "sap.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "teams.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "jira.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: sap
      baseUri: "https://reckitt-erp.s4hana.ondemand.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.sap_token"
      resources:
        - name: sap-resource
          path: "/api/brand"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: teams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.teams_token"
      resources:
        - name: teams-resource
          path: "/api/brand"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: jira
      baseUri: "https://reckitt.atlassian.net/rest/api/3"
      authentication:
        type: bearer
        token: "$secrets.jira_token"
      resources:
        - name: jira-resource
          path: "/api/brand"
          operations:
            - name: execute-3
              method: POST

Orchestrates brand social listening pipeline across consumer health and hygiene products systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Brand Social Listening Pipeline"
  description: "Orchestrates brand social listening pipeline across consumer health and hygiene products systems, coordinating multiple services and notifying stakeholders."
  tags:
    - brand
    - reckitt
    - servicenow
    - snowflake
    - slack
capability:
  exposes:
    - type: mcp
      namespace: brand
      port: 8080
      tools:
        - name: brand-social-listening-pipeline
          description: "Orchestrates brand social listening pipeline across consumer health and hygiene products systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "servicenow.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "snowflake.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "slack.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: servicenow
      baseUri: "https://reckitt.service-now.com/api/now"
      authentication:
        type: bearer
        token: "$secrets.servicenow_token"
      resources:
        - name: servicenow-resource
          path: "/api/brand"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: snowflake
      baseUri: "https://reckitt.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: snowflake-resource
          path: "/api/brand"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: slack
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token"
      resources:
        - name: slack-resource
          path: "/api/brand"
          operations:
            - name: execute-3
              method: POST

Retrieves DNS records for a Cloudflare zone by record type, returning record names, values, and TTL.

naftiko: "0.5"
info:
  label: "Cloudflare DNS Record Lookup"
  description: "Retrieves DNS records for a Cloudflare zone by record type, returning record names, values, and TTL."
  tags:
    - infrastructure
    - dns
    - cloudflare
capability:
  exposes:
    - type: mcp
      namespace: infra-dns
      port: 8080
      tools:
        - name: get-dns-records
          description: "List DNS records for a Cloudflare zone filtered by record type. Returns record name, content, and TTL."
          inputParameters:
            - name: zone_id
              in: body
              type: string
              description: "The Cloudflare zone ID."
            - name: record_type
              in: body
              type: string
              description: "The DNS record type (A, CNAME, MX, etc.)."
          call: "cloudflare.list-dns-records"
          with:
            zone_id: "{{zone_id}}"
            type: "{{record_type}}"
  consumes:
    - type: http
      namespace: cloudflare
      baseUri: "https://api.cloudflare.com/client/v4"
      authentication:
        type: bearer
        token: "$secrets.cloudflare_token"
      resources:
        - name: dns-records
          path: "/zones/{{zone_id}}/dns_records?type={{type}}"
          inputParameters:
            - name: zone_id
              in: path
            - name: type
              in: path
          operations:
            - name: list-dns-records
              method: GET

Searches Confluence for articles matching a query string and returns page titles, excerpts, and links.

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

When a consumer complaint arrives in Zendesk, enriches it with Salesforce customer data, creates a quality investigation in SAP, and escalates to the brand team in Microsoft Teams.

naftiko: "0.5"
info:
  label: "Consumer Complaint Orchestrator"
  description: "When a consumer complaint arrives in Zendesk, enriches it with Salesforce customer data, creates a quality investigation in SAP, and escalates to the brand team in Microsoft Teams."
  tags:
    - customer-service
    - quality
    - zendesk
    - salesforce
    - sap
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: customer-complaints
      port: 8080
      tools:
        - name: process-complaint
          description: "Given a Zendesk ticket ID, enrich with Salesforce data, create a SAP quality notification, and alert the brand team."
          inputParameters:
            - name: ticket_id
              in: body
              type: string
              description: "The Zendesk complaint ticket ID."
          steps:
            - name: get-ticket
              type: call
              call: "zendesk.get-ticket"
              with:
                ticket_id: "{{ticket_id}}"
            - name: get-customer
              type: call
              call: "salesforce.get-account"
              with:
                email: "{{get-ticket.requester_email}}"
            - name: create-quality-notification
              type: call
              call: "sap.create-quality-notification"
              with:
                notification_type: "Q1"
                description: "Consumer complaint: {{get-ticket.subject}}"
                material_number: "{{get-ticket.custom_fields.product_sku}}"
            - name: alert-brand-team
              type: call
              call: "msteams.send-channel-message"
              with:
                team_id: "brand_quality"
                channel: "Complaints"
                text: "Consumer complaint: {{get-ticket.subject}}. Customer: {{get-customer.Name}}. Product: {{get-ticket.custom_fields.product_sku}}. SAP notification: {{create-quality-notification.notification_id}}. Zendesk: {{ticket_id}}."
  consumes:
    - type: http
      namespace: zendesk
      baseUri: "https://reckitt.zendesk.com/api/v2"
      authentication:
        type: basic
        username: "$secrets.zendesk_user"
        password: "$secrets.zendesk_api_token"
      resources:
        - name: tickets
          path: "/tickets/{{ticket_id}}"
          inputParameters:
            - name: ticket_id
              in: path
          operations:
            - name: get-ticket
              method: GET
    - type: http
      namespace: salesforce
      baseUri: "https://reckitt.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token"
      resources:
        - name: accounts
          path: "/parameterizedSearch/?q={{email}}&sobject=Account"
          inputParameters:
            - name: email
              in: path
          operations:
            - name: get-account
              method: GET
    - type: http
      namespace: sap
      baseUri: "https://reckitt-s4.sap.com/sap/opu/odata/sap/QM_NOTIFICATION_SRV"
      authentication:
        type: basic
        username: "$secrets.sap_user"
        password: "$secrets.sap_password"
      resources:
        - name: notifications
          path: "/QualityNotifications"
          operations:
            - name: create-quality-notification
              method: POST
    - type: http
      namespace: msteams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: channel-messages
          path: "/teams/{{team_id}}/channels/{{channel}}/messages"
          inputParameters:
            - name: team_id
              in: path
            - name: channel
              in: path
          operations:
            - name: send-channel-message
              method: POST

Retrieves consumer complaint status data from the Reckitt consumer health and hygiene products systems.

naftiko: "0.5"
info:
  label: "Consumer Complaint Status"
  description: "Retrieves consumer complaint status data from the Reckitt consumer health and hygiene products systems."
  tags:
    - consumer
    - reckitt
    - status
capability:
  exposes:
    - type: mcp
      namespace: consumer
      port: 8080
      tools:
        - name: consumer-complaint-status
          description: "Retrieves consumer complaint status data from the Reckitt consumer health and hygiene products systems."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The input id."
          call: "reckitt.consumer-complaint-status"
          with:
            input_id: "{{input_id}}"
          outputParameters:
            - name: result
              type: string
              mapping: "$.data"
            - name: status
              type: string
              mapping: "$.status"
  consumes:
    - type: http
      namespace: reckitt
      baseUri: "https://api.reckitt.com/v2"
      authentication:
        type: bearer
        token: "$secrets.reckitt_api_token"
      resources:
        - name: resource
          path: "/consumer/complaint/status/{{input_id}}"
          inputParameters:
            - name: input_id
              in: path
          operations:
            - name: consumer-complaint-status
              method: GET

Orchestrates consumer complaint trending pipeline across consumer health and hygiene products systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Consumer Complaint Trending Pipeline"
  description: "Orchestrates consumer complaint trending pipeline across consumer health and hygiene products systems, coordinating multiple services and notifying stakeholders."
  tags:
    - consumer
    - reckitt
    - confluence
    - datadog
    - reckitt
capability:
  exposes:
    - type: mcp
      namespace: consumer
      port: 8080
      tools:
        - name: consumer-complaint-trending-pipeline
          description: "Orchestrates consumer complaint trending pipeline across consumer health and hygiene products systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "confluence.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "datadog.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "reckitt.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: confluence
      baseUri: "https://reckitt.atlassian.net/wiki/rest/api"
      authentication:
        type: bearer
        token: "$secrets.confluence_token"
      resources:
        - name: confluence-resource
          path: "/api/consumer"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: datadog
      baseUri: "https://api.datadoghq.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.datadog_api_key"
      resources:
        - name: datadog-resource
          path: "/api/consumer"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: reckitt
      baseUri: "https://api.reckitt.com/v2"
      authentication:
        type: bearer
        token: "$secrets.reckitt_api_token"
      resources:
        - name: reckitt-resource
          path: "/api/consumer"
          operations:
            - name: execute-3
              method: POST

Orchestrates consumer health claim validation pipeline across consumer health and hygiene products systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Consumer Health Claim Validation Pipeline"
  description: "Orchestrates consumer health claim validation pipeline across consumer health and hygiene products systems, coordinating multiple services and notifying stakeholders."
  tags:
    - consumer
    - reckitt
    - snowflake
    - slack
    - sap
capability:
  exposes:
    - type: mcp
      namespace: consumer
      port: 8080
      tools:
        - name: consumer-health-claim-validation-pipeline
          description: "Orchestrates consumer health claim validation pipeline across consumer health and hygiene products systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "snowflake.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "slack.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "sap.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: snowflake
      baseUri: "https://reckitt.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: snowflake-resource
          path: "/api/consumer"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: slack
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token"
      resources:
        - name: slack-resource
          path: "/api/consumer"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: sap
      baseUri: "https://reckitt-erp.s4hana.ondemand.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.sap_token"
      resources:
        - name: sap-resource
          path: "/api/consumer"
          operations:
            - name: execute-3
              method: POST

Orchestrates consumer insight mining pipeline across consumer health and hygiene products systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Consumer Insight Mining Pipeline"
  description: "Orchestrates consumer insight mining pipeline across consumer health and hygiene products systems, coordinating multiple services and notifying stakeholders."
  tags:
    - consumer
    - reckitt
    - servicenow
    - snowflake
    - slack
capability:
  exposes:
    - type: mcp
      namespace: consumer
      port: 8080
      tools:
        - name: consumer-insight-mining-pipeline
          description: "Orchestrates consumer insight mining pipeline across consumer health and hygiene products systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "servicenow.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "snowflake.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "slack.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: servicenow
      baseUri: "https://reckitt.service-now.com/api/now"
      authentication:
        type: bearer
        token: "$secrets.servicenow_token"
      resources:
        - name: servicenow-resource
          path: "/api/consumer"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: snowflake
      baseUri: "https://reckitt.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: snowflake-resource
          path: "/api/consumer"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: slack
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token"
      resources:
        - name: slack-resource
          path: "/api/consumer"
          operations:
            - name: execute-3
              method: POST

Orchestrates consumer loyalty program pipeline across consumer health and hygiene products systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Consumer Loyalty Program Pipeline"
  description: "Orchestrates consumer loyalty program pipeline across consumer health and hygiene products systems, coordinating multiple services and notifying stakeholders."
  tags:
    - consumer
    - reckitt
    - confluence
    - datadog
    - reckitt
capability:
  exposes:
    - type: mcp
      namespace: consumer
      port: 8080
      tools:
        - name: consumer-loyalty-program-pipeline
          description: "Orchestrates consumer loyalty program pipeline across consumer health and hygiene products systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "confluence.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "datadog.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "reckitt.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: confluence
      baseUri: "https://reckitt.atlassian.net/wiki/rest/api"
      authentication:
        type: bearer
        token: "$secrets.confluence_token"
      resources:
        - name: confluence-resource
          path: "/api/consumer"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: datadog
      baseUri: "https://api.datadoghq.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.datadog_api_key"
      resources:
        - name: datadog-resource
          path: "/api/consumer"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: reckitt
      baseUri: "https://api.reckitt.com/v2"
      authentication:
        type: bearer
        token: "$secrets.reckitt_api_token"
      resources:
        - name: reckitt-resource
          path: "/api/consumer"
          operations:
            - name: execute-3
              method: POST

Retrieves consumer panel data lookup data from the Reckitt consumer health and hygiene products systems.

naftiko: "0.5"
info:
  label: "Consumer Panel Data Lookup"
  description: "Retrieves consumer panel data lookup data from the Reckitt consumer health and hygiene products systems."
  tags:
    - consumer
    - reckitt
    - lookup
capability:
  exposes:
    - type: mcp
      namespace: consumer
      port: 8080
      tools:
        - name: consumer-panel-data-lookup
          description: "Retrieves consumer panel data lookup data from the Reckitt consumer health and hygiene products systems."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The input id."
          call: "reckitt.consumer-panel-data-lookup"
          with:
            input_id: "{{input_id}}"
          outputParameters:
            - name: result
              type: string
              mapping: "$.data"
            - name: status
              type: string
              mapping: "$.status"
  consumes:
    - type: http
      namespace: reckitt
      baseUri: "https://api.reckitt.com/v2"
      authentication:
        type: bearer
        token: "$secrets.reckitt_api_token"
      resources:
        - name: resource
          path: "/consumer/panel/data/lookup/{{input_id}}"
          inputParameters:
            - name: input_id
              in: path
          operations:
            - name: consumer-panel-data-lookup
              method: GET

Retrieves consumer satisfaction score lookup data from the Reckitt consumer health and hygiene products systems.

naftiko: "0.5"
info:
  label: "Consumer Satisfaction Score Lookup"
  description: "Retrieves consumer satisfaction score lookup data from the Reckitt consumer health and hygiene products systems."
  tags:
    - consumer
    - reckitt
    - lookup
capability:
  exposes:
    - type: mcp
      namespace: consumer
      port: 8080
      tools:
        - name: consumer-satisfaction-score-lookup
          description: "Retrieves consumer satisfaction score lookup data from the Reckitt consumer health and hygiene products systems."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The input id."
          call: "reckitt.consumer-satisfaction-score-lookup"
          with:
            input_id: "{{input_id}}"
          outputParameters:
            - name: result
              type: string
              mapping: "$.data"
            - name: status
              type: string
              mapping: "$.status"
  consumes:
    - type: http
      namespace: reckitt
      baseUri: "https://api.reckitt.com/v2"
      authentication:
        type: bearer
        token: "$secrets.reckitt_api_token"
      resources:
        - name: resource
          path: "/consumer/satisfaction/score/lookup/{{input_id}}"
          inputParameters:
            - name: input_id
              in: path
          operations:
            - name: consumer-satisfaction-score-lookup
              method: GET

Orchestrates consumer segmentation pipeline across consumer health and hygiene products systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Consumer Segmentation Pipeline"
  description: "Orchestrates consumer segmentation pipeline across consumer health and hygiene products systems, coordinating multiple services and notifying stakeholders."
  tags:
    - consumer
    - reckitt
    - jira
    - confluence
    - datadog
capability:
  exposes:
    - type: mcp
      namespace: consumer
      port: 8080
      tools:
        - name: consumer-segmentation-pipeline
          description: "Orchestrates consumer segmentation pipeline across consumer health and hygiene products systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "jira.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "confluence.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "datadog.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: jira
      baseUri: "https://reckitt.atlassian.net/rest/api/3"
      authentication:
        type: bearer
        token: "$secrets.jira_token"
      resources:
        - name: jira-resource
          path: "/api/consumer"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: confluence
      baseUri: "https://reckitt.atlassian.net/wiki/rest/api"
      authentication:
        type: bearer
        token: "$secrets.confluence_token"
      resources:
        - name: confluence-resource
          path: "/api/consumer"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: datadog
      baseUri: "https://api.datadoghq.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.datadog_api_key"
      resources:
        - name: datadog-resource
          path: "/api/consumer"
          operations:
            - name: execute-3
              method: POST

Orchestrates consumer trend forecasting pipeline across consumer health and hygiene products systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Consumer Trend Forecasting Pipeline"
  description: "Orchestrates consumer trend forecasting pipeline across consumer health and hygiene products systems, coordinating multiple services and notifying stakeholders."
  tags:
    - consumer
    - reckitt
    - slack
    - sap
    - teams
capability:
  exposes:
    - type: mcp
      namespace: consumer
      port: 8080
      tools:
        - name: consumer-trend-forecasting-pipeline
          description: "Orchestrates consumer trend forecasting pipeline across consumer health and hygiene products systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "slack.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "sap.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "teams.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: slack
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token"
      resources:
        - name: slack-resource
          path: "/api/consumer"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: sap
      baseUri: "https://reckitt-erp.s4hana.ondemand.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.sap_token"
      resources:
        - name: sap-resource
          path: "/api/consumer"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: teams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.teams_token"
      resources:
        - name: teams-resource
          path: "/api/consumer"
          operations:
            - name: execute-3
              method: POST

Aggregates marketing performance from Google Analytics, Google Ads, Facebook Ads, and LinkedIn into a single summary, then posts the digest to a Microsoft Teams channel.

naftiko: "0.5"
info:
  label: "Cross-Channel Marketing Performance Orchestrator"
  description: "Aggregates marketing performance from Google Analytics, Google Ads, Facebook Ads, and LinkedIn into a single summary, then posts the digest to a Microsoft Teams channel."
  tags:
    - marketing
    - analytics
    - google-analytics
    - google-ads
    - facebook-ads
    - linkedin
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: marketing-performance
      port: 8080
      tools:
        - name: generate-performance-digest
          description: "Aggregate marketing performance data from multiple channels and post a summary to Microsoft Teams."
          inputParameters:
            - 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."
          steps:
            - name: get-ga-data
              type: call
              call: "ga.run-report"
              with:
                property_id: "$secrets.ga_property_id"
                start_date: "{{start_date}}"
                end_date: "{{end_date}}"
            - name: get-google-ads
              type: call
              call: "googleads.search-stream"
              with:
                customer_id: "$secrets.google_ads_customer_id"
                query: "SELECT metrics.impressions, metrics.clicks, metrics.cost_micros, metrics.conversions FROM campaign WHERE segments.date BETWEEN '{{start_date}}' AND '{{end_date}}'"
            - name: get-fb-ads
              type: call
              call: "fbads.get-account-insights"
              with:
                date_start: "{{start_date}}"
                date_end: "{{end_date}}"
            - name: get-linkedin
              type: call
              call: "linkedin.get-account-analytics"
              with:
                start_date: "{{start_date}}"
                end_date: "{{end_date}}"
            - name: post-digest
              type: call
              call: "msteams.send-channel-message"
              with:
                team_id: "marketing_team"
                channel: "Performance"
                text: "Marketing Digest {{start_date}} to {{end_date}}: GA sessions: {{get-ga-data.totals.sessions}}. Google Ads clicks: {{get-google-ads.total_clicks}}. FB reach: {{get-fb-ads.reach}}. LinkedIn impressions: {{get-linkedin.impressions}}."
  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: run-report
              method: POST
    - type: http
      namespace: googleads
      baseUri: "https://googleads.googleapis.com/v15"
      authentication:
        type: bearer
        token: "$secrets.google_ads_token"
      resources:
        - name: search
          path: "/customers/{{customer_id}}/googleAds:searchStream"
          inputParameters:
            - name: customer_id
              in: path
          operations:
            - name: search-stream
              method: POST
    - type: http
      namespace: fbads
      baseUri: "https://graph.facebook.com/v18.0"
      authentication:
        type: bearer
        token: "$secrets.meta_access_token"
      resources:
        - name: account-insights
          path: "/act_{{ad_account_id}}/insights"
          operations:
            - name: get-account-insights
              method: GET
    - type: http
      namespace: linkedin
      baseUri: "https://api.linkedin.com/rest"
      authentication:
        type: bearer
        token: "$secrets.linkedin_token"
      resources:
        - name: analytics
          path: "/adAnalytics?q=analytics&dateRange.start.year={{start_year}}&dateRange.end.year={{end_year}}"
          operations:
            - name: get-account-analytics
              method: GET
    - type: http
      namespace: msteams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: channel-messages
          path: "/teams/{{team_id}}/channels/{{channel}}/messages"
          inputParameters:
            - name: team_id
              in: path
            - name: channel
              in: path
          operations:
            - name: send-channel-message
              method: POST

Queries Datadog for the current health status of a monitored service, returning uptime, error rate, and active alerts.

naftiko: "0.5"
info:
  label: "Datadog Service Health Check"
  description: "Queries Datadog for the current health status of a monitored service, returning uptime, error rate, and active alerts."
  tags:
    - monitoring
    - observability
    - datadog
capability:
  exposes:
    - type: mcp
      namespace: ops-monitoring
      port: 8080
      tools:
        - name: get-service-health
          description: "Query Datadog for a service health summary including uptime, error rate, and active monitor alerts."
          inputParameters:
            - name: service_name
              in: body
              type: string
              description: "The Datadog service name tag."
          call: "datadog.get-monitors"
          with:
            service_name: "{{service_name}}"
  consumes:
    - type: http
      namespace: datadog
      baseUri: "https://api.datadoghq.com/api/v1"
      authentication:
        type: apiKey
        key: "$secrets.datadog_api_key"
      resources:
        - name: monitors
          path: "/monitor?tag=service:{{service_name}}"
          inputParameters:
            - name: service_name
              in: path
          operations:
            - name: get-monitors
              method: GET

Orchestrates distribution network optimization pipeline across consumer health and hygiene products systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Distribution Network Optimization Pipeline"
  description: "Orchestrates distribution network optimization pipeline across consumer health and hygiene products systems, coordinating multiple services and notifying stakeholders."
  tags:
    - distribution
    - reckitt
    - teams
    - jira
    - confluence
capability:
  exposes:
    - type: mcp
      namespace: distribution
      port: 8080
      tools:
        - name: distribution-network-optimization-pipeline
          description: "Orchestrates distribution network optimization pipeline across consumer health and hygiene products systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "teams.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "jira.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "confluence.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: teams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.teams_token"
      resources:
        - name: teams-resource
          path: "/api/distribution"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: jira
      baseUri: "https://reckitt.atlassian.net/rest/api/3"
      authentication:
        type: bearer
        token: "$secrets.jira_token"
      resources:
        - name: jira-resource
          path: "/api/distribution"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: confluence
      baseUri: "https://reckitt.atlassian.net/wiki/rest/api"
      authentication:
        type: bearer
        token: "$secrets.confluence_token"
      resources:
        - name: confluence-resource
          path: "/api/distribution"
          operations:
            - name: execute-3
              method: POST

Retrieves distributor order status data from the Reckitt consumer health and hygiene products systems.

naftiko: "0.5"
info:
  label: "Distributor Order Status"
  description: "Retrieves distributor order status data from the Reckitt consumer health and hygiene products systems."
  tags:
    - distributor
    - reckitt
    - status
capability:
  exposes:
    - type: mcp
      namespace: distributor
      port: 8080
      tools:
        - name: distributor-order-status
          description: "Retrieves distributor order status data from the Reckitt consumer health and hygiene products systems."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The input id."
          call: "reckitt.distributor-order-status"
          with:
            input_id: "{{input_id}}"
          outputParameters:
            - name: result
              type: string
              mapping: "$.data"
            - name: status
              type: string
              mapping: "$.status"
  consumes:
    - type: http
      namespace: reckitt
      baseUri: "https://api.reckitt.com/v2"
      authentication:
        type: bearer
        token: "$secrets.reckitt_api_token"
      resources:
        - name: resource
          path: "/distributor/order/status/{{input_id}}"
          inputParameters:
            - name: input_id
              in: path
          operations:
            - name: distributor-order-status
              method: GET

Retrieves the status of a DocuSign envelope including signer status, completion date, and document details.

naftiko: "0.5"
info:
  label: "DocuSign Envelope Status"
  description: "Retrieves the status of a DocuSign envelope including signer status, completion date, and document details."
  tags:
    - legal
    - contracts
    - docusign
capability:
  exposes:
    - type: mcp
      namespace: legal-docusign
      port: 8080
      tools:
        - name: get-envelope-status
          description: "Look up a DocuSign envelope by ID. Returns signer status, sent date, and completion details."
          inputParameters:
            - name: envelope_id
              in: body
              type: string
              description: "The DocuSign envelope ID."
          call: "docusign.get-envelope"
          with:
            envelope_id: "{{envelope_id}}"
  consumes:
    - type: http
      namespace: docusign
      baseUri: "https://na4.docusign.net/restapi/v2.1/accounts/{{account_id}}"
      authentication:
        type: bearer
        token: "$secrets.docusign_token"
      inputParameters:
        - name: account_id
          in: path
          value: "$secrets.docusign_account_id"
      resources:
        - name: envelopes
          path: "/envelopes/{{envelope_id}}"
          inputParameters:
            - name: envelope_id
              in: path
          operations:
            - name: get-envelope
              method: GET

Queries Dynatrace for service-level performance data including response time, failure rate, and throughput.

naftiko: "0.5"
info:
  label: "Dynatrace Service Performance"
  description: "Queries Dynatrace for service-level performance data including response time, failure rate, and throughput."
  tags:
    - monitoring
    - apm
    - dynatrace
capability:
  exposes:
    - type: mcp
      namespace: ops-dynatrace
      port: 8080
      tools:
        - name: get-service-metrics
          description: "Query Dynatrace for a service entity's performance metrics. Returns response time, failure rate, and throughput."
          inputParameters:
            - name: entity_id
              in: body
              type: string
              description: "The Dynatrace service entity ID."
          call: "dynatrace.get-entity-metrics"
          with:
            entity_id: "{{entity_id}}"
  consumes:
    - type: http
      namespace: dynatrace
      baseUri: "https://reckitt.live.dynatrace.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.dynatrace_token"
      resources:
        - name: metrics
          path: "/metrics/query?metricSelector=builtin:service.response.time,builtin:service.errors.total.rate&entitySelector=entityId({{entity_id}})"
          inputParameters:
            - name: entity_id
              in: path
          operations:
            - name: get-entity-metrics
              method: GET

Orchestrates e commerce content optimization pipeline across consumer health and hygiene products systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "E Commerce Content Optimization Pipeline"
  description: "Orchestrates e commerce content optimization pipeline across consumer health and hygiene products systems, coordinating multiple services and notifying stakeholders."
  tags:
    - e
    - reckitt
    - salesforce
    - servicenow
    - snowflake
capability:
  exposes:
    - type: mcp
      namespace: e
      port: 8080
      tools:
        - name: e-commerce-content-optimization-pipeline
          description: "Orchestrates e commerce content optimization pipeline across consumer health and hygiene products systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "salesforce.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "servicenow.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "snowflake.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: salesforce
      baseUri: "https://reckitt.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_access_token"
      resources:
        - name: salesforce-resource
          path: "/api/e"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: servicenow
      baseUri: "https://reckitt.service-now.com/api/now"
      authentication:
        type: bearer
        token: "$secrets.servicenow_token"
      resources:
        - name: servicenow-resource
          path: "/api/e"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: snowflake
      baseUri: "https://reckitt.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: snowflake-resource
          path: "/api/e"
          operations:
            - name: execute-3
              method: POST

When a BigCommerce order is placed, checks SAP inventory, creates a shipment in SAP, updates the BigCommerce order status, and notifies the customer via WhatsApp.

naftiko: "0.5"
info:
  label: "E-Commerce Fulfillment Orchestrator"
  description: "When a BigCommerce order is placed, checks SAP inventory, creates a shipment in SAP, updates the BigCommerce order status, and notifies the customer via WhatsApp."
  tags:
    - e-commerce
    - fulfillment
    - bigcommerce
    - sap
    - whatsapp
    - supply-chain
capability:
  exposes:
    - type: mcp
      namespace: ecommerce-fulfillment
      port: 8080
      tools:
        - name: fulfill-order
          description: "Given a BigCommerce order ID, check SAP inventory, create a shipment, update order status, and notify the customer via WhatsApp."
          inputParameters:
            - name: order_id
              in: body
              type: string
              description: "The BigCommerce order ID."
          steps:
            - name: get-order
              type: call
              call: "bigcommerce.get-order"
              with:
                order_id: "{{order_id}}"
            - name: check-inventory
              type: call
              call: "sap.check-stock"
              with:
                material_number: "{{get-order.line_items[0].sku}}"
                plant: "{{get-order.shipping_warehouse}}"
            - name: create-shipment
              type: call
              call: "sap.create-delivery"
              with:
                sales_order: "{{get-order.erp_reference}}"
                shipping_address: "{{get-order.shipping_address}}"
            - name: update-order-status
              type: call
              call: "bigcommerce.update-order"
              with:
                order_id: "{{order_id}}"
                status: "shipped"
                tracking_number: "{{create-shipment.tracking_number}}"
            - name: notify-customer
              type: call
              call: "whatsapp.send-message"
              with:
                phone_number: "{{get-order.customer_phone}}"
                message: "Your Reckitt order #{{order_id}} has been shipped! Tracking: {{create-shipment.tracking_number}}"
  consumes:
    - type: http
      namespace: bigcommerce
      baseUri: "https://api.bigcommerce.com/stores/{{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
            - name: update-order
              method: PUT
    - type: http
      namespace: sap
      baseUri: "https://reckitt-s4.sap.com/sap/opu/odata/sap/API_OUTBOUND_DELIVERY_SRV"
      authentication:
        type: basic
        username: "$secrets.sap_user"
        password: "$secrets.sap_password"
      resources:
        - name: stock
          path: "/A_MaterialStock(Material='{{material_number}}',Plant='{{plant}}')"
          inputParameters:
            - name: material_number
              in: path
            - name: plant
              in: path
          operations:
            - name: check-stock
              method: GET
        - name: deliveries
          path: "/A_OutbDeliveryHeader"
          operations:
            - name: create-delivery
              method: POST
    - type: http
      namespace: whatsapp
      baseUri: "https://graph.facebook.com/v18.0"
      authentication:
        type: bearer
        token: "$secrets.whatsapp_token"
      resources:
        - name: messages
          path: "/{{phone_number_id}}/messages"
          operations:
            - name: send-message
              method: POST

Retrieves an order from BigCommerce by order ID and returns shipping status, line items, and customer information.

naftiko: "0.5"
info:
  label: "E-Commerce Order Status Lookup"
  description: "Retrieves an order from BigCommerce by order ID and returns shipping status, line items, and customer information."
  tags:
    - e-commerce
    - orders
    - bigcommerce
capability:
  exposes:
    - type: mcp
      namespace: ecommerce-orders
      port: 8080
      tools:
        - name: get-order-status
          description: "Look up a BigCommerce order by ID. Returns order status, shipping details, line items, and customer info."
          inputParameters:
            - name: order_id
              in: body
              type: string
              description: "The BigCommerce order ID."
          call: "bigcommerce.get-order"
          with:
            order_id: "{{order_id}}"
  consumes:
    - type: http
      namespace: bigcommerce
      baseUri: "https://api.bigcommerce.com/stores/{{store_hash}}/v2"
      authentication:
        type: bearer
        token: "$secrets.bigcommerce_token"
      inputParameters:
        - name: store_hash
          in: path
          value: "$secrets.bigcommerce_store_hash"
      resources:
        - name: orders
          path: "/orders/{{order_id}}"
          inputParameters:
            - name: order_id
              in: path
          operations:
            - name: get-order
              method: GET

On new hire creation in Workday, opens a ServiceNow onboarding ticket, provisions a SharePoint folder for the employee, 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 for the employee, 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 and start date, orchestrate the full onboarding sequence across ServiceNow, SharePoint, and Microsoft 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 or business unit 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 Reckitt, {{get-employee.first_name}}! Your IT onboarding ticket is {{open-ticket.number}}. Documents are ready 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://reckitt.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

Retrieves submitted expense reports from SAP Concur, validates against Workday cost center data, and opens a ServiceNow task for finance review when policy exceptions are detected.

naftiko: "0.5"
info:
  label: "Expense Report Processing"
  description: "Retrieves submitted expense reports from SAP Concur, validates against Workday cost center data, and opens a ServiceNow task for finance review when policy exceptions are detected."
  tags:
    - finance
    - expense
    - concur
    - sap-concur
    - workday
    - servicenow
capability:
  exposes:
    - type: mcp
      namespace: finance-expense
      port: 8080
      tools:
        - name: review-expense-report
          description: "Given a Concur expense report ID and employee ID, fetch the report details, validate the cost center against Workday, and flag any policy violations to ServiceNow."
          inputParameters:
            - name: expense_report_id
              in: body
              type: string
              description: "The SAP Concur expense report ID."
            - name: employee_id
              in: body
              type: string
              description: "The Workday employee ID of the expense submitter."
          steps:
            - name: get-expense-report
              type: call
              call: "concur.get-expense-report"
              with:
                report_id: "{{expense_report_id}}"
            - name: get-employee
              type: call
              call: "workday.get-worker"
              with:
                worker_id: "{{employee_id}}"
            - name: open-review-task
              type: call
              call: "servicenow.create-task"
              with:
                short_description: "Expense policy review: {{get-expense-report.report_name}} — {{get-employee.full_name}}"
                description: "Report {{expense_report_id}} total: {{get-expense-report.total_amount}} {{get-expense-report.currency}}. Cost center: {{get-employee.cost_center}}."
                assigned_group: "Finance_Audit"
                category: "expense_review"
  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/{{report_id}}"
          inputParameters:
            - name: report_id
              in: path
          operations:
            - name: get-expense-report
              method: GET
    - 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://reckitt.service-now.com/api/now"
      authentication:
        type: basic
        username: "$secrets.servicenow_user"
        password: "$secrets.servicenow_password"
      resources:
        - name: tasks
          path: "/table/task"
          operations:
            - name: create-task
              method: POST

Retrieves Facebook Ads campaign insights including reach, impressions, spend, and cost per result.

naftiko: "0.5"
info:
  label: "Facebook Ads Campaign Report"
  description: "Retrieves Facebook Ads campaign insights including reach, impressions, spend, and cost per result."
  tags:
    - marketing
    - advertising
    - facebook-ads
capability:
  exposes:
    - type: mcp
      namespace: marketing-facebook
      port: 8080
      tools:
        - name: get-fb-campaign-insights
          description: "Retrieve Facebook Ads campaign insights by campaign ID. Returns reach, impressions, spend, and cost per result."
          inputParameters:
            - name: campaign_id
              in: body
              type: string
              description: "The Facebook Ads campaign ID."
            - name: date_preset
              in: body
              type: string
              description: "Date preset (e.g. last_7d, last_30d)."
          call: "fbads.get-insights"
          with:
            campaign_id: "{{campaign_id}}"
            date_preset: "{{date_preset}}"
  consumes:
    - type: http
      namespace: fbads
      baseUri: "https://graph.facebook.com/v18.0"
      authentication:
        type: bearer
        token: "$secrets.meta_access_token"
      resources:
        - name: insights
          path: "/{{campaign_id}}/insights?date_preset={{date_preset}}"
          inputParameters:
            - name: campaign_id
              in: path
            - name: date_preset
              in: path
          operations:
            - name: get-insights
              method: GET

Retrieves the latest CI/CD pipeline status from GitLab for a given project, returning status, duration, and stages.

naftiko: "0.5"
info:
  label: "GitLab Pipeline Status"
  description: "Retrieves the latest CI/CD pipeline status from GitLab for a given project, returning status, duration, and stages."
  tags:
    - devops
    - ci-cd
    - gitlab
capability:
  exposes:
    - type: mcp
      namespace: devops-gitlab
      port: 8080
      tools:
        - name: get-pipeline-status
          description: "Get the latest GitLab CI/CD pipeline status for a project. Returns status, duration, and stage details."
          inputParameters:
            - name: project_id
              in: body
              type: string
              description: "The GitLab project ID."
          call: "gitlab.get-pipelines"
          with:
            project_id: "{{project_id}}"
  consumes:
    - type: http
      namespace: gitlab
      baseUri: "https://gitlab.reckitt.com/api/v4"
      authentication:
        type: bearer
        token: "$secrets.gitlab_token"
      resources:
        - name: pipelines
          path: "/projects/{{project_id}}/pipelines?per_page=1"
          inputParameters:
            - name: project_id
              in: path
          operations:
            - name: get-pipelines
              method: GET

Retrieves Google Ads campaign performance data including impressions, clicks, cost, and conversions for a specified date range.

naftiko: "0.5"
info:
  label: "Google Ads Performance Snapshot"
  description: "Retrieves Google Ads campaign performance data including impressions, clicks, cost, and conversions for a specified date range."
  tags:
    - marketing
    - advertising
    - google-ads
capability:
  exposes:
    - type: mcp
      namespace: marketing-ads
      port: 8080
      tools:
        - name: get-ads-performance
          description: "Retrieve Google Ads campaign performance for a date range. Returns impressions, clicks, cost, and conversions."
          inputParameters:
            - name: customer_id
              in: body
              type: string
              description: "The Google Ads customer 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: "googleads.search-stream"
          with:
            customer_id: "{{customer_id}}"
            query: "SELECT campaign.name, metrics.impressions, metrics.clicks, metrics.cost_micros, metrics.conversions FROM campaign WHERE segments.date BETWEEN '{{start_date}}' AND '{{end_date}}'"
  consumes:
    - type: http
      namespace: googleads
      baseUri: "https://googleads.googleapis.com/v15"
      authentication:
        type: bearer
        token: "$secrets.google_ads_token"
      resources:
        - name: search
          path: "/customers/{{customer_id}}/googleAds:searchStream"
          inputParameters:
            - name: customer_id
              in: path
          operations:
            - name: search-stream
              method: POST

Pulls campaign performance metrics from Google Analytics for a specified date range and returns sessions, conversions, and revenue data.

naftiko: "0.5"
info:
  label: "Google Analytics Campaign Report"
  description: "Pulls campaign performance metrics from Google Analytics for a specified date range and returns sessions, conversions, and revenue data."
  tags:
    - marketing
    - analytics
    - google-analytics
capability:
  exposes:
    - type: mcp
      namespace: marketing-analytics
      port: 8080
      tools:
        - name: get-campaign-report
          description: "Retrieve Google Analytics campaign metrics for a date range. Returns sessions, bounce rate, conversions, and revenue."
          inputParameters:
            - name: property_id
              in: body
              type: string
              description: "The Google Analytics 4 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.run-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: run-report
              method: POST

Uploads a file to a specified Google Drive folder and returns the file ID and shareable link.

naftiko: "0.5"
info:
  label: "Google Drive File Upload"
  description: "Uploads a file to a specified Google Drive folder and returns the file ID and shareable link."
  tags:
    - collaboration
    - storage
    - google-drive
capability:
  exposes:
    - type: mcp
      namespace: storage-gdrive
      port: 8080
      tools:
        - name: upload-file
          description: "Upload a file to a Google Drive folder. Returns file ID and shareable link."
          inputParameters:
            - name: folder_id
              in: body
              type: string
              description: "The Google Drive folder ID."
            - name: file_name
              in: body
              type: string
              description: "The name for the uploaded file."
            - name: content_type
              in: body
              type: string
              description: "The MIME type of the file."
          call: "gdrive.upload-file"
          with:
            folder_id: "{{folder_id}}"
            name: "{{file_name}}"
            mimeType: "{{content_type}}"
  consumes:
    - type: http
      namespace: gdrive
      baseUri: "https://www.googleapis.com/upload/drive/v3"
      authentication:
        type: bearer
        token: "$secrets.google_drive_token"
      resources:
        - name: files
          path: "/files?uploadType=multipart"
          operations:
            - name: upload-file
              method: POST

Retrieves a HubSpot CRM contact by email address, returning lifecycle stage, deal associations, and marketing engagement data.

naftiko: "0.5"
info:
  label: "HubSpot Contact Lookup"
  description: "Retrieves a HubSpot CRM contact by email address, returning lifecycle stage, deal associations, and marketing engagement data."
  tags:
    - marketing
    - crm
    - hubspot
capability:
  exposes:
    - type: mcp
      namespace: marketing-crm
      port: 8080
      tools:
        - name: get-contact
          description: "Look up a HubSpot contact by email. Returns lifecycle stage, deal associations, and recent activity."
          inputParameters:
            - name: email
              in: body
              type: string
              description: "The contact email address."
          call: "hubspot.get-contact-by-email"
          with:
            email: "{{email}}"
  consumes:
    - type: http
      namespace: hubspot
      baseUri: "https://api.hubapi.com/crm/v3"
      authentication:
        type: bearer
        token: "$secrets.hubspot_token"
      resources:
        - name: contacts
          path: "/objects/contacts/{{email}}?idProperty=email"
          inputParameters:
            - name: email
              in: path
          operations:
            - name: get-contact-by-email
              method: GET

When SAP inventory drops below threshold, creates a purchase requisition in SAP Ariba, notifies the procurement team via Microsoft Teams, and logs the event in ServiceNow.

naftiko: "0.5"
info:
  label: "Inventory Replenishment Orchestrator"
  description: "When SAP inventory drops below threshold, creates a purchase requisition in SAP Ariba, notifies the procurement team via Microsoft Teams, and logs the event in ServiceNow."
  tags:
    - supply-chain
    - inventory
    - sap
    - sap-ariba
    - microsoft-teams
    - servicenow
capability:
  exposes:
    - type: mcp
      namespace: supply-chain-replenishment
      port: 8080
      tools:
        - name: trigger-replenishment
          description: "Given a material number and plant code, check inventory, create an Ariba requisition, notify procurement, and log in ServiceNow."
          inputParameters:
            - name: material_number
              in: body
              type: string
              description: "The SAP material number."
            - name: plant_code
              in: body
              type: string
              description: "The plant code where stock is low."
            - name: reorder_quantity
              in: body
              type: number
              description: "The quantity to reorder."
          steps:
            - name: check-stock
              type: call
              call: "sap.check-stock"
              with:
                material_number: "{{material_number}}"
                plant: "{{plant_code}}"
            - name: create-requisition
              type: call
              call: "ariba.create-requisition"
              with:
                material: "{{material_number}}"
                quantity: "{{reorder_quantity}}"
                plant: "{{plant_code}}"
                description: "Auto-replenishment for {{material_number}} at plant {{plant_code}}"
            - name: notify-procurement
              type: call
              call: "msteams.send-channel-message"
              with:
                team_id: "procurement_team"
                channel: "Replenishment"
                text: "Auto-replenishment triggered: {{material_number}} at plant {{plant_code}}. Quantity: {{reorder_quantity}}. Ariba requisition: {{create-requisition.requisition_id}}."
            - name: log-event
              type: call
              call: "servicenow.create-task"
              with:
                short_description: "Inventory replenishment: {{material_number}} at {{plant_code}}"
                description: "Stock level: {{check-stock.available_quantity}}. Reorder: {{reorder_quantity}}. Requisition: {{create-requisition.requisition_id}}."
                category: "inventory_replenishment"
  consumes:
    - type: http
      namespace: sap
      baseUri: "https://reckitt-s4.sap.com/sap/opu/odata/sap/API_MATERIAL_STOCK_SRV"
      authentication:
        type: basic
        username: "$secrets.sap_user"
        password: "$secrets.sap_password"
      resources:
        - name: stock
          path: "/A_MatlStkInAcctMod(Material='{{material_number}}',Plant='{{plant}}')"
          inputParameters:
            - name: material_number
              in: path
            - name: plant
              in: path
          operations:
            - name: check-stock
              method: GET
    - type: http
      namespace: ariba
      baseUri: "https://openapi.ariba.com/api/purchase-req/v1"
      authentication:
        type: bearer
        token: "$secrets.ariba_token"
      resources:
        - name: requisitions
          path: "/requisitions"
          operations:
            - name: create-requisition
              method: POST
    - type: http
      namespace: msteams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: channel-messages
          path: "/teams/{{team_id}}/channels/{{channel}}/messages"
          inputParameters:
            - name: team_id
              in: path
            - name: channel
              in: path
          operations:
            - name: send-channel-message
              method: POST
    - type: http
      namespace: servicenow
      baseUri: "https://reckitt.service-now.com/api/now"
      authentication:
        type: basic
        username: "$secrets.servicenow_user"
        password: "$secrets.servicenow_password"
      resources:
        - name: tasks
          path: "/table/task"
          operations:
            - name: create-task
              method: POST

When an employee leaves in Workday, deactivates their Azure AD account, closes open ServiceNow tickets, revokes Box access, and logs the offboarding in Microsoft Teams.

naftiko: "0.5"
info:
  label: "IT Asset Lifecycle Orchestrator"
  description: "When an employee leaves in Workday, deactivates their Azure AD account, closes open ServiceNow tickets, revokes Box access, and logs the offboarding in Microsoft Teams."
  tags:
    - hr
    - offboarding
    - workday
    - azure-active-directory
    - servicenow
    - box
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: hr-offboarding
      port: 8080
      tools:
        - name: offboard-employee
          description: "Given a Workday employee ID, deactivate Azure AD, close ServiceNow tickets, revoke Box access, and notify via Teams."
          inputParameters:
            - name: employee_id
              in: body
              type: string
              description: "The Workday employee ID of the departing employee."
            - name: last_day
              in: body
              type: string
              description: "The employee's last working day in YYYY-MM-DD format."
          steps:
            - name: get-employee
              type: call
              call: "workday.get-worker"
              with:
                worker_id: "{{employee_id}}"
            - name: disable-ad-account
              type: call
              call: "aad.disable-user"
              with:
                upn: "{{get-employee.work_email}}"
            - name: close-tickets
              type: call
              call: "servicenow.close-user-tickets"
              with:
                caller_id: "{{get-employee.work_email}}"
                close_notes: "Employee offboarding: {{get-employee.full_name}} last day {{last_day}}"
            - name: revoke-box-access
              type: call
              call: "box.remove-collaborator"
              with:
                user_email: "{{get-employee.work_email}}"
            - name: notify-hr
              type: call
              call: "msteams.send-message"
              with:
                recipient_upn: "hr-team@reckitt.com"
                text: "Offboarding complete for {{get-employee.full_name}} ({{employee_id}}). AD disabled, tickets closed, Box access revoked. Last day: {{last_day}}."
  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: aad
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: users
          path: "/users/{{upn}}"
          inputParameters:
            - name: upn
              in: path
          operations:
            - name: disable-user
              method: PATCH
    - type: http
      namespace: servicenow
      baseUri: "https://reckitt.service-now.com/api/now"
      authentication:
        type: basic
        username: "$secrets.servicenow_user"
        password: "$secrets.servicenow_password"
      resources:
        - name: incidents
          path: "/table/incident?sysparm_query=caller_id={{caller_id}}^state!=7"
          inputParameters:
            - name: caller_id
              in: path
          operations:
            - name: close-user-tickets
              method: PATCH
    - type: http
      namespace: box
      baseUri: "https://api.box.com/2.0"
      authentication:
        type: bearer
        token: "$secrets.box_token"
      resources:
        - name: collaborations
          path: "/collaborations"
          operations:
            - name: remove-collaborator
              method: DELETE
    - 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

Retrieves LinkedIn advertising campaign performance metrics including impressions, clicks, and spend.

naftiko: "0.5"
info:
  label: "LinkedIn Campaign Performance"
  description: "Retrieves LinkedIn advertising campaign performance metrics including impressions, clicks, and spend."
  tags:
    - marketing
    - advertising
    - linkedin
capability:
  exposes:
    - type: mcp
      namespace: marketing-linkedin
      port: 8080
      tools:
        - name: get-linkedin-campaign
          description: "Retrieve LinkedIn campaign performance by campaign ID. Returns impressions, clicks, spend, and engagement rate."
          inputParameters:
            - name: campaign_id
              in: body
              type: string
              description: "The LinkedIn campaign ID."
          call: "linkedin.get-campaign-analytics"
          with:
            campaign_id: "{{campaign_id}}"
  consumes:
    - type: http
      namespace: linkedin
      baseUri: "https://api.linkedin.com/rest"
      authentication:
        type: bearer
        token: "$secrets.linkedin_token"
      resources:
        - name: campaign-analytics
          path: "/adAnalytics?q=analytics&campaigns=urn:li:sponsoredCampaign:{{campaign_id}}"
          inputParameters:
            - name: campaign_id
              in: path
          operations:
            - name: get-campaign-analytics
              method: GET

Retrieves email campaign performance metrics from MailChimp including open rate, click rate, and bounce rate.

naftiko: "0.5"
info:
  label: "MailChimp Email Campaign Metrics"
  description: "Retrieves email campaign performance metrics from MailChimp including open rate, click rate, and bounce rate."
  tags:
    - marketing
    - email
    - mailchimp
capability:
  exposes:
    - type: mcp
      namespace: marketing-email
      port: 8080
      tools:
        - name: get-campaign-metrics
          description: "Retrieve MailChimp campaign metrics by campaign ID. Returns open rate, click rate, bounce rate, and total recipients."
          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: "anystring"
        password: "$secrets.mailchimp_api_key"
      resources:
        - name: reports
          path: "/reports/{{campaign_id}}"
          inputParameters:
            - name: campaign_id
              in: path
          operations:
            - name: get-campaign-report
              method: GET

Retrieves manufacturing batch record lookup data from the Reckitt consumer health and hygiene products systems.

naftiko: "0.5"
info:
  label: "Manufacturing Batch Record Lookup"
  description: "Retrieves manufacturing batch record lookup data from the Reckitt consumer health and hygiene products systems."
  tags:
    - manufacturing
    - reckitt
    - lookup
capability:
  exposes:
    - type: mcp
      namespace: manufacturing
      port: 8080
      tools:
        - name: manufacturing-batch-record-lookup
          description: "Retrieves manufacturing batch record lookup data from the Reckitt consumer health and hygiene products systems."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The input id."
          call: "reckitt.manufacturing-batch-record-lookup"
          with:
            input_id: "{{input_id}}"
          outputParameters:
            - name: result
              type: string
              mapping: "$.data"
            - name: status
              type: string
              mapping: "$.status"
  consumes:
    - type: http
      namespace: reckitt
      baseUri: "https://api.reckitt.com/v2"
      authentication:
        type: bearer
        token: "$secrets.reckitt_api_token"
      resources:
        - name: resource
          path: "/manufacturing/batch/record/lookup/{{input_id}}"
          inputParameters:
            - name: input_id
              in: path
          operations:
            - name: manufacturing-batch-record-lookup
              method: GET

Orchestrates manufacturing batch release pipeline across consumer health and hygiene products systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Manufacturing Batch Release Pipeline"
  description: "Orchestrates manufacturing batch release pipeline across consumer health and hygiene products systems, coordinating multiple services and notifying stakeholders."
  tags:
    - manufacturing
    - reckitt
    - salesforce
    - servicenow
    - snowflake
capability:
  exposes:
    - type: mcp
      namespace: manufacturing
      port: 8080
      tools:
        - name: manufacturing-batch-release-pipeline
          description: "Orchestrates manufacturing batch release pipeline across consumer health and hygiene products systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "salesforce.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "servicenow.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "snowflake.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: salesforce
      baseUri: "https://reckitt.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_access_token"
      resources:
        - name: salesforce-resource
          path: "/api/manufacturing"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: servicenow
      baseUri: "https://reckitt.service-now.com/api/now"
      authentication:
        type: bearer
        token: "$secrets.servicenow_token"
      resources:
        - name: servicenow-resource
          path: "/api/manufacturing"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: snowflake
      baseUri: "https://reckitt.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: snowflake-resource
          path: "/api/manufacturing"
          operations:
            - name: execute-3
              method: POST

Orchestrates manufacturing energy optimization pipeline across consumer health and hygiene products systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Manufacturing Energy Optimization Pipeline"
  description: "Orchestrates manufacturing energy optimization pipeline across consumer health and hygiene products systems, coordinating multiple services and notifying stakeholders."
  tags:
    - manufacturing
    - reckitt
    - teams
    - jira
    - confluence
capability:
  exposes:
    - type: mcp
      namespace: manufacturing
      port: 8080
      tools:
        - name: manufacturing-energy-optimization-pipeline
          description: "Orchestrates manufacturing energy optimization pipeline across consumer health and hygiene products systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "teams.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "jira.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "confluence.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: teams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.teams_token"
      resources:
        - name: teams-resource
          path: "/api/manufacturing"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: jira
      baseUri: "https://reckitt.atlassian.net/rest/api/3"
      authentication:
        type: bearer
        token: "$secrets.jira_token"
      resources:
        - name: jira-resource
          path: "/api/manufacturing"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: confluence
      baseUri: "https://reckitt.atlassian.net/wiki/rest/api"
      authentication:
        type: bearer
        token: "$secrets.confluence_token"
      resources:
        - name: confluence-resource
          path: "/api/manufacturing"
          operations:
            - name: execute-3
              method: POST

Orchestrates manufacturing equipment maintenance pipeline across consumer health and hygiene products systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Manufacturing Equipment Maintenance Pipeline"
  description: "Orchestrates manufacturing equipment maintenance pipeline across consumer health and hygiene products systems, coordinating multiple services and notifying stakeholders."
  tags:
    - manufacturing
    - reckitt
    - jira
    - confluence
    - datadog
capability:
  exposes:
    - type: mcp
      namespace: manufacturing
      port: 8080
      tools:
        - name: manufacturing-equipment-maintenance-pipeline
          description: "Orchestrates manufacturing equipment maintenance pipeline across consumer health and hygiene products systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "jira.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "confluence.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "datadog.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: jira
      baseUri: "https://reckitt.atlassian.net/rest/api/3"
      authentication:
        type: bearer
        token: "$secrets.jira_token"
      resources:
        - name: jira-resource
          path: "/api/manufacturing"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: confluence
      baseUri: "https://reckitt.atlassian.net/wiki/rest/api"
      authentication:
        type: bearer
        token: "$secrets.confluence_token"
      resources:
        - name: confluence-resource
          path: "/api/manufacturing"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: datadog
      baseUri: "https://api.datadoghq.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.datadog_api_key"
      resources:
        - name: datadog-resource
          path: "/api/manufacturing"
          operations:
            - name: execute-3
              method: POST

Orchestrates manufacturing line changeover pipeline across consumer health and hygiene products systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Manufacturing Line Changeover Pipeline"
  description: "Orchestrates manufacturing line changeover pipeline across consumer health and hygiene products systems, coordinating multiple services and notifying stakeholders."
  tags:
    - manufacturing
    - reckitt
    - reckitt
    - salesforce
    - servicenow
capability:
  exposes:
    - type: mcp
      namespace: manufacturing
      port: 8080
      tools:
        - name: manufacturing-line-changeover-pipeline
          description: "Orchestrates manufacturing line changeover pipeline across consumer health and hygiene products systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "reckitt.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "salesforce.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "servicenow.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: reckitt
      baseUri: "https://api.reckitt.com/v2"
      authentication:
        type: bearer
        token: "$secrets.reckitt_api_token"
      resources:
        - name: reckitt-resource
          path: "/api/manufacturing"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: salesforce
      baseUri: "https://reckitt.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_access_token"
      resources:
        - name: salesforce-resource
          path: "/api/manufacturing"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: servicenow
      baseUri: "https://reckitt.service-now.com/api/now"
      authentication:
        type: bearer
        token: "$secrets.servicenow_token"
      resources:
        - name: servicenow-resource
          path: "/api/manufacturing"
          operations:
            - name: execute-3
              method: POST

When a quality deviation is detected in SAP, creates a ServiceNow incident, notifies the plant quality team via Microsoft Teams, and logs the event in Datadog.

naftiko: "0.5"
info:
  label: "Manufacturing Quality Alert Orchestrator"
  description: "When a quality deviation is detected in SAP, creates a ServiceNow incident, notifies the plant quality team via Microsoft Teams, and logs the event in Datadog."
  tags:
    - manufacturing
    - quality
    - sap
    - servicenow
    - microsoft-teams
    - datadog
capability:
  exposes:
    - type: mcp
      namespace: mfg-quality
      port: 8080
      tools:
        - name: raise-quality-alert
          description: "Given a SAP quality notification ID, create a ServiceNow incident, alert the quality team in Microsoft Teams, and send an event to Datadog."
          inputParameters:
            - name: notification_id
              in: body
              type: string
              description: "The SAP quality notification ID."
            - name: plant_code
              in: body
              type: string
              description: "The manufacturing plant code."
          steps:
            - name: get-notification
              type: call
              call: "sap.get-quality-notification"
              with:
                notification_id: "{{notification_id}}"
            - name: create-incident
              type: call
              call: "servicenow.create-incident"
              with:
                short_description: "Quality deviation at plant {{plant_code}}: {{get-notification.description}}"
                category: "quality"
                assigned_group: "Plant_Quality_{{plant_code}}"
                priority: "2"
            - name: notify-team
              type: call
              call: "msteams.send-channel-message"
              with:
                team_id: "quality_{{plant_code}}"
                channel: "Alerts"
                text: "Quality Alert: {{get-notification.description}} at plant {{plant_code}}. ServiceNow: {{create-incident.number}}. Material: {{get-notification.material_number}}."
            - name: log-event
              type: call
              call: "datadog.send-event"
              with:
                title: "Quality deviation: {{notification_id}}"
                text: "Plant {{plant_code}}, material {{get-notification.material_number}}, incident {{create-incident.number}}"
                tags: "plant:{{plant_code}},type:quality"
  consumes:
    - type: http
      namespace: sap
      baseUri: "https://reckitt-s4.sap.com/sap/opu/odata/sap/QM_NOTIFICATION_SRV"
      authentication:
        type: basic
        username: "$secrets.sap_user"
        password: "$secrets.sap_password"
      resources:
        - name: notifications
          path: "/QualityNotifications('{{notification_id}}')"
          inputParameters:
            - name: notification_id
              in: path
          operations:
            - name: get-quality-notification
              method: GET
    - type: http
      namespace: servicenow
      baseUri: "https://reckitt.service-now.com/api/now"
      authentication:
        type: basic
        username: "$secrets.servicenow_user"
        password: "$secrets.servicenow_password"
      resources:
        - name: incidents
          path: "/table/incident"
          operations:
            - name: create-incident
              method: POST
    - type: http
      namespace: msteams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: channel-messages
          path: "/teams/{{team_id}}/channels/{{channel}}/messages"
          inputParameters:
            - name: team_id
              in: path
            - name: channel
              in: path
          operations:
            - name: send-channel-message
              method: POST
    - type: http
      namespace: datadog
      baseUri: "https://api.datadoghq.com/api/v1"
      authentication:
        type: apiKey
        key: "$secrets.datadog_api_key"
      resources:
        - name: events
          path: "/events"
          operations:
            - name: send-event
              method: POST

Orchestrates manufacturing quality deviation pipeline across consumer health and hygiene products systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Manufacturing Quality Deviation Pipeline"
  description: "Orchestrates manufacturing quality deviation pipeline across consumer health and hygiene products systems, coordinating multiple services and notifying stakeholders."
  tags:
    - manufacturing
    - reckitt
    - snowflake
    - slack
    - sap
capability:
  exposes:
    - type: mcp
      namespace: manufacturing
      port: 8080
      tools:
        - name: manufacturing-quality-deviation-pipeline
          description: "Orchestrates manufacturing quality deviation pipeline across consumer health and hygiene products systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "snowflake.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "slack.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "sap.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: snowflake
      baseUri: "https://reckitt.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: snowflake-resource
          path: "/api/manufacturing"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: slack
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token"
      resources:
        - name: slack-resource
          path: "/api/manufacturing"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: sap
      baseUri: "https://reckitt-erp.s4hana.ondemand.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.sap_token"
      resources:
        - name: sap-resource
          path: "/api/manufacturing"
          operations:
            - name: execute-3
              method: POST

Orchestrates manufacturing waste reduction pipeline across consumer health and hygiene products systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Manufacturing Waste Reduction Pipeline"
  description: "Orchestrates manufacturing waste reduction pipeline across consumer health and hygiene products systems, coordinating multiple services and notifying stakeholders."
  tags:
    - manufacturing
    - reckitt
    - salesforce
    - servicenow
    - snowflake
capability:
  exposes:
    - type: mcp
      namespace: manufacturing
      port: 8080
      tools:
        - name: manufacturing-waste-reduction-pipeline
          description: "Orchestrates manufacturing waste reduction pipeline across consumer health and hygiene products systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "salesforce.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "servicenow.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "snowflake.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: salesforce
      baseUri: "https://reckitt.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_access_token"
      resources:
        - name: salesforce-resource
          path: "/api/manufacturing"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: servicenow
      baseUri: "https://reckitt.service-now.com/api/now"
      authentication:
        type: bearer
        token: "$secrets.servicenow_token"
      resources:
        - name: servicenow-resource
          path: "/api/manufacturing"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: snowflake
      baseUri: "https://reckitt.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: snowflake-resource
          path: "/api/manufacturing"
          operations:
            - name: execute-3
              method: POST

Sends an email notification via Microsoft Outlook/Graph API to a specified recipient.

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

Sends a message to a Microsoft Teams channel, used by workflows to push notifications and alerts.

naftiko: "0.5"
info:
  label: "Microsoft Teams Channel Message"
  description: "Sends a message to a Microsoft Teams channel, used by workflows to push notifications and alerts."
  tags:
    - collaboration
    - messaging
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: comms-teams
      port: 8080
      tools:
        - name: send-channel-message
          description: "Send a message to a Microsoft Teams channel by team and channel ID."
          inputParameters:
            - name: team_id
              in: body
              type: string
              description: "The Microsoft Teams team ID."
            - name: channel_id
              in: body
              type: string
              description: "The channel ID within the team."
            - name: message
              in: body
              type: string
              description: "The message content."
          call: "msteams.post-channel-message"
          with:
            team_id: "{{team_id}}"
            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/{{team_id}}/channels/{{channel_id}}/messages"
          inputParameters:
            - name: team_id
              in: path
            - name: channel_id
              in: path
          operations:
            - name: post-channel-message
              method: POST

Orchestrates new product development pipeline across consumer health and hygiene products systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "New Product Development Pipeline"
  description: "Orchestrates new product development pipeline across consumer health and hygiene products systems, coordinating multiple services and notifying stakeholders."
  tags:
    - new
    - reckitt
    - reckitt
    - salesforce
    - servicenow
capability:
  exposes:
    - type: mcp
      namespace: new
      port: 8080
      tools:
        - name: new-product-development-pipeline
          description: "Orchestrates new product development pipeline across consumer health and hygiene products systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "reckitt.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "salesforce.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "servicenow.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: reckitt
      baseUri: "https://api.reckitt.com/v2"
      authentication:
        type: bearer
        token: "$secrets.reckitt_api_token"
      resources:
        - name: reckitt-resource
          path: "/api/new"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: salesforce
      baseUri: "https://reckitt.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_access_token"
      resources:
        - name: salesforce-resource
          path: "/api/new"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: servicenow
      baseUri: "https://reckitt.service-now.com/api/now"
      authentication:
        type: bearer
        token: "$secrets.servicenow_token"
      resources:
        - name: servicenow-resource
          path: "/api/new"
          operations:
            - name: execute-3
              method: POST

Queries New Relic for application performance metrics including response time, throughput, and error rate.

naftiko: "0.5"
info:
  label: "New Relic Application Performance"
  description: "Queries New Relic for application performance metrics including response time, throughput, and error rate."
  tags:
    - monitoring
    - apm
    - new-relic
capability:
  exposes:
    - type: mcp
      namespace: ops-apm
      port: 8080
      tools:
        - name: get-app-performance
          description: "Query New Relic for application performance. Returns response time, throughput, and error rate."
          inputParameters:
            - name: app_id
              in: body
              type: string
              description: "The New Relic application ID."
          call: "newrelic.get-app-metrics"
          with:
            app_id: "{{app_id}}"
  consumes:
    - type: http
      namespace: newrelic
      baseUri: "https://api.newrelic.com/v2"
      authentication:
        type: apiKey
        key: "$secrets.newrelic_api_key"
      resources:
        - name: applications
          path: "/applications/{{app_id}}/metrics/data.json"
          inputParameters:
            - name: app_id
              in: path
          operations:
            - name: get-app-metrics
              method: GET

Retrieves a journal entry from Oracle Cloud ERP by journal ID, returning header details, line amounts, and posting status.

naftiko: "0.5"
info:
  label: "Oracle Cloud ERP Journal Entry"
  description: "Retrieves a journal entry from Oracle Cloud ERP by journal ID, returning header details, line amounts, and posting status."
  tags:
    - finance
    - erp
    - oracle-cloud
capability:
  exposes:
    - type: mcp
      namespace: finance-oracle
      port: 8080
      tools:
        - name: get-journal-entry
          description: "Look up an Oracle Cloud ERP journal entry by ID. Returns header info, line amounts, and posting status."
          inputParameters:
            - name: journal_id
              in: body
              type: string
              description: "The Oracle Cloud journal entry ID."
          call: "oracle.get-journal"
          with:
            journal_id: "{{journal_id}}"
  consumes:
    - type: http
      namespace: oracle
      baseUri: "https://reckitt.oraclecloud.com/fscmRestApi/resources/v1"
      authentication:
        type: basic
        username: "$secrets.oracle_cloud_user"
        password: "$secrets.oracle_cloud_password"
      resources:
        - name: journals
          path: "/journals/{{journal_id}}"
          inputParameters:
            - name: journal_id
              in: path
          operations:
            - name: get-journal
              method: GET

Triggers a dataset refresh in Power BI and returns the refresh status for supply chain and finance reporting dashboards.

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

Orchestrates product cost optimization pipeline across consumer health and hygiene products systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Product Cost Optimization Pipeline"
  description: "Orchestrates product cost optimization pipeline across consumer health and hygiene products systems, coordinating multiple services and notifying stakeholders."
  tags:
    - product
    - reckitt
    - snowflake
    - slack
    - sap
capability:
  exposes:
    - type: mcp
      namespace: product
      port: 8080
      tools:
        - name: product-cost-optimization-pipeline
          description: "Orchestrates product cost optimization pipeline across consumer health and hygiene products systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "snowflake.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "slack.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "sap.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: snowflake
      baseUri: "https://reckitt.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: snowflake-resource
          path: "/api/product"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: slack
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token"
      resources:
        - name: slack-resource
          path: "/api/product"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: sap
      baseUri: "https://reckitt-erp.s4hana.ondemand.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.sap_token"
      resources:
        - name: sap-resource
          path: "/api/product"
          operations:
            - name: execute-3
              method: POST

Orchestrates product counterfeit detection pipeline across consumer health and hygiene products systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Product Counterfeit Detection Pipeline"
  description: "Orchestrates product counterfeit detection pipeline across consumer health and hygiene products systems, coordinating multiple services and notifying stakeholders."
  tags:
    - product
    - reckitt
    - datadog
    - reckitt
    - salesforce
capability:
  exposes:
    - type: mcp
      namespace: product
      port: 8080
      tools:
        - name: product-counterfeit-detection-pipeline
          description: "Orchestrates product counterfeit detection pipeline across consumer health and hygiene products systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "datadog.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "reckitt.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "salesforce.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: datadog
      baseUri: "https://api.datadoghq.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.datadog_api_key"
      resources:
        - name: datadog-resource
          path: "/api/product"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: reckitt
      baseUri: "https://api.reckitt.com/v2"
      authentication:
        type: bearer
        token: "$secrets.reckitt_api_token"
      resources:
        - name: reckitt-resource
          path: "/api/product"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: salesforce
      baseUri: "https://reckitt.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_access_token"
      resources:
        - name: salesforce-resource
          path: "/api/product"
          operations:
            - name: execute-3
              method: POST

Orchestrates product formulation change pipeline across consumer health and hygiene products systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Product Formulation Change Pipeline"
  description: "Orchestrates product formulation change pipeline across consumer health and hygiene products systems, coordinating multiple services and notifying stakeholders."
  tags:
    - product
    - reckitt
    - sap
    - teams
    - jira
capability:
  exposes:
    - type: mcp
      namespace: product
      port: 8080
      tools:
        - name: product-formulation-change-pipeline
          description: "Orchestrates product formulation change pipeline across consumer health and hygiene products systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "sap.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "teams.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "jira.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: sap
      baseUri: "https://reckitt-erp.s4hana.ondemand.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.sap_token"
      resources:
        - name: sap-resource
          path: "/api/product"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: teams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.teams_token"
      resources:
        - name: teams-resource
          path: "/api/product"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: jira
      baseUri: "https://reckitt.atlassian.net/rest/api/3"
      authentication:
        type: bearer
        token: "$secrets.jira_token"
      resources:
        - name: jira-resource
          path: "/api/product"
          operations:
            - name: execute-3
              method: POST

Retrieves product formulation lookup data from the Reckitt consumer health and hygiene products systems.

naftiko: "0.5"
info:
  label: "Product Formulation Lookup"
  description: "Retrieves product formulation lookup data from the Reckitt consumer health and hygiene products systems."
  tags:
    - product
    - reckitt
    - lookup
capability:
  exposes:
    - type: mcp
      namespace: product
      port: 8080
      tools:
        - name: product-formulation-lookup
          description: "Retrieves product formulation lookup data from the Reckitt consumer health and hygiene products systems."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The input id."
          call: "reckitt.product-formulation-lookup"
          with:
            input_id: "{{input_id}}"
          outputParameters:
            - name: result
              type: string
              mapping: "$.data"
            - name: status
              type: string
              mapping: "$.status"
  consumes:
    - type: http
      namespace: reckitt
      baseUri: "https://api.reckitt.com/v2"
      authentication:
        type: bearer
        token: "$secrets.reckitt_api_token"
      resources:
        - name: resource
          path: "/product/formulation/lookup/{{input_id}}"
          inputParameters:
            - name: input_id
              in: path
          operations:
            - name: product-formulation-lookup
              method: GET

Orchestrates product launch readiness pipeline across consumer health and hygiene products systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Product Launch Readiness Pipeline"
  description: "Orchestrates product launch readiness pipeline across consumer health and hygiene products systems, coordinating multiple services and notifying stakeholders."
  tags:
    - product
    - reckitt
    - confluence
    - datadog
    - reckitt
capability:
  exposes:
    - type: mcp
      namespace: product
      port: 8080
      tools:
        - name: product-launch-readiness-pipeline
          description: "Orchestrates product launch readiness pipeline across consumer health and hygiene products systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "confluence.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "datadog.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "reckitt.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: confluence
      baseUri: "https://reckitt.atlassian.net/wiki/rest/api"
      authentication:
        type: bearer
        token: "$secrets.confluence_token"
      resources:
        - name: confluence-resource
          path: "/api/product"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: datadog
      baseUri: "https://api.datadoghq.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.datadog_api_key"
      resources:
        - name: datadog-resource
          path: "/api/product"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: reckitt
      baseUri: "https://api.reckitt.com/v2"
      authentication:
        type: bearer
        token: "$secrets.reckitt_api_token"
      resources:
        - name: reckitt-resource
          path: "/api/product"
          operations:
            - name: execute-3
              method: POST

Orchestrates product lifecycle management pipeline across consumer health and hygiene products systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Product Lifecycle Management Pipeline"
  description: "Orchestrates product lifecycle management pipeline across consumer health and hygiene products systems, coordinating multiple services and notifying stakeholders."
  tags:
    - product
    - reckitt
    - snowflake
    - slack
    - sap
capability:
  exposes:
    - type: mcp
      namespace: product
      port: 8080
      tools:
        - name: product-lifecycle-management-pipeline
          description: "Orchestrates product lifecycle management pipeline across consumer health and hygiene products systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "snowflake.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "slack.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "sap.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: snowflake
      baseUri: "https://reckitt.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: snowflake-resource
          path: "/api/product"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: slack
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token"
      resources:
        - name: slack-resource
          path: "/api/product"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: sap
      baseUri: "https://reckitt-erp.s4hana.ondemand.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.sap_token"
      resources:
        - name: sap-resource
          path: "/api/product"
          operations:
            - name: execute-3
              method: POST

Retrieves product packaging specification data from the Reckitt consumer health and hygiene products systems.

naftiko: "0.5"
info:
  label: "Product Packaging Specification"
  description: "Retrieves product packaging specification data from the Reckitt consumer health and hygiene products systems."
  tags:
    - product
    - reckitt
    - specification
capability:
  exposes:
    - type: mcp
      namespace: product
      port: 8080
      tools:
        - name: product-packaging-specification
          description: "Retrieves product packaging specification data from the Reckitt consumer health and hygiene products systems."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The input id."
          call: "reckitt.product-packaging-specification"
          with:
            input_id: "{{input_id}}"
          outputParameters:
            - name: result
              type: string
              mapping: "$.data"
            - name: status
              type: string
              mapping: "$.status"
  consumes:
    - type: http
      namespace: reckitt
      baseUri: "https://api.reckitt.com/v2"
      authentication:
        type: bearer
        token: "$secrets.reckitt_api_token"
      resources:
        - name: resource
          path: "/product/packaging/specification/{{input_id}}"
          inputParameters:
            - name: input_id
              in: path
          operations:
            - name: product-packaging-specification
              method: GET

Initiates a product recall workflow by logging in SAP, creating a ServiceNow major incident, notifying leadership via Microsoft Teams, and updating the customer communication in Zendesk.

naftiko: "0.5"
info:
  label: "Product Recall Notification Orchestrator"
  description: "Initiates a product recall workflow by logging in SAP, creating a ServiceNow major incident, notifying leadership via Microsoft Teams, and updating the customer communication in Zendesk."
  tags:
    - quality
    - recall
    - sap
    - servicenow
    - microsoft-teams
    - zendesk
capability:
  exposes:
    - type: mcp
      namespace: quality-recall
      port: 8080
      tools:
        - name: initiate-recall
          description: "Given a material number and batch, initiate a product recall across SAP, ServiceNow, Microsoft Teams, and Zendesk."
          inputParameters:
            - name: material_number
              in: body
              type: string
              description: "The SAP material number being recalled."
            - name: batch_number
              in: body
              type: string
              description: "The production batch number."
            - name: recall_reason
              in: body
              type: string
              description: "The reason for the recall."
          steps:
            - name: create-sap-notification
              type: call
              call: "sap.create-quality-notification"
              with:
                material_number: "{{material_number}}"
                batch: "{{batch_number}}"
                notification_type: "Q3"
                description: "Product recall: {{recall_reason}}"
            - name: create-major-incident
              type: call
              call: "servicenow.create-incident"
              with:
                short_description: "Product recall: {{material_number}} batch {{batch_number}}"
                priority: "1"
                category: "product_recall"
                assigned_group: "Quality_Crisis"
                description: "Recall reason: {{recall_reason}}. SAP notification: {{create-sap-notification.notification_id}}."
            - name: notify-leadership
              type: call
              call: "msteams.send-channel-message"
              with:
                team_id: "executive_team"
                channel: "Crisis"
                text: "PRODUCT RECALL: Material {{material_number}}, batch {{batch_number}}. Reason: {{recall_reason}}. Incident: {{create-major-incident.number}}."
            - name: create-zendesk-macro
              type: call
              call: "zendesk.create-ticket"
              with:
                subject: "Product Recall Notice: {{material_number}}"
                description: "We are initiating a voluntary recall for batch {{batch_number}} of product {{material_number}}. Reason: {{recall_reason}}."
                type: "task"
                priority: "urgent"
  consumes:
    - type: http
      namespace: sap
      baseUri: "https://reckitt-s4.sap.com/sap/opu/odata/sap/QM_NOTIFICATION_SRV"
      authentication:
        type: basic
        username: "$secrets.sap_user"
        password: "$secrets.sap_password"
      resources:
        - name: notifications
          path: "/QualityNotifications"
          operations:
            - name: create-quality-notification
              method: POST
    - type: http
      namespace: servicenow
      baseUri: "https://reckitt.service-now.com/api/now"
      authentication:
        type: basic
        username: "$secrets.servicenow_user"
        password: "$secrets.servicenow_password"
      resources:
        - name: incidents
          path: "/table/incident"
          operations:
            - name: create-incident
              method: POST
    - type: http
      namespace: msteams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: channel-messages
          path: "/teams/{{team_id}}/channels/{{channel}}/messages"
          inputParameters:
            - name: team_id
              in: path
            - name: channel
              in: path
          operations:
            - name: send-channel-message
              method: POST
    - type: http
      namespace: zendesk
      baseUri: "https://reckitt.zendesk.com/api/v2"
      authentication:
        type: basic
        username: "$secrets.zendesk_user"
        password: "$secrets.zendesk_api_token"
      resources:
        - name: tickets
          path: "/tickets"
          operations:
            - name: create-ticket
              method: POST

Orchestrates product regulatory approval pipeline across consumer health and hygiene products systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Product Regulatory Approval Pipeline"
  description: "Orchestrates product regulatory approval pipeline across consumer health and hygiene products systems, coordinating multiple services and notifying stakeholders."
  tags:
    - product
    - reckitt
    - jira
    - confluence
    - datadog
capability:
  exposes:
    - type: mcp
      namespace: product
      port: 8080
      tools:
        - name: product-regulatory-approval-pipeline
          description: "Orchestrates product regulatory approval pipeline across consumer health and hygiene products systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "jira.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "confluence.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "datadog.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: jira
      baseUri: "https://reckitt.atlassian.net/rest/api/3"
      authentication:
        type: bearer
        token: "$secrets.jira_token"
      resources:
        - name: jira-resource
          path: "/api/product"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: confluence
      baseUri: "https://reckitt.atlassian.net/wiki/rest/api"
      authentication:
        type: bearer
        token: "$secrets.confluence_token"
      resources:
        - name: confluence-resource
          path: "/api/product"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: datadog
      baseUri: "https://api.datadoghq.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.datadog_api_key"
      resources:
        - name: datadog-resource
          path: "/api/product"
          operations:
            - name: execute-3
              method: POST

Retrieves product regulatory status data from the Reckitt consumer health and hygiene products systems.

naftiko: "0.5"
info:
  label: "Product Regulatory Status"
  description: "Retrieves product regulatory status data from the Reckitt consumer health and hygiene products systems."
  tags:
    - product
    - reckitt
    - status
capability:
  exposes:
    - type: mcp
      namespace: product
      port: 8080
      tools:
        - name: product-regulatory-status
          description: "Retrieves product regulatory status data from the Reckitt consumer health and hygiene products systems."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The input id."
          call: "reckitt.product-regulatory-status"
          with:
            input_id: "{{input_id}}"
          outputParameters:
            - name: result
              type: string
              mapping: "$.data"
            - name: status
              type: string
              mapping: "$.status"
  consumes:
    - type: http
      namespace: reckitt
      baseUri: "https://api.reckitt.com/v2"
      authentication:
        type: bearer
        token: "$secrets.reckitt_api_token"
      resources:
        - name: resource
          path: "/product/regulatory/status/{{input_id}}"
          inputParameters:
            - name: input_id
              in: path
          operations:
            - name: product-regulatory-status
              method: GET

Retrieves product safety data sheet lookup data from the Reckitt consumer health and hygiene products systems.

naftiko: "0.5"
info:
  label: "Product Safety Data Sheet Lookup"
  description: "Retrieves product safety data sheet lookup data from the Reckitt consumer health and hygiene products systems."
  tags:
    - product
    - reckitt
    - lookup
capability:
  exposes:
    - type: mcp
      namespace: product
      port: 8080
      tools:
        - name: product-safety-data-sheet-lookup
          description: "Retrieves product safety data sheet lookup data from the Reckitt consumer health and hygiene products systems."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The input id."
          call: "reckitt.product-safety-data-sheet-lookup"
          with:
            input_id: "{{input_id}}"
          outputParameters:
            - name: result
              type: string
              mapping: "$.data"
            - name: status
              type: string
              mapping: "$.status"
  consumes:
    - type: http
      namespace: reckitt
      baseUri: "https://api.reckitt.com/v2"
      authentication:
        type: bearer
        token: "$secrets.reckitt_api_token"
      resources:
        - name: resource
          path: "/product/safety/data/sheet/lookup/{{input_id}}"
          inputParameters:
            - name: input_id
              in: path
          operations:
            - name: product-safety-data-sheet-lookup
              method: GET

Retrieves product shelf life lookup data from the Reckitt consumer health and hygiene products systems.

naftiko: "0.5"
info:
  label: "Product Shelf Life Lookup"
  description: "Retrieves product shelf life lookup data from the Reckitt consumer health and hygiene products systems."
  tags:
    - product
    - reckitt
    - lookup
capability:
  exposes:
    - type: mcp
      namespace: product
      port: 8080
      tools:
        - name: product-shelf-life-lookup
          description: "Retrieves product shelf life lookup data from the Reckitt consumer health and hygiene products systems."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The input id."
          call: "reckitt.product-shelf-life-lookup"
          with:
            input_id: "{{input_id}}"
          outputParameters:
            - name: result
              type: string
              mapping: "$.data"
            - name: status
              type: string
              mapping: "$.status"
  consumes:
    - type: http
      namespace: reckitt
      baseUri: "https://api.reckitt.com/v2"
      authentication:
        type: bearer
        token: "$secrets.reckitt_api_token"
      resources:
        - name: resource
          path: "/product/shelf/life/lookup/{{input_id}}"
          inputParameters:
            - name: input_id
              in: path
          operations:
            - name: product-shelf-life-lookup
              method: GET

When a production line goes down, logs the event in SAP, creates a ServiceNow P1 incident, notifies the plant manager via Microsoft Teams, and records the downtime in Datadog.

naftiko: "0.5"
info:
  label: "Production Line Downtime Orchestrator"
  description: "When a production line goes down, logs the event in SAP, creates a ServiceNow P1 incident, notifies the plant manager via Microsoft Teams, and records the downtime in Datadog."
  tags:
    - manufacturing
    - production
    - sap
    - servicenow
    - microsoft-teams
    - datadog
capability:
  exposes:
    - type: mcp
      namespace: mfg-downtime
      port: 8080
      tools:
        - name: report-downtime
          description: "Given a plant code and production line ID, log the downtime event across SAP, ServiceNow, Microsoft Teams, and Datadog."
          inputParameters:
            - name: plant_code
              in: body
              type: string
              description: "The manufacturing plant code."
            - name: line_id
              in: body
              type: string
              description: "The production line identifier."
            - name: reason
              in: body
              type: string
              description: "The downtime reason code."
          steps:
            - name: log-sap-event
              type: call
              call: "sap.create-maintenance-order"
              with:
                plant: "{{plant_code}}"
                equipment: "{{line_id}}"
                description: "Unplanned downtime: {{reason}}"
                order_type: "PM01"
            - name: create-p1-incident
              type: call
              call: "servicenow.create-incident"
              with:
                short_description: "Production line {{line_id}} down at plant {{plant_code}}"
                priority: "1"
                category: "production_downtime"
                assigned_group: "Plant_Maintenance_{{plant_code}}"
                description: "Line {{line_id}} is down. Reason: {{reason}}. SAP order: {{log-sap-event.order_number}}."
            - name: notify-plant-manager
              type: call
              call: "msteams.send-channel-message"
              with:
                team_id: "plant_{{plant_code}}"
                channel: "Production"
                text: "ALERT: Line {{line_id}} is DOWN. Reason: {{reason}}. Incident: {{create-p1-incident.number}}. SAP order: {{log-sap-event.order_number}}."
            - name: record-metric
              type: call
              call: "datadog.send-event"
              with:
                title: "Production downtime: {{line_id}} at {{plant_code}}"
                text: "Reason: {{reason}}, Incident: {{create-p1-incident.number}}"
                alert_type: "error"
                tags: "plant:{{plant_code}},line:{{line_id}}"
  consumes:
    - type: http
      namespace: sap
      baseUri: "https://reckitt-s4.sap.com/sap/opu/odata/sap/API_MAINTORDER"
      authentication:
        type: basic
        username: "$secrets.sap_user"
        password: "$secrets.sap_password"
      resources:
        - name: maintenance-orders
          path: "/MaintenanceOrder"
          operations:
            - name: create-maintenance-order
              method: POST
    - type: http
      namespace: servicenow
      baseUri: "https://reckitt.service-now.com/api/now"
      authentication:
        type: basic
        username: "$secrets.servicenow_user"
        password: "$secrets.servicenow_password"
      resources:
        - name: incidents
          path: "/table/incident"
          operations:
            - name: create-incident
              method: POST
    - type: http
      namespace: msteams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: channel-messages
          path: "/teams/{{team_id}}/channels/{{channel}}/messages"
          inputParameters:
            - name: team_id
              in: path
            - name: channel
              in: path
          operations:
            - name: send-channel-message
              method: POST
    - type: http
      namespace: datadog
      baseUri: "https://api.datadoghq.com/api/v1"
      authentication:
        type: apiKey
        key: "$secrets.datadog_api_key"
      resources:
        - name: events
          path: "/events"
          operations:
            - name: send-event
              method: POST

Orchestrates raw material price hedging pipeline across consumer health and hygiene products systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Raw Material Price Hedging Pipeline"
  description: "Orchestrates raw material price hedging pipeline across consumer health and hygiene products systems, coordinating multiple services and notifying stakeholders."
  tags:
    - raw
    - reckitt
    - slack
    - sap
    - teams
capability:
  exposes:
    - type: mcp
      namespace: raw
      port: 8080
      tools:
        - name: raw-material-price-hedging-pipeline
          description: "Orchestrates raw material price hedging pipeline across consumer health and hygiene products systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "slack.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "sap.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "teams.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: slack
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token"
      resources:
        - name: slack-resource
          path: "/api/raw"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: sap
      baseUri: "https://reckitt-erp.s4hana.ondemand.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.sap_token"
      resources:
        - name: sap-resource
          path: "/api/raw"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: teams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.teams_token"
      resources:
        - name: teams-resource
          path: "/api/raw"
          operations:
            - name: execute-3
              method: POST

Orchestrates raw material sourcing optimization pipeline across consumer health and hygiene products systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Raw Material Sourcing Optimization Pipeline"
  description: "Orchestrates raw material sourcing optimization pipeline across consumer health and hygiene products systems, coordinating multiple services and notifying stakeholders."
  tags:
    - raw
    - reckitt
    - datadog
    - reckitt
    - salesforce
capability:
  exposes:
    - type: mcp
      namespace: raw
      port: 8080
      tools:
        - name: raw-material-sourcing-optimization-pipeline
          description: "Orchestrates raw material sourcing optimization pipeline across consumer health and hygiene products systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "datadog.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "reckitt.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "salesforce.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: datadog
      baseUri: "https://api.datadoghq.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.datadog_api_key"
      resources:
        - name: datadog-resource
          path: "/api/raw"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: reckitt
      baseUri: "https://api.reckitt.com/v2"
      authentication:
        type: bearer
        token: "$secrets.reckitt_api_token"
      resources:
        - name: reckitt-resource
          path: "/api/raw"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: salesforce
      baseUri: "https://reckitt.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_access_token"
      resources:
        - name: salesforce-resource
          path: "/api/raw"
          operations:
            - name: execute-3
              method: POST

Retrieves raw material specification lookup data from the Reckitt consumer health and hygiene products systems.

naftiko: "0.5"
info:
  label: "Raw Material Specification Lookup"
  description: "Retrieves raw material specification lookup data from the Reckitt consumer health and hygiene products systems."
  tags:
    - raw
    - reckitt
    - lookup
capability:
  exposes:
    - type: mcp
      namespace: raw
      port: 8080
      tools:
        - name: raw-material-specification-lookup
          description: "Retrieves raw material specification lookup data from the Reckitt consumer health and hygiene products systems."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The input id."
          call: "reckitt.raw-material-specification-lookup"
          with:
            input_id: "{{input_id}}"
          outputParameters:
            - name: result
              type: string
              mapping: "$.data"
            - name: status
              type: string
              mapping: "$.status"
  consumes:
    - type: http
      namespace: reckitt
      baseUri: "https://api.reckitt.com/v2"
      authentication:
        type: bearer
        token: "$secrets.reckitt_api_token"
      resources:
        - name: resource
          path: "/raw/material/specification/lookup/{{input_id}}"
          inputParameters:
            - name: input_id
              in: path
          operations:
            - name: raw-material-specification-lookup
              method: GET

When a regulatory change is detected, creates a Confluence page with the change summary, opens a ServiceNow change request, and notifies the compliance team via Microsoft Teams.

naftiko: "0.5"
info:
  label: "Regulatory Compliance Document Workflow"
  description: "When a regulatory change is detected, creates a Confluence page with the change summary, opens a ServiceNow change request, and notifies the compliance team via Microsoft Teams."
  tags:
    - compliance
    - regulatory
    - confluence
    - servicenow
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: compliance-regulatory
      port: 8080
      tools:
        - name: process-regulatory-change
          description: "Given a regulatory change reference and description, create a Confluence page, open a ServiceNow change request, and alert the compliance team."
          inputParameters:
            - name: regulation_ref
              in: body
              type: string
              description: "The regulatory reference identifier."
            - name: change_summary
              in: body
              type: string
              description: "Summary of the regulatory change."
            - name: effective_date
              in: body
              type: string
              description: "Effective date in YYYY-MM-DD format."
          steps:
            - name: create-page
              type: call
              call: "confluence.create-page"
              with:
                space_key: "COMPLIANCE"
                title: "Regulatory Change: {{regulation_ref}} — Effective {{effective_date}}"
                body: "{{change_summary}}"
            - name: open-change-request
              type: call
              call: "servicenow.create-change-request"
              with:
                short_description: "Regulatory change: {{regulation_ref}}"
                description: "{{change_summary}}. Effective date: {{effective_date}}. Confluence: {{create-page.url}}"
                category: "regulatory_compliance"
                assigned_group: "Compliance_Team"
            - name: notify-team
              type: call
              call: "msteams.send-channel-message"
              with:
                team_id: "compliance_team"
                channel: "Regulatory"
                text: "New regulatory change: {{regulation_ref}} effective {{effective_date}}. Change request: {{open-change-request.number}}. Details: {{create-page.url}}"
  consumes:
    - type: http
      namespace: confluence
      baseUri: "https://reckitt.atlassian.net/wiki/rest/api"
      authentication:
        type: basic
        username: "$secrets.confluence_user"
        password: "$secrets.confluence_api_token"
      resources:
        - name: pages
          path: "/content"
          operations:
            - name: create-page
              method: POST
    - type: http
      namespace: servicenow
      baseUri: "https://reckitt.service-now.com/api/now"
      authentication:
        type: basic
        username: "$secrets.servicenow_user"
        password: "$secrets.servicenow_password"
      resources:
        - name: change-requests
          path: "/table/change_request"
          operations:
            - name: create-change-request
              method: POST
    - type: http
      namespace: msteams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: channel-messages
          path: "/teams/{{team_id}}/channels/{{channel}}/messages"
          inputParameters:
            - name: team_id
              in: path
            - name: channel
              in: path
          operations:
            - name: send-channel-message
              method: POST

Retrieves retail distribution coverage lookup data from the Reckitt consumer health and hygiene products systems.

naftiko: "0.5"
info:
  label: "Retail Distribution Coverage Lookup"
  description: "Retrieves retail distribution coverage lookup data from the Reckitt consumer health and hygiene products systems."
  tags:
    - retail
    - reckitt
    - lookup
capability:
  exposes:
    - type: mcp
      namespace: retail
      port: 8080
      tools:
        - name: retail-distribution-coverage-lookup
          description: "Retrieves retail distribution coverage lookup data from the Reckitt consumer health and hygiene products systems."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The input id."
          call: "reckitt.retail-distribution-coverage-lookup"
          with:
            input_id: "{{input_id}}"
          outputParameters:
            - name: result
              type: string
              mapping: "$.data"
            - name: status
              type: string
              mapping: "$.status"
  consumes:
    - type: http
      namespace: reckitt
      baseUri: "https://api.reckitt.com/v2"
      authentication:
        type: bearer
        token: "$secrets.reckitt_api_token"
      resources:
        - name: resource
          path: "/retail/distribution/coverage/lookup/{{input_id}}"
          inputParameters:
            - name: input_id
              in: path
          operations:
            - name: retail-distribution-coverage-lookup
              method: GET

Orchestrates retail execution monitoring pipeline across consumer health and hygiene products systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Retail Execution Monitoring Pipeline"
  description: "Orchestrates retail execution monitoring pipeline across consumer health and hygiene products systems, coordinating multiple services and notifying stakeholders."
  tags:
    - retail
    - reckitt
    - slack
    - sap
    - teams
capability:
  exposes:
    - type: mcp
      namespace: retail
      port: 8080
      tools:
        - name: retail-execution-monitoring-pipeline
          description: "Orchestrates retail execution monitoring pipeline across consumer health and hygiene products systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "slack.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "sap.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "teams.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: slack
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token"
      resources:
        - name: slack-resource
          path: "/api/retail"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: sap
      baseUri: "https://reckitt-erp.s4hana.ondemand.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.sap_token"
      resources:
        - name: sap-resource
          path: "/api/retail"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: teams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.teams_token"
      resources:
        - name: teams-resource
          path: "/api/retail"
          operations:
            - name: execute-3
              method: POST

Orchestrates retailer compliance audit pipeline across consumer health and hygiene products systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Retailer Compliance Audit Pipeline"
  description: "Orchestrates retailer compliance audit pipeline across consumer health and hygiene products systems, coordinating multiple services and notifying stakeholders."
  tags:
    - retailer
    - reckitt
    - servicenow
    - snowflake
    - slack
capability:
  exposes:
    - type: mcp
      namespace: retailer
      port: 8080
      tools:
        - name: retailer-compliance-audit-pipeline
          description: "Orchestrates retailer compliance audit pipeline across consumer health and hygiene products systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "servicenow.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "snowflake.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "slack.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: servicenow
      baseUri: "https://reckitt.service-now.com/api/now"
      authentication:
        type: bearer
        token: "$secrets.servicenow_token"
      resources:
        - name: servicenow-resource
          path: "/api/retailer"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: snowflake
      baseUri: "https://reckitt.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: snowflake-resource
          path: "/api/retailer"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: slack
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token"
      resources:
        - name: slack-resource
          path: "/api/retailer"
          operations:
            - name: execute-3
              method: POST

Orchestrates retailer joint business planning pipeline across consumer health and hygiene products systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Retailer Joint Business Planning Pipeline"
  description: "Orchestrates retailer joint business planning pipeline across consumer health and hygiene products systems, coordinating multiple services and notifying stakeholders."
  tags:
    - retailer
    - reckitt
    - sap
    - teams
    - jira
capability:
  exposes:
    - type: mcp
      namespace: retailer
      port: 8080
      tools:
        - name: retailer-joint-business-planning-pipeline
          description: "Orchestrates retailer joint business planning pipeline across consumer health and hygiene products systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "sap.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "teams.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "jira.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: sap
      baseUri: "https://reckitt-erp.s4hana.ondemand.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.sap_token"
      resources:
        - name: sap-resource
          path: "/api/retailer"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: teams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.teams_token"
      resources:
        - name: teams-resource
          path: "/api/retailer"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: jira
      baseUri: "https://reckitt.atlassian.net/rest/api/3"
      authentication:
        type: bearer
        token: "$secrets.jira_token"
      resources:
        - name: jira-resource
          path: "/api/retailer"
          operations:
            - name: execute-3
              method: POST

Retrieves a Salesforce lead record by ID, returning contact info, lead source, status, and assigned owner.

naftiko: "0.5"
info:
  label: "Salesforce Lead Lookup"
  description: "Retrieves a Salesforce lead record by ID, returning contact info, lead source, status, and assigned owner."
  tags:
    - sales
    - crm
    - salesforce
capability:
  exposes:
    - type: mcp
      namespace: sales-crm
      port: 8080
      tools:
        - name: get-lead
          description: "Look up a Salesforce lead by ID. Returns name, email, company, lead source, status, and owner."
          inputParameters:
            - name: lead_id
              in: body
              type: string
              description: "The Salesforce lead record ID."
          call: "salesforce.get-lead"
          with:
            lead_id: "{{lead_id}}"
  consumes:
    - type: http
      namespace: salesforce
      baseUri: "https://reckitt.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token"
      resources:
        - name: leads
          path: "/sobjects/Lead/{{lead_id}}"
          inputParameters:
            - name: lead_id
              in: path
          operations:
            - name: get-lead
              method: GET

When a SAP Ariba requisition exceeds a spend threshold, routes for manager approval via Workday and notifies the requestor in Microsoft Teams.

naftiko: "0.5"
info:
  label: "SAP Ariba Requisition Approval Pipeline"
  description: "When a SAP Ariba requisition exceeds a spend threshold, routes for manager approval via Workday and notifies the requestor in Microsoft Teams."
  tags:
    - procurement
    - ariba
    - sap-ariba
    - workday
    - microsoft-teams
    - approval
capability:
  exposes:
    - type: mcp
      namespace: procurement-approval
      port: 8080
      tools:
        - name: route-requisition-approval
          description: "Given an Ariba requisition ID and requestor employee ID, check amount, resolve approver from Workday, and notify via Microsoft Teams."
          inputParameters:
            - name: requisition_id
              in: body
              type: string
              description: "The SAP Ariba requisition identifier."
            - name: requestor_employee_id
              in: body
              type: string
              description: "The Workday employee ID of the requestor."
            - name: spend_amount
              in: body
              type: number
              description: "The total spend amount on the requisition."
          steps:
            - name: get-requisition
              type: call
              call: "ariba.get-requisition"
              with:
                requisition_id: "{{requisition_id}}"
            - name: get-requestor
              type: call
              call: "workday.get-worker"
              with:
                worker_id: "{{requestor_employee_id}}"
            - name: get-manager
              type: call
              call: "workday.get-worker"
              with:
                worker_id: "{{get-requestor.manager_id}}"
            - name: notify-approver
              type: call
              call: "msteams.send-message"
              with:
                recipient_upn: "{{get-manager.work_email}}"
                text: "Approval Required: Ariba requisition {{requisition_id}} from {{get-requestor.full_name}} for ${{spend_amount}}."
  consumes:
    - type: http
      namespace: ariba
      baseUri: "https://openapi.ariba.com/api/purchase-req/v1"
      authentication:
        type: bearer
        token: "$secrets.ariba_token"
      resources:
        - name: requisitions
          path: "/requisitions/{{requisition_id}}"
          inputParameters:
            - name: requisition_id
              in: path
          operations:
            - name: get-requisition
              method: GET
    - 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: 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

Retrieves a travel booking from SAP Concur by trip ID, returning itinerary details, approval status, and estimated cost.

naftiko: "0.5"
info:
  label: "SAP Concur Travel Booking Lookup"
  description: "Retrieves a travel booking from SAP Concur by trip ID, returning itinerary details, approval status, and estimated cost."
  tags:
    - travel
    - expense
    - sap-concur
capability:
  exposes:
    - type: mcp
      namespace: travel-concur
      port: 8080
      tools:
        - name: get-travel-booking
          description: "Look up a SAP Concur travel booking by trip ID. Returns itinerary, approval status, and cost estimate."
          inputParameters:
            - name: trip_id
              in: body
              type: string
              description: "The SAP Concur trip ID."
          call: "concur.get-trip"
          with:
            trip_id: "{{trip_id}}"
  consumes:
    - type: http
      namespace: concur
      baseUri: "https://us.api.concursolutions.com/api/v3.0"
      authentication:
        type: bearer
        token: "$secrets.concur_token"
      resources:
        - name: trips
          path: "/travel/trips/{{trip_id}}"
          inputParameters:
            - name: trip_id
              in: path
          operations:
            - name: get-trip
              method: GET

Queries SAP HANA for current inventory levels for a material across all plants.

naftiko: "0.5"
info:
  label: "SAP HANA Inventory Snapshot"
  description: "Queries SAP HANA for current inventory levels for a material across all plants."
  tags:
    - supply-chain
    - inventory
    - sap-hana
capability:
  exposes:
    - type: mcp
      namespace: supply-chain-inventory
      port: 8080
      tools:
        - name: get-inventory-levels
          description: "Query SAP HANA for inventory levels across all plants for a given material number."
          inputParameters:
            - name: material_number
              in: body
              type: string
              description: "The SAP material number."
          call: "saphana.query-inventory"
          with:
            material_number: "{{material_number}}"
  consumes:
    - type: http
      namespace: saphana
      baseUri: "https://reckitt-hana.sap.com/sap/opu/odata/sap/INVENTORY_SRV"
      authentication:
        type: basic
        username: "$secrets.sap_hana_user"
        password: "$secrets.sap_hana_password"
      resources:
        - name: stock
          path: "/MaterialStock?$filter=Material eq '{{material_number}}'"
          inputParameters:
            - name: material_number
              in: path
          operations:
            - name: query-inventory
              method: GET

Looks up a SAP S/4HANA purchase order by number and returns header status, vendor, total value, and open line items for procurement and finance teams.

naftiko: "0.5"
info:
  label: "SAP Purchase Order Status"
  description: "Looks up a SAP S/4HANA purchase order by number and returns header status, vendor, total value, and open line items for procurement and finance teams."
  tags:
    - procurement
    - erp
    - sap
    - sap-s4hana
    - purchase-order
capability:
  exposes:
    - type: mcp
      namespace: erp-procurement
      port: 8080
      tools:
        - name: get-purchase-order
          description: "Look up a SAP S/4HANA purchase order by PO number. Returns header status, vendor name, total value, currency, and delivery date."
          inputParameters:
            - name: po_number
              in: body
              type: string
              description: "The SAP purchase order number (10-digit)."
          call: "sap.get-po"
          with:
            po_number: "{{po_number}}"
          outputParameters:
            - name: status
              type: string
              mapping: "$.d.OverallStatus"
            - name: vendor
              type: string
              mapping: "$.d.Supplier.CompanyName"
            - name: total_value
              type: string
              mapping: "$.d.TotalAmount"
            - name: currency
              type: string
              mapping: "$.d.TransactionCurrency"
            - name: delivery_date
              type: string
              mapping: "$.d.DeliveryDate"
  consumes:
    - type: http
      namespace: sap
      baseUri: "https://reckitt-s4.sap.com/sap/opu/odata/sap/MM_PUR_PO_MAINT_V2_SRV"
      authentication:
        type: basic
        username: "$secrets.sap_user"
        password: "$secrets.sap_password"
      inputParameters:
        - name: Accept
          in: header
          value: "application/json"
        - name: sap-client
          in: header
          value: "100"
      resources:
        - name: purchase-orders
          path: "/A_PurchaseOrder('{{po_number}}')"
          inputParameters:
            - name: po_number
              in: path
          operations:
            - name: get-po
              method: GET

Retrieves a material master record from SAP S/4HANA by material number, returning description, unit of measure, and material group.

naftiko: "0.5"
info:
  label: "SAP S/4HANA Material Master Lookup"
  description: "Retrieves a material master record from SAP S/4HANA by material number, returning description, unit of measure, and material group."
  tags:
    - erp
    - master-data
    - sap
    - sap-s4hana
capability:
  exposes:
    - type: mcp
      namespace: erp-materials
      port: 8080
      tools:
        - name: get-material
          description: "Look up a SAP S/4HANA material master by material number. Returns description, UoM, material group, and weight."
          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://reckitt-s4.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 a production order from SAP S/4HANA by order number, returning status, quantity, scheduled dates, and material details.

naftiko: "0.5"
info:
  label: "SAP S/4HANA Production Order Tracking"
  description: "Retrieves a production order from SAP S/4HANA by order number, returning status, quantity, scheduled dates, and material details."
  tags:
    - manufacturing
    - production
    - sap
    - sap-s4hana
capability:
  exposes:
    - type: mcp
      namespace: mfg-production
      port: 8080
      tools:
        - name: get-production-order
          description: "Look up a SAP S/4HANA production order. Returns status, planned quantity, scheduled start/finish, and material."
          inputParameters:
            - name: order_number
              in: body
              type: string
              description: "The SAP production order number."
          call: "sap.get-production-order"
          with:
            order_number: "{{order_number}}"
  consumes:
    - type: http
      namespace: sap
      baseUri: "https://reckitt-s4.sap.com/sap/opu/odata/sap/API_PRODUCTION_ORDERS"
      authentication:
        type: basic
        username: "$secrets.sap_user"
        password: "$secrets.sap_password"
      resources:
        - name: production-orders
          path: "/A_ProductionOrder('{{order_number}}')"
          inputParameters:
            - name: order_number
              in: path
          operations:
            - name: get-production-order
              method: GET

Retrieves a ServiceNow incident by number, returning priority, state, assigned group, and short description for IT support teams.

naftiko: "0.5"
info:
  label: "ServiceNow Incident Status"
  description: "Retrieves a ServiceNow incident by number, returning priority, state, assigned group, and short description for IT support teams."
  tags:
    - it-support
    - itsm
    - servicenow
capability:
  exposes:
    - type: mcp
      namespace: itsm
      port: 8080
      tools:
        - name: get-incident
          description: "Look up a ServiceNow incident by number. Returns priority, state, assigned group, and short description."
          inputParameters:
            - name: incident_number
              in: body
              type: string
              description: "The ServiceNow incident number (e.g. INC0012345)."
          call: "servicenow.get-incident"
          with:
            incident_number: "{{incident_number}}"
  consumes:
    - type: http
      namespace: servicenow
      baseUri: "https://reckitt.service-now.com/api/now"
      authentication:
        type: basic
        username: "$secrets.servicenow_user"
        password: "$secrets.servicenow_password"
      resources:
        - name: incidents
          path: "/table/incident?sysparm_query=number={{incident_number}}"
          inputParameters:
            - name: incident_number
              in: path
          operations:
            - name: get-incident
              method: GET

Retrieves document metadata and download URL from a SharePoint site by file path.

naftiko: "0.5"
info:
  label: "SharePoint Document Retrieval"
  description: "Retrieves document metadata and download URL from a SharePoint site by file path."
  tags:
    - collaboration
    - documents
    - sharepoint
capability:
  exposes:
    - type: mcp
      namespace: docs-sharepoint
      port: 8080
      tools:
        - name: get-document
          description: "Retrieve a SharePoint document by site ID and file path. Returns metadata, last modified date, and download URL."
          inputParameters:
            - name: site_id
              in: body
              type: string
              description: "The SharePoint site ID."
            - name: file_path
              in: body
              type: string
              description: "The file path within the document library."
          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

When a new product campaign is approved, creates scheduled posts on Instagram and Facebook, sets up Google Tag Manager tracking, and logs the campaign in Salesforce.

naftiko: "0.5"
info:
  label: "Social Media Campaign Launch Orchestrator"
  description: "When a new product campaign is approved, creates scheduled posts on Instagram and Facebook, sets up Google Tag Manager tracking, and logs the campaign in Salesforce."
  tags:
    - marketing
    - social-media
    - instagram
    - facebook
    - google-tag-manager
    - salesforce
capability:
  exposes:
    - type: mcp
      namespace: marketing-campaigns
      port: 8080
      tools:
        - name: launch-social-campaign
          description: "Given campaign details, create posts on Instagram and Facebook, configure GTM tracking, and log the campaign in Salesforce."
          inputParameters:
            - name: campaign_name
              in: body
              type: string
              description: "The marketing campaign name."
            - name: product_sku
              in: body
              type: string
              description: "The product SKU being promoted."
            - name: launch_date
              in: body
              type: string
              description: "Campaign launch date in YYYY-MM-DD format."
            - name: creative_url
              in: body
              type: string
              description: "URL of the approved creative asset."
          steps:
            - name: create-ig-post
              type: call
              call: "instagram.create-media"
              with:
                image_url: "{{creative_url}}"
                caption: "{{campaign_name}} — Shop now! #Reckitt"
                scheduled_publish_time: "{{launch_date}}T09:00:00Z"
            - name: create-fb-post
              type: call
              call: "facebook.create-post"
              with:
                message: "{{campaign_name}} — Discover our latest product!"
                link: "https://www.reckitt.com/products/{{product_sku}}"
                scheduled_publish_time: "{{launch_date}}T09:00:00Z"
            - name: setup-tracking
              type: call
              call: "gtm.create-tag"
              with:
                tag_name: "campaign_{{campaign_name}}"
                trigger: "page_view"
                utm_campaign: "{{campaign_name}}"
            - name: log-campaign
              type: call
              call: "salesforce.create-campaign"
              with:
                name: "{{campaign_name}}"
                type: "Social Media"
                start_date: "{{launch_date}}"
                status: "Planned"
  consumes:
    - type: http
      namespace: instagram
      baseUri: "https://graph.facebook.com/v18.0"
      authentication:
        type: bearer
        token: "$secrets.meta_access_token"
      resources:
        - name: media
          path: "/{{ig_user_id}}/media"
          operations:
            - name: create-media
              method: POST
    - type: http
      namespace: facebook
      baseUri: "https://graph.facebook.com/v18.0"
      authentication:
        type: bearer
        token: "$secrets.meta_access_token"
      resources:
        - name: posts
          path: "/{{page_id}}/feed"
          operations:
            - name: create-post
              method: POST
    - type: http
      namespace: gtm
      baseUri: "https://www.googleapis.com/tagmanager/v2"
      authentication:
        type: bearer
        token: "$secrets.google_tagmanager_token"
      resources:
        - name: tags
          path: "/accounts/{{account_id}}/containers/{{container_id}}/workspaces/{{workspace_id}}/tags"
          operations:
            - name: create-tag
              method: POST
    - type: http
      namespace: salesforce
      baseUri: "https://reckitt.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token"
      resources:
        - name: campaigns
          path: "/sobjects/Campaign"
          operations:
            - name: create-campaign
              method: POST

When a new supplier is approved in SAP Ariba, creates the vendor master in SAP S/4HANA, provisions a Box folder for contracts, and notifies procurement in Microsoft Teams.

naftiko: "0.5"
info:
  label: "Supplier Onboarding Pipeline"
  description: "When a new supplier is approved in SAP Ariba, creates the vendor master in SAP S/4HANA, provisions a Box folder for contracts, and notifies procurement in Microsoft Teams."
  tags:
    - procurement
    - supplier-management
    - sap-ariba
    - sap-s4hana
    - box
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: procurement-supplier
      port: 8080
      tools:
        - name: onboard-supplier
          description: "Given an Ariba supplier ID, create the vendor master in SAP, provision a Box contract folder, and notify procurement via Teams."
          inputParameters:
            - name: supplier_id
              in: body
              type: string
              description: "The SAP Ariba supplier ID."
            - name: buyer_email
              in: body
              type: string
              description: "The procurement buyer email for notifications."
          steps:
            - name: get-supplier
              type: call
              call: "ariba.get-supplier"
              with:
                supplier_id: "{{supplier_id}}"
            - name: create-vendor
              type: call
              call: "sap.create-vendor"
              with:
                vendor_name: "{{get-supplier.company_name}}"
                tax_id: "{{get-supplier.tax_id}}"
                country: "{{get-supplier.country}}"
            - name: provision-folder
              type: call
              call: "box.create-folder"
              with:
                folder_name: "Supplier_{{get-supplier.company_name}}"
                parent_folder_id: "supplier_contracts_root"
            - name: notify-buyer
              type: call
              call: "msteams.send-message"
              with:
                recipient_upn: "{{buyer_email}}"
                text: "Supplier {{get-supplier.company_name}} onboarded. SAP vendor: {{create-vendor.vendor_id}}. Contract folder: {{provision-folder.url}}."
  consumes:
    - type: http
      namespace: ariba
      baseUri: "https://openapi.ariba.com/api/supplier/v1"
      authentication:
        type: bearer
        token: "$secrets.ariba_token"
      resources:
        - name: suppliers
          path: "/suppliers/{{supplier_id}}"
          inputParameters:
            - name: supplier_id
              in: path
          operations:
            - name: get-supplier
              method: GET
    - type: http
      namespace: sap
      baseUri: "https://reckitt-s4.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"
          operations:
            - name: create-vendor
              method: POST
    - type: http
      namespace: box
      baseUri: "https://api.box.com/2.0"
      authentication:
        type: bearer
        token: "$secrets.box_token"
      resources:
        - name: folders
          path: "/folders"
          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

Extracts demand forecast data from SAP BW, transforms it, and pushes to Tableau for supply chain planning dashboards.

naftiko: "0.5"
info:
  label: "Supply Chain Demand Forecast Sync"
  description: "Extracts demand forecast data from SAP BW, transforms it, and pushes to Tableau for supply chain planning dashboards."
  tags:
    - supply-chain
    - forecasting
    - sap-bw
    - tableau
capability:
  exposes:
    - type: mcp
      namespace: supply-chain-forecast
      port: 8080
      tools:
        - name: sync-demand-forecast
          description: "Extract demand forecast from SAP BW for a product group and date range, then publish to Tableau for visualization."
          inputParameters:
            - name: product_group
              in: body
              type: string
              description: "The SAP product group code."
            - name: forecast_period
              in: body
              type: string
              description: "The forecast period in YYYY-MM format."
          steps:
            - name: extract-forecast
              type: call
              call: "sapbw.run-query"
              with:
                query_name: "DEMAND_FORECAST"
                product_group: "{{product_group}}"
                period: "{{forecast_period}}"
            - name: publish-to-tableau
              type: call
              call: "tableau.publish-datasource"
              with:
                datasource_name: "demand_forecast_{{product_group}}"
                data: "{{extract-forecast.results}}"
  consumes:
    - type: http
      namespace: sapbw
      baseUri: "https://reckitt-bw.sap.com/sap/bw/odata/v1"
      authentication:
        type: basic
        username: "$secrets.sap_bw_user"
        password: "$secrets.sap_bw_password"
      resources:
        - name: queries
          path: "/query/{{query_name}}"
          inputParameters:
            - name: query_name
              in: path
          operations:
            - name: run-query
              method: POST
    - type: http
      namespace: tableau
      baseUri: "https://reckitt.online.tableau.com/api/3.21"
      authentication:
        type: bearer
        token: "$secrets.tableau_token"
      resources:
        - name: datasources
          path: "/sites/{{site_id}}/datasources"
          operations:
            - name: publish-datasource
              method: POST

Orchestrates supply chain demand planning pipeline across consumer health and hygiene products systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Supply Chain Demand Planning Pipeline"
  description: "Orchestrates supply chain demand planning pipeline across consumer health and hygiene products systems, coordinating multiple services and notifying stakeholders."
  tags:
    - supply
    - reckitt
    - teams
    - jira
    - confluence
capability:
  exposes:
    - type: mcp
      namespace: supply
      port: 8080
      tools:
        - name: supply-chain-demand-planning-pipeline
          description: "Orchestrates supply chain demand planning pipeline across consumer health and hygiene products systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "teams.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "jira.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "confluence.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: teams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.teams_token"
      resources:
        - name: teams-resource
          path: "/api/supply"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: jira
      baseUri: "https://reckitt.atlassian.net/rest/api/3"
      authentication:
        type: bearer
        token: "$secrets.jira_token"
      resources:
        - name: jira-resource
          path: "/api/supply"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: confluence
      baseUri: "https://reckitt.atlassian.net/wiki/rest/api"
      authentication:
        type: bearer
        token: "$secrets.confluence_token"
      resources:
        - name: confluence-resource
          path: "/api/supply"
          operations:
            - name: execute-3
              method: POST

Orchestrates supply chain risk monitoring pipeline across consumer health and hygiene products systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Supply Chain Risk Monitoring Pipeline"
  description: "Orchestrates supply chain risk monitoring pipeline across consumer health and hygiene products systems, coordinating multiple services and notifying stakeholders."
  tags:
    - supply
    - reckitt
    - datadog
    - reckitt
    - salesforce
capability:
  exposes:
    - type: mcp
      namespace: supply
      port: 8080
      tools:
        - name: supply-chain-risk-monitoring-pipeline
          description: "Orchestrates supply chain risk monitoring pipeline across consumer health and hygiene products systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "datadog.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "reckitt.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "salesforce.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: datadog
      baseUri: "https://api.datadoghq.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.datadog_api_key"
      resources:
        - name: datadog-resource
          path: "/api/supply"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: reckitt
      baseUri: "https://api.reckitt.com/v2"
      authentication:
        type: bearer
        token: "$secrets.reckitt_api_token"
      resources:
        - name: reckitt-resource
          path: "/api/supply"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: salesforce
      baseUri: "https://reckitt.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_access_token"
      resources:
        - name: salesforce-resource
          path: "/api/supply"
          operations:
            - name: execute-3
              method: POST

Orchestrates sustainability packaging transition pipeline across consumer health and hygiene products systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Sustainability Packaging Transition Pipeline"
  description: "Orchestrates sustainability packaging transition pipeline across consumer health and hygiene products systems, coordinating multiple services and notifying stakeholders."
  tags:
    - sustainability
    - reckitt
    - slack
    - sap
    - teams
capability:
  exposes:
    - type: mcp
      namespace: sustainability
      port: 8080
      tools:
        - name: sustainability-packaging-transition-pipeline
          description: "Orchestrates sustainability packaging transition pipeline across consumer health and hygiene products systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "slack.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "sap.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "teams.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: slack
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token"
      resources:
        - name: slack-resource
          path: "/api/sustainability"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: sap
      baseUri: "https://reckitt-erp.s4hana.ondemand.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.sap_token"
      resources:
        - name: sap-resource
          path: "/api/sustainability"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: teams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.teams_token"
      resources:
        - name: teams-resource
          path: "/api/sustainability"
          operations:
            - name: execute-3
              method: POST

Triggers a Tableau workbook extract refresh and returns the refresh job status.

naftiko: "0.5"
info:
  label: "Tableau Workbook Refresh"
  description: "Triggers a Tableau workbook extract refresh and returns the refresh job status."
  tags:
    - analytics
    - reporting
    - tableau
capability:
  exposes:
    - type: mcp
      namespace: analytics-tableau
      port: 8080
      tools:
        - name: refresh-workbook
          description: "Trigger a Tableau workbook extract refresh by workbook ID. Returns the refresh job ID and status."
          inputParameters:
            - name: workbook_id
              in: body
              type: string
              description: "The Tableau workbook ID."
            - name: site_id
              in: body
              type: string
              description: "The Tableau site ID."
          call: "tableau.refresh-workbook"
          with:
            workbook_id: "{{workbook_id}}"
            site_id: "{{site_id}}"
  consumes:
    - type: http
      namespace: tableau
      baseUri: "https://reckitt.online.tableau.com/api/3.21"
      authentication:
        type: bearer
        token: "$secrets.tableau_token"
      resources:
        - name: workbooks
          path: "/sites/{{site_id}}/workbooks/{{workbook_id}}/refresh"
          inputParameters:
            - name: site_id
              in: path
            - name: workbook_id
              in: path
          operations:
            - name: refresh-workbook
              method: POST

Orchestrates trade promotion effectiveness pipeline across consumer health and hygiene products systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Trade Promotion Effectiveness Pipeline"
  description: "Orchestrates trade promotion effectiveness pipeline across consumer health and hygiene products systems, coordinating multiple services and notifying stakeholders."
  tags:
    - trade
    - reckitt
    - salesforce
    - servicenow
    - snowflake
capability:
  exposes:
    - type: mcp
      namespace: trade
      port: 8080
      tools:
        - name: trade-promotion-effectiveness-pipeline
          description: "Orchestrates trade promotion effectiveness pipeline across consumer health and hygiene products systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "salesforce.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "servicenow.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "snowflake.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: salesforce
      baseUri: "https://reckitt.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_access_token"
      resources:
        - name: salesforce-resource
          path: "/api/trade"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: servicenow
      baseUri: "https://reckitt.service-now.com/api/now"
      authentication:
        type: bearer
        token: "$secrets.servicenow_token"
      resources:
        - name: servicenow-resource
          path: "/api/trade"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: snowflake
      baseUri: "https://reckitt.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: snowflake-resource
          path: "/api/trade"
          operations:
            - name: execute-3
              method: POST

Orchestrates trade promotion planning pipeline across consumer health and hygiene products systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Trade Promotion Planning Pipeline"
  description: "Orchestrates trade promotion planning pipeline across consumer health and hygiene products systems, coordinating multiple services and notifying stakeholders."
  tags:
    - trade
    - reckitt
    - reckitt
    - salesforce
    - servicenow
capability:
  exposes:
    - type: mcp
      namespace: trade
      port: 8080
      tools:
        - name: trade-promotion-planning-pipeline
          description: "Orchestrates trade promotion planning pipeline across consumer health and hygiene products systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "reckitt.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "salesforce.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "servicenow.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: reckitt
      baseUri: "https://api.reckitt.com/v2"
      authentication:
        type: bearer
        token: "$secrets.reckitt_api_token"
      resources:
        - name: reckitt-resource
          path: "/api/trade"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: salesforce
      baseUri: "https://reckitt.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_access_token"
      resources:
        - name: salesforce-resource
          path: "/api/trade"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: servicenow
      baseUri: "https://reckitt.service-now.com/api/now"
      authentication:
        type: bearer
        token: "$secrets.servicenow_token"
      resources:
        - name: servicenow-resource
          path: "/api/trade"
          operations:
            - name: execute-3
              method: POST

Retrieves trade promotion status data from the Reckitt consumer health and hygiene products systems.

naftiko: "0.5"
info:
  label: "Trade Promotion Status"
  description: "Retrieves trade promotion status data from the Reckitt consumer health and hygiene products systems."
  tags:
    - trade
    - reckitt
    - status
capability:
  exposes:
    - type: mcp
      namespace: trade
      port: 8080
      tools:
        - name: trade-promotion-status
          description: "Retrieves trade promotion status data from the Reckitt consumer health and hygiene products systems."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The input id."
          call: "reckitt.trade-promotion-status"
          with:
            input_id: "{{input_id}}"
          outputParameters:
            - name: result
              type: string
              mapping: "$.data"
            - name: status
              type: string
              mapping: "$.status"
  consumes:
    - type: http
      namespace: reckitt
      baseUri: "https://api.reckitt.com/v2"
      authentication:
        type: bearer
        token: "$secrets.reckitt_api_token"
      resources:
        - name: resource
          path: "/trade/promotion/status/{{input_id}}"
          inputParameters:
            - name: input_id
              in: path
          operations:
            - name: trade-promotion-status
              method: GET

Orchestrates trade spend reconciliation pipeline across consumer health and hygiene products systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Trade Spend Reconciliation Pipeline"
  description: "Orchestrates trade spend reconciliation pipeline across consumer health and hygiene products systems, coordinating multiple services and notifying stakeholders."
  tags:
    - trade
    - reckitt
    - servicenow
    - snowflake
    - slack
capability:
  exposes:
    - type: mcp
      namespace: trade
      port: 8080
      tools:
        - name: trade-spend-reconciliation-pipeline
          description: "Orchestrates trade spend reconciliation pipeline across consumer health and hygiene products systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "servicenow.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "snowflake.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "slack.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: servicenow
      baseUri: "https://reckitt.service-now.com/api/now"
      authentication:
        type: bearer
        token: "$secrets.servicenow_token"
      resources:
        - name: servicenow-resource
          path: "/api/trade"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: snowflake
      baseUri: "https://reckitt.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: snowflake-resource
          path: "/api/trade"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: slack
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token"
      resources:
        - name: slack-resource
          path: "/api/trade"
          operations:
            - name: execute-3
              method: POST

Looks up an employee in Workday by ID and returns name, department, title, manager, and contact information.

naftiko: "0.5"
info:
  label: "Workday Employee Directory Lookup"
  description: "Looks up an employee in Workday by ID and returns name, department, title, manager, and contact information."
  tags:
    - hr
    - directory
    - workday
capability:
  exposes:
    - type: mcp
      namespace: hr-directory
      port: 8080
      tools:
        - name: get-employee
          description: "Look up a Workday employee by ID. Returns name, department, title, manager, and work email."
          inputParameters:
            - name: employee_id
              in: body
              type: string
              description: "The Workday employee ID."
          call: "workday.get-worker"
          with:
            worker_id: "{{employee_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: workers
          path: "/workers/{{worker_id}}"
          inputParameters:
            - name: worker_id
              in: path
          operations:
            - name: get-worker
              method: GET

Retrieves a Zendesk support ticket by ID, returning subject, status, priority, assignee, and customer details.

naftiko: "0.5"
info:
  label: "Zendesk Support Ticket Lookup"
  description: "Retrieves a Zendesk support ticket by ID, returning subject, status, priority, assignee, and customer details."
  tags:
    - customer-service
    - support
    - zendesk
capability:
  exposes:
    - type: mcp
      namespace: customer-support
      port: 8080
      tools:
        - name: get-ticket
          description: "Look up a Zendesk support ticket by ID. Returns subject, status, priority, assignee, and requester info."
          inputParameters:
            - name: ticket_id
              in: body
              type: string
              description: "The Zendesk ticket ID."
          call: "zendesk.get-ticket"
          with:
            ticket_id: "{{ticket_id}}"
  consumes:
    - type: http
      namespace: zendesk
      baseUri: "https://reckitt.zendesk.com/api/v2"
      authentication:
        type: basic
        username: "$secrets.zendesk_user"
        password: "$secrets.zendesk_api_token"
      resources:
        - name: tickets
          path: "/tickets/{{ticket_id}}"
          inputParameters:
            - name: ticket_id
              in: path
          operations:
            - name: get-ticket
              method: GET

Creates a Zoom meeting with specified parameters and returns the join URL and meeting ID.

naftiko: "0.5"
info:
  label: "Zoom Meeting Scheduler"
  description: "Creates a Zoom meeting with specified parameters and returns the join URL and meeting ID."
  tags:
    - collaboration
    - meetings
    - zoom
capability:
  exposes:
    - type: mcp
      namespace: comms-zoom
      port: 8080
      tools:
        - name: create-meeting
          description: "Create a Zoom meeting. Returns meeting ID and join URL."
          inputParameters:
            - name: topic
              in: body
              type: string
              description: "The meeting topic."
            - name: start_time
              in: body
              type: string
              description: "Start time in ISO 8601 format."
            - name: duration
              in: body
              type: number
              description: "Meeting duration in minutes."
          call: "zoom.create-meeting"
          with:
            topic: "{{topic}}"
            start_time: "{{start_time}}"
            duration: "{{duration}}"
  consumes:
    - type: http
      namespace: zoom
      baseUri: "https://api.zoom.us/v2"
      authentication:
        type: bearer
        token: "$secrets.zoom_token"
      resources:
        - name: meetings
          path: "/users/me/meetings"
          operations:
            - name: create-meeting
              method: POST