Rio Tinto Capabilities

Naftiko 0.5 capability definitions for Rio Tinto - 100 capabilities showing integration workflows and service orchestrations.

Sort
Expand

Retrieves mine plan or engineering drawing metadata from the document management system.

naftiko: "0.5"
info:
  label: "AutoCAD Drawing Retrieval"
  description: "Retrieves mine plan or engineering drawing metadata from the document management system."
  tags:
    - engineering
    - design
    - autocad
capability:
  exposes:
    - type: mcp
      namespace: engineering-drawings
      port: 8080
      tools:
        - name: get-drawing
          description: "Retrieve an AutoCAD drawing by document ID. Returns metadata, revision, and download URL."
          inputParameters:
            - name: document_id
              in: body
              type: string
              description: "The drawing document ID."
          call: "sharepoint.get-file"
          with:
            site_id: "engineering_drawings_site"
            file_path: "Drawings/{{document_id}}"
  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

Orchestrates autonomous drill coordination pipeline across mining and metals systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Autonomous Drill Coordination Pipeline"
  description: "Orchestrates autonomous drill coordination pipeline across mining and metals systems, coordinating multiple services and notifying stakeholders."
  tags:
    - autonomous
    - rio-tinto
    - sharepoint
    - confluence
    - datadog
capability:
  exposes:
    - type: mcp
      namespace: autonomous
      port: 8080
      tools:
        - name: autonomous-drill-coordination-pipeline
          description: "Orchestrates autonomous drill coordination pipeline across mining and metals 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: "sharepoint.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: sharepoint
      baseUri: "https://graph.microsoft.com/v1.0/sites"
      authentication:
        type: bearer
        token: "$secrets.sharepoint_token"
      resources:
        - name: sharepoint-resource
          path: "/api/autonomous"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: confluence
      baseUri: "https://riotinto.atlassian.net/wiki/rest/api"
      authentication:
        type: bearer
        token: "$secrets.confluence_token"
      resources:
        - name: confluence-resource
          path: "/api/autonomous"
          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/autonomous"
          operations:
            - name: execute-3
              method: POST

Retrieves autonomous haul truck status data from the Rio Tinto mining and metals systems.

naftiko: "0.5"
info:
  label: "Autonomous Haul Truck Status"
  description: "Retrieves autonomous haul truck status data from the Rio Tinto mining and metals systems."
  tags:
    - autonomous
    - rio-tinto
    - status
capability:
  exposes:
    - type: mcp
      namespace: autonomous
      port: 8080
      tools:
        - name: autonomous-haul-truck-status
          description: "Retrieves autonomous haul truck status data from the Rio Tinto mining and metals systems."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The input id."
          call: "rio-tinto.autonomous-haul-truck-status"
          with:
            input_id: "{{input_id}}"
          outputParameters:
            - name: result
              type: string
              mapping: "$.data"
            - name: status
              type: string
              mapping: "$.status"
  consumes:
    - type: http
      namespace: rio-tinto
      baseUri: "https://api.riotinto.com/v2"
      authentication:
        type: bearer
        token: "$secrets.riotinto_api_token"
      resources:
        - name: resource
          path: "/autonomous/haul/truck/status/{{input_id}}"
          inputParameters:
            - name: input_id
              in: path
          operations:
            - name: autonomous-haul-truck-status
              method: GET

Orchestrates autonomous mining fleet orchestrator across mining and metals systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Autonomous Mining Fleet Orchestrator"
  description: "Orchestrates autonomous mining fleet orchestrator across mining and metals systems, coordinating multiple services and notifying stakeholders."
  tags:
    - autonomous
    - rio-tinto
    - rio-tinto
    - servicenow
    - sap
capability:
  exposes:
    - type: mcp
      namespace: autonomous
      port: 8080
      tools:
        - name: autonomous-mining-fleet-orchestrator
          description: "Orchestrates autonomous mining fleet orchestrator across mining and metals 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: "rio-tinto.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: "sap.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: rio-tinto
      baseUri: "https://api.riotinto.com/v2"
      authentication:
        type: bearer
        token: "$secrets.riotinto_api_token"
      resources:
        - name: rio-tinto-resource
          path: "/api/autonomous"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: servicenow
      baseUri: "https://riotinto.service-now.com/api/now"
      authentication:
        type: bearer
        token: "$secrets.servicenow_token"
      resources:
        - name: servicenow-resource
          path: "/api/autonomous"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: sap
      baseUri: "https://riotinto-erp.s4hana.ondemand.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.sap_token"
      resources:
        - name: sap-resource
          path: "/api/autonomous"
          operations:
            - name: execute-3
              method: POST

Orchestrates autonomous vehicle safety pipeline across mining and metals systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Autonomous Vehicle Safety Pipeline"
  description: "Orchestrates autonomous vehicle safety pipeline across mining and metals systems, coordinating multiple services and notifying stakeholders."
  tags:
    - autonomous
    - rio-tinto
    - confluence
    - datadog
    - rio-tinto
capability:
  exposes:
    - type: mcp
      namespace: autonomous
      port: 8080
      tools:
        - name: autonomous-vehicle-safety-pipeline
          description: "Orchestrates autonomous vehicle safety pipeline across mining and metals 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: "rio-tinto.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: confluence
      baseUri: "https://riotinto.atlassian.net/wiki/rest/api"
      authentication:
        type: bearer
        token: "$secrets.confluence_token"
      resources:
        - name: confluence-resource
          path: "/api/autonomous"
          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/autonomous"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: rio-tinto
      baseUri: "https://api.riotinto.com/v2"
      authentication:
        type: bearer
        token: "$secrets.riotinto_api_token"
      resources:
        - name: rio-tinto-resource
          path: "/api/autonomous"
          operations:
            - name: execute-3
              method: POST

Retrieves a user profile from Azure Active Directory by UPN.

naftiko: "0.5"
info:
  label: "Azure Active Directory User Lookup"
  description: "Retrieves a user profile from Azure Active Directory by UPN."
  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, and department."
          inputParameters:
            - name: user_upn
              in: body
              type: string
              description: "The user principal name."
          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 an Azure DevOps pipeline.

naftiko: "0.5"
info:
  label: "Azure DevOps Build Status"
  description: "Retrieves the latest build status for an Azure DevOps pipeline."
  tags:
    - devops
    - ci-cd
    - azure-devops
capability:
  exposes:
    - type: mcp
      namespace: devops-builds
      port: 8080
      tools:
        - name: get-build-status
          description: "Get the latest Azure DevOps build status for a pipeline."
          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/riotinto"
      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

Generates a biodiversity impact assessment by pulling ecological survey data, cross-referencing SAP land management records, creating a Confluence report, and alerting the environmental team.

naftiko: "0.5"
info:
  label: "Biodiversity Impact Assessment Orchestrator"
  description: "Generates a biodiversity impact assessment by pulling ecological survey data, cross-referencing SAP land management records, creating a Confluence report, and alerting the environmental team."
  tags:
    - sustainability
    - biodiversity
    - sap
    - confluence
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: sustainability-biodiversity
      port: 8080
      tools:
        - name: assess-biodiversity-impact
          description: "Given a site code and assessment period, pull survey data, cross-reference SAP, create report, and notify team."
          inputParameters:
            - name: site_code
              in: body
              type: string
              description: "The mine site code."
            - name: assessment_period
              in: body
              type: string
              description: "The assessment period (e.g. 2026-Q1)."
          steps:
            - name: get-survey-data
              type: call
              call: "env-api.get-biodiversity-survey"
              with:
                site_code: "{{site_code}}"
                period: "{{assessment_period}}"
            - name: get-land-records
              type: call
              call: "sap.get-land-management"
              with:
                plant: "{{site_code}}"
            - name: create-report
              type: call
              call: "confluence.create-page"
              with:
                space_key: "SUSTAINABILITY"
                title: "Biodiversity Assessment: {{site_code}} — {{assessment_period}}"
                body: "Species count: {{get-survey-data.species_count}}. Rehabilitation area: {{get-land-records.rehab_hectares}} ha. Status: {{get-survey-data.status}}."
            - name: notify-team
              type: call
              call: "msteams.send-channel-message"
              with:
                team_id: "sustainability_team"
                channel: "Biodiversity"
                text: "Biodiversity assessment for {{site_code}} ({{assessment_period}}) ready. Species: {{get-survey-data.species_count}}. Report: {{create-report.url}}."
  consumes:
    - type: http
      namespace: env-api
      baseUri: "https://environmental.riotinto.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.env_api_token"
      resources:
        - name: biodiversity
          path: "/sites/{{site_code}}/biodiversity?period={{period}}"
          inputParameters:
            - name: site_code
              in: path
            - name: period
              in: path
          operations:
            - name: get-biodiversity-survey
              method: GET
    - type: http
      namespace: sap
      baseUri: "https://riotinto-s4.sap.com/sap/opu/odata/sap/LAND_MGMT_SRV"
      authentication:
        type: basic
        username: "$secrets.sap_user"
        password: "$secrets.sap_password"
      resources:
        - name: land-management
          path: "/LandManagement?$filter=Plant eq '{{plant}}'"
          inputParameters:
            - name: plant
              in: path
          operations:
            - name: get-land-management
              method: GET
    - type: http
      namespace: confluence
      baseUri: "https://riotinto.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: 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 blast pattern record lookup data from the Rio Tinto mining and metals systems.

naftiko: "0.5"
info:
  label: "Blast Pattern Record Lookup"
  description: "Retrieves blast pattern record lookup data from the Rio Tinto mining and metals systems."
  tags:
    - blast
    - rio-tinto
    - lookup
capability:
  exposes:
    - type: mcp
      namespace: blast
      port: 8080
      tools:
        - name: blast-pattern-record-lookup
          description: "Retrieves blast pattern record lookup data from the Rio Tinto mining and metals systems."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The input id."
          call: "rio-tinto.blast-pattern-record-lookup"
          with:
            input_id: "{{input_id}}"
          outputParameters:
            - name: result
              type: string
              mapping: "$.data"
            - name: status
              type: string
              mapping: "$.status"
  consumes:
    - type: http
      namespace: rio-tinto
      baseUri: "https://api.riotinto.com/v2"
      authentication:
        type: bearer
        token: "$secrets.riotinto_api_token"
      resources:
        - name: resource
          path: "/blast/pattern/record/lookup/{{input_id}}"
          inputParameters:
            - name: input_id
              in: path
          operations:
            - name: blast-pattern-record-lookup
              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."
          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."
          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

Collects carbon emissions data from mine sites, aggregates in SAP, generates a sustainability report in Confluence, and notifies the ESG team via Microsoft Teams.

naftiko: "0.5"
info:
  label: "Carbon Emissions Tracking Orchestrator"
  description: "Collects carbon emissions data from mine sites, aggregates in SAP, generates a sustainability report in Confluence, and notifies the ESG team via Microsoft Teams."
  tags:
    - sustainability
    - carbon
    - sap
    - confluence
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: sustainability-carbon
      port: 8080
      tools:
        - name: track-carbon-emissions
          description: "Given a site code and period, collect emissions data, update SAP, create Confluence report, and notify ESG team."
          inputParameters:
            - name: site_code
              in: body
              type: string
              description: "The mine site code."
            - name: reporting_period
              in: body
              type: string
              description: "The reporting period (YYYY-MM)."
          steps:
            - name: get-emissions
              type: call
              call: "env-api.get-emissions"
              with:
                site_code: "{{site_code}}"
                period: "{{reporting_period}}"
            - name: update-sap
              type: call
              call: "sap.update-emissions-record"
              with:
                plant: "{{site_code}}"
                period: "{{reporting_period}}"
                scope1: "{{get-emissions.scope1_tonnes}}"
                scope2: "{{get-emissions.scope2_tonnes}}"
            - name: create-report
              type: call
              call: "confluence.create-page"
              with:
                space_key: "ESG"
                title: "Carbon Emissions: {{site_code}} — {{reporting_period}}"
                body: "Scope 1: {{get-emissions.scope1_tonnes}} tCO2e. Scope 2: {{get-emissions.scope2_tonnes}} tCO2e. Total: {{get-emissions.total_tonnes}} tCO2e."
            - name: notify-esg
              type: call
              call: "msteams.send-channel-message"
              with:
                team_id: "esg_team"
                channel: "Carbon"
                text: "Carbon report for {{site_code}} ({{reporting_period}}): Total {{get-emissions.total_tonnes}} tCO2e. Report: {{create-report.url}}."
  consumes:
    - type: http
      namespace: env-api
      baseUri: "https://environmental.riotinto.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.env_api_token"
      resources:
        - name: emissions
          path: "/sites/{{site_code}}/emissions?period={{period}}"
          inputParameters:
            - name: site_code
              in: path
            - name: period
              in: path
          operations:
            - name: get-emissions
              method: GET
    - type: http
      namespace: sap
      baseUri: "https://riotinto-s4.sap.com/sap/opu/odata/sap/SUSTAINABILITY_SRV"
      authentication:
        type: basic
        username: "$secrets.sap_user"
        password: "$secrets.sap_password"
      resources:
        - name: emissions-records
          path: "/EmissionsRecords"
          operations:
            - name: update-emissions-record
              method: POST
    - type: http
      namespace: confluence
      baseUri: "https://riotinto.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: 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

