Toyota Motor Corporation Capabilities
Naftiko 0.5 capability definitions for Toyota Motor Corporation - 100 capabilities showing integration workflows and service orchestrations.
When an assembly line goes down, creates a ServiceNow incident, logs downtime in SAP PM, and alerts plant management via Teams following Toyota Production System andon principles.
naftiko: "0.5"
info:
label: "Assembly Line Downtime Escalation"
description: "When an assembly line goes down, creates a ServiceNow incident, logs downtime in SAP PM, and alerts plant management via Teams following Toyota Production System andon principles."
tags:
- production
- servicenow
- sap
- microsoft-teams
- automotive
- manufacturing
capability:
exposes:
- type: mcp
namespace: production-ops
port: 8080
tools:
- name: escalate-line-downtime
description: "Given a production line ID, downtime reason, and severity, create a ServiceNow incident, log SAP PM notification, and alert management via Teams. Use when an andon is pulled and the line stops."
inputParameters:
- name: line_id
in: body
type: string
description: "Production line identifier, e.g. 'TSUTSUMI-LINE-2'."
- name: downtime_reason
in: body
type: string
description: "Reason for the production line downtime."
- name: severity
in: body
type: string
description: "Severity level: P1, P2, or P3."
steps:
- name: create-incident
type: call
call: "servicenow.create-incident"
with:
short_description: "[{{severity}}] Line down: {{line_id}}"
urgency: "1"
impact: "1"
description: "Assembly line {{line_id}} is down. Reason: {{downtime_reason}}"
- name: log-sap-notification
type: call
call: "sap-pm.create-notification"
with:
notification_type: "M2"
equipment: "{{line_id}}"
description: "Line downtime: {{downtime_reason}}"
- name: alert-management
type: call
call: "msteams.post-message"
with:
channel_id: "$secrets.teams_plant_mgmt_channel_id"
text: "ANDON: {{line_id}} | {{severity}} | INC: {{create-incident.number}} | SAP: {{log-sap-notification.number}}"
consumes:
- namespace: servicenow
type: http
baseUri: "https://toyota.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_username"
password: "$secrets.servicenow_password"
resources:
- name: incidents
path: "/table/incident"
operations:
- name: create-incident
method: POST
- namespace: sap-pm
type: http
baseUri: "https://toyota-s4.sap.com/sap/opu/odata/sap/API_MAINTNOTIFICATION"
authentication:
type: basic
username: "$secrets.sap_s4_username"
password: "$secrets.sap_s4_password"
resources:
- name: notifications
path: "/A_MaintenanceNotification"
operations:
- name: create-notification
method: POST
- namespace: msteams
type: http
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_bearer_token"
resources:
- name: channel-messages
path: "/teams/messages"
operations:
- name: post-message
method: POST
Generates CoC from SAP QM data, compiles in SharePoint, and notifies via Teams.
naftiko: "0.5"
info:
label: "Automated Certificate of Conformance Generation"
description: "Generates CoC from SAP QM data, compiles in SharePoint, and notifies via Teams."
tags:
- quality
- sap
- sharepoint
- microsoft-teams
- manufacturing
capability:
exposes:
- type: mcp
namespace: quality-ops
port: 8080
tools:
- name: automated-certificate-of-conformance
description: "Generates CoC from SAP QM data, compiles in SharePoint, and notifies via Teams."
inputParameters:
- name: reference_id
in: body
type: string
description: "The reference identifier for this request."
- name: description
in: body
type: string
description: "Detailed description of the request."
- name: priority
in: body
type: string
description: "Priority level: high, medium, or low."
steps:
- name: create-primary-record
type: call
call: "servicenow.create-incident"
with:
short_description: "Automated Certificate of Conformance Generation: {{reference_id}}"
urgency: "2"
description: "{{description}}"
- name: create-tracking-issue
type: call
call: "jira.create-issue"
with:
project_key: "OPS"
issuetype: "Task"
summary: "Automated Certificate of Conformance Generation: {{reference_id}}"
description: "Incident: {{create-primary-record.number}} | {{description}}"
- name: notify-team
type: call
call: "msteams.post-message"
with:
channel_id: "$secrets.teams_quality_channel_id"
text: "Automated Certificate of Conformance Generation | Ref: {{reference_id}} | INC: {{create-primary-record.number}} | Jira: {{create-tracking-issue.key}}"
consumes:
- namespace: servicenow
type: http
baseUri: "https://toyota.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_username"
password: "$secrets.servicenow_password"
resources:
- name: incidents
path: "/table/incident"
operations:
- name: create-incident
method: POST
- namespace: jira
type: http
baseUri: "https://toyota.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
- namespace: msteams
type: http
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_bearer_token"
resources:
- name: channel-messages
path: "/teams/messages"
operations:
- name: post-message
method: POST
Runs tests via Azure DevOps, publishes to Confluence, and notifies QA via Teams.
naftiko: "0.5"
info:
label: "Automated Regression Test Report"
description: "Runs tests via Azure DevOps, publishes to Confluence, and notifies QA via Teams."
tags:
- devops
- azure-devops
- confluence
- microsoft-teams
- testing
capability:
exposes:
- type: mcp
namespace: devops-ops
port: 8080
tools:
- name: automated-regression-test-report
description: "Runs tests via Azure DevOps, publishes to Confluence, and notifies QA via Teams."
inputParameters:
- name: reference_id
in: body
type: string
description: "The reference identifier for this request."
- name: description
in: body
type: string
description: "Detailed description of the request."
- name: priority
in: body
type: string
description: "Priority level: high, medium, or low."
steps:
- name: create-primary-record
type: call
call: "servicenow.create-incident"
with:
short_description: "Automated Regression Test Report: {{reference_id}}"
urgency: "2"
description: "{{description}}"
- name: create-tracking-issue
type: call
call: "jira.create-issue"
with:
project_key: "OPS"
issuetype: "Task"
summary: "Automated Regression Test Report: {{reference_id}}"
description: "Incident: {{create-primary-record.number}} | {{description}}"
- name: notify-team
type: call
call: "msteams.post-message"
with:
channel_id: "$secrets.teams_devops_channel_id"
text: "Automated Regression Test Report | Ref: {{reference_id}} | INC: {{create-primary-record.number}} | Jira: {{create-tracking-issue.key}}"
consumes:
- namespace: servicenow
type: http
baseUri: "https://toyota.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_username"
password: "$secrets.servicenow_password"
resources:
- name: incidents
path: "/table/incident"
operations:
- name: create-incident
method: POST
- namespace: jira
type: http
baseUri: "https://toyota.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
- namespace: msteams
type: http
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_bearer_token"
resources:
- name: channel-messages
path: "/teams/messages"
operations:
- name: post-message
method: POST
When SPC charts detect out-of-control condition, creates SAP QM notification and alerts process engineer via Teams.
naftiko: "0.5"
info:
label: "Automated SPC Chart Alert"
description: "When SPC charts detect out-of-control condition, creates SAP QM notification and alerts process engineer via Teams."
tags:
- quality
- datadog
- sap
- microsoft-teams
- manufacturing
capability:
exposes:
- type: mcp
namespace: quality-ops
port: 8080
tools:
- name: automated-spc-chart-alert
description: "When SPC charts detect out-of-control condition, creates SAP QM notification and alerts process engineer via Teams."
inputParameters:
- name: reference_id
in: body
type: string
description: "The reference identifier for this request."
- name: description
in: body
type: string
description: "Detailed description of the request."
- name: priority
in: body
type: string
description: "Priority level: high, medium, or low."
steps:
- name: create-primary-record
type: call
call: "servicenow.create-incident"
with:
short_description: "Automated SPC Chart Alert: {{reference_id}}"
urgency: "2"
description: "{{description}}"
- name: create-tracking-issue
type: call
call: "jira.create-issue"
with:
project_key: "OPS"
issuetype: "Task"
summary: "Automated SPC Chart Alert: {{reference_id}}"
description: "Incident: {{create-primary-record.number}} | {{description}}"
- name: notify-team
type: call
call: "msteams.post-message"
with:
channel_id: "$secrets.teams_quality_channel_id"
text: "Automated SPC Chart Alert | Ref: {{reference_id}} | INC: {{create-primary-record.number}} | Jira: {{create-tracking-issue.key}}"
consumes:
- namespace: servicenow
type: http
baseUri: "https://toyota.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_username"
password: "$secrets.servicenow_password"
resources:
- name: incidents
path: "/table/incident"
operations:
- name: create-incident
method: POST
- namespace: jira
type: http
baseUri: "https://toyota.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
- namespace: msteams
type: http
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_bearer_token"
resources:
- name: channel-messages
path: "/teams/messages"
operations:
- name: post-message
method: POST
Reconciles timecards by comparing Workday entries against SAP hours, flagging discrepancies in Jira.
naftiko: "0.5"
info:
label: "Automated Timecard Reconciliation"
description: "Reconciles timecards by comparing Workday entries against SAP hours, flagging discrepancies in Jira."
tags:
- hr
- workday
- sap
- jira
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: hr-ops
port: 8080
tools:
- name: automated-timecard-reconciliation
description: "Reconciles timecards by comparing Workday entries against SAP hours, flagging discrepancies in Jira."
inputParameters:
- name: reference_id
in: body
type: string
description: "The reference identifier for this request."
- name: description
in: body
type: string
description: "Detailed description of the request."
- name: priority
in: body
type: string
description: "Priority level: high, medium, or low."
steps:
- name: create-primary-record
type: call
call: "servicenow.create-incident"
with:
short_description: "Automated Timecard Reconciliation: {{reference_id}}"
urgency: "2"
description: "{{description}}"
- name: create-tracking-issue
type: call
call: "jira.create-issue"
with:
project_key: "OPS"
issuetype: "Task"
summary: "Automated Timecard Reconciliation: {{reference_id}}"
description: "Incident: {{create-primary-record.number}} | {{description}}"
- name: notify-team
type: call
call: "msteams.post-message"
with:
channel_id: "$secrets.teams_hr_channel_id"
text: "Automated Timecard Reconciliation | Ref: {{reference_id}} | INC: {{create-primary-record.number}} | Jira: {{create-tracking-issue.key}}"
consumes:
- namespace: servicenow
type: http
baseUri: "https://toyota.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_username"
password: "$secrets.servicenow_password"
resources:
- name: incidents
path: "/table/incident"
operations:
- name: create-incident
method: POST
- namespace: jira
type: http
baseUri: "https://toyota.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
- namespace: msteams
type: http
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_bearer_token"
resources:
- name: channel-messages
path: "/teams/messages"
operations:
- name: post-message
method: POST
Retrieves all members of an Azure AD security group, identifies accounts inactive for more than 90 days, and posts a stale access report to the security Microsoft Teams channel for quarterly access review.
naftiko: "0.5"
info:
label: "Azure AD Security Group Access Review"
description: "Retrieves all members of an Azure AD security group, identifies accounts inactive for more than 90 days, and posts a stale access report to the security Microsoft Teams channel for quarterly access review."
tags:
- security
- identity
- azure
- microsoft-teams
- access-management
capability:
exposes:
- type: mcp
namespace: security-review
port: 8080
tools:
- name: review-group-access
description: "Retrieve all members of an Azure AD security group and post a membership report to the security Teams channel for quarterly access review. Use for compliance-driven access certifications across Toyota's enterprise application groups."
inputParameters:
- name: group_id
in: body
type: string
description: "The Azure AD group object ID to review."
steps:
- name: get-members
type: call
call: "msgraph-sec.get-group-members"
with:
group_id: "{{group_id}}"
- name: post-review
type: call
call: "teams-sec.send-message"
with:
channel: "security-access-reviews"
text: "Access Review | Group: {{group_id}} | Members: {{get-members.total_count}} | Review this list for stale or excess access and remediate within 5 business days."
consumes:
- type: http
namespace: msgraph-sec
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: group-members
path: "/groups/{{group_id}}/members"
inputParameters:
- name: group_id
in: path
operations:
- name: get-group-members
method: GET
- type: http
namespace: teams-sec
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel_id
in: path
operations:
- name: send-message
method: POST
Queries Azure Cost Management for spending anomalies over the past 7 days, compares actual spend against monthly budget thresholds by subscription, and posts cost alerts to the cloud operations Microsoft Teams channel.
naftiko: "0.5"
info:
label: "Azure Cloud Cost Anomaly Detection"
description: "Queries Azure Cost Management for spending anomalies over the past 7 days, compares actual spend against monthly budget thresholds by subscription, and posts cost alerts to the cloud operations Microsoft Teams channel."
tags:
- cloud
- cost-management
- azure
- microsoft-teams
- monitoring
capability:
exposes:
- type: mcp
namespace: cloud-finops
port: 8080
tools:
- name: detect-cloud-cost-anomaly
description: "Query Azure Cost Management for the specified subscription's spend over the past 7 days, identify anomalies exceeding the budget threshold, and post a cost alert to the cloud ops Teams channel. Use for proactive Azure spend governance across Toyota's global cloud footprint."
inputParameters:
- name: subscription_id
in: body
type: string
description: "The Azure subscription ID to analyze for cost anomalies."
- name: monthly_budget_usd
in: body
type: number
description: "Monthly budget in USD. Alerts trigger if 7-day spend exceeds 25% of this value."
steps:
- name: query-costs
type: call
call: "azure-cost.get-usage"
with:
subscription_id: "{{subscription_id}}"
- name: post-alert
type: call
call: "teams-cloud.send-message"
with:
channel: "cloud-ops-alerts"
text: "Azure Cost Alert | Subscription: {{subscription_id}} | 7-Day Spend: {{query-costs.total_cost}} {{query-costs.currency}} | Budget: ${{monthly_budget_usd}}/month | Review consumption."
consumes:
- type: http
namespace: azure-cost
baseUri: "https://management.azure.com"
authentication:
type: bearer
token: "$secrets.azure_mgmt_token"
resources:
- name: usage-details
path: "/subscriptions/{{subscription_id}}/providers/Microsoft.Consumption/usageDetails"
inputParameters:
- name: subscription_id
in: path
operations:
- name: get-usage
method: GET
- type: http
namespace: teams-cloud
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel_id
in: path
operations:
- name: send-message
method: POST
Analyzes Azure spending, logs recommendations in ServiceNow, and notifies cloud governance via Teams.
naftiko: "0.5"
info:
label: "Azure Cost Optimization Recommendation"
description: "Analyzes Azure spending, logs recommendations in ServiceNow, and notifies cloud governance via Teams."
tags:
- cloud
- microsoft-azure
- servicenow
- microsoft-teams
- devops
capability:
exposes:
- type: mcp
namespace: cloud-ops
port: 8080
tools:
- name: azure-cost-optimization-recommendation
description: "Analyzes Azure spending, logs recommendations in ServiceNow, and notifies cloud governance via Teams."
inputParameters:
- name: reference_id
in: body
type: string
description: "The reference identifier for this request."
- name: description
in: body
type: string
description: "Detailed description of the request."
- name: priority
in: body
type: string
description: "Priority level: high, medium, or low."
steps:
- name: create-primary-record
type: call
call: "servicenow.create-incident"
with:
short_description: "Azure Cost Optimization Recommendation: {{reference_id}}"
urgency: "2"
description: "{{description}}"
- name: create-tracking-issue
type: call
call: "jira.create-issue"
with:
project_key: "OPS"
issuetype: "Task"
summary: "Azure Cost Optimization Recommendation: {{reference_id}}"
description: "Incident: {{create-primary-record.number}} | {{description}}"
- name: notify-team
type: call
call: "msteams.post-message"
with:
channel_id: "$secrets.teams_cloud_channel_id"
text: "Azure Cost Optimization Recommendation | Ref: {{reference_id}} | INC: {{create-primary-record.number}} | Jira: {{create-tracking-issue.key}}"
consumes:
- namespace: servicenow
type: http
baseUri: "https://toyota.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_username"
password: "$secrets.servicenow_password"
resources:
- name: incidents
path: "/table/incident"
operations:
- name: create-incident
method: POST
- namespace: jira
type: http
baseUri: "https://toyota.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
- namespace: msteams
type: http
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_bearer_token"
resources:
- name: channel-messages
path: "/teams/messages"
operations:
- name: post-message
method: POST
Retrieves the current build status for a pipeline in Azure DevOps by build ID.
naftiko: "0.5"
info:
label: "Azure DevOps Build Status Lookup"
description: "Retrieves the current build status for a pipeline in Azure DevOps by build ID."
tags:
- devops
- azure-devops
- ci-cd
- lookup
capability:
exposes:
- type: mcp
namespace: devops
port: 8080
tools:
- name: get-build-status
description: "Given an Azure DevOps build ID, retrieve the build status including result and source branch."
inputParameters:
- name: build_id
in: body
type: string
description: "Azure DevOps build ID."
call: "azure-devops.get-build"
with:
buildId: "{{build_id}}"
outputParameters:
- name: result
type: string
mapping: "$.result"
- name: status
type: string
mapping: "$.status"
consumes:
- namespace: azure-devops
type: http
baseUri: "https://dev.azure.com/toyota"
authentication:
type: basic
username: "$secrets.azure_devops_user"
password: "$secrets.azure_devops_pat"
resources:
- name: builds
path: "/_apis/build/builds/{{buildId}}"
inputParameters:
- name: buildId
in: path
operations:
- name: get-build
method: GET
Provisions a new Azure resource group and virtual network for a project, and logs the provisioning event as a ServiceNow change record for IT governance and audit compliance.
naftiko: "0.5"
info:
label: "Azure Infrastructure Provisioning with ServiceNow Logging"
description: "Provisions a new Azure resource group and virtual network for a project, and logs the provisioning event as a ServiceNow change record for IT governance and audit compliance."
tags:
- cloud
- infrastructure
- azure
- servicenow
- provisioning
capability:
exposes:
- type: mcp
namespace: cloud-infra
port: 8080
tools:
- name: provision-azure-environment
description: "Given an Azure subscription ID, resource group name, and region, create the resource group via the Azure Management API and log the provisioning as a closed ServiceNow change record. Use when approved project environments need to be stood up in Azure."
inputParameters:
- name: subscription_id
in: body
type: string
description: "The Azure subscription ID."
- name: resource_group_name
in: body
type: string
description: "Name for the new Azure resource group."
- name: location
in: body
type: string
description: "Azure region, e.g. japaneast, eastus, westeurope."
steps:
- name: create-rg
type: call
call: "azure-rg.create-resource-group"
with:
subscription_id: "{{subscription_id}}"
resource_group_name: "{{resource_group_name}}"
location: "{{location}}"
- name: log-change
type: call
call: "servicenow-rg.create-change"
with:
short_description: "Azure RG Provisioned: {{resource_group_name}} in {{location}}"
category: "cloud_provisioning"
state: "closed"
consumes:
- type: http
namespace: azure-rg
baseUri: "https://management.azure.com"
authentication:
type: bearer
token: "$secrets.azure_mgmt_token"
resources:
- name: resource-groups
path: "/subscriptions/{{subscription_id}}/resourcegroups/{{resource_group_name}}"
inputParameters:
- name: subscription_id
in: path
- name: resource_group_name
in: path
operations:
- name: create-resource-group
method: PUT
- type: http
namespace: servicenow-rg
baseUri: "https://toyota.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: change-requests
path: "/table/change_request"
operations:
- name: create-change
method: POST
Monitors robotic weld quality via Datadog, logs deviations in SAP QM, and alerts body shop supervisor via Teams.
naftiko: "0.5"
info:
label: "Body Shop Weld Quality Monitoring"
description: "Monitors robotic weld quality via Datadog, logs deviations in SAP QM, and alerts body shop supervisor via Teams."
tags:
- quality
- datadog
- sap
- microsoft-teams
- manufacturing
capability:
exposes:
- type: mcp
namespace: quality-ops
port: 8080
tools:
- name: body-shop-weld-quality-monitoring
description: "Monitors robotic weld quality via Datadog, logs deviations in SAP QM, and alerts body shop supervisor via Teams."
inputParameters:
- name: reference_id
in: body
type: string
description: "The reference identifier for this request."
- name: description
in: body
type: string
description: "Detailed description of the request."
- name: priority
in: body
type: string
description: "Priority level: high, medium, or low."
steps:
- name: create-primary-record
type: call
call: "servicenow.create-incident"
with:
short_description: "Body Shop Weld Quality Monitoring: {{reference_id}}"
urgency: "2"
description: "{{description}}"
- name: create-tracking-issue
type: call
call: "jira.create-issue"
with:
project_key: "OPS"
issuetype: "Task"
summary: "Body Shop Weld Quality Monitoring: {{reference_id}}"
description: "Incident: {{create-primary-record.number}} | {{description}}"
- name: notify-team
type: call
call: "msteams.post-message"
with:
channel_id: "$secrets.teams_quality_channel_id"
text: "Body Shop Weld Quality Monitoring | Ref: {{reference_id}} | INC: {{create-primary-record.number}} | Jira: {{create-tracking-issue.key}}"
consumes:
- namespace: servicenow
type: http
baseUri: "https://toyota.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_username"
password: "$secrets.servicenow_password"
resources:
- name: incidents
path: "/table/incident"
operations:
- name: create-incident
method: POST
- namespace: jira
type: http
baseUri: "https://toyota.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
- namespace: msteams
type: http
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_bearer_token"
resources:
- name: channel-messages
path: "/teams/messages"
operations:
- name: post-message
method: POST
Initiates document review from SharePoint, creates Jira task, and notifies reviewers via Teams.
naftiko: "0.5"
info:
label: "Compliance Document Review Cycle"
description: "Initiates document review from SharePoint, creates Jira task, and notifies reviewers via Teams."
tags:
- compliance
- sharepoint
- jira
- microsoft-teams
- quality
capability:
exposes:
- type: mcp
namespace: compliance-ops
port: 8080
tools:
- name: compliance-document-review-cycle
description: "Initiates document review from SharePoint, creates Jira task, and notifies reviewers via Teams."
inputParameters:
- name: reference_id
in: body
type: string
description: "The reference identifier for this request."
- name: description
in: body
type: string
description: "Detailed description of the request."
- name: priority
in: body
type: string
description: "Priority level: high, medium, or low."
steps:
- name: create-primary-record
type: call
call: "servicenow.create-incident"
with:
short_description: "Compliance Document Review Cycle: {{reference_id}}"
urgency: "2"
description: "{{description}}"
- name: create-tracking-issue
type: call
call: "jira.create-issue"
with:
project_key: "OPS"
issuetype: "Task"
summary: "Compliance Document Review Cycle: {{reference_id}}"
description: "Incident: {{create-primary-record.number}} | {{description}}"
- name: notify-team
type: call
call: "msteams.post-message"
with:
channel_id: "$secrets.teams_compliance_channel_id"
text: "Compliance Document Review Cycle | Ref: {{reference_id}} | INC: {{create-primary-record.number}} | Jira: {{create-tracking-issue.key}}"
consumes:
- namespace: servicenow
type: http
baseUri: "https://toyota.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_username"
password: "$secrets.servicenow_password"
resources:
- name: incidents
path: "/table/incident"
operations:
- name: create-incident
method: POST
- namespace: jira
type: http
baseUri: "https://toyota.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
- namespace: msteams
type: http
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_bearer_token"
resources:
- name: channel-messages
path: "/teams/messages"
operations:
- name: post-message
method: POST
Searches Confluence for vehicle engineering specifications by keyword, returning matching page titles and links.
naftiko: "0.5"
info:
label: "Confluence Engineering Spec Search"
description: "Searches Confluence for vehicle engineering specifications by keyword, returning matching page titles and links."
tags:
- engineering
- confluence
- documentation
- search
capability:
exposes:
- type: mcp
namespace: engineering
port: 8080
tools:
- name: search-engineering-specs
description: "Given a keyword, query Confluence for vehicle engineering specification documents."
inputParameters:
- name: keyword
in: body
type: string
description: "Search keyword, e.g. 'Camry hybrid drivetrain'."
call: "confluence.search-content"
with:
cql: "type=page AND space=ENG AND text~\"{{keyword}}\""
outputParameters:
- name: results
type: array
mapping: "$.results"
consumes:
- namespace: confluence
type: http
baseUri: "https://toyota.atlassian.net/wiki/rest/api"
authentication:
type: basic
username: "$secrets.confluence_user"
password: "$secrets.confluence_api_token"
resources:
- name: search
path: "/content/search"
operations:
- name: search-content
method: GET
Orchestrates OTA update by scheduling via ServiceNow and notifying the connected vehicle team via Teams.
naftiko: "0.5"
info:
label: "Connected Vehicle OTA Update Rollout"
description: "Orchestrates OTA update by scheduling via ServiceNow and notifying the connected vehicle team via Teams."
tags:
- automotive
- servicenow
- microsoft-teams
- connected-vehicle
capability:
exposes:
- type: mcp
namespace: automotive-ops
port: 8080
tools:
- name: connected-vehicle-ota-update-rollout
description: "Orchestrates OTA update by scheduling via ServiceNow and notifying the connected vehicle team via Teams."
inputParameters:
- name: reference_id
in: body
type: string
description: "The reference identifier for this request."
- name: description
in: body
type: string
description: "Detailed description of the request."
- name: priority
in: body
type: string
description: "Priority level: high, medium, or low."
steps:
- name: create-primary-record
type: call
call: "servicenow.create-incident"
with:
short_description: "Connected Vehicle OTA Update Rollout: {{reference_id}}"
urgency: "2"
description: "{{description}}"
- name: create-tracking-issue
type: call
call: "jira.create-issue"
with:
project_key: "OPS"
issuetype: "Task"
summary: "Connected Vehicle OTA Update Rollout: {{reference_id}}"
description: "Incident: {{create-primary-record.number}} | {{description}}"
- name: notify-team
type: call
call: "msteams.post-message"
with:
channel_id: "$secrets.teams_automotive_channel_id"
text: "Connected Vehicle OTA Update Rollout | Ref: {{reference_id}} | INC: {{create-primary-record.number}} | Jira: {{create-tracking-issue.key}}"
consumes:
- namespace: servicenow
type: http
baseUri: "https://toyota.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_username"
password: "$secrets.servicenow_password"
resources:
- name: incidents
path: "/table/incident"
operations:
- name: create-incident
method: POST
- namespace: jira
type: http
baseUri: "https://toyota.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
- namespace: msteams
type: http
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_bearer_token"
resources:
- name: channel-messages
path: "/teams/messages"
operations:
- name: post-message
method: POST
When milestone completes in Jira, creates SAP billing document, updates Salesforce, and notifies finance via Teams.
naftiko: "0.5"
info:
label: "Contract Milestone Billing Trigger"
description: "When milestone completes in Jira, creates SAP billing document, updates Salesforce, and notifies finance via Teams."
tags:
- finance
- jira
- sap
- salesforce
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: finance-ops
port: 8080
tools:
- name: contract-milestone-billing-trigger
description: "When milestone completes in Jira, creates SAP billing document, updates Salesforce, and notifies finance via Teams."
inputParameters:
- name: reference_id
in: body
type: string
description: "The reference identifier for this request."
- name: description
in: body
type: string
description: "Detailed description of the request."
- name: priority
in: body
type: string
description: "Priority level: high, medium, or low."
steps:
- name: create-primary-record
type: call
call: "servicenow.create-incident"
with:
short_description: "Contract Milestone Billing Trigger: {{reference_id}}"
urgency: "2"
description: "{{description}}"
- name: create-tracking-issue
type: call
call: "jira.create-issue"
with:
project_key: "OPS"
issuetype: "Task"
summary: "Contract Milestone Billing Trigger: {{reference_id}}"
description: "Incident: {{create-primary-record.number}} | {{description}}"
- name: notify-team
type: call
call: "msteams.post-message"
with:
channel_id: "$secrets.teams_finance_channel_id"
text: "Contract Milestone Billing Trigger | Ref: {{reference_id}} | INC: {{create-primary-record.number}} | Jira: {{create-tracking-issue.key}}"
consumes:
- namespace: servicenow
type: http
baseUri: "https://toyota.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_username"
password: "$secrets.servicenow_password"
resources:
- name: incidents
path: "/table/incident"
operations:
- name: create-incident
method: POST
- namespace: jira
type: http
baseUri: "https://toyota.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
- namespace: msteams
type: http
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_bearer_token"
resources:
- name: channel-messages
path: "/teams/messages"
operations:
- name: post-message
method: POST
When spare parts inventory drops below threshold, creates a SAP purchase requisition, logs in ServiceNow, and notifies via Teams.
naftiko: "0.5"
info:
label: "Critical Spare Parts Reorder Workflow"
description: "When spare parts inventory drops below threshold, creates a SAP purchase requisition, logs in ServiceNow, and notifies via Teams."
tags:
- supply-chain
- sap
- servicenow
- microsoft-teams
- procurement
capability:
exposes:
- type: mcp
namespace: supply-chain-ops
port: 8080
tools:
- name: critical-spare-parts-reorder-workflow
description: "When spare parts inventory drops below threshold, creates a SAP purchase requisition, logs in ServiceNow, and notifies via Teams."
inputParameters:
- name: reference_id
in: body
type: string
description: "The reference identifier for this request."
- name: description
in: body
type: string
description: "Detailed description of the request."
- name: priority
in: body
type: string
description: "Priority level: high, medium, or low."
steps:
- name: create-primary-record
type: call
call: "servicenow.create-incident"
with:
short_description: "Critical Spare Parts Reorder Workflow: {{reference_id}}"
urgency: "2"
description: "{{description}}"
- name: create-tracking-issue
type: call
call: "jira.create-issue"
with:
project_key: "OPS"
issuetype: "Task"
summary: "Critical Spare Parts Reorder Workflow: {{reference_id}}"
description: "Incident: {{create-primary-record.number}} | {{description}}"
- name: notify-team
type: call
call: "msteams.post-message"
with:
channel_id: "$secrets.teams_supply-chain_channel_id"
text: "Critical Spare Parts Reorder Workflow | Ref: {{reference_id}} | INC: {{create-primary-record.number}} | Jira: {{create-tracking-issue.key}}"
consumes:
- namespace: servicenow
type: http
baseUri: "https://toyota.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_username"
password: "$secrets.servicenow_password"
resources:
- name: incidents
path: "/table/incident"
operations:
- name: create-incident
method: POST
- namespace: jira
type: http
baseUri: "https://toyota.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
- namespace: msteams
type: http
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_bearer_token"
resources:
- name: channel-messages
path: "/teams/messages"
operations:
- name: post-message
method: POST
Syncs program status across Jira, SAP, Salesforce, publishes to Confluence, and notifies leadership via Teams.
naftiko: "0.5"
info:
label: "Cross-Functional Program Status Sync"
description: "Syncs program status across Jira, SAP, Salesforce, publishes to Confluence, and notifies leadership via Teams."
tags:
- project-management
- jira
- sap
- salesforce
- confluence
capability:
exposes:
- type: mcp
namespace: project-management-ops
port: 8080
tools:
- name: cross-functional-program-status-sync
description: "Syncs program status across Jira, SAP, Salesforce, publishes to Confluence, and notifies leadership via Teams."
inputParameters:
- name: reference_id
in: body
type: string
description: "The reference identifier for this request."
- name: description
in: body
type: string
description: "Detailed description of the request."
- name: priority
in: body
type: string
description: "Priority level: high, medium, or low."
steps:
- name: create-primary-record
type: call
call: "servicenow.create-incident"
with:
short_description: "Cross-Functional Program Status Sync: {{reference_id}}"
urgency: "2"
description: "{{description}}"
- name: create-tracking-issue
type: call
call: "jira.create-issue"
with:
project_key: "OPS"
issuetype: "Task"
summary: "Cross-Functional Program Status Sync: {{reference_id}}"
description: "Incident: {{create-primary-record.number}} | {{description}}"
- name: notify-team
type: call
call: "msteams.post-message"
with:
channel_id: "$secrets.teams_project-management_channel_id"
text: "Cross-Functional Program Status Sync | Ref: {{reference_id}} | INC: {{create-primary-record.number}} | Jira: {{create-tracking-issue.key}}"
consumes:
- namespace: servicenow
type: http
baseUri: "https://toyota.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_username"
password: "$secrets.servicenow_password"
resources:
- name: incidents
path: "/table/incident"
operations:
- name: create-incident
method: POST
- namespace: jira
type: http
baseUri: "https://toyota.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
- namespace: msteams
type: http
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_bearer_token"
resources:
- name: channel-messages
path: "/teams/messages"
operations:
- name: post-message
method: POST
Processes customer complaint from Salesforce by creating SAP quality notification, Jira investigation, and alerting support via Teams.
naftiko: "0.5"
info:
label: "Customer Complaint Resolution Workflow"
description: "Processes customer complaint from Salesforce by creating SAP quality notification, Jira investigation, and alerting support via Teams."
tags:
- quality
- salesforce
- sap
- jira
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: quality-ops
port: 8080
tools:
- name: customer-complaint-resolution-workflow
description: "Processes customer complaint from Salesforce by creating SAP quality notification, Jira investigation, and alerting support via Teams."
inputParameters:
- name: reference_id
in: body
type: string
description: "The reference identifier for this request."
- name: description
in: body
type: string
description: "Detailed description of the request."
- name: priority
in: body
type: string
description: "Priority level: high, medium, or low."
steps:
- name: create-primary-record
type: call
call: "servicenow.create-incident"
with:
short_description: "Customer Complaint Resolution Workflow: {{reference_id}}"
urgency: "2"
description: "{{description}}"
- name: create-tracking-issue
type: call
call: "jira.create-issue"
with:
project_key: "OPS"
issuetype: "Task"
summary: "Customer Complaint Resolution Workflow: {{reference_id}}"
description: "Incident: {{create-primary-record.number}} | {{description}}"
- name: notify-team
type: call
call: "msteams.post-message"
with:
channel_id: "$secrets.teams_quality_channel_id"
text: "Customer Complaint Resolution Workflow | Ref: {{reference_id}} | INC: {{create-primary-record.number}} | Jira: {{create-tracking-issue.key}}"
consumes:
- namespace: servicenow
type: http
baseUri: "https://toyota.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_username"
password: "$secrets.servicenow_password"
resources:
- name: incidents
path: "/table/incident"
operations:
- name: create-incident
method: POST
- namespace: jira
type: http
baseUri: "https://toyota.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
- namespace: msteams
type: http
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_bearer_token"
resources:
- name: channel-messages
path: "/teams/messages"
operations:
- name: post-message
method: POST
Responds to a cybersecurity alert by creating a ServiceNow incident, suspending the Okta account, and alerting security via Teams.
naftiko: "0.5"
info:
label: "Cybersecurity Incident Response Chain"
description: "Responds to a cybersecurity alert by creating a ServiceNow incident, suspending the Okta account, and alerting security via Teams."
tags:
- security
- splunk
- servicenow
- okta
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: security-ops
port: 8080
tools:
- name: cybersecurity-incident-response-chain
description: "Responds to a cybersecurity alert by creating a ServiceNow incident, suspending the Okta account, and alerting security via Teams."
inputParameters:
- name: reference_id
in: body
type: string
description: "The reference identifier for this request."
- name: description
in: body
type: string
description: "Detailed description of the request."
- name: priority
in: body
type: string
description: "Priority level: high, medium, or low."
steps:
- name: create-primary-record
type: call
call: "servicenow.create-incident"
with:
short_description: "Cybersecurity Incident Response Chain: {{reference_id}}"
urgency: "2"
description: "{{description}}"
- name: create-tracking-issue
type: call
call: "jira.create-issue"
with:
project_key: "OPS"
issuetype: "Task"
summary: "Cybersecurity Incident Response Chain: {{reference_id}}"
description: "Incident: {{create-primary-record.number}} | {{description}}"
- name: notify-team
type: call
call: "msteams.post-message"
with:
channel_id: "$secrets.teams_security_channel_id"
text: "Cybersecurity Incident Response Chain | Ref: {{reference_id}} | INC: {{create-primary-record.number}} | Jira: {{create-tracking-issue.key}}"
consumes:
- namespace: servicenow
type: http
baseUri: "https://toyota.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_username"
password: "$secrets.servicenow_password"
resources:
- name: incidents
path: "/table/incident"
operations:
- name: create-incident
method: POST
- namespace: jira
type: http
baseUri: "https://toyota.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
- namespace: msteams
type: http
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_bearer_token"
resources:
- name: channel-messages
path: "/teams/messages"
operations:
- name: post-message
method: POST
Monitors Snowflake data quality, creates Jira ticket when issues found, and alerts data engineering via Teams.
naftiko: "0.5"
info:
label: "Data Lake Ingestion Quality Monitor"
description: "Monitors Snowflake data quality, creates Jira ticket when issues found, and alerts data engineering via Teams."
tags:
- data-engineering
- snowflake
- jira
- microsoft-teams
- analytics
capability:
exposes:
- type: mcp
namespace: data-engineering-ops
port: 8080
tools:
- name: data-lake-ingestion-quality-monitor
description: "Monitors Snowflake data quality, creates Jira ticket when issues found, and alerts data engineering via Teams."
inputParameters:
- name: reference_id
in: body
type: string
description: "The reference identifier for this request."
- name: description
in: body
type: string
description: "Detailed description of the request."
- name: priority
in: body
type: string
description: "Priority level: high, medium, or low."
steps:
- name: create-primary-record
type: call
call: "servicenow.create-incident"
with:
short_description: "Data Lake Ingestion Quality Monitor: {{reference_id}}"
urgency: "2"
description: "{{description}}"
- name: create-tracking-issue
type: call
call: "jira.create-issue"
with:
project_key: "OPS"
issuetype: "Task"
summary: "Data Lake Ingestion Quality Monitor: {{reference_id}}"
description: "Incident: {{create-primary-record.number}} | {{description}}"
- name: notify-team
type: call
call: "msteams.post-message"
with:
channel_id: "$secrets.teams_data-engineering_channel_id"
text: "Data Lake Ingestion Quality Monitor | Ref: {{reference_id}} | INC: {{create-primary-record.number}} | Jira: {{create-tracking-issue.key}}"
consumes:
- namespace: servicenow
type: http
baseUri: "https://toyota.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_username"
password: "$secrets.servicenow_password"
resources:
- name: incidents
path: "/table/incident"
operations:
- name: create-incident
method: POST
- namespace: jira
type: http
baseUri: "https://toyota.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
- namespace: msteams
type: http
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_bearer_token"
resources:
- name: channel-messages
path: "/teams/messages"
operations:
- name: post-message
method: POST
Retrieves current health status of a monitored service from Datadog by service name.
naftiko: "0.5"
info:
label: "Datadog Service Health Check"
description: "Retrieves current health status of a monitored service from Datadog by service name."
tags:
- monitoring
- datadog
- health-check
- operations
capability:
exposes:
- type: mcp
namespace: monitoring
port: 8080
tools:
- name: get-service-health
description: "Given a Datadog service name, retrieve the current health status including uptime and error rate."
inputParameters:
- name: service_name
in: body
type: string
description: "Datadog service name, e.g. 'toyota-connected-api'."
call: "datadog.get-service-summary"
with:
service: "{{service_name}}"
outputParameters:
- name: status
type: string
mapping: "$.data.attributes.status"
- name: error_rate
type: string
mapping: "$.data.attributes.error_rate"
consumes:
- namespace: datadog
type: http
baseUri: "https://api.datadoghq.com/api/v2"
authentication:
type: apikey
key: "DD-API-KEY"
value: "$secrets.datadog_api_key"
placement: header
resources:
- name: services
path: "/services/definitions/{{service}}"
inputParameters:
- name: service
in: path
operations:
- name: get-service-summary
method: GET
Processes warranty claim from Salesforce by creating SAP service order, Jira investigation, and notifying warranty team.
naftiko: "0.5"
info:
label: "Dealer Warranty Claim Processing"
description: "Processes warranty claim from Salesforce by creating SAP service order, Jira investigation, and notifying warranty team."
tags:
- quality
- salesforce
- sap
- jira
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: quality-ops
port: 8080
tools:
- name: dealer-warranty-claim-processing
description: "Processes warranty claim from Salesforce by creating SAP service order, Jira investigation, and notifying warranty team."
inputParameters:
- name: reference_id
in: body
type: string
description: "The reference identifier for this request."
- name: description
in: body
type: string
description: "Detailed description of the request."
- name: priority
in: body
type: string
description: "Priority level: high, medium, or low."
steps:
- name: create-primary-record
type: call
call: "servicenow.create-incident"
with:
short_description: "Dealer Warranty Claim Processing: {{reference_id}}"
urgency: "2"
description: "{{description}}"
- name: create-tracking-issue
type: call
call: "jira.create-issue"
with:
project_key: "OPS"
issuetype: "Task"
summary: "Dealer Warranty Claim Processing: {{reference_id}}"
description: "Incident: {{create-primary-record.number}} | {{description}}"
- name: notify-team
type: call
call: "msteams.post-message"
with:
channel_id: "$secrets.teams_quality_channel_id"
text: "Dealer Warranty Claim Processing | Ref: {{reference_id}} | INC: {{create-primary-record.number}} | Jira: {{create-tracking-issue.key}}"
consumes:
- namespace: servicenow
type: http
baseUri: "https://toyota.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_username"
password: "$secrets.servicenow_password"
resources:
- name: incidents
path: "/table/incident"
operations:
- name: create-incident
method: POST
- namespace: jira
type: http
baseUri: "https://toyota.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
- namespace: msteams
type: http
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_bearer_token"
resources:
- name: channel-messages
path: "/teams/messages"
operations:
- name: post-message
method: POST
Provisions badge access by syncing Workday data, creating ServiceNow request, and confirming via Teams.
naftiko: "0.5"
info:
label: "Employee Badge Access Provisioning"
description: "Provisions badge access by syncing Workday data, creating ServiceNow request, and confirming via Teams."
tags:
- security
- workday
- servicenow
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: security-ops
port: 8080
tools:
- name: employee-badge-access-provisioning
description: "Provisions badge access by syncing Workday data, creating ServiceNow request, and confirming via Teams."
inputParameters:
- name: reference_id
in: body
type: string
description: "The reference identifier for this request."
- name: description
in: body
type: string
description: "Detailed description of the request."
- name: priority
in: body
type: string
description: "Priority level: high, medium, or low."
steps:
- name: create-primary-record
type: call
call: "servicenow.create-incident"
with:
short_description: "Employee Badge Access Provisioning: {{reference_id}}"
urgency: "2"
description: "{{description}}"
- name: create-tracking-issue
type: call
call: "jira.create-issue"
with:
project_key: "OPS"
issuetype: "Task"
summary: "Employee Badge Access Provisioning: {{reference_id}}"
description: "Incident: {{create-primary-record.number}} | {{description}}"
- name: notify-team
type: call
call: "msteams.post-message"
with:
channel_id: "$secrets.teams_security_channel_id"
text: "Employee Badge Access Provisioning | Ref: {{reference_id}} | INC: {{create-primary-record.number}} | Jira: {{create-tracking-issue.key}}"
consumes:
- namespace: servicenow
type: http
baseUri: "https://toyota.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_username"
password: "$secrets.servicenow_password"
resources:
- name: incidents
path: "/table/incident"
operations:
- name: create-incident
method: POST
- namespace: jira
type: http
baseUri: "https://toyota.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
- namespace: msteams
type: http
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_bearer_token"
resources:
- name: channel-messages
path: "/teams/messages"
operations:
- name: post-message
method: POST
When an employee termination is recorded in Workday, disables the Microsoft 365 account, revokes Okta sessions, opens a ServiceNow offboarding ticket for equipment return, and notifies the HR team via Microsoft Teams.
naftiko: "0.5"
info:
label: "Employee Offboarding and Access Revocation"
description: "When an employee termination is recorded in Workday, disables the Microsoft 365 account, revokes Okta sessions, opens a ServiceNow offboarding ticket for equipment return, and notifies the HR team via Microsoft Teams."
tags:
- hr
- offboarding
- workday
- okta
- servicenow
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: hr-offboarding
port: 8080
tools:
- name: trigger-offboarding
description: "Given a Workday employee ID and termination date, disable the Microsoft 365 account, revoke all Okta sessions, open a ServiceNow offboarding ticket for IT equipment collection, and notify HR ops via Teams."
inputParameters:
- name: workday_employee_id
in: body
type: string
description: "The Workday worker ID for the departing employee."
- name: termination_date
in: body
type: string
description: "The employee's final day in YYYY-MM-DD format."
steps:
- name: get-employee
type: call
call: "workday-off.get-worker"
with:
worker_id: "{{workday_employee_id}}"
- name: disable-m365
type: call
call: "msgraph-off.disable-user"
with:
user_id: "{{get-employee.azure_ad_id}}"
- name: revoke-okta
type: call
call: "okta.clear-sessions"
with:
login: "{{get-employee.work_email}}"
- name: open-ticket
type: call
call: "servicenow-off.create-incident"
with:
short_description: "Offboarding: {{get-employee.full_name}} | Last Day: {{termination_date}}"
category: "hr_offboarding"
- name: notify-hr
type: call
call: "teams-hr.send-message"
with:
channel: "hr-offboarding-ops"
text: "Offboarding triggered for {{get-employee.full_name}} | Last Day: {{termination_date}} | ServiceNow: {{open-ticket.number}}"
consumes:
- type: http
namespace: workday-off
baseUri: "https://wd2-impl-services1.workday.com/ccx/api/v1"
authentication:
type: bearer
token: "$secrets.workday_token"
resources:
- name: workers
path: "/toyota/workers/{{worker_id}}"
inputParameters:
- name: worker_id
in: path
operations:
- name: get-worker
method: GET
- type: http
namespace: msgraph-off
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: users
path: "/users/{{user_id}}"
inputParameters:
- name: user_id
in: path
operations:
- name: disable-user
method: PATCH
- type: http
namespace: okta
baseUri: "https://toyota.okta.com/api/v1"
authentication:
type: apikey
key: "Authorization"
value: "$secrets.okta_api_token"
placement: header
resources:
- name: user-sessions
path: "/users/{{login}}/sessions"
inputParameters:
- name: login
in: path
operations:
- name: clear-sessions
method: DELETE
- type: http
namespace: servicenow-off
baseUri: "https://toyota.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: teams-hr
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel_id
in: path
operations:
- name: send-message
method: POST
When a new hire is created in Workday, opens a ServiceNow onboarding ticket, provisions a Microsoft 365 account via Graph API, and sends a Microsoft Teams welcome message with first-day instructions.
naftiko: "0.5"
info:
label: "Employee Onboarding Orchestrator"
description: "When a new hire is created in Workday, opens a ServiceNow onboarding ticket, provisions a Microsoft 365 account via Graph API, and sends a Microsoft Teams welcome message with first-day instructions."
tags:
- hr
- onboarding
- workday
- servicenow
- microsoft-teams
- microsoft-365
capability:
exposes:
- type: mcp
namespace: hr-onboarding
port: 8080
tools:
- name: trigger-onboarding
description: "Given a Workday employee ID and start date, orchestrate the full onboarding sequence: retrieve employee data from Workday, open a ServiceNow IT onboarding ticket, provision a Microsoft 365 account, and send a Teams welcome message to the new hire."
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."
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"
- name: provision-m365
type: call
call: "msgraph.create-user"
with:
display_name: "{{get-employee.full_name}}"
mail_nickname: "{{get-employee.email_alias}}"
department: "{{get-employee.department}}"
- name: send-welcome
type: call
call: "msteams.send-message"
with:
recipient_upn: "{{get-employee.work_email}}"
text: "Welcome to Toyota Motor Corporation, {{get-employee.first_name}}! Your IT onboarding ticket is {{open-ticket.number}}. We look forward to your first day on {{start_date}}."
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: "/toyota/workers/{{worker_id}}"
inputParameters:
- name: worker_id
in: path
operations:
- name: get-worker
method: GET
- type: http
namespace: servicenow
baseUri: "https://toyota.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: msgraph
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: users
path: "/users"
operations:
- name: create-user
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: user-mail
path: "/users/{{recipient_upn}}/sendMail"
inputParameters:
- name: recipient_upn
in: path
operations:
- name: send-message
method: POST
Checks safety training compliance from Workday against requirements, alerting managers via Teams for gaps.
naftiko: "0.5"
info:
label: "Employee Safety Training Compliance Check"
description: "Checks safety training compliance from Workday against requirements, alerting managers via Teams for gaps."
tags:
- safety
- workday
- sap
- microsoft-teams
- training
capability:
exposes:
- type: mcp
namespace: safety-ops
port: 8080
tools:
- name: employee-safety-training-compliance-check
description: "Checks safety training compliance from Workday against requirements, alerting managers via Teams for gaps."
inputParameters:
- name: reference_id
in: body
type: string
description: "The reference identifier for this request."
- name: description
in: body
type: string
description: "Detailed description of the request."
- name: priority
in: body
type: string
description: "Priority level: high, medium, or low."
steps:
- name: create-primary-record
type: call
call: "servicenow.create-incident"
with:
short_description: "Employee Safety Training Compliance Check: {{reference_id}}"
urgency: "2"
description: "{{description}}"
- name: create-tracking-issue
type: call
call: "jira.create-issue"
with:
project_key: "OPS"
issuetype: "Task"
summary: "Employee Safety Training Compliance Check: {{reference_id}}"
description: "Incident: {{create-primary-record.number}} | {{description}}"
- name: notify-team
type: call
call: "msteams.post-message"
with:
channel_id: "$secrets.teams_safety_channel_id"
text: "Employee Safety Training Compliance Check | Ref: {{reference_id}} | INC: {{create-primary-record.number}} | Jira: {{create-tracking-issue.key}}"
consumes:
- namespace: servicenow
type: http
baseUri: "https://toyota.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_username"
password: "$secrets.servicenow_password"
resources:
- name: incidents
path: "/table/incident"
operations:
- name: create-incident
method: POST
- namespace: jira
type: http
baseUri: "https://toyota.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
- namespace: msteams
type: http
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_bearer_token"
resources:
- name: channel-messages
path: "/teams/messages"
operations:
- name: post-message
method: POST
Processes an engineering change order by creating a Jira ECO ticket, updating the BOM in SAP, and notifying teams via Teams.
naftiko: "0.5"
info:
label: "Engineering Change Order Process"
description: "Processes an engineering change order by creating a Jira ECO ticket, updating the BOM in SAP, and notifying teams via Teams."
tags:
- engineering
- jira
- sap
- microsoft-teams
- manufacturing
capability:
exposes:
- type: mcp
namespace: engineering-ops
port: 8080
tools:
- name: engineering-change-order-process
description: "Processes an engineering change order by creating a Jira ECO ticket, updating the BOM in SAP, and notifying teams via Teams."
inputParameters:
- name: reference_id
in: body
type: string
description: "The reference identifier for this request."
- name: description
in: body
type: string
description: "Detailed description of the request."
- name: priority
in: body
type: string
description: "Priority level: high, medium, or low."
steps:
- name: create-primary-record
type: call
call: "servicenow.create-incident"
with:
short_description: "Engineering Change Order Process: {{reference_id}}"
urgency: "2"
description: "{{description}}"
- name: create-tracking-issue
type: call
call: "jira.create-issue"
with:
project_key: "OPS"
issuetype: "Task"
summary: "Engineering Change Order Process: {{reference_id}}"
description: "Incident: {{create-primary-record.number}} | {{description}}"
- name: notify-team
type: call
call: "msteams.post-message"
with:
channel_id: "$secrets.teams_engineering_channel_id"
text: "Engineering Change Order Process | Ref: {{reference_id}} | INC: {{create-primary-record.number}} | Jira: {{create-tracking-issue.key}}"
consumes:
- namespace: servicenow
type: http
baseUri: "https://toyota.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_username"
password: "$secrets.servicenow_password"
resources:
- name: incidents
path: "/table/incident"
operations:
- name: create-incident
method: POST
- namespace: jira
type: http
baseUri: "https://toyota.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
- namespace: msteams
type: http
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_bearer_token"
resources:
- name: channel-messages
path: "/teams/messages"
operations:
- name: post-message
method: POST
Orchestrates design review by gathering Confluence docs, creating Jira task, and notifying reviewers via Teams.
naftiko: "0.5"
info:
label: "Engineering Design Review Orchestration"
description: "Orchestrates design review by gathering Confluence docs, creating Jira task, and notifying reviewers via Teams."
tags:
- engineering
- confluence
- jira
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: engineering-ops
port: 8080
tools:
- name: engineering-design-review-orchestration
description: "Orchestrates design review by gathering Confluence docs, creating Jira task, and notifying reviewers via Teams."
inputParameters:
- name: reference_id
in: body
type: string
description: "The reference identifier for this request."
- name: description
in: body
type: string
description: "Detailed description of the request."
- name: priority
in: body
type: string
description: "Priority level: high, medium, or low."
steps:
- name: create-primary-record
type: call
call: "servicenow.create-incident"
with:
short_description: "Engineering Design Review Orchestration: {{reference_id}}"
urgency: "2"
description: "{{description}}"
- name: create-tracking-issue
type: call
call: "jira.create-issue"
with:
project_key: "OPS"
issuetype: "Task"
summary: "Engineering Design Review Orchestration: {{reference_id}}"
description: "Incident: {{create-primary-record.number}} | {{description}}"
- name: notify-team
type: call
call: "msteams.post-message"
with:
channel_id: "$secrets.teams_engineering_channel_id"
text: "Engineering Design Review Orchestration | Ref: {{reference_id}} | INC: {{create-primary-record.number}} | Jira: {{create-tracking-issue.key}}"
consumes:
- namespace: servicenow
type: http
baseUri: "https://toyota.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_username"
password: "$secrets.servicenow_password"
resources:
- name: incidents
path: "/table/incident"
operations:
- name: create-incident
method: POST
- namespace: jira
type: http
baseUri: "https://toyota.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
- namespace: msteams
type: http
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_bearer_token"
resources:
- name: channel-messages
path: "/teams/messages"
operations:
- name: post-message
method: POST
Collects environmental sensor data via Datadog, logs in ServiceNow, and alerts EHS via Teams when thresholds are exceeded.
naftiko: "0.5"
info:
label: "Environmental Compliance Monitoring"
description: "Collects environmental sensor data via Datadog, logs in ServiceNow, and alerts EHS via Teams when thresholds are exceeded."
tags:
- safety
- ehs
- datadog
- servicenow
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: safety-ops
port: 8080
tools:
- name: environmental-compliance-monitoring
description: "Collects environmental sensor data via Datadog, logs in ServiceNow, and alerts EHS via Teams when thresholds are exceeded."
inputParameters:
- name: reference_id
in: body
type: string
description: "The reference identifier for this request."
- name: description
in: body
type: string
description: "Detailed description of the request."
- name: priority
in: body
type: string
description: "Priority level: high, medium, or low."
steps:
- name: create-primary-record
type: call
call: "servicenow.create-incident"
with:
short_description: "Environmental Compliance Monitoring: {{reference_id}}"
urgency: "2"
description: "{{description}}"
- name: create-tracking-issue
type: call
call: "jira.create-issue"
with:
project_key: "OPS"
issuetype: "Task"
summary: "Environmental Compliance Monitoring: {{reference_id}}"
description: "Incident: {{create-primary-record.number}} | {{description}}"
- name: notify-team
type: call
call: "msteams.post-message"
with:
channel_id: "$secrets.teams_safety_channel_id"
text: "Environmental Compliance Monitoring | Ref: {{reference_id}} | INC: {{create-primary-record.number}} | Jira: {{create-tracking-issue.key}}"
consumes:
- namespace: servicenow
type: http
baseUri: "https://toyota.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_username"
password: "$secrets.servicenow_password"
resources:
- name: incidents
path: "/table/incident"
operations:
- name: create-incident
method: POST
- namespace: jira
type: http
baseUri: "https://toyota.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
- namespace: msteams
type: http
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_bearer_token"
resources:
- name: channel-messages
path: "/teams/messages"
operations:
- name: post-message
method: POST
Creates SAP PM work order, ServiceNow task, and alerts facilities via Teams.
naftiko: "0.5"
info:
label: "Facility Maintenance Work Order Orchestration"
description: "Creates SAP PM work order, ServiceNow task, and alerts facilities via Teams."
tags:
- manufacturing
- sap
- servicenow
- microsoft-teams
- maintenance
capability:
exposes:
- type: mcp
namespace: manufacturing-ops
port: 8080
tools:
- name: facility-maintenance-work-order-orchestration
description: "Creates SAP PM work order, ServiceNow task, and alerts facilities via Teams."
inputParameters:
- name: reference_id
in: body
type: string
description: "The reference identifier for this request."
- name: description
in: body
type: string
description: "Detailed description of the request."
- name: priority
in: body
type: string
description: "Priority level: high, medium, or low."
steps:
- name: create-primary-record
type: call
call: "servicenow.create-incident"
with:
short_description: "Facility Maintenance Work Order Orchestration: {{reference_id}}"
urgency: "2"
description: "{{description}}"
- name: create-tracking-issue
type: call
call: "jira.create-issue"
with:
project_key: "OPS"
issuetype: "Task"
summary: "Facility Maintenance Work Order Orchestration: {{reference_id}}"
description: "Incident: {{create-primary-record.number}} | {{description}}"
- name: notify-team
type: call
call: "msteams.post-message"
with:
channel_id: "$secrets.teams_manufacturing_channel_id"
text: "Facility Maintenance Work Order Orchestration | Ref: {{reference_id}} | INC: {{create-primary-record.number}} | Jira: {{create-tracking-issue.key}}"
consumes:
- namespace: servicenow
type: http
baseUri: "https://toyota.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_username"
password: "$secrets.servicenow_password"
resources:
- name: incidents
path: "/table/incident"
operations:
- name: create-incident
method: POST
- namespace: jira
type: http
baseUri: "https://toyota.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
- namespace: msteams
type: http
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_bearer_token"
resources:
- name: channel-messages
path: "/teams/messages"
operations:
- name: post-message
method: POST
When Datadog detects an IoT anomaly, creates a ServiceNow incident, SAP PM work order, and alerts maintenance via Teams.
naftiko: "0.5"
info:
label: "Factory Floor IoT Anomaly Response"
description: "When Datadog detects an IoT anomaly, creates a ServiceNow incident, SAP PM work order, and alerts maintenance via Teams."
tags:
- manufacturing
- datadog
- servicenow
- sap
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: manufacturing-ops
port: 8080
tools:
- name: factory-floor-iot-anomaly-response
description: "When Datadog detects an IoT anomaly, creates a ServiceNow incident, SAP PM work order, and alerts maintenance via Teams."
inputParameters:
- name: reference_id
in: body
type: string
description: "The reference identifier for this request."
- name: description
in: body
type: string
description: "Detailed description of the request."
- name: priority
in: body
type: string
description: "Priority level: high, medium, or low."
steps:
- name: create-primary-record
type: call
call: "servicenow.create-incident"
with:
short_description: "Factory Floor IoT Anomaly Response: {{reference_id}}"
urgency: "2"
description: "{{description}}"
- name: create-tracking-issue
type: call
call: "jira.create-issue"
with:
project_key: "OPS"
issuetype: "Task"
summary: "Factory Floor IoT Anomaly Response: {{reference_id}}"
description: "Incident: {{create-primary-record.number}} | {{description}}"
- name: notify-team
type: call
call: "msteams.post-message"
with:
channel_id: "$secrets.teams_manufacturing_channel_id"
text: "Factory Floor IoT Anomaly Response | Ref: {{reference_id}} | INC: {{create-primary-record.number}} | Jira: {{create-tracking-issue.key}}"
consumes:
- namespace: servicenow
type: http
baseUri: "https://toyota.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_username"
password: "$secrets.servicenow_password"
resources:
- name: incidents
path: "/table/incident"
operations:
- name: create-incident
method: POST
- namespace: jira
type: http
baseUri: "https://toyota.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
- namespace: msteams
type: http
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_bearer_token"
resources:
- name: channel-messages
path: "/teams/messages"
operations:
- name: post-message
method: POST
When a GitHub Actions workflow fails on a protected branch, creates a Jira bug for the engineering team, posts a failure alert to the engineering Microsoft Teams channel, and comments on the triggering pull request.
naftiko: "0.5"
info:
label: "GitHub CI/CD Pipeline Failure Orchestration"
description: "When a GitHub Actions workflow fails on a protected branch, creates a Jira bug for the engineering team, posts a failure alert to the engineering Microsoft Teams channel, and comments on the triggering pull request."
tags:
- devops
- github
- jira
- microsoft-teams
- ci-cd
capability:
exposes:
- type: mcp
namespace: devops-cicd
port: 8080
tools:
- name: handle-workflow-failure
description: "Given a GitHub repository, workflow run ID, and associated PR number, retrieve failure details, open a Jira bug for the engineering team, comment on the PR with the failure summary, and alert the engineering Teams channel. Use for production-branch CI/CD failure response."
inputParameters:
- name: repo_owner
in: body
type: string
description: "GitHub organization or owner name."
- name: repo_name
in: body
type: string
description: "GitHub repository name."
- name: run_id
in: body
type: string
description: "The GitHub Actions workflow run ID."
- name: pr_number
in: body
type: integer
description: "The pull request number that triggered the workflow."
steps:
- name: get-run
type: call
call: "github-cicd.get-workflow-run"
with:
owner: "{{repo_owner}}"
repo: "{{repo_name}}"
run_id: "{{run_id}}"
- name: create-bug
type: call
call: "jira-cicd.create-issue"
with:
project_key: "ENG"
issuetype: "Bug"
summary: "[CI Failure] {{repo_name}} — {{get-run.name}} on {{get-run.head_branch}}"
description: "Workflow: {{get-run.name}}\nBranch: {{get-run.head_branch}}\nCommit: {{get-run.head_sha}}\nURL: {{get-run.html_url}}"
- name: comment-pr
type: call
call: "github-cicd.add-pr-comment"
with:
owner: "{{repo_owner}}"
repo: "{{repo_name}}"
issue_number: "{{pr_number}}"
body: "CI Pipeline failed on run {{run_id}}. Jira bug created: {{create-bug.key}}. Please review {{get-run.html_url}}."
- name: notify-team
type: call
call: "teams-cicd.send-message"
with:
channel: "engineering-ci-failures"
text: "CI Failure | {{repo_name}} | Workflow: {{get-run.name}} | Branch: {{get-run.head_branch}} | Jira: {{create-bug.key}} | {{get-run.html_url}}"
consumes:
- type: http
namespace: github-cicd
baseUri: "https://api.github.com"
authentication:
type: bearer
token: "$secrets.github_token"
resources:
- name: workflow-runs
path: "/repos/{{owner}}/{{repo}}/actions/runs/{{run_id}}"
inputParameters:
- name: owner
in: path
- name: repo
in: path
- name: run_id
in: path
operations:
- name: get-workflow-run
method: GET
- name: pr-comments
path: "/repos/{{owner}}/{{repo}}/issues/{{issue_number}}/comments"
inputParameters:
- name: owner
in: path
- name: repo
in: path
- name: issue_number
in: path
operations:
- name: add-pr-comment
method: POST
- type: http
namespace: jira-cicd
baseUri: "https://toyota.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: teams-cicd
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel_id
in: path
operations:
- name: send-message
method: POST
When GitHub Advanced Security detects a high or critical code vulnerability in a Toyota repository, creates a Jira security bug and alerts the security engineering Microsoft Teams channel.
naftiko: "0.5"
info:
label: "GitHub Code Security Alert Escalation"
description: "When GitHub Advanced Security detects a high or critical code vulnerability in a Toyota repository, creates a Jira security bug and alerts the security engineering Microsoft Teams channel."
tags:
- security
- github
- jira
- microsoft-teams
- devops
capability:
exposes:
- type: mcp
namespace: security-code-scanning
port: 8080
tools:
- name: escalate-security-alert
description: "Given a GitHub repository and code scanning alert number, retrieve the vulnerability details from GitHub Advanced Security, create a Jira bug in the SEC project, and alert the security engineering Teams channel. Use when GitHub detects high or critical severity code vulnerabilities."
inputParameters:
- name: repo_owner
in: body
type: string
description: "GitHub organization or repository owner."
- name: repo_name
in: body
type: string
description: "GitHub repository name."
- name: alert_number
in: body
type: integer
description: "GitHub code scanning alert number."
steps:
- name: get-alert
type: call
call: "github-sast.get-code-scanning-alert"
with:
owner: "{{repo_owner}}"
repo: "{{repo_name}}"
alert_number: "{{alert_number}}"
- name: create-bug
type: call
call: "jira-sast.create-issue"
with:
project_key: "SEC"
issuetype: "Bug"
summary: "[Security] {{get-alert.rule_description}} in {{repo_name}}"
description: "Repo: {{repo_owner}}/{{repo_name}}\nRule: {{get-alert.rule_id}}\nSeverity: {{get-alert.severity}}\nFile: {{get-alert.location_path}}\nAlert URL: {{get-alert.html_url}}"
- name: notify-sec
type: call
call: "teams-sast.send-message"
with:
channel: "security-engineering-alerts"
text: "Code Scanning Alert | {{repo_name}} | {{get-alert.rule_description}} | Severity: {{get-alert.severity}} | Jira: {{create-bug.key}} | {{get-alert.html_url}}"
consumes:
- type: http
namespace: github-sast
baseUri: "https://api.github.com"
authentication:
type: bearer
token: "$secrets.github_token"
resources:
- name: code-scanning-alerts
path: "/repos/{{owner}}/{{repo}}/code-scanning/alerts/{{alert_number}}"
inputParameters:
- name: owner
in: path
- name: repo
in: path
- name: alert_number
in: path
operations:
- name: get-code-scanning-alert
method: GET
- type: http
namespace: jira-sast
baseUri: "https://toyota.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: teams-sast
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel_id
in: path
operations:
- name: send-message
method: POST
Checks the branch protection rules for a GitHub repository main branch.
naftiko: "0.5"
info:
label: "GitHub Repository Branch Protection Check"
description: "Checks the branch protection rules for a GitHub repository main branch."
tags:
- devops
- github
- security
- compliance
capability:
exposes:
- type: mcp
namespace: devops
port: 8080
tools:
- name: check-branch-protection
description: "Given a GitHub repository name, retrieve branch protection rules."
inputParameters:
- name: repo_name
in: body
type: string
description: "GitHub repository name."
call: "github.get-branch-protection"
with:
repo: "{{repo_name}}"
outputParameters:
- name: required_reviews
type: string
mapping: "$.required_pull_request_reviews.required_approving_review_count"
consumes:
- namespace: github
type: http
baseUri: "https://api.github.com"
authentication:
type: bearer
token: "$secrets.github_token"
resources:
- name: branch-protection
path: "/repos/{{repo}}/branches/main/protection"
inputParameters:
- name: repo
in: path
operations:
- name: get-branch-protection
method: GET
When hazardous material is received, validates SDS in SharePoint, creates SAP EHS notification, and alerts safety via Teams.
naftiko: "0.5"
info:
label: "Hazardous Material Handling Alert"
description: "When hazardous material is received, validates SDS in SharePoint, creates SAP EHS notification, and alerts safety via Teams."
tags:
- safety
- ehs
- sharepoint
- sap
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: safety-ops
port: 8080
tools:
- name: hazardous-material-handling-alert
description: "When hazardous material is received, validates SDS in SharePoint, creates SAP EHS notification, and alerts safety via Teams."
inputParameters:
- name: reference_id
in: body
type: string
description: "The reference identifier for this request."
- name: description
in: body
type: string
description: "Detailed description of the request."
- name: priority
in: body
type: string
description: "Priority level: high, medium, or low."
steps:
- name: create-primary-record
type: call
call: "servicenow.create-incident"
with:
short_description: "Hazardous Material Handling Alert: {{reference_id}}"
urgency: "2"
description: "{{description}}"
- name: create-tracking-issue
type: call
call: "jira.create-issue"
with:
project_key: "OPS"
issuetype: "Task"
summary: "Hazardous Material Handling Alert: {{reference_id}}"
description: "Incident: {{create-primary-record.number}} | {{description}}"
- name: notify-team
type: call
call: "msteams.post-message"
with:
channel_id: "$secrets.teams_safety_channel_id"
text: "Hazardous Material Handling Alert | Ref: {{reference_id}} | INC: {{create-primary-record.number}} | Jira: {{create-tracking-issue.key}}"
consumes:
- namespace: servicenow
type: http
baseUri: "https://toyota.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_username"
password: "$secrets.servicenow_password"
resources:
- name: incidents
path: "/table/incident"
operations:
- name: create-incident
method: POST
- namespace: jira
type: http
baseUri: "https://toyota.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
- namespace: msteams
type: http
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_bearer_token"
resources:
- name: channel-messages
path: "/teams/messages"
operations:
- name: post-message
method: POST
Ingests powertrain test data to Snowflake, refreshes Tableau dashboard, and notifies engineering via Teams.
naftiko: "0.5"
info:
label: "Hybrid Powertrain Test Data Pipeline"
description: "Ingests powertrain test data to Snowflake, refreshes Tableau dashboard, and notifies engineering via Teams."
tags:
- engineering
- snowflake
- tableau
- microsoft-teams
- automotive
capability:
exposes:
- type: mcp
namespace: engineering-ops
port: 8080
tools:
- name: hybrid-powertrain-test-data-pipeline
description: "Ingests powertrain test data to Snowflake, refreshes Tableau dashboard, and notifies engineering via Teams."
inputParameters:
- name: reference_id
in: body
type: string
description: "The reference identifier for this request."
- name: description
in: body
type: string
description: "Detailed description of the request."
- name: priority
in: body
type: string
description: "Priority level: high, medium, or low."
steps:
- name: create-primary-record
type: call
call: "servicenow.create-incident"
with:
short_description: "Hybrid Powertrain Test Data Pipeline: {{reference_id}}"
urgency: "2"
description: "{{description}}"
- name: create-tracking-issue
type: call
call: "jira.create-issue"
with:
project_key: "OPS"
issuetype: "Task"
summary: "Hybrid Powertrain Test Data Pipeline: {{reference_id}}"
description: "Incident: {{create-primary-record.number}} | {{description}}"
- name: notify-team
type: call
call: "msteams.post-message"
with:
channel_id: "$secrets.teams_engineering_channel_id"
text: "Hybrid Powertrain Test Data Pipeline | Ref: {{reference_id}} | INC: {{create-primary-record.number}} | Jira: {{create-tracking-issue.key}}"
consumes:
- namespace: servicenow
type: http
baseUri: "https://toyota.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_username"
password: "$secrets.servicenow_password"
resources:
- name: incidents
path: "/table/incident"
operations:
- name: create-incident
method: POST
- namespace: jira
type: http
baseUri: "https://toyota.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
- namespace: msteams
type: http
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_bearer_token"
resources:
- name: channel-messages
path: "/teams/messages"
operations:
- name: post-message
method: POST
Processes IT change by creating ServiceNow change request, running Terraform plan, and posting for CAB review via Teams.
naftiko: "0.5"
info:
label: "IT Infrastructure Change Approval Workflow"
description: "Processes IT change by creating ServiceNow change request, running Terraform plan, and posting for CAB review via Teams."
tags:
- devops
- servicenow
- microsoft-teams
- infrastructure
capability:
exposes:
- type: mcp
namespace: devops-ops
port: 8080
tools:
- name: it-infrastructure-change-approval-workflow
description: "Processes IT change by creating ServiceNow change request, running Terraform plan, and posting for CAB review via Teams."
inputParameters:
- name: reference_id
in: body
type: string
description: "The reference identifier for this request."
- name: description
in: body
type: string
description: "Detailed description of the request."
- name: priority
in: body
type: string
description: "Priority level: high, medium, or low."
steps:
- name: create-primary-record
type: call
call: "servicenow.create-incident"
with:
short_description: "IT Infrastructure Change Approval Workflow: {{reference_id}}"
urgency: "2"
description: "{{description}}"
- name: create-tracking-issue
type: call
call: "jira.create-issue"
with:
project_key: "OPS"
issuetype: "Task"
summary: "IT Infrastructure Change Approval Workflow: {{reference_id}}"
description: "Incident: {{create-primary-record.number}} | {{description}}"
- name: notify-team
type: call
call: "msteams.post-message"
with:
channel_id: "$secrets.teams_devops_channel_id"
text: "IT Infrastructure Change Approval Workflow | Ref: {{reference_id}} | INC: {{create-primary-record.number}} | Jira: {{create-tracking-issue.key}}"
consumes:
- namespace: servicenow
type: http
baseUri: "https://toyota.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_username"
password: "$secrets.servicenow_password"
resources:
- name: incidents
path: "/table/incident"
operations:
- name: create-incident
method: POST
- namespace: jira
type: http
baseUri: "https://toyota.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
- namespace: msteams
type: http
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_bearer_token"
resources:
- name: channel-messages
path: "/teams/messages"
operations:
- name: post-message
method: POST
When a critical vulnerability is found, creates a Jira ticket, updates ServiceNow CMDB, and alerts security via Teams.
naftiko: "0.5"
info:
label: "IT Security Vulnerability Remediation"
description: "When a critical vulnerability is found, creates a Jira ticket, updates ServiceNow CMDB, and alerts security via Teams."
tags:
- security
- github
- jira
- servicenow
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: security-ops
port: 8080
tools:
- name: it-security-vulnerability-remediation
description: "When a critical vulnerability is found, creates a Jira ticket, updates ServiceNow CMDB, and alerts security via Teams."
inputParameters:
- name: reference_id
in: body
type: string
description: "The reference identifier for this request."
- name: description
in: body
type: string
description: "Detailed description of the request."
- name: priority
in: body
type: string
description: "Priority level: high, medium, or low."
steps:
- name: create-primary-record
type: call
call: "servicenow.create-incident"
with:
short_description: "IT Security Vulnerability Remediation: {{reference_id}}"
urgency: "2"
description: "{{description}}"
- name: create-tracking-issue
type: call
call: "jira.create-issue"
with:
project_key: "OPS"
issuetype: "Task"
summary: "IT Security Vulnerability Remediation: {{reference_id}}"
description: "Incident: {{create-primary-record.number}} | {{description}}"
- name: notify-team
type: call
call: "msteams.post-message"
with:
channel_id: "$secrets.teams_security_channel_id"
text: "IT Security Vulnerability Remediation | Ref: {{reference_id}} | INC: {{create-primary-record.number}} | Jira: {{create-tracking-issue.key}}"
consumes:
- namespace: servicenow
type: http
baseUri: "https://toyota.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_username"
password: "$secrets.servicenow_password"
resources:
- name: incidents
path: "/table/incident"
operations:
- name: create-incident
method: POST
- namespace: jira
type: http
baseUri: "https://toyota.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
- namespace: msteams
type: http
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_bearer_token"
resources:
- name: channel-messages
path: "/teams/messages"
operations:
- name: post-message
method: POST
Retrieves a Jira engineering issue by key, returning summary, status, assignee, and priority.
naftiko: "0.5"
info:
label: "Jira Engineering Issue Lookup"
description: "Retrieves a Jira engineering issue by key, returning summary, status, assignee, and priority."
tags:
- engineering
- jira
- lookup
- project-management
capability:
exposes:
- type: mcp
namespace: engineering
port: 8080
tools:
- name: get-engineering-issue
description: "Given a Jira issue key, retrieve the issue details including summary, status, and assignee."
inputParameters:
- name: issue_key
in: body
type: string
description: "Jira issue key, e.g. 'VEH-4521'."
call: "jira.get-issue"
with:
issue_key: "{{issue_key}}"
outputParameters:
- name: summary
type: string
mapping: "$.fields.summary"
- name: status
type: string
mapping: "$.fields.status.name"
- name: assignee
type: string
mapping: "$.fields.assignee.displayName"
consumes:
- namespace: jira
type: http
baseUri: "https://toyota.atlassian.net/rest/api/3"
authentication:
type: basic
username: "$secrets.jira_user"
password: "$secrets.jira_api_token"
resources:
- name: issues
path: "/issue/{{issue_key}}"
inputParameters:
- name: issue_key
in: path
operations:
- name: get-issue
method: GET
Tracks continuous improvement by creating Jira stories, logging in ServiceNow, and notifying the kaizen team via Teams.
naftiko: "0.5"
info:
label: "Kaizen Improvement Tracking"
description: "Tracks continuous improvement by creating Jira stories, logging in ServiceNow, and notifying the kaizen team via Teams."
tags:
- manufacturing
- jira
- servicenow
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: manufacturing-ops
port: 8080
tools:
- name: kaizen-improvement-tracking
description: "Tracks continuous improvement by creating Jira stories, logging in ServiceNow, and notifying the kaizen team via Teams."
inputParameters:
- name: reference_id
in: body
type: string
description: "The reference identifier for this request."
- name: description
in: body
type: string
description: "Detailed description of the request."
- name: priority
in: body
type: string
description: "Priority level: high, medium, or low."
steps:
- name: create-primary-record
type: call
call: "servicenow.create-incident"
with:
short_description: "Kaizen Improvement Tracking: {{reference_id}}"
urgency: "2"
description: "{{description}}"
- name: create-tracking-issue
type: call
call: "jira.create-issue"
with:
project_key: "OPS"
issuetype: "Task"
summary: "Kaizen Improvement Tracking: {{reference_id}}"
description: "Incident: {{create-primary-record.number}} | {{description}}"
- name: notify-team
type: call
call: "msteams.post-message"
with:
channel_id: "$secrets.teams_manufacturing_channel_id"
text: "Kaizen Improvement Tracking | Ref: {{reference_id}} | INC: {{create-primary-record.number}} | Jira: {{create-tracking-issue.key}}"
consumes:
- namespace: servicenow
type: http
baseUri: "https://toyota.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_username"
password: "$secrets.servicenow_password"
resources:
- name: incidents
path: "/table/incident"
operations:
- name: create-incident
method: POST
- namespace: jira
type: http
baseUri: "https://toyota.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
- namespace: msteams
type: http
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_bearer_token"
resources:
- name: channel-messages
path: "/teams/messages"
operations:
- name: post-message
method: POST
Publishes a company update or job spotlight to the Toyota Motor Corporation LinkedIn organization page and posts a confirmation to the talent acquisition Microsoft Teams channel.
naftiko: "0.5"
info:
label: "LinkedIn Employer Brand and Recruitment Post Publisher"
description: "Publishes a company update or job spotlight to the Toyota Motor Corporation LinkedIn organization page and posts a confirmation to the talent acquisition Microsoft Teams channel."
tags:
- marketing
- talent-acquisition
- linkedin
- microsoft-teams
- employer-brand
capability:
exposes:
- type: mcp
namespace: employer-brand
port: 8080
tools:
- name: publish-linkedin-post
description: "Publish a LinkedIn organization update for Toyota Motor Corporation — career highlights, innovation news, or job spotlights. Confirm publication to the TA Teams channel. Use for employer brand campaigns and recruitment marketing."
inputParameters:
- name: post_text
in: body
type: string
description: "Text content for the LinkedIn company update."
- name: organization_id
in: body
type: string
description: "LinkedIn organization URN ID for Toyota Motor Corporation."
steps:
- name: publish-post
type: call
call: "linkedin.create-share"
with:
organization_id: "{{organization_id}}"
text: "{{post_text}}"
- name: confirm-ta
type: call
call: "teams-emp-brand.send-message"
with:
channel: "talent-acquisition"
text: "LinkedIn post published | ID: {{publish-post.id}} | Content preview: {{post_text}}"
consumes:
- type: http
namespace: linkedin
baseUri: "https://api.linkedin.com/v2"
authentication:
type: bearer
token: "$secrets.linkedin_token"
resources:
- name: shares
path: "/shares"
operations:
- name: create-share
method: POST
- type: http
namespace: teams-emp-brand
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel_id
in: path
operations:
- name: send-message
method: POST
Compiles daily manufacturing KPIs from SAP, refreshes Tableau dashboard, and posts summary to Teams.
naftiko: "0.5"
info:
label: "Manufacturing KPI Daily Digest"
description: "Compiles daily manufacturing KPIs from SAP, refreshes Tableau dashboard, and posts summary to Teams."
tags:
- production
- sap
- tableau
- microsoft-teams
- analytics
capability:
exposes:
- type: mcp
namespace: production-ops
port: 8080
tools:
- name: manufacturing-kpi-daily-digest
description: "Compiles daily manufacturing KPIs from SAP, refreshes Tableau dashboard, and posts summary to Teams."
inputParameters:
- name: reference_id
in: body
type: string
description: "The reference identifier for this request."
- name: description
in: body
type: string
description: "Detailed description of the request."
- name: priority
in: body
type: string
description: "Priority level: high, medium, or low."
steps:
- name: create-primary-record
type: call
call: "servicenow.create-incident"
with:
short_description: "Manufacturing KPI Daily Digest: {{reference_id}}"
urgency: "2"
description: "{{description}}"
- name: create-tracking-issue
type: call
call: "jira.create-issue"
with:
project_key: "OPS"
issuetype: "Task"
summary: "Manufacturing KPI Daily Digest: {{reference_id}}"
description: "Incident: {{create-primary-record.number}} | {{description}}"
- name: notify-team
type: call
call: "msteams.post-message"
with:
channel_id: "$secrets.teams_production_channel_id"
text: "Manufacturing KPI Daily Digest | Ref: {{reference_id}} | INC: {{create-primary-record.number}} | Jira: {{create-tracking-issue.key}}"
consumes:
- namespace: servicenow
type: http
baseUri: "https://toyota.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_username"
password: "$secrets.servicenow_password"
resources:
- name: incidents
path: "/table/incident"
operations:
- name: create-incident
method: POST
- namespace: jira
type: http
baseUri: "https://toyota.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
- namespace: msteams
type: http
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_bearer_token"
resources:
- name: channel-messages
path: "/teams/messages"
operations:
- name: post-message
method: POST
Compiles a shift handoff report from SAP production data, ServiceNow incidents, and posts summary to Teams.
naftiko: "0.5"
info:
label: "Manufacturing Shift Handoff Report"
description: "Compiles a shift handoff report from SAP production data, ServiceNow incidents, and posts summary to Teams."
tags:
- production
- sap
- servicenow
- microsoft-teams
- manufacturing
capability:
exposes:
- type: mcp
namespace: production-ops
port: 8080
tools:
- name: manufacturing-shift-handoff-report
description: "Compiles a shift handoff report from SAP production data, ServiceNow incidents, and posts summary to Teams."
inputParameters:
- name: reference_id
in: body
type: string
description: "The reference identifier for this request."
- name: description
in: body
type: string
description: "Detailed description of the request."
- name: priority
in: body
type: string
description: "Priority level: high, medium, or low."
steps:
- name: create-primary-record
type: call
call: "servicenow.create-incident"
with:
short_description: "Manufacturing Shift Handoff Report: {{reference_id}}"
urgency: "2"
description: "{{description}}"
- name: create-tracking-issue
type: call
call: "jira.create-issue"
with:
project_key: "OPS"
issuetype: "Task"
summary: "Manufacturing Shift Handoff Report: {{reference_id}}"
description: "Incident: {{create-primary-record.number}} | {{description}}"
- name: notify-team
type: call
call: "msteams.post-message"
with:
channel_id: "$secrets.teams_production_channel_id"
text: "Manufacturing Shift Handoff Report | Ref: {{reference_id}} | INC: {{create-primary-record.number}} | Jira: {{create-tracking-issue.key}}"
consumes:
- namespace: servicenow
type: http
baseUri: "https://toyota.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_username"
password: "$secrets.servicenow_password"
resources:
- name: incidents
path: "/table/incident"
operations:
- name: create-incident
method: POST
- namespace: jira
type: http
baseUri: "https://toyota.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
- namespace: msteams
type: http
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_bearer_token"
resources:
- name: channel-messages
path: "/teams/messages"
operations:
- name: post-message
method: POST
Provisions program workspace by creating Jira project, Confluence space, and Teams channel.
naftiko: "0.5"
info:
label: "New Program Workspace Setup"
description: "Provisions program workspace by creating Jira project, Confluence space, and Teams channel."
tags:
- engineering
- jira
- confluence
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: engineering-ops
port: 8080
tools:
- name: new-program-workspace-setup
description: "Provisions program workspace by creating Jira project, Confluence space, and Teams channel."
inputParameters:
- name: reference_id
in: body
type: string
description: "The reference identifier for this request."
- name: description
in: body
type: string
description: "Detailed description of the request."
- name: priority
in: body
type: string
description: "Priority level: high, medium, or low."
steps:
- name: create-primary-record
type: call
call: "servicenow.create-incident"
with:
short_description: "New Program Workspace Setup: {{reference_id}}"
urgency: "2"
description: "{{description}}"
- name: create-tracking-issue
type: call
call: "jira.create-issue"
with:
project_key: "OPS"
issuetype: "Task"
summary: "New Program Workspace Setup: {{reference_id}}"
description: "Incident: {{create-primary-record.number}} | {{description}}"
- name: notify-team
type: call
call: "msteams.post-message"
with:
channel_id: "$secrets.teams_engineering_channel_id"
text: "New Program Workspace Setup | Ref: {{reference_id}} | INC: {{create-primary-record.number}} | Jira: {{create-tracking-issue.key}}"
consumes:
- namespace: servicenow
type: http
baseUri: "https://toyota.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_username"
password: "$secrets.servicenow_password"
resources:
- name: incidents
path: "/table/incident"
operations:
- name: create-incident
method: POST
- namespace: jira
type: http
baseUri: "https://toyota.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
- namespace: msteams
type: http
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_bearer_token"
resources:
- name: channel-messages
path: "/teams/messages"
operations:
- name: post-message
method: POST
Provisions a new Okta user account with department-appropriate group assignments based on Workday department and job classification, enabling SSO access to Toyota's enterprise applications.
naftiko: "0.5"
info:
label: "Okta Application Access Provisioning"
description: "Provisions a new Okta user account with department-appropriate group assignments based on Workday department and job classification, enabling SSO access to Toyota's enterprise applications."
tags:
- identity
- security
- okta
- workday
- access-management
capability:
exposes:
- type: mcp
namespace: identity-provisioning
port: 8080
tools:
- name: provision-app-access
description: "Given a Workday employee ID, retrieve their profile and department, create an Okta user account, and assign the appropriate Okta groups for SSO application access. Use during onboarding or role changes to grant access to Toyota's enterprise application portfolio."
inputParameters:
- name: workday_employee_id
in: body
type: string
description: "The Workday worker ID for the employee needing access provisioning."
steps:
- name: get-worker
type: call
call: "workday-idm.get-worker"
with:
worker_id: "{{workday_employee_id}}"
- name: create-okta-user
type: call
call: "okta-idm.create-user"
with:
first_name: "{{get-worker.first_name}}"
last_name: "{{get-worker.last_name}}"
email: "{{get-worker.work_email}}"
login: "{{get-worker.work_email}}"
department: "{{get-worker.department}}"
- name: assign-group
type: call
call: "okta-idm.add-to-group"
with:
user_id: "{{create-okta-user.id}}"
group_id: "{{get-worker.app_group_id}}"
consumes:
- type: http
namespace: workday-idm
baseUri: "https://wd2-impl-services1.workday.com/ccx/api/v1"
authentication:
type: bearer
token: "$secrets.workday_token"
resources:
- name: workers
path: "/toyota/workers/{{worker_id}}"
inputParameters:
- name: worker_id
in: path
operations:
- name: get-worker
method: GET
- type: http
namespace: okta-idm
baseUri: "https://toyota.okta.com/api/v1"
authentication:
type: apikey
key: "Authorization"
value: "$secrets.okta_api_token"
placement: header
resources:
- name: users
path: "/users"
operations:
- name: create-user
method: POST
- name: group-membership
path: "/groups/{{group_id}}/users/{{user_id}}"
inputParameters:
- name: group_id
in: path
- name: user_id
in: path
operations:
- name: add-to-group
method: PUT
Retrieves the current account status of a user in Okta by email address.
naftiko: "0.5"
info:
label: "Okta User Status Check"
description: "Retrieves the current account status of a user in Okta by email address."
tags:
- identity
- okta
- security
- lookup
capability:
exposes:
- type: mcp
namespace: identity
port: 8080
tools:
- name: get-user-status
description: "Given a user email, retrieve Okta account status including activation state and last login."
inputParameters:
- name: email
in: body
type: string
description: "User email address."
call: "okta.get-user"
with:
login: "{{email}}"
outputParameters:
- name: status
type: string
mapping: "$.status"
- name: last_login
type: string
mapping: "$.lastLogin"
consumes:
- namespace: okta
type: http
baseUri: "https://toyota.okta.com/api/v1"
authentication:
type: apikey
key: "Authorization"
value: "SSWS $secrets.okta_api_token"
placement: header
resources:
- name: users
path: "/users/{{login}}"
inputParameters:
- name: login
in: path
operations:
- name: get-user
method: GET
Monitors paint quality via Datadog, logs deviations in SAP QM, and alerts paint shop supervisor via Teams.
naftiko: "0.5"
info:
label: "Paint Shop Quality Monitoring"
description: "Monitors paint quality via Datadog, logs deviations in SAP QM, and alerts paint shop supervisor via Teams."
tags:
- quality
- datadog
- sap
- microsoft-teams
- manufacturing
capability:
exposes:
- type: mcp
namespace: quality-ops
port: 8080
tools:
- name: paint-shop-quality-monitoring
description: "Monitors paint quality via Datadog, logs deviations in SAP QM, and alerts paint shop supervisor via Teams."
inputParameters:
- name: reference_id
in: body
type: string
description: "The reference identifier for this request."
- name: description
in: body
type: string
description: "Detailed description of the request."
- name: priority
in: body
type: string
description: "Priority level: high, medium, or low."
steps:
- name: create-primary-record
type: call
call: "servicenow.create-incident"
with:
short_description: "Paint Shop Quality Monitoring: {{reference_id}}"
urgency: "2"
description: "{{description}}"
- name: create-tracking-issue
type: call
call: "jira.create-issue"
with:
project_key: "OPS"
issuetype: "Task"
summary: "Paint Shop Quality Monitoring: {{reference_id}}"
description: "Incident: {{create-primary-record.number}} | {{description}}"
- name: notify-team
type: call
call: "msteams.post-message"
with:
channel_id: "$secrets.teams_quality_channel_id"
text: "Paint Shop Quality Monitoring | Ref: {{reference_id}} | INC: {{create-primary-record.number}} | Jira: {{create-tracking-issue.key}}"
consumes:
- namespace: servicenow
type: http
baseUri: "https://toyota.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_username"
password: "$secrets.servicenow_password"
resources:
- name: incidents
path: "/table/incident"
operations:
- name: create-incident
method: POST
- namespace: jira
type: http
baseUri: "https://toyota.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
- namespace: msteams
type: http
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_bearer_token"
resources:
- name: channel-messages
path: "/teams/messages"
operations:
- name: post-message
method: POST
Monitors plant energy via Datadog, logs in ServiceNow, and alerts facilities via Teams.
naftiko: "0.5"
info:
label: "Plant Energy Consumption Monitoring"
description: "Monitors plant energy via Datadog, logs in ServiceNow, and alerts facilities via Teams."
tags:
- sustainability
- datadog
- servicenow
- microsoft-teams
- ehs
capability:
exposes:
- type: mcp
namespace: sustainability-ops
port: 8080
tools:
- name: plant-energy-consumption-monitoring
description: "Monitors plant energy via Datadog, logs in ServiceNow, and alerts facilities via Teams."
inputParameters:
- name: reference_id
in: body
type: string
description: "The reference identifier for this request."
- name: description
in: body
type: string
description: "Detailed description of the request."
- name: priority
in: body
type: string
description: "Priority level: high, medium, or low."
steps:
- name: create-primary-record
type: call
call: "servicenow.create-incident"
with:
short_description: "Plant Energy Consumption Monitoring: {{reference_id}}"
urgency: "2"
description: "{{description}}"
- name: create-tracking-issue
type: call
call: "jira.create-issue"
with:
project_key: "OPS"
issuetype: "Task"
summary: "Plant Energy Consumption Monitoring: {{reference_id}}"
description: "Incident: {{create-primary-record.number}} | {{description}}"
- name: notify-team
type: call
call: "msteams.post-message"
with:
channel_id: "$secrets.teams_sustainability_channel_id"
text: "Plant Energy Consumption Monitoring | Ref: {{reference_id}} | INC: {{create-primary-record.number}} | Jira: {{create-tracking-issue.key}}"
consumes:
- namespace: servicenow
type: http
baseUri: "https://toyota.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_username"
password: "$secrets.servicenow_password"
resources:
- name: incidents
path: "/table/incident"
operations:
- name: create-incident
method: POST
- namespace: jira
type: http
baseUri: "https://toyota.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
- namespace: msteams
type: http
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_bearer_token"
resources:
- name: channel-messages
path: "/teams/messages"
operations:
- name: post-message
method: POST
Triggers a manual refresh of the Toyota fleet analytics Power BI dataset and posts a distribution notification with the updated report link to the fleet management Microsoft Teams channel.
naftiko: "0.5"
info:
label: "Power BI Fleet Analytics Report Refresh"
description: "Triggers a manual refresh of the Toyota fleet analytics Power BI dataset and posts a distribution notification with the updated report link to the fleet management Microsoft Teams channel."
tags:
- data-analytics
- power-bi
- microsoft-teams
- reporting
- fleet-management
capability:
exposes:
- type: mcp
namespace: fleet-analytics
port: 8080
tools:
- name: refresh-fleet-report
description: "Trigger a Power BI dataset refresh for the fleet analytics workspace and post a distribution notification to the fleet management Teams channel when the updated report is available. Use when fleet telemetry data loads complete and stakeholders need fresh analytics."
inputParameters:
- name: workspace_id
in: body
type: string
description: "The Power BI workspace ID containing the fleet analytics dataset."
- name: dataset_id
in: body
type: string
description: "The Power BI dataset ID to refresh."
- name: report_url
in: body
type: string
description: "The URL of the Power BI fleet analytics report."
steps:
- name: trigger-refresh
type: call
call: "powerbi.trigger-refresh"
with:
workspace_id: "{{workspace_id}}"
dataset_id: "{{dataset_id}}"
- name: notify-team
type: call
call: "teams-fleet.send-message"
with:
channel: "fleet-management-analytics"
text: "Fleet Analytics Refreshed | Report: {{report_url}} | Dataset {{dataset_id}} is now updated with the latest data."
consumes:
- type: http
namespace: powerbi
baseUri: "https://api.powerbi.com/v1.0/myorg"
authentication:
type: bearer
token: "$secrets.powerbi_token"
resources:
- name: dataset-refreshes
path: "/groups/{{workspace_id}}/datasets/{{dataset_id}}/refreshes"
inputParameters:
- name: workspace_id
in: path
- name: dataset_id
in: path
operations:
- name: trigger-refresh
method: POST
- type: http
namespace: teams-fleet
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel_id
in: path
operations:
- name: send-message
method: POST
When Datadog detects abnormal patterns, creates SAP PM work order and alerts maintenance via Teams.
naftiko: "0.5"
info:
label: "Predictive Maintenance Alert"
description: "When Datadog detects abnormal patterns, creates SAP PM work order and alerts maintenance via Teams."
tags:
- manufacturing
- datadog
- sap
- microsoft-teams
- maintenance
capability:
exposes:
- type: mcp
namespace: manufacturing-ops
port: 8080
tools:
- name: predictive-maintenance-alert
description: "When Datadog detects abnormal patterns, creates SAP PM work order and alerts maintenance via Teams."
inputParameters:
- name: reference_id
in: body
type: string
description: "The reference identifier for this request."
- name: description
in: body
type: string
description: "Detailed description of the request."
- name: priority
in: body
type: string
description: "Priority level: high, medium, or low."
steps:
- name: create-primary-record
type: call
call: "servicenow.create-incident"
with:
short_description: "Predictive Maintenance Alert: {{reference_id}}"
urgency: "2"
description: "{{description}}"
- name: create-tracking-issue
type: call
call: "jira.create-issue"
with:
project_key: "OPS"
issuetype: "Task"
summary: "Predictive Maintenance Alert: {{reference_id}}"
description: "Incident: {{create-primary-record.number}} | {{description}}"
- name: notify-team
type: call
call: "msteams.post-message"
with:
channel_id: "$secrets.teams_manufacturing_channel_id"
text: "Predictive Maintenance Alert | Ref: {{reference_id}} | INC: {{create-primary-record.number}} | Jira: {{create-tracking-issue.key}}"
consumes:
- namespace: servicenow
type: http
baseUri: "https://toyota.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_username"
password: "$secrets.servicenow_password"
resources:
- name: incidents
path: "/table/incident"
operations:
- name: create-incident
method: POST
- namespace: jira
type: http
baseUri: "https://toyota.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
- namespace: msteams
type: http
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_bearer_token"
resources:
- name: channel-messages
path: "/teams/messages"
operations:
- name: post-message
method: POST
Monitors takt time via Datadog, logs deviations in SAP, and alerts production supervisor via Teams.
naftiko: "0.5"
info:
label: "Production Line Takt Time Monitoring"
description: "Monitors takt time via Datadog, logs deviations in SAP, and alerts production supervisor via Teams."
tags:
- production
- datadog
- sap
- microsoft-teams
- manufacturing
capability:
exposes:
- type: mcp
namespace: production-ops
port: 8080
tools:
- name: production-line-takt-time-monitoring
description: "Monitors takt time via Datadog, logs deviations in SAP, and alerts production supervisor via Teams."
inputParameters:
- name: reference_id
in: body
type: string
description: "The reference identifier for this request."
- name: description
in: body
type: string
description: "Detailed description of the request."
- name: priority
in: body
type: string
description: "Priority level: high, medium, or low."
steps:
- name: create-primary-record
type: call
call: "servicenow.create-incident"
with:
short_description: "Production Line Takt Time Monitoring: {{reference_id}}"
urgency: "2"
description: "{{description}}"
- name: create-tracking-issue
type: call
call: "jira.create-issue"
with:
project_key: "OPS"
issuetype: "Task"
summary: "Production Line Takt Time Monitoring: {{reference_id}}"
description: "Incident: {{create-primary-record.number}} | {{description}}"
- name: notify-team
type: call
call: "msteams.post-message"
with:
channel_id: "$secrets.teams_production_channel_id"
text: "Production Line Takt Time Monitoring | Ref: {{reference_id}} | INC: {{create-primary-record.number}} | Jira: {{create-tracking-issue.key}}"
consumes:
- namespace: servicenow
type: http
baseUri: "https://toyota.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_username"
password: "$secrets.servicenow_password"
resources:
- name: incidents
path: "/table/incident"
operations:
- name: create-incident
method: POST
- namespace: jira
type: http
baseUri: "https://toyota.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
- namespace: msteams
type: http
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_bearer_token"
resources:
- name: channel-messages
path: "/teams/messages"
operations:
- name: post-message
method: POST
Validates quality gate by pulling SAP QM results, checking Jira criteria, and posting status to Teams.
naftiko: "0.5"
info:
label: "Production Quality Gate Check"
description: "Validates quality gate by pulling SAP QM results, checking Jira criteria, and posting status to Teams."
tags:
- quality
- manufacturing
- sap
- jira
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: quality-ops
port: 8080
tools:
- name: production-quality-gate-check
description: "Validates quality gate by pulling SAP QM results, checking Jira criteria, and posting status to Teams."
inputParameters:
- name: reference_id
in: body
type: string
description: "The reference identifier for this request."
- name: description
in: body
type: string
description: "Detailed description of the request."
- name: priority
in: body
type: string
description: "Priority level: high, medium, or low."
steps:
- name: create-primary-record
type: call
call: "servicenow.create-incident"
with:
short_description: "Production Quality Gate Check: {{reference_id}}"
urgency: "2"
description: "{{description}}"
- name: create-tracking-issue
type: call
call: "jira.create-issue"
with:
project_key: "OPS"
issuetype: "Task"
summary: "Production Quality Gate Check: {{reference_id}}"
description: "Incident: {{create-primary-record.number}} | {{description}}"
- name: notify-team
type: call
call: "msteams.post-message"
with:
channel_id: "$secrets.teams_quality_channel_id"
text: "Production Quality Gate Check | Ref: {{reference_id}} | INC: {{create-primary-record.number}} | Jira: {{create-tracking-issue.key}}"
consumes:
- namespace: servicenow
type: http
baseUri: "https://toyota.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_username"
password: "$secrets.servicenow_password"
resources:
- name: incidents
path: "/table/incident"
operations:
- name: create-incident
method: POST
- namespace: jira
type: http
baseUri: "https://toyota.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
- namespace: msteams
type: http
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_bearer_token"
resources:
- name: channel-messages
path: "/teams/messages"
operations:
- name: post-message
method: POST
Initiates a vehicle quality defect investigation by creating a SAP quality notification, opening a Jira engineering ticket, and alerting the quality team via Teams.
naftiko: "0.5"
info:
label: "Quality Defect Investigation"
description: "Initiates a vehicle quality defect investigation by creating a SAP quality notification, opening a Jira engineering ticket, and alerting the quality team via Teams."
tags:
- quality
- sap
- jira
- microsoft-teams
- automotive
- manufacturing
capability:
exposes:
- type: mcp
namespace: quality-ops
port: 8080
tools:
- name: investigate-defect
description: "Given a defect description, affected model, and VIN range, create a SAP quality notification, open a Jira investigation, and alert quality via Teams."
inputParameters:
- name: defect_description
in: body
type: string
description: "Description of the quality defect."
- name: vehicle_model
in: body
type: string
description: "Vehicle model, e.g. 'Camry Hybrid'."
- name: vin_range
in: body
type: string
description: "Affected VIN range."
steps:
- name: create-qn
type: call
call: "sap-s4.create-qn"
with:
notification_type: "Q2"
description: "{{defect_description}}"
material: "{{vehicle_model}}"
- name: create-investigation
type: call
call: "jira.create-issue"
with:
project_key: "QA"
issuetype: "Bug"
summary: "Defect: {{vehicle_model}} - {{defect_description}}"
description: "QN: {{create-qn.number}} | VINs: {{vin_range}}"
- name: alert-quality
type: call
call: "msteams.post-message"
with:
channel_id: "$secrets.teams_quality_channel_id"
text: "DEFECT: {{vehicle_model}} | QN: {{create-qn.number}} | Jira: {{create-investigation.key}}"
consumes:
- namespace: sap-s4
type: http
baseUri: "https://toyota-s4.sap.com/sap/opu/odata/sap/API_QUALITYNOTIFICATION_SRV"
authentication:
type: basic
username: "$secrets.sap_s4_username"
password: "$secrets.sap_s4_password"
resources:
- name: quality-notifications
path: "/A_QualityNotification"
operations:
- name: create-qn
method: POST
- namespace: jira
type: http
baseUri: "https://toyota.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
- namespace: msteams
type: http
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_bearer_token"
resources:
- name: channel-messages
path: "/teams/messages"
operations:
- name: post-message
method: POST
Prepares for audit by collecting SharePoint documents, creating Jira checklist, and notifying compliance via Teams.
naftiko: "0.5"
info:
label: "Regulatory Audit Preparation Workflow"
description: "Prepares for audit by collecting SharePoint documents, creating Jira checklist, and notifying compliance via Teams."
tags:
- compliance
- sharepoint
- jira
- microsoft-teams
- audit
capability:
exposes:
- type: mcp
namespace: compliance-ops
port: 8080
tools:
- name: regulatory-audit-preparation-workflow
description: "Prepares for audit by collecting SharePoint documents, creating Jira checklist, and notifying compliance via Teams."
inputParameters:
- name: reference_id
in: body
type: string
description: "The reference identifier for this request."
- name: description
in: body
type: string
description: "Detailed description of the request."
- name: priority
in: body
type: string
description: "Priority level: high, medium, or low."
steps:
- name: create-primary-record
type: call
call: "servicenow.create-incident"
with:
short_description: "Regulatory Audit Preparation Workflow: {{reference_id}}"
urgency: "2"
description: "{{description}}"
- name: create-tracking-issue
type: call
call: "jira.create-issue"
with:
project_key: "OPS"
issuetype: "Task"
summary: "Regulatory Audit Preparation Workflow: {{reference_id}}"
description: "Incident: {{create-primary-record.number}} | {{description}}"
- name: notify-team
type: call
call: "msteams.post-message"
with:
channel_id: "$secrets.teams_compliance_channel_id"
text: "Regulatory Audit Preparation Workflow | Ref: {{reference_id}} | INC: {{create-primary-record.number}} | Jira: {{create-tracking-issue.key}}"
consumes:
- namespace: servicenow
type: http
baseUri: "https://toyota.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_username"
password: "$secrets.servicenow_password"
resources:
- name: incidents
path: "/table/incident"
operations:
- name: create-incident
method: POST
- namespace: jira
type: http
baseUri: "https://toyota.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
- namespace: msteams
type: http
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_bearer_token"
resources:
- name: channel-messages
path: "/teams/messages"
operations:
- name: post-message
method: POST
When safety incident reported, creates ServiceNow incident, SAP EHS notification, and alerts safety via Teams.
naftiko: "0.5"
info:
label: "Safety Incident Investigation Workflow"
description: "When safety incident reported, creates ServiceNow incident, SAP EHS notification, and alerts safety via Teams."
tags:
- safety
- servicenow
- sap
- microsoft-teams
- ehs
capability:
exposes:
- type: mcp
namespace: safety-ops
port: 8080
tools:
- name: safety-incident-investigation-workflow
description: "When safety incident reported, creates ServiceNow incident, SAP EHS notification, and alerts safety via Teams."
inputParameters:
- name: reference_id
in: body
type: string
description: "The reference identifier for this request."
- name: description
in: body
type: string
description: "Detailed description of the request."
- name: priority
in: body
type: string
description: "Priority level: high, medium, or low."
steps:
- name: create-primary-record
type: call
call: "servicenow.create-incident"
with:
short_description: "Safety Incident Investigation Workflow: {{reference_id}}"
urgency: "2"
description: "{{description}}"
- name: create-tracking-issue
type: call
call: "jira.create-issue"
with:
project_key: "OPS"
issuetype: "Task"
summary: "Safety Incident Investigation Workflow: {{reference_id}}"
description: "Incident: {{create-primary-record.number}} | {{description}}"
- name: notify-team
type: call
call: "msteams.post-message"
with:
channel_id: "$secrets.teams_safety_channel_id"
text: "Safety Incident Investigation Workflow | Ref: {{reference_id}} | INC: {{create-primary-record.number}} | Jira: {{create-tracking-issue.key}}"
consumes:
- namespace: servicenow
type: http
baseUri: "https://toyota.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_username"
password: "$secrets.servicenow_password"
resources:
- name: incidents
path: "/table/incident"
operations:
- name: create-incident
method: POST
- namespace: jira
type: http
baseUri: "https://toyota.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
- namespace: msteams
type: http
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_bearer_token"
resources:
- name: channel-messages
path: "/teams/messages"
operations:
- name: post-message
method: POST
Retrieves account details from Salesforce by account ID.
naftiko: "0.5"
info:
label: "Salesforce Account Lookup"
description: "Retrieves account details from Salesforce by account ID."
tags:
- sales
- salesforce
- lookup
capability:
exposes:
- type: mcp
namespace: sales
port: 8080
tools:
- name: salesforce-lookup
description: "Retrieves account details from Salesforce by account ID."
inputParameters:
- name: identifier
in: body
type: string
description: "The identifier for the lookup."
call: "sales.get-record"
with:
id: "{{identifier}}"
outputParameters:
- name: result
type: string
mapping: "$.result"
consumes:
- namespace: sales
type: http
baseUri: "https://toyota-s4.sap.com/api/v1"
authentication:
type: basic
username: "$secrets.sap_s4_username"
password: "$secrets.sap_s4_password"
resources:
- name: records
path: "/records"
operations:
- name: get-record
method: GET
Queries Salesforce for dealer or partner contracts expiring within 90 days, and posts a renewal priority list to the sales operations Microsoft Teams channel for proactive account management.
naftiko: "0.5"
info:
label: "Salesforce Contract Renewal Alert"
description: "Queries Salesforce for dealer or partner contracts expiring within 90 days, and posts a renewal priority list to the sales operations Microsoft Teams channel for proactive account management."
tags:
- sales
- crm
- salesforce
- microsoft-teams
- contract-management
capability:
exposes:
- type: mcp
namespace: crm-renewals
port: 8080
tools:
- name: alert-expiring-contracts
description: "Query Salesforce for active contracts expiring within the specified number of days and post a renewal alert to the sales ops Teams channel. Use for proactive dealer and partner contract renewal management across Toyota's distribution network."
inputParameters:
- name: days_to_expiry
in: body
type: integer
description: "Days ahead to scan for expiring contracts, typically 90."
steps:
- name: query-contracts
type: call
call: "salesforce-cntr.query-expiring"
with:
days_to_expiry: "{{days_to_expiry}}"
- name: post-alert
type: call
call: "teams-sops.send-message"
with:
channel: "sales-ops-contract-alerts"
text: "Contract Renewal Alert | Expiring in {{days_to_expiry}} days: {{query-contracts.total_size}} contracts | Total Value at Risk: {{query-contracts.total_value}} | Review renewal pipeline."
consumes:
- type: http
namespace: salesforce-cntr
baseUri: "https://toyota.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: contracts
path: "/query"
inputParameters:
- name: q
in: query
operations:
- name: query-expiring
method: GET
- type: http
namespace: teams-sops
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel_id
in: path
operations:
- name: send-message
method: POST
Creates a new Salesforce service case for a customer or dealer issue, assigns it to the correct product support queue, and sends a case acknowledgment via Microsoft 365.
naftiko: "0.5"
info:
label: "Salesforce Customer Case Creation and Routing"
description: "Creates a new Salesforce service case for a customer or dealer issue, assigns it to the correct product support queue, and sends a case acknowledgment via Microsoft 365."
tags:
- customer-support
- salesforce
- microsoft-365
- microsoft-teams
- case-management
capability:
exposes:
- type: mcp
namespace: customer-support
port: 8080
tools:
- name: create-service-case
description: "Create a Salesforce service case for a customer or Toyota dealer issue, assign it to the correct product support queue based on vehicle category, and send an email acknowledgment to the customer. Use for warranty claims, service escalations, and dealer support tickets."
inputParameters:
- name: account_id
in: body
type: string
description: "The Salesforce Account ID of the customer or dealer."
- name: subject
in: body
type: string
description: "Brief summary of the customer issue."
- name: description
in: body
type: string
description: "Full description of the issue."
- name: product_category
in: body
type: string
description: "Vehicle or product category for queue routing, e.g. Hybrid, Truck, Connected Services."
- name: customer_email
in: body
type: string
description: "Customer email address for acknowledgment."
steps:
- name: create-case
type: call
call: "salesforce-cases.create-case"
with:
account_id: "{{account_id}}"
subject: "{{subject}}"
description: "{{description}}"
product_category: "{{product_category}}"
- name: send-ack
type: call
call: "msgraph-ack.send-email"
with:
to: "{{customer_email}}"
subject: "Your Toyota Case {{create-case.case_number}} Has Been Received"
body: "Thank you for contacting Toyota. Your case number is {{create-case.case_number}}. Our support team will respond within 1 business day."
consumes:
- type: http
namespace: salesforce-cases
baseUri: "https://toyota.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: cases
path: "/sobjects/Case"
operations:
- name: create-case
method: POST
- type: http
namespace: msgraph-ack
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: user-mail
path: "/users/{{sender_upn}}/sendMail"
inputParameters:
- name: sender_upn
in: path
operations:
- name: send-email
method: POST
Retrieves a Salesforce dealer account record by account ID, returning open cases, contract status, and recent activity for the Toyota dealer network relationship management team.
naftiko: "0.5"
info:
label: "Salesforce Dealer Account Health Check"
description: "Retrieves a Salesforce dealer account record by account ID, returning open cases, contract status, and recent activity for the Toyota dealer network relationship management team."
tags:
- sales
- crm
- salesforce
- dealer-management
capability:
exposes:
- type: mcp
namespace: crm-dealers
port: 8080
tools:
- name: get-dealer-health
description: "Given a Salesforce account ID for a Toyota dealer, retrieve key health indicators including open support cases, active contracts, last activity date, and annual revenue. Use for dealer relationship reviews and network performance assessments."
inputParameters:
- name: account_id
in: body
type: string
description: "The Salesforce Account ID (18-character) for the dealer."
call: "salesforce-dealers.get-account"
with:
account_id: "{{account_id}}"
outputParameters:
- name: account_name
type: string
mapping: "$.Name"
- name: industry
type: string
mapping: "$.Industry"
- name: annual_revenue
type: string
mapping: "$.AnnualRevenue"
- name: open_cases
type: string
mapping: "$.Open_Cases__c"
consumes:
- type: http
namespace: salesforce-dealers
baseUri: "https://toyota.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 dealer account details from Salesforce by dealer code, returning name, region, and sales volume.
naftiko: "0.5"
info:
label: "Salesforce Dealer Account Lookup"
description: "Retrieves dealer account details from Salesforce by dealer code, returning name, region, and sales volume."
tags:
- sales
- salesforce
- dealer
- lookup
- automotive
capability:
exposes:
- type: mcp
namespace: sales-ops
port: 8080
tools:
- name: get-dealer-account
description: "Given a Salesforce dealer code, retrieve the dealer account record."
inputParameters:
- name: dealer_code
in: body
type: string
description: "Dealer code."
call: "salesforce.get-dealer"
with:
dealer_code: "{{dealer_code}}"
outputParameters:
- name: dealer_name
type: string
mapping: "$.records[0].Name"
- name: region
type: string
mapping: "$.records[0].Region__c"
consumes:
- namespace: salesforce
type: http
baseUri: "https://toyota.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_access_token"
resources:
- name: dealers
path: "/query"
operations:
- name: get-dealer
method: GET
When a new Toyota dealer Salesforce account is marked active, creates an onboarding case, notifies the dealer success team via Microsoft Teams, and opens a ServiceNow project task for system access provisioning.
naftiko: "0.5"
info:
label: "Salesforce Dealer Onboarding Case Kickoff"
description: "When a new Toyota dealer Salesforce account is marked active, creates an onboarding case, notifies the dealer success team via Microsoft Teams, and opens a ServiceNow project task for system access provisioning."
tags:
- sales
- crm
- salesforce
- servicenow
- microsoft-teams
- dealer-management
capability:
exposes:
- type: mcp
namespace: dealer-onboarding
port: 8080
tools:
- name: kickoff-dealer-onboarding
description: "Given a Salesforce account ID for a newly activated Toyota dealer, create a Salesforce onboarding case, open a ServiceNow project task for system provisioning, and notify the dealer success team via Teams. Use when new dealership agreements are finalized."
inputParameters:
- name: account_id
in: body
type: string
description: "The Salesforce Account ID of the newly activated dealer."
steps:
- name: get-account
type: call
call: "salesforce-dealer.get-account"
with:
account_id: "{{account_id}}"
- name: create-onboard-case
type: call
call: "salesforce-dealer.create-case"
with:
account_id: "{{account_id}}"
subject: "Dealer Onboarding: {{get-account.name}}"
category: "Dealer_Onboarding"
- name: open-servicenow-task
type: call
call: "servicenow-dealer.create-incident"
with:
short_description: "Dealer System Access: {{get-account.name}}"
category: "dealer_provisioning"
assignment_group: "Dealer_IT_Ops"
- name: notify-success
type: call
call: "teams-dealer.send-message"
with:
channel: "dealer-success-ops"
text: "Dealer Onboarding Started | {{get-account.name}} | Salesforce Case: {{create-onboard-case.case_number}} | ServiceNow Task: {{open-servicenow-task.number}}"
consumes:
- type: http
namespace: salesforce-dealer
baseUri: "https://toyota.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: accounts
path: "/sobjects/Account/{{account_id}}"
inputParameters:
- name: account_id
in: path
operations:
- name: get-account
method: GET
- name: cases
path: "/sobjects/Case"
operations:
- name: create-case
method: POST
- type: http
namespace: servicenow-dealer
baseUri: "https://toyota.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: teams-dealer
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel_id
in: path
operations:
- name: send-message
method: POST
Queries open Salesforce vehicle sales opportunities by region and stage, calculates pipeline value, and posts a weekly sales forecast digest to the regional sales Microsoft Teams channel.
naftiko: "0.5"
info:
label: "Salesforce Vehicle Sales Opportunity Pipeline Digest"
description: "Queries open Salesforce vehicle sales opportunities by region and stage, calculates pipeline value, and posts a weekly sales forecast digest to the regional sales Microsoft Teams channel."
tags:
- sales
- crm
- salesforce
- microsoft-teams
- reporting
capability:
exposes:
- type: mcp
namespace: sales-forecast
port: 8080
tools:
- name: digest-sales-pipeline
description: "Query open Salesforce vehicle sales opportunities filtered by sales region and stage. Calculate total pipeline value and post a weekly forecast digest to the regional sales Teams channel. Use for weekly sales reviews and quarterly forecast roll-ups."
inputParameters:
- name: sales_region
in: body
type: string
description: "The sales region to filter opportunities by, e.g. North America, Europe, Asia Pacific."
- name: stage_name
in: body
type: string
description: "The Salesforce opportunity stage to filter, e.g. Negotiation or Closed Won."
steps:
- name: query-opps
type: call
call: "salesforce-sales.query-opportunities"
with:
sales_region: "{{sales_region}}"
stage_name: "{{stage_name}}"
- name: post-digest
type: call
call: "teams-sales.send-message"
with:
channel: "regional-sales-forecast"
text: "Sales Pipeline | Region: {{sales_region}} | Stage: {{stage_name}} | Opportunities: {{query-opps.total_size}} | Total Value: {{query-opps.total_amount}}"
consumes:
- type: http
namespace: salesforce-sales
baseUri: "https://toyota.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: opportunities
path: "/query"
inputParameters:
- name: q
in: query
operations:
- name: query-opportunities
method: GET
- type: http
namespace: teams-sales
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel_id
in: path
operations:
- name: send-message
method: POST
Retrieves contract status and key terms from SAP Ariba by contract ID.
naftiko: "0.5"
info:
label: "SAP Ariba Contract Status Lookup"
description: "Retrieves contract status and key terms from SAP Ariba by contract ID."
tags:
- procurement
- sap-ariba
- contracts
- lookup
capability:
exposes:
- type: mcp
namespace: procurement
port: 8080
tools:
- name: get-ariba-contract
description: "Given a SAP Ariba contract ID, retrieve status, effective dates, and total value."
inputParameters:
- name: contract_id
in: body
type: string
description: "SAP Ariba contract ID."
call: "ariba.get-contract"
with:
contractId: "{{contract_id}}"
outputParameters:
- name: status
type: string
mapping: "$.Status"
- name: effective_date
type: string
mapping: "$.EffectiveDate"
consumes:
- namespace: ariba
type: http
baseUri: "https://openapi.ariba.com/api/contract-management/v1"
authentication:
type: bearer
token: "$secrets.ariba_access_token"
resources:
- name: contracts
path: "/contracts/{{contractId}}"
inputParameters:
- name: contractId
in: path
operations:
- name: get-contract
method: GET
Submits a new supplier onboarding request to SAP Ariba for a prospective parts or materials vendor, notifies the procurement team via Microsoft Teams, and creates a ServiceNow task for due diligence tracking.
naftiko: "0.5"
info:
label: "SAP Ariba Supplier Onboarding Request"
description: "Submits a new supplier onboarding request to SAP Ariba for a prospective parts or materials vendor, notifies the procurement team via Microsoft Teams, and creates a ServiceNow task for due diligence tracking."
tags:
- procurement
- sap-ariba
- servicenow
- microsoft-teams
- supplier-management
capability:
exposes:
- type: mcp
namespace: supplier-onboarding
port: 8080
tools:
- name: onboard-new-supplier
description: "Submit an SAP Ariba supplier onboarding request for a new automotive parts or materials vendor. Create a ServiceNow due diligence task and notify the procurement team via Teams. Use when new suppliers are identified for Toyota's supply chain."
inputParameters:
- name: supplier_name
in: body
type: string
description: "Legal name of the supplier company."
- name: supplier_category
in: body
type: string
description: "Spend category, e.g. Raw Materials, Electronics, Logistics."
- name: contact_email
in: body
type: string
description: "Primary supplier contact email address."
steps:
- name: submit-ariba-request
type: call
call: "ariba.create-supplier-request"
with:
name: "{{supplier_name}}"
category: "{{supplier_category}}"
contact_email: "{{contact_email}}"
- name: create-due-diligence
type: call
call: "servicenow-supplier.create-incident"
with:
short_description: "Supplier Due Diligence: {{supplier_name}}"
category: "supplier_onboarding"
assignment_group: "Procurement_Due_Diligence"
- name: notify-procurement
type: call
call: "teams-supply.send-message"
with:
channel: "procurement-supplier-ops"
text: "New Supplier Onboarding | {{supplier_name}} | Category: {{supplier_category}} | Ariba ID: {{submit-ariba-request.supplier_id}} | Due Diligence Task: {{create-due-diligence.number}}"
consumes:
- type: http
namespace: ariba
baseUri: "https://openapi.ariba.com/api/supplier/v1"
authentication:
type: bearer
token: "$secrets.ariba_token"
resources:
- name: supplier-requests
path: "/suppliers"
operations:
- name: create-supplier-request
method: POST
- type: http
namespace: servicenow-supplier
baseUri: "https://toyota.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: teams-supply
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel_id
in: path
operations:
- name: send-message
method: POST
Submits a business travel request in SAP Concur for an employee trip, links it to the SAP cost center, and sends a confirmation to the traveler via Microsoft Teams.
naftiko: "0.5"
info:
label: "SAP Concur Travel Request Submission"
description: "Submits a business travel request in SAP Concur for an employee trip, links it to the SAP cost center, and sends a confirmation to the traveler via Microsoft Teams."
tags:
- finance
- travel-management
- sap-concur
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: finance-travel
port: 8080
tools:
- name: submit-travel-request
description: "Submit a SAP Concur business travel request for a given employee trip. Provide trip name, destination, travel dates, and cost center. Sends a Teams confirmation to the traveler upon successful submission."
inputParameters:
- name: trip_name
in: body
type: string
description: "Trip name or business purpose."
- name: destination
in: body
type: string
description: "Travel destination city and country."
- name: start_date
in: body
type: string
description: "Trip start date in YYYY-MM-DD format."
- name: end_date
in: body
type: string
description: "Trip end date in YYYY-MM-DD format."
- name: traveler_email
in: body
type: string
description: "Corporate email of the traveler."
steps:
- name: submit-request
type: call
call: "concur.create-travel-request"
with:
name: "{{trip_name}}"
destination: "{{destination}}"
start_date: "{{start_date}}"
end_date: "{{end_date}}"
- name: confirm-traveler
type: call
call: "teams-travel.send-message"
with:
channel: "finance-travel-ops"
text: "Travel Request Submitted | {{trip_name}} | {{destination}} | {{start_date}} to {{end_date}} | Traveler: {{traveler_email}} | Request ID: {{submit-request.id}}"
consumes:
- type: http
namespace: concur
baseUri: "https://www.concursolutions.com/api/v3.0"
authentication:
type: bearer
token: "$secrets.concur_token"
resources:
- name: travel-requests
path: "/travelrequest/requests"
operations:
- name: create-travel-request
method: POST
- type: http
namespace: teams-travel
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel_id
in: path
operations:
- name: send-message
method: POST
Retrieves budget and actual expenditure data from SAP S/4HANA for a cost center and fiscal period, identifies variances, and posts a budget health summary to the finance Microsoft Teams channel.
naftiko: "0.5"
info:
label: "SAP Cost Center Budget vs. Actuals Variance Report"
description: "Retrieves budget and actual expenditure data from SAP S/4HANA for a cost center and fiscal period, identifies variances, and posts a budget health summary to the finance Microsoft Teams channel."
tags:
- finance
- budgeting
- sap
- microsoft-teams
- reporting
capability:
exposes:
- type: mcp
namespace: finance-budgets
port: 8080
tools:
- name: report-budget-variance
description: "Retrieve SAP cost center budget and actual spend for a given controlling area and fiscal period. Post a variance report to the finance Teams channel. Use for monthly budget governance and cost center accountability reviews."
inputParameters:
- name: controlling_area
in: body
type: string
description: "SAP controlling area code, e.g. 1000."
- name: cost_center
in: body
type: string
description: "SAP cost center code."
- name: fiscal_period
in: body
type: string
description: "Fiscal period in YYYYMM format."
steps:
- name: get-variance
type: call
call: "sap-co.get-actuals"
with:
controlling_area: "{{controlling_area}}"
cost_center: "{{cost_center}}"
fiscal_period: "{{fiscal_period}}"
- name: post-report
type: call
call: "teams-budget.send-message"
with:
channel: "finance-budget-review"
text: "Budget Variance | Cost Center: {{cost_center}} | Period: {{fiscal_period}} | Budget: {{get-variance.budget_amount}} | Actuals: {{get-variance.actual_amount}} | Variance: {{get-variance.variance_amount}} ({{get-variance.variance_pct}}%)"
consumes:
- type: http
namespace: sap-co
baseUri: "https://toyota-s4.sap.com/sap/opu/odata/sap/API_COSTCENTER_0101_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: cost-center-data
path: "/A_CostCenter(ControllingArea='{{controlling_area}}',CostCenter='{{cost_center}}')"
inputParameters:
- name: controlling_area
in: path
- name: cost_center
in: path
operations:
- name: get-actuals
method: GET
outputRawFormat: xml
- type: http
namespace: teams-budget
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel_id
in: path
operations:
- name: send-message
method: POST
Retrieves SAP period-close task completion data for a Toyota entity by company code and fiscal period, then posts a close progress summary to the finance Microsoft Teams channel.
naftiko: "0.5"
info:
label: "SAP Financial Period Close Status Monitor"
description: "Retrieves SAP period-close task completion data for a Toyota entity by company code and fiscal period, then posts a close progress summary to the finance Microsoft Teams channel."
tags:
- finance
- period-close
- sap
- microsoft-teams
- erp
capability:
exposes:
- type: mcp
namespace: finance-close
port: 8080
tools:
- name: monitor-period-close
description: "Given a SAP company code and fiscal period, retrieve the period-close task list completion status and post a summary to the finance channel. Use at month-end to track close progress across Toyota's global financial entities."
inputParameters:
- name: company_code
in: body
type: string
description: "SAP company code, e.g. 1000 for Toyota Motor North America."
- name: fiscal_period
in: body
type: string
description: "Fiscal period in YYYYMM format, e.g. 202503."
steps:
- name: get-close-status
type: call
call: "sap-fc.get-period-status"
with:
company_code: "{{company_code}}"
fiscal_period: "{{fiscal_period}}"
- name: post-summary
type: call
call: "teams-finclose.send-message"
with:
channel: "finance-period-close"
text: "Period Close Monitor | Company: {{company_code}} | Period: {{fiscal_period}} | Open Tasks: {{get-close-status.open_count}} | Completed: {{get-close-status.closed_count}} | Completion: {{get-close-status.completion_pct}}%"
consumes:
- type: http
namespace: sap-fc
baseUri: "https://toyota-s4.sap.com/sap/opu/odata/sap/API_FINANCEPERIODCLOSE_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: close-tasks
path: "/A_ClosingTaskCompletion"
inputParameters:
- name: company_code
in: query
- name: fiscal_period
in: query
operations:
- name: get-period-status
method: GET
outputRawFormat: xml
- type: http
namespace: teams-finclose
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel_id
in: path
operations:
- name: send-message
method: POST
Checks current inventory stock levels for a given material at a specified plant in SAP S/4HANA for Toyota Production System just-in-time operations.
naftiko: "0.5"
info:
label: "SAP Inventory Stock Level Check"
description: "Checks current inventory stock levels for a given material at a specified plant in SAP S/4HANA for Toyota Production System just-in-time operations."
tags:
- supply-chain
- sap
- sap-s4hana
- inventory
- automotive
capability:
exposes:
- type: mcp
namespace: supply-chain
port: 8080
tools:
- name: check-stock-level
description: "Given a material number and plant code, retrieve current stock quantities from SAP S/4HANA. Use for TPS just-in-time inventory verification."
inputParameters:
- name: material_number
in: body
type: string
description: "SAP material number."
- name: plant_code
in: body
type: string
description: "SAP plant code, e.g. 'TSUTSUMI-1000'."
call: "sap-s4.get-stock"
with:
Material: "{{material_number}}"
Plant: "{{plant_code}}"
outputParameters:
- name: unrestricted_stock
type: string
mapping: "$.d.MatlWrhsStkQtyInMatlBaseUnit"
- name: quality_stock
type: string
mapping: "$.d.QualityInspectionStockQty"
consumes:
- namespace: sap-s4
type: http
baseUri: "https://toyota-s4.sap.com/sap/opu/odata/sap/API_MATERIAL_STOCK_SRV"
authentication:
type: basic
username: "$secrets.sap_s4_username"
password: "$secrets.sap_s4_password"
resources:
- name: stock
path: "/A_MatlStkInAcctMod"
operations:
- name: get-stock
method: GET
Retrieves material master data from SAP S/4HANA by material number, returning description, unit of measure, and vehicle program assignment.
naftiko: "0.5"
info:
label: "SAP Material Master Lookup"
description: "Retrieves material master data from SAP S/4HANA by material number, returning description, unit of measure, and vehicle program assignment."
tags:
- procurement
- sap
- sap-s4hana
- lookup
- automotive
capability:
exposes:
- type: mcp
namespace: procurement
port: 8080
tools:
- name: get-material-master
description: "Given a SAP material number, retrieve material master data including description, base unit of measure, and material group from SAP S/4HANA."
inputParameters:
- name: material_number
in: body
type: string
description: "The SAP material number, e.g. 'MAT-CAMRY-BRK-001'."
call: "sap-s4.get-material"
with:
MaterialNumber: "{{material_number}}"
outputParameters:
- name: material_description
type: string
mapping: "$.d.MaterialDescription"
- name: base_unit
type: string
mapping: "$.d.BaseUnit"
- name: material_group
type: string
mapping: "$.d.MaterialGroup"
consumes:
- namespace: sap-s4
type: http
baseUri: "https://toyota-s4.sap.com/sap/opu/odata/sap/API_MATERIAL_MASTER_SRV"
authentication:
type: basic
username: "$secrets.sap_s4_username"
password: "$secrets.sap_s4_password"
resources:
- name: materials
path: "/A_Material('{MaterialNumber}')"
inputParameters:
- name: MaterialNumber
in: path
operations:
- name: get-material
method: GET
Runs MRP exception analysis, creates Jira procurement tasks, and alerts supply chain via Teams.
naftiko: "0.5"
info:
label: "SAP Material Requirements Planning Alert"
description: "Runs MRP exception analysis, creates Jira procurement tasks, and alerts supply chain via Teams."
tags:
- supply-chain
- sap
- jira
- microsoft-teams
- procurement
capability:
exposes:
- type: mcp
namespace: supply-chain-ops
port: 8080
tools:
- name: sap-material-requirements-planning-alert
description: "Runs MRP exception analysis, creates Jira procurement tasks, and alerts supply chain via Teams."
inputParameters:
- name: reference_id
in: body
type: string
description: "The reference identifier for this request."
- name: description
in: body
type: string
description: "Detailed description of the request."
- name: priority
in: body
type: string
description: "Priority level: high, medium, or low."
steps:
- name: create-primary-record
type: call
call: "servicenow.create-incident"
with:
short_description: "SAP Material Requirements Planning Alert: {{reference_id}}"
urgency: "2"
description: "{{description}}"
- name: create-tracking-issue
type: call
call: "jira.create-issue"
with:
project_key: "OPS"
issuetype: "Task"
summary: "SAP Material Requirements Planning Alert: {{reference_id}}"
description: "Incident: {{create-primary-record.number}} | {{description}}"
- name: notify-team
type: call
call: "msteams.post-message"
with:
channel_id: "$secrets.teams_supply-chain_channel_id"
text: "SAP Material Requirements Planning Alert | Ref: {{reference_id}} | INC: {{create-primary-record.number}} | Jira: {{create-tracking-issue.key}}"
consumes:
- namespace: servicenow
type: http
baseUri: "https://toyota.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_username"
password: "$secrets.servicenow_password"
resources:
- name: incidents
path: "/table/incident"
operations:
- name: create-incident
method: POST
- namespace: jira
type: http
baseUri: "https://toyota.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
- namespace: msteams
type: http
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_bearer_token"
resources:
- name: channel-messages
path: "/teams/messages"
operations:
- name: post-message
method: POST
Retrieves a plant maintenance work order from SAP.
naftiko: "0.5"
info:
label: "SAP Plant Maintenance Work Order Lookup"
description: "Retrieves a plant maintenance work order from SAP."
tags:
- manufacturing
- plant-maintenance
- sap
- lookup
capability:
exposes:
- type: mcp
namespace: manufacturing
port: 8080
tools:
- name: sap-lookup
description: "Retrieves a plant maintenance work order from SAP."
inputParameters:
- name: identifier
in: body
type: string
description: "The identifier for the lookup."
call: "manufacturing.get-record"
with:
id: "{{identifier}}"
outputParameters:
- name: result
type: string
mapping: "$.result"
consumes:
- namespace: manufacturing
type: http
baseUri: "https://toyota-s4.sap.com/api/v1"
authentication:
type: basic
username: "$secrets.sap_s4_username"
password: "$secrets.sap_s4_password"
resources:
- name: records
path: "/records"
operations:
- name: get-record
method: GET
Retrieves the status and progress of a vehicle production order from SAP S/4HANA by order number.
naftiko: "0.5"
info:
label: "SAP Production Order Status"
description: "Retrieves the status and progress of a vehicle production order from SAP S/4HANA by order number."
tags:
- production
- sap
- sap-s4hana
- automotive
- lookup
capability:
exposes:
- type: mcp
namespace: production
port: 8080
tools:
- name: get-production-order
description: "Given a SAP production order number, retrieve the order status, planned vs actual quantities, and scheduled dates."
inputParameters:
- name: order_number
in: body
type: string
description: "SAP production order number."
call: "sap-s4.get-prod-order"
with:
ManufacturingOrder: "{{order_number}}"
outputParameters:
- name: planned_qty
type: string
mapping: "$.d.MfgOrderPlannedTotalQty"
- name: actual_qty
type: string
mapping: "$.d.MfgOrderConfirmedYieldQty"
- name: status
type: string
mapping: "$.d.ManufacturingOrderStatus"
consumes:
- namespace: sap-s4
type: http
baseUri: "https://toyota-s4.sap.com/sap/opu/odata/sap/API_PRODUCTION_ORDER_2_SRV"
authentication:
type: basic
username: "$secrets.sap_s4_username"
password: "$secrets.sap_s4_password"
resources:
- name: production-orders
path: "/A_ProductionOrder_2('{ManufacturingOrder}')"
inputParameters:
- name: ManufacturingOrder
in: path
operations:
- name: get-prod-order
method: GET
Retrieves a SAP S/4HANA purchase order by PO number, returning header status, vendor name, total value, and currency for procurement and supply chain review.
naftiko: "0.5"
info:
label: "SAP Purchase Order Lookup"
description: "Retrieves a SAP S/4HANA purchase order by PO number, returning header status, vendor name, total value, and currency for procurement and supply chain review."
tags:
- finance
- procurement
- sap
- erp
- supply-chain
capability:
exposes:
- type: mcp
namespace: erp-procurement
port: 8080
tools:
- name: get-purchase-order
description: "Look up a SAP S/4HANA purchase order by PO number. Returns overall approval status, vendor name, total amount, and currency. Use for procurement approvals, goods receipt reconciliation, and supplier spend tracking in Toyota's global operations."
inputParameters:
- name: po_number
in: body
type: string
description: "The SAP purchase order number, e.g. 4500001234."
call: "sap-po.get-po"
with:
po_number: "{{po_number}}"
outputParameters:
- name: status
type: string
mapping: "$.d.OverallStatus"
- name: vendor
type: string
mapping: "$.d.Supplier.CompanyName"
- name: total_value
type: string
mapping: "$.d.TotalAmount"
- name: currency
type: string
mapping: "$.d.TransactionCurrency"
consumes:
- type: http
namespace: sap-po
baseUri: "https://toyota-s4.sap.com/sap/opu/odata/sap/MM_PUR_PO_MAINT_V2_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: purchase-orders
path: "/A_PurchaseOrder('{{po_number}}')"
inputParameters:
- name: po_number
in: path
operations:
- name: get-po
method: GET
outputRawFormat: xml
Fetches a supplier invoice from SAP S/4HANA by document number, retrieves payment and approval status, and posts a summary to the accounts payable Microsoft Teams channel for finance team review.
naftiko: "0.5"
info:
label: "SAP Supplier Invoice Approval and Status"
description: "Fetches a supplier invoice from SAP S/4HANA by document number, retrieves payment and approval status, and posts a summary to the accounts payable Microsoft Teams channel for finance team review."
tags:
- finance
- accounts-payable
- sap
- microsoft-teams
- erp
capability:
exposes:
- type: mcp
namespace: finance-ap
port: 8080
tools:
- name: get-invoice-status
description: "Given a SAP invoice document number and fiscal year, retrieve the invoice approval and payment status from SAP S/4HANA, and post a summary to the finance AP Teams channel. Use for invoice tracking and accounts payable reconciliation."
inputParameters:
- name: invoice_number
in: body
type: string
description: "The SAP Accounts Payable invoice document number."
- name: fiscal_year
in: body
type: string
description: "The fiscal year for the invoice, e.g. 2025."
steps:
- name: get-invoice
type: call
call: "sap-fi.get-invoice"
with:
invoice_number: "{{invoice_number}}"
fiscal_year: "{{fiscal_year}}"
- name: post-summary
type: call
call: "teams-ap.send-message"
with:
channel: "finance-ap-review"
text: "Invoice Status | Doc: {{invoice_number}} | FY: {{fiscal_year}} | Vendor: {{get-invoice.vendor_name}} | Amount: {{get-invoice.amount}} {{get-invoice.currency}} | Status: {{get-invoice.payment_status}}"
consumes:
- type: http
namespace: sap-fi
baseUri: "https://toyota-s4.sap.com/sap/opu/odata/sap/API_SUPPLIER_INVOICE_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: invoices
path: "/A_SupplierInvoice(FiscalYear='{{fiscal_year}}',SupplierInvoice='{{invoice_number}}')"
inputParameters:
- name: fiscal_year
in: path
- name: invoice_number
in: path
operations:
- name: get-invoice
method: GET
outputRawFormat: xml
- type: http
namespace: teams-ap
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel_id
in: path
operations:
- name: send-message
method: POST
Retrieves vendor master data from SAP S/4HANA by vendor ID, returning payment terms, currency, and compliance status for Toyota's global supply chain and procurement teams.
naftiko: "0.5"
info:
label: "SAP Vendor Master Lookup for Supply Chain"
description: "Retrieves vendor master data from SAP S/4HANA by vendor ID, returning payment terms, currency, and compliance status for Toyota's global supply chain and procurement teams."
tags:
- finance
- supply-chain
- sap
- vendor-management
- erp
capability:
exposes:
- type: mcp
namespace: supply-chain-vendors
port: 8080
tools:
- name: get-vendor-master
description: "Look up a SAP vendor master record by vendor ID. Returns vendor full name, payment terms, transaction currency, and tax classification. Use for supplier validation in Toyota's automotive parts procurement and global supply chain management."
inputParameters:
- name: vendor_id
in: body
type: string
description: "The SAP supplier/vendor ID for the parts or materials supplier."
call: "sap-vendor.get-vendor"
with:
vendor_id: "{{vendor_id}}"
outputParameters:
- name: vendor_name
type: string
mapping: "$.d.SupplierFullName"
- name: payment_terms
type: string
mapping: "$.d.PaymentTerms"
- name: currency
type: string
mapping: "$.d.Currency"
- name: country
type: string
mapping: "$.d.Country"
consumes:
- type: http
namespace: sap-vendor
baseUri: "https://toyota-s4.sap.com/sap/opu/odata/sap/API_SUPPLIER_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: suppliers
path: "/A_Supplier('{{vendor_id}}')"
inputParameters:
- name: vendor_id
in: path
operations:
- name: get-vendor
method: GET
outputRawFormat: xml
Retrieves vendor master data from SAP by vendor number, returning name, address, and payment terms.
naftiko: "0.5"
info:
label: "SAP Vendor Master Lookup"
description: "Retrieves vendor master data from SAP by vendor number, returning name, address, and payment terms."
tags:
- procurement
- sap
- sap-s4hana
- vendor
- lookup
capability:
exposes:
- type: mcp
namespace: procurement
port: 8080
tools:
- name: get-vendor
description: "Given a SAP vendor number, retrieve vendor master data including company name, payment terms, and country."
inputParameters:
- name: vendor_number
in: body
type: string
description: "SAP vendor number."
call: "sap-s4.get-vendor"
with:
Supplier: "{{vendor_number}}"
outputParameters:
- name: vendor_name
type: string
mapping: "$.d.SupplierName"
- name: payment_terms
type: string
mapping: "$.d.PaymentTerms"
- name: country
type: string
mapping: "$.d.Country"
consumes:
- namespace: sap-s4
type: http
baseUri: "https://toyota-s4.sap.com/sap/opu/odata/sap/API_BUSINESS_PARTNER"
authentication:
type: basic
username: "$secrets.sap_s4_username"
password: "$secrets.sap_s4_password"
resources:
- name: suppliers
path: "/A_Supplier('{Supplier}')"
inputParameters:
- name: Supplier
in: path
operations:
- name: get-vendor
method: GET
Retrieves IT asset details from ServiceNow CMDB by asset tag, returning owner, location, and lifecycle status.
naftiko: "0.5"
info:
label: "ServiceNow IT Asset Lookup"
description: "Retrieves IT asset details from ServiceNow CMDB by asset tag, returning owner, location, and lifecycle status."
tags:
- it-operations
- servicenow
- cmdb
- lookup
capability:
exposes:
- type: mcp
namespace: it-ops
port: 8080
tools:
- name: get-asset
description: "Given an IT asset tag, retrieve the asset record from ServiceNow CMDB including owner, location, and lifecycle status."
inputParameters:
- name: asset_tag
in: body
type: string
description: "The IT asset tag, e.g. 'TMC-LAP-00412'."
call: "servicenow.get-asset"
with:
asset_tag: "{{asset_tag}}"
outputParameters:
- name: owner
type: string
mapping: "$.result.assigned_to.display_value"
- name: location
type: string
mapping: "$.result.location.display_value"
- name: status
type: string
mapping: "$.result.install_status"
consumes:
- namespace: servicenow
type: http
baseUri: "https://toyota.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_username"
password: "$secrets.servicenow_password"
resources:
- name: assets
path: "/table/alm_hardware"
operations:
- name: get-asset
method: GET
When a P1 or P2 ServiceNow incident is opened for production systems, enriches it with CI details, escalates priority, assigns to the on-call group, and sends an immediate alert to the IT operations Microsoft Teams channel.
naftiko: "0.5"
info:
label: "ServiceNow Critical Incident Triage and Escalation"
description: "When a P1 or P2 ServiceNow incident is opened for production systems, enriches it with CI details, escalates priority, assigns to the on-call group, and sends an immediate alert to the IT operations Microsoft Teams channel."
tags:
- itsm
- incident-response
- servicenow
- microsoft-teams
- operations
capability:
exposes:
- type: mcp
namespace: itsm-ops
port: 8080
tools:
- name: triage-critical-incident
description: "Given a ServiceNow incident number, retrieve full details, escalate priority to P1, assign to the on-call ops group, and post a critical alert to the IT operations Teams channel. Use when production systems are impacted and immediate response is required."
inputParameters:
- name: incident_number
in: body
type: string
description: "The ServiceNow incident number, e.g. INC0012345."
- name: on_call_group
in: body
type: string
description: "The ServiceNow assignment group for escalation."
steps:
- name: get-incident
type: call
call: "servicenow-triage.get-incident"
with:
number: "{{incident_number}}"
- name: escalate-incident
type: call
call: "servicenow-triage.update-incident"
with:
sys_id: "{{get-incident.sys_id}}"
priority: "1"
assignment_group: "{{on_call_group}}"
- name: post-alert
type: call
call: "teams-itsm.send-message"
with:
channel: "it-operations-critical"
text: "P1 INCIDENT: {{incident_number}} | {{get-incident.short_description}} | Assigned to: {{on_call_group}} | Escalated and in triage."
consumes:
- type: http
namespace: servicenow-triage
baseUri: "https://toyota.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: incidents
path: "/table/incident"
inputParameters:
- name: number
in: query
operations:
- name: get-incident
method: GET
- name: incident-record
path: "/table/incident/{{sys_id}}"
inputParameters:
- name: sys_id
in: path
operations:
- name: update-incident
method: PATCH
- type: http
namespace: teams-itsm
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel_id
in: path
operations:
- name: send-message
method: POST
Retrieves a hardware asset record from the ServiceNow CMDB by asset tag, returning model, assigned user, location, and warranty status for IT asset lifecycle management.
naftiko: "0.5"
info:
label: "ServiceNow IT Asset Inventory Lookup"
description: "Retrieves a hardware asset record from the ServiceNow CMDB by asset tag, returning model, assigned user, location, and warranty status for IT asset lifecycle management."
tags:
- itsm
- asset-management
- servicenow
- cmdb
capability:
exposes:
- type: mcp
namespace: asset-management
port: 8080
tools:
- name: get-asset-record
description: "Look up a ServiceNow CMDB hardware asset by asset tag. Returns model, assigned user, physical location, and warranty expiration. Use for IT refresh planning, hardware audits, and helpdesk support escalations."
inputParameters:
- name: asset_tag
in: body
type: string
description: "The asset tag or serial number of the hardware item."
call: "servicenow-assets.get-asset"
with:
asset_tag: "{{asset_tag}}"
outputParameters:
- name: display_name
type: string
mapping: "$.result[0].display_name"
- name: assigned_to
type: string
mapping: "$.result[0].assigned_to.display_value"
- name: location
type: string
mapping: "$.result[0].location.display_value"
- name: model
type: string
mapping: "$.result[0].model_id.display_value"
consumes:
- type: http
namespace: servicenow-assets
baseUri: "https://toyota.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: hardware-assets
path: "/table/alm_hardware"
inputParameters:
- name: asset_tag
in: query
operations:
- name: get-asset
method: GET
Submits an IT infrastructure change request to the ServiceNow Change Advisory Board queue, notifies CAB members via Microsoft Teams, and records the approval outcome for audit purposes.
naftiko: "0.5"
info:
label: "ServiceNow IT Change Request CAB Approval"
description: "Submits an IT infrastructure change request to the ServiceNow Change Advisory Board queue, notifies CAB members via Microsoft Teams, and records the approval outcome for audit purposes."
tags:
- itsm
- change-management
- servicenow
- microsoft-teams
- approval
capability:
exposes:
- type: mcp
namespace: itsm-change
port: 8080
tools:
- name: submit-cab-change
description: "Submit a ServiceNow change request to the Change Advisory Board. Provide change description, risk level, and maintenance window. Notifies CAB members via Teams. Use before making any production infrastructure or connected vehicle platform changes."
inputParameters:
- name: change_title
in: body
type: string
description: "Short description of the proposed change."
- name: risk_level
in: body
type: string
description: "Risk level: low, medium, or high."
- name: planned_start
in: body
type: string
description: "Maintenance window start in ISO 8601 format."
- name: planned_end
in: body
type: string
description: "Maintenance window end in ISO 8601 format."
steps:
- name: create-change
type: call
call: "servicenow-chg.create-change"
with:
short_description: "{{change_title}}"
risk: "{{risk_level}}"
start_date: "{{planned_start}}"
end_date: "{{planned_end}}"
state: "scheduled"
- name: notify-cab
type: call
call: "teams-cab.send-message"
with:
channel: "it-change-advisory-board"
text: "CAB Change Request | {{change_title}} | CR#: {{create-change.number}} | Risk: {{risk_level}} | Window: {{planned_start}} — {{planned_end}} | Approval required."
consumes:
- type: http
namespace: servicenow-chg
baseUri: "https://toyota.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: change-requests
path: "/table/change_request"
operations:
- name: create-change
method: POST
- type: http
namespace: teams-cab
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel_id
in: path
operations:
- name: send-message
method: POST
When a plant operations incident is filed in ServiceNow, enriches it with the affected equipment CI details, escalates to the plant operations group, and posts an alert to the manufacturing operations Microsoft Teams channel.
naftiko: "0.5"
info:
label: "ServiceNow Manufacturing Plant Incident Response"
description: "When a plant operations incident is filed in ServiceNow, enriches it with the affected equipment CI details, escalates to the plant operations group, and posts an alert to the manufacturing operations Microsoft Teams channel."
tags:
- manufacturing
- itsm
- servicenow
- microsoft-teams
- incident-response
capability:
exposes:
- type: mcp
namespace: plant-ops
port: 8080
tools:
- name: handle-plant-incident
description: "Given a ServiceNow incident number for a manufacturing plant issue, retrieve incident and CI details, escalate priority, assign to the plant operations group, and post a real-time alert to the manufacturing ops Teams channel. Use for production line or equipment downtime events."
inputParameters:
- name: incident_number
in: body
type: string
description: "The ServiceNow incident number for the plant operations issue."
- name: plant_code
in: body
type: string
description: "Toyota plant facility code, e.g. TTC_GEORGETOWN or TMMK."
steps:
- name: get-incident
type: call
call: "servicenow-plant.get-incident"
with:
number: "{{incident_number}}"
- name: escalate
type: call
call: "servicenow-plant.update-incident"
with:
sys_id: "{{get-incident.sys_id}}"
priority: "1"
assignment_group: "Plant_Operations_{{plant_code}}"
- name: notify-plant-ops
type: call
call: "teams-plant.send-message"
with:
channel: "manufacturing-ops-alerts"
text: "PLANT INCIDENT: {{incident_number}} | Plant: {{plant_code}} | Issue: {{get-incident.short_description}} | Priority escalated — plant ops team notified."
consumes:
- type: http
namespace: servicenow-plant
baseUri: "https://toyota.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: incidents
path: "/table/incident"
inputParameters:
- name: number
in: query
operations:
- name: get-incident
method: GET
- name: incident-record
path: "/table/incident/{{sys_id}}"
inputParameters:
- name: sys_id
in: path
operations:
- name: update-incident
method: PATCH
- type: http
namespace: teams-plant
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel_id
in: path
operations:
- name: send-message
method: POST
Retrieves a quality document from SharePoint by document ID, returning content, version, and approval status.
naftiko: "0.5"
info:
label: "SharePoint Quality Document Retrieval"
description: "Retrieves a quality document from SharePoint by document ID, returning content, version, and approval status."
tags:
- quality
- sharepoint
- document-management
- automotive
capability:
exposes:
- type: mcp
namespace: quality
port: 8080
tools:
- name: get-quality-document
description: "Given a SharePoint document ID, retrieve the quality document including title, version, and approval status."
inputParameters:
- name: document_id
in: body
type: string
description: "SharePoint document ID."
call: "sharepoint.get-document"
with:
item_id: "{{document_id}}"
outputParameters:
- name: title
type: string
mapping: "$.d.Title"
- name: version
type: string
mapping: "$.d.UIVersionLabel"
consumes:
- namespace: sharepoint
type: http
baseUri: "https://toyota.sharepoint.com/_api"
authentication:
type: bearer
token: "$secrets.sharepoint_access_token"
resources:
- name: documents
path: "/web/lists/getbytitle('QualityDocs')/items({{item_id}})"
inputParameters:
- name: item_id
in: path
operations:
- name: get-document
method: GET
Searches Splunk for security events matching a given query within a specified time range.
naftiko: "0.5"
info:
label: "Splunk Security Event Search"
description: "Searches Splunk for security events matching a given query within a specified time range."
tags:
- security
- splunk
- search
- monitoring
capability:
exposes:
- type: mcp
namespace: security
port: 8080
tools:
- name: search-security-events
description: "Given a Splunk search query and time range, execute the search and return matching events."
inputParameters:
- name: search_query
in: body
type: string
description: "Splunk SPL search query."
- name: time_range
in: body
type: string
description: "Time range, e.g. '-24h'."
call: "splunk.create-search"
with:
search: "{{search_query}}"
earliest_time: "{{time_range}}"
outputParameters:
- name: sid
type: string
mapping: "$.sid"
consumes:
- namespace: splunk
type: http
baseUri: "https://splunk.toyota.com:8089/services"
authentication:
type: bearer
token: "$secrets.splunk_token"
resources:
- name: searches
path: "/search/jobs"
operations:
- name: create-search
method: POST
When Datadog detects abnormal vibration, creates SAP PM work order and alerts maintenance via Teams.
naftiko: "0.5"
info:
label: "Stamping Press Predictive Maintenance"
description: "When Datadog detects abnormal vibration, creates SAP PM work order and alerts maintenance via Teams."
tags:
- manufacturing
- datadog
- sap
- microsoft-teams
- maintenance
capability:
exposes:
- type: mcp
namespace: manufacturing-ops
port: 8080
tools:
- name: stamping-press-predictive-maintenance
description: "When Datadog detects abnormal vibration, creates SAP PM work order and alerts maintenance via Teams."
inputParameters:
- name: reference_id
in: body
type: string
description: "The reference identifier for this request."
- name: description
in: body
type: string
description: "Detailed description of the request."
- name: priority
in: body
type: string
description: "Priority level: high, medium, or low."
steps:
- name: create-primary-record
type: call
call: "servicenow.create-incident"
with:
short_description: "Stamping Press Predictive Maintenance: {{reference_id}}"
urgency: "2"
description: "{{description}}"
- name: create-tracking-issue
type: call
call: "jira.create-issue"
with:
project_key: "OPS"
issuetype: "Task"
summary: "Stamping Press Predictive Maintenance: {{reference_id}}"
description: "Incident: {{create-primary-record.number}} | {{description}}"
- name: notify-team
type: call
call: "msteams.post-message"
with:
channel_id: "$secrets.teams_manufacturing_channel_id"
text: "Stamping Press Predictive Maintenance | Ref: {{reference_id}} | INC: {{create-primary-record.number}} | Jira: {{create-tracking-issue.key}}"
consumes:
- namespace: servicenow
type: http
baseUri: "https://toyota.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_username"
password: "$secrets.servicenow_password"
resources:
- name: incidents
path: "/table/incident"
operations:
- name: create-incident
method: POST
- namespace: jira
type: http
baseUri: "https://toyota.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
- namespace: msteams
type: http
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_bearer_token"
resources:
- name: channel-messages
path: "/teams/messages"
operations:
- name: post-message
method: POST
Onboards a new supplier by creating a SAP vendor record, Salesforce account, ServiceNow task, and notifying procurement via Teams.
naftiko: "0.5"
info:
label: "Supplier Onboarding Orchestration"
description: "Onboards a new supplier by creating a SAP vendor record, Salesforce account, ServiceNow task, and notifying procurement via Teams."
tags:
- procurement
- sap
- salesforce
- servicenow
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: procurement-ops
port: 8080
tools:
- name: supplier-onboarding-orchestration
description: "Onboards a new supplier by creating a SAP vendor record, Salesforce account, ServiceNow task, and notifying procurement via Teams."
inputParameters:
- name: reference_id
in: body
type: string
description: "The reference identifier for this request."
- name: description
in: body
type: string
description: "Detailed description of the request."
- name: priority
in: body
type: string
description: "Priority level: high, medium, or low."
steps:
- name: create-primary-record
type: call
call: "servicenow.create-incident"
with:
short_description: "Supplier Onboarding Orchestration: {{reference_id}}"
urgency: "2"
description: "{{description}}"
- name: create-tracking-issue
type: call
call: "jira.create-issue"
with:
project_key: "OPS"
issuetype: "Task"
summary: "Supplier Onboarding Orchestration: {{reference_id}}"
description: "Incident: {{create-primary-record.number}} | {{description}}"
- name: notify-team
type: call
call: "msteams.post-message"
with:
channel_id: "$secrets.teams_procurement_channel_id"
text: "Supplier Onboarding Orchestration | Ref: {{reference_id}} | INC: {{create-primary-record.number}} | Jira: {{create-tracking-issue.key}}"
consumes:
- namespace: servicenow
type: http
baseUri: "https://toyota.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_username"
password: "$secrets.servicenow_password"
resources:
- name: incidents
path: "/table/incident"
operations:
- name: create-incident
method: POST
- namespace: jira
type: http
baseUri: "https://toyota.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
- namespace: msteams
type: http
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_bearer_token"
resources:
- name: channel-messages
path: "/teams/messages"
operations:
- name: post-message
method: POST
Initiates a supplier quality audit by pulling vendor data from SAP, creating a Jira task, and notifying quality via Teams.
naftiko: "0.5"
info:
label: "Supplier Quality Audit Workflow"
description: "Initiates a supplier quality audit by pulling vendor data from SAP, creating a Jira task, and notifying quality via Teams."
tags:
- quality
- supply-chain
- sap
- jira
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: quality-ops
port: 8080
tools:
- name: supplier-quality-audit-workflow
description: "Initiates a supplier quality audit by pulling vendor data from SAP, creating a Jira task, and notifying quality via Teams."
inputParameters:
- name: reference_id
in: body
type: string
description: "The reference identifier for this request."
- name: description
in: body
type: string
description: "Detailed description of the request."
- name: priority
in: body
type: string
description: "Priority level: high, medium, or low."
steps:
- name: create-primary-record
type: call
call: "servicenow.create-incident"
with:
short_description: "Supplier Quality Audit Workflow: {{reference_id}}"
urgency: "2"
description: "{{description}}"
- name: create-tracking-issue
type: call
call: "jira.create-issue"
with:
project_key: "OPS"
issuetype: "Task"
summary: "Supplier Quality Audit Workflow: {{reference_id}}"
description: "Incident: {{create-primary-record.number}} | {{description}}"
- name: notify-team
type: call
call: "msteams.post-message"
with:
channel_id: "$secrets.teams_quality_channel_id"
text: "Supplier Quality Audit Workflow | Ref: {{reference_id}} | INC: {{create-primary-record.number}} | Jira: {{create-tracking-issue.key}}"
consumes:
- namespace: servicenow
type: http
baseUri: "https://toyota.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_username"
password: "$secrets.servicenow_password"
resources:
- name: incidents
path: "/table/incident"
operations:
- name: create-incident
method: POST
- namespace: jira
type: http
baseUri: "https://toyota.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
- namespace: msteams
type: http
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_bearer_token"
resources:
- name: channel-messages
path: "/teams/messages"
operations:
- name: post-message
method: POST
When a supply chain disruption is detected, creates a Jira incident, flags SAP purchase orders, and notifies procurement via Teams.
naftiko: "0.5"
info:
label: "Supply Chain Disruption Alert"
description: "When a supply chain disruption is detected, creates a Jira incident, flags SAP purchase orders, and notifies procurement via Teams."
tags:
- supply-chain
- jira
- sap
- microsoft-teams
- procurement
capability:
exposes:
- type: mcp
namespace: supply-chain-ops
port: 8080
tools:
- name: supply-chain-disruption-alert
description: "When a supply chain disruption is detected, creates a Jira incident, flags SAP purchase orders, and notifies procurement via Teams."
inputParameters:
- name: reference_id
in: body
type: string
description: "The reference identifier for this request."
- name: description
in: body
type: string
description: "Detailed description of the request."
- name: priority
in: body
type: string
description: "Priority level: high, medium, or low."
steps:
- name: create-primary-record
type: call
call: "servicenow.create-incident"
with:
short_description: "Supply Chain Disruption Alert: {{reference_id}}"
urgency: "2"
description: "{{description}}"
- name: create-tracking-issue
type: call
call: "jira.create-issue"
with:
project_key: "OPS"
issuetype: "Task"
summary: "Supply Chain Disruption Alert: {{reference_id}}"
description: "Incident: {{create-primary-record.number}} | {{description}}"
- name: notify-team
type: call
call: "msteams.post-message"
with:
channel_id: "$secrets.teams_supply-chain_channel_id"
text: "Supply Chain Disruption Alert | Ref: {{reference_id}} | INC: {{create-primary-record.number}} | Jira: {{create-tracking-issue.key}}"
consumes:
- namespace: servicenow
type: http
baseUri: "https://toyota.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_username"
password: "$secrets.servicenow_password"
resources:
- name: incidents
path: "/table/incident"
operations:
- name: create-incident
method: POST
- namespace: jira
type: http
baseUri: "https://toyota.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
- namespace: msteams
type: http
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_bearer_token"
resources:
- name: channel-messages
path: "/teams/messages"
operations:
- name: post-message
method: POST
Triggers a refresh of a Tableau analytics dashboard by workbook ID.
naftiko: "0.5"
info:
label: "Tableau Dashboard Refresh"
description: "Triggers a refresh of a Tableau analytics dashboard by workbook ID."
tags:
- analytics
- tableau
- automotive
- dashboard
capability:
exposes:
- type: mcp
namespace: analytics
port: 8080
tools:
- name: refresh-dashboard
description: "Given a Tableau workbook ID, trigger an extract refresh."
inputParameters:
- name: workbook_id
in: body
type: string
description: "Tableau workbook ID."
call: "tableau.refresh-workbook"
with:
workbook_id: "{{workbook_id}}"
outputParameters:
- name: job_id
type: string
mapping: "$.job.id"
- name: status
type: string
mapping: "$.job.status"
consumes:
- namespace: tableau
type: http
baseUri: "https://tableau.toyota.com/api/3.19"
authentication:
type: bearer
token: "$secrets.tableau_access_token"
resources:
- name: workbooks
path: "/sites/toyota/workbooks/{{workbook_id}}/refresh"
inputParameters:
- name: workbook_id
in: path
operations:
- name: refresh-workbook
method: POST
Checks SAP PM for calibration due dates, creates ServiceNow reminders, and alerts tool managers via Teams.
naftiko: "0.5"
info:
label: "Tooling Calibration Due Alert"
description: "Checks SAP PM for calibration due dates, creates ServiceNow reminders, and alerts tool managers via Teams."
tags:
- manufacturing
- sap
- servicenow
- microsoft-teams
- tooling
capability:
exposes:
- type: mcp
namespace: manufacturing-ops
port: 8080
tools:
- name: tooling-calibration-due-alert
description: "Checks SAP PM for calibration due dates, creates ServiceNow reminders, and alerts tool managers via Teams."
inputParameters:
- name: reference_id
in: body
type: string
description: "The reference identifier for this request."
- name: description
in: body
type: string
description: "Detailed description of the request."
- name: priority
in: body
type: string
description: "Priority level: high, medium, or low."
steps:
- name: create-primary-record
type: call
call: "servicenow.create-incident"
with:
short_description: "Tooling Calibration Due Alert: {{reference_id}}"
urgency: "2"
description: "{{description}}"
- name: create-tracking-issue
type: call
call: "jira.create-issue"
with:
project_key: "OPS"
issuetype: "Task"
summary: "Tooling Calibration Due Alert: {{reference_id}}"
description: "Incident: {{create-primary-record.number}} | {{description}}"
- name: notify-team
type: call
call: "msteams.post-message"
with:
channel_id: "$secrets.teams_manufacturing_channel_id"
text: "Tooling Calibration Due Alert | Ref: {{reference_id}} | INC: {{create-primary-record.number}} | Jira: {{create-tracking-issue.key}}"
consumes:
- namespace: servicenow
type: http
baseUri: "https://toyota.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_username"
password: "$secrets.servicenow_password"
resources:
- name: incidents
path: "/table/incident"
operations:
- name: create-incident
method: POST
- namespace: jira
type: http
baseUri: "https://toyota.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
- namespace: msteams
type: http
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_bearer_token"
resources:
- name: channel-messages
path: "/teams/messages"
operations:
- name: post-message
method: POST
Verifies emissions compliance from SAP QM data, checks SharePoint limits, and logs in ServiceNow.
naftiko: "0.5"
info:
label: "Vehicle Emissions Compliance Check"
description: "Verifies emissions compliance from SAP QM data, checks SharePoint limits, and logs in ServiceNow."
tags:
- compliance
- sap
- sharepoint
- servicenow
- automotive
capability:
exposes:
- type: mcp
namespace: compliance-ops
port: 8080
tools:
- name: vehicle-emissions-compliance-check
description: "Verifies emissions compliance from SAP QM data, checks SharePoint limits, and logs in ServiceNow."
inputParameters:
- name: reference_id
in: body
type: string
description: "The reference identifier for this request."
- name: description
in: body
type: string
description: "Detailed description of the request."
- name: priority
in: body
type: string
description: "Priority level: high, medium, or low."
steps:
- name: create-primary-record
type: call
call: "servicenow.create-incident"
with:
short_description: "Vehicle Emissions Compliance Check: {{reference_id}}"
urgency: "2"
description: "{{description}}"
- name: create-tracking-issue
type: call
call: "jira.create-issue"
with:
project_key: "OPS"
issuetype: "Task"
summary: "Vehicle Emissions Compliance Check: {{reference_id}}"
description: "Incident: {{create-primary-record.number}} | {{description}}"
- name: notify-team
type: call
call: "msteams.post-message"
with:
channel_id: "$secrets.teams_compliance_channel_id"
text: "Vehicle Emissions Compliance Check | Ref: {{reference_id}} | INC: {{create-primary-record.number}} | Jira: {{create-tracking-issue.key}}"
consumes:
- namespace: servicenow
type: http
baseUri: "https://toyota.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_username"
password: "$secrets.servicenow_password"
resources:
- name: incidents
path: "/table/incident"
operations:
- name: create-incident
method: POST
- namespace: jira
type: http
baseUri: "https://toyota.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
- namespace: msteams
type: http
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_bearer_token"
resources:
- name: channel-messages
path: "/teams/messages"
operations:
- name: post-message
method: POST
Manages recall by identifying VINs in Salesforce, creating SAP quality notification, and alerting recall team via Teams.
naftiko: "0.5"
info:
label: "Vehicle Recall Notification Workflow"
description: "Manages recall by identifying VINs in Salesforce, creating SAP quality notification, and alerting recall team via Teams."
tags:
- quality
- salesforce
- sap
- microsoft-teams
- automotive
capability:
exposes:
- type: mcp
namespace: quality-ops
port: 8080
tools:
- name: vehicle-recall-notification-workflow
description: "Manages recall by identifying VINs in Salesforce, creating SAP quality notification, and alerting recall team via Teams."
inputParameters:
- name: reference_id
in: body
type: string
description: "The reference identifier for this request."
- name: description
in: body
type: string
description: "Detailed description of the request."
- name: priority
in: body
type: string
description: "Priority level: high, medium, or low."
steps:
- name: create-primary-record
type: call
call: "servicenow.create-incident"
with:
short_description: "Vehicle Recall Notification Workflow: {{reference_id}}"
urgency: "2"
description: "{{description}}"
- name: create-tracking-issue
type: call
call: "jira.create-issue"
with:
project_key: "OPS"
issuetype: "Task"
summary: "Vehicle Recall Notification Workflow: {{reference_id}}"
description: "Incident: {{create-primary-record.number}} | {{description}}"
- name: notify-team
type: call
call: "msteams.post-message"
with:
channel_id: "$secrets.teams_quality_channel_id"
text: "Vehicle Recall Notification Workflow | Ref: {{reference_id}} | INC: {{create-primary-record.number}} | Jira: {{create-tracking-issue.key}}"
consumes:
- namespace: servicenow
type: http
baseUri: "https://toyota.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_username"
password: "$secrets.servicenow_password"
resources:
- name: incidents
path: "/table/incident"
operations:
- name: create-incident
method: POST
- namespace: jira
type: http
baseUri: "https://toyota.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
- namespace: msteams
type: http
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_bearer_token"
resources:
- name: channel-messages
path: "/teams/messages"
operations:
- name: post-message
method: POST
Compiles vendor scorecard from SAP data, aggregates in Snowflake, and publishes to Tableau.
naftiko: "0.5"
info:
label: "Vendor Performance Scorecard Generation"
description: "Compiles vendor scorecard from SAP data, aggregates in Snowflake, and publishes to Tableau."
tags:
- supply-chain
- sap
- snowflake
- tableau
- analytics
capability:
exposes:
- type: mcp
namespace: supply-chain-ops
port: 8080
tools:
- name: vendor-performance-scorecard-generation
description: "Compiles vendor scorecard from SAP data, aggregates in Snowflake, and publishes to Tableau."
inputParameters:
- name: reference_id
in: body
type: string
description: "The reference identifier for this request."
- name: description
in: body
type: string
description: "Detailed description of the request."
- name: priority
in: body
type: string
description: "Priority level: high, medium, or low."
steps:
- name: create-primary-record
type: call
call: "servicenow.create-incident"
with:
short_description: "Vendor Performance Scorecard Generation: {{reference_id}}"
urgency: "2"
description: "{{description}}"
- name: create-tracking-issue
type: call
call: "jira.create-issue"
with:
project_key: "OPS"
issuetype: "Task"
summary: "Vendor Performance Scorecard Generation: {{reference_id}}"
description: "Incident: {{create-primary-record.number}} | {{description}}"
- name: notify-team
type: call
call: "msteams.post-message"
with:
channel_id: "$secrets.teams_supply-chain_channel_id"
text: "Vendor Performance Scorecard Generation | Ref: {{reference_id}} | INC: {{create-primary-record.number}} | Jira: {{create-tracking-issue.key}}"
consumes:
- namespace: servicenow
type: http
baseUri: "https://toyota.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_username"
password: "$secrets.servicenow_password"
resources:
- name: incidents
path: "/table/incident"
operations:
- name: create-incident
method: POST
- namespace: jira
type: http
baseUri: "https://toyota.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
- namespace: msteams
type: http
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_bearer_token"
resources:
- name: channel-messages
path: "/teams/messages"
operations:
- name: post-message
method: POST
Processes a compensation adjustment for a Toyota employee in Workday, updates their base salary, and notifies the HR business partner and line manager via Microsoft Teams.
naftiko: "0.5"
info:
label: "Workday Compensation Change Processing"
description: "Processes a compensation adjustment for a Toyota employee in Workday, updates their base salary, and notifies the HR business partner and line manager via Microsoft Teams."
tags:
- hr
- compensation
- workday
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: hr-compensation
port: 8080
tools:
- name: process-comp-change
description: "Submit a salary change for a Workday employee — update base pay and reason code, then notify the HR business partner and manager via Teams. Use for merit increases, market adjustments, and promotional pay changes across Toyota's global workforce."
inputParameters:
- name: workday_employee_id
in: body
type: string
description: "The Workday worker ID of the employee receiving the compensation change."
- name: new_salary
in: body
type: number
description: "New annual base salary in local currency."
- name: effective_date
in: body
type: string
description: "Effective date of the change in YYYY-MM-DD format."
- name: reason_code
in: body
type: string
description: "Compensation change reason, e.g. Merit, Promotion, MarketAdjustment."
steps:
- name: update-comp
type: call
call: "workday-comp.update-compensation"
with:
worker_id: "{{workday_employee_id}}"
new_salary: "{{new_salary}}"
effective_date: "{{effective_date}}"
reason: "{{reason_code}}"
- name: notify-hrbp
type: call
call: "teams-comp.send-message"
with:
channel: "hr-total-rewards-ops"
text: "Compensation Change Processed | Employee: {{workday_employee_id}} | New Salary: {{new_salary}} | Effective: {{effective_date}} | Reason: {{reason_code}} | Transaction: {{update-comp.transaction_id}}"
consumes:
- type: http
namespace: workday-comp
baseUri: "https://wd2-impl-services1.workday.com/ccx/api/v1"
authentication:
type: bearer
token: "$secrets.workday_token"
resources:
- name: compensation
path: "/toyota/workers/{{worker_id}}/compensation"
inputParameters:
- name: worker_id
in: path
operations:
- name: update-compensation
method: PUT
- type: http
namespace: teams-comp
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel_id
in: path
operations:
- name: send-message
method: POST
Retrieves an employee profile from Workday by employee ID, returning name, title, department, and manager.
naftiko: "0.5"
info:
label: "Workday Employee Profile Lookup"
description: "Retrieves an employee profile from Workday by employee ID, returning name, title, department, and manager."
tags:
- hr
- workday
- lookup
- employee
capability:
exposes:
- type: mcp
namespace: hr-ops
port: 8080
tools:
- name: get-employee-profile
description: "Given a Workday employee ID, retrieve the employee profile including full name, job title, and department."
inputParameters:
- name: employee_id
in: body
type: string
description: "The Workday employee ID."
call: "workday.get-worker"
with:
worker_id: "{{employee_id}}"
outputParameters:
- name: full_name
type: string
mapping: "$.Worker.Name"
- name: job_title
type: string
mapping: "$.Worker.Position.Title"
- name: department
type: string
mapping: "$.Worker.Organization.Name"
consumes:
- namespace: workday
type: http
baseUri: "https://wd5-impl-services1.workday.com/ccx/api/v1/toyota"
authentication:
type: bearer
token: "$secrets.workday_bearer_token"
resources:
- name: workers
path: "/workers/{{worker_id}}"
inputParameters:
- name: worker_id
in: path
operations:
- name: get-worker
method: GET
Exports active employee headcount grouped by department and cost center from Workday, providing a real-time workforce snapshot for HR and finance planning across Toyota Motor Corporation entities.
naftiko: "0.5"
info:
label: "Workday Headcount Report by Cost Center"
description: "Exports active employee headcount grouped by department and cost center from Workday, providing a real-time workforce snapshot for HR and finance planning across Toyota Motor Corporation entities."
tags:
- hr
- reporting
- workday
- headcount
- finance
capability:
exposes:
- type: mcp
namespace: hr-reporting
port: 8080
tools:
- name: get-headcount-snapshot
description: "Return active employee headcount grouped by department and cost center from Workday for Toyota Motor Corporation. Use for quarterly headcount reviews, budget reconciliation, and workforce planning across global business units."
call: "workday-rpt.get-headcount"
outputParameters:
- name: employees
type: array
mapping: "$.Report_Entry"
items:
- name: employee_id
type: string
mapping: "$.Employee_ID"
- name: full_name
type: string
mapping: "$.Worker"
- name: cost_center
type: string
mapping: "$.Cost_Center"
- name: department
type: string
mapping: "$.Department"
- name: location
type: string
mapping: "$.Location"
consumes:
- type: http
namespace: workday-rpt
baseUri: "https://wd2-impl-services1.workday.com/ccx/service/customreport2"
authentication:
type: basic
username: "$secrets.workday_report_user"
password: "$secrets.workday_report_password"
resources:
- name: headcount-report
path: "/toyota/headcount_by_cost_center"
operations:
- name: get-headcount
method: GET
outputRawFormat: json
Creates a Workday job requisition for an approved engineering headcount, links it to the R&D cost center and hiring manager, and posts a notification to the talent acquisition Microsoft Teams channel.
naftiko: "0.5"
info:
label: "Workday Job Requisition Creation for Engineering Roles"
description: "Creates a Workday job requisition for an approved engineering headcount, links it to the R&D cost center and hiring manager, and posts a notification to the talent acquisition Microsoft Teams channel."
tags:
- hr
- recruiting
- workday
- microsoft-teams
- talent-acquisition
capability:
exposes:
- type: mcp
namespace: hr-recruiting
port: 8080
tools:
- name: create-engineering-requisition
description: "Create a Workday job requisition for an approved engineering or R&D position. Provide job title, department, location, and hiring manager ID. Notifies the TA team in Teams. Use when headcount is approved for Toyota's engineering and product development teams."
inputParameters:
- name: job_title
in: body
type: string
description: "Job title for the open engineering position."
- name: department
in: body
type: string
description: "Workday department ID, e.g. Vehicle Development or Connected Technology."
- name: location
in: body
type: string
description: "Work location, e.g. Plano TX, Toyota City Japan, Ann Arbor MI."
- name: hiring_manager_id
in: body
type: string
description: "Workday worker ID of the hiring manager."
steps:
- name: create-req
type: call
call: "workday-req.create-requisition"
with:
job_title: "{{job_title}}"
department: "{{department}}"
location: "{{location}}"
hiring_manager_id: "{{hiring_manager_id}}"
- name: notify-ta
type: call
call: "teams-ta.send-message"
with:
channel: "talent-acquisition"
text: "Engineering Requisition Created | {{job_title}} | Dept: {{department}} | Location: {{location}} | Req ID: {{create-req.requisition_id}}"
consumes:
- type: http
namespace: workday-req
baseUri: "https://wd2-impl-services1.workday.com/ccx/api/v1"
authentication:
type: bearer
token: "$secrets.workday_token"
resources:
- name: job-requisitions
path: "/toyota/jobRequisitions"
operations:
- name: create-requisition
method: POST
- type: http
namespace: teams-ta
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel_id
in: path
operations:
- name: send-message
method: POST
Initiates a Workday annual performance review cycle for a given management organization, notifies impacted managers via Microsoft Teams, and opens a ServiceNow HR task for HR ops tracking.
naftiko: "0.5"
info:
label: "Workday Performance Review Cycle Kickoff"
description: "Initiates a Workday annual performance review cycle for a given management organization, notifies impacted managers via Microsoft Teams, and opens a ServiceNow HR task for HR ops tracking."
tags:
- hr
- performance-management
- workday
- servicenow
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: hr-performance
port: 8080
tools:
- name: kickoff-review-cycle
description: "Start a Workday performance review cycle for a management unit and named review period. Notify managers via Teams and create a ServiceNow HR tracking task. Use at the start of annual or mid-year performance review seasons."
inputParameters:
- name: management_unit_id
in: body
type: string
description: "Workday management unit (organization) ID for the review cycle."
- name: review_period
in: body
type: string
description: "Human-readable review period label, e.g. 2025 Annual Review."
steps:
- name: create-cycle
type: call
call: "workday-perf.create-review-cycle"
with:
management_unit_id: "{{management_unit_id}}"
review_period: "{{review_period}}"
- name: notify-managers
type: call
call: "teams-perf.send-message"
with:
channel: "hr-announcements"
text: "Performance Review Cycle Started | Period: {{review_period}} | Unit: {{management_unit_id}} | Cycle ID: {{create-cycle.cycle_id}} | Submission deadline in 30 days."
- name: open-hr-task
type: call
call: "servicenow-perf.create-incident"
with:
short_description: "Track completion of {{review_period}} performance reviews"
category: "hr_performance"
assignment_group: "HR_Operations"
consumes:
- type: http
namespace: workday-perf
baseUri: "https://wd2-impl-services1.workday.com/ccx/api/v1"
authentication:
type: bearer
token: "$secrets.workday_token"
resources:
- name: review-cycles
path: "/toyota/performanceManagement/reviewCycles"
operations:
- name: create-review-cycle
method: POST
- type: http
namespace: teams-perf
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel_id
in: path
operations:
- name: send-message
method: POST
- type: http
namespace: servicenow-perf
baseUri: "https://toyota.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
Retrieves the current time-off balance for an employee from Workday by employee ID.
naftiko: "0.5"
info:
label: "Workday Time Off Balance Check"
description: "Retrieves the current time-off balance for an employee from Workday by employee ID."
tags:
- hr
- workday
- time-off
- lookup
capability:
exposes:
- type: mcp
namespace: hr-ops
port: 8080
tools:
- name: get-time-off-balance
description: "Given a Workday employee ID, retrieve current time-off balances."
inputParameters:
- name: employee_id
in: body
type: string
description: "Workday employee ID."
call: "workday.get-time-off"
with:
worker_id: "{{employee_id}}"
outputParameters:
- name: vacation_balance
type: string
mapping: "$.TimeOffBalance.Vacation"
- name: sick_balance
type: string
mapping: "$.TimeOffBalance.Sick"
consumes:
- namespace: workday
type: http
baseUri: "https://wd5-impl-services1.workday.com/ccx/api/v1/toyota"
authentication:
type: bearer
token: "$secrets.workday_bearer_token"
resources:
- name: time-off
path: "/workers/{{worker_id}}/timeOffBalances"
inputParameters:
- name: worker_id
in: path
operations:
- name: get-time-off
method: GET
Retrieves a pending Workday time-off request, validates the employee's leave balance, and either processes the approval or escalates to the manager with a Microsoft Teams notification.
naftiko: "0.5"
info:
label: "Workday Time-Off Request Processing"
description: "Retrieves a pending Workday time-off request, validates the employee's leave balance, and either processes the approval or escalates to the manager with a Microsoft Teams notification."
tags:
- hr
- time-off
- workday
- microsoft-teams
- approval
capability:
exposes:
- type: mcp
namespace: hr-leave
port: 8080
tools:
- name: process-time-off-request
description: "Given a Workday time-off request ID, retrieve request details and the employee's available leave balance, and post an approval notification to the HR approvals Teams channel for manager action. Use for automated leave request intake and routing."
inputParameters:
- name: request_id
in: body
type: string
description: "The Workday time-off request ID to process."
steps:
- name: get-request
type: call
call: "workday-leave.get-time-off-request"
with:
request_id: "{{request_id}}"
- name: notify-approver
type: call
call: "teams-leave.send-message"
with:
channel: "hr-leave-approvals"
text: "Time-Off Request | Employee: {{get-request.employee_name}} | Dates: {{get-request.start_date}} to {{get-request.end_date}} | Days: {{get-request.total_days}} | Available Balance: {{get-request.available_balance}} days | Action required."
consumes:
- type: http
namespace: workday-leave
baseUri: "https://wd2-impl-services1.workday.com/ccx/api/v1"
authentication:
type: bearer
token: "$secrets.workday_token"
resources:
- name: time-off-requests
path: "/toyota/timeOff/{{request_id}}"
inputParameters:
- name: request_id
in: path
operations:
- name: get-time-off-request
method: GET
- type: http
namespace: teams-leave
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel_id
in: path
operations:
- name: send-message
method: POST
Generates workforce capacity report from Workday headcount, Jira demand, and publishes to Tableau.
naftiko: "0.5"
info:
label: "Workforce Capacity Planning Report"
description: "Generates workforce capacity report from Workday headcount, Jira demand, and publishes to Tableau."
tags:
- hr
- workday
- jira
- tableau
- analytics
capability:
exposes:
- type: mcp
namespace: hr-ops
port: 8080
tools:
- name: workforce-capacity-planning-report
description: "Generates workforce capacity report from Workday headcount, Jira demand, and publishes to Tableau."
inputParameters:
- name: reference_id
in: body
type: string
description: "The reference identifier for this request."
- name: description
in: body
type: string
description: "Detailed description of the request."
- name: priority
in: body
type: string
description: "Priority level: high, medium, or low."
steps:
- name: create-primary-record
type: call
call: "servicenow.create-incident"
with:
short_description: "Workforce Capacity Planning Report: {{reference_id}}"
urgency: "2"
description: "{{description}}"
- name: create-tracking-issue
type: call
call: "jira.create-issue"
with:
project_key: "OPS"
issuetype: "Task"
summary: "Workforce Capacity Planning Report: {{reference_id}}"
description: "Incident: {{create-primary-record.number}} | {{description}}"
- name: notify-team
type: call
call: "msteams.post-message"
with:
channel_id: "$secrets.teams_hr_channel_id"
text: "Workforce Capacity Planning Report | Ref: {{reference_id}} | INC: {{create-primary-record.number}} | Jira: {{create-tracking-issue.key}}"
consumes:
- namespace: servicenow
type: http
baseUri: "https://toyota.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_username"
password: "$secrets.servicenow_password"
resources:
- name: incidents
path: "/table/incident"
operations:
- name: create-incident
method: POST
- namespace: jira
type: http
baseUri: "https://toyota.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
- namespace: msteams
type: http
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_bearer_token"
resources:
- name: channel-messages
path: "/teams/messages"
operations:
- name: post-message
method: POST