NVIDIA Capabilities

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

Sort
Expand

Before deploying a new AI model version, checks GitHub Actions test status, verifies Datadog SLO compliance, and requires a passing ServiceNow change request.

naftiko: "0.5"
info:
  label: "AI Model Deployment Release Gate"
  description: "Before deploying a new AI model version, checks GitHub Actions test status, verifies Datadog SLO compliance, and requires a passing ServiceNow change request."
  tags:
    - devops
    - ai
    - github
    - datadog
    - servicenow
    - release-management
capability:
  exposes:
    - type: mcp
      namespace: ai-release-ops
      port: 8080
      tools:
        - name: validate-model-release
          description: "Given a GitHub repository, commit SHA, and ServiceNow change number, validate that CI tests pass, SLO compliance is met in Datadog, and the change request is approved before releasing an AI model. Use as a pre-deployment gate."
          inputParameters:
            - name: repository
              in: body
              type: string
              description: "The GitHub repository containing the AI model code."
            - name: commit_sha
              in: body
              type: string
              description: "The commit SHA to validate for release."
            - name: change_number
              in: body
              type: string
              description: "The ServiceNow change request number for this deployment."
            - name: datadog_monitor_id
              in: body
              type: string
              description: "The Datadog SLO monitor ID to check for compliance."
          steps:
            - name: check-ci-status
              type: call
              call: "github.get-commit-status"
              with:
                owner: "nvidia"
                repo: "{{repository}}"
                ref: "{{commit_sha}}"
            - name: check-slo
              type: call
              call: "datadog.get-monitor"
              with:
                monitor_id: "{{datadog_monitor_id}}"
            - name: get-change-approval
              type: call
              call: "servicenow.get-change-request"
              with:
                number: "{{change_number}}"
  consumes:
    - type: http
      namespace: github
      baseUri: "https://api.github.com"
      authentication:
        type: bearer
        token: "$secrets.github_token"
      resources:
        - name: commit-statuses
          path: "/repos/{{owner}}/{{repo}}/commits/{{ref}}/status"
          inputParameters:
            - name: owner
              in: path
            - name: repo
              in: path
            - name: ref
              in: path
          operations:
            - name: get-commit-status
              method: GET
    - type: http
      namespace: datadog
      baseUri: "https://api.datadoghq.com/api/v1"
      authentication:
        type: apikey
        key: "DD-API-KEY"
        value: "$secrets.datadog_api_key"
        placement: header
      resources:
        - name: monitors
          path: "/monitor/{{monitor_id}}"
          inputParameters:
            - name: monitor_id
              in: path
          operations:
            - name: get-monitor
              method: GET
    - type: http
      namespace: servicenow
      baseUri: "https://nvidia.service-now.com/api/now"
      authentication:
        type: basic
        username: "$secrets.servicenow_user"
        password: "$secrets.servicenow_password"
      resources:
        - name: change-requests
          path: "/table/change_request"
          inputParameters:
            - name: number
              in: query
          operations:
            - name: get-change-request
              method: GET

Submits a change request in ServiceNow for a planned infrastructure change, waits for approval state, and unblocks or blocks the deployment pipeline.

naftiko: "0.5"
info:
  label: "Change Management Approval Gate"
  description: "Submits a change request in ServiceNow for a planned infrastructure change, waits for approval state, and unblocks or blocks the deployment pipeline."
  tags:
    - itsm
    - change-management
    - servicenow
    - devops
capability:
  exposes:
    - type: mcp
      namespace: change-management
      port: 8080
      tools:
        - name: submit-change-request
          description: "Given a change description, risk level, and planned start/end dates, create a ServiceNow change request and return its number and approval state. Use as a deployment gate before releasing to production."
          inputParameters:
            - name: short_description
              in: body
              type: string
              description: "Brief description of the planned infrastructure change."
            - name: risk_level
              in: body
              type: string
              description: "Risk level of the change: 'low', 'medium', or 'high'."
            - name: planned_start
              in: body
              type: string
              description: "Planned start date/time in ISO 8601 format."
            - name: planned_end
              in: body
              type: string
              description: "Planned end date/time in ISO 8601 format."
          call: "servicenow.create-change-request"
          with:
            short_description: "{{short_description}}"
            risk: "{{risk_level}}"
            start_date: "{{planned_start}}"
            end_date: "{{planned_end}}"
          outputParameters:
            - name: change_number
              type: string
              mapping: "$.result.number"
            - name: state
              type: string
              mapping: "$.result.state"
  consumes:
    - type: http
      namespace: servicenow
      baseUri: "https://nvidia.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-request
              method: POST

On a GitHub Actions pipeline failure on a protected branch, creates a Jira bug, posts a Datadog event marker, and alerts the engineering Slack channel.

naftiko: "0.5"
info:
  label: "CI/CD Pipeline Failure Response"
  description: "On a GitHub Actions pipeline failure on a protected branch, creates a Jira bug, posts a Datadog event marker, and alerts the engineering Slack channel."
  tags:
    - devops
    - ci-cd
    - github
    - jira
    - datadog
    - slack
    - incident-response
capability:
  exposes:
    - type: mcp
      namespace: devops-ops
      port: 8080
      tools:
        - name: handle-pipeline-failure
          description: "Given a GitHub Actions pipeline failure event, create a Jira bug in the ENG project, post a Datadog event marker, and alert the #engineering-alerts Slack channel with full context."
          inputParameters:
            - name: pipeline_id
              in: body
              type: string
              description: "The GitHub Actions workflow run ID."
            - name: repository
              in: body
              type: string
              description: "The GitHub repository full name (e.g., 'nvidia/cuda-toolkit')."
            - name: branch
              in: body
              type: string
              description: "The branch name that triggered the failure."
            - name: failed_job
              in: body
              type: string
              description: "Name of the failed workflow job."
            - name: commit_sha
              in: body
              type: string
              description: "The commit SHA that triggered the run."
            - name: log_url
              in: body
              type: string
              description: "URL to the full pipeline failure log."
          steps:
            - name: create-jira-bug
              type: call
              call: "jira.create-issue"
              with:
                project_key: "ENG"
                issuetype: "Bug"
                summary: "[CI Failure] {{repository}} / {{branch}} — {{failed_job}}"
                description: "Pipeline: {{pipeline_id}}\nBranch: {{branch}}\nCommit: {{commit_sha}}\nLog: {{log_url}}"
            - name: post-datadog-event
              type: call
              call: "datadog.create-event"
              with:
                title: "CI Failure: {{repository}} {{branch}}"
                text: "Job {{failed_job}} failed. Commit: {{commit_sha}}"
                alert_type: "error"
                source_type_name: "github"
            - name: notify-slack
              type: call
              call: "slack.post-message"
              with:
                channel: "engineering-alerts"
                text: "Pipeline Failure: {{repository}} | Branch: {{branch}} | Job: {{failed_job}} | Jira: {{create-jira-bug.key}} | Log: {{log_url}}"
  consumes:
    - type: http
      namespace: jira
      baseUri: "https://nvidia.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: datadog
      baseUri: "https://api.datadoghq.com/api/v1"
      authentication:
        type: apikey
        key: "DD-API-KEY"
        value: "$secrets.datadog_api_key"
        placement: header
      resources:
        - name: events
          path: "/events"
          operations:
            - name: create-event
              method: POST
    - type: http
      namespace: slack
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token"
      resources:
        - name: messages
          path: "/chat.postMessage"
          operations:
            - name: post-message
              method: POST

Publishes a generated technical document or release note to a Confluence space and notifies the relevant Microsoft Teams channel.

naftiko: "0.5"
info:
  label: "Confluence Documentation Publisher"
  description: "Publishes a generated technical document or release note to a Confluence space and notifies the relevant Microsoft Teams channel."
  tags:
    - communication
    - confluence
    - microsoft-teams
    - documentation
capability:
  exposes:
    - type: mcp
      namespace: docs-publishing
      port: 8080
      tools:
        - name: publish-doc-to-confluence
          description: "Given a Confluence space key, parent page ID, title, and content, create a new Confluence page and notify the designated Teams channel. Use for publishing release notes, architecture docs, or runbooks."
          inputParameters:
            - name: space_key
              in: body
              type: string
              description: "The Confluence space key (e.g., 'CUDA')."
            - name: parent_page_id
              in: body
              type: string
              description: "The Confluence page ID of the parent under which to publish."
            - name: title
              in: body
              type: string
              description: "The title of the new Confluence page."
            - name: content
              in: body
              type: string
              description: "The page body content in Confluence storage format or markdown."
            - name: teams_channel_id
              in: body
              type: string
              description: "The Microsoft Teams channel ID to notify after publishing."
          steps:
            - name: create-confluence-page
              type: call
              call: "confluence.create-page"
              with:
                space_key: "{{space_key}}"
                parent_page_id: "{{parent_page_id}}"
                title: "{{title}}"
                content: "{{content}}"
            - name: notify-teams
              type: call
              call: "msteams.post-channel-message"
              with:
                channel_id: "{{teams_channel_id}}"
                text: "New doc published: {{title}} — {{create-confluence-page.webui_url}}"
  consumes:
    - type: http
      namespace: confluence
      baseUri: "https://nvidia.atlassian.net/wiki/rest/api"
      authentication:
        type: basic
        username: "$secrets.confluence_user"
        password: "$secrets.confluence_api_token"
      resources:
        - name: pages
          path: "/content"
          operations:
            - name: create-page
              method: POST
    - type: http
      namespace: msteams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: channel-messages
          path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
          inputParameters:
            - name: team_id
              in: path
            - name: channel_id
              in: path
          operations:
            - name: post-channel-message
              method: POST

When a Datadog monitor alert fires, automatically creates a ServiceNow incident with alert details and assigns it to the on-call team.

naftiko: "0.5"
info:
  label: "Datadog Alert to ServiceNow Incident Bridge"
  description: "When a Datadog monitor alert fires, automatically creates a ServiceNow incident with alert details and assigns it to the on-call team."
  tags:
    - observability
    - datadog
    - servicenow
    - incident-response
capability:
  exposes:
    - type: mcp
      namespace: alert-bridge
      port: 8080
      tools:
        - name: bridge-alert-to-incident
          description: "Given a Datadog monitor alert payload (monitor ID, state, message), create a corresponding ServiceNow incident and return the incident number. Use to automatically convert monitoring alerts into tracked incidents."
          inputParameters:
            - name: monitor_id
              in: body
              type: string
              description: "The Datadog monitor ID that fired."
            - name: monitor_name
              in: body
              type: string
              description: "Human-readable name of the Datadog monitor."
            - name: alert_message
              in: body
              type: string
              description: "The alert message body from Datadog."
            - name: environment
              in: body
              type: string
              description: "Affected environment (e.g., 'prod', 'staging')."
          steps:
            - name: get-monitor-details
              type: call
              call: "datadog.get-monitor"
              with:
                monitor_id: "{{monitor_id}}"
            - name: create-servicenow-incident
              type: call
              call: "servicenow.create-incident"
              with:
                short_description: "Alert: {{monitor_name}} in {{environment}}"
                description: "{{alert_message}}\nDatadog Monitor ID: {{monitor_id}}"
                urgency: "1"
                category: "monitoring"
  consumes:
    - type: http
      namespace: datadog
      baseUri: "https://api.datadoghq.com/api/v1"
      authentication:
        type: apikey
        key: "DD-API-KEY"
        value: "$secrets.datadog_api_key"
        placement: header
      resources:
        - name: monitors
          path: "/monitor/{{monitor_id}}"
          inputParameters:
            - name: monitor_id
              in: path
          operations:
            - name: get-monitor
              method: GET
    - type: http
      namespace: servicenow
      baseUri: "https://nvidia.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

When Datadog detects high CUDA compilation latency, creates a Jira P1 and notifies the CUDA team in Slack.

naftiko: "0.5"
info:
  label: "Datadog CUDA Compilation Latency Alert"
  description: "When Datadog detects high CUDA compilation latency, creates a Jira P1 and notifies the CUDA team in Slack."
  tags:
    - engineering
    - datadog
    - jira
    - slack
capability:
  exposes:
    - type: mcp
      namespace: cuda-perf
      port: 8080
      tools:
        - name: handle-compilation-alert
          description: "Given a Datadog monitor ID for CUDA compilation latency, create a Jira P1 and notify the CUDA team."
          inputParameters:
            - name: monitor_id
              in: body
              type: integer
              description: "Datadog monitor ID."
          steps:
            - name: get-monitor
              type: call
              call: dd-cuda.get-monitor
              with:
                monitor_id: "{{monitor_id}}"
            - name: create-p1
              type: call
              call: jira-cuda.create-issue
              with:
                project_key: "CUDA"
                issuetype: "Incident"
                summary: "P1: CUDA compilation latency — {{get-monitor.name}}"
                priority: "Highest"
            - name: notify-cuda
              type: call
              call: slack-cuda.post-message
              with:
                channel: "cuda-engineering"
                text: "COMPILATION ALERT: {{get-monitor.name}} | Jira: {{create-p1.key}}"
  consumes:
    - type: http
      namespace: dd-cuda
      baseUri: "https://api.datadoghq.com/api/v1"
      authentication:
        type: apikey
        key: "DD-API-KEY"
        value: "$secrets.datadog_api_key"
        placement: header
      resources:
        - name: monitors
          path: "/monitor/{{monitor_id}}"
          inputParameters:
            - name: monitor_id
              in: path
          operations:
            - name: get-monitor
              method: GET
    - type: http
      namespace: jira-cuda
      baseUri: "https://nvidia.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: slack-cuda
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token"
      resources:
        - name: messages
          path: "/chat.postMessage"
          operations:
            - name: post-message
              method: POST

Generates a weekly SLO compliance digest for DGX clusters from Datadog and posts it to the infrastructure Slack channel.

naftiko: "0.5"
info:
  label: "Datadog DGX Cluster SLO Weekly Digest"
  description: "Generates a weekly SLO compliance digest for DGX clusters from Datadog and posts it to the infrastructure Slack channel."
  tags:
    - infrastructure
    - datadog
    - slack
    - slo
capability:
  exposes:
    - type: mcp
      namespace: dgx-slo
      port: 8080
      tools:
        - name: handle-dgx-slo-digest
          description: "Given a Datadog SLO ID, generate a weekly DGX cluster SLO digest and post to Slack."
          inputParameters:
            - name: slo_id
              in: body
              type: string
              description: "Datadog SLO ID for DGX cluster."
          steps:
            - name: get-slo
              type: call
              call: dd-dgx.get-slo-history
              with:
                slo_id: "{{slo_id}}"
            - name: post-digest
              type: call
              call: slack-infra.post-message
              with:
                channel: "infrastructure"
                text: "DGX SLO Weekly: Target: {{get-slo.target}}% | Actual: {{get-slo.overall_status}} | Budget: {{get-slo.error_budget_remaining}}%"
  consumes:
    - type: http
      namespace: dd-dgx
      baseUri: "https://api.datadoghq.com/api/v1"
      authentication:
        type: apikey
        key: "DD-API-KEY"
        value: "$secrets.datadog_api_key"
        placement: header
      resources:
        - name: slo
          path: "/slo/{{slo_id}}/history"
          inputParameters:
            - name: slo_id
              in: path
          operations:
            - name: get-slo-history
              method: GET
    - type: http
      namespace: slack-infra
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token"
      resources:
        - name: messages
          path: "/chat.postMessage"
          operations:
            - name: post-message
              method: POST

Queries Datadog for current GPU cluster utilization metrics across data center hosts.

naftiko: "0.5"
info:
  label: "Datadog GPU Cluster Utilization Check"
  description: "Queries Datadog for current GPU cluster utilization metrics across data center hosts."
  tags:
    - infrastructure
    - datadog
    - gpu
capability:
  exposes:
    - type: mcp
      namespace: gpu-infra
      port: 8080
      tools:
        - name: get-gpu-utilization
          description: "Given a cluster name, return GPU utilization metrics from Datadog. Use for capacity planning and workload scheduling."
          inputParameters:
            - name: cluster_name
              in: body
              type: string
              description: "GPU cluster name to query."
          call: "dd-gpu.get-metrics"
          with:
            query: "avg:gpu.utilization{cluster:{{cluster_name}}}"
          outputParameters:
            - name: series
              type: array
              mapping: "$.series"
  consumes:
    - type: http
      namespace: dd-gpu
      baseUri: "https://api.datadoghq.com/api/v1"
      authentication:
        type: apikey
        key: "DD-API-KEY"
        value: "$secrets.datadog_api_key"
        placement: header
      resources:
        - name: metrics
          path: "/query"
          inputParameters:
            - name: query
              in: query
          operations:
            - name: get-metrics
              method: GET

When Datadog detects GPU driver crashes, creates a Jira bug and notifies the driver team in Slack.

naftiko: "0.5"
info:
  label: "Datadog GPU Driver Crash Handler"
  description: "When Datadog detects GPU driver crashes, creates a Jira bug and notifies the driver team in Slack."
  tags:
    - drivers
    - datadog
    - jira
    - slack
capability:
  exposes:
    - type: mcp
      namespace: driver-crash
      port: 8080
      tools:
        - name: handle-driver-crash
          description: "Given a Datadog monitor ID for driver crashes, create a Jira bug and notify the driver team."
          inputParameters:
            - name: monitor_id
              in: body
              type: integer
              description: "Datadog monitor ID."
            - name: driver_version
              in: body
              type: string
              description: "GPU driver version."
          steps:
            - name: get-monitor
              type: call
              call: dd-driver.get-monitor
              with:
                monitor_id: "{{monitor_id}}"
            - name: create-bug
              type: call
              call: jira-driver.create-issue
              with:
                project_key: "DRV"
                issuetype: "Bug"
                summary: "Driver crash: v{{driver_version}} — {{get-monitor.name}}"
                priority: "Critical"
            - name: notify-driver
              type: call
              call: slack-driver.post-message
              with:
                channel: "driver-engineering"
                text: "DRIVER CRASH: v{{driver_version}} | {{get-monitor.name}} | Jira: {{create-bug.key}}"
  consumes:
    - type: http
      namespace: dd-driver
      baseUri: "https://api.datadoghq.com/api/v1"
      authentication:
        type: apikey
        key: "DD-API-KEY"
        value: "$secrets.datadog_api_key"
        placement: header
      resources:
        - name: monitors
          path: "/monitor/{{monitor_id}}"
          inputParameters:
            - name: monitor_id
              in: path
          operations:
            - name: get-monitor
              method: GET
    - type: http
      namespace: jira-driver
      baseUri: "https://nvidia.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: slack-driver
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token"
      resources:
        - name: messages
          path: "/chat.postMessage"
          operations:
            - name: post-message
              method: POST

When Datadog detects GPU power draw anomalies, creates a ServiceNow incident and notifies the facilities team in Slack.

naftiko: "0.5"
info:
  label: "Datadog GPU Power Draw Anomaly Handler"
  description: "When Datadog detects GPU power draw anomalies, creates a ServiceNow incident and notifies the facilities team in Slack."
  tags:
    - facilities
    - datadog
    - servicenow
    - slack
capability:
  exposes:
    - type: mcp
      namespace: power-ops
      port: 8080
      tools:
        - name: handle-power-anomaly
          description: "Given a Datadog monitor ID for power anomalies, create a ServiceNow incident and notify facilities."
          inputParameters:
            - name: monitor_id
              in: body
              type: integer
              description: "Datadog monitor ID."
            - name: rack_id
              in: body
              type: string
              description: "Rack identifier."
          steps:
            - name: get-monitor
              type: call
              call: dd-power.get-monitor
              with:
                monitor_id: "{{monitor_id}}"
            - name: create-incident
              type: call
              call: snow-power.create-incident
              with:
                short_description: "Power anomaly: Rack {{rack_id}} — {{get-monitor.name}}"
                urgency: "2"
            - name: notify-facilities
              type: call
              call: slack-power.post-message
              with:
                channel: "facilities-ops"
                text: "POWER ANOMALY: Rack {{rack_id}} | {{get-monitor.name}} | SNOW: {{create-incident.number}}"
  consumes:
    - type: http
      namespace: dd-power
      baseUri: "https://api.datadoghq.com/api/v1"
      authentication:
        type: apikey
        key: "DD-API-KEY"
        value: "$secrets.datadog_api_key"
        placement: header
      resources:
        - name: monitors
          path: "/monitor/{{monitor_id}}"
          inputParameters:
            - name: monitor_id
              in: path
          operations:
            - name: get-monitor
              method: GET
    - type: http
      namespace: snow-power
      baseUri: "https://nvidia.service-now.com/api/now"
      authentication:
        type: bearer
        token: "$secrets.servicenow_token"
      resources:
        - name: incidents
          path: "/table/incident"
          operations:
            - name: create-incident
              method: POST
    - type: http
      namespace: slack-power
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token"
      resources:
        - name: messages
          path: "/chat.postMessage"
          operations:
            - name: post-message
              method: POST

When Datadog detects GPU thermal threshold breaches, creates a ServiceNow incident and notifies the data center ops Slack channel.

naftiko: "0.5"
info:
  label: "Datadog GPU Thermal Alert to ServiceNow"
  description: "When Datadog detects GPU thermal threshold breaches, creates a ServiceNow incident and notifies the data center ops Slack channel."
  tags:
    - infrastructure
    - datadog
    - servicenow
    - slack