Orchestrates carbon reduction tracking pipeline across mining and metals systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Carbon Reduction Tracking Pipeline"
  description: "Orchestrates carbon reduction tracking pipeline across mining and metals systems, coordinating multiple services and notifying stakeholders."
  tags:
    - carbon
    - rio-tinto
    - teams
    - sharepoint
    - confluence
capability:
  exposes:
    - type: mcp
      namespace: carbon
      port: 8080
      tools:
        - name: carbon-reduction-tracking-pipeline
          description: "Orchestrates carbon reduction tracking pipeline across mining and metals 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: "sharepoint.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/carbon"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: sharepoint
      baseUri: "https://graph.microsoft.com/v1.0/sites"
      authentication:
        type: bearer
        token: "$secrets.sharepoint_token"
      resources:
        - name: sharepoint-resource
          path: "/api/carbon"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: confluence
      baseUri: "https://riotinto.atlassian.net/wiki/rest/api"
      authentication:
        type: bearer
        token: "$secrets.confluence_token"
      resources:
        - name: confluence-resource
          path: "/api/carbon"
          operations:
            - name: execute-3
              method: POST

Retrieves DNS records for a Cloudflare zone by record type.

naftiko: "0.5"
info:
  label: "Cloudflare DNS Record Lookup"
  description: "Retrieves DNS records for a Cloudflare zone by record type."
  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."
          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

Orchestrates community engagement tracking pipeline across mining and metals systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Community Engagement Tracking Pipeline"
  description: "Orchestrates community engagement tracking pipeline across mining and metals systems, coordinating multiple services and notifying stakeholders."
  tags:
    - community
    - rio-tinto
    - teams
    - sharepoint
    - confluence
capability:
  exposes:
    - type: mcp
      namespace: community
      port: 8080
      tools:
        - name: community-engagement-tracking-pipeline
          description: "Orchestrates community engagement tracking pipeline across mining and metals 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: "sharepoint.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/community"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: sharepoint
      baseUri: "https://graph.microsoft.com/v1.0/sites"
      authentication:
        type: bearer
        token: "$secrets.sharepoint_token"
      resources:
        - name: sharepoint-resource
          path: "/api/community"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: confluence
      baseUri: "https://riotinto.atlassian.net/wiki/rest/api"
      authentication:
        type: bearer
        token: "$secrets.confluence_token"
      resources:
        - name: confluence-resource
          path: "/api/community"
          operations:
            - name: execute-3
              method: POST

Retrieves concentrator feed grade data from the Rio Tinto mining and metals systems.

naftiko: "0.5"
info:
  label: "Concentrator Feed Grade"
  description: "Retrieves concentrator feed grade data from the Rio Tinto mining and metals systems."
  tags:
    - concentrator
    - rio-tinto
    - grade
capability:
  exposes:
    - type: mcp
      namespace: concentrator
      port: 8080
      tools:
        - name: concentrator-feed-grade
          description: "Retrieves concentrator feed grade data from the Rio Tinto mining and metals systems."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The input id."
          call: "rio-tinto.concentrator-feed-grade"
          with:
            input_id: "{{input_id}}"
          outputParameters:
            - name: result
              type: string
              mapping: "$.data"
            - name: status
              type: string
              mapping: "$.status"
  consumes:
    - type: http
      namespace: rio-tinto
      baseUri: "https://api.riotinto.com/v2"
      authentication:
        type: bearer
        token: "$secrets.riotinto_api_token"
      resources:
        - name: resource
          path: "/concentrator/feed/grade/{{input_id}}"
          inputParameters:
            - name: input_id
              in: path
          operations:
            - name: concentrator-feed-grade
              method: GET

Orchestrates concentrator performance pipeline across mining and metals systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Concentrator Performance Pipeline"
  description: "Orchestrates concentrator performance pipeline across mining and metals systems, coordinating multiple services and notifying stakeholders."
  tags:
    - concentrator
    - rio-tinto
    - snowflake
    - slack
    - jira
capability:
  exposes:
    - type: mcp
      namespace: concentrator
      port: 8080
      tools:
        - name: concentrator-performance-pipeline
          description: "Orchestrates concentrator performance pipeline across mining and metals 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: "jira.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: snowflake
      baseUri: "https://riotinto.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: snowflake-resource
          path: "/api/concentrator"
          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/concentrator"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: jira
      baseUri: "https://riotinto.atlassian.net/rest/api/3"
      authentication:
        type: bearer
        token: "$secrets.jira_token"
      resources:
        - name: jira-resource
          path: "/api/concentrator"
          operations:
            - name: execute-3
              method: POST

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

naftiko: "0.5"
info:
  label: "Confluence Knowledge Base Search"
  description: "Searches Confluence for articles matching a query 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 titles, excerpts, and URLs."
          inputParameters:
            - name: query
              in: body
              type: string
              description: "The search query."
          call: "confluence.search"
          with:
            cql: "text ~ '{{query}}'"
  consumes:
    - type: http
      namespace: confluence
      baseUri: "https://riotinto.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

Retrieves crusher throughput rate data from the Rio Tinto mining and metals systems.

naftiko: "0.5"
info:
  label: "Crusher Throughput Rate"
  description: "Retrieves crusher throughput rate data from the Rio Tinto mining and metals systems."
  tags:
    - crusher
    - rio-tinto
    - rate
capability:
  exposes:
    - type: mcp
      namespace: crusher
      port: 8080
      tools:
        - name: crusher-throughput-rate
          description: "Retrieves crusher throughput rate data from the Rio Tinto mining and metals systems."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The input id."
          call: "rio-tinto.crusher-throughput-rate"
          with:
            input_id: "{{input_id}}"
          outputParameters:
            - name: result
              type: string
              mapping: "$.data"
            - name: status
              type: string
              mapping: "$.status"
  consumes:
    - type: http
      namespace: rio-tinto
      baseUri: "https://api.riotinto.com/v2"
      authentication:
        type: bearer
        token: "$secrets.riotinto_api_token"
      resources:
        - name: resource
          path: "/crusher/throughput/rate/{{input_id}}"
          inputParameters:
            - name: input_id
              in: path
          operations:
            - name: crusher-throughput-rate
              method: GET

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

naftiko: "0.5"
info:
  label: "Datadog Service Health Check"
  description: "Queries Datadog for the health status of a monitored service, returning uptime 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. Returns active monitors and alert status."
          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

Retrieves the status of a DocuSign envelope for contract workflows.

naftiko: "0.5"
info:
  label: "DocuSign Contract Status"
  description: "Retrieves the status of a DocuSign envelope for contract workflows."
  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 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

Retrieves drill hole assay results data from the Rio Tinto mining and metals systems.

naftiko: "0.5"
info:
  label: "Drill Hole Assay Results"
  description: "Retrieves drill hole assay results data from the Rio Tinto mining and metals systems."
  tags:
    - drill
    - rio-tinto
    - results
capability:
  exposes:
    - type: mcp
      namespace: drill
      port: 8080
      tools:
        - name: drill-hole-assay-results
          description: "Retrieves drill hole assay results data from the Rio Tinto mining and metals systems."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The input id."
          call: "rio-tinto.drill-hole-assay-results"
          with:
            input_id: "{{input_id}}"
          outputParameters:
            - name: result
              type: string
              mapping: "$.data"
            - name: status
              type: string
              mapping: "$.status"
  consumes:
    - type: http
      namespace: rio-tinto
      baseUri: "https://api.riotinto.com/v2"
      authentication:
        type: bearer
        token: "$secrets.riotinto_api_token"
      resources:
        - name: resource
          path: "/drill/hole/assay/results/{{input_id}}"
          inputParameters:
            - name: input_id
              in: path
          operations:
            - name: drill-hole-assay-results
              method: GET

Orchestrates dust suppression monitoring pipeline across mining and metals systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Dust Suppression Monitoring Pipeline"
  description: "Orchestrates dust suppression monitoring pipeline across mining and metals systems, coordinating multiple services and notifying stakeholders."
  tags:
    - dust
    - rio-tinto
    - snowflake
    - slack
    - jira
capability:
  exposes:
    - type: mcp
      namespace: dust
      port: 8080
      tools:
        - name: dust-suppression-monitoring-pipeline
          description: "Orchestrates dust suppression monitoring pipeline across mining and metals 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: "jira.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: snowflake
      baseUri: "https://riotinto.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: snowflake-resource
          path: "/api/dust"
          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/dust"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: jira
      baseUri: "https://riotinto.atlassian.net/rest/api/3"
      authentication:
        type: bearer
        token: "$secrets.jira_token"
      resources:
        - name: jira-resource
          path: "/api/dust"
          operations:
            - name: execute-3
              method: POST

Queries Dynatrace for infrastructure performance metrics including host CPU, memory, and disk utilization.

naftiko: "0.5"
info:
  label: "Dynatrace Infrastructure Monitoring"
  description: "Queries Dynatrace for infrastructure performance metrics including host CPU, memory, and disk utilization."
  tags:
    - monitoring
    - infrastructure
    - dynatrace
capability:
  exposes:
    - type: mcp
      namespace: ops-dynatrace
      port: 8080
      tools:
        - name: get-host-metrics
          description: "Query Dynatrace for host performance. Returns CPU, memory, and disk utilization."
          inputParameters:
            - name: host_id
              in: body
              type: string
              description: "The Dynatrace host entity ID."
          call: "dynatrace.get-host-metrics"
          with:
            host_id: "{{host_id}}"
  consumes:
    - type: http
      namespace: dynatrace
      baseUri: "https://riotinto.live.dynatrace.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.dynatrace_token"
      resources:
        - name: metrics
          path: "/metrics/query?metricSelector=builtin:host.cpu.usage,builtin:host.mem.usage&entitySelector=entityId({{host_id}})"
          inputParameters:
            - name: host_id
              in: path
          operations:
            - name: get-host-metrics
              method: GET

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

