Toyota Motor Corporation Capabilities

Naftiko 0.5 capability definitions for Toyota Motor Corporation - 100 capabilities showing integration workflows and service orchestrations.

Sort
Expand

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