capability:
  exposes:
    - type: mcp
      namespace: thermal-ops
      port: 8080
      tools:
        - name: handle-thermal-alert
          description: "Given a Datadog monitor ID for GPU thermal alerts, create a ServiceNow incident and notify data center ops in Slack."
          inputParameters:
            - name: monitor_id
              in: body
              type: integer
              description: "Datadog monitor ID for the thermal alert."
            - name: host_name
              in: body
              type: string
              description: "Host experiencing thermal issues."
          steps:
            - name: get-monitor
              type: call
              call: dd-thermal.get-monitor
              with:
                monitor_id: "{{monitor_id}}"
            - name: create-incident
              type: call
              call: snow-thermal.create-incident
              with:
                short_description: "GPU thermal alert: {{host_name}} — {{get-monitor.name}}"
                urgency: "1"
                category: "Hardware"
            - name: notify-ops
              type: call
              call: slack-dc.post-message
              with:
                channel: "datacenter-ops"
                text: "THERMAL ALERT: {{host_name}} | {{get-monitor.name}} | SNOW: {{create-incident.number}}"
  consumes:
    - type: http
      namespace: dd-thermal
      baseUri: "https://api.datadoghq.com/api/v1"
      authentication:
        type: apikey
        key: "DD-API-KEY"
        value: "$secrets.datadog_api_key"
        placement: header
      resources:
        - name: monitors
          path: "/monitor/{{monitor_id}}"
          inputParameters:
            - name: monitor_id
              in: path
          operations:
            - name: get-monitor
              method: GET
    - type: http
      namespace: snow-thermal
      baseUri: "https://nvidia.service-now.com/api/now"
      authentication:
        type: bearer
        token: "$secrets.servicenow_token"
      resources:
        - name: incidents
          path: "/table/incident"
          operations:
            - name: create-incident
              method: POST
    - type: http
      namespace: slack-dc
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token"
      resources:
        - name: messages
          path: "/chat.postMessage"
          operations:
            - name: post-message
              method: POST

When Datadog detects H100 GPU memory errors, creates a ServiceNow incident and notifies the hardware team in Slack.

naftiko: "0.5"
info:
  label: "Datadog H100 Memory Error Handler"
  description: "When Datadog detects H100 GPU memory errors, creates a ServiceNow incident and notifies the hardware team in Slack."
  tags:
    - hardware
    - datadog
    - servicenow
    - slack
capability:
  exposes:
    - type: mcp
      namespace: h100-ops
      port: 8080
      tools:
        - name: handle-memory-error
          description: "Given a Datadog monitor ID for H100 memory errors, create a ServiceNow incident and notify the hardware team in Slack."
          inputParameters:
            - name: monitor_id
              in: body
              type: integer
              description: "Datadog monitor ID."
            - name: host_name
              in: body
              type: string
              description: "Host with memory errors."
          steps:
            - name: get-monitor
              type: call
              call: dd-h100.get-monitor
              with:
                monitor_id: "{{monitor_id}}"
            - name: create-incident
              type: call
              call: snow-hw.create-incident
              with:
                short_description: "H100 memory error: {{host_name}} — {{get-monitor.name}}"
                urgency: "2"
            - name: notify-hw
              type: call
              call: slack-hw.post-message
              with:
                channel: "hardware-engineering"
                text: "H100 MEMORY ERROR: {{host_name}} | {{get-monitor.name}} | SNOW: {{create-incident.number}}"
  consumes:
    - type: http
      namespace: dd-h100
      baseUri: "https://api.datadoghq.com/api/v1"
      authentication:
        type: apikey
        key: "DD-API-KEY"
        value: "$secrets.datadog_api_key"
        placement: header
      resources:
        - name: monitors
          path: "/monitor/{{monitor_id}}"
          inputParameters:
            - name: monitor_id
              in: path
          operations:
            - name: get-monitor
              method: GET
    - type: http
      namespace: snow-hw
      baseUri: "https://nvidia.service-now.com/api/now"
      authentication:
        type: bearer
        token: "$secrets.servicenow_token"
      resources:
        - name: incidents
          path: "/table/incident"
          operations:
            - name: create-incident
              method: POST
    - type: http
      namespace: slack-hw
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token"
      resources:
        - name: messages
          path: "/chat.postMessage"
          operations:
            - name: post-message
              method: POST

Checks inference service latency metrics from Datadog for NVIDIA AI platform services.

naftiko: "0.5"
info:
  label: "Datadog Inference Service Latency Check"
  description: "Checks inference service latency metrics from Datadog for NVIDIA AI platform services."
  tags:
    - ai
    - datadog
    - inference
capability:
  exposes:
    - type: mcp
      namespace: inference-ops
      port: 8080
      tools:
        - name: get-inference-latency
          description: "Given a service name, return current inference latency metrics from Datadog. Use for SLA compliance monitoring."
          inputParameters:
            - name: service_name
              in: body
              type: string
              description: "Inference service name in Datadog."
          call: "dd-inference.get-metrics"
          with:
            query: "avg:inference.latency{service:{{service_name}}}"
          outputParameters:
            - name: series
              type: array
              mapping: "$.series"
  consumes:
    - type: http
      namespace: dd-inference
      baseUri: "https://api.datadoghq.com/api/v1"
      authentication:
        type: apikey
        key: "DD-API-KEY"
        value: "$secrets.datadog_api_key"
        placement: header
      resources:
        - name: metrics
          path: "/query"
          inputParameters:
            - name: query
              in: query
          operations:
            - name: get-metrics
              method: GET

Queries Datadog for the current health status of a specified host or service, returning monitor states and alert counts.

naftiko: "0.5"
info:
  label: "Datadog Infrastructure Health Check"
  description: "Queries Datadog for the current health status of a specified host or service, returning monitor states and alert counts."
  tags:
    - observability
    - datadog
    - monitoring
capability:
  exposes:
    - type: mcp
      namespace: observability
      port: 8080
      tools:
        - name: get-service-health
          description: "Given a Datadog service name, return the current monitor states and active alert count. Use to check GPU cluster or application health before a deployment."
          inputParameters:
            - name: service_name
              in: body
              type: string
              description: "The Datadog service name to query (e.g., 'cuda-inference-service')."
          call: "datadog.get-monitors"
          with:
            name: "{{service_name}}"
          outputParameters:
            - name: monitors
              type: array
              mapping: "$.monitors"
            - name: alert_count
              type: number
              mapping: "$.total_count"
  consumes:
    - type: http
      namespace: datadog
      baseUri: "https://api.datadoghq.com/api/v1"
      authentication:
        type: apikey
        key: "DD-API-KEY"
        value: "$secrets.datadog_api_key"
        placement: header
      resources:
        - name: monitors
          path: "/monitor"
          inputParameters:
            - name: name
              in: query
          operations:
            - name: get-monitors
              method: GET

When Datadog detects GPU Kubernetes cluster autoscaling events, logs to Snowflake and notifies the platform team in Slack.

naftiko: "0.5"
info:
  label: "Datadog Kubernetes Cluster Autoscale Alert"
  description: "When Datadog detects GPU Kubernetes cluster autoscaling events, logs to Snowflake and notifies the platform team in Slack."
  tags:
    - platform
    - datadog
    - snowflake
    - slack
capability:
  exposes:
    - type: mcp
      namespace: k8s-ops
      port: 8080
      tools:
        - name: handle-autoscale-alert
          description: "Given a Datadog monitor ID for K8s autoscale events, log to Snowflake and notify in Slack."
          inputParameters:
            - name: monitor_id
              in: body
              type: integer
              description: "Datadog monitor ID."
            - name: cluster_name
              in: body
              type: string
              description: "Kubernetes cluster name."
          steps:
            - name: get-monitor
              type: call
              call: dd-k8s.get-monitor
              with:
                monitor_id: "{{monitor_id}}"
            - name: log-event
              type: call
              call: snowflake-k8s.run-query
              with:
                cluster: "{{cluster_name}}"
                event: "autoscale"
            - name: notify-platform
              type: call
              call: slack-k8s.post-message
              with:
                channel: "platform-ops"
                text: "K8S AUTOSCALE: {{cluster_name}} | {{get-monitor.name}} | Logged to Snowflake"
  consumes:
    - type: http
      namespace: dd-k8s
      baseUri: "https://api.datadoghq.com/api/v1"
      authentication:
        type: apikey
        key: "DD-API-KEY"
        value: "$secrets.datadog_api_key"
        placement: header
      resources:
        - name: monitors
          path: "/monitor/{{monitor_id}}"
          inputParameters:
            - name: monitor_id
              in: path
          operations:
            - name: get-monitor
              method: GET
    - type: http
      namespace: snowflake-k8s
      baseUri: "https://nvidia.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: statements
          path: "/statements"
          operations:
            - name: run-query
              method: POST
    - type: http
      namespace: slack-k8s
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token"
      resources:
        - name: messages
          path: "/chat.postMessage"
          operations:
            - name: post-message
              method: POST

When Datadog detects GPU networking switch failures, creates a ServiceNow incident and notifies the network ops Slack channel.

naftiko: "0.5"
info:
  label: "Datadog Networking Switch Failure Handler"
  description: "When Datadog detects GPU networking switch failures, creates a ServiceNow incident and notifies the network ops Slack channel."
  tags:
    - networking
    - datadog
    - servicenow
    - slack
capability:
  exposes:
    - type: mcp
      namespace: network-ops
      port: 8080
      tools:
        - name: handle-switch-failure
          description: "Given a Datadog monitor ID for a switch failure, create a ServiceNow incident and notify network ops."
          inputParameters:
            - name: monitor_id
              in: body
              type: integer
              description: "Datadog monitor ID."
            - name: switch_id
              in: body
              type: string
              description: "Switch identifier."
          steps:
            - name: get-monitor
              type: call
              call: dd-net.get-monitor
              with:
                monitor_id: "{{monitor_id}}"
            - name: create-incident
              type: call
              call: snow-net.create-incident
              with:
                short_description: "Switch failure: {{switch_id}} — {{get-monitor.name}}"
                urgency: "1"
            - name: notify-net
              type: call
              call: slack-net.post-message
              with:
                channel: "network-ops"
                text: "SWITCH FAILURE: {{switch_id}} | {{get-monitor.name}} | SNOW: {{create-incident.number}}"
  consumes:
    - type: http
      namespace: dd-net
      baseUri: "https://api.datadoghq.com/api/v1"
      authentication:
        type: apikey
        key: "DD-API-KEY"
        value: "$secrets.datadog_api_key"
        placement: header
      resources:
        - name: monitors
          path: "/monitor/{{monitor_id}}"
          inputParameters:
            - name: monitor_id
              in: path
          operations:
            - name: get-monitor
              method: GET
    - type: http
      namespace: snow-net
      baseUri: "https://nvidia.service-now.com/api/now"
      authentication:
        type: bearer
        token: "$secrets.servicenow_token"
      resources:
        - name: incidents
          path: "/table/incident"
          operations:
            - name: create-incident
              method: POST
    - type: http
      namespace: slack-net
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token"
      resources:
        - name: messages
          path: "/chat.postMessage"
          operations:
            - name: post-message
              method: POST

Queries Datadog for NVLink interconnect bandwidth utilization across GPU clusters.

naftiko: "0.5"
info:
  label: "Datadog NVLink Bandwidth Monitor"
  description: "Queries Datadog for NVLink interconnect bandwidth utilization across GPU clusters."
  tags:
    - infrastructure
    - datadog
    - nvlink
capability:
  exposes:
    - type: mcp
      namespace: nvlink-ops
      port: 8080
      tools:
        - name: get-nvlink-bandwidth
          description: "Given a cluster name, return NVLink bandwidth utilization from Datadog. Use for interconnect performance monitoring."
          inputParameters:
            - name: cluster_name
              in: body
              type: string
              description: "GPU cluster name."
          call: "dd-nvlink.get-metrics"
          with:
            query: "avg:nvlink.bandwidth{cluster:{{cluster_name}}}"
          outputParameters:
            - name: series
              type: array
              mapping: "$.series"
  consumes:
    - type: http
      namespace: dd-nvlink
      baseUri: "https://api.datadoghq.com/api/v1"
      authentication:
        type: apikey
        key: "DD-API-KEY"
        value: "$secrets.datadog_api_key"
        placement: header
      resources:
        - name: metrics
          path: "/query"
          inputParameters:
            - name: query
              in: query
          operations:
            - name: get-metrics
              method: GET

Queries Datadog for all SLO compliance breaches in the past 7 days and publishes a weekly reliability report to a Confluence page and the engineering Slack channel.

naftiko: "0.5"
info:
  label: "Datadog SLO Breach Weekly Report"
  description: "Queries Datadog for all SLO compliance breaches in the past 7 days and publishes a weekly reliability report to a Confluence page and the engineering Slack channel."
  tags:
    - observability
    - datadog
    - confluence
    - slack
    - slo
    - reporting
capability:
  exposes:
    - type: mcp
      namespace: reliability-reporting
      port: 8080
      tools:
        - name: publish-slo-weekly-report
          description: "Fetch all SLO compliance data from Datadog for the past 7 days, publish a reliability report to Confluence, and post a summary to Slack. Use for weekly engineering reliability reviews."
          inputParameters:
            - name: confluence_space_key
              in: body
              type: string
              description: "Confluence space key for the reliability report."
            - name: confluence_parent_id
              in: body
              type: string
              description: "Confluence parent page ID for the weekly report."
            - name: slack_channel
              in: body
              type: string
              description: "Slack channel to post the SLO summary to."
          steps:
            - name: get-slo-data
              type: call
              call: "datadog.list-slos"
              with:
                query: "service:nvidia-production"
            - name: publish-report
              type: call
              call: "confluence.create-page"
              with:
                space_key: "{{confluence_space_key}}"
                parent_page_id: "{{confluence_parent_id}}"
                title: "Weekly SLO Reliability Report"
                content: "SLO compliance data from Datadog for the past 7 days across NVIDIA production services."
            - name: notify-engineering
              type: call
              call: "slack.post-message"
              with:
                channel: "{{slack_channel}}"
                text: "Weekly SLO Report published: {{publish-report.webui_url}}"
  consumes:
    - type: http
      namespace: datadog
      baseUri: "https://api.datadoghq.com/api/v1"
      authentication:
        type: apikey
        key: "DD-API-KEY"
        value: "$secrets.datadog_api_key"
        placement: header
      resources:
        - name: slos
          path: "/slo"
          inputParameters:
            - name: query
              in: query
          operations:
            - name: list-slos
              method: GET
    - type: http
      namespace: confluence
      baseUri: "https://nvidia.atlassian.net/wiki/rest/api"
      authentication:
        type: basic
        username: "$secrets.confluence_user"
        password: "$secrets.confluence_api_token"
      resources:
        - name: pages
          path: "/content"
          operations:
            - name: create-page
              method: POST
    - type: http
      namespace: slack
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token"
      resources:
        - name: messages
          path: "/chat.postMessage"
          operations:
            - name: post-message
              method: POST

When a new hire is created in Workday, opens a ServiceNow onboarding ticket, provisions a GitHub org membership, and sends a Microsoft Teams welcome message.

naftiko: "0.5"
info:
  label: "Employee Onboarding Orchestrator"
  description: "When a new hire is created in Workday, opens a ServiceNow onboarding ticket, provisions a GitHub org membership, and sends a Microsoft Teams welcome message."
  tags:
    - hr
    - onboarding
    - workday
    - servicenow
    - github
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: hr-onboarding
      port: 8080
      tools:
        - name: trigger-onboarding
          description: "Given a Workday employee ID and start date, orchestrate the full onboarding sequence across ServiceNow, GitHub, and Microsoft Teams. Use when a new engineer or business hire joins NVIDIA."
          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's start date in ISO 8601 format (YYYY-MM-DD)."
            - name: github_team_slug
              in: body
              type: string
              description: "The GitHub team slug the new hire should be added to (e.g., 'cuda-engineering')."
          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:
                category: "hr_onboarding"
                short_description: "New hire onboarding: {{get-employee.full_name}}"
                assigned_group: "IT_Onboarding"
            - name: add-github-member
              type: call
              call: "github.add-team-member"
              with:
                org: "nvidia"
                team_slug: "{{github_team_slug}}"
                username: "{{get-employee.github_username}}"
            - name: send-welcome
              type: call
              call: "msteams.send-message"
              with:
                recipient_upn: "{{get-employee.work_email}}"
                text: "Welcome to NVIDIA, {{get-employee.first_name}}! Your IT onboarding ticket is {{open-ticket.number}}."
  consumes:
    - type: http
      namespace: workday
      baseUri: "https://wd2-impl-services1.workday.com/ccx/api/v1"
      authentication:
        type: bearer
        token: "$secrets.workday_token"
      resources:
        - name: workers
          path: "/nvidia/workers/{{worker_id}}"
          inputParameters:
            - name: worker_id
              in: path
          operations:
            - name: get-worker
              method: GET
    - type: http
      namespace: servicenow
      baseUri: "https://nvidia.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: github
      baseUri: "https://api.github.com"
      authentication:
        type: bearer
        token: "$secrets.github_token"
      resources:
        - name: team-members
          path: "/orgs/{{org}}/teams/{{team_slug}}/memberships/{{username}}"
          inputParameters:
            - name: org
              in: path
            - name: team_slug
              in: path
            - name: username
              in: path
          operations:
            - name: add-team-member
              method: PUT
    - type: http
      namespace: msteams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: chat-messages
          path: "/users/{{recipient_upn}}/sendMail"
          inputParameters:
            - name: recipient_upn
              in: path
          operations:
            - name: send-message
              method: POST

When an employee departure is recorded in Workday, revokes GitHub org access, suspends the Okta account, and creates a ServiceNow offboarding task.

naftiko: "0.5"
info:
  label: "Engineer Offboarding Workflow"
  description: "When an employee departure is recorded in Workday, revokes GitHub org access, suspends the Okta account, and creates a ServiceNow offboarding task."
  tags:
    - hr
    - offboarding
    - workday
    - github
    - okta
    - servicenow
capability:
  exposes:
    - type: mcp
      namespace: hr-offboarding
      port: 8080
      tools:
        - name: trigger-offboarding
          description: "Given a Workday employee ID, orchestrate the full offboarding sequence: revoke GitHub org membership, suspend Okta user, and open a ServiceNow offboarding task. Use when an employee separates from NVIDIA."
          inputParameters:
            - name: workday_employee_id
              in: body
              type: string
              description: "The Workday worker ID of the departing employee."
            - name: last_day
              in: body
              type: string
              description: "The employee's last working day in ISO 8601 format (YYYY-MM-DD)."
          steps:
            - name: get-employee
              type: call
              call: "workday.get-worker"
              with:
                worker_id: "{{workday_employee_id}}"
            - name: revoke-github
              type: call
              call: "github.remove-org-member"
              with:
                org: "nvidia"
                username: "{{get-employee.github_username}}"
            - name: suspend-okta-user
              type: call
              call: "okta.suspend-user"
              with:
                user_id: "{{get-employee.okta_user_id}}"
            - name: create-offboarding-task
              type: call
              call: "servicenow.create-task"
              with:
                short_description: "Offboarding: {{get-employee.full_name}} — last day {{last_day}}"
                category: "hr_offboarding"
  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: "/nvidia/workers/{{worker_id}}"
          inputParameters:
            - name: worker_id
              in: path
          operations:
            - name: get-worker
              method: GET
    - type: http
      namespace: github
      baseUri: "https://api.github.com"
      authentication:
        type: bearer
        token: "$secrets.github_token"
      resources:
        - name: org-members
          path: "/orgs/{{org}}/members/{{username}}"
          inputParameters:
            - name: org
              in: path
            - name: username
              in: path
          operations:
            - name: remove-org-member
              method: DELETE
    - type: http
      namespace: okta
      baseUri: "https://nvidia.okta.com/api/v1"
      authentication:
        type: apikey
        key: "Authorization"
        value: "$secrets.okta_api_token"
        placement: header
      resources:
        - name: users
          path: "/users/{{user_id}}/lifecycle/suspend"
          inputParameters:
            - name: user_id
              in: path
          operations:
            - name: suspend-user
              method: POST
    - type: http
      namespace: servicenow
      baseUri: "https://nvidia.service-now.com/api/now"
      authentication:
        type: basic
        username: "$secrets.servicenow_user"
        password: "$secrets.servicenow_password"
      resources:
        - name: tasks
          path: "/table/sc_task"
          operations:
            - name: create-task
              method: POST

Monitors CUDA compatibility test matrix results in GitHub CI and notifies the CUDA team in Slack on failures.

naftiko: "0.5"
info:
  label: "GitHub CUDA Compat Test Matrix"
  description: "Monitors CUDA compatibility test matrix results in GitHub CI and notifies the CUDA team in Slack on failures."
  tags:
    - testing
    - github
    - slack
    - cuda
capability:
  exposes:
    - type: mcp
      namespace: cuda-compat
      port: 8080
      tools:
        - name: handle-compat-test
          description: "Given a GitHub run ID, check compatibility test matrix results and notify on failures."
          inputParameters:
            - name: run_id
              in: body
              type: integer
              description: "GitHub Actions run ID."
          steps:
            - name: get-run
              type: call
              call: github-compat.get-run
              with:
                run_id: "{{run_id}}"
            - name: notify-team
              type: call
              call: slack-compat.post-message
              with:
                channel: "cuda-testing"
                text: "CUDA Compat Test: Run {{run_id}} | {{get-run.name}} | Status: {{get-run.conclusion}} | URL: {{get-run.html_url}}"
  consumes:
    - type: http
      namespace: github-compat
      baseUri: "https://api.github.com"
      authentication:
        type: bearer
        token: "$secrets.github_token"
      resources:
        - name: runs
          path: "/repos/NVIDIA/cuda-compat/actions/runs/{{run_id}}"
          inputParameters:
            - name: run_id
              in: path
          operations:
            - name: get-run
              method: GET
    - type: http
      namespace: slack-compat
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token"
      resources:
        - name: messages
          path: "/chat.postMessage"
          operations:
            - name: post-message
              method: POST

Processes GitHub security advisories for CUDA repositories, creates Jira security tickets, and notifies the security team in Slack.

naftiko: "0.5"
info:
  label: "GitHub CUDA Security Advisory Handler"
  description: "Processes GitHub security advisories for CUDA repositories, creates Jira security tickets, and notifies the security team in Slack."
  tags:
    - security
    - github
    - jira
    - slack