naftiko: "0.5"
info:
  label: "Employee Onboarding Orchestrator"
  description: "On new hire creation in Workday, opens a ServiceNow onboarding ticket, provisions a SharePoint folder, and sends a Microsoft Teams welcome message."
  tags:
    - hr
    - onboarding
    - workday
    - servicenow
    - sharepoint
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: hr-onboarding
      port: 8080
      tools:
        - name: trigger-onboarding
          description: "Given a Workday employee ID 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: site_location
              in: body
              type: string
              description: "The mine site or office location."
          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}} at {{site_location}}."
            - 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 Rio Tinto, {{get-employee.first_name}}! Your onboarding ticket is {{open-ticket.number}}. Documents: {{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://riotinto.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

Generates an environmental compliance report by pulling monitoring data, cross-referencing SAP records, creating a Confluence report, and alerting the sustainability team.

naftiko: "0.5"
info:
  label: "Environmental Compliance Report Orchestrator"
  description: "Generates an environmental compliance report by pulling monitoring data, cross-referencing SAP records, creating a Confluence report, and alerting the sustainability team."
  tags:
    - sustainability
    - compliance
    - sap
    - confluence
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: sustainability-compliance
      port: 8080
      tools:
        - name: generate-compliance-report
          description: "Given a site code and period, pull environmental data, cross-reference SAP, create Confluence report, and notify team."
          inputParameters:
            - name: site_code
              in: body
              type: string
              description: "The mine site code."
            - name: reporting_period
              in: body
              type: string
              description: "The reporting period (e.g. 2026-Q1)."
          steps:
            - name: get-monitoring-data
              type: call
              call: "env-api.get-period-summary"
              with:
                site_code: "{{site_code}}"
                period: "{{reporting_period}}"
            - name: get-sap-records
              type: call
              call: "sap.get-environmental-records"
              with:
                plant: "{{site_code}}"
                period: "{{reporting_period}}"
            - name: create-report
              type: call
              call: "confluence.create-page"
              with:
                space_key: "SUSTAINABILITY"
                title: "Environmental Compliance: {{site_code}} — {{reporting_period}}"
                body: "Emissions: {{get-monitoring-data.emissions_total}}. Water usage: {{get-monitoring-data.water_usage}}. Compliance status: {{get-monitoring-data.status}}."
            - name: notify-team
              type: call
              call: "msteams.send-channel-message"
              with:
                team_id: "sustainability_team"
                channel: "Compliance"
                text: "Environmental compliance report for {{site_code}} ({{reporting_period}}) is ready. Status: {{get-monitoring-data.status}}. Report: {{create-report.url}}."
  consumes:
    - type: http
      namespace: env-api
      baseUri: "https://environmental.riotinto.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.env_api_token"
      resources:
        - name: period-summary
          path: "/sites/{{site_code}}/summary?period={{period}}"
          inputParameters:
            - name: site_code
              in: path
            - name: period
              in: path
          operations:
            - name: get-period-summary
              method: GET
    - type: http
      namespace: sap
      baseUri: "https://riotinto-s4.sap.com/sap/opu/odata/sap/EHS_ENV_SRV"
      authentication:
        type: basic
        username: "$secrets.sap_user"
        password: "$secrets.sap_password"
      resources:
        - name: environmental-records
          path: "/EnvironmentalRecords?$filter=Plant eq '{{plant}}' and Period eq '{{period}}'"
          inputParameters:
            - name: plant
              in: path
            - name: period
              in: path
          operations:
            - name: get-environmental-records
              method: GET
    - type: http
      namespace: confluence
      baseUri: "https://riotinto.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: 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 environmental monitoring data for a mine site including water quality, air emissions, and dust levels.

naftiko: "0.5"
info:
  label: "Environmental Monitoring Data Lookup"
  description: "Retrieves environmental monitoring data for a mine site including water quality, air emissions, and dust levels."
  tags:
    - sustainability
    - environmental
    - mining
capability:
  exposes:
    - type: mcp
      namespace: sustainability-monitoring
      port: 8080
      tools:
        - name: get-environmental-data
          description: "Query environmental monitoring for a site. Returns water quality, air emissions, and dust level readings."
          inputParameters:
            - name: site_code
              in: body
              type: string
              description: "The mine site code."
            - name: monitoring_date
              in: body
              type: string
              description: "The monitoring date in YYYY-MM-DD format."
          call: "env-api.get-readings"
          with:
            site_code: "{{site_code}}"
            date: "{{monitoring_date}}"
  consumes:
    - type: http
      namespace: env-api
      baseUri: "https://environmental.riotinto.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.env_api_token"
      resources:
        - name: readings
          path: "/sites/{{site_code}}/readings?date={{date}}"
          inputParameters:
            - name: site_code
              in: path
            - name: date
              in: path
          operations:
            - name: get-readings
              method: GET

Orchestrates environmental water quality pipeline across mining and metals systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Environmental Water Quality Pipeline"
  description: "Orchestrates environmental water quality pipeline across mining and metals systems, coordinating multiple services and notifying stakeholders."
  tags:
    - environmental
    - rio-tinto
    - snowflake
    - slack
    - jira
capability:
  exposes:
    - type: mcp
      namespace: environmental
      port: 8080
      tools:
        - name: environmental-water-quality-pipeline
          description: "Orchestrates environmental water quality pipeline across mining and metals 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: "jira.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: snowflake
      baseUri: "https://riotinto.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: snowflake-resource
          path: "/api/environmental"
          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/environmental"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: jira
      baseUri: "https://riotinto.atlassian.net/rest/api/3"
      authentication:
        type: bearer
        token: "$secrets.jira_token"
      resources:
        - name: jira-resource
          path: "/api/environmental"
          operations:
            - name: execute-3
              method: POST

Orchestrates equipment fleet replacement pipeline across mining and metals systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Equipment Fleet Replacement Pipeline"
  description: "Orchestrates equipment fleet replacement pipeline across mining and metals systems, coordinating multiple services and notifying stakeholders."
  tags:
    - equipment
    - rio-tinto
    - sap
    - snowflake
    - slack
capability:
  exposes:
    - type: mcp
      namespace: equipment
      port: 8080
      tools:
        - name: equipment-fleet-replacement-pipeline
          description: "Orchestrates equipment fleet replacement pipeline across mining and metals 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: "snowflake.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "slack.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: sap
      baseUri: "https://riotinto-erp.s4hana.ondemand.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.sap_token"
      resources:
        - name: sap-resource
          path: "/api/equipment"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: snowflake
      baseUri: "https://riotinto.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: snowflake-resource
          path: "/api/equipment"
          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/equipment"
          operations:
            - name: execute-3
              method: POST

When mining equipment triggers a maintenance alert, creates a SAP maintenance order, opens a ServiceNow work order, notifies the maintenance team via Microsoft Teams, and logs in Datadog.

naftiko: "0.5"
info:
  label: "Equipment Maintenance Alert Orchestrator"
  description: "When mining equipment triggers a maintenance alert, creates a SAP maintenance order, opens a ServiceNow work order, notifies the maintenance team via Microsoft Teams, and logs in Datadog."
  tags:
    - mining
    - maintenance
    - sap
    - servicenow
    - microsoft-teams
    - datadog
capability:
  exposes:
    - type: mcp
      namespace: mining-maintenance
      port: 8080
      tools:
        - name: handle-maintenance-alert
          description: "Given equipment ID and alert details, create SAP maintenance order, ServiceNow work order, notify team, and log in Datadog."
          inputParameters:
            - name: equipment_id
              in: body
              type: string
              description: "The SAP equipment ID."
            - name: site_code
              in: body
              type: string
              description: "The mine site code."
            - name: alert_type
              in: body
              type: string
              description: "Type of maintenance alert (predictive, corrective, safety)."
            - name: description
              in: body
              type: string
              description: "Description of the maintenance issue."
          steps:
            - name: create-sap-order
              type: call
              call: "sap.create-maintenance-order"
              with:
                equipment: "{{equipment_id}}"
                plant: "{{site_code}}"
                description: "{{alert_type}}: {{description}}"
                order_type: "PM01"
            - name: create-work-order
              type: call
              call: "servicenow.create-work-order"
              with:
                short_description: "Equipment maintenance: {{equipment_id}} at {{site_code}}"
                description: "Alert: {{alert_type}}. Details: {{description}}. SAP order: {{create-sap-order.order_number}}."
                assigned_group: "Maintenance_{{site_code}}"
                priority: "2"
            - name: notify-team
              type: call
              call: "msteams.send-channel-message"
              with:
                team_id: "maintenance_{{site_code}}"
                channel: "Alerts"
                text: "Maintenance alert for {{equipment_id}} at {{site_code}}: {{alert_type}}. {{description}}. SAP: {{create-sap-order.order_number}}. ServiceNow: {{create-work-order.number}}."
            - name: log-event
              type: call
              call: "datadog.send-event"
              with:
                title: "Equipment maintenance: {{equipment_id}} at {{site_code}}"
                text: "Alert: {{alert_type}}, SAP: {{create-sap-order.order_number}}"
                tags: "site:{{site_code}},equipment:{{equipment_id}},type:maintenance"
  consumes:
    - type: http
      namespace: sap
      baseUri: "https://riotinto-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://riotinto.service-now.com/api/now"
      authentication:
        type: basic
        username: "$secrets.servicenow_user"
        password: "$secrets.servicenow_password"
      resources:
        - name: work-orders
          path: "/table/wm_order"
          operations:
            - name: create-work-order
              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 equipment predictive failure pipeline across mining and metals systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Equipment Predictive Failure Pipeline"
  description: "Orchestrates equipment predictive failure pipeline across mining and metals systems, coordinating multiple services and notifying stakeholders."
  tags:
    - equipment
    - rio-tinto
    - sharepoint
    - confluence
    - datadog
capability:
  exposes:
    - type: mcp
      namespace: equipment
      port: 8080
      tools:
        - name: equipment-predictive-failure-pipeline
          description: "Orchestrates equipment predictive failure pipeline across mining and metals 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: "sharepoint.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: sharepoint
      baseUri: "https://graph.microsoft.com/v1.0/sites"
      authentication:
        type: bearer
        token: "$secrets.sharepoint_token"
      resources:
        - name: sharepoint-resource
          path: "/api/equipment"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: confluence
      baseUri: "https://riotinto.atlassian.net/wiki/rest/api"
      authentication:
        type: bearer
        token: "$secrets.confluence_token"
      resources:
        - name: confluence-resource
          path: "/api/equipment"
          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/equipment"
          operations:
            - name: execute-3
              method: POST

Retrieves expense reports from SAP Concur, validates against Workday cost center data, and opens a ServiceNow task for review.

naftiko: "0.5"
info:
  label: "Expense Report Processing"
  description: "Retrieves expense reports from SAP Concur, validates against Workday cost center data, and opens a ServiceNow task for review."
  tags:
    - finance
    - expense
    - sap-concur
    - workday
    - servicenow
capability:
  exposes:
    - type: mcp
      namespace: finance-expense
      port: 8080
      tools:
        - name: review-expense-report
          description: "Given a Concur report ID and employee ID, fetch details, validate cost center, and flag violations."
          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."
          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 review: {{get-expense-report.report_name}} — {{get-employee.full_name}}"
                description: "Total: {{get-expense-report.total_amount}}. 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://riotinto.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

Orchestrates geological modeling update pipeline across mining and metals systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Geological Modeling Update Pipeline"
  description: "Orchestrates geological modeling update pipeline across mining and metals systems, coordinating multiple services and notifying stakeholders."
  tags:
    - geological
    - rio-tinto
    - slack
    - jira
    - teams
capability:
  exposes:
    - type: mcp
      namespace: geological
      port: 8080
      tools:
        - name: geological-modeling-update-pipeline
          description: "Orchestrates geological modeling update pipeline across mining and metals 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: "jira.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/geological"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: jira
      baseUri: "https://riotinto.atlassian.net/rest/api/3"
      authentication:
        type: bearer
        token: "$secrets.jira_token"
      resources:
        - name: jira-resource
          path: "/api/geological"
          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/geological"
          operations:
            - name: execute-3
              method: POST

Retrieves the latest CI/CD pipeline status from GitLab for a given project.

naftiko: "0.5"
info:
  label: "GitLab Pipeline Status"
  description: "Retrieves the latest CI/CD pipeline status from GitLab for a given project."
  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."
          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.riotinto.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

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."
          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."
          call: "gdrive.upload-file"
          with:
            folder_id: "{{folder_id}}"
            name: "{{file_name}}"
  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

Geocodes a mine site or facility address via Google Maps API.

naftiko: "0.5"
info:
  label: "Google Maps Site Geocoding"
  description: "Geocodes a mine site or facility address via Google Maps API."
  tags:
    - geolocation
    - logistics
    - google-maps
capability:
  exposes:
    - type: mcp
      namespace: geo-maps
      port: 8080
      tools:
        - name: geocode-address
          description: "Geocode an address via Google Maps. Returns lat, lng, and formatted address."
          inputParameters:
            - name: address
              in: body
              type: string
              description: "The address to geocode."
          call: "googlemaps.geocode"
          with:
            address: "{{address}}"
  consumes:
    - type: http
      namespace: googlemaps
      baseUri: "https://maps.googleapis.com/maps/api"
      authentication:
        type: apiKey
        key: "$secrets.google_maps_key"
      resources:
        - name: geocode
          path: "/geocode/json?address={{address}}"
          inputParameters:
            - name: address
              in: path
          operations:
            - name: geocode
              method: GET

Retrieves heavy equipment utilization data from the Rio Tinto mining and metals systems.

naftiko: "0.5"
info:
  label: "Heavy Equipment Utilization"
  description: "Retrieves heavy equipment utilization data from the Rio Tinto mining and metals systems."
  tags:
    - heavy
    - rio-tinto
    - utilization
capability:
  exposes:
    - type: mcp
      namespace: heavy
      port: 8080
      tools:
        - name: heavy-equipment-utilization
          description: "Retrieves heavy equipment utilization data from the Rio Tinto mining and metals systems."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The input id."
          call: "rio-tinto.heavy-equipment-utilization"
          with:
            input_id: "{{input_id}}"
          outputParameters:
            - name: result
              type: string
              mapping: "$.data"
            - name: status
              type: string
              mapping: "$.status"
  consumes:
    - type: http
      namespace: rio-tinto
      baseUri: "https://api.riotinto.com/v2"
      authentication:
        type: bearer
        token: "$secrets.riotinto_api_token"
      resources:
        - name: resource
          path: "/heavy/equipment/utilization/{{input_id}}"
          inputParameters:
            - name: input_id
              in: path
          operations:
            - name: heavy-equipment-utilization
              method: GET

Orchestrates indigenous employment reporting pipeline across mining and metals systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Indigenous Employment Reporting Pipeline"
  description: "Orchestrates indigenous employment reporting pipeline across mining and metals systems, coordinating multiple services and notifying stakeholders."
  tags:
    - indigenous
    - rio-tinto
    - jira
    - teams
    - sharepoint
capability:
  exposes:
    - type: mcp
      namespace: indigenous
      port: 8080
      tools:
        - name: indigenous-employment-reporting-pipeline
          description: "Orchestrates indigenous employment reporting pipeline across mining and metals 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: "teams.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "sharepoint.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: jira
      baseUri: "https://riotinto.atlassian.net/rest/api/3"
      authentication:
        type: bearer
        token: "$secrets.jira_token"
      resources:
        - name: jira-resource
          path: "/api/indigenous"
          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/indigenous"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: sharepoint
      baseUri: "https://graph.microsoft.com/v1.0/sites"
      authentication:
        type: bearer
        token: "$secrets.sharepoint_token"
      resources:
        - name: sharepoint-resource
          path: "/api/indigenous"
          operations:
            - name: execute-3
              method: POST

Orchestrates indigenous heritage protection pipeline across mining and metals systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Indigenous Heritage Protection Pipeline"
  description: "Orchestrates indigenous heritage protection pipeline across mining and metals systems, coordinating multiple services and notifying stakeholders."
  tags:
    - indigenous
    - rio-tinto
    - servicenow
    - sap
    - snowflake
capability:
  exposes:
    - type: mcp
      namespace: indigenous
      port: 8080
      tools:
        - name: indigenous-heritage-protection-pipeline
          description: "Orchestrates indigenous heritage protection pipeline across mining and metals 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: "sap.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "snowflake.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: servicenow
      baseUri: "https://riotinto.service-now.com/api/now"
      authentication:
        type: bearer
        token: "$secrets.servicenow_token"
      resources:
        - name: servicenow-resource
          path: "/api/indigenous"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: sap
      baseUri: "https://riotinto-erp.s4hana.ondemand.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.sap_token"
      resources:
        - name: sap-resource
          path: "/api/indigenous"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: snowflake
      baseUri: "https://riotinto.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: snowflake-resource
          path: "/api/indigenous"
          operations:
            - name: execute-3
              method: POST

When an employee leaves in Workday, deactivates Azure AD, closes ServiceNow tickets, and notifies via Teams.

naftiko: "0.5"
info:
  label: "IT Asset Offboarding Orchestrator"
  description: "When an employee leaves in Workday, deactivates Azure AD, closes ServiceNow tickets, and notifies via Teams."
  tags:
    - hr
    - offboarding
    - workday
    - azure-active-directory
    - servicenow
    - 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 tickets, and notify."
          inputParameters:
            - name: employee_id
              in: body
              type: string
              description: "The Workday employee ID."
            - name: last_day
              in: body
              type: string
              description: "Last working day in YYYY-MM-DD."
          steps:
            - name: get-employee
              type: call
              call: "workday.get-worker"
              with:
                worker_id: "{{employee_id}}"
            - name: disable-ad
              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: "Offboarding: {{get-employee.full_name}} last day {{last_day}}"
            - name: notify-hr
              type: call
              call: "msteams.send-message"
              with:
                recipient_upn: "hr-team@riotinto.com"
                text: "Offboarding complete for {{get-employee.full_name}}. AD disabled, tickets closed. 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://riotinto.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: 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

Sends an email notification via Microsoft Graph.

naftiko: "0.5"
info:
  label: "Microsoft Outlook Email Notification"
  description: "Sends an email notification via Microsoft Graph."
  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."
          inputParameters:
            - name: to_email
              in: body
              type: string
              description: "The recipient email."
            - name: subject
              in: body
              type: string
              description: "The email subject."
            - name: body
              in: body
              type: string
              description: "The email body."
          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 for operations and safety alerts.

naftiko: "0.5"
info:
  label: "Microsoft Teams Channel Notification"
  description: "Sends a message to a Microsoft Teams channel for operations and safety 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."
          inputParameters:
            - name: team_id
              in: body
              type: string
              description: "The Teams team ID."
            - name: channel_id
              in: body
              type: string
              description: "The channel ID."
            - 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 mine biodiversity offset pipeline across mining and metals systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Mine Biodiversity Offset Pipeline"
  description: "Orchestrates mine biodiversity offset pipeline across mining and metals systems, coordinating multiple services and notifying stakeholders."
  tags:
    - mine
    - rio-tinto
    - sharepoint
    - confluence
    - datadog
capability:
  exposes:
    - type: mcp
      namespace: mine
      port: 8080
      tools:
        - name: mine-biodiversity-offset-pipeline
          description: "Orchestrates mine biodiversity offset pipeline across mining and metals 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: "sharepoint.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: sharepoint
      baseUri: "https://graph.microsoft.com/v1.0/sites"
      authentication:
        type: bearer
        token: "$secrets.sharepoint_token"
      resources:
        - name: sharepoint-resource
          path: "/api/mine"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: confluence
      baseUri: "https://riotinto.atlassian.net/wiki/rest/api"
      authentication:
        type: bearer
        token: "$secrets.confluence_token"
      resources:
        - name: confluence-resource
          path: "/api/mine"
          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/mine"
          operations:
            - name: execute-3
              method: POST

Orchestrates mine closure cost estimation pipeline across mining and metals systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Mine Closure Cost Estimation Pipeline"
  description: "Orchestrates mine closure cost estimation pipeline across mining and metals systems, coordinating multiple services and notifying stakeholders."
  tags:
    - mine
    - rio-tinto
    - servicenow
    - sap
    - snowflake
capability:
  exposes:
    - type: mcp
      namespace: mine
      port: 8080
      tools:
        - name: mine-closure-cost-estimation-pipeline
          description: "Orchestrates mine closure cost estimation pipeline across mining and metals 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: "sap.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "snowflake.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: servicenow
      baseUri: "https://riotinto.service-now.com/api/now"
      authentication:
        type: bearer
        token: "$secrets.servicenow_token"
      resources:
        - name: servicenow-resource
          path: "/api/mine"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: sap
      baseUri: "https://riotinto-erp.s4hana.ondemand.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.sap_token"
      resources:
        - name: sap-resource
          path: "/api/mine"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: snowflake
      baseUri: "https://riotinto.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: snowflake-resource
          path: "/api/mine"
          operations:
            - name: execute-3
              method: POST

Coordinates mine closure activities by generating environmental assessment in SAP, creating stakeholder communication in Confluence, scheduling rehabilitation tasks in ServiceNow, and notifying leadership.

naftiko: "0.5"
info:
  label: "Mine Closure Planning Orchestrator"
  description: "Coordinates mine closure activities by generating environmental assessment in SAP, creating stakeholder communication in Confluence, scheduling rehabilitation tasks in ServiceNow, and notifying leadership."
  tags:
    - mining
    - closure
    - sap
    - confluence
    - servicenow
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: mining-closure
      port: 8080
      tools:
        - name: initiate-closure-planning
          description: "Given a site code and target closure date, generate environmental assessment, create comms plan, schedule tasks, and notify leadership."
          inputParameters:
            - name: site_code
              in: body
              type: string
              description: "The mine site code."
            - name: target_closure_date
              in: body
              type: string
              description: "Target closure date in YYYY-MM-DD."
            - name: closure_type
              in: body
              type: string
              description: "Type of closure (temporary, permanent, partial)."
          steps:
            - name: generate-assessment
              type: call
              call: "sap.create-closure-assessment"
              with:
                plant: "{{site_code}}"
                closure_type: "{{closure_type}}"
                target_date: "{{target_closure_date}}"
            - name: create-comms-plan
              type: call
              call: "confluence.create-page"
              with:
                space_key: "MINE_OPS"
                title: "Closure Plan: {{site_code}} — {{closure_type}} by {{target_closure_date}}"
                body: "Site: {{site_code}}. Closure type: {{closure_type}}. Target: {{target_closure_date}}. Assessment: {{generate-assessment.assessment_id}}."
            - name: create-rehab-tasks
              type: call
              call: "servicenow.create-task"
              with:
                short_description: "Mine closure rehabilitation: {{site_code}}"
                description: "{{closure_type}} closure planned for {{target_closure_date}}. Assessment: {{generate-assessment.assessment_id}}."
                assigned_group: "Rehabilitation_Team"
                category: "mine_closure"
            - name: notify-leadership
              type: call
              call: "msteams.send-channel-message"
              with:
                team_id: "executive_team"
                channel: "Operations"
                text: "Mine closure initiated: {{site_code}} ({{closure_type}}) target {{target_closure_date}}. Plan: {{create-comms-plan.url}}. Rehab task: {{create-rehab-tasks.number}}."
  consumes:
    - type: http
      namespace: sap
      baseUri: "https://riotinto-s4.sap.com/sap/opu/odata/sap/MINE_CLOSURE_SRV"
      authentication:
        type: basic
        username: "$secrets.sap_user"
        password: "$secrets.sap_password"
      resources:
        - name: assessments
          path: "/ClosureAssessments"
          operations:
            - name: create-closure-assessment
              method: POST
    - type: http
      namespace: confluence
      baseUri: "https://riotinto.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://riotinto.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
    - 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

Orchestrates mine closure rehabilitation pipeline across mining and metals systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Mine Closure Rehabilitation Pipeline"
  description: "Orchestrates mine closure rehabilitation pipeline across mining and metals systems, coordinating multiple services and notifying stakeholders."
  tags:
    - mine
    - rio-tinto
    - jira
    - teams
    - sharepoint
capability:
  exposes:
    - type: mcp
      namespace: mine
      port: 8080
      tools:
        - name: mine-closure-rehabilitation-pipeline
          description: "Orchestrates mine closure rehabilitation pipeline across mining and metals 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: "teams.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "sharepoint.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: jira
      baseUri: "https://riotinto.atlassian.net/rest/api/3"
      authentication:
        type: bearer
        token: "$secrets.jira_token"
      resources:
        - name: jira-resource
          path: "/api/mine"
          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/mine"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: sharepoint
      baseUri: "https://graph.microsoft.com/v1.0/sites"
      authentication:
        type: bearer
        token: "$secrets.sharepoint_token"
      resources:
        - name: sharepoint-resource
          path: "/api/mine"
          operations:
            - name: execute-3
              method: POST

Orchestrates mine cost benchmarking pipeline across mining and metals systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Mine Cost Benchmarking Pipeline"
  description: "Orchestrates mine cost benchmarking pipeline across mining and metals systems, coordinating multiple services and notifying stakeholders."
  tags:
    - mine
    - rio-tinto
    - datadog
    - rio-tinto
    - servicenow
capability:
  exposes:
    - type: mcp
      namespace: mine
      port: 8080
      tools:
        - name: mine-cost-benchmarking-pipeline
          description: "Orchestrates mine cost benchmarking pipeline across mining and metals 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: "rio-tinto.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "servicenow.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/mine"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: rio-tinto
      baseUri: "https://api.riotinto.com/v2"
      authentication:
        type: bearer
        token: "$secrets.riotinto_api_token"
      resources:
        - name: rio-tinto-resource
          path: "/api/mine"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: servicenow
      baseUri: "https://riotinto.service-now.com/api/now"
      authentication:
        type: bearer
        token: "$secrets.servicenow_token"
      resources:
        - name: servicenow-resource
          path: "/api/mine"
          operations:
            - name: execute-3
              method: POST

Retrieves mine dewatering status data from the Rio Tinto mining and metals systems.

naftiko: "0.5"
info:
  label: "Mine Dewatering Status"
  description: "Retrieves mine dewatering status data from the Rio Tinto mining and metals systems."
  tags:
    - mine
    - rio-tinto
    - status
capability:
  exposes:
    - type: mcp
      namespace: mine
      port: 8080
      tools:
        - name: mine-dewatering-status
          description: "Retrieves mine dewatering status data from the Rio Tinto mining and metals systems."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The input id."
          call: "rio-tinto.mine-dewatering-status"
          with:
            input_id: "{{input_id}}"
          outputParameters:
            - name: result
              type: string
              mapping: "$.data"
            - name: status
              type: string
              mapping: "$.status"
  consumes:
    - type: http
      namespace: rio-tinto
      baseUri: "https://api.riotinto.com/v2"
      authentication:
        type: bearer
        token: "$secrets.riotinto_api_token"
      resources:
        - name: resource
          path: "/mine/dewatering/status/{{input_id}}"
          inputParameters:
            - name: input_id
              in: path
          operations:
            - name: mine-dewatering-status
              method: GET

Coordinates emergency response at mine sites by alerting responders, activating protocols, and tracking incident resolution.

naftiko: "0.5"
info:
  label: "Mine Emergency Response Pipeline"
  description: "Coordinates emergency response at mine sites by alerting responders, activating protocols, and tracking incident resolution."
  tags:
    - safety
    - rio-tinto
    - servicenow
    - slack
capability:
  exposes:
    - type: mcp
      namespace: safety
      port: 8080
      tools:
        - name: mine-emergency-response-pipeline
          description: "Coordinates emergency response at mine sites by alerting responders, activating protocols, and tracking incident resolution."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: alert-responders
              type: call
              call: "slack.post-message"
              with:
                input: "{{input_id}}"
            - name: create-incident
              type: call
              call: "servicenow.create-incident"
              with:
                input: "{{input_id}}"
            - name: track-resolution
              type: call
              call: "jira.create-issue"
              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: "/chat.postMessage"
          operations:
            - name: post-message
              method: POST
    - type: http
      namespace: servicenow
      baseUri: "https://riotinto.service-now.com/api/now"
      authentication:
        type: bearer
        token: "$secrets.servicenow_token"
      resources:
        - name: servicenow-resource
          path: "/table/incident"
          operations:
            - name: create-incident
              method: POST
    - type: http
      namespace: jira
      baseUri: "https://riotinto.atlassian.net/rest/api/3"
      authentication:
        type: bearer
        token: "$secrets.jira_token"
      resources:
        - name: jira-resource
          path: "/issue"
          operations:
            - name: create-issue
              method: POST

Orchestrates mine energy management pipeline across mining and metals systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Mine Energy Management Pipeline"
  description: "Orchestrates mine energy management pipeline across mining and metals systems, coordinating multiple services and notifying stakeholders."
  tags:
    - mine
    - rio-tinto
    - confluence
    - datadog
    - rio-tinto
capability:
  exposes:
    - type: mcp
      namespace: mine
      port: 8080
      tools:
        - name: mine-energy-management-pipeline
          description: "Orchestrates mine energy management pipeline across mining and metals 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: "rio-tinto.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: confluence
      baseUri: "https://riotinto.atlassian.net/wiki/rest/api"
      authentication:
        type: bearer
        token: "$secrets.confluence_token"
      resources:
        - name: confluence-resource
          path: "/api/mine"
          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/mine"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: rio-tinto
      baseUri: "https://api.riotinto.com/v2"
      authentication:
        type: bearer
        token: "$secrets.riotinto_api_token"
      resources:
        - name: rio-tinto-resource
          path: "/api/mine"
          operations:
            - name: execute-3
              method: POST

Orchestrates mine geotechnical monitoring pipeline across mining and metals systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Mine Geotechnical Monitoring Pipeline"
  description: "Orchestrates mine geotechnical monitoring pipeline across mining and metals systems, coordinating multiple services and notifying stakeholders."
  tags:
    - mine
    - rio-tinto
    - snowflake
    - slack
    - jira
capability:
  exposes:
    - type: mcp
      namespace: mine
      port: 8080
      tools:
        - name: mine-geotechnical-monitoring-pipeline
          description: "Orchestrates mine geotechnical monitoring pipeline across mining and metals 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: "jira.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: snowflake
      baseUri: "https://riotinto.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: snowflake-resource
          path: "/api/mine"
          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/mine"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: jira
      baseUri: "https://riotinto.atlassian.net/rest/api/3"
      authentication:
        type: bearer
        token: "$secrets.jira_token"
      resources:
        - name: jira-resource
          path: "/api/mine"
          operations:
            - name: execute-3
              method: POST

Orchestrates mine permit renewal pipeline across mining and metals systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Mine Permit Renewal Pipeline"
  description: "Orchestrates mine permit renewal pipeline across mining and metals systems, coordinating multiple services and notifying stakeholders."
  tags:
    - mine
    - rio-tinto
    - jira
    - teams
    - sharepoint
capability:
  exposes:
    - type: mcp
      namespace: mine
      port: 8080
      tools:
        - name: mine-permit-renewal-pipeline
          description: "Orchestrates mine permit renewal pipeline across mining and metals 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: "teams.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "sharepoint.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: jira
      baseUri: "https://riotinto.atlassian.net/rest/api/3"
      authentication:
        type: bearer
        token: "$secrets.jira_token"
      resources:
        - name: jira-resource
          path: "/api/mine"
          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/mine"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: sharepoint
      baseUri: "https://graph.microsoft.com/v1.0/sites"
      authentication:
        type: bearer
        token: "$secrets.sharepoint_token"
      resources:
        - name: sharepoint-resource
          path: "/api/mine"
          operations:
            - name: execute-3
              method: POST

Orchestrates mine planning scenario pipeline across mining and metals systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Mine Planning Scenario Pipeline"
  description: "Orchestrates mine planning scenario pipeline across mining and metals systems, coordinating multiple services and notifying stakeholders."
  tags:
    - mine
    - rio-tinto
    - sap
    - snowflake
    - slack
capability:
  exposes:
    - type: mcp
      namespace: mine
      port: 8080
      tools:
        - name: mine-planning-scenario-pipeline
          description: "Orchestrates mine planning scenario pipeline across mining and metals 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: "snowflake.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "slack.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: sap
      baseUri: "https://riotinto-erp.s4hana.ondemand.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.sap_token"
      resources:
        - name: sap-resource
          path: "/api/mine"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: snowflake
      baseUri: "https://riotinto.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: snowflake-resource
          path: "/api/mine"
          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/mine"
          operations:
            - name: execute-3
              method: POST

Retrieves production output data from SAP for a mine site, returning tonnes processed, grade, and recovery rate.

naftiko: "0.5"
info:
  label: "Mine Production Output Lookup"
  description: "Retrieves production output data from SAP for a mine site, returning tonnes processed, grade, and recovery rate."
  tags:
    - mining
    - production
    - sap
capability:
  exposes:
    - type: mcp
      namespace: mining-production
      port: 8080
      tools:
        - name: get-production-output
          description: "Query SAP for mine production output. Returns tonnes processed, ore grade, and recovery rate."
          inputParameters:
            - name: site_code
              in: body
              type: string
              description: "The mine site code."
            - name: period
              in: body
              type: string
              description: "The production period (YYYY-MM)."
          call: "sap.get-production-data"
          with:
            plant: "{{site_code}}"
            period: "{{period}}"
  consumes:
    - type: http
      namespace: sap
      baseUri: "https://riotinto-s4.sap.com/sap/opu/odata/sap/PRODUCTION_OUTPUT_SRV"
      authentication:
        type: basic
        username: "$secrets.sap_user"
        password: "$secrets.sap_password"
      resources:
        - name: production
          path: "/ProductionOutput?$filter=Plant eq '{{plant}}' and Period eq '{{period}}'"
          inputParameters:
            - name: plant
              in: path
            - name: period
              in: path
          operations:
            - name: get-production-data
              method: GET

Orchestrates mine safety incident pipeline across mining and metals systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Mine Safety Incident Pipeline"
  description: "Orchestrates mine safety incident pipeline across mining and metals systems, coordinating multiple services and notifying stakeholders."
  tags:
    - mine
    - rio-tinto
    - sap
    - snowflake
    - slack
capability:
  exposes:
    - type: mcp
      namespace: mine
      port: 8080
      tools:
        - name: mine-safety-incident-pipeline
          description: "Orchestrates mine safety incident pipeline across mining and metals 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: "snowflake.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "slack.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: sap
      baseUri: "https://riotinto-erp.s4hana.ondemand.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.sap_token"
      resources:
        - name: sap-resource
          path: "/api/mine"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: snowflake
      baseUri: "https://riotinto.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: snowflake-resource
          path: "/api/mine"
          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/mine"
          operations:
            - name: execute-3
              method: POST

When a safety incident occurs at a mine site, creates a ServiceNow P1 incident, updates the safety record in SAP, notifies the site manager via Microsoft Teams, and logs in Datadog.

naftiko: "0.5"
info:
  label: "Mine Site Safety Incident Orchestrator"
  description: "When a safety incident occurs at a mine site, creates a ServiceNow P1 incident, updates the safety record in SAP, notifies the site manager via Microsoft Teams, and logs in Datadog."
  tags:
    - safety
    - mining
    - servicenow
    - sap
    - microsoft-teams
    - datadog
capability:
  exposes:
    - type: mcp
      namespace: safety-incidents
      port: 8080
      tools:
        - name: report-safety-incident
          description: "Given site code and incident details, create ServiceNow incident, update SAP, notify management, and log in Datadog."
          inputParameters:
            - name: site_code
              in: body
              type: string
              description: "The mine site code."
            - name: incident_type
              in: body
              type: string
              description: "Type of safety incident (injury, near-miss, environmental)."
            - name: severity
              in: body
              type: string
              description: "Severity level (critical, major, minor)."
            - name: description
              in: body
              type: string
              description: "Description of the incident."
            - name: reporter_id
              in: body
              type: string
              description: "Employee ID of the reporter."
          steps:
            - name: get-reporter
              type: call
              call: "workday.get-worker"
              with:
                worker_id: "{{reporter_id}}"
            - name: create-incident
              type: call
              call: "servicenow.create-incident"
              with:
                short_description: "Safety incident at {{site_code}}: {{incident_type}} ({{severity}})"
                priority: "1"
                category: "safety"
                assigned_group: "Safety_{{site_code}}"
                description: "Reporter: {{get-reporter.full_name}}. Type: {{incident_type}}. Severity: {{severity}}. Details: {{description}}."
            - name: log-sap-notification
              type: call
              call: "sap.create-safety-notification"
              with:
                site: "{{site_code}}"
                notification_type: "safety_incident"
                description: "{{incident_type}} — {{severity}}: {{description}}"
            - name: notify-management
              type: call
              call: "msteams.send-channel-message"
              with:
                team_id: "safety_{{site_code}}"
                channel: "Incidents"
                text: "SAFETY INCIDENT at {{site_code}}: {{incident_type}} ({{severity}}). Reporter: {{get-reporter.full_name}}. Incident: {{create-incident.number}}. Details: {{description}}."
            - name: log-event
              type: call
              call: "datadog.send-event"
              with:
                title: "Safety incident at {{site_code}}: {{incident_type}}"
                text: "Severity: {{severity}}, Reporter: {{reporter_id}}"
                alert_type: "error"
                tags: "site:{{site_code}},type:safety,severity:{{severity}}"
  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://riotinto.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: sap
      baseUri: "https://riotinto-s4.sap.com/sap/opu/odata/sap/EHS_INCIDENT_SRV"
      authentication:
        type: basic
        username: "$secrets.sap_user"
        password: "$secrets.sap_password"
      resources:
        - name: safety-notifications
          path: "/SafetyNotifications"
          operations:
            - name: create-safety-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
    - 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 mine to port supply chain pipeline across mining and metals systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Mine To Port Supply Chain Pipeline"
  description: "Orchestrates mine to port supply chain pipeline across mining and metals systems, coordinating multiple services and notifying stakeholders."
  tags:
    - mine
    - rio-tinto
    - jira
    - teams
    - sharepoint
capability:
  exposes:
    - type: mcp
      namespace: mine
      port: 8080
      tools:
        - name: mine-to-port-supply-chain-pipeline
          description: "Orchestrates mine to port supply chain pipeline across mining and metals 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: "teams.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "sharepoint.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: jira
      baseUri: "https://riotinto.atlassian.net/rest/api/3"
      authentication:
        type: bearer
        token: "$secrets.jira_token"
      resources:
        - name: jira-resource
          path: "/api/mine"
          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/mine"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: sharepoint
      baseUri: "https://graph.microsoft.com/v1.0/sites"
      authentication:
        type: bearer
        token: "$secrets.sharepoint_token"
      resources:
        - name: sharepoint-resource
          path: "/api/mine"
          operations:
            - name: execute-3
              method: POST

Orchestrates mine training compliance pipeline across mining and metals systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Mine Training Compliance Pipeline"
  description: "Orchestrates mine training compliance pipeline across mining and metals systems, coordinating multiple services and notifying stakeholders."
  tags:
    - mine
    - rio-tinto
    - slack
    - jira
    - teams
capability:
  exposes:
    - type: mcp
      namespace: mine
      port: 8080
      tools:
        - name: mine-training-compliance-pipeline
          description: "Orchestrates mine training compliance pipeline across mining and metals 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: "jira.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/mine"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: jira
      baseUri: "https://riotinto.atlassian.net/rest/api/3"
      authentication:
        type: bearer
        token: "$secrets.jira_token"
      resources:
        - name: jira-resource
          path: "/api/mine"
          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/mine"
          operations:
            - name: execute-3
              method: POST

Retrieves mine ventilation status data from the Rio Tinto mining and metals systems.

naftiko: "0.5"
info:
  label: "Mine Ventilation Status"
  description: "Retrieves mine ventilation status data from the Rio Tinto mining and metals systems."
  tags:
    - mine
    - rio-tinto
    - status
capability:
  exposes:
    - type: mcp
      namespace: mine
      port: 8080
      tools:
        - name: mine-ventilation-status
          description: "Retrieves mine ventilation status data from the Rio Tinto mining and metals systems."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The input id."
          call: "rio-tinto.mine-ventilation-status"
          with:
            input_id: "{{input_id}}"
          outputParameters:
            - name: result
              type: string
              mapping: "$.data"
            - name: status
              type: string
              mapping: "$.status"
  consumes:
    - type: http
      namespace: rio-tinto
      baseUri: "https://api.riotinto.com/v2"
      authentication:
        type: bearer
        token: "$secrets.riotinto_api_token"
      resources:
        - name: resource
          path: "/mine/ventilation/status/{{input_id}}"
          inputParameters:
            - name: input_id
              in: path
          operations:
            - name: mine-ventilation-status
              method: GET

Orchestrates mine water recycling pipeline across mining and metals systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Mine Water Recycling Pipeline"
  description: "Orchestrates mine water recycling pipeline across mining and metals systems, coordinating multiple services and notifying stakeholders."
  tags:
    - mine
    - rio-tinto
    - servicenow
    - sap
    - snowflake
capability:
  exposes:
    - type: mcp
      namespace: mine
      port: 8080
      tools:
        - name: mine-water-recycling-pipeline
          description: "Orchestrates mine water recycling pipeline across mining and metals 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: "sap.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "snowflake.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: servicenow
      baseUri: "https://riotinto.service-now.com/api/now"
      authentication:
        type: bearer
        token: "$secrets.servicenow_token"
      resources:
        - name: servicenow-resource
          path: "/api/mine"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: sap
      baseUri: "https://riotinto-erp.s4hana.ondemand.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.sap_token"
      resources:
        - name: sap-resource
          path: "/api/mine"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: snowflake
      baseUri: "https://riotinto.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: snowflake-resource
          path: "/api/mine"
          operations:
            - name: execute-3
              method: POST

Orchestrates mine workforce safety pipeline across mining and metals systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Mine Workforce Safety Pipeline"
  description: "Orchestrates mine workforce safety pipeline across mining and metals systems, coordinating multiple services and notifying stakeholders."
  tags:
    - mine
    - rio-tinto
    - confluence
    - datadog
    - rio-tinto
capability:
  exposes:
    - type: mcp
      namespace: mine
      port: 8080
      tools:
        - name: mine-workforce-safety-pipeline
          description: "Orchestrates mine workforce safety pipeline across mining and metals 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: "rio-tinto.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: confluence
      baseUri: "https://riotinto.atlassian.net/wiki/rest/api"
      authentication:
        type: bearer
        token: "$secrets.confluence_token"
      resources:
        - name: confluence-resource
          path: "/api/mine"
          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/mine"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: rio-tinto
      baseUri: "https://api.riotinto.com/v2"
      authentication:
        type: bearer
        token: "$secrets.riotinto_api_token"
      resources:
        - name: rio-tinto-resource
          path: "/api/mine"
          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 metrics."
          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 financial planning and budgeting data from Oracle Hyperion for a cost center and period.

naftiko: "0.5"
info:
  label: "Oracle Hyperion Financial Report"
  description: "Retrieves financial planning and budgeting data from Oracle Hyperion for a cost center and period."
  tags:
    - finance
    - planning
    - oracle-hyperion
capability:
  exposes:
    - type: mcp
      namespace: finance-hyperion
      port: 8080
      tools:
        - name: get-financial-report
          description: "Query Oracle Hyperion for budget vs actuals. Returns planned, actual, and variance."
          inputParameters:
            - name: cost_center
              in: body
              type: string
              description: "The cost center code."
            - name: period
              in: body
              type: string
              description: "The reporting period (YYYY-MM)."
          call: "hyperion.get-report"
          with:
            cost_center: "{{cost_center}}"
            period: "{{period}}"
  consumes:
    - type: http
      namespace: hyperion
      baseUri: "https://riotinto-hyperion.oracle.com/HyperionPlanning/rest/v3"
      authentication:
        type: basic
        username: "$secrets.hyperion_user"
        password: "$secrets.hyperion_password"
      resources:
        - name: reports
          path: "/applications/FinPlan/plantypes/Plan1/exportdataslice"
          operations:
            - name: get-report
              method: POST

Retrieves ore beneficiation recovery rate data from the Rio Tinto mining and metals systems.

naftiko: "0.5"
info:
  label: "Ore Beneficiation Recovery Rate"
  description: "Retrieves ore beneficiation recovery rate data from the Rio Tinto mining and metals systems."
  tags:
    - ore
    - rio-tinto
    - rate
capability:
  exposes:
    - type: mcp
      namespace: ore
      port: 8080
      tools:
        - name: ore-beneficiation-recovery-rate
          description: "Retrieves ore beneficiation recovery rate data from the Rio Tinto mining and metals systems."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The input id."
          call: "rio-tinto.ore-beneficiation-recovery-rate"
          with:
            input_id: "{{input_id}}"
          outputParameters:
            - name: result
              type: string
              mapping: "$.data"
            - name: status
              type: string
              mapping: "$.status"
  consumes:
    - type: http
      namespace: rio-tinto
      baseUri: "https://api.riotinto.com/v2"
      authentication:
        type: bearer
        token: "$secrets.riotinto_api_token"
      resources:
        - name: resource
          path: "/ore/beneficiation/recovery/rate/{{input_id}}"
          inputParameters:
            - name: input_id
              in: path
          operations:
            - name: ore-beneficiation-recovery-rate
              method: GET

Orchestrates ore blending optimization pipeline across mining and metals systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Ore Blending Optimization Pipeline"
  description: "Orchestrates ore blending optimization pipeline across mining and metals systems, coordinating multiple services and notifying stakeholders."
  tags:
    - ore
    - rio-tinto
    - datadog
    - rio-tinto
    - servicenow
capability:
  exposes:
    - type: mcp
      namespace: ore
      port: 8080
      tools:
        - name: ore-blending-optimization-pipeline
          description: "Orchestrates ore blending optimization pipeline across mining and metals 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: "rio-tinto.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "servicenow.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/ore"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: rio-tinto
      baseUri: "https://api.riotinto.com/v2"
      authentication:
        type: bearer
        token: "$secrets.riotinto_api_token"
      resources:
        - name: rio-tinto-resource
          path: "/api/ore"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: servicenow
      baseUri: "https://riotinto.service-now.com/api/now"
      authentication:
        type: bearer
        token: "$secrets.servicenow_token"
      resources:
        - name: servicenow-resource
          path: "/api/ore"
          operations:
            - name: execute-3
              method: POST

Orchestrates ore grade reconciliation pipeline across mining and metals systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Ore Grade Reconciliation Pipeline"
  description: "Orchestrates ore grade reconciliation pipeline across mining and metals systems, coordinating multiple services and notifying stakeholders."
  tags:
    - ore
    - rio-tinto
    - servicenow
    - sap
    - snowflake
capability:
  exposes:
    - type: mcp
      namespace: ore
      port: 8080
      tools:
        - name: ore-grade-reconciliation-pipeline
          description: "Orchestrates ore grade reconciliation pipeline across mining and metals 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: "sap.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "snowflake.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: servicenow
      baseUri: "https://riotinto.service-now.com/api/now"
      authentication:
        type: bearer
        token: "$secrets.servicenow_token"
      resources:
        - name: servicenow-resource
          path: "/api/ore"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: sap
      baseUri: "https://riotinto-erp.s4hana.ondemand.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.sap_token"
      resources:
        - name: sap-resource
          path: "/api/ore"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: snowflake
      baseUri: "https://riotinto.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: snowflake-resource
          path: "/api/ore"
          operations:
            - name: execute-3
              method: POST

When ore grade deviates from plan, logs the variance in SAP, creates a ServiceNow investigation task, notifies the geology team via Teams, and records the metric in Datadog.

naftiko: "0.5"
info:
  label: "Ore Grade Variance Alert Orchestrator"
  description: "When ore grade deviates from plan, logs the variance in SAP, creates a ServiceNow investigation task, notifies the geology team via Teams, and records the metric in Datadog."
  tags:
    - mining
    - quality
    - sap
    - servicenow
    - microsoft-teams
    - datadog
capability:
  exposes:
    - type: mcp
      namespace: mining-grade-variance
      port: 8080
      tools:
        - name: handle-grade-variance
          description: "Given site, block, and grade data, log variance in SAP, create investigation, notify geology, and record metrics."
          inputParameters:
            - name: site_code
              in: body
              type: string
              description: "The mine site code."
            - name: block_id
              in: body
              type: string
              description: "The mining block identifier."
            - name: planned_grade
              in: body
              type: number
              description: "The planned ore grade percentage."
            - name: actual_grade
              in: body
              type: number
              description: "The actual ore grade percentage."
          steps:
            - name: log-variance
              type: call
              call: "sap.create-quality-notification"
              with:
                notification_type: "grade_variance"
                description: "Block {{block_id}} at {{site_code}}: planned {{planned_grade}}% vs actual {{actual_grade}}%"
                plant: "{{site_code}}"
            - name: create-investigation
              type: call
              call: "servicenow.create-task"
              with:
                short_description: "Grade variance: Block {{block_id}} at {{site_code}}"
                description: "Planned: {{planned_grade}}%. Actual: {{actual_grade}}%. Variance: significant. SAP: {{log-variance.notification_id}}."
                assigned_group: "Geology_{{site_code}}"
                category: "grade_control"
            - name: notify-geology
              type: call
              call: "msteams.send-channel-message"
              with:
                team_id: "geology_{{site_code}}"
                channel: "Grade-Control"
                text: "Grade variance at {{site_code}} block {{block_id}}: planned {{planned_grade}}% vs actual {{actual_grade}}%. Investigation: {{create-investigation.number}}."
            - name: record-metric
              type: call
              call: "datadog.send-event"
              with:
                title: "Grade variance: {{site_code}} block {{block_id}}"
                text: "Planned: {{planned_grade}}%, Actual: {{actual_grade}}%"
                tags: "site:{{site_code}},block:{{block_id}},type:grade_variance"
  consumes:
    - type: http
      namespace: sap
      baseUri: "https://riotinto-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://riotinto.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
    - 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 ore processing optimization pipeline across mining and metals systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Ore Processing Optimization Pipeline"
  description: "Orchestrates ore processing optimization pipeline across mining and metals systems, coordinating multiple services and notifying stakeholders."
  tags:
    - ore
    - rio-tinto
    - datadog
    - rio-tinto
    - servicenow
capability:
  exposes:
    - type: mcp
      namespace: ore
      port: 8080
      tools:
        - name: ore-processing-optimization-pipeline
          description: "Orchestrates ore processing optimization pipeline across mining and metals 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: "rio-tinto.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "servicenow.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/ore"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: rio-tinto
      baseUri: "https://api.riotinto.com/v2"
      authentication:
        type: bearer
        token: "$secrets.riotinto_api_token"
      resources:
        - name: rio-tinto-resource
          path: "/api/ore"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: servicenow
      baseUri: "https://riotinto.service-now.com/api/now"
      authentication:
        type: bearer
        token: "$secrets.servicenow_token"
      resources:
        - name: servicenow-resource
          path: "/api/ore"
          operations:
            - name: execute-3
              method: POST

Retrieves ore stockpile volume lookup data from the Rio Tinto mining and metals systems.

naftiko: "0.5"
info:
  label: "Ore Stockpile Volume Lookup"
  description: "Retrieves ore stockpile volume lookup data from the Rio Tinto mining and metals systems."
  tags:
    - ore
    - rio-tinto
    - lookup
capability:
  exposes:
    - type: mcp
      namespace: ore
      port: 8080
      tools:
        - name: ore-stockpile-volume-lookup
          description: "Retrieves ore stockpile volume lookup data from the Rio Tinto mining and metals systems."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The input id."
          call: "rio-tinto.ore-stockpile-volume-lookup"
          with:
            input_id: "{{input_id}}"
          outputParameters:
            - name: result
              type: string
              mapping: "$.data"
            - name: status
              type: string
              mapping: "$.status"
  consumes:
    - type: http
      namespace: rio-tinto
      baseUri: "https://api.riotinto.com/v2"
      authentication:
        type: bearer
        token: "$secrets.riotinto_api_token"
      resources:
        - name: resource
          path: "/ore/stockpile/volume/lookup/{{input_id}}"
          inputParameters:
            - name: input_id
              in: path
          operations:
            - name: ore-stockpile-volume-lookup
              method: GET

Orchestrates ore transport scheduling pipeline across mining and metals systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Ore Transport Scheduling Pipeline"
  description: "Orchestrates ore transport scheduling pipeline across mining and metals systems, coordinating multiple services and notifying stakeholders."
  tags:
    - ore
    - rio-tinto
    - teams
    - sharepoint
    - confluence
capability:
  exposes:
    - type: mcp
      namespace: ore
      port: 8080
      tools:
        - name: ore-transport-scheduling-pipeline
          description: "Orchestrates ore transport scheduling pipeline across mining and metals 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: "sharepoint.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/ore"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: sharepoint
      baseUri: "https://graph.microsoft.com/v1.0/sites"
      authentication:
        type: bearer
        token: "$secrets.sharepoint_token"
      resources:
        - name: sharepoint-resource
          path: "/api/ore"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: confluence
      baseUri: "https://riotinto.atlassian.net/wiki/rest/api"
      authentication:
        type: bearer
        token: "$secrets.confluence_token"
      resources:
        - name: confluence-resource
          path: "/api/ore"
          operations:
            - name: execute-3
              method: POST

Orchestrates pit optimization pipeline across mining and metals systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Pit Optimization Pipeline"
  description: "Orchestrates pit optimization pipeline across mining and metals systems, coordinating multiple services and notifying stakeholders."
  tags:
    - pit
    - rio-tinto
    - sap
    - snowflake
    - slack
capability:
  exposes:
    - type: mcp
      namespace: pit
      port: 8080
      tools:
        - name: pit-optimization-pipeline
          description: "Orchestrates pit optimization pipeline across mining and metals 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: "snowflake.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "slack.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: sap
      baseUri: "https://riotinto-erp.s4hana.ondemand.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.sap_token"
      resources:
        - name: sap-resource
          path: "/api/pit"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: snowflake
      baseUri: "https://riotinto.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: snowflake-resource
          path: "/api/pit"
          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/pit"
          operations:
            - name: execute-3
              method: POST

Retrieves pit slope stability reading data from the Rio Tinto mining and metals systems.

naftiko: "0.5"
info:
  label: "Pit Slope Stability Reading"
  description: "Retrieves pit slope stability reading data from the Rio Tinto mining and metals systems."
  tags:
    - pit
    - rio-tinto
    - reading
capability:
  exposes:
    - type: mcp
      namespace: pit
      port: 8080
      tools:
        - name: pit-slope-stability-reading
          description: "Retrieves pit slope stability reading data from the Rio Tinto mining and metals systems."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The input id."
          call: "rio-tinto.pit-slope-stability-reading"
          with:
            input_id: "{{input_id}}"
          outputParameters:
            - name: result
              type: string
              mapping: "$.data"
            - name: status
              type: string
              mapping: "$.status"
  consumes:
    - type: http
      namespace: rio-tinto
      baseUri: "https://api.riotinto.com/v2"
      authentication:
        type: bearer
        token: "$secrets.riotinto_api_token"
      resources:
        - name: resource
          path: "/pit/slope/stability/reading/{{input_id}}"
          inputParameters:
            - name: input_id
              in: path
          operations:
            - name: pit-slope-stability-reading
              method: GET

Retrieves port loading schedule data from the Rio Tinto mining and metals systems.

naftiko: "0.5"
info:
  label: "Port Loading Schedule"
  description: "Retrieves port loading schedule data from the Rio Tinto mining and metals systems."
  tags:
    - port
    - rio-tinto
    - schedule
capability:
  exposes:
    - type: mcp
      namespace: port
      port: 8080
      tools:
        - name: port-loading-schedule
          description: "Retrieves port loading schedule data from the Rio Tinto mining and metals systems."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The input id."
          call: "rio-tinto.port-loading-schedule"
          with:
            input_id: "{{input_id}}"
          outputParameters:
            - name: result
              type: string
              mapping: "$.data"
            - name: status
              type: string
              mapping: "$.status"
  consumes:
    - type: http
      namespace: rio-tinto
      baseUri: "https://api.riotinto.com/v2"
      authentication:
        type: bearer
        token: "$secrets.riotinto_api_token"
      resources:
        - name: resource
          path: "/port/loading/schedule/{{input_id}}"
          inputParameters:
            - name: input_id
              in: path
          operations:
            - name: port-loading-schedule
              method: GET

Orchestrates port stockpile management pipeline across mining and metals systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Port Stockpile Management Pipeline"
  description: "Orchestrates port stockpile management pipeline across mining and metals systems, coordinating multiple services and notifying stakeholders."
  tags:
    - port
    - rio-tinto
    - rio-tinto
    - servicenow
    - sap
capability:
  exposes:
    - type: mcp
      namespace: port
      port: 8080
      tools:
        - name: port-stockpile-management-pipeline
          description: "Orchestrates port stockpile management pipeline across mining and metals 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: "rio-tinto.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: "sap.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: rio-tinto
      baseUri: "https://api.riotinto.com/v2"
      authentication:
        type: bearer
        token: "$secrets.riotinto_api_token"
      resources:
        - name: rio-tinto-resource
          path: "/api/port"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: servicenow
      baseUri: "https://riotinto.service-now.com/api/now"
      authentication:
        type: bearer
        token: "$secrets.servicenow_token"
      resources:
        - name: servicenow-resource
          path: "/api/port"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: sap
      baseUri: "https://riotinto-erp.s4hana.ondemand.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.sap_token"
      resources:
        - name: sap-resource
          path: "/api/port"
          operations:
            - name: execute-3
              method: POST

Triggers a dataset refresh in Power BI for mining operations and safety dashboards.

naftiko: "0.5"
info:
  label: "Power BI Dashboard Refresh"
  description: "Triggers a dataset refresh in Power BI for mining operations and safety 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 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 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

Generates an embed token for a Power BI report for embedding in internal portals.

naftiko: "0.5"
info:
  label: "Power BI Embedded Report Access"
  description: "Generates an embed token for a Power BI report for embedding in internal portals."
  tags:
    - analytics
    - reporting
    - power-bi
capability:
  exposes:
    - type: mcp
      namespace: bi-embed
      port: 8080
      tools:
        - name: get-embed-token
          description: "Generate a Power BI embed token for a report. Returns token and embed URL."
          inputParameters:
            - name: report_id
              in: body
              type: string
              description: "The Power BI report ID."
            - name: group_id
              in: body
              type: string
              description: "The Power BI workspace ID."
          call: "powerbi.generate-embed-token"
          with:
            report_id: "{{report_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: reports
          path: "/groups/{{group_id}}/reports/{{report_id}}/GenerateToken"
          inputParameters:
            - name: group_id
              in: path
            - name: report_id
              in: path
          operations:
            - name: generate-embed-token
              method: POST

Orchestrates rail logistics optimization pipeline across mining and metals systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Rail Logistics Optimization Pipeline"
  description: "Orchestrates rail logistics optimization pipeline across mining and metals systems, coordinating multiple services and notifying stakeholders."
  tags:
    - rail
    - rio-tinto
    - slack
    - jira
    - teams
capability:
  exposes:
    - type: mcp
      namespace: rail
      port: 8080
      tools:
        - name: rail-logistics-optimization-pipeline
          description: "Orchestrates rail logistics optimization pipeline across mining and metals 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: "jira.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/rail"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: jira
      baseUri: "https://riotinto.atlassian.net/rest/api/3"
      authentication:
        type: bearer
        token: "$secrets.jira_token"
      resources:
        - name: jira-resource
          path: "/api/rail"
          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/rail"
          operations:
            - name: execute-3
              method: POST

Orchestrates rail maintenance scheduling pipeline across mining and metals systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Rail Maintenance Scheduling Pipeline"
  description: "Orchestrates rail maintenance scheduling pipeline across mining and metals systems, coordinating multiple services and notifying stakeholders."
  tags:
    - rail
    - rio-tinto
    - slack
    - jira
    - teams
capability:
  exposes:
    - type: mcp
      namespace: rail
      port: 8080
      tools:
        - name: rail-maintenance-scheduling-pipeline
          description: "Orchestrates rail maintenance scheduling pipeline across mining and metals 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: "jira.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/rail"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: jira
      baseUri: "https://riotinto.atlassian.net/rest/api/3"
      authentication:
        type: bearer
        token: "$secrets.jira_token"
      resources:
        - name: jira-resource
          path: "/api/rail"
          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/rail"
          operations:
            - name: execute-3
              method: POST

Retrieves rail shipment tracking data from the Rio Tinto mining and metals systems.

naftiko: "0.5"
info:
  label: "Rail Shipment Tracking"
  description: "Retrieves rail shipment tracking data from the Rio Tinto mining and metals systems."
  tags:
    - rail
    - rio-tinto
    - tracking
capability:
  exposes:
    - type: mcp
      namespace: rail
      port: 8080
      tools:
        - name: rail-shipment-tracking
          description: "Retrieves rail shipment tracking data from the Rio Tinto mining and metals systems."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The input id."
          call: "rio-tinto.rail-shipment-tracking"
          with:
            input_id: "{{input_id}}"
          outputParameters:
            - name: result
              type: string
              mapping: "$.data"
            - name: status
              type: string
              mapping: "$.status"
  consumes:
    - type: http
      namespace: rio-tinto
      baseUri: "https://api.riotinto.com/v2"
      authentication:
        type: bearer
        token: "$secrets.riotinto_api_token"
      resources:
        - name: resource
          path: "/rail/shipment/tracking/{{input_id}}"
          inputParameters:
            - name: input_id
              in: path
          operations:
            - name: rail-shipment-tracking
              method: GET

Retrieves reagent consumption rate data from the Rio Tinto mining and metals systems.

naftiko: "0.5"
info:
  label: "Reagent Consumption Rate"
  description: "Retrieves reagent consumption rate data from the Rio Tinto mining and metals systems."
  tags:
    - reagent
    - rio-tinto
    - rate
capability:
  exposes:
    - type: mcp
      namespace: reagent
      port: 8080
      tools:
        - name: reagent-consumption-rate
          description: "Retrieves reagent consumption rate data from the Rio Tinto mining and metals systems."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The input id."
          call: "rio-tinto.reagent-consumption-rate"
          with:
            input_id: "{{input_id}}"
          outputParameters:
            - name: result
              type: string
              mapping: "$.data"
            - name: status
              type: string
              mapping: "$.status"
  consumes:
    - type: http
      namespace: rio-tinto
      baseUri: "https://api.riotinto.com/v2"
      authentication:
        type: bearer
        token: "$secrets.riotinto_api_token"
      resources:
        - name: resource
          path: "/reagent/consumption/rate/{{input_id}}"
          inputParameters:
            - name: input_id
              in: path
          operations:
            - name: reagent-consumption-rate
              method: GET

Orchestrates renewable energy integration pipeline across mining and metals systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Renewable Energy Integration Pipeline"
  description: "Orchestrates renewable energy integration pipeline across mining and metals systems, coordinating multiple services and notifying stakeholders."
  tags:
    - renewable
    - rio-tinto
    - rio-tinto
    - servicenow
    - sap
capability:
  exposes:
    - type: mcp
      namespace: renewable
      port: 8080
      tools:
        - name: renewable-energy-integration-pipeline
          description: "Orchestrates renewable energy integration pipeline across mining and metals 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: "rio-tinto.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: "sap.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: rio-tinto
      baseUri: "https://api.riotinto.com/v2"
      authentication:
        type: bearer
        token: "$secrets.riotinto_api_token"
      resources:
        - name: rio-tinto-resource
          path: "/api/renewable"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: servicenow
      baseUri: "https://riotinto.service-now.com/api/now"
      authentication:
        type: bearer
        token: "$secrets.servicenow_token"
      resources:
        - name: servicenow-resource
          path: "/api/renewable"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: sap
      baseUri: "https://riotinto-erp.s4hana.ondemand.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.sap_token"
      resources:
        - name: sap-resource
          path: "/api/renewable"
          operations:
            - name: execute-3
              method: POST

Retrieves a Salesforce account record by ID, returning company name, industry, and assigned owner.

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

Retrieves a SAP Ariba requisition by ID, returning status, requester, and total amount.

naftiko: "0.5"
info:
  label: "SAP Ariba Requisition Status"
  description: "Retrieves a SAP Ariba requisition by ID, returning status, requester, and total amount."
  tags:
    - procurement
    - sap-ariba
capability:
  exposes:
    - type: mcp
      namespace: procurement-ariba
      port: 8080
      tools:
        - name: get-requisition
          description: "Look up a SAP Ariba requisition by ID."
          inputParameters:
            - name: requisition_id
              in: body
              type: string
              description: "The Ariba requisition ID."
          call: "ariba.get-requisition"
          with:
            requisition_id: "{{requisition_id}}"
  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

Extracts production planning data from SAP BW for mine planning and forecasting.

naftiko: "0.5"
info:
  label: "SAP BW Production Planning Report"
  description: "Extracts production planning data from SAP BW for mine planning and forecasting."
  tags:
    - mining
    - planning
    - sap-bw
capability:
  exposes:
    - type: mcp
      namespace: mining-planning
      port: 8080
      tools:
        - name: get-planning-report
          description: "Run a SAP BW production planning query. Returns planned vs actual tonnes and variance."
          inputParameters:
            - name: site_code
              in: body
              type: string
              description: "The mine site code."
            - name: period
              in: body
              type: string
              description: "The planning period (YYYY-MM)."
          call: "sapbw.run-query"
          with:
            query_name: "PRODUCTION_PLAN"
            site: "{{site_code}}"
            period: "{{period}}"
  consumes:
    - type: http
      namespace: sapbw
      baseUri: "https://riotinto-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

Retrieves a travel booking from SAP Concur by trip ID.

naftiko: "0.5"
info:
  label: "SAP Concur Travel Booking Lookup"
  description: "Retrieves a travel booking from SAP Concur by trip ID."
  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."
          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 material."
          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://riotinto-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

Queries SAP HANA for mining operational analytics including ore tonnage, processing throughput, and equipment utilization.

naftiko: "0.5"
info:
  label: "SAP HANA Mining Analytics Query"
  description: "Queries SAP HANA for mining operational analytics including ore tonnage, processing throughput, and equipment utilization."
  tags:
    - mining
    - analytics
    - sap-hana
capability:
  exposes:
    - type: mcp
      namespace: mining-analytics
      port: 8080
      tools:
        - name: get-mining-metrics
          description: "Query SAP HANA for mining metrics. Returns ore tonnage, throughput, and equipment utilization."
          inputParameters:
            - name: site_code
              in: body
              type: string
              description: "The mine site code."
            - name: period
              in: body
              type: string
              description: "The reporting period (YYYY-MM)."
          call: "saphana.query-mining-metrics"
          with:
            site_code: "{{site_code}}"
            period: "{{period}}"
  consumes:
    - type: http
      namespace: saphana
      baseUri: "https://riotinto-hana.sap.com/sap/opu/odata/sap/MINING_ANALYTICS_SRV"
      authentication:
        type: basic
        username: "$secrets.sap_hana_user"
        password: "$secrets.sap_hana_password"
      resources:
        - name: mining-metrics
          path: "/MiningMetrics?$filter=Site eq '{{site_code}}' and Period eq '{{period}}'"
          inputParameters:
            - name: site_code
              in: path
            - name: period
              in: path
          operations:
            - name: query-mining-metrics
              method: GET

Retrieves a material master record from SAP by material number.

naftiko: "0.5"
info:
  label: "SAP Material Master Lookup"
  description: "Retrieves a material master record from SAP by material number."
  tags:
    - erp
    - master-data
    - sap
capability:
  exposes:
    - type: mcp
      namespace: erp-materials
      port: 8080
      tools:
        - name: get-material
          description: "Look up a SAP material master by number. Returns description, UoM, and material group."
          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://riotinto-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, and scheduled dates.

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, and scheduled dates."
  tags:
    - mining
    - production
    - sap
    - sap-s4hana
capability:
  exposes:
    - type: mcp
      namespace: mining-production-orders
      port: 8080
      tools:
        - name: get-production-order
          description: "Look up a SAP production order. Returns status, quantity, and schedule."
          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://riotinto-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

Looks up a SAP S/4HANA purchase order by number and returns header status, vendor, total value, and delivery date.

naftiko: "0.5"
info:
  label: "SAP S/4HANA Purchase Order Status"
  description: "Looks up a SAP S/4HANA purchase order by number and returns header status, vendor, total value, and delivery date."
  tags:
    - procurement
    - erp
    - sap
    - sap-s4hana
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 status, vendor, total value, and delivery date."
          inputParameters:
            - name: po_number
              in: body
              type: string
              description: "The SAP purchase order number."
          call: "sap.get-po"
          with:
            po_number: "{{po_number}}"
  consumes:
    - type: http
      namespace: sap
      baseUri: "https://riotinto-s4.sap.com/sap/opu/odata/sap/MM_PUR_PO_MAINT_V2_SRV"
      authentication:
        type: basic
        username: "$secrets.sap_user"
        password: "$secrets.sap_password"
      resources:
        - name: purchase-orders
          path: "/A_PurchaseOrder('{{po_number}}')"
          inputParameters:
            - name: po_number
              in: path
          operations:
            - name: get-po
              method: GET

Retrieves a ServiceNow incident by number, returning priority, state, assigned group, and description.

naftiko: "0.5"
info:
  label: "ServiceNow Incident Status"
  description: "Retrieves a ServiceNow incident by number, returning priority, state, assigned group, and description."
  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, and assigned group."
          inputParameters:
            - name: incident_number
              in: body
              type: string
              description: "The ServiceNow incident number."
          call: "servicenow.get-incident"
          with:
            incident_number: "{{incident_number}}"
  consumes:
    - type: http
      namespace: servicenow
      baseUri: "https://riotinto.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.

naftiko: "0.5"
info:
  label: "SharePoint Document Retrieval"
  description: "Retrieves document metadata and download URL from a SharePoint site."
  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 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 supplier is approved, creates the vendor master in SAP, provisions a SharePoint folder, and notifies procurement via Microsoft Teams.

naftiko: "0.5"
info:
  label: "Supplier Onboarding Pipeline"
  description: "When a new supplier is approved, creates the vendor master in SAP, provisions a SharePoint folder, and notifies procurement via Microsoft Teams."
  tags:
    - procurement
    - supplier-management
    - sap
    - sharepoint
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: procurement-supplier
      port: 8080
      tools:
        - name: onboard-supplier
          description: "Given a supplier registration ID, create SAP vendor master, provision SharePoint folder, and notify procurement."
          inputParameters:
            - name: supplier_id
              in: body
              type: string
              description: "The supplier registration ID."
            - name: buyer_email
              in: body
              type: string
              description: "The procurement buyer email."
          steps:
            - name: get-supplier
              type: call
              call: "sap.get-supplier-registration"
              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: "sharepoint.create-folder"
              with:
                site_id: "procurement_site"
                folder_path: "Suppliers/{{get-supplier.company_name}}"
            - 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}}. Docs: {{provision-folder.url}}."
  consumes:
    - type: http
      namespace: sap
      baseUri: "https://riotinto-s4.sap.com/sap/opu/odata/sap/API_BUSINESS_PARTNER"
      authentication:
        type: basic
        username: "$secrets.sap_user"
        password: "$secrets.sap_password"
      resources:
        - name: supplier-registrations
          path: "/A_Supplier('{{supplier_id}}')"
          inputParameters:
            - name: supplier_id
              in: path
          operations:
            - name: get-supplier-registration
              method: GET
        - name: vendors
          path: "/A_Supplier"
          operations:
            - name: create-vendor
              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 shipment tracking data from SAP for ore and commodity shipments including vessel details, ETA, and cargo weight.

