Rio Tinto Capabilities
Naftiko 0.5 capability definitions for Rio Tinto - 100 capabilities showing integration workflows and service orchestrations.
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