capability:
  exposes:
    - type: mcp
      namespace: cuda-security
      port: 8080
      tools:
        - name: handle-cuda-advisory
          description: "Given a GitHub advisory ID, create a Jira security ticket and notify the security team in Slack."
          inputParameters:
            - name: repo_name
              in: body
              type: string
              description: "GitHub repository name."
            - name: alert_number
              in: body
              type: integer
              description: "Security alert number."
          steps:
            - name: get-alert
              type: call
              call: github-sec.get-alert
              with:
                repo_name: "{{repo_name}}"
                alert_number: "{{alert_number}}"
            - name: create-ticket
              type: call
              call: jira-sec.create-issue
              with:
                project_key: "SEC"
                issuetype: "Bug"
                summary: "Security: {{get-alert.rule.description}} in {{repo_name}}"
                priority: "Critical"
            - name: notify-security
              type: call
              call: slack-sec.post-message
              with:
                channel: "security-alerts"
                text: "CUDA SECURITY: {{repo_name}} | {{get-alert.rule.description}} | Severity: {{get-alert.rule.severity}} | Jira: {{create-ticket.key}}"
  consumes:
    - type: http
      namespace: github-sec
      baseUri: "https://api.github.com"
      authentication:
        type: bearer
        token: "$secrets.github_token"
      resources:
        - name: alerts
          path: "/repos/NVIDIA/{{repo_name}}/code-scanning/alerts/{{alert_number}}"
          inputParameters:
            - name: repo_name
              in: path
            - name: alert_number
              in: path
          operations:
            - name: get-alert
              method: GET
    - type: http
      namespace: jira-sec
      baseUri: "https://nvidia.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: slack-sec
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token"
      resources:
        - name: messages
          path: "/chat.postMessage"
          operations:
            - name: post-message
              method: POST

Retrieves the review status of a pull request in the CUDA toolkit repository.

naftiko: "0.5"
info:
  label: "GitHub CUDA Toolkit PR Status"
  description: "Retrieves the review status of a pull request in the CUDA toolkit repository."
  tags:
    - engineering
    - github
    - cuda
capability:
  exposes:
    - type: mcp
      namespace: cuda-dev
      port: 8080
      tools:
        - name: get-cuda-pr
          description: "Given a PR number, return the CUDA toolkit PR review status. Use for merge readiness checks."
          inputParameters:
            - name: pr_number
              in: body
              type: integer
              description: "Pull request number."
          call: "github-cuda.get-pr"
          with:
            pr_number: "{{pr_number}}"
          outputParameters:
            - name: pr
              type: object
              mapping: "$"
  consumes:
    - type: http
      namespace: github-cuda
      baseUri: "https://api.github.com"
      authentication:
        type: bearer
        token: "$secrets.github_token"
      resources:
        - name: pulls
          path: "/repos/NVIDIA/cuda-toolkit/pulls/{{pr_number}}"
          inputParameters:
            - name: pr_number
              in: path
          operations:
            - name: get-pr
              method: GET

Generates DeepStream SDK release notes from GitHub PRs and posts them to the product team Slack channel.

naftiko: "0.5"
info:
  label: "GitHub DeepStream SDK Release Notes"
  description: "Generates DeepStream SDK release notes from GitHub PRs and posts them to the product team Slack channel."
  tags:
    - product
    - github
    - slack
    - deepstream
capability:
  exposes:
    - type: mcp
      namespace: deepstream-release
      port: 8080
      tools:
        - name: handle-release-notes
          description: "Given a release tag, compile release notes and post to Slack."
          inputParameters:
            - name: release_tag
              in: body
              type: string
              description: "GitHub release tag."
          steps:
            - name: get-release
              type: call
              call: github-ds.get-release
              with:
                tag: "{{release_tag}}"
            - name: post-notes
              type: call
              call: slack-ds.post-message
              with:
                channel: "deepstream-releases"
                text: "DeepStream Release: {{release_tag}} | {{get-release.name}} | {{get-release.html_url}}"
  consumes:
    - type: http
      namespace: github-ds
      baseUri: "https://api.github.com"
      authentication:
        type: bearer
        token: "$secrets.github_token"
      resources:
        - name: releases
          path: "/repos/NVIDIA/DeepStream/releases/tags/{{tag}}"
          inputParameters:
            - name: tag
              in: path
          operations:
            - name: get-release
              method: GET
    - type: http
      namespace: slack-ds
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token"
      resources:
        - name: messages
          path: "/chat.postMessage"
          operations:
            - name: post-message
              method: POST

Fetches open Dependabot security alerts for a GitHub repository and creates Jira tickets for critical and high severity vulnerabilities.

naftiko: "0.5"
info:
  label: "GitHub Dependabot Alert Triage"
  description: "Fetches open Dependabot security alerts for a GitHub repository and creates Jira tickets for critical and high severity vulnerabilities."
  tags:
    - security
    - devops
    - github
    - jira
    - vulnerability-management
capability:
  exposes:
    - type: mcp
      namespace: vuln-triage
      port: 8080
      tools:
        - name: triage-dependabot-alerts
          description: "Fetch open Dependabot alerts for a GitHub repository at critical or high severity and create Jira security tickets for each. Use during weekly vulnerability review cycles or after a new CVE disclosure."
          inputParameters:
            - name: repository
              in: body
              type: string
              description: "GitHub repository name within the NVIDIA org (e.g., 'triton-inference-server')."
            - name: severity
              in: body
              type: string
              description: "Minimum severity to triage: 'critical' or 'high'."
            - name: jira_project_key
              in: body
              type: string
              description: "The Jira project key for security tickets (e.g., 'SECURITY')."
          steps:
            - name: get-dependabot-alerts
              type: call
              call: "github.list-dependabot-alerts"
              with:
                owner: "nvidia"
                repo: "{{repository}}"
                severity: "{{severity}}"
                state: "open"
            - name: create-security-ticket
              type: call
              call: "jira.create-issue"
              with:
                project_key: "{{jira_project_key}}"
                issuetype: "Bug"
                summary: "Dependabot {{severity}} vulnerabilities in {{repository}}"
                description: "Open Dependabot alerts at {{severity}} severity in {{repository}}. Immediate remediation required."
  consumes:
    - type: http
      namespace: github
      baseUri: "https://api.github.com"
      authentication:
        type: bearer
        token: "$secrets.github_token"
      resources:
        - name: dependabot-alerts
          path: "/repos/{{owner}}/{{repo}}/dependabot/alerts"
          inputParameters:
            - name: owner
              in: path
            - name: repo
              in: path
            - name: severity
              in: query
            - name: state
              in: query
          operations:
            - name: list-dependabot-alerts
              method: GET
    - type: http
      namespace: jira
      baseUri: "https://nvidia.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

When NCCL performance regression is detected in GitHub CI, creates a Jira issue and notifies the communications team in Slack.

naftiko: "0.5"
info:
  label: "GitHub NCCL Performance Regression Handler"
  description: "When NCCL performance regression is detected in GitHub CI, creates a Jira issue and notifies the communications team in Slack."
  tags:
    - performance
    - github
    - jira
    - slack
capability:
  exposes:
    - type: mcp
      namespace: nccl-perf
      port: 8080
      tools:
        - name: handle-nccl-regression
          description: "Given a GitHub run ID showing NCCL regression, create a Jira issue and notify in Slack."
          inputParameters:
            - name: run_id
              in: body
              type: integer
              description: "GitHub Actions run ID."
          steps:
            - name: get-run
              type: call
              call: github-nccl.get-run
              with:
                run_id: "{{run_id}}"
            - name: create-issue
              type: call
              call: jira-nccl.create-issue
              with:
                project_key: "NCCL"
                issuetype: "Bug"
                summary: "Performance regression: {{get-run.name}}"
            - name: notify-team
              type: call
              call: slack-nccl.post-message
              with:
                channel: "nccl-engineering"
                text: "NCCL REGRESSION: {{get-run.name}} | Run: {{run_id}} | Jira: {{create-issue.key}}"
  consumes:
    - type: http
      namespace: github-nccl
      baseUri: "https://api.github.com"
      authentication:
        type: bearer
        token: "$secrets.github_token"
      resources:
        - name: runs
          path: "/repos/NVIDIA/nccl/actions/runs/{{run_id}}"
          inputParameters:
            - name: run_id
              in: path
          operations:
            - name: get-run
              method: GET
    - type: http
      namespace: jira-nccl
      baseUri: "https://nvidia.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: slack-nccl
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token"
      resources:
        - name: messages
          path: "/chat.postMessage"
          operations:
            - name: post-message
              method: POST

Checks CI status for a branch in the NeMo framework repository.

naftiko: "0.5"
info:
  label: "GitHub NeMo Framework Branch Status"
  description: "Checks CI status for a branch in the NeMo framework repository."
  tags:
    - engineering
    - github
    - nemo
capability:
  exposes:
    - type: mcp
      namespace: nemo-dev
      port: 8080
      tools:
        - name: get-nemo-branch
          description: "Given a branch name, return CI status for the NeMo framework repository. Use before merging changes."
          inputParameters:
            - name: branch_name
              in: body
              type: string
              description: "Branch name to check."
          call: "github-nemo.get-branch"
          with:
            branch_name: "{{branch_name}}"
          outputParameters:
            - name: branch
              type: object
              mapping: "$"
  consumes:
    - type: http
      namespace: github-nemo
      baseUri: "https://api.github.com"
      authentication:
        type: bearer
        token: "$secrets.github_token"
      resources:
        - name: branches
          path: "/repos/NVIDIA/NeMo/branches/{{branch_name}}"
          inputParameters:
            - name: branch_name
              in: path
          operations:
            - name: get-branch
              method: GET

Orchestrates Omniverse platform releases by validating test results, creating a GitHub release, and notifying in Slack.

naftiko: "0.5"
info:
  label: "GitHub Omniverse Release Pipeline"
  description: "Orchestrates Omniverse platform releases by validating test results, creating a GitHub release, and notifying in Slack."
  tags:
    - platform
    - github
    - snowflake
    - slack
capability:
  exposes:
    - type: mcp
      namespace: omniverse-release
      port: 8080
      tools:
        - name: handle-omniverse-release
          description: "Given a release version, validate tests and create a GitHub release."
          inputParameters:
            - name: version
              in: body
              type: string
              description: "Omniverse release version."
          steps:
            - name: validate-tests
              type: call
              call: snowflake-ov.run-query
              with:
                version: "{{version}}"
            - name: create-release
              type: call
              call: github-ov.create-release
              with:
                tag_name: "{{version}}"
                name: "Omniverse {{version}}"
            - name: notify-team
              type: call
              call: slack-ov.post-message
              with:
                channel: "omniverse-releases"
                text: "Omniverse Release: {{version}} | Tests: {{validate-tests.pass_rate}}% | URL: {{create-release.html_url}}"
  consumes:
    - type: http
      namespace: snowflake-ov
      baseUri: "https://nvidia.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: statements
          path: "/statements"
          operations:
            - name: run-query
              method: POST
    - type: http
      namespace: github-ov
      baseUri: "https://api.github.com"
      authentication:
        type: bearer
        token: "$secrets.github_token"
      resources:
        - name: releases
          path: "/repos/NVIDIA/Omniverse/releases"
          operations:
            - name: create-release
              method: POST
    - type: http
      namespace: slack-ov
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token"
      resources:
        - name: messages
          path: "/chat.postMessage"
          operations:
            - name: post-message
              method: POST

Fetches all repositories in the NVIDIA GitHub organization, identifies those with no activity in 180 days, and publishes an audit report to Confluence.

naftiko: "0.5"
info:
  label: "GitHub Org Repository Audit"
  description: "Fetches all repositories in the NVIDIA GitHub organization, identifies those with no activity in 180 days, and publishes an audit report to Confluence."
  tags:
    - devops
    - github
    - confluence
    - audit
    - governance
capability:
  exposes:
    - type: mcp
      namespace: repo-governance
      port: 8080
      tools:
        - name: audit-stale-repositories
          description: "List all NVIDIA GitHub org repositories, identify those with no pushes in 180 days, and publish a stale repo audit to Confluence. Use for annual repo governance reviews or cleanup campaigns."
          inputParameters:
            - name: confluence_space_key
              in: body
              type: string
              description: "Confluence space key to publish the audit report to."
            - name: confluence_parent_id
              in: body
              type: string
              description: "Confluence parent page ID for the audit report."
          steps:
            - name: list-org-repos
              type: call
              call: "github.list-org-repos"
              with:
                org: "nvidia"
                sort: "pushed"
                direction: "asc"
            - name: publish-audit
              type: call
              call: "confluence.create-page"
              with:
                space_key: "{{confluence_space_key}}"
                parent_page_id: "{{confluence_parent_id}}"
                title: "Stale Repository Audit"
                content: "GitHub organization repository audit. Repositories sorted by last push date for review and archival."
  consumes:
    - type: http
      namespace: github
      baseUri: "https://api.github.com"
      authentication:
        type: bearer
        token: "$secrets.github_token"
      resources:
        - name: org-repos
          path: "/orgs/{{org}}/repos"
          inputParameters:
            - name: org
              in: path
            - name: sort
              in: query
            - name: direction
              in: query
          operations:
            - name: list-org-repos
              method: GET
    - type: http
      namespace: confluence
      baseUri: "https://nvidia.atlassian.net/wiki/rest/api"
      authentication:
        type: basic
        username: "$secrets.confluence_user"
        password: "$secrets.confluence_api_token"
      resources:
        - name: pages
          path: "/content"
          operations:
            - name: create-page
              method: POST

Fetches open pull requests with no review activity in over 24 hours from GitHub and posts a reminder to the relevant Slack channel.

naftiko: "0.5"
info:
  label: "GitHub Pull Request Review Reminder"
  description: "Fetches open pull requests with no review activity in over 24 hours from GitHub and posts a reminder to the relevant Slack channel."
  tags:
    - devops
    - github
    - slack
    - code-review
capability:
  exposes:
    - type: mcp
      namespace: devops-review
      port: 8080
      tools:
        - name: remind-stale-prs
          description: "Given a GitHub repository and Slack channel, fetch open pull requests with no review activity and post reminders. Use to unblock engineering review queues."
          inputParameters:
            - name: repository
              in: body
              type: string
              description: "GitHub repository full name (e.g., 'nvidia/tensorrt')."
            - name: slack_channel
              in: body
              type: string
              description: "Slack channel to post reminders to (e.g., '#tensorrt-team')."
            - name: stale_hours
              in: body
              type: integer
              description: "Number of hours without review activity before a PR is considered stale."
          steps:
            - name: list-open-prs
              type: call
              call: "github.list-pull-requests"
              with:
                owner: "nvidia"
                repo: "{{repository}}"
                state: "open"
            - name: post-reminder
              type: call
              call: "slack.post-message"
              with:
                channel: "{{slack_channel}}"
                text: "Stale PRs detected in {{repository}} — please review open pull requests awaiting feedback."
  consumes:
    - type: http
      namespace: github
      baseUri: "https://api.github.com"
      authentication:
        type: bearer
        token: "$secrets.github_token"
      resources:
        - name: pull-requests
          path: "/repos/{{owner}}/{{repo}}/pulls"
          inputParameters:
            - name: owner
              in: path
            - name: repo
              in: path
            - name: state
              in: query
          operations:
            - name: list-pull-requests
              method: GET
    - type: http
      namespace: slack
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token"
      resources:
        - name: messages
          path: "/chat.postMessage"
          operations:
            - name: post-message
              method: POST

When CI fails in a RAPIDS repository, creates a Jira bug and notifies the data science team in Slack.

naftiko: "0.5"
info:
  label: "GitHub RAPIDS CI Failure Handler"
  description: "When CI fails in a RAPIDS repository, creates a Jira bug and notifies the data science team in Slack."
  tags:
    - data-science
    - github
    - jira
    - slack
capability:
  exposes:
    - type: mcp
      namespace: rapids-ci
      port: 8080
      tools:
        - name: handle-rapids-ci-failure
          description: "Given a GitHub run ID for a failed RAPIDS CI, create a Jira bug and notify in Slack."
          inputParameters:
            - name: run_id
              in: body
              type: integer
              description: "GitHub Actions run ID."
            - name: repo_name
              in: body
              type: string
              description: "RAPIDS repository name."
          steps:
            - name: get-run
              type: call
              call: github-rapids.get-run
              with:
                run_id: "{{run_id}}"
                repo_name: "{{repo_name}}"
            - name: create-bug
              type: call
              call: jira-rapids.create-issue
              with:
                project_key: "RAPIDS"
                issuetype: "Bug"
                summary: "CI failure: {{repo_name}} — {{get-run.name}}"
            - name: notify-ds
              type: call
              call: slack-rapids.post-message
              with:
                channel: "rapids-engineering"
                text: "CI FAILURE: {{repo_name}} | {{get-run.name}} | Jira: {{create-bug.key}}"
  consumes:
    - type: http
      namespace: github-rapids
      baseUri: "https://api.github.com"
      authentication:
        type: bearer
        token: "$secrets.github_token"
      resources:
        - name: runs
          path: "/repos/rapidsai/{{repo_name}}/actions/runs/{{run_id}}"
          inputParameters:
            - name: repo_name
              in: path
            - name: run_id
              in: path
          operations:
            - name: get-run
              method: GET
    - type: http
      namespace: jira-rapids
      baseUri: "https://nvidia.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: slack-rapids
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token"
      resources:
        - name: messages
          path: "/chat.postMessage"
          operations:
            - name: post-message
              method: POST

On a new GitHub release tag, fetches the merged pull requests since the last release and generates structured release notes, posting them to Confluence.

naftiko: "0.5"
info:
  label: "GitHub Release Notes Generator"
  description: "On a new GitHub release tag, fetches the merged pull requests since the last release and generates structured release notes, posting them to Confluence."
  tags:
    - devops
    - github
    - confluence
    - release-management
capability:
  exposes:
    - type: mcp
      namespace: release-ops
      port: 8080
      tools:
        - name: generate-release-notes
          description: "Given a GitHub repository and tag name, fetch merged pull requests since the previous tag and publish structured release notes to Confluence. Use as part of the software release process."
          inputParameters:
            - name: repository
              in: body
              type: string
              description: "The GitHub repository name within the NVIDIA org."
            - name: tag_name
              in: body
              type: string
              description: "The new release tag (e.g., 'v12.0.0')."
            - name: confluence_space_key
              in: body
              type: string
              description: "Confluence space key where release notes will be published."
            - name: confluence_parent_id
              in: body
              type: string
              description: "Confluence parent page ID for the release notes."
          steps:
            - name: get-merged-prs
              type: call
              call: "github.list-pull-requests"
              with:
                owner: "nvidia"
                repo: "{{repository}}"
                state: "closed"
            - name: publish-release-notes
              type: call
              call: "confluence.create-page"
              with:
                space_key: "{{confluence_space_key}}"
                parent_page_id: "{{confluence_parent_id}}"
                title: "Release Notes — {{tag_name}}"
                content: "Release notes for {{tag_name}} generated from merged pull requests in {{repository}}."
  consumes:
    - type: http
      namespace: github
      baseUri: "https://api.github.com"
      authentication:
        type: bearer
        token: "$secrets.github_token"
      resources:
        - name: pull-requests
          path: "/repos/{{owner}}/{{repo}}/pulls"
          inputParameters:
            - name: owner
              in: path
            - name: repo
              in: path
            - name: state
              in: query
          operations:
            - name: list-pull-requests
              method: GET
    - type: http
      namespace: confluence
      baseUri: "https://nvidia.atlassian.net/wiki/rest/api"
      authentication:
        type: basic
        username: "$secrets.confluence_user"
        password: "$secrets.confluence_api_token"
      resources:
        - name: pages
          path: "/content"
          operations:
            - name: create-page
              method: POST

Triggers a security code scan on a GitHub repository, waits for results, and opens a Jira ticket for any critical vulnerabilities found.

naftiko: "0.5"
info:
  label: "GitHub Repository Security Scan"
  description: "Triggers a security code scan on a GitHub repository, waits for results, and opens a Jira ticket for any critical vulnerabilities found."
  tags:
    - devops
    - security
    - github
    - jira
capability:
  exposes:
    - type: mcp
      namespace: security-ops
      port: 8080
      tools:
        - name: run-security-scan
          description: "Given a GitHub repository name, trigger a code scanning analysis and create Jira tickets for any critical severity findings. Use during release gating or on-demand security audits."
          inputParameters:
            - name: repository
              in: body
              type: string
              description: "The GitHub repository name within the NVIDIA org (e.g., 'cuda-toolkit')."
            - name: ref
              in: body
              type: string
              description: "The git ref (branch or SHA) to scan."
          steps:
            - name: get-code-scanning-alerts
              type: call
              call: "github.list-code-scanning-alerts"
              with:
                owner: "nvidia"
                repo: "{{repository}}"
                ref: "{{ref}}"
                severity: "critical"
            - name: create-jira-vuln-ticket
              type: call
              call: "jira.create-issue"
              with:
                project_key: "SECURITY"
                issuetype: "Bug"
                summary: "Critical Vulnerability: {{repository}} @ {{ref}}"
                description: "Critical security findings detected in {{repository}} on {{ref}}. Review GitHub code scanning results immediately."
  consumes:
    - type: http
      namespace: github
      baseUri: "https://api.github.com"
      authentication:
        type: bearer
        token: "$secrets.github_token"
      resources:
        - name: code-scanning-alerts
          path: "/repos/{{owner}}/{{repo}}/code-scanning/alerts"
          inputParameters:
            - name: owner
              in: path
            - name: repo
              in: path
            - name: ref
              in: query
            - name: severity
              in: query
          operations:
            - name: list-code-scanning-alerts
              method: GET
    - type: http
      namespace: jira
      baseUri: "https://nvidia.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

Runs TensorRT-LLM benchmark validation from GitHub CI, logs results to Snowflake, and posts to the inference team Slack channel.

naftiko: "0.5"
info:
  label: "GitHub TensorRT-LLM Benchmark Pipeline"
  description: "Runs TensorRT-LLM benchmark validation from GitHub CI, logs results to Snowflake, and posts to the inference team Slack channel."
  tags:
    - ai
    - github
    - snowflake
    - slack
capability:
  exposes:
    - type: mcp
      namespace: trt-llm-bench
      port: 8080
      tools:
        - name: handle-benchmark
          description: "Given a GitHub run ID, check benchmark results and post to Slack."
          inputParameters:
            - name: run_id
              in: body
              type: integer
              description: "GitHub Actions run ID."
            - name: model_name
              in: body
              type: string
              description: "LLM model name."
          steps:
            - name: get-run
              type: call
              call: github-trtllm.get-run
              with:
                run_id: "{{run_id}}"
            - name: log-results
              type: call
              call: snowflake-trt.run-query
              with:
                model: "{{model_name}}"
                run_id: "{{run_id}}"
            - name: notify-team
              type: call
              call: slack-trt.post-message
              with:
                channel: "tensorrt-llm"
                text: "TRT-LLM Benchmark: {{model_name}} | Run: {{run_id}} | Status: {{get-run.conclusion}} | Logged to Snowflake"
  consumes:
    - type: http
      namespace: github-trtllm
      baseUri: "https://api.github.com"
      authentication:
        type: bearer
        token: "$secrets.github_token"
      resources:
        - name: runs
          path: "/repos/NVIDIA/TensorRT-LLM/actions/runs/{{run_id}}"
          inputParameters:
            - name: run_id
              in: path
          operations:
            - name: get-run
              method: GET
    - type: http
      namespace: snowflake-trt
      baseUri: "https://nvidia.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: statements
          path: "/statements"
          operations:
            - name: run-query
              method: POST
    - type: http
      namespace: slack-trt
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token"
      resources:
        - name: messages
          path: "/chat.postMessage"
          operations:
            - name: post-message
              method: POST