naftiko: "0.5"
info:
  label: "Supply Chain Shipment Tracking"
  description: "Retrieves shipment tracking data from SAP for ore and commodity shipments including vessel details, ETA, and cargo weight."
  tags:
    - supply-chain
    - logistics
    - sap
capability:
  exposes:
    - type: mcp
      namespace: supply-chain-tracking
      port: 8080
      tools:
        - name: track-shipment
          description: "Look up a SAP shipment by delivery number. Returns vessel, ETA, cargo weight, and destination port."
          inputParameters:
            - name: delivery_number
              in: body
              type: string
              description: "The SAP delivery number."
          call: "sap.get-shipment"
          with:
            delivery_number: "{{delivery_number}}"
  consumes:
    - type: http
      namespace: sap
      baseUri: "https://riotinto-s4.sap.com/sap/opu/odata/sap/API_OUTBOUND_DELIVERY_SRV"
      authentication:
        type: basic
        username: "$secrets.sap_user"
        password: "$secrets.sap_password"
      resources:
        - name: deliveries
          path: "/A_OutbDeliveryHeader('{{delivery_number}}')"
          inputParameters:
            - name: delivery_number
              in: path
          operations:
            - name: get-shipment
              method: GET

Triggers a Tableau workbook extract refresh for mining operations dashboards.

