TotalEnergies Capabilities
Naftiko 0.5 capability definitions for TotalEnergies - 100 capabilities showing integration workflows and service orchestrations.
Manages annual compliance certifications by distributing attestations, tracking completion, and filing results.
naftiko: "0.5"
info:
label: "Annual Compliance Certification Orchestrator"
description: "Manages annual compliance certifications by distributing attestations, tracking completion, and filing results."
tags:
- compliance
- hr
- legal
capability:
exposes:
- type: mcp
namespace: compliance
port: 8080
tools:
- name: run-annual-compliance-certification-orchestrator
description: "Manages annual compliance certifications by distributing attestations, tracking completion, and filing results."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Annual Compliance Certification Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.totalenergies.com/v1"
authentication:
type: bearer
token: "$secrets.totalenergies_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.totalenergies.com/v2"
authentication:
type: bearer
token: "$secrets.totalenergies_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Manages API lifecycle by versioning, deprecating old endpoints, notifying consumers, and updating documentation.
naftiko: "0.5"
info:
label: "API Lifecycle Management Orchestrator"
description: "Manages API lifecycle by versioning, deprecating old endpoints, notifying consumers, and updating documentation."
tags:
- engineering
- api
- operations
capability:
exposes:
- type: mcp
namespace: engineering
port: 8080
tools:
- name: run-api-lifecycle-management-orchestrator
description: "Manages API lifecycle by versioning, deprecating old endpoints, notifying consumers, and updating documentation."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed API Lifecycle Management Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.totalenergies.com/v1"
authentication:
type: bearer
token: "$secrets.totalenergies_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.totalenergies.com/v2"
authentication:
type: bearer
token: "$secrets.totalenergies_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Retrieves the latest build status for an Azure DevOps pipeline.
naftiko: "0.5"
info:
label: "Azure DevOps Build Status"
description: "Retrieves the latest build status for an Azure DevOps pipeline."
tags:
- development
- azure-devops
- ci-cd
capability:
exposes:
- type: mcp
namespace: devops-builds
port: 8080
tools:
- name: get-build-status
description: "Fetch latest build status for an Azure DevOps pipeline."
inputParameters:
- name: pipeline_id
in: body
type: string
description: "The Azure DevOps pipeline ID."
call: "azdo.get-latest-build"
with:
pipeline_id: "{{pipeline_id}}"
consumes:
- type: http
namespace: azdo
baseUri: "https://dev.azure.com/totalenergies"
authentication:
type: basic
username: ""
password: "$secrets.azure_devops_pat"
resources:
- name: builds
path: "/_apis/build/builds?definitions={{pipeline_id}}&$top=1&api-version=7.0"
inputParameters:
- name: pipeline_id
in: path
operations:
- name: get-latest-build
method: GET
Pulls emissions data from the SAP sustainability module, calculates carbon intensity metrics, logs in the compliance system, and distributes the report via Microsoft Teams.
naftiko: "0.5"
info:
label: "Carbon Emissions Tracking Pipeline"
description: "Pulls emissions data from the SAP sustainability module, calculates carbon intensity metrics, logs in the compliance system, and distributes the report via Microsoft Teams."
tags:
- sustainability
- emissions
- sap
- compliance
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: carbon-tracking
port: 8080
tools:
- name: generate-emissions-report
description: "Generate a carbon emissions report across SAP, compliance system, and Teams."
inputParameters:
- name: site_id
in: body
type: string
description: "The facility site identifier."
- name: reporting_period
in: body
type: string
description: "The reporting period in YYYY-MM format."
steps:
- name: get-emissions-data
type: call
call: "sap.get-emissions"
with:
site: "{{site_id}}"
period: "{{reporting_period}}"
- name: log-in-compliance
type: call
call: "compliance.submit-emissions"
with:
site: "{{site_id}}"
period: "{{reporting_period}}"
co2_tons: "{{get-emissions-data.total_co2}}"
methane_tons: "{{get-emissions-data.total_methane}}"
- name: distribute-report
type: call
call: "msteams.post-channel-message"
with:
channel_id: "sustainability_reporting"
text: "Emissions report for {{site_id}} ({{reporting_period}}): CO2: {{get-emissions-data.total_co2}} tons, CH4: {{get-emissions-data.total_methane}} tons. Carbon intensity: {{get-emissions-data.carbon_intensity}} kg/boe."
consumes:
- type: http
namespace: sap
baseUri: "https://totalenergies.sap.com/sap/opu/odata/sap/ZSU_EMISSIONS_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: emissions
path: "/EmissionsSet?$filter=Site eq '{{site}}' and Period eq '{{period}}'"
inputParameters:
- name: site
in: path
- name: period
in: path
operations:
- name: get-emissions
method: GET
- type: http
namespace: compliance
baseUri: "https://compliance.totalenergies.com/api/v1"
authentication:
type: bearer
token: "$secrets.compliance_token"
resources:
- name: emissions-submissions
path: "/emissions/submit"
operations:
- name: submit-emissions
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{channel_id}}/channels/General/messages"
inputParameters:
- name: channel_id
in: path
operations:
- name: post-channel-message
method: POST
Searches Confluence for articles matching a query string.
naftiko: "0.5"
info:
label: "Confluence Knowledge Base Search"
description: "Searches Confluence for articles matching a query string."
tags:
- knowledge-management
- confluence
- search
capability:
exposes:
- type: mcp
namespace: knowledge-base
port: 8080
tools:
- name: search-confluence
description: "Search Confluence knowledge base for matching articles."
inputParameters:
- name: query
in: body
type: string
description: "The search query string."
call: "confluence.search"
with:
query: "{{query}}"
consumes:
- type: http
namespace: confluence
baseUri: "https://totalenergies.atlassian.net/wiki/rest/api"
authentication:
type: basic
username: "$secrets.confluence_user"
password: "$secrets.confluence_api_token"
resources:
- name: search
path: "/search?cql=text~\"{{query}}\""
inputParameters:
- name: query
in: path
operations:
- name: search
method: GET
Retrieves a Confluence wiki page.
naftiko: "0.5"
info:
label: "Confluence Page Viewer"
description: "Retrieves a Confluence wiki page."
tags:
- collaboration
- confluence
capability:
exposes:
- type: mcp
namespace: collaboration
port: 8080
tools:
- name: get-confluence
description: "Retrieves a Confluence wiki page."
inputParameters:
- name: entity_id
in: body
type: string
description: "The confluence page viewer identifier."
call: "collaboration-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: collaboration-api
baseUri: "https://api.totalenergies.com/collaboration/v1"
authentication:
type: bearer
token: "$secrets.totalenergies_api_token"
resources:
- name: confluence
path: "/confluence/page/viewer/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-confluence
method: GET
Kicks off cross-functional projects by creating workspaces, scheduling meetings, and distributing project charters.
naftiko: "0.5"
info:
label: "Cross-Functional Project Kickoff Orchestrator"
description: "Kicks off cross-functional projects by creating workspaces, scheduling meetings, and distributing project charters."
tags:
- project-management
- collaboration
- operations
capability:
exposes:
- type: mcp
namespace: project-management
port: 8080
tools:
- name: run-cross-functional-project-kickoff-orchestrator
description: "Kicks off cross-functional projects by creating workspaces, scheduling meetings, and distributing project charters."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Cross-Functional Project Kickoff Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.totalenergies.com/v1"
authentication:
type: bearer
token: "$secrets.totalenergies_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.totalenergies.com/v2"
authentication:
type: bearer
token: "$secrets.totalenergies_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Fetches real-time crude oil benchmark prices from Bloomberg Enterprise Data and returns Brent, WTI, and Dubai spot prices.
naftiko: "0.5"
info:
label: "Crude Oil Price Monitor"
description: "Fetches real-time crude oil benchmark prices from Bloomberg Enterprise Data and returns Brent, WTI, and Dubai spot prices."
tags:
- energy-trading
- pricing
- bloomberg-enterprise-data
- commodities
capability:
exposes:
- type: mcp
namespace: commodity-pricing
port: 8080
tools:
- name: get-crude-prices
description: "Retrieve current crude oil benchmark prices from Bloomberg."
inputParameters:
- name: benchmark
in: body
type: string
description: "The benchmark type (BRENT, WTI, DUBAI, or ALL)."
call: "bloomberg.get-prices"
with:
benchmark: "{{benchmark}}"
consumes:
- type: http
namespace: bloomberg
baseUri: "https://api.bloomberg.com/eap/catalogs/bbg/datasets"
authentication:
type: bearer
token: "$secrets.bloomberg_token"
resources:
- name: prices
path: "/commodities/{{benchmark}}/snapshots"
inputParameters:
- name: benchmark
in: path
operations:
- name: get-prices
method: GET
When a crude oil trade is executed, records the deal in SAP, generates a trade confirmation, sends it to the counterparty via email, and logs in the Tradeweb platform.
naftiko: "0.5"
info:
label: "Crude Oil Trade Confirmation Pipeline"
description: "When a crude oil trade is executed, records the deal in SAP, generates a trade confirmation, sends it to the counterparty via email, and logs in the Tradeweb platform."
tags:
- energy-trading
- trade-confirmation
- sap
- tradeweb
- microsoft-outlook
capability:
exposes:
- type: mcp
namespace: trade-confirmation
port: 8080
tools:
- name: confirm-crude-trade
description: "Record a trade in SAP, generate confirmation, email counterparty, and log in Tradeweb."
inputParameters:
- name: trade_id
in: body
type: string
description: "The internal trade reference."
- name: counterparty_email
in: body
type: string
description: "The counterparty contact email."
steps:
- name: record-trade
type: call
call: "sap.record-trade"
with:
trade_id: "{{trade_id}}"
- name: send-confirmation
type: call
call: "outlook.send-email"
with:
to: "{{counterparty_email}}"
subject: "Trade Confirmation: {{record-trade.deal_number}}"
body: "Trade {{record-trade.deal_number}}: {{record-trade.commodity}} {{record-trade.volume}} barrels at ${{record-trade.price}}/bbl. Settlement: {{record-trade.settlement_date}}."
- name: log-tradeweb
type: call
call: "tradeweb.submit-confirmation"
with:
deal_number: "{{record-trade.deal_number}}"
commodity: "{{record-trade.commodity}}"
volume: "{{record-trade.volume}}"
price: "{{record-trade.price}}"
consumes:
- type: http
namespace: sap
baseUri: "https://totalenergies.sap.com/sap/opu/odata/sap/ZTR_DEAL_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: trades
path: "/TradeSet"
operations:
- name: record-trade
method: POST
- type: http
namespace: outlook
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: mail
path: "/me/sendMail"
operations:
- name: send-email
method: POST
- type: http
namespace: tradeweb
baseUri: "https://api.tradeweb.com/v1"
authentication:
type: bearer
token: "$secrets.tradeweb_token"
resources:
- name: confirmations
path: "/confirmations"
operations:
- name: submit-confirmation
method: POST
Handles customer data privacy requests by locating records, processing deletions, and confirming compliance.
naftiko: "0.5"
info:
label: "Customer Data Privacy Request Handler"
description: "Handles customer data privacy requests by locating records, processing deletions, and confirming compliance."
tags:
- compliance
- privacy
- customer-service
capability:
exposes:
- type: mcp
namespace: compliance
port: 8080
tools:
- name: run-customer-data-privacy-request-handler
description: "Handles customer data privacy requests by locating records, processing deletions, and confirming compliance."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Customer Data Privacy Request Handler for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.totalenergies.com/v1"
authentication:
type: bearer
token: "$secrets.totalenergies_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.totalenergies.com/v2"
authentication:
type: bearer
token: "$secrets.totalenergies_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Maps customer journeys by aggregating touchpoint data, identifying friction points, and generating improvement recommendations.
naftiko: "0.5"
info:
label: "Customer Journey Mapping Orchestrator"
description: "Maps customer journeys by aggregating touchpoint data, identifying friction points, and generating improvement recommendations."
tags:
- customer-experience
- analytics
- product-management
capability:
exposes:
- type: mcp
namespace: customer-experience
port: 8080
tools:
- name: run-customer-journey-mapping-orchestrator
description: "Maps customer journeys by aggregating touchpoint data, identifying friction points, and generating improvement recommendations."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Customer Journey Mapping Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.totalenergies.com/v1"
authentication:
type: bearer
token: "$secrets.totalenergies_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.totalenergies.com/v2"
authentication:
type: bearer
token: "$secrets.totalenergies_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Reviews data governance compliance by auditing access controls, classifying data, and generating compliance reports.
naftiko: "0.5"
info:
label: "Data Governance Review Orchestrator"
description: "Reviews data governance compliance by auditing access controls, classifying data, and generating compliance reports."
tags:
- data-governance
- compliance
- analytics
capability:
exposes:
- type: mcp
namespace: data-governance
port: 8080
tools:
- name: run-data-governance-review-orchestrator
description: "Reviews data governance compliance by auditing access controls, classifying data, and generating compliance reports."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Data Governance Review Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.totalenergies.com/v1"
authentication:
type: bearer
token: "$secrets.totalenergies_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.totalenergies.com/v2"
authentication:
type: bearer
token: "$secrets.totalenergies_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Queries Datadog for the health status of a specified application service.
naftiko: "0.5"
info:
label: "Datadog Application Health Check"
description: "Queries Datadog for the health status of a specified application service."
tags:
- monitoring
- datadog
- application-health
capability:
exposes:
- type: mcp
namespace: app-monitoring
port: 8080
tools:
- name: get-app-health
description: "Fetch application health metrics from Datadog."
inputParameters:
- name: service_name
in: body
type: string
description: "The Datadog service name."
call: "datadog.get-service-metrics"
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"
headerName: "DD-API-KEY"
resources:
- name: service-metrics
path: "/query?query=avg:trace.http.request.duration{service:{{service_name}}}"
inputParameters:
- name: service_name
in: path
operations:
- name: get-service-metrics
method: GET
Tracks digital transformation progress by aggregating initiative metrics, reporting milestones, and alerting on risks.
naftiko: "0.5"
info:
label: "Digital Transformation Progress Orchestrator"
description: "Tracks digital transformation progress by aggregating initiative metrics, reporting milestones, and alerting on risks."
tags:
- strategy
- analytics
- project-management
capability:
exposes:
- type: mcp
namespace: strategy
port: 8080
tools:
- name: run-digital-transformation-progress-orchestrator
description: "Tracks digital transformation progress by aggregating initiative metrics, reporting milestones, and alerting on risks."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Digital Transformation Progress Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.totalenergies.com/v1"
authentication:
type: bearer
token: "$secrets.totalenergies_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.totalenergies.com/v2"
authentication:
type: bearer
token: "$secrets.totalenergies_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Executes disaster recovery tests by failing over systems, validating recovery, and documenting results.
naftiko: "0.5"
info:
label: "Disaster Recovery Test Orchestrator"
description: "Executes disaster recovery tests by failing over systems, validating recovery, and documenting results."
tags:
- infrastructure
- operations
- compliance
capability:
exposes:
- type: mcp
namespace: infrastructure
port: 8080
tools:
- name: run-disaster-recovery-test-orchestrator
description: "Executes disaster recovery tests by failing over systems, validating recovery, and documenting results."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Disaster Recovery Test Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.totalenergies.com/v1"
authentication:
type: bearer
token: "$secrets.totalenergies_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.totalenergies.com/v2"
authentication:
type: bearer
token: "$secrets.totalenergies_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Sends a vendor contract for e-signature via DocuSign and logs status in Salesforce.
naftiko: "0.5"
info:
label: "DocuSign Contract Execution"
description: "Sends a vendor contract for e-signature via DocuSign and logs status in Salesforce."
tags:
- legal
- docusign
- salesforce
- contracts
capability:
exposes:
- type: mcp
namespace: contract-management
port: 8080
tools:
- name: send-contract-for-signature
description: "Send a contract via DocuSign and log status in Salesforce."
inputParameters:
- name: contract_id
in: body
type: string
description: "The Salesforce contract record ID."
- name: signer_email
in: body
type: string
description: "The signer's email."
- name: signer_name
in: body
type: string
description: "The signer's name."
steps:
- name: get-contract
type: call
call: "salesforce.get-contract"
with:
contract_id: "{{contract_id}}"
- name: send-envelope
type: call
call: "docusign.create-envelope"
with:
document_url: "{{get-contract.document_url}}"
signer_email: "{{signer_email}}"
signer_name: "{{signer_name}}"
- name: update-contract
type: call
call: "salesforce.update-contract"
with:
contract_id: "{{contract_id}}"
status: "Sent for Signature"
consumes:
- type: http
namespace: salesforce
baseUri: "https://totalenergies.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: contracts
path: "/sobjects/Contract/{{contract_id}}"
inputParameters:
- name: contract_id
in: path
operations:
- name: get-contract
method: GET
- name: update-contract
method: PATCH
- type: http
namespace: docusign
baseUri: "https://na4.docusign.net/restapi/v2.1/accounts/$secrets.docusign_account_id"
authentication:
type: bearer
token: "$secrets.docusign_token"
resources:
- name: envelopes
path: "/envelopes"
operations:
- name: create-envelope
method: POST
Triggers an emergency shutdown sequence for a facility unit by sending commands to the SCADA system, creating a major ServiceNow incident, alerting the HSE team via Microsoft Teams, and logging in SAP.
naftiko: "0.5"
info:
label: "Emergency Shutdown Protocol"
description: "Triggers an emergency shutdown sequence for a facility unit by sending commands to the SCADA system, creating a major ServiceNow incident, alerting the HSE team via Microsoft Teams, and logging in SAP."
tags:
- safety
- emergency
- scada
- servicenow
- microsoft-teams
- sap
capability:
exposes:
- type: mcp
namespace: emergency-response
port: 8080
tools:
- name: trigger-emergency-shutdown
description: "Execute emergency shutdown across SCADA, ServiceNow, Teams, and SAP."
inputParameters:
- name: plant_code
in: body
type: string
description: "The facility plant code."
- name: unit_id
in: body
type: string
description: "The unit to shut down."
- name: reason
in: body
type: string
description: "Reason for emergency shutdown."
steps:
- name: initiate-shutdown
type: call
call: "scada.emergency-stop"
with:
plant: "{{plant_code}}"
unit: "{{unit_id}}"
- name: create-major-incident
type: call
call: "servicenow.create-incident"
with:
short_description: "EMERGENCY SHUTDOWN: Unit {{unit_id}} at {{plant_code}}"
priority: "1"
category: "emergency"
description: "Emergency shutdown initiated. Reason: {{reason}}. SCADA status: {{initiate-shutdown.status}}."
- name: alert-all
type: call
call: "msteams.post-channel-message"
with:
channel_id: "emergency_response"
text: "EMERGENCY: Unit {{unit_id}} at {{plant_code}} shutdown. Reason: {{reason}}. ServiceNow: {{create-major-incident.number}}"
- name: log-in-sap
type: call
call: "sap.log-emergency-event"
with:
plant: "{{plant_code}}"
unit: "{{unit_id}}"
reason: "{{reason}}"
incident_ref: "{{create-major-incident.number}}"
consumes:
- type: http
namespace: scada
baseUri: "https://scada.totalenergies.com/api/v1"
authentication:
type: bearer
token: "$secrets.scada_token"
resources:
- name: emergency
path: "/plants/{{plant}}/units/{{unit}}/emergency-stop"
inputParameters:
- name: plant
in: path
- name: unit
in: path
operations:
- name: emergency-stop
method: POST
- type: http
namespace: servicenow
baseUri: "https://totalenergies.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: incidents
path: "/table/incident"
operations:
- name: create-incident
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{channel_id}}/channels/General/messages"
inputParameters:
- name: channel_id
in: path
operations:
- name: post-channel-message
method: POST
- type: http
namespace: sap
baseUri: "https://totalenergies.sap.com/sap/opu/odata/sap/ZPM_EMERGENCY_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: emergency-events
path: "/EmergencyEventSet"
operations:
- name: log-emergency-event
method: POST
Retrieves emissions monitoring data for a facility.
naftiko: "0.5"
info:
label: "Emissions Monitoring Data"
description: "Retrieves emissions monitoring data for a facility."
tags:
- sustainability
- compliance
capability:
exposes:
- type: mcp
namespace: sustainability
port: 8080
tools:
- name: get-emissions
description: "Retrieves emissions monitoring data for a facility."
inputParameters:
- name: entity_id
in: body
type: string
description: "The emissions monitoring data identifier."
call: "sustainability-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: sustainability-api
baseUri: "https://api.totalenergies.com/sustainability/v1"
authentication:
type: bearer
token: "$secrets.totalenergies_api_token"
resources:
- name: emissions
path: "/emissions/monitoring/data/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-emissions
method: GET
Processes employee offboarding by revoking access, returning equipment, and conducting exit interviews.
naftiko: "0.5"
info:
label: "Employee Offboarding Orchestrator"
description: "Processes employee offboarding by revoking access, returning equipment, and conducting exit interviews."
tags:
- hr
- identity
- operations
capability:
exposes:
- type: mcp
namespace: hr
port: 8080
tools:
- name: run-employee-offboarding-orchestrator
description: "Processes employee offboarding by revoking access, returning equipment, and conducting exit interviews."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Employee Offboarding Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.totalenergies.com/v1"
authentication:
type: bearer
token: "$secrets.totalenergies_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.totalenergies.com/v2"
authentication:
type: bearer
token: "$secrets.totalenergies_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
On new hire creation in Workday, opens a ServiceNow onboarding ticket, provisions a SharePoint folder, and sends a Microsoft Teams welcome message.
naftiko: "0.5"
info:
label: "Employee Onboarding Orchestrator"
description: "On new hire creation in Workday, opens a ServiceNow onboarding ticket, provisions a SharePoint folder, and sends a Microsoft Teams welcome message."
tags:
- hr
- onboarding
- workday
- servicenow
- sharepoint
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: hr-onboarding
port: 8080
tools:
- name: trigger-onboarding
description: "Orchestrate new hire onboarding across ServiceNow, SharePoint, and Microsoft Teams."
inputParameters:
- name: workday_employee_id
in: body
type: string
description: "The Workday worker ID for the new hire."
- name: start_date
in: body
type: string
description: "The employee start date in YYYY-MM-DD format."
- name: department
in: body
type: string
description: "The department the new hire is joining."
steps:
- name: get-employee
type: call
call: "workday.get-worker"
with:
worker_id: "{{workday_employee_id}}"
- name: open-ticket
type: call
call: "servicenow.create-incident"
with:
short_description: "New hire onboarding: {{get-employee.full_name}}"
category: "hr_onboarding"
assigned_group: "IT_Onboarding"
description: "Onboarding for {{get-employee.full_name}} starting {{start_date}} in {{department}}."
- name: provision-folder
type: call
call: "sharepoint.create-folder"
with:
site_id: "hr_onboarding_site"
folder_path: "OnboardingDocs/{{get-employee.full_name}}_{{start_date}}"
- name: send-welcome
type: call
call: "msteams.send-message"
with:
recipient_upn: "{{get-employee.work_email}}"
text: "Welcome to TotalEnergies, {{get-employee.first_name}}! Your onboarding ticket is {{open-ticket.number}}. Documents are at {{provision-folder.url}}."
consumes:
- type: http
namespace: workday
baseUri: "https://wd2-impl-services1.workday.com/ccx/api/v1"
authentication:
type: bearer
token: "$secrets.workday_token"
resources:
- name: workers
path: "/workers/{{worker_id}}"
inputParameters:
- name: worker_id
in: path
operations:
- name: get-worker
method: GET
- type: http
namespace: servicenow
baseUri: "https://totalenergies.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: incidents
path: "/table/incident"
operations:
- name: create-incident
method: POST
- type: http
namespace: sharepoint
baseUri: "https://graph.microsoft.com/v1.0/sites"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: drive-items
path: "/{{site_id}}/drive/root:/{{folder_path}}"
inputParameters:
- name: site_id
in: path
- name: folder_path
in: path
operations:
- name: create-folder
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/users/{{recipient_upn}}/sendMail"
inputParameters:
- name: recipient_upn
in: path
operations:
- name: send-message
method: POST
Retrieves current commodity prices for oil and gas.
naftiko: "0.5"
info:
label: "Energy Commodity Price Lookup"
description: "Retrieves current commodity prices for oil and gas."
tags:
- trading
- finance
capability:
exposes:
- type: mcp
namespace: trading
port: 8080
tools:
- name: get-energy
description: "Retrieves current commodity prices for oil and gas."
inputParameters:
- name: entity_id
in: body
type: string
description: "The energy commodity price lookup identifier."
call: "trading-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: trading-api
baseUri: "https://api.totalenergies.com/trading/v1"
authentication:
type: bearer
token: "$secrets.totalenergies_api_token"
resources:
- name: energy
path: "/energy/commodity/price/lookup/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-energy
method: GET
Retrieves the current hedge position from SAP and Bloomberg market data, calculates hedge effectiveness, and posts analysis to the trading team via Microsoft Teams.
naftiko: "0.5"
info:
label: "Energy Portfolio Hedging Analyzer"
description: "Retrieves the current hedge position from SAP and Bloomberg market data, calculates hedge effectiveness, and posts analysis to the trading team via Microsoft Teams."
tags:
- energy-trading
- hedging
- sap
- bloomberg-enterprise-data
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: hedge-analysis
port: 8080
tools:
- name: analyze-hedge-position
description: "Analyze hedge effectiveness using SAP positions and Bloomberg market data."
inputParameters:
- name: portfolio_id
in: body
type: string
description: "The hedge portfolio identifier."
- name: commodity
in: body
type: string
description: "The commodity being hedged."
steps:
- name: get-hedge-position
type: call
call: "sap.get-hedge-data"
with:
portfolio: "{{portfolio_id}}"
commodity: "{{commodity}}"
- name: get-market-data
type: call
call: "bloomberg.get-forward-curve"
with:
commodity: "{{commodity}}"
- name: post-analysis
type: call
call: "msteams.post-channel-message"
with:
channel_id: "trading_hedging"
text: "Hedge analysis for {{commodity}} ({{portfolio_id}}): Position: {{get-hedge-position.hedge_volume}}. Effectiveness: {{get-hedge-position.effectiveness_pct}}%. Market forward: ${{get-market-data.six_month_forward}}."
consumes:
- type: http
namespace: sap
baseUri: "https://totalenergies.sap.com/sap/opu/odata/sap/ZTR_HEDGE_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: hedge-data
path: "/HedgePositionSet(Portfolio='{{portfolio}}',Commodity='{{commodity}}')"
inputParameters:
- name: portfolio
in: path
- name: commodity
in: path
operations:
- name: get-hedge-data
method: GET
- type: http
namespace: bloomberg
baseUri: "https://api.bloomberg.com/eap/catalogs/bbg/datasets"
authentication:
type: bearer
token: "$secrets.bloomberg_token"
resources:
- name: forward-curves
path: "/commodities/{{commodity}}/forward-curve"
inputParameters:
- name: commodity
in: path
operations:
- name: get-forward-curve
method: GET
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{channel_id}}/channels/General/messages"
inputParameters:
- name: channel_id
in: path
operations:
- name: post-channel-message
method: POST
Retrieves the current trading position for a commodity and trading desk from the SAP trading system, returning exposure, mark-to-market value, and risk limits.
naftiko: "0.5"
info:
label: "Energy Trading Position Lookup"
description: "Retrieves the current trading position for a commodity and trading desk from the SAP trading system, returning exposure, mark-to-market value, and risk limits."
tags:
- energy-trading
- commodities
- sap
- risk-management
capability:
exposes:
- type: mcp
namespace: trading-positions
port: 8080
tools:
- name: get-trading-position
description: "Look up current trading position by commodity and desk from SAP."
inputParameters:
- name: commodity
in: body
type: string
description: "The commodity code (e.g., CRUDE, NATGAS, POWER)."
- name: desk_id
in: body
type: string
description: "The trading desk identifier."
call: "sap.get-position"
with:
commodity: "{{commodity}}"
desk_id: "{{desk_id}}"
consumes:
- type: http
namespace: sap
baseUri: "https://totalenergies.sap.com/sap/opu/odata/sap/ZTR_POSITION_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: positions
path: "/PositionSet(Commodity='{{commodity}}',Desk='{{desk_id}}')"
inputParameters:
- name: commodity
in: path
- name: desk_id
in: path
operations:
- name: get-position
method: GET
Orchestrates energy workflow 1 by coordinating across systems, validating data, and sending notifications.
naftiko: "0.5"
info:
label: "Energy Workflow 1"
description: "Orchestrates energy workflow 1 by coordinating across systems, validating data, and sending notifications."
tags:
- energy
- operations
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: energy
port: 8080
tools:
- name: run-energy-workflow-001
description: "Orchestrates energy workflow 1 by coordinating across systems, validating data, and sending notifications."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Energy Workflow 1 for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.totalenergies.com/v1"
authentication:
type: bearer
token: "$secrets.totalenergies_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.totalenergies.com/v2"
authentication:
type: bearer
token: "$secrets.totalenergies_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Orchestrates energy workflow 2 by coordinating across systems, validating data, and sending notifications.
naftiko: "0.5"
info:
label: "Energy Workflow 2"
description: "Orchestrates energy workflow 2 by coordinating across systems, validating data, and sending notifications."
tags:
- energy
- operations
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: energy
port: 8080
tools:
- name: run-energy-workflow-002
description: "Orchestrates energy workflow 2 by coordinating across systems, validating data, and sending notifications."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Energy Workflow 2 for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.totalenergies.com/v1"
authentication:
type: bearer
token: "$secrets.totalenergies_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.totalenergies.com/v2"
authentication:
type: bearer
token: "$secrets.totalenergies_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Retrieves energy operational data for workflow 3.
naftiko: "0.5"
info:
label: "Energy Data Query 3"
description: "Retrieves energy operational data for workflow 3."
tags:
- energy
- operations
capability:
exposes:
- type: mcp
namespace: energy
port: 8080
tools:
- name: get-data-3
description: "Query energy data for workflow 3."
inputParameters:
- name: entity_id
in: body
type: string
description: "The entity identifier."
call: "energy-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: energy-api
baseUri: "https://api.totalenergies.com/energy/v1"
authentication:
type: bearer
token: "$secrets.totalenergies_api_token"
resources:
- name: data
path: "/data/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-data-3
method: GET
Orchestrates energy workflow 4 by coordinating across systems, validating data, and sending notifications.
naftiko: "0.5"
info:
label: "Energy Workflow 4"
description: "Orchestrates energy workflow 4 by coordinating across systems, validating data, and sending notifications."
tags:
- energy
- operations
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: energy
port: 8080
tools:
- name: run-energy-workflow-004
description: "Orchestrates energy workflow 4 by coordinating across systems, validating data, and sending notifications."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Energy Workflow 4 for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.totalenergies.com/v1"
authentication:
type: bearer
token: "$secrets.totalenergies_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.totalenergies.com/v2"
authentication:
type: bearer
token: "$secrets.totalenergies_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Orchestrates energy workflow 5 by coordinating across systems, validating data, and sending notifications.
naftiko: "0.5"
info:
label: "Energy Workflow 5"
description: "Orchestrates energy workflow 5 by coordinating across systems, validating data, and sending notifications."
tags:
- energy
- operations
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: energy
port: 8080
tools:
- name: run-energy-workflow-005
description: "Orchestrates energy workflow 5 by coordinating across systems, validating data, and sending notifications."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Energy Workflow 5 for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.totalenergies.com/v1"
authentication:
type: bearer
token: "$secrets.totalenergies_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.totalenergies.com/v2"
authentication:
type: bearer
token: "$secrets.totalenergies_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Retrieves energy operational data for workflow 6.
naftiko: "0.5"
info:
label: "Energy Data Query 6"
description: "Retrieves energy operational data for workflow 6."
tags:
- energy
- operations
capability:
exposes:
- type: mcp
namespace: energy
port: 8080
tools:
- name: get-data-6
description: "Query energy data for workflow 6."
inputParameters:
- name: entity_id
in: body
type: string
description: "The entity identifier."
call: "energy-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: energy-api
baseUri: "https://api.totalenergies.com/energy/v1"
authentication:
type: bearer
token: "$secrets.totalenergies_api_token"
resources:
- name: data
path: "/data/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-data-6
method: GET
Orchestrates energy workflow 7 by coordinating across systems, validating data, and sending notifications.
naftiko: "0.5"
info:
label: "Energy Workflow 7"
description: "Orchestrates energy workflow 7 by coordinating across systems, validating data, and sending notifications."
tags:
- energy
- operations
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: energy
port: 8080
tools:
- name: run-energy-workflow-007
description: "Orchestrates energy workflow 7 by coordinating across systems, validating data, and sending notifications."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Energy Workflow 7 for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.totalenergies.com/v1"
authentication:
type: bearer
token: "$secrets.totalenergies_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.totalenergies.com/v2"
authentication:
type: bearer
token: "$secrets.totalenergies_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Orchestrates energy workflow 8 by coordinating across systems, validating data, and sending notifications.
naftiko: "0.5"
info:
label: "Energy Workflow 8"
description: "Orchestrates energy workflow 8 by coordinating across systems, validating data, and sending notifications."
tags:
- energy
- operations
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: energy
port: 8080
tools:
- name: run-energy-workflow-008
description: "Orchestrates energy workflow 8 by coordinating across systems, validating data, and sending notifications."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Energy Workflow 8 for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.totalenergies.com/v1"
authentication:
type: bearer
token: "$secrets.totalenergies_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.totalenergies.com/v2"
authentication:
type: bearer
token: "$secrets.totalenergies_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Retrieves energy operational data for workflow 9.
naftiko: "0.5"
info:
label: "Energy Data Query 9"
description: "Retrieves energy operational data for workflow 9."
tags:
- energy
- operations
capability:
exposes:
- type: mcp
namespace: energy
port: 8080
tools:
- name: get-data-9
description: "Query energy data for workflow 9."
inputParameters:
- name: entity_id
in: body
type: string
description: "The entity identifier."
call: "energy-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: energy-api
baseUri: "https://api.totalenergies.com/energy/v1"
authentication:
type: bearer
token: "$secrets.totalenergies_api_token"
resources:
- name: data
path: "/data/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-data-9
method: GET
Orchestrates energy workflow 10 by coordinating across systems, validating data, and sending notifications.
naftiko: "0.5"
info:
label: "Energy Workflow 10"
description: "Orchestrates energy workflow 10 by coordinating across systems, validating data, and sending notifications."
tags:
- energy
- operations
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: energy
port: 8080
tools:
- name: run-energy-workflow-010
description: "Orchestrates energy workflow 10 by coordinating across systems, validating data, and sending notifications."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Energy Workflow 10 for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.totalenergies.com/v1"
authentication:
type: bearer
token: "$secrets.totalenergies_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.totalenergies.com/v2"
authentication:
type: bearer
token: "$secrets.totalenergies_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Orchestrates energy workflow 11 by coordinating across systems, validating data, and sending notifications.
naftiko: "0.5"
info:
label: "Energy Workflow 11"
description: "Orchestrates energy workflow 11 by coordinating across systems, validating data, and sending notifications."
tags:
- energy
- operations
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: energy
port: 8080
tools:
- name: run-energy-workflow-011
description: "Orchestrates energy workflow 11 by coordinating across systems, validating data, and sending notifications."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Energy Workflow 11 for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.totalenergies.com/v1"
authentication:
type: bearer
token: "$secrets.totalenergies_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.totalenergies.com/v2"
authentication:
type: bearer
token: "$secrets.totalenergies_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Retrieves energy operational data for workflow 12.
naftiko: "0.5"
info:
label: "Energy Data Query 12"
description: "Retrieves energy operational data for workflow 12."
tags:
- energy
- operations
capability:
exposes:
- type: mcp
namespace: energy
port: 8080
tools:
- name: get-data-12
description: "Query energy data for workflow 12."
inputParameters:
- name: entity_id
in: body
type: string
description: "The entity identifier."
call: "energy-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: energy-api
baseUri: "https://api.totalenergies.com/energy/v1"
authentication:
type: bearer
token: "$secrets.totalenergies_api_token"
resources:
- name: data
path: "/data/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-data-12
method: GET
Orchestrates energy workflow 13 by coordinating across systems, validating data, and sending notifications.
naftiko: "0.5"
info:
label: "Energy Workflow 13"
description: "Orchestrates energy workflow 13 by coordinating across systems, validating data, and sending notifications."
tags:
- energy
- operations
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: energy
port: 8080
tools:
- name: run-energy-workflow-013
description: "Orchestrates energy workflow 13 by coordinating across systems, validating data, and sending notifications."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Energy Workflow 13 for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.totalenergies.com/v1"
authentication:
type: bearer
token: "$secrets.totalenergies_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.totalenergies.com/v2"
authentication:
type: bearer
token: "$secrets.totalenergies_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Orchestrates energy workflow 14 by coordinating across systems, validating data, and sending notifications.
naftiko: "0.5"
info:
label: "Energy Workflow 14"
description: "Orchestrates energy workflow 14 by coordinating across systems, validating data, and sending notifications."
tags:
- energy
- operations
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: energy
port: 8080
tools:
- name: run-energy-workflow-014
description: "Orchestrates energy workflow 14 by coordinating across systems, validating data, and sending notifications."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Energy Workflow 14 for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.totalenergies.com/v1"
authentication:
type: bearer
token: "$secrets.totalenergies_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.totalenergies.com/v2"
authentication:
type: bearer
token: "$secrets.totalenergies_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Retrieves energy operational data for workflow 15.
naftiko: "0.5"
info:
label: "Energy Data Query 15"
description: "Retrieves energy operational data for workflow 15."
tags:
- energy
- operations
capability:
exposes:
- type: mcp
namespace: energy
port: 8080
tools:
- name: get-data-15
description: "Query energy data for workflow 15."
inputParameters:
- name: entity_id
in: body
type: string
description: "The entity identifier."
call: "energy-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: energy-api
baseUri: "https://api.totalenergies.com/energy/v1"
authentication:
type: bearer
token: "$secrets.totalenergies_api_token"
resources:
- name: data
path: "/data/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-data-15
method: GET
Retrieves the operational status and utilization metrics for TotalEnergies electric vehicle charging stations in a region.
naftiko: "0.5"
info:
label: "EV Charging Station Status"
description: "Retrieves the operational status and utilization metrics for TotalEnergies electric vehicle charging stations in a region."
tags:
- renewable
- ev-charging
- station-management
- sustainability
capability:
exposes:
- type: mcp
namespace: ev-charging
port: 8080
tools:
- name: get-charging-station-status
description: "Fetch EV charging station status and utilization for a region."
inputParameters:
- name: region_code
in: body
type: string
description: "The geographic region code."
call: "station-mgmt.get-ev-status"
with:
region: "{{region_code}}"
consumes:
- type: http
namespace: station-mgmt
baseUri: "https://stations.totalenergies.com/api/v2"
authentication:
type: bearer
token: "$secrets.station_mgmt_token"
resources:
- name: ev-stations
path: "/regions/{{region}}/ev/status"
inputParameters:
- name: region
in: path
operations:
- name: get-ev-status
method: GET
Refreshes executive dashboards by pulling data from multiple sources, transforming metrics, and updating Power BI.
naftiko: "0.5"
info:
label: "Executive Dashboard Refresh Orchestrator"
description: "Refreshes executive dashboards by pulling data from multiple sources, transforming metrics, and updating Power BI."
tags:
- analytics
- power-bi
- business
capability:
exposes:
- type: mcp
namespace: analytics
port: 8080
tools:
- name: run-executive-dashboard-refresh-orchestrator
description: "Refreshes executive dashboards by pulling data from multiple sources, transforming metrics, and updating Power BI."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Executive Dashboard Refresh Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.totalenergies.com/v1"
authentication:
type: bearer
token: "$secrets.totalenergies_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.totalenergies.com/v2"
authentication:
type: bearer
token: "$secrets.totalenergies_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Retrieves fuel card transaction data from Mastercard and reconciles against station sales in SAP.
naftiko: "0.5"
info:
label: "Fuel Card Transaction Monitor"
description: "Retrieves fuel card transaction data from Mastercard and reconciles against station sales in SAP."
tags:
- retail
- payments
- mastercard
- sap
capability:
exposes:
- type: mcp
namespace: fuel-card-ops
port: 8080
tools:
- name: reconcile-fuel-card-transactions
description: "Fetch Mastercard fuel card transactions and reconcile with SAP station sales."
inputParameters:
- name: station_id
in: body
type: string
description: "The station identifier."
- name: date
in: body
type: string
description: "The transaction date in YYYY-MM-DD format."
steps:
- name: get-card-transactions
type: call
call: "mastercard.get-transactions"
with:
merchant_id: "{{station_id}}"
date: "{{date}}"
- name: get-sap-sales
type: call
call: "sap.get-station-sales"
with:
station: "{{station_id}}"
date: "{{date}}"
consumes:
- type: http
namespace: mastercard
baseUri: "https://api.mastercard.com/v1"
authentication:
type: bearer
token: "$secrets.mastercard_token"
resources:
- name: transactions
path: "/merchant/{{merchant_id}}/transactions?date={{date}}"
inputParameters:
- name: merchant_id
in: path
- name: date
in: path
operations:
- name: get-transactions
method: GET
- type: http
namespace: sap
baseUri: "https://totalenergies.sap.com/sap/opu/odata/sap/ZSD_STATION_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: station-sales
path: "/StationSalesSet(Station='{{station}}',Date='{{date}}')"
inputParameters:
- name: station
in: path
- name: date
in: path
operations:
- name: get-station-sales
method: GET
Retrieves current wholesale gas prices from the trading system and publishes updated retail prices to the station management platform.
naftiko: "0.5"
info:
label: "Gas Price Update Publisher"
description: "Retrieves current wholesale gas prices from the trading system and publishes updated retail prices to the station management platform."
tags:
- retail
- pricing
- energy-trading
- station-management
capability:
exposes:
- type: mcp
namespace: retail-pricing
port: 8080
tools:
- name: update-station-prices
description: "Fetch wholesale gas prices and update retail station pricing."
inputParameters:
- name: region_code
in: body
type: string
description: "The geographic region code."
- name: fuel_type
in: body
type: string
description: "Fuel type (e.g., DIESEL, UNLEADED95, UNLEADED98)."
steps:
- name: get-wholesale-price
type: call
call: "sap.get-wholesale-price"
with:
region: "{{region_code}}"
fuel_type: "{{fuel_type}}"
- name: update-retail-price
type: call
call: "station-mgmt.set-price"
with:
region: "{{region_code}}"
fuel_type: "{{fuel_type}}"
price: "{{get-wholesale-price.recommended_retail}}"
consumes:
- type: http
namespace: sap
baseUri: "https://totalenergies.sap.com/sap/opu/odata/sap/ZSD_PRICING_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: wholesale-prices
path: "/WholesalePriceSet(Region='{{region}}',FuelType='{{fuel_type}}')"
inputParameters:
- name: region
in: path
- name: fuel_type
in: path
operations:
- name: get-wholesale-price
method: GET
- type: http
namespace: station-mgmt
baseUri: "https://stations.totalenergies.com/api/v2"
authentication:
type: bearer
token: "$secrets.station_mgmt_token"
resources:
- name: prices
path: "/regions/{{region}}/fuels/{{fuel_type}}/price"
inputParameters:
- name: region
in: path
- name: fuel_type
in: path
operations:
- name: set-price
method: PUT
Fetches a document from Google Drive by file ID.
naftiko: "0.5"
info:
label: "Google Drive Document Retrieval"
description: "Fetches a document from Google Drive by file ID."
tags:
- document-management
- google-drive
capability:
exposes:
- type: mcp
namespace: doc-retrieval
port: 8080
tools:
- name: get-drive-document
description: "Retrieve a Google Drive document by file ID."
inputParameters:
- name: file_id
in: body
type: string
description: "The Google Drive file ID."
call: "gdrive.get-file"
with:
file_id: "{{file_id}}"
consumes:
- type: http
namespace: gdrive
baseUri: "https://www.googleapis.com/drive/v3"
authentication:
type: bearer
token: "$secrets.google_drive_token"
resources:
- name: files
path: "/files/{{file_id}}"
inputParameters:
- name: file_id
in: path
operations:
- name: get-file
method: GET
Retrieves a file from Google Drive.
naftiko: "0.5"
info:
label: "Google Drive File Viewer"
description: "Retrieves a file from Google Drive."
tags:
- collaboration
- google-drive
capability:
exposes:
- type: mcp
namespace: collaboration
port: 8080
tools:
- name: get-google
description: "Retrieves a file from Google Drive."
inputParameters:
- name: entity_id
in: body
type: string
description: "The google drive file viewer identifier."
call: "collaboration-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: collaboration-api
baseUri: "https://api.totalenergies.com/collaboration/v1"
authentication:
type: bearer
token: "$secrets.totalenergies_api_token"
resources:
- name: google
path: "/google/drive/file/viewer/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-google
method: GET
Creates a permit-to-work in ServiceNow for hazardous operations, validates required safety training via Workday, and notifies the site supervisor via Microsoft Teams.
naftiko: "0.5"
info:
label: "HSE Permit to Work Manager"
description: "Creates a permit-to-work in ServiceNow for hazardous operations, validates required safety training via Workday, and notifies the site supervisor via Microsoft Teams."
tags:
- safety
- permit-to-work
- servicenow
- workday
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: permit-management
port: 8080
tools:
- name: create-permit-to-work
description: "Create a permit-to-work with training validation and supervisor notification."
inputParameters:
- name: site_id
in: body
type: string
description: "The site identifier."
- name: work_type
in: body
type: string
description: "Type of hazardous work (e.g., hot-work, confined-space, electrical)."
- name: worker_id
in: body
type: string
description: "The Workday worker ID of the person performing the work."
- name: supervisor_upn
in: body
type: string
description: "The supervisor's email for notification."
steps:
- name: validate-training
type: call
call: "workday.get-training-status"
with:
worker_id: "{{worker_id}}"
required_course: "{{work_type}}_safety"
- name: create-permit
type: call
call: "servicenow.create-record"
with:
table: "u_permit_to_work"
site: "{{site_id}}"
work_type: "{{work_type}}"
worker: "{{worker_id}}"
training_valid: "{{validate-training.is_current}}"
- name: notify-supervisor
type: call
call: "msteams.send-message"
with:
recipient_upn: "{{supervisor_upn}}"
text: "Permit to Work request: {{work_type}} at {{site_id}}. Worker training: {{validate-training.is_current}}. Permit: {{create-permit.number}}"
consumes:
- type: http
namespace: workday
baseUri: "https://wd2-impl-services1.workday.com/ccx/api/v1"
authentication:
type: bearer
token: "$secrets.workday_token"
resources:
- name: training
path: "/workers/{{worker_id}}/training?course={{required_course}}"
inputParameters:
- name: worker_id
in: path
- name: required_course
in: path
operations:
- name: get-training-status
method: GET
- type: http
namespace: servicenow
baseUri: "https://totalenergies.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: records
path: "/table/{{table}}"
inputParameters:
- name: table
in: path
operations:
- name: create-record
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/users/{{recipient_upn}}/sendMail"
inputParameters:
- name: recipient_upn
in: path
operations:
- name: send-message
method: POST
Retrieves hydrogen production metrics from the green hydrogen facility management system including output rate, electrolyzer efficiency, and water consumption.
naftiko: "0.5"
info:
label: "Hydrogen Production Monitor"
description: "Retrieves hydrogen production metrics from the green hydrogen facility management system including output rate, electrolyzer efficiency, and water consumption."
tags:
- renewable
- hydrogen
- sustainability
- monitoring
capability:
exposes:
- type: mcp
namespace: hydrogen-ops
port: 8080
tools:
- name: get-hydrogen-production
description: "Fetch green hydrogen production metrics."
inputParameters:
- name: facility_id
in: body
type: string
description: "The hydrogen facility identifier."
call: "energy-mgmt.get-hydrogen-data"
with:
facility: "{{facility_id}}"
consumes:
- type: http
namespace: energy-mgmt
baseUri: "https://ems.totalenergies.com/api/v2"
authentication:
type: bearer
token: "$secrets.ems_token"
resources:
- name: hydrogen
path: "/hydrogen/facilities/{{facility}}/production"
inputParameters:
- name: facility
in: path
operations:
- name: get-hydrogen-data
method: GET
Plans infrastructure capacity by analyzing utilization trends, modeling growth, and generating procurement requests.
naftiko: "0.5"
info:
label: "Infrastructure Capacity Planning Orchestrator"
description: "Plans infrastructure capacity by analyzing utilization trends, modeling growth, and generating procurement requests."
tags:
- infrastructure
- planning
- finance
capability:
exposes:
- type: mcp
namespace: infrastructure
port: 8080
tools:
- name: run-infrastructure-capacity-planning-orchestrator
description: "Plans infrastructure capacity by analyzing utilization trends, modeling growth, and generating procurement requests."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Infrastructure Capacity Planning Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.totalenergies.com/v1"
authentication:
type: bearer
token: "$secrets.totalenergies_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.totalenergies.com/v2"
authentication:
type: bearer
token: "$secrets.totalenergies_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Manages IT changes by reviewing requests, scheduling implementation windows, and notifying affected teams.
naftiko: "0.5"
info:
label: "IT Change Management Orchestrator"
description: "Manages IT changes by reviewing requests, scheduling implementation windows, and notifying affected teams."
tags:
- it
- servicenow
- operations
capability:
exposes:
- type: mcp
namespace: it
port: 8080
tools:
- name: run-it-change-management-orchestrator
description: "Manages IT changes by reviewing requests, scheduling implementation windows, and notifying affected teams."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed IT Change Management Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.totalenergies.com/v1"
authentication:
type: bearer
token: "$secrets.totalenergies_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.totalenergies.com/v2"
authentication:
type: bearer
token: "$secrets.totalenergies_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Retrieves the current sprint and its issues for a Jira project board.
naftiko: "0.5"
info:
label: "Jira Sprint Board Viewer"
description: "Retrieves the current sprint and its issues for a Jira project board."
tags:
- development
- jira
- agile
capability:
exposes:
- type: mcp
namespace: dev-ops
port: 8080
tools:
- name: get-current-sprint
description: "Fetch current sprint details for a Jira board."
inputParameters:
- name: board_id
in: body
type: string
description: "The Jira board ID."
call: "jira.get-sprint"
with:
board_id: "{{board_id}}"
consumes:
- type: http
namespace: jira
baseUri: "https://totalenergies.atlassian.net/rest/agile/1.0"
authentication:
type: basic
username: "$secrets.jira_user"
password: "$secrets.jira_api_token"
resources:
- name: sprints
path: "/board/{{board_id}}/sprint?state=active"
inputParameters:
- name: board_id
in: path
operations:
- name: get-sprint
method: GET
Retrieves a Jira ticket by issue key.
naftiko: "0.5"
info:
label: "Jira Ticket Viewer"
description: "Retrieves a Jira ticket by issue key."
tags:
- engineering
- jira
capability:
exposes:
- type: mcp
namespace: engineering
port: 8080
tools:
- name: get-jira
description: "Retrieves a Jira ticket by issue key."
inputParameters:
- name: entity_id
in: body
type: string
description: "The jira ticket viewer identifier."
call: "engineering-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: engineering-api
baseUri: "https://api.totalenergies.com/engineering/v1"
authentication:
type: bearer
token: "$secrets.totalenergies_api_token"
resources:
- name: jira
path: "/jira/ticket/viewer/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-jira
method: GET
Refreshes the knowledge base by identifying outdated articles, routing for review, and publishing updates.
naftiko: "0.5"
info:
label: "Knowledge Base Refresh Orchestrator"
description: "Refreshes the knowledge base by identifying outdated articles, routing for review, and publishing updates."
tags:
- knowledge-management
- collaboration
- operations
capability:
exposes:
- type: mcp
namespace: knowledge-management
port: 8080
tools:
- name: run-knowledge-base-refresh-orchestrator
description: "Refreshes the knowledge base by identifying outdated articles, routing for review, and publishing updates."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Knowledge Base Refresh Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.totalenergies.com/v1"
authentication:
type: bearer
token: "$secrets.totalenergies_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.totalenergies.com/v2"
authentication:
type: bearer
token: "$secrets.totalenergies_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Fetches a job requisition from Workday and publishes it to LinkedIn Talent Solutions.
naftiko: "0.5"
info:
label: "LinkedIn Job Posting Publisher"
description: "Fetches a job requisition from Workday and publishes it to LinkedIn Talent Solutions."
tags:
- hr
- recruiting
- workday
- linkedin
capability:
exposes:
- type: mcp
namespace: talent-acquisition
port: 8080
tools:
- name: publish-job-to-linkedin
description: "Fetch a Workday job requisition and publish to LinkedIn."
inputParameters:
- name: requisition_id
in: body
type: string
description: "The Workday job requisition ID."
steps:
- name: get-requisition
type: call
call: "workday.get-requisition"
with:
requisition_id: "{{requisition_id}}"
- name: publish-posting
type: call
call: "linkedin.create-job-posting"
with:
title: "{{get-requisition.title}}"
description: "{{get-requisition.description}}"
location: "{{get-requisition.location}}"
consumes:
- type: http
namespace: workday
baseUri: "https://wd2-impl-services1.workday.com/ccx/api/v1"
authentication:
type: bearer
token: "$secrets.workday_token"
resources:
- name: requisitions
path: "/jobRequisitions/{{requisition_id}}"
inputParameters:
- name: requisition_id
in: path
operations:
- name: get-requisition
method: GET
- type: http
namespace: linkedin
baseUri: "https://api.linkedin.com/v2"
authentication:
type: bearer
token: "$secrets.linkedin_token"
resources:
- name: job-postings
path: "/simpleJobPostings"
operations:
- name: create-job-posting
method: POST
Checks LNG vessel availability from the fleet management system, creates a cargo booking in SAP, and notifies the shipping desk via Microsoft Teams.
naftiko: "0.5"
info:
label: "LNG Cargo Scheduling Pipeline"
description: "Checks LNG vessel availability from the fleet management system, creates a cargo booking in SAP, and notifies the shipping desk via Microsoft Teams."
tags:
- energy-trading
- lng
- shipping
- sap
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: lng-scheduling
port: 8080
tools:
- name: schedule-lng-cargo
description: "Check vessel availability, book cargo in SAP, and notify shipping desk."
inputParameters:
- name: loading_terminal
in: body
type: string
description: "The loading terminal identifier."
- name: discharge_port
in: body
type: string
description: "The discharge port."
- name: volume_cbm
in: body
type: string
description: "Cargo volume in cubic meters."
- name: loading_date
in: body
type: string
description: "Requested loading date in YYYY-MM-DD format."
steps:
- name: check-vessel
type: call
call: "fleet-mgmt.get-available-vessel"
with:
terminal: "{{loading_terminal}}"
date: "{{loading_date}}"
volume: "{{volume_cbm}}"
- name: create-booking
type: call
call: "sap.create-cargo-booking"
with:
vessel_id: "{{check-vessel.vessel_id}}"
terminal: "{{loading_terminal}}"
discharge: "{{discharge_port}}"
volume: "{{volume_cbm}}"
date: "{{loading_date}}"
- name: notify-desk
type: call
call: "msteams.post-channel-message"
with:
channel_id: "lng_shipping_desk"
text: "LNG cargo booked: {{check-vessel.vessel_name}} from {{loading_terminal}} to {{discharge_port}}. Volume: {{volume_cbm}} cbm. Loading: {{loading_date}}. Booking: {{create-booking.booking_id}}"
consumes:
- type: http
namespace: fleet-mgmt
baseUri: "https://fleet.totalenergies.com/api/v1"
authentication:
type: bearer
token: "$secrets.fleet_mgmt_token"
resources:
- name: vessels
path: "/vessels/available?terminal={{terminal}}&date={{date}}&minCapacity={{volume}}"
inputParameters:
- name: terminal
in: path
- name: date
in: path
- name: volume
in: path
operations:
- name: get-available-vessel
method: GET
- type: http
namespace: sap
baseUri: "https://totalenergies.sap.com/sap/opu/odata/sap/ZTR_CARGO_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: bookings
path: "/CargoBookingSet"
operations:
- name: create-cargo-booking
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{channel_id}}/channels/General/messages"
inputParameters:
- name: channel_id
in: path
operations:
- name: post-channel-message
method: POST
Evaluates marketing campaign performance by aggregating metrics across channels and generating ROI reports.
naftiko: "0.5"
info:
label: "Marketing Campaign Performance Orchestrator"
description: "Evaluates marketing campaign performance by aggregating metrics across channels and generating ROI reports."
tags:
- marketing
- analytics
- finance
capability:
exposes:
- type: mcp
namespace: marketing
port: 8080
tools:
- name: run-marketing-campaign-performance-orchestrator
description: "Evaluates marketing campaign performance by aggregating metrics across channels and generating ROI reports."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Marketing Campaign Performance Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.totalenergies.com/v1"
authentication:
type: bearer
token: "$secrets.totalenergies_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.totalenergies.com/v2"
authentication:
type: bearer
token: "$secrets.totalenergies_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Sends a formatted email via Microsoft Outlook Graph API.
naftiko: "0.5"
info:
label: "Microsoft Outlook Email Sender"
description: "Sends a formatted email via Microsoft Outlook Graph API."
tags:
- communications
- microsoft-outlook
- email
capability:
exposes:
- type: mcp
namespace: email-comms
port: 8080
tools:
- name: send-outlook-email
description: "Send an email via Microsoft Outlook."
inputParameters:
- name: to_address
in: body
type: string
description: "The recipient email."
- name: subject
in: body
type: string
description: "The subject."
- name: body_text
in: body
type: string
description: "The body."
call: "outlook.send-email"
with:
to: "{{to_address}}"
subject: "{{subject}}"
body: "{{body_text}}"
consumes:
- type: http
namespace: outlook
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: mail
path: "/me/sendMail"
operations:
- name: send-email
method: POST
Sends a formatted message to a specified Microsoft Teams channel.
naftiko: "0.5"
info:
label: "Microsoft Teams Channel Notifier"
description: "Sends a formatted message to a specified Microsoft Teams channel."
tags:
- communications
- microsoft-teams
- notifications
capability:
exposes:
- type: mcp
namespace: team-notifications
port: 8080
tools:
- name: send-teams-notification
description: "Post a notification message to a Microsoft Teams channel."
inputParameters:
- name: channel_id
in: body
type: string
description: "The Teams channel ID."
- name: message
in: body
type: string
description: "The message text to send."
call: "msteams.post-channel-message"
with:
channel_id: "{{channel_id}}"
text: "{{message}}"
consumes:
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{channel_id}}/channels/General/messages"
inputParameters:
- name: channel_id
in: path
operations:
- name: post-channel-message
method: POST
Sends a message to a Microsoft Teams channel.
naftiko: "0.5"
info:
label: "Microsoft Teams Message Sender"
description: "Sends a message to a Microsoft Teams channel."
tags:
- communications
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: communications
port: 8080
tools:
- name: get-microsoft
description: "Sends a message to a Microsoft Teams channel."
inputParameters:
- name: entity_id
in: body
type: string
description: "The microsoft teams message sender identifier."
call: "communications-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: communications-api
baseUri: "https://api.totalenergies.com/communications/v1"
authentication:
type: bearer
token: "$secrets.totalenergies_api_token"
resources:
- name: microsoft
path: "/microsoft/teams/message/sender/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-microsoft
method: GET
Submits a natural gas transportation nomination to the pipeline operator via the nomination system, records in SAP, and confirms with the trading desk via Microsoft Teams.
naftiko: "0.5"
info:
label: "Natural Gas Nomination Pipeline"
description: "Submits a natural gas transportation nomination to the pipeline operator via the nomination system, records in SAP, and confirms with the trading desk via Microsoft Teams."
tags:
- energy-trading
- natural-gas
- nominations
- sap
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: gas-nominations
port: 8080
tools:
- name: submit-gas-nomination
description: "Submit a gas transportation nomination, record in SAP, and confirm with trading."
inputParameters:
- name: pipeline_id
in: body
type: string
description: "The pipeline operator identifier."
- name: receipt_point
in: body
type: string
description: "The receipt point on the pipeline."
- name: delivery_point
in: body
type: string
description: "The delivery point."
- name: volume_mmbtu
in: body
type: string
description: "Volume in MMBtu."
- name: flow_date
in: body
type: string
description: "The flow date in YYYY-MM-DD format."
steps:
- name: submit-nomination
type: call
call: "nomination-system.submit"
with:
pipeline: "{{pipeline_id}}"
receipt: "{{receipt_point}}"
delivery: "{{delivery_point}}"
volume: "{{volume_mmbtu}}"
date: "{{flow_date}}"
- name: record-in-sap
type: call
call: "sap.create-nomination-record"
with:
pipeline: "{{pipeline_id}}"
volume: "{{volume_mmbtu}}"
date: "{{flow_date}}"
confirmation_id: "{{submit-nomination.confirmation_id}}"
- name: confirm-with-desk
type: call
call: "msteams.post-channel-message"
with:
channel_id: "gas_trading_desk"
text: "Gas nomination confirmed: {{volume_mmbtu}} MMBtu on {{pipeline_id}} ({{receipt_point}} to {{delivery_point}}) for {{flow_date}}. Confirmation: {{submit-nomination.confirmation_id}}"
consumes:
- type: http
namespace: nomination-system
baseUri: "https://nominations.totalenergies.com/api/v1"
authentication:
type: bearer
token: "$secrets.nomination_token"
resources:
- name: nominations
path: "/nominations"
operations:
- name: submit
method: POST
- type: http
namespace: sap
baseUri: "https://totalenergies.sap.com/sap/opu/odata/sap/ZTR_NOMINATION_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: nominations
path: "/NominationSet"
operations:
- name: create-nomination-record
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{channel_id}}/channels/General/messages"
inputParameters:
- name: channel_id
in: path
operations:
- name: post-channel-message
method: POST
Aggregates daily production data from SAP for an offshore platform, generates a Power BI report, and distributes to operations management via Microsoft Teams.
naftiko: "0.5"
info:
label: "Offshore Platform Production Report"
description: "Aggregates daily production data from SAP for an offshore platform, generates a Power BI report, and distributes to operations management via Microsoft Teams."
tags:
- production
- offshore
- sap
- power-bi
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: offshore-reporting
port: 8080
tools:
- name: generate-platform-report
description: "Generate and distribute an offshore platform production report."
inputParameters:
- name: platform_id
in: body
type: string
description: "The offshore platform identifier."
- name: report_date
in: body
type: string
description: "The report date in YYYY-MM-DD format."
steps:
- name: get-production-data
type: call
call: "sap.get-platform-production"
with:
platform: "{{platform_id}}"
date: "{{report_date}}"
- name: refresh-dashboard
type: call
call: "powerbi.refresh-dataset"
with:
dataset_id: "offshore_production_ds"
- name: distribute-report
type: call
call: "msteams.post-channel-message"
with:
channel_id: "offshore_ops_management"
text: "Platform {{platform_id}} production ({{report_date}}): Oil: {{get-production-data.oil_bpd}} bpd, Gas: {{get-production-data.gas_mmscfd}} MMscfd, Water cut: {{get-production-data.water_cut_pct}}%. Report: {{refresh-dashboard.report_url}}"
consumes:
- type: http
namespace: sap
baseUri: "https://totalenergies.sap.com/sap/opu/odata/sap/ZPR_PLATFORM_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: platform-production
path: "/PlatformProductionSet(Platform='{{platform}}',Date='{{date}}')"
inputParameters:
- name: platform
in: path
- name: date
in: path
operations:
- name: get-platform-production
method: GET
- type: http
namespace: powerbi
baseUri: "https://api.powerbi.com/v1.0/myorg"
authentication:
type: bearer
token: "$secrets.powerbi_token"
resources:
- name: datasets
path: "/datasets/{{dataset_id}}/refreshes"
inputParameters:
- name: dataset_id
in: path
operations:
- name: refresh-dataset
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{channel_id}}/channels/General/messages"
inputParameters:
- name: channel_id
in: path
operations:
- name: post-channel-message
method: POST
Monitors flow rates in a pipeline segment.
naftiko: "0.5"
info:
label: "Pipeline Flow Rate Monitor"
description: "Monitors flow rates in a pipeline segment."
tags:
- operations
- infrastructure
capability:
exposes:
- type: mcp
namespace: operations
port: 8080
tools:
- name: get-pipeline
description: "Monitors flow rates in a pipeline segment."
inputParameters:
- name: entity_id
in: body
type: string
description: "The pipeline flow rate monitor identifier."
call: "operations-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: operations-api
baseUri: "https://api.totalenergies.com/operations/v1"
authentication:
type: bearer
token: "$secrets.totalenergies_api_token"
resources:
- name: pipeline
path: "/pipeline/flow/rate/monitor/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-pipeline
method: GET
Checks pipeline integrity sensor data from the SCADA system and creates a ServiceNow incident if anomalies are detected.
naftiko: "0.5"
info:
label: "Pipeline Integrity Monitor"
description: "Checks pipeline integrity sensor data from the SCADA system and creates a ServiceNow incident if anomalies are detected."
tags:
- safety
- pipeline
- scada
- servicenow
- monitoring
capability:
exposes:
- type: mcp
namespace: pipeline-integrity
port: 8080
tools:
- name: check-pipeline-integrity
description: "Monitor pipeline integrity sensors and create incident if anomalies detected."
inputParameters:
- name: pipeline_id
in: body
type: string
description: "The pipeline segment identifier."
steps:
- name: get-sensor-data
type: call
call: "scada.get-pipeline-readings"
with:
pipeline_id: "{{pipeline_id}}"
- name: create-alert
type: call
call: "servicenow.create-incident"
with:
short_description: "Pipeline integrity anomaly: {{pipeline_id}}"
category: "pipeline_safety"
priority: "1"
description: "Pressure: {{get-sensor-data.pressure_psi}}. Flow: {{get-sensor-data.flow_rate}}. Anomaly score: {{get-sensor-data.anomaly_score}}."
consumes:
- type: http
namespace: scada
baseUri: "https://scada.totalenergies.com/api/v1"
authentication:
type: bearer
token: "$secrets.scada_token"
resources:
- name: pipeline-readings
path: "/pipelines/{{pipeline_id}}/current"
inputParameters:
- name: pipeline_id
in: path
operations:
- name: get-pipeline-readings
method: GET
- type: http
namespace: servicenow
baseUri: "https://totalenergies.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: incidents
path: "/table/incident"
operations:
- name: create-incident
method: POST
Triggers a Power BI dataset refresh.
naftiko: "0.5"
info:
label: "Power BI Dashboard Refresher"
description: "Triggers a Power BI dataset refresh."
tags:
- analytics
- power-bi
capability:
exposes:
- type: mcp
namespace: analytics
port: 8080
tools:
- name: get-power
description: "Triggers a Power BI dataset refresh."
inputParameters:
- name: entity_id
in: body
type: string
description: "The power bi dashboard refresher identifier."
call: "analytics-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: analytics-api
baseUri: "https://api.totalenergies.com/analytics/v1"
authentication:
type: bearer
token: "$secrets.totalenergies_api_token"
resources:
- name: power
path: "/power/bi/dashboard/refresher/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-power
method: GET
Triggers a Power BI dataset refresh for executive energy dashboards and returns status.
naftiko: "0.5"
info:
label: "Power BI Executive Dashboard Refresh"
description: "Triggers a Power BI dataset refresh for executive energy dashboards and returns status."
tags:
- analytics
- power-bi
- reporting
capability:
exposes:
- type: mcp
namespace: bi-refresh
port: 8080
tools:
- name: refresh-executive-dashboard
description: "Trigger a Power BI dataset refresh."
inputParameters:
- name: dataset_id
in: body
type: string
description: "The Power BI dataset ID."
call: "powerbi.refresh-dataset"
with:
dataset_id: "{{dataset_id}}"
consumes:
- type: http
namespace: powerbi
baseUri: "https://api.powerbi.com/v1.0/myorg"
authentication:
type: bearer
token: "$secrets.powerbi_token"
resources:
- name: refreshes
path: "/datasets/{{dataset_id}}/refreshes"
inputParameters:
- name: dataset_id
in: path
operations:
- name: refresh-dataset
method: POST
Retrieves current power grid load data from the energy management system and adjusts generation dispatch recommendations.
naftiko: "0.5"
info:
label: "Power Grid Load Balancer"
description: "Retrieves current power grid load data from the energy management system and adjusts generation dispatch recommendations."
tags:
- energy-trading
- power-grid
- energy-management
- dispatch
capability:
exposes:
- type: mcp
namespace: grid-management
port: 8080
tools:
- name: get-grid-load
description: "Fetch current power grid load and dispatch data."
inputParameters:
- name: grid_zone
in: body
type: string
description: "The grid zone identifier."
call: "energy-mgmt.get-grid-load"
with:
zone: "{{grid_zone}}"
consumes:
- type: http
namespace: energy-mgmt
baseUri: "https://ems.totalenergies.com/api/v2"
authentication:
type: bearer
token: "$secrets.ems_token"
resources:
- name: grid-load
path: "/grid/zones/{{zone}}/load"
inputParameters:
- name: zone
in: path
operations:
- name: get-grid-load
method: GET
Analyzes procurement spend by categorizing purchases, identifying savings opportunities, and generating reports.
naftiko: "0.5"
info:
label: "Procurement Spend Analysis Orchestrator"
description: "Analyzes procurement spend by categorizing purchases, identifying savings opportunities, and generating reports."
tags:
- procurement
- analytics
- finance
capability:
exposes:
- type: mcp
namespace: procurement
port: 8080
tools:
- name: run-procurement-spend-analysis-orchestrator
description: "Analyzes procurement spend by categorizing purchases, identifying savings opportunities, and generating reports."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Procurement Spend Analysis Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.totalenergies.com/v1"
authentication:
type: bearer
token: "$secrets.totalenergies_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.totalenergies.com/v2"
authentication:
type: bearer
token: "$secrets.totalenergies_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Queries SAP for an oil/gas well's production performance data including daily production rate, water cut, and gas-oil ratio.
naftiko: "0.5"
info:
label: "Production Well Performance Lookup"
description: "Queries SAP for an oil/gas well's production performance data including daily production rate, water cut, and gas-oil ratio."
tags:
- production
- upstream
- sap
- wells
capability:
exposes:
- type: mcp
namespace: well-performance
port: 8080
tools:
- name: get-well-production
description: "Retrieve well production performance data from SAP."
inputParameters:
- name: well_id
in: body
type: string
description: "The well identifier."
call: "sap.get-well-data"
with:
well_id: "{{well_id}}"
consumes:
- type: http
namespace: sap
baseUri: "https://totalenergies.sap.com/sap/opu/odata/sap/ZPR_WELL_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: well-data
path: "/WellProductionSet('{{well_id}}')"
inputParameters:
- name: well_id
in: path
operations:
- name: get-well-data
method: GET
Generates quarterly business reviews by aggregating KPIs from multiple systems, creating presentations, and distributing to stakeholders.
naftiko: "0.5"
info:
label: "Quarterly Business Review Orchestrator"
description: "Generates quarterly business reviews by aggregating KPIs from multiple systems, creating presentations, and distributing to stakeholders."
tags:
- analytics
- business
- sharepoint
capability:
exposes:
- type: mcp
namespace: analytics
port: 8080
tools:
- name: run-quarterly-business-review-orchestrator
description: "Generates quarterly business reviews by aggregating KPIs from multiple systems, creating presentations, and distributing to stakeholders."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Quarterly Business Review Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.totalenergies.com/v1"
authentication:
type: bearer
token: "$secrets.totalenergies_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.totalenergies.com/v2"
authentication:
type: bearer
token: "$secrets.totalenergies_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Checks SAP Plant Maintenance for upcoming turnaround tasks at a refinery and creates ServiceNow work orders for the maintenance team.
naftiko: "0.5"
info:
label: "Refinery Maintenance Scheduler"
description: "Checks SAP Plant Maintenance for upcoming turnaround tasks at a refinery and creates ServiceNow work orders for the maintenance team."
tags:
- refining
- maintenance
- sap
- servicenow
capability:
exposes:
- type: mcp
namespace: refinery-maintenance
port: 8080
tools:
- name: schedule-turnaround-tasks
description: "Retrieve upcoming turnaround tasks from SAP and create ServiceNow work orders."
inputParameters:
- name: plant_code
in: body
type: string
description: "The SAP refinery plant code."
- name: days_ahead
in: body
type: string
description: "Days to look ahead for scheduled tasks."
steps:
- name: get-tasks
type: call
call: "sap.get-turnaround-tasks"
with:
plant: "{{plant_code}}"
days: "{{days_ahead}}"
- name: create-work-orders
type: call
call: "servicenow.create-record"
with:
table: "wm_order"
short_description: "Turnaround: {{get-tasks.task_summary}}"
plant: "{{plant_code}}"
scheduled_date: "{{get-tasks.scheduled_date}}"
consumes:
- type: http
namespace: sap
baseUri: "https://totalenergies.sap.com/sap/opu/odata/sap/ZPM_TURNAROUND_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: turnaround-tasks
path: "/TurnaroundTaskSet?$filter=Plant eq '{{plant}}' and DaysAhead le {{days}}"
inputParameters:
- name: plant
in: path
- name: days
in: path
operations:
- name: get-turnaround-tasks
method: GET
- type: http
namespace: servicenow
baseUri: "https://totalenergies.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: records
path: "/table/{{table}}"
inputParameters:
- name: table
in: path
operations:
- name: create-record
method: POST
Queries SAP for refined product inventory at a refinery including gasoline, diesel, jet fuel, and naphtha stock levels.
naftiko: "0.5"
info:
label: "Refinery Product Inventory"
description: "Queries SAP for refined product inventory at a refinery including gasoline, diesel, jet fuel, and naphtha stock levels."
tags:
- refining
- inventory
- sap
- products
capability:
exposes:
- type: mcp
namespace: refinery-inventory
port: 8080
tools:
- name: get-product-inventory
description: "Fetch refined product inventory levels at a refinery from SAP."
inputParameters:
- name: plant_code
in: body
type: string
description: "The SAP refinery plant code."
call: "sap.get-refinery-stock"
with:
plant: "{{plant_code}}"
consumes:
- type: http
namespace: sap
baseUri: "https://totalenergies.sap.com/sap/opu/odata/sap/ZMM_REFINERY_STOCK_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: refinery-stock
path: "/RefineryStockSet?$filter=Plant eq '{{plant}}'"
inputParameters:
- name: plant
in: path
operations:
- name: get-refinery-stock
method: GET
Checks current refinery throughput and capacity utilization.
naftiko: "0.5"
info:
label: "Refinery Throughput Status"
description: "Checks current refinery throughput and capacity utilization."
tags:
- refining
- operations
capability:
exposes:
- type: mcp
namespace: refining
port: 8080
tools:
- name: get-refinery
description: "Checks current refinery throughput and capacity utilization."
inputParameters:
- name: entity_id
in: body
type: string
description: "The refinery throughput status identifier."
call: "refining-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: refining-api
baseUri: "https://api.totalenergies.com/refining/v1"
authentication:
type: bearer
token: "$secrets.totalenergies_api_token"
resources:
- name: refinery
path: "/refinery/throughput/status/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-refinery
method: GET
Queries the SAP Plant Maintenance system for current operational status of a refinery processing unit, returning throughput, temperature, pressure, and alarm status.
naftiko: "0.5"
info:
label: "Refinery Unit Status Monitor"
description: "Queries the SAP Plant Maintenance system for current operational status of a refinery processing unit, returning throughput, temperature, pressure, and alarm status."
tags:
- refining
- operations
- sap
- monitoring
capability:
exposes:
- type: mcp
namespace: refinery-ops
port: 8080
tools:
- name: get-unit-status
description: "Retrieve operational status for a refinery processing unit from SAP."
inputParameters:
- name: plant_code
in: body
type: string
description: "The SAP plant code for the refinery."
- name: unit_id
in: body
type: string
description: "The processing unit identifier."
call: "sap.get-unit-status"
with:
plant: "{{plant_code}}"
unit: "{{unit_id}}"
consumes:
- type: http
namespace: sap
baseUri: "https://totalenergies.sap.com/sap/opu/odata/sap/ZPM_REFINERY_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: unit-status
path: "/UnitStatusSet(Plant='{{plant}}',Unit='{{unit}}')"
inputParameters:
- name: plant
in: path
- name: unit
in: path
operations:
- name: get-unit-status
method: GET
Generates a regulatory compliance report from SAP environmental data, uploads to SharePoint, and logs the submission in ServiceNow.
naftiko: "0.5"
info:
label: "Regulatory Compliance Report Submitter"
description: "Generates a regulatory compliance report from SAP environmental data, uploads to SharePoint, and logs the submission in ServiceNow."
tags:
- compliance
- regulatory
- sap
- sharepoint
- servicenow
capability:
exposes:
- type: mcp
namespace: regulatory-reporting
port: 8080
tools:
- name: submit-regulatory-report
description: "Generate, upload, and log a regulatory compliance report."
inputParameters:
- name: site_id
in: body
type: string
description: "The facility site identifier."
- name: regulation_type
in: body
type: string
description: "The regulation type (e.g., EU-ETS, REACH, SEVESO)."
- name: period
in: body
type: string
description: "The reporting period in YYYY-MM format."
steps:
- name: generate-data
type: call
call: "sap.get-compliance-data"
with:
site: "{{site_id}}"
regulation: "{{regulation_type}}"
period: "{{period}}"
- name: upload-report
type: call
call: "sharepoint.upload-file"
with:
site_id: "regulatory_compliance"
file_path: "Reports/{{regulation_type}}/{{site_id}}_{{period}}.pdf"
content: "{{generate-data.report_content}}"
- name: log-submission
type: call
call: "servicenow.create-record"
with:
table: "u_regulatory_filing"
site: "{{site_id}}"
regulation: "{{regulation_type}}"
period: "{{period}}"
document_url: "{{upload-report.url}}"
consumes:
- type: http
namespace: sap
baseUri: "https://totalenergies.sap.com/sap/opu/odata/sap/ZSU_COMPLIANCE_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: compliance-data
path: "/ComplianceDataSet"
operations:
- name: get-compliance-data
method: POST
- type: http
namespace: sharepoint
baseUri: "https://graph.microsoft.com/v1.0/sites"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: files
path: "/{{site_id}}/drive/root:/{{file_path}}:/content"
inputParameters:
- name: site_id
in: path
- name: file_path
in: path
operations:
- name: upload-file
method: PUT
- type: http
namespace: servicenow
baseUri: "https://totalenergies.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: records
path: "/table/{{table}}"
inputParameters:
- name: table
in: path
operations:
- name: create-record
method: POST
Fetches solar and wind generation data from the energy management system for a renewable asset and returns current output, capacity factor, and forecast.
naftiko: "0.5"
info:
label: "Renewable Energy Generation Dashboard"
description: "Fetches solar and wind generation data from the energy management system for a renewable asset and returns current output, capacity factor, and forecast."
tags:
- renewable
- energy-generation
- monitoring
- sustainability
capability:
exposes:
- type: mcp
namespace: renewable-generation
port: 8080
tools:
- name: get-generation-data
description: "Retrieve current renewable energy generation metrics for an asset."
inputParameters:
- name: asset_id
in: body
type: string
description: "The renewable energy asset identifier."
call: "energy-mgmt.get-generation"
with:
asset_id: "{{asset_id}}"
consumes:
- type: http
namespace: energy-mgmt
baseUri: "https://ems.totalenergies.com/api/v2"
authentication:
type: bearer
token: "$secrets.ems_token"
resources:
- name: generation
path: "/assets/{{asset_id}}/generation/current"
inputParameters:
- name: asset_id
in: path
operations:
- name: get-generation
method: GET
Logs a safety incident in ServiceNow, creates a Jira investigation task, and sends an urgent alert to the HSE team via Microsoft Teams.
naftiko: "0.5"
info:
label: "Safety Incident Reporter"
description: "Logs a safety incident in ServiceNow, creates a Jira investigation task, and sends an urgent alert to the HSE team via Microsoft Teams."
tags:
- safety
- hse
- servicenow
- jira
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: safety-reporting
port: 8080
tools:
- name: report-safety-incident
description: "Log a safety incident across ServiceNow, Jira, and Teams."
inputParameters:
- name: site_name
in: body
type: string
description: "The facility or site name."
- name: incident_type
in: body
type: string
description: "Type of safety incident (e.g., spill, injury, near-miss, fire)."
- name: severity
in: body
type: string
description: "Severity level: minor, moderate, major, critical."
- name: description
in: body
type: string
description: "Detailed description of the incident."
steps:
- name: create-incident
type: call
call: "servicenow.create-incident"
with:
short_description: "Safety incident: {{incident_type}} at {{site_name}}"
category: "hse_incident"
priority: "{{severity}}"
description: "{{description}}"
- name: create-investigation
type: call
call: "jira.create-issue"
with:
project: "HSE"
summary: "Investigate: {{incident_type}} at {{site_name}}"
description: "ServiceNow: {{create-incident.number}}. {{description}}"
issue_type: "Task"
priority: "{{severity}}"
- name: alert-hse-team
type: call
call: "msteams.post-channel-message"
with:
channel_id: "hse_alerts"
text: "SAFETY ALERT ({{severity}}): {{incident_type}} at {{site_name}}. ServiceNow: {{create-incident.number}}. Jira: {{create-investigation.key}}"
consumes:
- type: http
namespace: servicenow
baseUri: "https://totalenergies.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: jira
baseUri: "https://totalenergies.atlassian.net/rest/api/3"
authentication:
type: basic
username: "$secrets.jira_user"
password: "$secrets.jira_api_token"
resources:
- name: issues
path: "/issue"
operations:
- name: create-issue
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{channel_id}}/channels/General/messages"
inputParameters:
- name: channel_id
in: path
operations:
- name: post-channel-message
method: POST
Retrieves a Salesforce account by ID including contract details and relationship tier.
naftiko: "0.5"
info:
label: "Salesforce Account Lookup"
description: "Retrieves a Salesforce account by ID including contract details and relationship tier."
tags:
- sales
- salesforce
- accounts
capability:
exposes:
- type: mcp
namespace: sales-accounts
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 ID."
call: "salesforce.get-account"
with:
account_id: "{{account_id}}"
consumes:
- type: http
namespace: salesforce
baseUri: "https://totalenergies.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 Salesforce account by account ID.
naftiko: "0.5"
info:
label: "Salesforce Account Viewer"
description: "Retrieves a Salesforce account by account ID."
tags:
- sales
- salesforce
capability:
exposes:
- type: mcp
namespace: sales
port: 8080
tools:
- name: get-salesforce
description: "Retrieves a Salesforce account by account ID."
inputParameters:
- name: entity_id
in: body
type: string
description: "The salesforce account viewer identifier."
call: "sales-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: sales-api
baseUri: "https://api.totalenergies.com/sales/v1"
authentication:
type: bearer
token: "$secrets.totalenergies_api_token"
resources:
- name: salesforce
path: "/salesforce/account/viewer/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-salesforce
method: GET
Creates and submits a travel expense report in SAP Concur.
naftiko: "0.5"
info:
label: "SAP Concur Travel Expense Submitter"
description: "Creates and submits a travel expense report in SAP Concur."
tags:
- finance
- sap-concur
- expense-management
- travel
capability:
exposes:
- type: mcp
namespace: expense-mgmt
port: 8080
tools:
- name: submit-expense-report
description: "Create and submit a travel expense report in SAP Concur."
inputParameters:
- name: employee_id
in: body
type: string
description: "The employee ID."
- name: report_name
in: body
type: string
description: "Name for the expense report."
- name: expense_entries
in: body
type: string
description: "JSON array of expense entries."
call: "concur.create-report"
with:
employee_id: "{{employee_id}}"
report_name: "{{report_name}}"
entries: "{{expense_entries}}"
consumes:
- type: http
namespace: concur
baseUri: "https://us.api.concursolutions.com/api/v3.0"
authentication:
type: bearer
token: "$secrets.concur_token"
resources:
- name: expense-reports
path: "/expense/reports"
operations:
- name: create-report
method: POST
Retrieves material master data from SAP by material number.
naftiko: "0.5"
info:
label: "SAP Material Master Lookup"
description: "Retrieves material master data from SAP by material number."
tags:
- erp
- sap
- materials
- master-data
capability:
exposes:
- type: mcp
namespace: material-master
port: 8080
tools:
- name: get-material
description: "Look up SAP material master data by material number."
inputParameters:
- name: material_number
in: body
type: string
description: "The SAP material number."
call: "sap.get-material"
with:
material_number: "{{material_number}}"
consumes:
- type: http
namespace: sap
baseUri: "https://totalenergies.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
Looks up a SAP purchase order by number and returns header status, vendor, total value, and delivery schedule.
naftiko: "0.5"
info:
label: "SAP Purchase Order Status"
description: "Looks up a SAP purchase order by number and returns header status, vendor, total value, and delivery schedule."
tags:
- procurement
- sap
- purchase-order
capability:
exposes:
- type: mcp
namespace: procurement
port: 8080
tools:
- name: get-purchase-order
description: "Look up a SAP purchase order by PO number."
inputParameters:
- name: po_number
in: body
type: string
description: "The SAP purchase order number."
call: "sap.get-po"
with:
po_number: "{{po_number}}"
consumes:
- type: http
namespace: sap
baseUri: "https://totalenergies.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
Conducts security audits by scanning systems, documenting findings in ServiceNow, and tracking remediation.
naftiko: "0.5"
info:
label: "Security Audit Orchestrator"
description: "Conducts security audits by scanning systems, documenting findings in ServiceNow, and tracking remediation."
tags:
- security
- servicenow
- compliance
capability:
exposes:
- type: mcp
namespace: security
port: 8080
tools:
- name: run-security-audit-orchestrator
description: "Conducts security audits by scanning systems, documenting findings in ServiceNow, and tracking remediation."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Security Audit Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.totalenergies.com/v1"
authentication:
type: bearer
token: "$secrets.totalenergies_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.totalenergies.com/v2"
authentication:
type: bearer
token: "$secrets.totalenergies_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Retrieves seismic survey data from the geoscience database for a specified exploration block.
naftiko: "0.5"
info:
label: "Seismic Survey Data Retrieval"
description: "Retrieves seismic survey data from the geoscience database for a specified exploration block."
tags:
- upstream
- exploration
- geoscience
- research
capability:
exposes:
- type: mcp
namespace: geoscience
port: 8080
tools:
- name: get-seismic-data
description: "Fetch seismic survey data for an exploration block."
inputParameters:
- name: block_id
in: body
type: string
description: "The exploration block identifier."
call: "geoscience-db.get-survey"
with:
block_id: "{{block_id}}"
consumes:
- type: http
namespace: geoscience-db
baseUri: "https://geoscience.totalenergies.com/api/v1"
authentication:
type: bearer
token: "$secrets.geoscience_token"
resources:
- name: surveys
path: "/blocks/{{block_id}}/seismic"
inputParameters:
- name: block_id
in: path
operations:
- name: get-survey
method: GET
Creates a new incident in ServiceNow.
naftiko: "0.5"
info:
label: "ServiceNow Incident Creator"
description: "Creates a new incident in ServiceNow."
tags:
- it
- servicenow
capability:
exposes:
- type: mcp
namespace: it
port: 8080
tools:
- name: get-servicenow
description: "Creates a new incident in ServiceNow."
inputParameters:
- name: entity_id
in: body
type: string
description: "The servicenow incident creator identifier."
call: "it-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: it-api
baseUri: "https://api.totalenergies.com/it/v1"
authentication:
type: bearer
token: "$secrets.totalenergies_api_token"
resources:
- name: servicenow
path: "/servicenow/incident/creator/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-servicenow
method: GET
Retrieves a ServiceNow incident by number and returns current state, priority, assigned group, and resolution notes.
naftiko: "0.5"
info:
label: "ServiceNow Incident Lookup"
description: "Retrieves a ServiceNow incident by number and returns current state, priority, assigned group, and resolution notes."
tags:
- it-support
- servicenow
- incident-management
capability:
exposes:
- type: mcp
namespace: it-service
port: 8080
tools:
- name: get-incident
description: "Look up a ServiceNow incident by number."
inputParameters:
- name: incident_number
in: body
type: string
description: "The ServiceNow incident number."
call: "servicenow.get-incident"
with:
incident_number: "{{incident_number}}"
consumes:
- type: http
namespace: servicenow
baseUri: "https://totalenergies.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: incidents
path: "/table/incident?sysparm_query=number={{incident_number}}"
inputParameters:
- name: incident_number
in: path
operations:
- name: get-incident
method: GET
Fetches a document from SharePoint by site and path.
naftiko: "0.5"
info:
label: "SharePoint Document Retrieval"
description: "Fetches a document from SharePoint by site and path."
tags:
- document-management
- sharepoint
capability:
exposes:
- type: mcp
namespace: doc-management
port: 8080
tools:
- name: get-sharepoint-doc
description: "Retrieve a document from SharePoint."
inputParameters:
- name: site_id
in: body
type: string
description: "The SharePoint site identifier."
- name: file_path
in: body
type: string
description: "The file path."
call: "sharepoint.get-file"
with:
site_id: "{{site_id}}"
file_path: "{{file_path}}"
consumes:
- type: http
namespace: sharepoint
baseUri: "https://graph.microsoft.com/v1.0/sites"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: files
path: "/{{site_id}}/drive/root:/{{file_path}}"
inputParameters:
- name: site_id
in: path
- name: file_path
in: path
operations:
- name: get-file
method: GET
Sends a notification to a Slack channel.
naftiko: "0.5"
info:
label: "Slack Notification Publisher"
description: "Sends a notification to a Slack channel."
tags:
- communications
- slack
capability:
exposes:
- type: mcp
namespace: communications
port: 8080
tools:
- name: get-slack
description: "Sends a notification to a Slack channel."
inputParameters:
- name: entity_id
in: body
type: string
description: "The slack notification publisher identifier."
call: "communications-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: communications-api
baseUri: "https://api.totalenergies.com/communications/v1"
authentication:
type: bearer
token: "$secrets.totalenergies_api_token"
resources:
- name: slack
path: "/slack/notification/publisher/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-slack
method: GET
Runs an analytics query against the Snowflake data warehouse.
naftiko: "0.5"
info:
label: "Snowflake Analytics Query"
description: "Runs an analytics query against the Snowflake data warehouse."
tags:
- analytics
- snowflake
capability:
exposes:
- type: mcp
namespace: analytics
port: 8080
tools:
- name: get-snowflake
description: "Runs an analytics query against the Snowflake data warehouse."
inputParameters:
- name: entity_id
in: body
type: string
description: "The snowflake analytics query identifier."
call: "analytics-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: analytics-api
baseUri: "https://api.totalenergies.com/analytics/v1"
authentication:
type: bearer
token: "$secrets.totalenergies_api_token"
resources:
- name: snowflake
path: "/snowflake/analytics/query/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-snowflake
method: GET
Retrieves solar panel performance data from the energy management system, compares against weather forecasts, identifies underperforming arrays, and creates Jira maintenance tasks.
naftiko: "0.5"
info:
label: "Solar Farm Performance Optimizer"
description: "Retrieves solar panel performance data from the energy management system, compares against weather forecasts, identifies underperforming arrays, and creates Jira maintenance tasks."
tags:
- renewable
- solar
- energy-management
- jira
- optimization
capability:
exposes:
- type: mcp
namespace: solar-optimization
port: 8080
tools:
- name: optimize-solar-performance
description: "Analyze solar array performance and create maintenance tasks for underperformers."
inputParameters:
- name: farm_id
in: body
type: string
description: "The solar farm identifier."
steps:
- name: get-performance
type: call
call: "energy-mgmt.get-array-performance"
with:
farm_id: "{{farm_id}}"
- name: get-weather
type: call
call: "energy-mgmt.get-weather-forecast"
with:
farm_id: "{{farm_id}}"
- name: create-maintenance
type: call
call: "jira.create-issue"
with:
project: "SOLAR"
summary: "Underperforming arrays at {{farm_id}}: {{get-performance.underperforming_count}} arrays"
description: "Expected output: {{get-weather.expected_kwh}}. Actual: {{get-performance.actual_kwh}}. Gap: {{get-performance.gap_pct}}%."
issue_type: "Task"
consumes:
- type: http
namespace: energy-mgmt
baseUri: "https://ems.totalenergies.com/api/v2"
authentication:
type: bearer
token: "$secrets.ems_token"
resources:
- name: array-performance
path: "/farms/{{farm_id}}/arrays/performance"
inputParameters:
- name: farm_id
in: path
operations:
- name: get-array-performance
method: GET
- name: weather
path: "/farms/{{farm_id}}/weather/forecast"
inputParameters:
- name: farm_id
in: path
operations:
- name: get-weather-forecast
method: GET
- type: http
namespace: jira
baseUri: "https://totalenergies.atlassian.net/rest/api/3"
authentication:
type: basic
username: "$secrets.jira_user"
password: "$secrets.jira_api_token"
resources:
- name: issues
path: "/issue"
operations:
- name: create-issue
method: POST
Queries Splunk for security events in a time range for OT and IT systems, returning event counts and severity breakdown.
naftiko: "0.5"
info:
label: "Splunk Security Event Monitor"
description: "Queries Splunk for security events in a time range for OT and IT systems, returning event counts and severity breakdown."
tags:
- security
- splunk
- monitoring
- cybersecurity
capability:
exposes:
- type: mcp
namespace: security-monitoring
port: 8080
tools:
- name: get-security-events
description: "Fetch security events from Splunk for a time range."
inputParameters:
- name: index
in: body
type: string
description: "The Splunk index (e.g., ot_security, it_security)."
- name: time_range
in: body
type: string
description: "Time range (e.g., -24h, -7d)."
call: "splunk.search-events"
with:
index: "{{index}}"
range: "{{time_range}}"
consumes:
- type: http
namespace: splunk
baseUri: "https://splunk.totalenergies.com:8089/services"
authentication:
type: bearer
token: "$secrets.splunk_token"
resources:
- name: search
path: "/search/jobs"
operations:
- name: search-events
method: POST
Collects sustainability metrics by gathering environmental data, calculating carbon footprint, and publishing ESG reports.
naftiko: "0.5"
info:
label: "Sustainability Metrics Collection Orchestrator"
description: "Collects sustainability metrics by gathering environmental data, calculating carbon footprint, and publishing ESG reports."
tags:
- sustainability
- analytics
- compliance
capability:
exposes:
- type: mcp
namespace: sustainability
port: 8080
tools:
- name: run-sustainability-metrics-collection-orchestrator
description: "Collects sustainability metrics by gathering environmental data, calculating carbon footprint, and publishing ESG reports."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Sustainability Metrics Collection Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.totalenergies.com/v1"
authentication:
type: bearer
token: "$secrets.totalenergies_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.totalenergies.com/v2"
authentication:
type: bearer
token: "$secrets.totalenergies_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Retrieves real-time tank inventory levels from the SCADA system for a terminal, returning product type, volume, temperature, and capacity utilization.
naftiko: "0.5"
info:
label: "Tank Farm Inventory Monitor"
description: "Retrieves real-time tank inventory levels from the SCADA system for a terminal, returning product type, volume, temperature, and capacity utilization."
tags:
- operations
- storage
- scada
- inventory
capability:
exposes:
- type: mcp
namespace: tank-inventory
port: 8080
tools:
- name: get-tank-levels
description: "Fetch real-time tank inventory levels from SCADA."
inputParameters:
- name: terminal_id
in: body
type: string
description: "The terminal identifier."
call: "scada.get-tank-inventory"
with:
terminal_id: "{{terminal_id}}"
consumes:
- type: http
namespace: scada
baseUri: "https://scada.totalenergies.com/api/v1"
authentication:
type: bearer
token: "$secrets.scada_token"
resources:
- name: tank-inventory
path: "/terminals/{{terminal_id}}/tanks"
inputParameters:
- name: terminal_id
in: path
operations:
- name: get-tank-inventory
method: GET
Assesses third-party risks by collecting vendor questionnaires, scoring responses, and tracking remediation plans.
naftiko: "0.5"
info:
label: "Third Party Risk Assessment Orchestrator"
description: "Assesses third-party risks by collecting vendor questionnaires, scoring responses, and tracking remediation plans."
tags:
- risk
- procurement
- compliance
capability:
exposes:
- type: mcp
namespace: risk
port: 8080
tools:
- name: run-third-party-risk-assessment-orchestrator
description: "Assesses third-party risks by collecting vendor questionnaires, scoring responses, and tracking remediation plans."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Third Party Risk Assessment Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.totalenergies.com/v1"
authentication:
type: bearer
token: "$secrets.totalenergies_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.totalenergies.com/v2"
authentication:
type: bearer
token: "$secrets.totalenergies_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Monitors trading desk risk limits in SAP, and when a threshold is breached, creates a Jira escalation ticket and alerts the risk management team via Microsoft Teams.
naftiko: "0.5"
info:
label: "Trading Risk Limit Alert"
description: "Monitors trading desk risk limits in SAP, and when a threshold is breached, creates a Jira escalation ticket and alerts the risk management team via Microsoft Teams."
tags:
- energy-trading
- risk-management
- sap
- jira
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: risk-alerts
port: 8080
tools:
- name: check-risk-limits
description: "Check trading risk limits and escalate breaches."
inputParameters:
- name: desk_id
in: body
type: string
description: "The trading desk identifier."
- name: commodity
in: body
type: string
description: "The commodity code."
steps:
- name: get-risk-position
type: call
call: "sap.get-risk-limits"
with:
desk: "{{desk_id}}"
commodity: "{{commodity}}"
- name: create-escalation
type: call
call: "jira.create-issue"
with:
project: "RISK"
summary: "Risk limit breach: {{commodity}} on desk {{desk_id}}"
description: "Current exposure: {{get-risk-position.current_exposure}}. Limit: {{get-risk-position.risk_limit}}. Utilization: {{get-risk-position.utilization_pct}}%."
issue_type: "Bug"
priority: "Critical"
- name: alert-risk-team
type: call
call: "msteams.post-channel-message"
with:
channel_id: "risk_management_alerts"
text: "RISK LIMIT BREACH: {{commodity}} desk {{desk_id}}. Utilization: {{get-risk-position.utilization_pct}}%. Jira: {{create-escalation.key}}"
consumes:
- type: http
namespace: sap
baseUri: "https://totalenergies.sap.com/sap/opu/odata/sap/ZTR_RISK_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: risk-limits
path: "/RiskLimitSet(Desk='{{desk}}',Commodity='{{commodity}}')"
inputParameters:
- name: desk
in: path
- name: commodity
in: path
operations:
- name: get-risk-limits
method: GET
- type: http
namespace: jira
baseUri: "https://totalenergies.atlassian.net/rest/api/3"
authentication:
type: basic
username: "$secrets.jira_user"
password: "$secrets.jira_api_token"
resources:
- name: issues
path: "/issue"
operations:
- name: create-issue
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{channel_id}}/channels/General/messages"
inputParameters:
- name: channel_id
in: path
operations:
- name: post-channel-message
method: POST
Manages vendor contract renewals by reviewing terms, routing for legal approval, and executing via DocuSign.
naftiko: "0.5"
info:
label: "Vendor Contract Renewal Pipeline"
description: "Manages vendor contract renewals by reviewing terms, routing for legal approval, and executing via DocuSign."
tags:
- procurement
- legal
- docusign
capability:
exposes:
- type: mcp
namespace: procurement
port: 8080
tools:
- name: run-vendor-contract-renewal-pipeline
description: "Manages vendor contract renewals by reviewing terms, routing for legal approval, and executing via DocuSign."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Vendor Contract Renewal Pipeline for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.totalenergies.com/v1"
authentication:
type: bearer
token: "$secrets.totalenergies_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.totalenergies.com/v2"
authentication:
type: bearer
token: "$secrets.totalenergies_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Matches a vendor invoice to its purchase order in SAP, routes for approval via Microsoft Power Automate, and logs the result in ServiceNow.
naftiko: "0.5"
info:
label: "Vendor Invoice Processing Pipeline"
description: "Matches a vendor invoice to its purchase order in SAP, routes for approval via Microsoft Power Automate, and logs the result in ServiceNow."
tags:
- finance
- sap
- microsoft-power-automate
- servicenow
- invoice
capability:
exposes:
- type: mcp
namespace: invoice-processing
port: 8080
tools:
- name: process-vendor-invoice
description: "Match invoice to PO in SAP, route for approval, and log in ServiceNow."
inputParameters:
- name: invoice_number
in: body
type: string
description: "The vendor invoice number."
- name: po_number
in: body
type: string
description: "The SAP purchase order number."
steps:
- name: match-invoice
type: call
call: "sap.match-invoice"
with:
invoice_number: "{{invoice_number}}"
po_number: "{{po_number}}"
- name: route-approval
type: call
call: "power-automate.trigger-flow"
with:
flow_id: "invoice_approval"
invoice_number: "{{invoice_number}}"
amount: "{{match-invoice.amount}}"
- name: log-processing
type: call
call: "servicenow.create-record"
with:
table: "u_invoice_log"
invoice_number: "{{invoice_number}}"
status: "{{route-approval.status}}"
consumes:
- type: http
namespace: sap
baseUri: "https://totalenergies.sap.com/sap/opu/odata/sap/ZFI_INVOICE_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: invoice-match
path: "/InvoiceMatchSet"
operations:
- name: match-invoice
method: POST
- type: http
namespace: power-automate
baseUri: "https://prod-01.westus.logic.azure.com/workflows"
authentication:
type: bearer
token: "$secrets.power_automate_token"
resources:
- name: flows
path: "/{{flow_id}}/triggers/manual/paths/invoke"
inputParameters:
- name: flow_id
in: path
operations:
- name: trigger-flow
method: POST
- type: http
namespace: servicenow
baseUri: "https://totalenergies.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: records
path: "/table/{{table}}"
inputParameters:
- name: table
in: path
operations:
- name: create-record
method: POST
Validates a contractor's safety certifications via the compliance system and creates a ServiceNow record for the permit process.
naftiko: "0.5"
info:
label: "Vendor Safety Qualification Checker"
description: "Validates a contractor's safety certifications via the compliance system and creates a ServiceNow record for the permit process."
tags:
- safety
- vendor-management
- compliance
- servicenow
capability:
exposes:
- type: mcp
namespace: vendor-safety
port: 8080
tools:
- name: check-vendor-safety
description: "Validate contractor safety certifications and log in ServiceNow."
inputParameters:
- name: vendor_id
in: body
type: string
description: "The vendor/contractor identifier."
- name: site_id
in: body
type: string
description: "The site where work will be performed."
steps:
- name: validate-certs
type: call
call: "compliance.check-vendor-safety"
with:
vendor: "{{vendor_id}}"
site: "{{site_id}}"
- name: log-qualification
type: call
call: "servicenow.create-record"
with:
table: "u_vendor_qualification"
vendor: "{{vendor_id}}"
site: "{{site_id}}"
status: "{{validate-certs.qualification_status}}"
expiry: "{{validate-certs.cert_expiry}}"
consumes:
- type: http
namespace: compliance
baseUri: "https://compliance.totalenergies.com/api/v1"
authentication:
type: bearer
token: "$secrets.compliance_token"
resources:
- name: vendor-safety
path: "/vendors/{{vendor}}/safety?site={{site}}"
inputParameters:
- name: vendor
in: path
- name: site
in: path
operations:
- name: check-vendor-safety
method: GET
- type: http
namespace: servicenow
baseUri: "https://totalenergies.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: records
path: "/table/{{table}}"
inputParameters:
- name: table
in: path
operations:
- name: create-record
method: POST
Retrieves production rate data for an oil or gas well.
naftiko: "0.5"
info:
label: "Well Production Rate Lookup"
description: "Retrieves production rate data for an oil or gas well."
tags:
- production
- operations
capability:
exposes:
- type: mcp
namespace: production
port: 8080
tools:
- name: get-well
description: "Retrieves production rate data for an oil or gas well."
inputParameters:
- name: entity_id
in: body
type: string
description: "The well production rate lookup identifier."
call: "production-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: production-api
baseUri: "https://api.totalenergies.com/production/v1"
authentication:
type: bearer
token: "$secrets.totalenergies_api_token"
resources:
- name: well
path: "/well/production/rate/lookup/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-well
method: GET
Retrieves individual turbine health data from the wind farm management system including vibration, temperature, and power output for predictive maintenance.
naftiko: "0.5"
info:
label: "Wind Farm Turbine Health Monitor"
description: "Retrieves individual turbine health data from the wind farm management system including vibration, temperature, and power output for predictive maintenance."
tags:
- renewable
- wind
- monitoring
- predictive-maintenance
capability:
exposes:
- type: mcp
namespace: wind-monitoring
port: 8080
tools:
- name: get-turbine-health
description: "Fetch turbine health metrics for a wind farm."
inputParameters:
- name: farm_id
in: body
type: string
description: "The wind farm identifier."
- name: turbine_id
in: body
type: string
description: "The specific turbine identifier."
call: "energy-mgmt.get-turbine-data"
with:
farm_id: "{{farm_id}}"
turbine_id: "{{turbine_id}}"
consumes:
- type: http
namespace: energy-mgmt
baseUri: "https://ems.totalenergies.com/api/v2"
authentication:
type: bearer
token: "$secrets.ems_token"
resources:
- name: turbine-data
path: "/farms/{{farm_id}}/turbines/{{turbine_id}}/health"
inputParameters:
- name: farm_id
in: path
- name: turbine_id
in: path
operations:
- name: get-turbine-data
method: GET
Retrieves employee profile from Workday.
naftiko: "0.5"
info:
label: "Workday Employee Profile"
description: "Retrieves employee profile from Workday."
tags:
- hr
- workday
capability:
exposes:
- type: mcp
namespace: hr
port: 8080
tools:
- name: get-workday
description: "Retrieves employee profile from Workday."
inputParameters:
- name: entity_id
in: body
type: string
description: "The workday employee profile identifier."
call: "hr-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: hr-api
baseUri: "https://api.totalenergies.com/hr/v1"
authentication:
type: bearer
token: "$secrets.totalenergies_api_token"
resources:
- name: workday
path: "/workday/employee/profile/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-workday
method: GET
Retrieves payroll summary data from Workday for a pay period.
naftiko: "0.5"
info:
label: "Workday Payroll Summary"
description: "Retrieves payroll summary data from Workday for a pay period."
tags:
- hr
- payroll
- workday
- finance
capability:
exposes:
- type: mcp
namespace: payroll
port: 8080
tools:
- name: get-payroll-summary
description: "Fetch Workday payroll summary for a pay period."
inputParameters:
- name: pay_period
in: body
type: string
description: "The pay period identifier."
call: "workday.get-payroll"
with:
pay_period: "{{pay_period}}"
consumes:
- type: http
namespace: workday
baseUri: "https://wd2-impl-services1.workday.com/ccx/api/v1"
authentication:
type: bearer
token: "$secrets.workday_token"
resources:
- name: payroll
path: "/payroll/summaries?payPeriod={{pay_period}}"
inputParameters:
- name: pay_period
in: path
operations:
- name: get-payroll
method: GET
Retrieves an employee's current time-off balances from Workday.
naftiko: "0.5"
info:
label: "Workday Time-Off Balance"
description: "Retrieves an employee's current time-off balances from Workday."
tags:
- hr
- workday
- time-off
capability:
exposes:
- type: mcp
namespace: hr-time-off
port: 8080
tools:
- name: get-time-off-balance
description: "Look up an employee's time-off balances in Workday."
inputParameters:
- name: worker_id
in: body
type: string
description: "The Workday worker ID."
call: "workday.get-time-off"
with:
worker_id: "{{worker_id}}"
consumes:
- type: http
namespace: workday
baseUri: "https://wd2-impl-services1.workday.com/ccx/api/v1"
authentication:
type: bearer
token: "$secrets.workday_token"
resources:
- name: time-off
path: "/workers/{{worker_id}}/timeOffBalance"
inputParameters:
- name: worker_id
in: path
operations:
- name: get-time-off
method: GET