Retrieves the latest TensorRT release information from the GitHub repository.

naftiko: "0.5"
info:
  label: "GitHub TensorRT Release Lookup"
  description: "Retrieves the latest TensorRT release information from the GitHub repository."
  tags:
    - engineering
    - github
    - tensorrt
capability:
  exposes:
    - type: mcp
      namespace: tensorrt-ops
      port: 8080
      tools:
        - name: get-latest-release
          description: "Return the latest TensorRT release tag and details from GitHub. Use for deployment version validation."
          inputParameters:
            - name: repo_name
              in: body
              type: string
              description: "GitHub repository name (e.g. TensorRT)."
          call: "github-trt.get-release"
          with:
            repo_name: "{{repo_name}}"
          outputParameters:
            - name: release
              type: object
              mapping: "$"
  consumes:
    - type: http
      namespace: github-trt
      baseUri: "https://api.github.com"
      authentication:
        type: bearer
        token: "$secrets.github_token"
      resources:
        - name: releases
          path: "/repos/NVIDIA/{{repo_name}}/releases/latest"
          inputParameters:
            - name: repo_name
              in: path
          operations:
            - name: get-release
              method: GET

Validates Triton Inference Server deployment by checking GitHub release status and Datadog health, then notifies the inference team in Slack.

naftiko: "0.5"
info:
  label: "GitHub Triton Inference Deployment Gate"
  description: "Validates Triton Inference Server deployment by checking GitHub release status and Datadog health, then notifies the inference team in Slack."
  tags:
    - ai
    - github
    - datadog
    - slack
capability:
  exposes:
    - type: mcp
      namespace: triton-deploy
      port: 8080
      tools:
        - name: handle-triton-deployment
          description: "Given a release tag, validate deployment readiness and notify the inference team in Slack."
          inputParameters:
            - name: release_tag
              in: body
              type: string
              description: "GitHub release tag for Triton."
          steps:
            - name: get-release
              type: call
              call: github-triton.get-release
              with:
                tag: "{{release_tag}}"
            - name: check-health
              type: call
              call: dd-triton.get-monitors
              with:
                tags: "triton-inference"
            - name: notify-team
              type: call
              call: slack-triton.post-message
              with:
                channel: "inference-deployments"
                text: "Triton Deploy: {{release_tag}} | Release: {{get-release.name}} | Monitors: {{check-health.total_count}} | Alerts: {{check-health.alert_count}}"
  consumes:
    - type: http
      namespace: github-triton
      baseUri: "https://api.github.com"
      authentication:
        type: bearer
        token: "$secrets.github_token"
      resources:
        - name: releases
          path: "/repos/NVIDIA/triton-inference-server/releases/tags/{{tag}}"
          inputParameters:
            - name: tag
              in: path
          operations:
            - name: get-release
              method: GET
    - type: http
      namespace: dd-triton
      baseUri: "https://api.datadoghq.com/api/v1"
      authentication:
        type: apikey
        key: "DD-API-KEY"
        value: "$secrets.datadog_api_key"
        placement: header
      resources:
        - name: monitors
          path: "/monitor"
          inputParameters:
            - name: tags
              in: query
          operations:
            - name: get-monitors
              method: GET
    - type: http
      namespace: slack-triton
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token"
      resources:
        - name: messages
          path: "/chat.postMessage"
          operations:
            - name: post-message
              method: POST

Monitors Datadog cost metrics for GPU cluster spend anomalies, opens a Jira ticket for investigation, and notifies the FinOps Slack channel.

naftiko: "0.5"
info:
  label: "GPU Infrastructure Cost Anomaly Responder"
  description: "Monitors Datadog cost metrics for GPU cluster spend anomalies, opens a Jira ticket for investigation, and notifies the FinOps Slack channel."
  tags:
    - cloud
    - finops
    - datadog
    - jira
    - slack
    - cost-management
capability:
  exposes:
    - type: mcp
      namespace: cloud-ops
      port: 8080
      tools:
        - name: handle-cost-anomaly
          description: "Given a cost anomaly alert from Datadog (metric name, threshold exceeded, percentage over), open a Jira investigation ticket and notify the #finops Slack channel. Use when GPU or cloud spend spikes unexpectedly."
          inputParameters:
            - name: metric_name
              in: body
              type: string
              description: "The Datadog metric that triggered the anomaly (e.g., 'aws.ec2.gpu.utilization')."
            - name: current_value
              in: body
              type: number
              description: "The current metric value that exceeded the threshold."
            - name: threshold
              in: body
              type: number
              description: "The configured anomaly threshold value."
            - name: environment
              in: body
              type: string
              description: "The environment affected (e.g., 'prod', 'staging')."
          steps:
            - name: create-jira-ticket
              type: call
              call: "jira.create-issue"
              with:
                project_key: "FINOPS"
                issuetype: "Task"
                summary: "Cost Anomaly: {{metric_name}} exceeded {{threshold}} in {{environment}}"
                description: "Metric: {{metric_name}}\nCurrent Value: {{current_value}}\nThreshold: {{threshold}}\nEnvironment: {{environment}}"
            - name: notify-finops
              type: call
              call: "slack.post-message"
              with:
                channel: "finops-alerts"
                text: "Cost Anomaly Detected: {{metric_name}} = {{current_value}} (threshold: {{threshold}}) in {{environment}}. Jira: {{create-jira-ticket.key}}"
  consumes:
    - type: http
      namespace: jira
      baseUri: "https://nvidia.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: slack
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token"
      resources:
        - name: messages
          path: "/chat.postMessage"
          operations:
            - name: post-message
              method: POST

Returns current headcount grouped by department and cost center from Workday, used for workforce planning and finance reporting.

naftiko: "0.5"
info:
  label: "Headcount Snapshot by Department"
  description: "Returns current headcount grouped by department and cost center from Workday, used for workforce planning and finance reporting."
  tags:
    - hr
    - workforce-planning
    - workday
    - reporting
capability:
  exposes:
    - type: mcp
      namespace: hr-reporting
      port: 8080
      tools:
        - name: get-headcount-snapshot
          description: "Returns a list of active employees grouped by department and cost center from Workday. Use for headcount planning, finance reporting, or org chart analysis."
          call: "workday.list-workers"
          outputParameters:
            - name: employees
              type: array
              mapping: "$.data"
            - name: total_count
              type: number
              mapping: "$.total"
  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-export
          path: "/nvidia/workers"
          operations:
            - name: list-workers
              method: GET

Tracks AI ethics review requests in Jira and notifies the responsible AI team in Slack.

naftiko: "0.5"
info:
  label: "Jira AI Ethics Review Workflow"
  description: "Tracks AI ethics review requests in Jira and notifies the responsible AI team in Slack."
  tags:
    - ethics
    - jira
    - slack
    - ai
capability:
  exposes:
    - type: mcp
      namespace: ethics-ops
      port: 8080
      tools:
        - name: handle-ethics-review
          description: "Given a Jira project key, track ethics review items and notify the responsible AI team."
          inputParameters:
            - name: project_key
              in: body
              type: string
              description: "Jira project key for ethics reviews."
          steps:
            - name: search-reviews
              type: call
              call: jira-ethics.search-issues
              with:
                jql: "project = {{project_key}} AND status = 'Pending Review'"
            - name: post-status
              type: call
              call: slack-ethics.post-message
              with:
                channel: "responsible-ai"
                text: "Ethics Review Queue: {{search-reviews.total}} pending reviews | Please prioritize in Jira."
  consumes:
    - type: http
      namespace: jira-ethics
      baseUri: "https://nvidia.atlassian.net/rest/api/3"
      authentication:
        type: basic
        username: "$secrets.jira_user"
        password: "$secrets.jira_api_token"
      resources:
        - name: search
          path: "/search"
          inputParameters:
            - name: jql
              in: query
          operations:
            - name: search-issues
              method: GET
    - type: http
      namespace: slack-ethics
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token"
      resources:
        - name: messages
          path: "/chat.postMessage"
          operations:
            - name: post-message
              method: POST

Retrieves the current sprint status for the NVIDIA AI Platform Jira board.

naftiko: "0.5"
info:
  label: "Jira AI Platform Sprint Status"
  description: "Retrieves the current sprint status for the NVIDIA AI Platform Jira board."
  tags:
    - project-management
    - jira
    - ai-platform
capability:
  exposes:
    - type: mcp
      namespace: ai-platform-pm
      port: 8080
      tools:
        - name: get-sprint-status
          description: "Given a Jira board ID, return the current sprint status for the AI platform team. Use for standup meetings."
          inputParameters:
            - name: board_id
              in: body
              type: integer
              description: "Jira board ID."
          call: "jira-aiplatform.get-sprints"
          with:
            board_id: "{{board_id}}"
          outputParameters:
            - name: sprints
              type: array
              mapping: "$.values"
  consumes:
    - type: http
      namespace: jira-aiplatform
      baseUri: "https://nvidia.atlassian.net/rest/agile/1.0"
      authentication:
        type: basic
        username: "$secrets.jira_user"
        password: "$secrets.jira_api_token"
      resources:
        - name: sprints
          path: "/board/{{board_id}}/sprint"
          inputParameters:
            - name: board_id
              in: path
          operations:
            - name: get-sprints
              method: GET

When a Jira bug is escalated to P1, creates a dedicated Slack incident channel, pins the Jira link, and invites the on-call response team.

naftiko: "0.5"
info:
  label: "Jira Bug to Slack Incident Command"
  description: "When a Jira bug is escalated to P1, creates a dedicated Slack incident channel, pins the Jira link, and invites the on-call response team."
  tags:
    - itsm
    - devops
    - jira
    - slack
    - incident-response
capability:
  exposes:
    - type: mcp
      namespace: incident-command
      port: 8080
      tools:
        - name: create-incident-channel
          description: "Given a Jira P1 bug key and on-call user IDs, create a Slack incident channel named after the bug key, post the Jira link, and invite the responders. Use immediately upon P1 escalation."
          inputParameters:
            - name: jira_bug_key
              in: body
              type: string
              description: "The Jira P1 bug key (e.g., 'ENG-9871')."
            - name: jira_bug_url
              in: body
              type: string
              description: "Direct URL to the Jira bug for pinning in the incident channel."
            - name: oncall_slack_user_ids
              in: body
              type: string
              description: "Comma-separated Slack user IDs to invite to the incident channel."
          steps:
            - name: create-slack-channel
              type: call
              call: "slack.create-channel"
              with:
                name: "inc-{{jira_bug_key}}"
            - name: post-jira-link
              type: call
              call: "slack-msg.post-message"
              with:
                channel: "{{create-slack-channel.channel_id}}"
                text: "Incident channel for {{jira_bug_key}}: {{jira_bug_url}} — On-call responders please join."
  consumes:
    - type: http
      namespace: slack
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token"
      resources:
        - name: conversations
          path: "/conversations.create"
          operations:
            - name: create-channel
              method: POST
    - type: http
      namespace: slack-msg
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token"
      resources:
        - name: messages
          path: "/chat.postMessage"
          operations:
            - name: post-message
              method: POST

Tracks compliance audit items in Jira, checks status, and posts updates to the compliance Slack channel.

naftiko: "0.5"
info:
  label: "Jira Compliance Audit Tracker"
  description: "Tracks compliance audit items in Jira, checks status, and posts updates to the compliance Slack channel."
  tags:
    - compliance
    - jira
    - slack
    - audit
capability:
  exposes:
    - type: mcp
      namespace: compliance-ops
      port: 8080
      tools:
        - name: handle-audit-tracking
          description: "Given a Jira project key for compliance, track audit items and post to Slack."
          inputParameters:
            - name: project_key
              in: body
              type: string
              description: "Jira project key."
          steps:
            - name: search-items
              type: call
              call: jira-comp.search-issues
              with:
                jql: "project = {{project_key}} AND status != Done"
            - name: post-status
              type: call
              call: slack-comp.post-message
              with:
                channel: "compliance"
                text: "Audit Status: {{project_key}} | Open items: {{search-items.total}} | Please review in Jira."
  consumes:
    - type: http
      namespace: jira-comp
      baseUri: "https://nvidia.atlassian.net/rest/api/3"
      authentication:
        type: basic
        username: "$secrets.jira_user"
        password: "$secrets.jira_api_token"
      resources:
        - name: search
          path: "/search"
          inputParameters:
            - name: jql
              in: query
          operations:
            - name: search-issues
              method: GET
    - type: http
      namespace: slack-comp
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token"
      resources:
        - name: messages
          path: "/chat.postMessage"
          operations:
            - name: post-message
              method: POST

Identifies cross-team dependencies in Jira and posts a dependency status report to the program management Slack channel.

naftiko: "0.5"
info:
  label: "Jira Cross-Team Dependency Report"
  description: "Identifies cross-team dependencies in Jira and posts a dependency status report to the program management Slack channel."
  tags:
    - project-management
    - jira
    - slack
    - dependencies
capability:
  exposes:
    - type: mcp
      namespace: dep-ops
      port: 8080
      tools:
        - name: handle-dependency-report
          description: "Given a project key, identify blocked items and post a report to Slack."
          inputParameters:
            - name: project_key
              in: body
              type: string
              description: "Jira project key."
          steps:
            - name: search-blocked
              type: call
              call: jira-deps.search-issues
              with:
                jql: "project = {{project_key}} AND status = Blocked"
            - name: post-report
              type: call
              call: slack-pm.post-message
              with:
                channel: "program-management"
                text: "Dependency Report: {{project_key}} | Blocked items: {{search-blocked.total}} | Review in Jira."
  consumes:
    - type: http
      namespace: jira-deps
      baseUri: "https://nvidia.atlassian.net/rest/api/3"
      authentication:
        type: basic
        username: "$secrets.jira_user"
        password: "$secrets.jira_api_token"
      resources:
        - name: search
          path: "/search"
          inputParameters:
            - name: jql
              in: query
          operations:
            - name: search-issues
              method: GET
    - type: http
      namespace: slack-pm
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token"
      resources:
        - name: messages
          path: "/chat.postMessage"
          operations:
            - name: post-message
              method: POST

Escalates customer support issues from Salesforce to Jira engineering tickets and notifies the support team in Slack.

naftiko: "0.5"
info:
  label: "Jira Customer Support Escalation"
  description: "Escalates customer support issues from Salesforce to Jira engineering tickets and notifies the support team in Slack."
  tags:
    - support
    - jira
    - salesforce
    - slack
capability:
  exposes:
    - type: mcp
      namespace: support-escalation
      port: 8080
      tools:
        - name: handle-support-escalation
          description: "Given a Salesforce case ID, create a Jira engineering ticket and notify the support team."
          inputParameters:
            - name: case_id
              in: body
              type: string
              description: "Salesforce case ID."
          steps:
            - name: get-case
              type: call
              call: sf-support.get-case
              with:
                case_id: "{{case_id}}"
            - name: create-ticket
              type: call
              call: jira-support.create-issue
              with:
                project_key: "ENG"
                issuetype: "Bug"
                summary: "Customer escalation: {{get-case.Subject}}"
                description: "From SF case {{case_id}}: {{get-case.Description}}"
            - name: notify-support
              type: call
              call: slack-support.post-message
              with:
                channel: "support-escalations"
                text: "ESCALATION: {{get-case.Subject}} | Case: {{case_id}} | Jira: {{create-ticket.key}}"
  consumes:
    - type: http
      namespace: sf-support
      baseUri: "https://nvidia.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token"
      resources:
        - name: cases
          path: "/sobjects/Case/{{case_id}}"
          inputParameters:
            - name: case_id
              in: path
          operations:
            - name: get-case
              method: GET
    - type: http
      namespace: jira-support
      baseUri: "https://nvidia.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: slack-support
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token"
      resources:
        - name: messages
          path: "/chat.postMessage"
          operations:
            - name: post-message
              method: POST

Returns the current count of open bugs in the DGX systems Jira project.

naftiko: "0.5"
info:
  label: "Jira DGX Bug Count"
  description: "Returns the current count of open bugs in the DGX systems Jira project."
  tags:
    - engineering
    - jira
    - dgx
capability:
  exposes:
    - type: mcp
      namespace: dgx-eng
      port: 8080
      tools:
        - name: get-dgx-bug-count
          description: "Given a priority, return the count of open DGX bugs in Jira. Use for quality tracking and sprint planning."
          inputParameters:
            - name: priority
              in: body
              type: string
              description: "Bug priority filter (e.g. High, Critical)."
          call: "jira-dgx.search-issues"
          with:
            jql: "project = DGX AND type = Bug AND status != Done AND priority = {{priority}}"
          outputParameters:
            - name: total
              type: number
              mapping: "$.total"
  consumes:
    - type: http
      namespace: jira-dgx
      baseUri: "https://nvidia.atlassian.net/rest/api/3"
      authentication:
        type: basic
        username: "$secrets.jira_user"
        password: "$secrets.jira_api_token"
      resources:
        - name: search
          path: "/search"
          inputParameters:
            - name: jql
              in: query
          operations:
            - name: search-issues
              method: GET

Validates GPU driver release readiness by checking Jira ticket statuses and Datadog test monitors, then posts a go/no-go to Slack.

naftiko: "0.5"
info:
  label: "Jira Driver Release Readiness Check"
  description: "Validates GPU driver release readiness by checking Jira ticket statuses and Datadog test monitors, then posts a go/no-go to Slack."
  tags:
    - engineering
    - jira
    - datadog
    - slack
capability:
  exposes:
    - type: mcp
      namespace: driver-release
      port: 8080
      tools:
        - name: handle-driver-readiness
          description: "Given a Jira fix version and Datadog service tag, validate driver release readiness and post to Slack."
          inputParameters:
            - name: fix_version
              in: body
              type: string
              description: "Jira fix version for the driver release."
            - name: service_tag
              in: body
              type: string
              description: "Datadog service tag for test monitors."
          steps:
            - name: check-tickets
              type: call
              call: jira-driver.search-issues
              with:
                jql: "fixVersion = {{fix_version}} AND status != Done"
            - name: check-monitors
              type: call
              call: dd-driver.get-monitors
              with:
                tags: "{{service_tag}}"
            - name: post-readiness
              type: call
              call: slack-driver.post-message
              with:
                channel: "driver-releases"
                text: "Driver Release Readiness: {{fix_version}} | Open tickets: {{check-tickets.total}} | Monitor alerts: {{check-monitors.alert_count}}"
  consumes:
    - type: http
      namespace: jira-driver
      baseUri: "https://nvidia.atlassian.net/rest/api/3"
      authentication:
        type: basic
        username: "$secrets.jira_user"
        password: "$secrets.jira_api_token"
      resources:
        - name: search
          path: "/search"
          inputParameters:
            - name: jql
              in: query
          operations:
            - name: search-issues
              method: GET
    - type: http
      namespace: dd-driver
      baseUri: "https://api.datadoghq.com/api/v1"
      authentication:
        type: apikey
        key: "DD-API-KEY"
        value: "$secrets.datadog_api_key"
        placement: header
      resources:
        - name: monitors
          path: "/monitor"
          inputParameters:
            - name: tags
              in: query
          operations:
            - name: get-monitors
              method: GET
    - type: http
      namespace: slack-driver
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token"
      resources:
        - name: messages
          path: "/chat.postMessage"
          operations:
            - name: post-message
              method: POST

When a hardware defect is reported in Jira, creates a ServiceNow change request and notifies the hardware team in Slack.

naftiko: "0.5"
info:
  label: "Jira Hardware Defect to ServiceNow"
  description: "When a hardware defect is reported in Jira, creates a ServiceNow change request and notifies the hardware team in Slack."
  tags:
    - hardware
    - jira
    - servicenow
    - slack
capability:
  exposes:
    - type: mcp
      namespace: hw-defect
      port: 8080
      tools:
        - name: handle-hw-defect
          description: "Given a Jira issue key for a hardware defect, create a ServiceNow change request and notify hardware engineering."
          inputParameters:
            - name: issue_key
              in: body
              type: string
              description: "Jira issue key."
          steps:
            - name: get-issue
              type: call
              call: jira-hw.get-issue
              with:
                issue_key: "{{issue_key}}"
            - name: create-change
              type: call
              call: snow-hw.create-change
              with:
                short_description: "HW defect: {{get-issue.fields.summary}}"
                description: "From Jira {{issue_key}}: {{get-issue.fields.description}}"
            - name: notify-hw
              type: call
              call: slack-hw.post-message
              with:
                channel: "hardware-engineering"
                text: "HW DEFECT: {{issue_key}} | {{get-issue.fields.summary}} | SNOW: {{create-change.number}}"
  consumes:
    - type: http
      namespace: jira-hw
      baseUri: "https://nvidia.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
    - type: http
      namespace: snow-hw
      baseUri: "https://nvidia.service-now.com/api/now"
      authentication:
        type: bearer
        token: "$secrets.servicenow_token"
      resources:
        - name: changes
          path: "/table/change_request"
          operations:
            - name: create-change
              method: POST
    - type: http
      namespace: slack-hw
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token"
      resources:
        - name: messages
          path: "/chat.postMessage"
          operations:
            - name: post-message
              method: POST

Compiles NeMo framework sprint metrics from Jira and posts a retrospective summary to the AI frameworks Slack channel.

naftiko: "0.5"
info:
  label: "Jira NeMo Sprint Retrospective"
  description: "Compiles NeMo framework sprint metrics from Jira and posts a retrospective summary to the AI frameworks Slack channel."
  tags:
    - engineering
    - jira
    - slack
    - agile