naftiko: "0.5"
info:
  label: "Tableau Mining Dashboard Refresh"
  description: "Triggers a Tableau workbook extract refresh for mining operations dashboards."
  tags:
    - analytics
    - reporting
    - tableau
capability:
  exposes:
    - type: mcp
      namespace: analytics-tableau-refresh
      port: 8080
      tools:
        - name: refresh-datasource
          description: "Trigger a Tableau datasource refresh. Returns job status."
          inputParameters:
            - name: datasource_id
              in: body
              type: string
              description: "The Tableau datasource ID."
            - name: site_id
              in: body
              type: string
              description: "The Tableau site ID."
          call: "tableau.refresh-datasource"
          with:
            datasource_id: "{{datasource_id}}"
            site_id: "{{site_id}}"
  consumes:
    - type: http
      namespace: tableau
      baseUri: "https://riotinto.online.tableau.com/api/3.21"
      authentication:
        type: bearer
        token: "$secrets.tableau_token"
      resources:
        - name: datasources
          path: "/sites/{{site_id}}/datasources/{{datasource_id}}/refresh"
          inputParameters:
            - name: site_id
              in: path
            - name: datasource_id
              in: path
          operations:
            - name: refresh-datasource
              method: POST

Retrieves tailings dam monitoring data for a mine site including water levels, seepage rates, and stability readings.

naftiko: "0.5"
info:
  label: "Tailings Dam Monitoring Lookup"
  description: "Retrieves tailings dam monitoring data for a mine site including water levels, seepage rates, and stability readings."
  tags:
    - safety
    - mining
    - environmental
capability:
  exposes:
    - type: mcp
      namespace: safety-tailings
      port: 8080
      tools:
        - name: get-tailings-data
          description: "Query tailings dam monitoring for a site. Returns water level, seepage rate, and stability index."
          inputParameters:
            - name: site_code
              in: body
              type: string
              description: "The mine site code."
            - name: dam_id
              in: body
              type: string
              description: "The tailings dam identifier."
          call: "env-api.get-tailings-monitoring"
          with:
            site_code: "{{site_code}}"
            dam_id: "{{dam_id}}"
  consumes:
    - type: http
      namespace: env-api
      baseUri: "https://environmental.riotinto.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.env_api_token"
      resources:
        - name: tailings
          path: "/sites/{{site_code}}/tailings/{{dam_id}}/monitoring"
          inputParameters:
            - name: site_code
              in: path
            - name: dam_id
              in: path
          operations:
            - name: get-tailings-monitoring
              method: GET

Orchestrates tailings dam risk monitoring pipeline across mining and metals systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Tailings Dam Risk Monitoring Pipeline"
  description: "Orchestrates tailings dam risk monitoring pipeline across mining and metals systems, coordinating multiple services and notifying stakeholders."
  tags:
    - tailings
    - rio-tinto
    - rio-tinto
    - servicenow
    - sap