capability:
  exposes:
    - type: mcp
      namespace: nemo-agile
      port: 8080
      tools:
        - name: handle-nemo-retro
          description: "Given a sprint ID, compile NeMo sprint metrics and post a retrospective to Slack."
          inputParameters:
            - name: sprint_id
              in: body
              type: integer
              description: "Jira sprint ID."
          steps:
            - name: get-sprint
              type: call
              call: jira-nemo.get-sprint
              with:
                sprint_id: "{{sprint_id}}"
            - name: get-issues
              type: call
              call: jira-nemo.get-sprint-issues
              with:
                sprint_id: "{{sprint_id}}"
            - name: post-retro
              type: call
              call: slack-nemo.post-message
              with:
                channel: "ai-frameworks"
                text: "NeMo Sprint Retro: {{get-sprint.name}} | Completed: {{get-issues.total}} | Goal: {{get-sprint.goal}}"
  consumes:
    - type: http
      namespace: jira-nemo
      baseUri: "https://nvidia.atlassian.net/rest/agile/1.0"
      authentication:
        type: basic
        username: "$secrets.jira_user"
        password: "$secrets.jira_api_token"
      resources:
        - name: sprints
          path: "/sprint/{{sprint_id}}"
          inputParameters:
            - name: sprint_id
              in: path
          operations:
            - name: get-sprint
              method: GET
        - name: sprint-issues
          path: "/sprint/{{sprint_id}}/issue"
          inputParameters:
            - name: sprint_id
              in: path
          operations:
            - name: get-sprint-issues
              method: GET
    - type: http
      namespace: slack-nemo
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token"
      resources:
        - name: messages
          path: "/chat.postMessage"
          operations:
            - name: post-message
              method: POST

Compiles quarterly GPU product roadmap progress from Jira epics and posts a summary to the executive Slack channel.

naftiko: "0.5"
info:
  label: "Jira Quarterly Roadmap Summary"
  description: "Compiles quarterly GPU product roadmap progress from Jira epics and posts a summary to the executive Slack channel."
  tags:
    - project-management
    - jira
    - slack
    - reporting
capability:
  exposes:
    - type: mcp
      namespace: roadmap-ops
      port: 8080
      tools:
        - name: handle-roadmap-summary
          description: "Given a project key and quarter, compile roadmap progress and post to the executive Slack channel."
          inputParameters:
            - name: project_key
              in: body
              type: string
              description: "Jira project key."
            - name: quarter
              in: body
              type: string
              description: "Quarter (e.g. Q1-2026)."
          steps:
            - name: search-epics
              type: call
              call: jira-roadmap.search-issues
              with:
                jql: "project = {{project_key}} AND type = Epic AND updated >= startOfQuarter()"
            - name: post-summary
              type: call
              call: slack-exec.post-message
              with:
                channel: "executive-updates"
                text: "Quarterly Roadmap ({{quarter}}): {{project_key}} | Epics: {{search-epics.total}} | Review in Jira."
  consumes:
    - type: http
      namespace: jira-roadmap
      baseUri: "https://nvidia.atlassian.net/rest/api/3"
      authentication:
        type: basic
        username: "$secrets.jira_user"
        password: "$secrets.jira_api_token"
      resources:
        - name: search
          path: "/search"
          inputParameters:
            - name: jql
              in: query
          operations:
            - name: search-issues
              method: GET
    - type: http
      namespace: slack-exec
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token"
      resources:
        - name: messages
          path: "/chat.postMessage"
          operations:
            - name: post-message
              method: POST

Fetches the active sprint for a Jira project board, computes completion percentage, and posts the digest to a Microsoft Teams channel.

naftiko: "0.5"
info:
  label: "Jira Sprint Progress Digest"
  description: "Fetches the active sprint for a Jira project board, computes completion percentage, and posts the digest to a Microsoft Teams channel."
  tags:
    - devops
    - jira
    - microsoft-teams
    - reporting
    - agile
capability:
  exposes:
    - type: mcp
      namespace: devops-reporting
      port: 8080
      tools:
        - name: digest-sprint-progress
          description: "Given a Jira board ID, fetch the active sprint's issues, compute completion stats, and post the summary to a Microsoft Teams channel. Use for daily stand-up digests or weekly engineering reviews."
          inputParameters:
            - name: jira_board_id
              in: body
              type: integer
              description: "The Jira agile board ID (numeric) to query for the active sprint."
            - name: teams_channel_id
              in: body
              type: string
              description: "The Microsoft Teams channel ID to post the digest to."
          steps:
            - name: get-active-sprint
              type: call
              call: "jira.get-board-sprints"
              with:
                board_id: "{{jira_board_id}}"
                state: "active"
            - name: get-sprint-issues
              type: call
              call: "jira-issues.search-issues"
              with:
                jql: "sprint = {{get-active-sprint.sprint_id}} ORDER BY status"
            - name: post-digest
              type: call
              call: "msteams.post-channel-message"
              with:
                channel_id: "{{teams_channel_id}}"
                text: "Sprint Progress: Board {{jira_board_id}} — Sprint {{get-active-sprint.sprint_name}} | Total issues: {{get-sprint-issues.total}}"
  consumes:
    - type: http
      namespace: jira
      baseUri: "https://nvidia.atlassian.net/rest/api/3"
      authentication:
        type: basic
        username: "$secrets.jira_user"
        password: "$secrets.jira_api_token"
      resources:
        - name: board-sprints
          path: "/board/{{board_id}}/sprint"
          inputParameters:
            - name: board_id
              in: path
            - name: state
              in: query
          operations:
            - name: get-board-sprints
              method: GET
    - type: http
      namespace: jira-issues
      baseUri: "https://nvidia.atlassian.net/rest/api/3"
      authentication:
        type: basic
        username: "$secrets.jira_user"
        password: "$secrets.jira_api_token"
      resources:
        - name: issues-search
          path: "/search"
          inputParameters:
            - name: jql
              in: query
          operations:
            - name: search-issues
              method: GET
    - type: http
      namespace: msteams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: channel-messages
          path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
          inputParameters:
            - name: team_id
              in: path
            - name: channel_id
              in: path
          operations:
            - name: post-channel-message
              method: POST

Publishes an employer brand or product announcement post to the NVIDIA LinkedIn company page, then posts the published URL to the communications Slack channel.

naftiko: "0.5"
info:
  label: "LinkedIn Employer Brand Post Scheduler"
  description: "Publishes an employer brand or product announcement post to the NVIDIA LinkedIn company page, then posts the published URL to the communications Slack channel."
  tags:
    - marketing
    - social
    - linkedin
    - slack
capability:
  exposes:
    - type: mcp
      namespace: social-marketing
      port: 8080
      tools:
        - name: publish-linkedin-post
          description: "Given post content and optional media, publish a post to the NVIDIA LinkedIn company page and notify the #communications Slack channel with the post URL. Use for employer branding or product announcements."
          inputParameters:
            - name: post_text
              in: body
              type: string
              description: "The text content of the LinkedIn post."
            - name: visibility
              in: body
              type: string
              description: "Post visibility: 'PUBLIC' or 'CONNECTIONS'."
          steps:
            - name: create-linkedin-post
              type: call
              call: "linkedin.create-share"
              with:
                text: "{{post_text}}"
                visibility: "{{visibility}}"
            - name: notify-comms
              type: call
              call: "slack.post-message"
              with:
                channel: "communications"
                text: "LinkedIn post published: {{create-linkedin-post.activity_id}}"
  consumes:
    - type: http
      namespace: linkedin
      baseUri: "https://api.linkedin.com/v2"
      authentication:
        type: bearer
        token: "$secrets.linkedin_access_token"
      resources:
        - name: shares
          path: "/ugcPosts"
          operations:
            - name: create-share
              method: POST
    - type: http
      namespace: slack
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token"
      resources:
        - name: messages
          path: "/chat.postMessage"
          operations:
            - name: post-message
              method: POST

Sends a broadcast message to all NVIDIA Microsoft Teams channels in a specified team, used for company-wide announcements and all-hands meeting reminders.

naftiko: "0.5"
info:
  label: "Microsoft Teams All-Hands Broadcast"
  description: "Sends a broadcast message to all NVIDIA Microsoft Teams channels in a specified team, used for company-wide announcements and all-hands meeting reminders."
  tags:
    - communication
    - microsoft-teams
    - announcements
capability:
  exposes:
    - type: mcp
      namespace: communications-ops
      port: 8080
      tools:
        - name: broadcast-all-hands-notice
          description: "Given a Teams team ID and message content, post an all-hands announcement to the general channel. Use for company-wide announcements, meeting invites, or policy updates."
          inputParameters:
            - name: team_id
              in: body
              type: string
              description: "The Microsoft Teams team ID to broadcast to."
            - name: channel_id
              in: body
              type: string
              description: "The Teams channel ID (typically the General channel)."
            - name: message
              in: body
              type: string
              description: "The announcement message content."
          call: "msteams.post-channel-message"
          with:
            team_id: "{{team_id}}"
            channel_id: "{{channel_id}}"
            text: "{{message}}"
  consumes:
    - type: http
      namespace: msteams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: channel-messages
          path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
          inputParameters:
            - name: team_id
              in: path
            - name: channel_id
              in: path
          operations:
            - name: post-channel-message
              method: POST

Creates a Microsoft Teams meeting for a Salesforce opportunity deal review, inviting all listed opportunity stakeholders.

naftiko: "0.5"
info:
  label: "Microsoft Teams Meeting Scheduler for Deal Review"
  description: "Creates a Microsoft Teams meeting for a Salesforce opportunity deal review, inviting all listed opportunity stakeholders."
  tags:
    - sales
    - communication
    - salesforce
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: sales-coordination
      port: 8080
      tools:
        - name: schedule-deal-review
          description: "Given a Salesforce opportunity ID and meeting datetime, fetch opportunity contacts and create a Microsoft Teams meeting invite for all stakeholders. Use when scheduling a deal review or QBR for an active opportunity."
          inputParameters:
            - name: opportunity_id
              in: body
              type: string
              description: "The Salesforce opportunity ID for the deal review."
            - name: meeting_start
              in: body
              type: string
              description: "Meeting start time in ISO 8601 format."
            - name: meeting_end
              in: body
              type: string
              description: "Meeting end time in ISO 8601 format."
          steps:
            - name: get-opportunity
              type: call
              call: "salesforce.get-opportunity"
              with:
                opportunity_id: "{{opportunity_id}}"
            - name: create-teams-meeting
              type: call
              call: "msteams.create-online-meeting"
              with:
                subject: "Deal Review: {{get-opportunity.Name}}"
                start_datetime: "{{meeting_start}}"
                end_datetime: "{{meeting_end}}"
  consumes:
    - type: http
      namespace: salesforce
      baseUri: "https://nvidia.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token"
      resources:
        - name: opportunities
          path: "/sobjects/Opportunity/{{opportunity_id}}"
          inputParameters:
            - name: opportunity_id
              in: path
          operations:
            - name: get-opportunity
              method: GET
    - type: http
      namespace: msteams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: online-meetings
          path: "/me/onlineMeetings"
          operations:
            - name: create-online-meeting
              method: POST

When a Salesforce opportunity moves to the Proposal stage, creates a scoping Jira epic and assigns it to the solutions engineering team.

naftiko: "0.5"
info:
  label: "New Jira Epic from Salesforce Opportunity"
  description: "When a Salesforce opportunity moves to the Proposal stage, creates a scoping Jira epic and assigns it to the solutions engineering team."
  tags:
    - sales
    - devops
    - salesforce
    - jira
capability:
  exposes:
    - type: mcp
      namespace: presales-ops
      port: 8080
      tools:
        - name: create-scoping-epic
          description: "Given a Salesforce opportunity ID, create a scoping Jira epic for the solutions engineering team. Use when an opportunity reaches Proposal stage and technical scoping work needs to begin."
          inputParameters:
            - name: opportunity_id
              in: body
              type: string
              description: "The Salesforce opportunity ID at Proposal stage."
            - name: jira_project_key
              in: body
              type: string
              description: "The Jira project key for the solutions engineering team."
          steps:
            - name: get-opportunity
              type: call
              call: "salesforce.get-opportunity"
              with:
                opportunity_id: "{{opportunity_id}}"
            - name: create-scoping-epic
              type: call
              call: "jira.create-issue"
              with:
                project_key: "{{jira_project_key}}"
                issuetype: "Epic"
                summary: "Scoping: {{get-opportunity.Name}}"
                description: "Technical scoping for opportunity {{opportunity_id}}. Account: {{get-opportunity.AccountName}}. Value: {{get-opportunity.Amount}}."
  consumes:
    - type: http
      namespace: salesforce
      baseUri: "https://nvidia.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token"
      resources:
        - name: opportunities
          path: "/sobjects/Opportunity/{{opportunity_id}}"
          inputParameters:
            - name: opportunity_id
              in: path
          operations:
            - name: get-opportunity
              method: GET
    - type: http
      namespace: jira
      baseUri: "https://nvidia.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

When a Jira access request ticket is approved, provisions the user into the correct Okta groups and closes the ticket.

naftiko: "0.5"
info:
  label: "Okta Group Provisioning from Jira Role Request"
  description: "When a Jira access request ticket is approved, provisions the user into the correct Okta groups and closes the ticket."
  tags:
    - identity
    - security
    - okta
    - jira
    - access-management
capability:
  exposes:
    - type: mcp
      namespace: access-provisioning
      port: 8080
      tools:
        - name: provision-okta-group-access
          description: "Given a Jira access request ticket number and Okta group ID, add the user to the Okta group and close the Jira ticket. Use when an IT access request has been approved and needs to be fulfilled."
          inputParameters:
            - name: jira_ticket_key
              in: body
              type: string
              description: "The Jira ticket key for the approved access request (e.g., 'ACCESS-4521')."
            - name: okta_user_id
              in: body
              type: string
              description: "The Okta user ID of the requester."
            - name: okta_group_id
              in: body
              type: string
              description: "The Okta group ID to add the user to."
          steps:
            - name: add-to-okta-group
              type: call
              call: "okta.add-user-to-group"
              with:
                group_id: "{{okta_group_id}}"
                user_id: "{{okta_user_id}}"
            - name: close-jira-ticket
              type: call
              call: "jira.transition-issue"
              with:
                issue_key: "{{jira_ticket_key}}"
                transition_id: "Done"
  consumes:
    - type: http
      namespace: okta
      baseUri: "https://nvidia.okta.com/api/v1"
      authentication:
        type: apikey
        key: "Authorization"
        value: "$secrets.okta_api_token"
        placement: header
      resources:
        - name: group-users
          path: "/groups/{{group_id}}/users/{{user_id}}"
          inputParameters:
            - name: group_id
              in: path
            - name: user_id
              in: path
          operations:
            - name: add-user-to-group
              method: PUT
    - type: http
      namespace: jira
      baseUri: "https://nvidia.atlassian.net/rest/api/3"
      authentication:
        type: basic
        username: "$secrets.jira_user"
        password: "$secrets.jira_api_token"
      resources:
        - name: issue-transitions
          path: "/issue/{{issue_key}}/transitions"
          inputParameters:
            - name: issue_key
              in: path
          operations:
            - name: transition-issue
              method: POST

Pulls a list of Okta users with inactive status or no login in 90 days and posts the report to a Slack channel for the identity governance team.

naftiko: "0.5"
info:
  label: "Okta User Access Review"
  description: "Pulls a list of Okta users with inactive status or no login in 90 days and posts the report to a Slack channel for the identity governance team."
  tags:
    - identity
    - security
    - okta
    - slack
    - access-review
capability:
  exposes:
    - type: mcp
      namespace: identity-ops
      port: 8080
      tools:
        - name: run-access-review
          description: "List Okta users who are inactive or have not logged in for 90+ days and post the count and details to the #identity-governance Slack channel. Use for quarterly access reviews or compliance audits."
          inputParameters:
            - name: days_inactive
              in: body
              type: integer
              description: "Number of days without login to consider a user inactive (default 90)."
            - name: slack_channel
              in: body
              type: string
              description: "Slack channel for the access review report (e.g., '#identity-governance')."
          steps:
            - name: list-inactive-users
              type: call
              call: "okta.list-users"
              with:
                filter: "status eq \"ACTIVE\" and lastLogin lt \"90 days ago\""
            - name: post-report
              type: call
              call: "slack.post-message"
              with:
                channel: "{{slack_channel}}"
                text: "Access Review: {{list-inactive-users.count}} Okta users have not logged in for {{days_inactive}}+ days. Review and action required."
  consumes:
    - type: http
      namespace: okta
      baseUri: "https://nvidia.okta.com/api/v1"
      authentication:
        type: apikey
        key: "Authorization"
        value: "$secrets.okta_api_token"
        placement: header
      resources:
        - name: users
          path: "/users"
          inputParameters:
            - name: filter
              in: query
          operations:
            - name: list-users
              method: GET
    - type: http
      namespace: slack
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token"
      resources:
        - name: messages
          path: "/chat.postMessage"
          operations:
            - name: post-message
              method: POST

Fetches open requisitions and candidate pipeline stages from Workday Recruiting, giving talent teams a real-time view of hiring progress by role.

naftiko: "0.5"
info:
  label: "Recruiting Pipeline Status"
  description: "Fetches open requisitions and candidate pipeline stages from Workday Recruiting, giving talent teams a real-time view of hiring progress by role."
  tags:
    - hr
    - recruiting
    - workday
    - reporting
capability:
  exposes:
    - type: mcp
      namespace: recruiting
      port: 8080
      tools:
        - name: get-recruiting-pipeline
          description: "Given a job requisition ID, return the full candidate pipeline with stage counts from Workday Recruiting. Use for hiring manager updates or talent dashboards."
          inputParameters:
            - name: job_req_id
              in: body
              type: string
              description: "The Workday job requisition ID (e.g., JR-12345)."
          call: "workday-recruiting.get-requisition-pipeline"
          with:
            req_id: "{{job_req_id}}"
          outputParameters:
            - name: requisition_title
              type: string
              mapping: "$.jobRequisitionData.jobRequisitionTitle"
            - name: candidate_count
              type: number
              mapping: "$.jobRequisitionData.candidateCount"
  consumes:
    - type: http
      namespace: workday-recruiting
      baseUri: "https://wd2-impl-services1.workday.com/ccx/api/recruiting/v1"
      authentication:
        type: bearer
        token: "$secrets.workday_token"
      resources:
        - name: requisitions
          path: "/jobRequisitions/{{req_id}}"
          inputParameters:
            - name: req_id
              in: path
          operations:
            - name: get-requisition-pipeline
              method: GET

Orchestrates academic GPU partnership onboarding in Salesforce and notifies the academic programs team in Slack.

naftiko: "0.5"
info:
  label: "Salesforce Academic Partnership Onboarding"
  description: "Orchestrates academic GPU partnership onboarding in Salesforce and notifies the academic programs team in Slack."
  tags:
    - partnerships
    - salesforce
    - slack
    - academic
capability:
  exposes:
    - type: mcp
      namespace: academic-ops
      port: 8080
      tools:
        - name: handle-academic-onboarding
          description: "Given institution details, create a Salesforce partner account and notify the academic team."
          inputParameters:
            - name: institution_name
              in: body
              type: string
              description: "Academic institution name."
            - name: program_type
              in: body
              type: string
              description: "Program type (e.g. research, teaching)."
          steps:
            - name: create-account
              type: call
              call: sf-academic.create-account
              with:
                name: "{{institution_name}}"
                type: "Academic — {{program_type}}"
            - name: notify-team
              type: call
              call: slack-academic.post-message
              with:
                channel: "academic-programs"
                text: "NEW ACADEMIC PARTNER: {{institution_name}} | Program: {{program_type}} | SF: {{create-account.id}}"
  consumes:
    - type: http
      namespace: sf-academic
      baseUri: "https://nvidia.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token"
      resources:
        - name: accounts
          path: "/sobjects/Account"
          operations:
            - name: create-account
              method: POST
    - type: http
      namespace: slack-academic
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token"
      resources:
        - name: messages
          path: "/chat.postMessage"
          operations:
            - name: post-message
              method: POST

Fetches a Salesforce enterprise account's open cases, opportunity pipeline, and last activity date, then posts a health summary to the account team's Slack channel.

naftiko: "0.5"
info:
  label: "Salesforce Account Health Digest"
  description: "Fetches a Salesforce enterprise account's open cases, opportunity pipeline, and last activity date, then posts a health summary to the account team's Slack channel."
  tags:
    - sales
    - crm
    - salesforce
    - slack
    - account-management
capability:
  exposes:
    - type: mcp
      namespace: account-ops
      port: 8080
      tools:
        - name: digest-account-health
          description: "Given a Salesforce account ID and Slack channel, fetch open support cases, pipeline opportunities, and last activity date, then post a structured health digest. Use for weekly account reviews or pre-meeting prep."
          inputParameters:
            - name: account_id
              in: body
              type: string
              description: "The Salesforce account ID (18-character SFDC ID)."
            - name: slack_channel
              in: body
              type: string
              description: "The Slack channel to post the account health digest to."
          steps:
            - name: get-account
              type: call
              call: "salesforce.get-account"
              with:
                account_id: "{{account_id}}"
            - name: get-open-cases
              type: call
              call: "salesforce-cases.query-cases"
              with:
                account_id: "{{account_id}}"
                status: "Open"
            - name: post-digest
              type: call
              call: "slack.post-message"
              with:
                channel: "{{slack_channel}}"
                text: "Account Health: {{get-account.Name}} | Open Cases: {{get-open-cases.totalSize}} | Last Activity: {{get-account.LastActivityDate}}"
  consumes:
    - type: http
      namespace: salesforce
      baseUri: "https://nvidia.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
    - type: http
      namespace: salesforce-cases
      baseUri: "https://nvidia.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token"
      resources:
        - name: cases-query
          path: "/query"
          inputParameters:
            - name: q
              in: query
          operations:
            - name: query-cases
              method: GET
    - type: http
      namespace: slack
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token"
      resources:
        - name: messages
          path: "/chat.postMessage"
          operations:
            - name: post-message
              method: POST

Compiles DGX Cloud customer health scores from Salesforce and posts a digest to the customer success Slack channel.

naftiko: "0.5"
info:
  label: "Salesforce Cloud Customer Health Digest"
  description: "Compiles DGX Cloud customer health scores from Salesforce and posts a digest to the customer success Slack channel."
  tags:
    - customer-success
    - salesforce
    - slack
    - cloud
capability:
  exposes:
    - type: mcp
      namespace: cs-ops
      port: 8080
      tools:
        - name: handle-customer-health
          description: "Given a customer segment, compile health scores and post to customer success."
          inputParameters:
            - name: segment
              in: body
              type: string
              description: "Customer segment (e.g. enterprise, startup)."
          steps:
            - name: query-health
              type: call
              call: sf-cs.query-accounts
              with:
                segment: "{{segment}}"
            - name: post-digest
              type: call
              call: slack-cs.post-message
              with:
                channel: "customer-success"
                text: "Customer Health ({{segment}}): Accounts: {{query-health.totalSize}} | At-risk: {{query-health.at_risk}} | Healthy: {{query-health.healthy}}"
  consumes:
    - type: http
      namespace: sf-cs
      baseUri: "https://nvidia.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token"
      resources:
        - name: accounts
          path: "/query"
          inputParameters:
            - name: segment
              in: query
          operations:
            - name: query-accounts
              method: GET
    - type: http
      namespace: slack-cs
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token"
      resources:
        - name: messages
          path: "/chat.postMessage"
          operations:
            - name: post-message
              method: POST

Orchestrates DGX Cloud trial onboarding by creating Salesforce records, provisioning access, and notifying the cloud team in Slack.

naftiko: "0.5"
info:
  label: "Salesforce DGX Cloud Trial Onboarding"
  description: "Orchestrates DGX Cloud trial onboarding by creating Salesforce records, provisioning access, and notifying the cloud team in Slack."
  tags:
    - cloud
    - salesforce
    - slack
    - onboarding
capability:
  exposes:
    - type: mcp
      namespace: dgx-cloud-ops
      port: 8080
      tools:
        - name: handle-dgx-trial
          description: "Given customer details, create a Salesforce trial record and notify the DGX Cloud team in Slack."
          inputParameters:
            - name: account_id
              in: body
              type: string
              description: "Salesforce account ID."
            - name: trial_tier
              in: body
              type: string
              description: "DGX Cloud trial tier."
          steps:
            - name: get-account
              type: call
              call: sf-dgx.get-account
              with:
                account_id: "{{account_id}}"
            - name: notify-cloud
              type: call
              call: slack-dgx.post-message
              with:
                channel: "dgx-cloud-ops"
                text: "DGX CLOUD TRIAL: {{get-account.Name}} | Tier: {{trial_tier}} | Account: {{account_id}} | Please provision trial environment."
  consumes:
    - type: http
      namespace: sf-dgx
      baseUri: "https://nvidia.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
    - type: http
      namespace: slack-dgx
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token"
      resources:
        - name: messages
          path: "/chat.postMessage"
          operations:
            - name: post-message
              method: POST

When an enterprise deal closes in Salesforce, creates a Jira delivery project and notifies the delivery team in Slack.

naftiko: "0.5"
info:
  label: "Salesforce Enterprise Deal to Jira Delivery"
  description: "When an enterprise deal closes in Salesforce, creates a Jira delivery project and notifies the delivery team in Slack."
  tags:
    - delivery
    - salesforce
    - jira
    - slack
capability:
  exposes:
    - type: mcp
      namespace: deal-delivery
      port: 8080
      tools:
        - name: handle-deal-delivery
          description: "Given a closed opportunity ID, create a Jira delivery project and notify the team."
          inputParameters:
            - name: opportunity_id
              in: body
              type: string
              description: "Salesforce opportunity ID."
          steps:
            - name: get-opp
              type: call
              call: sf-deals.get-opportunity
              with:
                opportunity_id: "{{opportunity_id}}"
            - name: create-project
              type: call
              call: jira-del.create-issue
              with:
                project_key: "DEL"
                issuetype: "Epic"
                summary: "Delivery: {{get-opp.Name}} — {{get-opp.Account.Name}}"
            - name: notify-delivery
              type: call
              call: slack-del.post-message
              with:
                channel: "delivery-ops"
                text: "NEW DELIVERY: {{get-opp.Name}} | Account: {{get-opp.Account.Name}} | ${{get-opp.Amount}} | Jira: {{create-project.key}}"
  consumes:
    - type: http
      namespace: sf-deals
      baseUri: "https://nvidia.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token"
      resources:
        - name: opportunities
          path: "/sobjects/Opportunity/{{opportunity_id}}"
          inputParameters:
            - name: opportunity_id
              in: path
          operations:
            - name: get-opportunity
              method: GET
    - type: http
      namespace: jira-del
      baseUri: "https://nvidia.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: slack-del
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token"
      resources:
        - name: messages
          path: "/chat.postMessage"
          operations:
            - name: post-message
              method: POST

Looks up enterprise GPU order details in Salesforce for data center procurement tracking.

naftiko: "0.5"
info:
  label: "Salesforce Enterprise GPU Order Lookup"
  description: "Looks up enterprise GPU order details in Salesforce for data center procurement tracking."
  tags:
    - sales
    - salesforce
    - gpu
capability:
  exposes:
    - type: mcp
      namespace: gpu-sales
      port: 8080
      tools:
        - name: get-gpu-order
          description: "Given a Salesforce opportunity ID, return enterprise GPU order details. Use for order fulfillment tracking."
          inputParameters:
            - name: opportunity_id
              in: body
              type: string
              description: "Salesforce opportunity record ID."
          call: "sf-gpu.get-opportunity"
          with:
            opportunity_id: "{{opportunity_id}}"
          outputParameters:
            - name: opportunity
              type: object
              mapping: "$"
  consumes:
    - type: http
      namespace: sf-gpu
      baseUri: "https://nvidia.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token"
      resources:
        - name: opportunities
          path: "/sobjects/Opportunity/{{opportunity_id}}"
          inputParameters:
            - name: opportunity_id
              in: path
          operations:
            - name: get-opportunity
              method: GET

When a high-value GPU deal is created in Salesforce, creates a Jira delivery planning epic and alerts sales leadership in Slack.

naftiko: "0.5"
info:
  label: "Salesforce High-Value GPU Deal Alert"
  description: "When a high-value GPU deal is created in Salesforce, creates a Jira delivery planning epic and alerts sales leadership in Slack."
  tags:
    - sales
    - salesforce
    - jira
    - slack
capability:
  exposes:
    - type: mcp
      namespace: deal-ops
      port: 8080
      tools:
        - name: handle-high-value-deal
          description: "Given a Salesforce opportunity ID, create a Jira epic and notify sales leadership in Slack."
          inputParameters:
            - name: opportunity_id
              in: body
              type: string
              description: "Salesforce opportunity record ID."
          steps:
            - name: get-opp
              type: call
              call: sf-deals.get-opportunity
              with:
                opportunity_id: "{{opportunity_id}}"
            - name: create-epic
              type: call
              call: jira-deals.create-issue
              with:
                project_key: "GPU"
                issuetype: "Epic"
                summary: "GPU delivery: {{get-opp.Name}} — ${{get-opp.Amount}}"
            - name: notify-leadership
              type: call
              call: slack-deals.post-message
              with:
                channel: "sales-leadership"
                text: "HIGH-VALUE DEAL: {{get-opp.Name}} | ${{get-opp.Amount}} | Account: {{get-opp.Account.Name}} | Jira: {{create-epic.key}}"
  consumes:
    - type: http
      namespace: sf-deals
      baseUri: "https://nvidia.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token"
      resources:
        - name: opportunities
          path: "/sobjects/Opportunity/{{opportunity_id}}"
          inputParameters:
            - name: opportunity_id
              in: path
          operations:
            - name: get-opportunity
              method: GET
    - type: http
      namespace: jira-deals
      baseUri: "https://nvidia.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: slack-deals
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token"
      resources:
        - name: messages
          path: "/chat.postMessage"
          operations:
            - name: post-message
              method: POST

When a new lead is created in Salesforce from a developer-focused campaign, enriches the record with the lead's public GitHub profile data.

naftiko: "0.5"
info:
  label: "Salesforce Lead Enrichment from GitHub Activity"
  description: "When a new lead is created in Salesforce from a developer-focused campaign, enriches the record with the lead's public GitHub profile data."
  tags:
    - sales
    - crm
    - salesforce
    - github
    - lead-enrichment
capability:
  exposes:
    - type: mcp
      namespace: lead-enrichment
      port: 8080
      tools:
        - name: enrich-developer-lead
          description: "Given a Salesforce lead ID and a GitHub username, fetch the GitHub profile and update the Salesforce lead record with developer context. Use for developer-sourced inbound leads."
          inputParameters:
            - name: lead_id
              in: body
              type: string
              description: "The Salesforce lead ID to enrich."
            - name: github_username
              in: body
              type: string
              description: "The GitHub username of the lead."
          steps:
            - name: get-github-profile
              type: call
              call: "github.get-user"
              with:
                username: "{{github_username}}"
            - name: update-salesforce-lead
              type: call
              call: "salesforce.update-lead"
              with:
                lead_id: "{{lead_id}}"
                github_company: "{{get-github-profile.company}}"
                github_followers: "{{get-github-profile.followers}}"
                github_public_repos: "{{get-github-profile.public_repos}}"
  consumes:
    - type: http
      namespace: github
      baseUri: "https://api.github.com"
      authentication:
        type: bearer
        token: "$secrets.github_token"
      resources:
        - name: users
          path: "/users/{{username}}"
          inputParameters:
            - name: username
              in: path
          operations:
            - name: get-user
              method: GET
    - type: http
      namespace: salesforce
      baseUri: "https://nvidia.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token"
      resources:
        - name: leads
          path: "/sobjects/Lead/{{lead_id}}"
          inputParameters:
            - name: lead_id
              in: path
          operations:
            - name: update-lead
              method: PATCH

Looks up NeMo framework customer license details in Salesforce.

naftiko: "0.5"
info:
  label: "Salesforce NeMo Customer License Lookup"
  description: "Looks up NeMo framework customer license details in Salesforce."
  tags:
    - crm
    - salesforce
    - nemo
capability:
  exposes:
    - type: mcp
      namespace: nemo-licensing
      port: 8080
      tools:
        - name: get-license
          description: "Given a Salesforce account ID, return NeMo framework license details. Use for customer support and renewal tracking."
          inputParameters:
            - name: account_id
              in: body
              type: string
              description: "Salesforce account record ID."
          call: "sf-nemo.get-account"
          with:
            account_id: "{{account_id}}"
          outputParameters:
            - name: account
              type: object
              mapping: "$"
  consumes:
    - type: http
      namespace: sf-nemo
      baseUri: "https://nvidia.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

When a Salesforce opportunity reaches the Closed Won stage, creates a corresponding Jira epic for the delivery team and notifies the account Slack channel.

naftiko: "0.5"
info:
  label: "Salesforce Opportunity Sync to Jira"
  description: "When a Salesforce opportunity reaches the Closed Won stage, creates a corresponding Jira epic for the delivery team and notifies the account Slack channel."
  tags:
    - sales
    - crm
    - salesforce
    - jira
    - slack
capability:
  exposes:
    - type: mcp
      namespace: sales-ops
      port: 8080
      tools:
        - name: sync-closed-won-opportunity
          description: "Given a Salesforce opportunity ID, fetch opportunity details and create a Jira epic for the implementation team. Notify the relevant Slack channel. Use when a deal closes to kick off delivery workflows."
          inputParameters:
            - name: opportunity_id
              in: body
              type: string
              description: "The Salesforce opportunity ID (18-character SFDC ID)."
            - name: jira_project_key
              in: body
              type: string
              description: "The Jira project key for the delivery team (e.g., 'DGX')."
            - name: slack_channel
              in: body
              type: string
              description: "Slack channel to notify on deal close (e.g., '#enterprise-sales')."
          steps:
            - name: get-opportunity
              type: call
              call: "salesforce.get-opportunity"
              with:
                opportunity_id: "{{opportunity_id}}"
            - name: create-jira-epic
              type: call
              call: "jira.create-issue"
              with:
                project_key: "{{jira_project_key}}"
                issuetype: "Epic"
                summary: "Delivery: {{get-opportunity.Name}}"
                description: "Customer: {{get-opportunity.AccountName}}\nValue: {{get-opportunity.Amount}}\nClose Date: {{get-opportunity.CloseDate}}\nSFDC ID: {{opportunity_id}}"
            - name: notify-slack
              type: call
              call: "slack.post-message"
              with:
                channel: "{{slack_channel}}"
                text: "Closed Won: {{get-opportunity.Name}} ({{get-opportunity.Amount}}) — Jira Epic: {{create-jira-epic.key}}"
  consumes:
    - type: http
      namespace: salesforce
      baseUri: "https://nvidia.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token"
      resources:
        - name: opportunities
          path: "/sobjects/Opportunity/{{opportunity_id}}"
          inputParameters:
            - name: opportunity_id
              in: path
          operations:
            - name: get-opportunity
              method: GET
    - type: http
      namespace: jira
      baseUri: "https://nvidia.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: slack
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token"
      resources:
        - name: messages
          path: "/chat.postMessage"
          operations:
            - name: post-message
              method: POST

Tracks NVIDIA partner certifications in Salesforce, creates renewal tasks in Jira, and notifies the partnerships team in Slack.

naftiko: "0.5"
info:
  label: "Salesforce Partner Certification Tracker"
  description: "Tracks NVIDIA partner certifications in Salesforce, creates renewal tasks in Jira, and notifies the partnerships team in Slack."
  tags:
    - partnerships
    - salesforce
    - jira
    - slack
capability:
  exposes:
    - type: mcp
      namespace: partner-cert
      port: 8080
      tools:
        - name: handle-certification-tracking
          description: "Given a partner account ID, check certification status and create renewal tasks if needed."
          inputParameters:
            - name: account_id
              in: body
              type: string
              description: "Salesforce partner account ID."
          steps:
            - name: get-account
              type: call
              call: sf-cert.get-account
              with:
                account_id: "{{account_id}}"
            - name: create-renewal
              type: call
              call: jira-cert.create-issue
              with:
                project_key: "PART"
                issuetype: "Task"
                summary: "Cert renewal: {{get-account.Name}}"
            - name: notify-partners
              type: call
              call: slack-partners.post-message
              with:
                channel: "partnerships"
                text: "CERT TRACKING: {{get-account.Name}} | Account: {{account_id}} | Renewal: {{create-renewal.key}}"
  consumes:
    - type: http
      namespace: sf-cert
      baseUri: "https://nvidia.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
    - type: http
      namespace: jira-cert
      baseUri: "https://nvidia.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: slack-partners
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token"
      resources:
        - name: messages
          path: "/chat.postMessage"
          operations:
            - name: post-message
              method: POST

Generates quarterly revenue forecast from Salesforce, enriches with Snowflake analytics, and posts to the finance Slack channel.

naftiko: "0.5"
info:
  label: "Salesforce Revenue Forecast to Snowflake"
  description: "Generates quarterly revenue forecast from Salesforce, enriches with Snowflake analytics, and posts to the finance Slack channel."
  tags:
    - finance
    - salesforce
    - snowflake
    - slack
capability:
  exposes:
    - type: mcp
      namespace: revenue-ops
      port: 8080
      tools:
        - name: handle-revenue-forecast
          description: "Given a quarter, compile revenue forecast and post to finance."
          inputParameters:
            - name: quarter
              in: body
              type: string
              description: "Quarter (e.g. Q1-2026)."
          steps:
            - name: query-pipeline
              type: call
              call: sf-revenue.query-opportunities
              with:
                quarter: "{{quarter}}"
            - name: enrich-data
              type: call
              call: snowflake-rev.run-query
              with:
                quarter: "{{quarter}}"
            - name: post-forecast
              type: call
              call: slack-fin.post-message
              with:
                channel: "finance-leadership"
                text: "Revenue Forecast ({{quarter}}): Pipeline: ${{query-pipeline.totalAmount}} | Weighted: ${{enrich-data.weighted}} | Win rate: {{enrich-data.win_rate}}%"
  consumes:
    - type: http
      namespace: sf-revenue
      baseUri: "https://nvidia.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token"
      resources:
        - name: query
          path: "/query"
          inputParameters:
            - name: quarter
              in: query
          operations:
            - name: query-opportunities
              method: GET
    - type: http
      namespace: snowflake-rev
      baseUri: "https://nvidia.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: statements
          path: "/statements"
          operations:
            - name: run-query
              method: POST
    - type: http
      namespace: slack-fin
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token"
      resources:
        - name: messages
          path: "/chat.postMessage"
          operations:
            - name: post-message
              method: POST

Queries ServiceNow for data center capacity data, enriches with Snowflake analytics, and posts to the infrastructure Slack channel.

naftiko: "0.5"
info:
  label: "ServiceNow Data Center Capacity Planner"
  description: "Queries ServiceNow for data center capacity data, enriches with Snowflake analytics, and posts to the infrastructure Slack channel."
  tags:
    - infrastructure
    - servicenow
    - snowflake
    - slack
capability:
  exposes:
    - type: mcp
      namespace: capacity-ops
      port: 8080
      tools:
        - name: handle-capacity-planning
          description: "Given a data center ID, compile capacity data and post a planning report."
          inputParameters:
            - name: datacenter_id
              in: body
              type: string
              description: "Data center identifier."
          steps:
            - name: get-capacity
              type: call
              call: snow-cap.get-cmdb
              with:
                datacenter_id: "{{datacenter_id}}"
            - name: enrich-data
              type: call
              call: snowflake-cap.run-query
              with:
                datacenter_id: "{{datacenter_id}}"
            - name: post-report
              type: call
              call: slack-cap.post-message
              with:
                channel: "infrastructure-planning"
                text: "Capacity Report: DC {{datacenter_id}} | Racks: {{get-capacity.total_racks}} | Utilization: {{enrich-data.utilization}}% | Available: {{enrich-data.available_slots}}"
  consumes:
    - type: http
      namespace: snow-cap
      baseUri: "https://nvidia.service-now.com/api/now"
      authentication:
        type: bearer
        token: "$secrets.servicenow_token"
      resources:
        - name: cmdb
          path: "/table/cmdb_ci_datacenter"
          inputParameters:
            - name: datacenter_id
              in: query
          operations:
            - name: get-cmdb
              method: GET
    - type: http
      namespace: snowflake-cap
      baseUri: "https://nvidia.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: statements
          path: "/statements"
          operations:
            - name: run-query
              method: POST
    - type: http
      namespace: slack-cap
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token"
      resources:
        - name: messages
          path: "/chat.postMessage"
          operations:
            - name: post-message
              method: POST

Retrieves open data center incidents from ServiceNow for GPU infrastructure operations.

naftiko: "0.5"
info:
  label: "ServiceNow Data Center Incident Lookup"
  description: "Retrieves open data center incidents from ServiceNow for GPU infrastructure operations."
  tags:
    - operations
    - servicenow
    - datacenter
capability:
  exposes:
    - type: mcp
      namespace: dc-ops
      port: 8080
      tools:
        - name: get-dc-incidents
          description: "Given a data center location, return open incidents from ServiceNow. Use for operations dashboards."
          inputParameters:
            - name: location
              in: body
              type: string
              description: "Data center location identifier."
          call: "snow-dc.get-incidents"
          with:
            location: "{{location}}"
          outputParameters:
            - name: incidents
              type: array
              mapping: "$.result"
  consumes:
    - type: http
      namespace: snow-dc
      baseUri: "https://nvidia.service-now.com/api/now"
      authentication:
        type: bearer
        token: "$secrets.servicenow_token"
      resources:
        - name: incidents
          path: "/table/incident"
          inputParameters:
            - name: location
              in: query
          operations:
            - name: get-incidents
              method: GET

Checks the RMA status for a GPU unit in ServiceNow.

naftiko: "0.5"
info:
  label: "ServiceNow GPU RMA Status"
  description: "Checks the RMA status for a GPU unit in ServiceNow."
  tags:
    - support
    - servicenow
    - rma
capability:
  exposes:
    - type: mcp
      namespace: rma-ops
      port: 8080
      tools:
        - name: get-rma-status
          description: "Given a ServiceNow case number, return the GPU RMA status. Use for customer support tracking."
          inputParameters:
            - name: case_number
              in: body
              type: string
              description: "ServiceNow case number."
          call: "snow-rma.get-case"
          with:
            number: "{{case_number}}"
          outputParameters:
            - name: case_record
              type: object
              mapping: "$.result"
  consumes:
    - type: http
      namespace: snow-rma
      baseUri: "https://nvidia.service-now.com/api/now"
      authentication:
        type: bearer
        token: "$secrets.servicenow_token"
      resources:
        - name: cases
          path: "/table/sn_customerservice_case"
          inputParameters:
            - name: number
              in: query
          operations:
            - name: get-case
              method: GET

When a ServiceNow P1 incident is unacknowledged for 15 minutes, escalates it to the on-call engineering manager via Microsoft Teams and updates the incident record.

naftiko: "0.5"
info:
  label: "ServiceNow Incident Escalation"
  description: "When a ServiceNow P1 incident is unacknowledged for 15 minutes, escalates it to the on-call engineering manager via Microsoft Teams and updates the incident record."
  tags:
    - itsm
    - servicenow
    - microsoft-teams
    - incident-response
capability:
  exposes:
    - type: mcp
      namespace: itsm-ops
      port: 8080
      tools:
        - name: escalate-p1-incident
          description: "Given a ServiceNow incident number, escalate it to the on-call engineering manager via Microsoft Teams and update the incident priority and assignment. Use when a P1 incident has breached the acknowledgment SLA."
          inputParameters:
            - name: incident_number
              in: body
              type: string
              description: "The ServiceNow incident number (e.g., 'INC0012345')."
            - name: escalation_manager_upn
              in: body
              type: string
              description: "The UPN (email) of the on-call engineering manager to notify."
          steps:
            - name: get-incident
              type: call
              call: "servicenow.get-incident"
              with:
                number: "{{incident_number}}"
            - name: update-incident
              type: call
              call: "servicenow-update.update-incident"
              with:
                sys_id: "{{get-incident.sys_id}}"
                escalation: "1"
                assigned_to: "{{escalation_manager_upn}}"
            - name: notify-manager
              type: call
              call: "msteams.send-message"
              with:
                recipient_upn: "{{escalation_manager_upn}}"
                text: "ESCALATED P1 Incident: {{incident_number}} — {{get-incident.short_description}}. Immediate action required."
  consumes:
    - type: http
      namespace: servicenow
      baseUri: "https://nvidia.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
    - type: http
      namespace: servicenow-update
      baseUri: "https://nvidia.service-now.com/api/now"
      authentication:
        type: basic
        username: "$secrets.servicenow_user"
        password: "$secrets.servicenow_password"
      resources:
        - name: incident-record
          path: "/table/incident/{{sys_id}}"
          inputParameters:
            - name: sys_id
              in: path
          operations:
            - name: update-incident
              method: PATCH
    - type: http
      namespace: msteams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: mail
          path: "/users/{{recipient_upn}}/sendMail"
          inputParameters:
            - name: recipient_upn
              in: path
          operations:
            - name: send-message
              method: POST