capability:
  exposes:
    - type: mcp
      namespace: tailings
      port: 8080
      tools:
        - name: tailings-dam-risk-monitoring-pipeline
          description: "Orchestrates tailings dam risk monitoring pipeline across mining and metals 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: "rio-tinto.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: "sap.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: rio-tinto
      baseUri: "https://api.riotinto.com/v2"
      authentication:
        type: bearer
        token: "$secrets.riotinto_api_token"
      resources:
        - name: rio-tinto-resource
          path: "/api/tailings"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: servicenow
      baseUri: "https://riotinto.service-now.com/api/now"
      authentication:
        type: bearer
        token: "$secrets.servicenow_token"
      resources:
        - name: servicenow-resource
          path: "/api/tailings"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: sap
      baseUri: "https://riotinto-erp.s4hana.ondemand.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.sap_token"
      resources:
        - name: sap-resource
          path: "/api/tailings"
          operations:
            - name: execute-3
              method: POST

Retrieves tailings pipeline flow rate data from the Rio Tinto mining and metals systems.

naftiko: "0.5"
info:
  label: "Tailings Pipeline Flow Rate"
  description: "Retrieves tailings pipeline flow rate data from the Rio Tinto mining and metals systems."
  tags:
    - tailings
    - rio-tinto
    - rate