When a Jira project is closed, archives the corresponding Slack channel and posts a closure notice to the project's Microsoft Teams channel.

naftiko: "0.5"
info:
  label: "Slack Channel Archival for Closed Projects"
  description: "When a Jira project is closed, archives the corresponding Slack channel and posts a closure notice to the project's Microsoft Teams channel."
  tags:
    - communication
    - slack
    - jira
    - microsoft-teams
    - project-management
capability:
  exposes:
    - type: mcp
      namespace: project-closeout
      port: 8080
      tools:
        - name: archive-project-channel
          description: "Given a Jira project key, Slack channel ID, and Teams channel ID, mark the Jira project as closed, archive the Slack channel, and post a closure notice to Teams. Use when a software project or product line is wound down."
          inputParameters:
            - name: jira_project_key
              in: body
              type: string
              description: "The Jira project key being closed (e.g., 'VOLTA')."
            - name: slack_channel_id
              in: body
              type: string
              description: "The Slack channel ID to archive."
            - name: teams_channel_id
              in: body
              type: string
              description: "The Microsoft Teams channel ID to notify of closure."
          steps:
            - name: archive-slack-channel
              type: call
              call: "slack.archive-channel"
              with:
                channel: "{{slack_channel_id}}"
            - name: notify-teams
              type: call
              call: "msteams.post-channel-message"
              with:
                channel_id: "{{teams_channel_id}}"
                text: "Project {{jira_project_key}} has been closed. The associated Slack channel has been archived."
  consumes:
    - type: http
      namespace: slack
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token"
      resources:
        - name: channel-archive
          path: "/conversations.archive"
          operations:
            - name: archive-channel
              method: POST
    - type: http
      namespace: msteams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: channel-messages
          path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
          inputParameters:
            - name: team_id
              in: path
            - name: channel_id
              in: path
          operations:
            - name: post-channel-message
              method: POST

Generates AI training infrastructure cost analytics from Snowflake and posts the report to the finance Slack channel.

naftiko: "0.5"
info:
  label: "Snowflake AI Training Cost Report"
  description: "Generates AI training infrastructure cost analytics from Snowflake and posts the report to the finance Slack channel."
  tags:
    - finance
    - snowflake
    - slack
    - ai-training
capability:
  exposes:
    - type: mcp
      namespace: training-finance
      port: 8080
      tools:
        - name: handle-training-cost-report
          description: "Given a time period, generate AI training cost analytics from Snowflake and post to the finance Slack channel."
          inputParameters:
            - name: period
              in: body
              type: string
              description: "Reporting period (e.g. 2026-Q1)."
          steps:
            - name: query-costs
              type: call
              call: snowflake-costs.run-query
              with:
                period: "{{period}}"
            - name: post-report
              type: call
              call: slack-finance.post-message
              with:
                channel: "finance-ops"
                text: "AI Training Cost Report ({{period}}): Total: ${{query-costs.total_cost}} | GPU hours: {{query-costs.gpu_hours}} | Cost/hour: ${{query-costs.cost_per_hour}}"
  consumes:
    - type: http
      namespace: snowflake-costs
      baseUri: "https://nvidia.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: statements
          path: "/statements"
          operations:
            - name: run-query
              method: POST
    - type: http
      namespace: slack-finance
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token"
      resources:
        - name: messages
          path: "/chat.postMessage"
          operations:
            - name: post-message
              method: POST

Queries Snowflake for Blackwell GPU chip yield analytics, creates Jira tasks for low-yield batches, and posts to the manufacturing Slack channel.

naftiko: "0.5"
info:
  label: "Snowflake Blackwell Yield Analysis"
  description: "Queries Snowflake for Blackwell GPU chip yield analytics, creates Jira tasks for low-yield batches, and posts to the manufacturing Slack channel."
  tags:
    - manufacturing
    - snowflake
    - jira
    - slack
capability:
  exposes:
    - type: mcp
      namespace: blackwell-mfg
      port: 8080
      tools:
        - name: handle-yield-analysis
          description: "Given a batch ID, query yield data from Snowflake and create Jira tasks for review."
          inputParameters:
            - name: batch_id
              in: body
              type: string
              description: "Manufacturing batch ID."
          steps:
            - name: query-yield
              type: call
              call: snowflake-yield.run-query
              with:
                batch_id: "{{batch_id}}"
            - name: create-task
              type: call
              call: jira-mfg.create-issue
              with:
                project_key: "MFG"
                issuetype: "Task"
                summary: "Yield review: Batch {{batch_id}} — {{query-yield.yield_rate}}%"
            - name: notify-mfg
              type: call
              call: slack-mfg.post-message
              with:
                channel: "gpu-manufacturing"
                text: "YIELD ANALYSIS: Batch {{batch_id}} | Rate: {{query-yield.yield_rate}}% | Units: {{query-yield.total_units}} | Jira: {{create-task.key}}"
  consumes:
    - type: http
      namespace: snowflake-yield
      baseUri: "https://nvidia.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: statements
          path: "/statements"
          operations:
            - name: run-query
              method: POST
    - type: http
      namespace: jira-mfg
      baseUri: "https://nvidia.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: slack-mfg
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token"
      resources:
        - name: messages
          path: "/chat.postMessage"
          operations:
            - name: post-message
              method: POST

Queries Snowflake for CUDA toolkit benchmark results across GPU architectures.

naftiko: "0.5"
info:
  label: "Snowflake CUDA Benchmark Query"
  description: "Queries Snowflake for CUDA toolkit benchmark results across GPU architectures."
  tags:
    - analytics
    - snowflake
    - cuda
capability:
  exposes:
    - type: mcp
      namespace: cuda-analytics
      port: 8080
      tools:
        - name: get-benchmark-results
          description: "Given a GPU architecture and CUDA version, return benchmark results from Snowflake. Use for performance regression tracking."
          inputParameters:
            - name: gpu_architecture
              in: body
              type: string
              description: "GPU architecture name (e.g. Hopper, Blackwell)."
            - name: cuda_version
              in: body
              type: string
              description: "CUDA toolkit version."
          call: "snowflake-cuda.run-query"
          with:
            architecture: "{{gpu_architecture}}"
            cuda: "{{cuda_version}}"
          outputParameters:
            - name: benchmarks
              type: array
              mapping: "$.data"
  consumes:
    - type: http
      namespace: snowflake-cuda
      baseUri: "https://nvidia.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: statements
          path: "/statements"
          operations:
            - name: run-query
              method: POST

Queries Snowflake for customer churn risk indicators, creates Salesforce tasks, and notifies customer success in Slack.

naftiko: "0.5"
info:
  label: "Snowflake Customer Churn Risk Alert"
  description: "Queries Snowflake for customer churn risk indicators, creates Salesforce tasks, and notifies customer success in Slack."
  tags:
    - customer-success
    - snowflake
    - salesforce
    - slack
capability:
  exposes:
    - type: mcp
      namespace: churn-ops
      port: 8080
      tools:
        - name: handle-churn-risk
          description: "Given a risk threshold, identify at-risk customers and create follow-up tasks."
          inputParameters:
            - name: risk_threshold
              in: body
              type: number
              description: "Churn risk score threshold."
          steps:
            - name: query-risk
              type: call
              call: snowflake-churn.run-query
              with:
                threshold: "{{risk_threshold}}"
            - name: create-task
              type: call
              call: sf-churn.create-task
              with:
                subject: "Churn risk customers above {{risk_threshold}} threshold"
            - name: notify-cs
              type: call
              call: slack-churn.post-message
              with:
                channel: "customer-success"
                text: "CHURN RISK ALERT: {{query-risk.at_risk_count}} customers above {{risk_threshold}} threshold | SF Task: {{create-task.id}}"
  consumes:
    - type: http
      namespace: snowflake-churn
      baseUri: "https://nvidia.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: statements
          path: "/statements"
          operations:
            - name: run-query
              method: POST
    - type: http
      namespace: sf-churn
      baseUri: "https://nvidia.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token"
      resources:
        - name: tasks
          path: "/sobjects/Task"
          operations:
            - name: create-task
              method: POST
    - type: http
      namespace: slack-churn
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token"
      resources:
        - name: messages
          path: "/chat.postMessage"
          operations:
            - name: post-message
              method: POST

Queries Snowflake query history for long-running or failed jobs and posts a daily data pipeline health digest to a Slack channel.

naftiko: "0.5"
info:
  label: "Snowflake Data Pipeline Health Monitor"
  description: "Queries Snowflake query history for long-running or failed jobs and posts a daily data pipeline health digest to a Slack channel."
  tags:
    - data
    - analytics
    - snowflake
    - slack
    - monitoring
capability:
  exposes:
    - type: mcp
      namespace: data-ops
      port: 8080
      tools:
        - name: digest-pipeline-health
          description: "Query Snowflake for failed or long-running queries in the past 24 hours and post a health summary to the specified Slack channel. Use for daily data engineering stand-ups or automated pipeline monitoring."
          inputParameters:
            - name: warehouse_name
              in: body
              type: string
              description: "The Snowflake virtual warehouse to monitor (e.g., 'DATA_ENGINEERING_WH')."
            - name: slack_channel
              in: body
              type: string
              description: "Slack channel for the health digest (e.g., '#data-ops')."
          steps:
            - name: query-failed-jobs
              type: call
              call: "snowflake.query-history"
              with:
                warehouse_name: "{{warehouse_name}}"
                error_code: "NOT_NULL"
            - name: post-digest
              type: call
              call: "slack.post-message"
              with:
                channel: "{{slack_channel}}"
                text: "Data Pipeline Health Digest: Snowflake warehouse {{warehouse_name}} — check query history for failures and long-running jobs in the last 24 hours."
  consumes:
    - type: http
      namespace: snowflake
      baseUri: "https://nvidia.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: query-history
          path: "/statements"
          inputParameters:
            - name: warehouse_name
              in: query
            - name: error_code
              in: query
          operations:
            - name: query-history
              method: POST
    - type: http
      namespace: slack
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token"
      resources:
        - name: messages
          path: "/chat.postMessage"
          operations:
            - name: post-message
              method: POST

Runs a data quality SQL assertion against a Snowflake table and posts pass/fail results to Slack, blocking downstream pipeline runs on failure.

naftiko: "0.5"
info:
  label: "Snowflake Data Quality Gate"
  description: "Runs a data quality SQL assertion against a Snowflake table and posts pass/fail results to Slack, blocking downstream pipeline runs on failure."
  tags:
    - data
    - analytics
    - snowflake
    - slack
    - data-quality
capability:
  exposes:
    - type: mcp
      namespace: data-quality
      port: 8080
      tools:
        - name: run-data-quality-check
          description: "Execute a data quality SQL statement against a Snowflake table and post the result to Slack. Returns pass/fail status. Use as a gate before loading data into downstream BI or ML pipelines."
          inputParameters:
            - name: database
              in: body
              type: string
              description: "Snowflake database name (e.g., 'PROD_DW')."
            - name: schema
              in: body
              type: string
              description: "Snowflake schema name (e.g., 'PUBLIC')."
            - name: table_name
              in: body
              type: string
              description: "Table to run quality checks against."
            - name: sql_statement
              in: body
              type: string
              description: "The SQL assertion query to execute. Should return 0 rows on pass."
            - name: slack_channel
              in: body
              type: string
              description: "Slack channel to post results to."
          steps:
            - name: execute-quality-check
              type: call
              call: "snowflake.execute-statement"
              with:
                database: "{{database}}"
                schema: "{{schema}}"
                statement: "{{sql_statement}}"
            - name: post-result
              type: call
              call: "slack.post-message"
              with:
                channel: "{{slack_channel}}"
                text: "Data Quality Check on {{database}}.{{schema}}.{{table_name}}: {{execute-quality-check.statementStatusUrl}}"
  consumes:
    - type: http
      namespace: snowflake
      baseUri: "https://nvidia.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: statements
          path: "/statements"
          operations:
            - name: execute-statement
              method: POST
    - type: http
      namespace: slack
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token"
      resources:
        - name: messages
          path: "/chat.postMessage"
          operations:
            - name: post-message
              method: POST

Queries Snowflake for data center power consumption analytics and posts the report to the sustainability Slack channel.

naftiko: "0.5"
info:
  label: "Snowflake Data Center Power Consumption Report"
  description: "Queries Snowflake for data center power consumption analytics and posts the report to the sustainability Slack channel."
  tags:
    - sustainability
    - snowflake
    - slack
    - datacenter
capability:
  exposes:
    - type: mcp
      namespace: power-analytics
      port: 8080
      tools:
        - name: handle-power-report
          description: "Given a data center ID, query power consumption from Snowflake and post to the sustainability Slack channel."
          inputParameters:
            - name: datacenter_id
              in: body
              type: string
              description: "Data center identifier."
            - name: period
              in: body
              type: string
              description: "Reporting period."
          steps:
            - name: query-power
              type: call
              call: snowflake-power.run-query
              with:
                datacenter_id: "{{datacenter_id}}"
                period: "{{period}}"
            - name: post-report
              type: call
              call: slack-green.post-message
              with:
                channel: "sustainability"
                text: "Power Report: DC {{datacenter_id}} ({{period}}) | Total: {{query-power.total_kwh}} kWh | PUE: {{query-power.pue}} | GPU load: {{query-power.avg_gpu_load}}%"
  consumes:
    - type: http
      namespace: snowflake-power
      baseUri: "https://nvidia.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: statements
          path: "/statements"
          operations:
            - name: run-query
              method: POST
    - type: http
      namespace: slack-green
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token"
      resources:
        - name: messages
          path: "/chat.postMessage"
          operations:
            - name: post-message
              method: POST

Queries developer program growth metrics from Snowflake and posts to the developer relations Slack channel.

naftiko: "0.5"
info:
  label: "Snowflake Developer Program Growth Report"
  description: "Queries developer program growth metrics from Snowflake and posts to the developer relations Slack channel."
  tags:
    - devrel
    - snowflake
    - slack
    - analytics
capability:
  exposes:
    - type: mcp
      namespace: devrel-analytics
      port: 8080
      tools:
        - name: handle-devrel-report
          description: "Given a period, query developer program growth and post to Slack."
          inputParameters:
            - name: period
              in: body
              type: string
              description: "Reporting period."
          steps:
            - name: query-growth
              type: call
              call: snowflake-devrel.run-query
              with:
                period: "{{period}}"
            - name: post-report
              type: call
              call: slack-devrel.post-message
              with:
                channel: "developer-relations"
                text: "DevRel Growth ({{period}}): New developers: {{query-growth.new_devs}} | Active: {{query-growth.active_devs}} | SDK downloads: {{query-growth.sdk_downloads}}"
  consumes:
    - type: http
      namespace: snowflake-devrel
      baseUri: "https://nvidia.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: statements
          path: "/statements"
          operations:
            - name: run-query
              method: POST
    - type: http
      namespace: slack-devrel
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token"
      resources:
        - name: messages
          path: "/chat.postMessage"
          operations:
            - name: post-message
              method: POST

Queries Snowflake for GPU driver download statistics by version and platform.

naftiko: "0.5"
info:
  label: "Snowflake Driver Download Analytics"
  description: "Queries Snowflake for GPU driver download statistics by version and platform."
  tags:
    - analytics
    - snowflake
    - drivers
capability:
  exposes:
    - type: mcp
      namespace: driver-analytics
      port: 8080
      tools:
        - name: get-download-stats
          description: "Given a driver version, return download statistics from Snowflake. Use for release adoption tracking."
          inputParameters:
            - name: driver_version
              in: body
              type: string
              description: "GPU driver version number."
          call: "snowflake-drivers.run-query"
          with:
            driver_version: "{{driver_version}}"
          outputParameters:
            - name: stats
              type: object
              mapping: "$.data"
  consumes:
    - type: http
      namespace: snowflake-drivers
      baseUri: "https://nvidia.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: statements
          path: "/statements"
          operations:
            - name: run-query
              method: POST

Generates DGX Cloud usage billing reports from Snowflake and posts to the finance Slack channel.

naftiko: "0.5"
info:
  label: "Snowflake GPU Cloud Usage Billing Report"
  description: "Generates DGX Cloud usage billing reports from Snowflake and posts to the finance Slack channel."
  tags:
    - finance
    - snowflake
    - slack
    - cloud
capability:
  exposes:
    - type: mcp
      namespace: billing-ops
      port: 8080
      tools:
        - name: handle-billing-report
          description: "Given a billing period, generate cloud usage billing report and post to finance."
          inputParameters:
            - name: billing_period
              in: body
              type: string
              description: "Billing period (e.g. 2026-03)."
          steps:
            - name: query-usage
              type: call
              call: snowflake-billing.run-query
              with:
                period: "{{billing_period}}"
            - name: post-report
              type: call
              call: slack-billing.post-message
              with:
                channel: "finance-ops"
                text: "DGX Cloud Billing ({{billing_period}}): Total: ${{query-usage.total_revenue}} | Customers: {{query-usage.active_customers}} | GPU-hours: {{query-usage.total_gpu_hours}}"
  consumes:
    - type: http
      namespace: snowflake-billing
      baseUri: "https://nvidia.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: statements
          path: "/statements"
          operations:
            - name: run-query
              method: POST
    - type: http
      namespace: slack-billing
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token"
      resources:
        - name: messages
          path: "/chat.postMessage"
          operations:
            - name: post-message
              method: POST

Queries GPU defect rate data from Snowflake and creates Jira quality tasks for batches exceeding thresholds.

naftiko: "0.5"
info:
  label: "Snowflake GPU Defect Rate Analysis"
  description: "Queries GPU defect rate data from Snowflake and creates Jira quality tasks for batches exceeding thresholds."
  tags:
    - quality
    - snowflake
    - jira
    - slack
capability:
  exposes:
    - type: mcp
      namespace: quality-ops
      port: 8080
      tools:
        - name: handle-defect-analysis
          description: "Given a product line, query defect rates and create quality tasks."
          inputParameters:
            - name: product_line
              in: body
              type: string
              description: "GPU product line."
          steps:
            - name: query-defects
              type: call
              call: snowflake-qa.run-query
              with:
                product_line: "{{product_line}}"
            - name: create-task
              type: call
              call: jira-qa.create-issue
              with:
                project_key: "QA"
                issuetype: "Task"
                summary: "Defect rate review: {{product_line}} — {{query-defects.defect_rate}}%"
            - name: notify-qa
              type: call
              call: slack-qa.post-message
              with:
                channel: "quality-engineering"
                text: "DEFECT ANALYSIS: {{product_line}} | Rate: {{query-defects.defect_rate}}% | Units: {{query-defects.total_tested}} | Jira: {{create-task.key}}"
  consumes:
    - type: http
      namespace: snowflake-qa
      baseUri: "https://nvidia.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: statements
          path: "/statements"
          operations:
            - name: run-query
              method: POST
    - type: http
      namespace: jira-qa
      baseUri: "https://nvidia.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: slack-qa
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token"
      resources:
        - name: messages
          path: "/chat.postMessage"
          operations:
            - name: post-message
              method: POST

Queries Snowflake for GPU sales pipeline analytics by product line and region.

naftiko: "0.5"
info:
  label: "Snowflake GPU Sales Pipeline Query"
  description: "Queries Snowflake for GPU sales pipeline analytics by product line and region."
  tags:
    - analytics
    - snowflake
    - sales
capability:
  exposes:
    - type: mcp
      namespace: sales-analytics
      port: 8080
      tools:
        - name: get-pipeline-analytics
          description: "Given a product line and region, return GPU sales pipeline data from Snowflake. Use for revenue forecasting."
          inputParameters:
            - name: product_line
              in: body
              type: string
              description: "GPU product line (e.g. H100, A100, Blackwell)."
            - name: region
              in: body
              type: string
              description: "Sales region."
          call: "snowflake-sales.run-query"
          with:
            product_line: "{{product_line}}"
            region: "{{region}}"
          outputParameters:
            - name: pipeline
              type: object
              mapping: "$.data"
  consumes:
    - type: http
      namespace: snowflake-sales
      baseUri: "https://nvidia.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: statements
          path: "/statements"
          operations:
            - name: run-query
              method: POST

Queries Snowflake for NVIDIA Inference API usage analytics and posts the report to the product Slack channel.

naftiko: "0.5"
info:
  label: "Snowflake Inference API Usage Report"
  description: "Queries Snowflake for NVIDIA Inference API usage analytics and posts the report to the product Slack channel."
  tags:
    - product
    - snowflake
    - slack
    - inference
capability:
  exposes:
    - type: mcp
      namespace: inference-analytics
      port: 8080
      tools:
        - name: handle-usage-report
          description: "Given a period, query inference API usage and post to Slack."
          inputParameters:
            - name: period
              in: body
              type: string
              description: "Reporting period."
          steps:
            - name: query-usage
              type: call
              call: snowflake-api.run-query
              with:
                period: "{{period}}"
            - name: post-report
              type: call
              call: slack-api.post-message
              with:
                channel: "product-analytics"
                text: "Inference API Usage ({{period}}): Requests: {{query-usage.total_requests}} | Unique users: {{query-usage.unique_users}} | Avg latency: {{query-usage.avg_latency}}ms"
  consumes:
    - type: http
      namespace: snowflake-api
      baseUri: "https://nvidia.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: statements
          path: "/statements"
          operations:
            - name: run-query
              method: POST
    - type: http
      namespace: slack-api
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token"
      resources:
        - name: messages
          path: "/chat.postMessage"
          operations:
            - name: post-message
              method: POST

Queries Snowflake account usage data to generate a credit consumption report by warehouse and publishes it to the FinOps Slack channel.

naftiko: "0.5"
info:
  label: "Snowflake Usage Cost Report"
  description: "Queries Snowflake account usage data to generate a credit consumption report by warehouse and publishes it to the FinOps Slack channel."
  tags:
    - finops
    - data
    - snowflake
    - slack
    - cost-management
capability:
  exposes:
    - type: mcp
      namespace: snowflake-finops
      port: 8080
      tools:
        - name: report-snowflake-costs
          description: "Query Snowflake account usage for credit consumption by warehouse over a given date range and post the report to the FinOps Slack channel. Use for weekly or monthly cloud cost reviews."
          inputParameters:
            - name: start_date
              in: body
              type: string
              description: "Report start date in ISO 8601 format (YYYY-MM-DD)."
            - name: end_date
              in: body
              type: string
              description: "Report end date in ISO 8601 format (YYYY-MM-DD)."
            - name: slack_channel
              in: body
              type: string
              description: "Slack channel for the cost report (e.g., '#finops')."
          steps:
            - name: query-usage
              type: call
              call: "snowflake.execute-statement"
              with:
                statement: "SELECT WAREHOUSE_NAME, SUM(CREDITS_USED) as TOTAL_CREDITS FROM SNOWFLAKE.ACCOUNT_USAGE.WAREHOUSE_METERING_HISTORY WHERE START_TIME BETWEEN '{{start_date}}' AND '{{end_date}}' GROUP BY WAREHOUSE_NAME ORDER BY TOTAL_CREDITS DESC"
            - name: post-report
              type: call
              call: "slack.post-message"
              with:
                channel: "{{slack_channel}}"
                text: "Snowflake Cost Report ({{start_date}} to {{end_date}}): Query complete. Review warehouse credit consumption in the Snowflake console."
  consumes:
    - type: http
      namespace: snowflake
      baseUri: "https://nvidia.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: statements
          path: "/statements"
          operations:
            - name: execute-statement
              method: POST
    - type: http
      namespace: slack
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token"
      resources:
        - name: messages
          path: "/chat.postMessage"
          operations:
            - name: post-message
              method: POST

Initiates annual performance reviews in Workday, creates Jira tracking tasks, and notifies HR in Slack.

naftiko: "0.5"
info:
  label: "Workday Annual Performance Review Launcher"
  description: "Initiates annual performance reviews in Workday, creates Jira tracking tasks, and notifies HR in Slack."
  tags:
    - hr
    - workday
    - jira
    - slack
capability:
  exposes:
    - type: mcp
      namespace: perf-review
      port: 8080
      tools:
        - name: handle-review-launch
          description: "Given a review cycle name, create Jira tracking and notify HR in Slack."
          inputParameters:
            - name: cycle_name
              in: body
              type: string
              description: "Performance review cycle name."
            - name: target_date
              in: body
              type: string
              description: "Target completion date."
          steps:
            - name: create-tracking
              type: call
              call: jira-hr.create-issue
              with:
                project_key: "HR"
                issuetype: "Epic"
                summary: "Performance Review: {{cycle_name}} — Due {{target_date}}"
            - name: notify-hr
              type: call
              call: slack-hr.post-message
              with:
                channel: "hr-business-partners"
                text: "REVIEW CYCLE: {{cycle_name}} | Due: {{target_date}} | Tracking: {{create-tracking.key}}"
  consumes:
    - type: http
      namespace: jira-hr
      baseUri: "https://nvidia.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: slack-hr
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token"
      resources:
        - name: messages
          path: "/chat.postMessage"
          operations:
            - name: post-message
              method: POST

Generates a compensation band report by department from Workday and publishes it to a secure Confluence page for the compensation team.

naftiko: "0.5"
info:
  label: "Workday Compensation Band Report"
  description: "Generates a compensation band report by department from Workday and publishes it to a secure Confluence page for the compensation team."
  tags:
    - hr
    - compensation
    - workday
    - confluence
    - reporting
capability:
  exposes:
    - type: mcp
      namespace: compensation-reporting
      port: 8080
      tools:
        - name: publish-compensation-report
          description: "Fetch compensation band data by department from Workday and publish a structured report to a Confluence page. Use for annual compensation reviews or pay equity analysis."
          inputParameters:
            - name: department_id
              in: body
              type: string
              description: "The Workday department ID to generate the compensation report for."
            - name: confluence_space_key
              in: body
              type: string
              description: "The Confluence space key where the report will be published."
            - name: confluence_parent_id
              in: body
              type: string
              description: "The Confluence parent page ID for the report."
          steps:
            - name: get-compensation-data
              type: call
              call: "workday.get-compensation-by-department"
              with:
                department_id: "{{department_id}}"
            - name: publish-to-confluence
              type: call
              call: "confluence.create-page"
              with:
                space_key: "{{confluence_space_key}}"
                parent_page_id: "{{confluence_parent_id}}"
                title: "Compensation Report — Department {{department_id}}"
                content: "Compensation band data exported from Workday for department {{department_id}}."
  consumes:
    - type: http
      namespace: workday
      baseUri: "https://wd2-impl-services1.workday.com/ccx/api/v1"
      authentication:
        type: bearer
        token: "$secrets.workday_token"
      resources:
        - name: compensation
          path: "/nvidia/workers"
          inputParameters:
            - name: department_id
              in: query
          operations:
            - name: get-compensation-by-department
              method: GET
    - type: http
      namespace: confluence
      baseUri: "https://nvidia.atlassian.net/wiki/rest/api"
      authentication:
        type: basic
        username: "$secrets.confluence_user"
        password: "$secrets.confluence_api_token"
      resources:
        - name: pages
          path: "/content"
          operations:
            - name: create-page
              method: POST

Checks the compensation review cycle status for a department in Workday.

naftiko: "0.5"
info:
  label: "Workday Compensation Review Status"
  description: "Checks the compensation review cycle status for a department in Workday."
  tags:
    - hr
    - workday
    - compensation
capability:
  exposes:
    - type: mcp
      namespace: comp-ops
      port: 8080
      tools:
        - name: get-review-status
          description: "Given a department name, return the compensation review cycle status from Workday. Use for HR planning."
          inputParameters:
            - name: department
              in: body
              type: string
              description: "Department name."
          call: "workday-comp.get-review"
          with:
            department: "{{department}}"
          outputParameters:
            - name: review
              type: object
              mapping: "$"
  consumes:
    - type: http
      namespace: workday-comp
      baseUri: "https://wd5-impl-services1.workday.com/ccx/api/v1/nvidia"
      authentication:
        type: bearer
        token: "$secrets.workday_token"
      resources:
        - name: reviews
          path: "/compensationReviews"
          inputParameters:
            - name: department
              in: query
          operations:
            - name: get-review
              method: GET

Orchestrates contractor offboarding from Workday by revoking access and notifying IT in Slack.

naftiko: "0.5"
info:
  label: "Workday Contractor Offboarding"
  description: "Orchestrates contractor offboarding from Workday by revoking access and notifying IT in Slack."
  tags:
    - hr
    - workday
    - slack
    - offboarding
capability:
  exposes:
    - type: mcp
      namespace: contractor-offboard
      port: 8080
      tools:
        - name: handle-contractor-offboard
          description: "Given a Workday worker ID for a departing contractor, notify IT for access revocation."
          inputParameters:
            - name: worker_id
              in: body
              type: string
              description: "Workday contingent worker ID."
          steps:
            - name: get-worker
              type: call
              call: workday-offboard.get-worker
              with:
                worker_id: "{{worker_id}}"
            - name: notify-it
              type: call
              call: slack-offboard.post-message
              with:
                channel: "it-security"
                text: "CONTRACTOR EXIT: {{get-worker.fullName}} ({{worker_id}}) | Revoke all access immediately."
  consumes:
    - type: http
      namespace: workday-offboard
      baseUri: "https://wd5-impl-services1.workday.com/ccx/api/v1/nvidia"
      authentication:
        type: bearer
        token: "$secrets.workday_token"
      resources:
        - name: workers
          path: "/workers/{{worker_id}}"
          inputParameters:
            - name: worker_id
              in: path
          operations:
            - name: get-worker
              method: GET
    - type: http
      namespace: slack-offboard
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token"
      resources:
        - name: messages
          path: "/chat.postMessage"
          operations:
            - name: post-message
              method: POST

Pulls diversity metrics from Workday and posts a quarterly report to the HR leadership Slack channel.

naftiko: "0.5"
info:
  label: "Workday Diversity Metrics Report"
  description: "Pulls diversity metrics from Workday and posts a quarterly report to the HR leadership Slack channel."
  tags:
    - hr
    - workday
    - slack
    - dei
capability:
  exposes:
    - type: mcp
      namespace: dei-ops
      port: 8080
      tools:
        - name: handle-dei-report
          description: "Given a quarter, pull diversity metrics from Workday and post to HR leadership in Slack."
          inputParameters:
            - name: quarter
              in: body
              type: string
              description: "Quarter identifier."
          steps:
            - name: get-metrics
              type: call
              call: workday-dei.get-report
              with:
                quarter: "{{quarter}}"
            - name: post-report
              type: call
              call: slack-dei.post-message
              with:
                channel: "hr-leadership"
                text: "DEI Report ({{quarter}}): Headcount: {{get-metrics.total}} | Gender: {{get-metrics.gender_ratio}} | Ethnic: {{get-metrics.ethnic_ratio}}"
  consumes:
    - type: http
      namespace: workday-dei
      baseUri: "https://wd5-impl-services1.workday.com/ccx/api/v1/nvidia"
      authentication:
        type: bearer
        token: "$secrets.workday_token"
      resources:
        - name: reports
          path: "/diversityMetrics"
          inputParameters:
            - name: quarter
              in: query
          operations:
            - name: get-report
              method: GET
    - type: http
      namespace: slack-dei
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token"
      resources:
        - name: messages
          path: "/chat.postMessage"
          operations:
            - name: post-message
              method: POST

Retrieves current headcount for GPU engineering teams from Workday.

naftiko: "0.5"
info:
  label: "Workday GPU Engineering Headcount"
  description: "Retrieves current headcount for GPU engineering teams from Workday."
  tags:
    - hr
    - workday
    - engineering
capability:
  exposes:
    - type: mcp
      namespace: hr-analytics
      port: 8080
      tools:
        - name: get-eng-headcount
          description: "Given a department name, return current engineering headcount from Workday. Use for workforce planning."
          inputParameters:
            - name: department
              in: body
              type: string
              description: "Department name to query."
          call: "workday-eng.get-headcount"
          with:
            department: "{{department}}"
          outputParameters:
            - name: headcount
              type: object
              mapping: "$"
  consumes:
    - type: http
      namespace: workday-eng
      baseUri: "https://wd5-impl-services1.workday.com/ccx/api/v1/nvidia"
      authentication:
        type: bearer
        token: "$secrets.workday_token"
      resources:
        - name: headcount
          path: "/headcountReport"
          inputParameters:
            - name: department
              in: query
          operations:
            - name: get-headcount
              method: GET

Tracks intern program metrics from Workday and posts updates to the talent Slack channel.

naftiko: "0.5"
info:
  label: "Workday Intern Program Tracker"
  description: "Tracks intern program metrics from Workday and posts updates to the talent Slack channel."
  tags:
    - hr
    - workday
    - slack
    - internship
capability:
  exposes:
    - type: mcp
      namespace: intern-ops
      port: 8080
      tools:
        - name: handle-intern-tracking
          description: "Given a program year, track intern metrics and post updates."
          inputParameters:
            - name: program_year
              in: body
              type: string
              description: "Internship program year."
          steps:
            - name: get-metrics
              type: call
              call: workday-intern.get-report
              with:
                year: "{{program_year}}"
            - name: post-update
              type: call
              call: slack-talent.post-message
              with:
                channel: "talent-programs"
                text: "Intern Program ({{program_year}}): Active: {{get-metrics.active_interns}} | Offers extended: {{get-metrics.offers}} | Conversion: {{get-metrics.conversion_rate}}%"
  consumes:
    - type: http
      namespace: workday-intern
      baseUri: "https://wd5-impl-services1.workday.com/ccx/api/v1/nvidia"
      authentication:
        type: bearer
        token: "$secrets.workday_token"
      resources:
        - name: reports
          path: "/internProgram"
          inputParameters:
            - name: year
              in: query
          operations:
            - name: get-report
              method: GET
    - type: http
      namespace: slack-talent
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token"
      resources:
        - name: messages
          path: "/chat.postMessage"
          operations:
            - name: post-message
              method: POST

When a leave request is submitted in Workday, notifies the manager in Slack for approval.

naftiko: "0.5"
info:
  label: "Workday Leave Approval Notification"
  description: "When a leave request is submitted in Workday, notifies the manager in Slack for approval."
  tags:
    - hr
    - workday
    - slack
    - leave-management
capability:
  exposes:
    - type: mcp
      namespace: leave-ops
      port: 8080
      tools:
        - name: handle-leave-request
          description: "Given a Workday employee ID and leave dates, notify the manager in Slack."
          inputParameters:
            - name: employee_id
              in: body
              type: string
              description: "Workday employee ID."
            - name: leave_dates
              in: body
              type: string
              description: "Requested leave dates."
          steps:
            - name: get-worker
              type: call
              call: workday-leave.get-worker
              with:
                employee_id: "{{employee_id}}"
            - name: notify-manager
              type: call
              call: slack-leave.post-message
              with:
                channel: "manager-approvals"
                text: "LEAVE REQUEST: {{get-worker.fullName}} | Dates: {{leave_dates}} | Please review in Workday."
  consumes:
    - type: http
      namespace: workday-leave
      baseUri: "https://wd5-impl-services1.workday.com/ccx/api/v1/nvidia"
      authentication:
        type: bearer
        token: "$secrets.workday_token"
      resources:
        - name: workers
          path: "/workers/{{employee_id}}"
          inputParameters:
            - name: employee_id
              in: path
          operations:
            - name: get-worker
              method: GET
    - type: http
      namespace: slack-leave
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token"
      resources:
        - name: messages
          path: "/chat.postMessage"
          operations:
            - name: post-message
              method: POST

When a new hire starts in Workday, provisions GPU cluster access and notifies the hiring manager in Slack.

naftiko: "0.5"
info:
  label: "Workday New Hire GPU Access Provisioning"
  description: "When a new hire starts in Workday, provisions GPU cluster access and notifies the hiring manager in Slack."
  tags:
    - hr
    - workday
    - slack
    - onboarding
capability:
  exposes:
    - type: mcp
      namespace: gpu-access
      port: 8080
      tools:
        - name: handle-gpu-access
          description: "Given a Workday employee ID, retrieve their role and notify IT for GPU cluster access provisioning in Slack."
          inputParameters:
            - name: employee_id
              in: body
              type: string
              description: "Workday employee ID."
            - name: cluster_name
              in: body
              type: string
              description: "GPU cluster to provision access to."
          steps:
            - name: get-worker
              type: call
              call: workday-access.get-worker
              with:
                employee_id: "{{employee_id}}"
            - name: notify-it
              type: call
              call: slack-it.post-message
              with:
                channel: "it-provisioning"
                text: "GPU ACCESS: {{get-worker.fullName}} ({{employee_id}}) | Role: {{get-worker.jobTitle}} | Cluster: {{cluster_name}} | Please provision access."
  consumes:
    - type: http
      namespace: workday-access
      baseUri: "https://wd5-impl-services1.workday.com/ccx/api/v1/nvidia"
      authentication:
        type: bearer
        token: "$secrets.workday_token"
      resources:
        - name: workers
          path: "/workers/{{employee_id}}"
          inputParameters:
            - name: employee_id
              in: path
          operations:
            - name: get-worker
              method: GET
    - type: http
      namespace: slack-it
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token"
      resources:
        - name: messages
          path: "/chat.postMessage"
          operations:
            - name: post-message
              method: POST

Returns the count of open engineering job requisitions in Workday.

naftiko: "0.5"
info:
  label: "Workday Open Engineering Requisitions"
  description: "Returns the count of open engineering job requisitions in Workday."
  tags:
    - hr
    - workday
    - recruiting
capability:
  exposes:
    - type: mcp
      namespace: talent-ops
      port: 8080
      tools:
        - name: get-open-reqs
          description: "Given a team name, return open engineering requisitions from Workday. Use for hiring pipeline tracking."
          inputParameters:
            - name: team
              in: body
              type: string
              description: "Engineering team name."
          call: "workday-recruit.get-requisitions"
          with:
            team: "{{team}}"
          outputParameters:
            - name: requisitions
              type: object
              mapping: "$"
  consumes:
    - type: http
      namespace: workday-recruit
      baseUri: "https://wd5-impl-services1.workday.com/ccx/api/v1/nvidia"
      authentication:
        type: bearer
        token: "$secrets.workday_token"
      resources:
        - name: requisitions
          path: "/jobRequisitions"
          inputParameters:
            - name: team
              in: query
          operations:
            - name: get-requisitions
              method: GET

Fetches all employees due for a performance review from Workday and creates individual Jira tasks for their managers, then notifies via Microsoft Teams.

naftiko: "0.5"
info:
  label: "Workday Performance Review Cycle Kickoff"
  description: "Fetches all employees due for a performance review from Workday and creates individual Jira tasks for their managers, then notifies via Microsoft Teams."
  tags:
    - hr
    - performance-management
    - workday
    - jira
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: perf-review-ops
      port: 8080
      tools:
        - name: kickoff-performance-reviews
          description: "Fetch employees due for performance review from Workday, create a Jira task for each manager, and notify HR via Microsoft Teams. Use to kick off quarterly or annual review cycles."
          inputParameters:
            - name: review_cycle_name
              in: body
              type: string
              description: "Name of the review cycle (e.g., 'Q1 2026 Performance Review')."
            - name: jira_project_key
              in: body
              type: string
              description: "Jira project key for performance review tasks (e.g., 'HR')."
            - name: hr_teams_channel_id
              in: body
              type: string
              description: "Microsoft Teams channel ID to notify HR of kickoff."
          steps:
            - name: get-review-eligible
              type: call
              call: "workday.list-workers"
              with:
                review_cycle: "{{review_cycle_name}}"
            - name: create-review-tasks
              type: call
              call: "jira.create-issue"
              with:
                project_key: "{{jira_project_key}}"
                issuetype: "Task"
                summary: "Performance Review Cycle: {{review_cycle_name}}"
                description: "Managers: please complete performance reviews for all direct reports in Workday by the deadline."
            - name: notify-hr-teams
              type: call
              call: "msteams.post-channel-message"
              with:
                channel_id: "{{hr_teams_channel_id}}"
                text: "Performance review cycle '{{review_cycle_name}}' has been kicked off. Manager tasks created in Jira: {{create-review-tasks.key}}"
  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: "/nvidia/workers"
          inputParameters:
            - name: review_cycle
              in: query
          operations:
            - name: list-workers
              method: GET
    - type: http
      namespace: jira
      baseUri: "https://nvidia.atlassian.net/rest/api/3"
      authentication:
        type: basic
        username: "$secrets.jira_user"
        password: "$secrets.jira_api_token"
      resources:
        - name: issues
          path: "/issue"
          operations:
            - name: create-issue
              method: POST
    - type: http
      namespace: msteams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: channel-messages
          path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
          inputParameters:
            - name: team_id
              in: path
            - name: channel_id
              in: path
          operations:
            - name: post-channel-message
              method: POST

When an employee's role changes in Workday, updates their Okta group memberships to reflect the new role's access requirements.

naftiko: "0.5"
info:
  label: "Workday Role Change Propagation"
  description: "When an employee's role changes in Workday, updates their Okta group memberships to reflect the new role's access requirements."
  tags:
    - hr
    - identity
    - workday
    - okta
    - access-management
capability:
  exposes:
    - type: mcp
      namespace: role-sync
      port: 8080
      tools:
        - name: sync-role-change
          description: "Given a Workday employee ID, old role group ID, and new role Okta group ID, remove the user from the old group and add them to the new one. Use when an employee is promoted or transfers teams."
          inputParameters:
            - name: workday_employee_id
              in: body
              type: string
              description: "The Workday worker ID of the employee whose role changed."
            - name: old_okta_group_id
              in: body
              type: string
              description: "The Okta group ID corresponding to the previous role."
            - name: new_okta_group_id
              in: body
              type: string
              description: "The Okta group ID corresponding to the new role."
          steps:
            - name: get-employee
              type: call
              call: "workday.get-worker"
              with:
                worker_id: "{{workday_employee_id}}"
            - name: remove-old-group
              type: call
              call: "okta-remove.remove-user-from-group"
              with:
                group_id: "{{old_okta_group_id}}"
                user_id: "{{get-employee.okta_user_id}}"
            - name: add-new-group
              type: call
              call: "okta-add.add-user-to-group"
              with:
                group_id: "{{new_okta_group_id}}"
                user_id: "{{get-employee.okta_user_id}}"
  consumes:
    - type: http
      namespace: workday
      baseUri: "https://wd2-impl-services1.workday.com/ccx/api/v1"
      authentication:
        type: bearer
        token: "$secrets.workday_token"
      resources:
        - name: workers
          path: "/nvidia/workers/{{worker_id}}"
          inputParameters:
            - name: worker_id
              in: path
          operations:
            - name: get-worker
              method: GET
    - type: http
      namespace: okta-remove
      baseUri: "https://nvidia.okta.com/api/v1"
      authentication:
        type: apikey
        key: "Authorization"
        value: "$secrets.okta_api_token"
        placement: header
      resources:
        - name: group-users
          path: "/groups/{{group_id}}/users/{{user_id}}"
          inputParameters:
            - name: group_id
              in: path
            - name: user_id
              in: path
          operations:
            - name: remove-user-from-group
              method: DELETE
    - type: http
      namespace: okta-add
      baseUri: "https://nvidia.okta.com/api/v1"
      authentication:
        type: apikey
        key: "Authorization"
        value: "$secrets.okta_api_token"
        placement: header
      resources:
        - name: group-users
          path: "/groups/{{group_id}}/users/{{user_id}}"
          inputParameters:
            - name: group_id
              in: path
            - name: user_id
              in: path
          operations:
            - name: add-user-to-group
              method: PUT