capability:
  exposes:
    - type: mcp
      namespace: tailings
      port: 8080
      tools:
        - name: tailings-pipeline-flow-rate
          description: "Retrieves tailings pipeline flow rate data from the Rio Tinto mining and metals systems."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The input id."
          call: "rio-tinto.tailings-pipeline-flow-rate"
          with:
            input_id: "{{input_id}}"
          outputParameters:
            - name: result
              type: string
              mapping: "$.data"
            - name: status
              type: string
              mapping: "$.status"
  consumes:
    - type: http
      namespace: rio-tinto
      baseUri: "https://api.riotinto.com/v2"
      authentication:
        type: bearer
        token: "$secrets.riotinto_api_token"
      resources:
        - name: resource
          path: "/tailings/pipeline/flow/rate/{{input_id}}"
          inputParameters:
            - name: input_id
              in: path
          operations:
            - name: tailings-pipeline-flow-rate
              method: GET

Monitors water usage and discharge data at mine sites, validates against regulatory limits in SAP, alerts if thresholds exceeded, and creates ServiceNow compliance tasks.

naftiko: "0.5"
info:
  label: "Water Management Compliance Orchestrator"
  description: "Monitors water usage and discharge data at mine sites, validates against regulatory limits in SAP, alerts if thresholds exceeded, and creates ServiceNow compliance tasks."
  tags:
    - sustainability
    - water-management
    - sap
    - servicenow
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: sustainability-water
      port: 8080
      tools:
        - name: check-water-compliance
          description: "Given a site code, check water usage, validate against limits, alert if exceeded, and create compliance task."
          inputParameters:
            - name: site_code
              in: body
              type: string
              description: "The mine site code."
            - name: monitoring_date
              in: body
              type: string
              description: "Monitoring date in YYYY-MM-DD."
          steps:
            - name: get-water-data
              type: call
              call: "env-api.get-water-readings"
              with:
                site_code: "{{site_code}}"
                date: "{{monitoring_date}}"
            - name: get-limits
              type: call
              call: "sap.get-regulatory-limits"
              with:
                plant: "{{site_code}}"
                parameter: "water"
            - name: create-task
              type: call
              call: "servicenow.create-task"
              with:
                short_description: "Water compliance check: {{site_code}} on {{monitoring_date}}"
                description: "Usage: {{get-water-data.total_usage_ml}} ML. Discharge: {{get-water-data.discharge_ml}} ML. Limit: {{get-limits.discharge_limit}} ML."
                assigned_group: "Environmental_{{site_code}}"
                category: "water_compliance"
            - name: alert-team
              type: call
              call: "msteams.send-channel-message"
              with:
                team_id: "sustainability_{{site_code}}"
                channel: "Water"
                text: "Water monitoring {{site_code}} ({{monitoring_date}}): Usage {{get-water-data.total_usage_ml}} ML, Discharge {{get-water-data.discharge_ml}} ML. Task: {{create-task.number}}."
  consumes:
    - type: http
      namespace: env-api
      baseUri: "https://environmental.riotinto.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.env_api_token"
      resources:
        - name: water-readings
          path: "/sites/{{site_code}}/water?date={{date}}"
          inputParameters:
            - name: site_code
              in: path
            - name: date
              in: path
          operations:
            - name: get-water-readings
              method: GET
    - type: http
      namespace: sap
      baseUri: "https://riotinto-s4.sap.com/sap/opu/odata/sap/EHS_REG_SRV"
      authentication:
        type: basic
        username: "$secrets.sap_user"
        password: "$secrets.sap_password"
      resources:
        - name: regulatory-limits
          path: "/RegulatoryLimits?$filter=Plant eq '{{plant}}' and Parameter eq '{{parameter}}'"
          inputParameters:
            - name: plant
              in: path
            - name: parameter
              in: path
          operations:
            - name: get-regulatory-limits
              method: GET
    - type: http
      namespace: servicenow
      baseUri: "https://riotinto.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
    - 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

Looks up an employee in Workday by ID, returning name, department, title, and manager.

naftiko: "0.5"
info:
  label: "Workday Employee Directory Lookup"
  description: "Looks up an employee in Workday by ID, returning name, department, title, and manager."
  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, and manager."
          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

Creates a Zoom meeting and returns the join URL.

naftiko: "0.5"
info:
  label: "Zoom Meeting Scheduler"
  description: "Creates a Zoom meeting and returns the join URL."
  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: "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