SAS Institute Capabilities

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

Sort
Expand

Queries Datadog for ML model inference latency and error rates, compares against SLAs, and opens a ServiceNow incident if thresholds are breached, notifying the ML ops team via Microsoft Teams.

naftiko: "0.5"
info:
  label: "AI Model Performance Monitoring Pipeline"
  description: "Queries Datadog for ML model inference latency and error rates, compares against SLAs, and opens a ServiceNow incident if thresholds are breached, notifying the ML ops team via Microsoft Teams."
  tags:
    - machine-learning
    - monitoring
    - datadog
    - servicenow
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: ml-monitoring
      port: 8080
      tools:
        - name: check-model-performance
          description: "Given a model endpoint name, check Datadog metrics and alert if SLA is breached."
          inputParameters:
            - name: endpoint_name
              in: body
              type: string
              description: "The ML model endpoint name."
            - name: latency_threshold_ms
              in: body
              type: number
              description: "Maximum acceptable latency in milliseconds."
            - name: error_rate_threshold
              in: body
              type: number
              description: "Maximum acceptable error rate percentage."
          steps:
            - name: get-metrics
              type: call
              call: "datadog.query-metrics"
              with:
                query: "avg:ml.inference.latency{endpoint:{{endpoint_name}}}"
            - name: open-incident
              type: call
              call: "servicenow.create-incident"
              with:
                short_description: "ML Model SLA Breach: {{endpoint_name}}"
                category: "ml_ops"
                urgency: "high"
                assigned_group: "ML_Operations"
                description: "Model endpoint {{endpoint_name}} latency: {{get-metrics.avg_latency}}ms (threshold: {{latency_threshold_ms}}ms)."
            - name: notify-mlops
              type: call
              call: "msteams.send-message"
              with:
                channel_id: "ml_ops"
                text: "ML Model Alert: {{endpoint_name}} — Latency: {{get-metrics.avg_latency}}ms. Threshold: {{latency_threshold_ms}}ms. ServiceNow: {{open-incident.number}}."
  consumes:
    - type: http
      namespace: datadog
      baseUri: "https://api.datadoghq.com/api/v1"
      authentication:
        type: apiKey
        key: "$secrets.datadog_api_key"
      resources:
        - name: query
          path: "/query?query={{query}}&from=-1h"
          inputParameters:
            - name: query
              in: path
          operations:
            - name: query-metrics
              method: GET
    - type: http
      namespace: servicenow
      baseUri: "https://sas.service-now.com/api/now"
      authentication:
        type: basic
        username: "$secrets.servicenow_user"
        password: "$secrets.servicenow_password"
      resources:
        - name: incidents
          path: "/table/incident"
          operations:
            - name: create-incident
              method: POST
    - type: http
      namespace: msteams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: channel-messages
          path: "/teams/{{channel_id}}/channels/general/messages"
          inputParameters:
            - name: channel_id
              in: path
          operations:
            - name: send-message
              method: POST

Triggers an Alteryx workflow for data preparation and transformation, used by analytics teams to cleanse and enrich datasets.

naftiko: "0.5"
info:
  label: "Alteryx Data Preparation Workflow"
  description: "Triggers an Alteryx workflow for data preparation and transformation, used by analytics teams to cleanse and enrich datasets."
  tags:
    - data-management
    - data-preparation
    - alteryx
capability:
  exposes:
    - type: mcp
      namespace: data-prep
      port: 8080
      tools:
        - name: run-alteryx-workflow
          description: "Trigger an Alteryx Server workflow."
          inputParameters:
            - name: workflow_id
              in: body
              type: string
              description: "The Alteryx workflow ID."
          call: "alteryx.run-workflow"
          with:
            workflow_id: "{{workflow_id}}"
  consumes:
    - type: http
      namespace: alteryx
      baseUri: "https://alteryx.sas.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.alteryx_token"
      resources:
        - name: workflows
          path: "/workflows/{{workflow_id}}/jobs"
          inputParameters:
            - name: workflow_id
              in: path
          operations:
            - name: run-workflow
              method: POST

Orchestrates analytics community engagement pipeline across analytics and AI software systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Analytics Community Engagement Pipeline"
  description: "Orchestrates analytics community engagement pipeline across analytics and AI software systems, coordinating multiple services and notifying stakeholders."
  tags:
    - analytics
    - sas
    - slack
    - jira
    - teams
capability:
  exposes:
    - type: mcp
      namespace: analytics
      port: 8080
      tools:
        - name: analytics-community-engagement-pipeline
          description: "Orchestrates analytics community engagement pipeline across analytics and AI software systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "slack.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "jira.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "teams.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: slack
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token"
      resources:
        - name: slack-resource
          path: "/api/analytics"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: jira
      baseUri: "https://sas.atlassian.net/rest/api/3"
      authentication:
        type: bearer
        token: "$secrets.jira_token"
      resources:
        - name: jira-resource
          path: "/api/analytics"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: teams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.teams_token"
      resources:
        - name: teams-resource
          path: "/api/analytics"
          operations:
            - name: execute-3
              method: POST

Orchestrates analytics content publishing pipeline across analytics and AI software systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Analytics Content Publishing Pipeline"
  description: "Orchestrates analytics content publishing pipeline across analytics and AI software systems, coordinating multiple services and notifying stakeholders."
  tags:
    - analytics
    - sas
    - confluence
    - datadog
    - sas
capability:
  exposes:
    - type: mcp
      namespace: analytics
      port: 8080
      tools:
        - name: analytics-content-publishing-pipeline
          description: "Orchestrates analytics content publishing pipeline across analytics and AI software systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "confluence.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "datadog.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "sas.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: confluence
      baseUri: "https://sas.atlassian.net/wiki/rest/api"
      authentication:
        type: bearer
        token: "$secrets.confluence_token"
      resources:
        - name: confluence-resource
          path: "/api/analytics"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: datadog
      baseUri: "https://api.datadoghq.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.datadog_api_key"
      resources:
        - name: datadog-resource
          path: "/api/analytics"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: sas
      baseUri: "https://api.sas.com/v2"
      authentication:
        type: bearer
        token: "$secrets.sas_api_token"
      resources:
        - name: sas-resource
          path: "/api/analytics"
          operations:
            - name: execute-3
              method: POST

Retrieves analytics job execution status data from the Sas analytics and AI software systems.

naftiko: "0.5"
info:
  label: "Analytics Job Execution Status"
  description: "Retrieves analytics job execution status data from the Sas analytics and AI software systems."
  tags:
    - analytics
    - sas
    - status
capability:
  exposes:
    - type: mcp
      namespace: analytics
      port: 8080
      tools:
        - name: analytics-job-execution-status
          description: "Retrieves analytics job execution status data from the Sas analytics and AI software systems."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The input id."
          call: "sas.analytics-job-execution-status"
          with:
            input_id: "{{input_id}}"
          outputParameters:
            - name: result
              type: string
              mapping: "$.data"
            - name: status
              type: string
              mapping: "$.status"
  consumes:
    - type: http
      namespace: sas
      baseUri: "https://api.sas.com/v2"
      authentication:
        type: bearer
        token: "$secrets.sas_api_token"
      resources:
        - name: resource
          path: "/analytics/job/execution/status/{{input_id}}"
          inputParameters:
            - name: input_id
              in: path
          operations:
            - name: analytics-job-execution-status
              method: GET

Orchestrates analytics workload optimization pipeline across analytics and AI software systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Analytics Workload Optimization Pipeline"
  description: "Orchestrates analytics workload optimization pipeline across analytics and AI software systems, coordinating multiple services and notifying stakeholders."
  tags:
    - analytics
    - sas
    - teams
    - github
    - confluence
capability:
  exposes:
    - type: mcp
      namespace: analytics
      port: 8080
      tools:
        - name: analytics-workload-optimization-pipeline
          description: "Orchestrates analytics workload optimization pipeline across analytics and AI software systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "teams.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "github.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "confluence.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: teams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.teams_token"
      resources:
        - name: teams-resource
          path: "/api/analytics"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: github
      baseUri: "https://api.github.com"
      authentication:
        type: bearer
        token: "$secrets.github_token"
      resources:
        - name: github-resource
          path: "/api/analytics"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: confluence
      baseUri: "https://sas.atlassian.net/wiki/rest/api"
      authentication:
        type: bearer
        token: "$secrets.confluence_token"
      resources:
        - name: confluence-resource
          path: "/api/analytics"
          operations:
            - name: execute-3
              method: POST

When an OpenAPI spec is updated in GitHub, generates documentation, publishes to Confluence, and notifies the developer relations team via Microsoft Teams.

naftiko: "0.5"
info:
  label: "API Documentation Publisher"
  description: "When an OpenAPI spec is updated in GitHub, generates documentation, publishes to Confluence, and notifies the developer relations team via Microsoft Teams."
  tags:
    - platform
    - documentation
    - github
    - confluence
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: api-docs
      port: 8080
      tools:
        - name: publish-api-docs
          description: "Given a GitHub repo and spec path, fetch the spec, publish docs to Confluence, and notify."
          inputParameters:
            - name: repo
              in: body
              type: string
              description: "The GitHub repo."
            - name: spec_path
              in: body
              type: string
              description: "Path to the OpenAPI spec in the repo."
            - name: api_name
              in: body
              type: string
              description: "The API name."
          steps:
            - name: get-spec
              type: call
              call: "github.get-file-content"
              with:
                repo: "{{repo}}"
                path: "{{spec_path}}"
            - name: publish-docs
              type: call
              call: "confluence.create-page"
              with:
                space_key: "APIREF"
                title: "API Reference: {{api_name}}"
                body: "OpenAPI specification for {{api_name}}. Source: {{repo}}/{{spec_path}}."
            - name: notify-devrel
              type: call
              call: "msteams.send-message"
              with:
                channel_id: "developer_relations"
                text: "API docs published for {{api_name}}. Confluence: {{publish-docs.url}}. Source: {{repo}}/{{spec_path}}."
  consumes:
    - type: http
      namespace: github
      baseUri: "https://api.github.com/repos"
      authentication:
        type: bearer
        token: "$secrets.github_token"
      resources:
        - name: contents
          path: "/{{repo}}/contents/{{path}}"
          inputParameters:
            - name: repo
              in: path
            - name: path
              in: path
          operations:
            - name: get-file-content
              method: GET
    - type: http
      namespace: confluence
      baseUri: "https://sas.atlassian.net/wiki/rest/api"
      authentication:
        type: basic
        username: "$secrets.confluence_user"
        password: "$secrets.confluence_api_token"
      resources:
        - name: content
          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/{{channel_id}}/channels/general/messages"
          inputParameters:
            - name: channel_id
              in: path
          operations:
            - name: send-message
              method: POST

Retrieves api gateway usage metrics data from the Sas analytics and AI software systems.

naftiko: "0.5"
info:
  label: "Api Gateway Usage Metrics"
  description: "Retrieves api gateway usage metrics data from the Sas analytics and AI software systems."
  tags:
    - api
    - sas
    - metrics
capability:
  exposes:
    - type: mcp
      namespace: api
      port: 8080
      tools:
        - name: api-gateway-usage-metrics
          description: "Retrieves api gateway usage metrics data from the Sas analytics and AI software systems."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The input id."
          call: "sas.api-gateway-usage-metrics"
          with:
            input_id: "{{input_id}}"
          outputParameters:
            - name: result
              type: string
              mapping: "$.data"
            - name: status
              type: string
              mapping: "$.status"
  consumes:
    - type: http
      namespace: sas
      baseUri: "https://api.sas.com/v2"
      authentication:
        type: bearer
        token: "$secrets.sas_api_token"
      resources:
        - name: resource
          path: "/api/gateway/usage/metrics/{{input_id}}"
          inputParameters:
            - name: input_id
              in: path
          operations:
            - name: api-gateway-usage-metrics
              method: GET

Triggers an Azure Databricks notebook run for ETL or analytics workloads and returns the run status and output.

naftiko: "0.5"
info:
  label: "Azure Databricks Notebook Runner"
  description: "Triggers an Azure Databricks notebook run for ETL or analytics workloads and returns the run status and output."
  tags:
    - data-engineering
    - etl
    - azure-databricks
capability:
  exposes:
    - type: mcp
      namespace: databricks-etl
      port: 8080
      tools:
        - name: run-notebook
          description: "Trigger a Databricks notebook run and return output."
          inputParameters:
            - name: notebook_path
              in: body
              type: string
              description: "The Databricks notebook path."
            - name: cluster_id
              in: body
              type: string
              description: "The Databricks cluster ID."
          call: "databricks.run-notebook"
          with:
            notebook_path: "{{notebook_path}}"
            cluster_id: "{{cluster_id}}"
  consumes:
    - type: http
      namespace: databricks
      baseUri: "https://sas.cloud.databricks.com/api/2.1"
      authentication:
        type: bearer
        token: "$secrets.databricks_token"
      resources:
        - name: runs
          path: "/jobs/runs/submit"
          operations:
            - name: run-notebook
              method: POST

Retrieves the latest build status for an Azure DevOps pipeline.

naftiko: "0.5"
info:
  label: "Azure DevOps Build Status"
  description: "Retrieves the latest build status for an Azure DevOps pipeline."
  tags:
    - ci-cd
    - engineering
    - azure-devops
capability:
  exposes:
    - type: mcp
      namespace: devops-ci
      port: 8080
      tools:
        - name: get-build-status
          description: "Look up the latest build for an Azure DevOps pipeline."
          inputParameters:
            - name: project
              in: body
              type: string
              description: "The Azure DevOps project name."
            - name: pipeline_id
              in: body
              type: string
              description: "The pipeline definition ID."
          call: "azdevops.get-latest-build"
          with:
            project: "{{project}}"
            pipeline_id: "{{pipeline_id}}"
          outputParameters:
            - name: result
              type: string
              mapping: "$.value[0].result"
            - name: status
              type: string
              mapping: "$.value[0].status"
  consumes:
    - type: http
      namespace: azdevops
      baseUri: "https://dev.azure.com/sas"
      authentication:
        type: basic
        username: "$secrets.azdevops_user"
        password: "$secrets.azdevops_pat"
      resources:
        - name: builds
          path: "/{{project}}/_apis/build/builds?definitions={{pipeline_id}}&$top=1&api-version=7.0"
          inputParameters:
            - name: project
              in: path
            - name: pipeline_id
              in: path
          operations:
            - name: get-latest-build
              method: GET

Retrieves a secret from Azure Key Vault.

naftiko: "0.5"
info:
  label: "Azure Key Vault Secret Retrieval"
  description: "Retrieves a secret from Azure Key Vault."
  tags: [security, credentials, azure-key-vault]
capability:
  exposes:
    - type: mcp
      namespace: secret-mgmt
      port: 8080
      tools:
        - name: get-secret
          description: "Retrieve a secret from Azure Key Vault."
          inputParameters:
            - name: secret_name
              in: body
              type: string
              description: "Secret name."
          call: "keyvault.get-secret"
          with:
            secret_name: "{{secret_name}}"
  consumes:
    - type: http
      namespace: keyvault
      baseUri: "https://sas-vault.vault.azure.net"
      authentication:
        type: bearer
        token: "$secrets.azure_keyvault_token"
      resources:
        - name: secrets
          path: "/secrets/{{secret_name}}?api-version=7.4"
          inputParameters:
            - name: secret_name
              in: path
          operations:
            - name: get-secret
              method: GET

Queries Cloudflare for CDN performance metrics.

naftiko: "0.5"
info:
  label: "Cloudflare CDN Performance"
  description: "Queries Cloudflare for CDN performance metrics."
  tags: [infrastructure, cdn, cloudflare]
capability:
  exposes:
    - type: mcp
      namespace: cdn
      port: 8080
      tools:
        - name: get-cdn-performance
          description: "Retrieve Cloudflare zone analytics."
          inputParameters:
            - name: zone_id
              in: body
              type: string
              description: "Cloudflare zone ID."
          call: "cloudflare.get-zone-analytics"
          with:
            zone_id: "{{zone_id}}"
  consumes:
    - type: http
      namespace: cloudflare
      baseUri: "https://api.cloudflare.com/client/v4"
      authentication:
        type: bearer
        token: "$secrets.cloudflare_token"
      resources:
        - name: analytics
          path: "/zones/{{zone_id}}/analytics/dashboard"
          inputParameters:
            - name: zone_id
              in: path
          operations:
            - name: get-zone-analytics
              method: GET

Searches Confluence for product documentation and knowledge base articles by keyword.

naftiko: "0.5"
info:
  label: "Confluence Documentation Search"
  description: "Searches Confluence for product documentation and knowledge base articles by keyword."
  tags:
    - documentation
    - knowledge-management
    - confluence
capability:
  exposes:
    - type: mcp
      namespace: knowledge
      port: 8080
      tools:
        - name: search-docs
          description: "Search Confluence for documentation by keyword."
          inputParameters:
            - name: query
              in: body
              type: string
              description: "The search keyword."
          call: "confluence.search"
          with:
            query: "{{query}}"
  consumes:
    - type: http
      namespace: confluence
      baseUri: "https://sas.atlassian.net/wiki/rest/api"
      authentication:
        type: basic
        username: "$secrets.confluence_user"
        password: "$secrets.confluence_api_token"
      resources:
        - name: search
          path: "/search?cql=type=page AND text~\"{{query}}\""
          inputParameters:
            - name: query
              in: path
          operations:
            - name: search
              method: GET

Orchestrates customer advisory board pipeline across analytics and AI software systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Customer Advisory Board Pipeline"
  description: "Orchestrates customer advisory board pipeline across analytics and AI software systems, coordinating multiple services and notifying stakeholders."
  tags:
    - customer
    - sas
    - datadog
    - sas
    - salesforce
capability:
  exposes:
    - type: mcp
      namespace: customer
      port: 8080
      tools:
        - name: customer-advisory-board-pipeline
          description: "Orchestrates customer advisory board pipeline across analytics and AI software systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "datadog.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "sas.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "salesforce.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: datadog
      baseUri: "https://api.datadoghq.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.datadog_api_key"
      resources:
        - name: datadog-resource
          path: "/api/customer"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: sas
      baseUri: "https://api.sas.com/v2"
      authentication:
        type: bearer
        token: "$secrets.sas_api_token"
      resources:
        - name: sas-resource
          path: "/api/customer"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: salesforce
      baseUri: "https://sas.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_access_token"
      resources:
        - name: salesforce-resource
          path: "/api/customer"
          operations:
            - name: execute-3
              method: POST

Trains a customer segmentation model in SAS Viya, registers it in the Azure Machine Learning model registry, deploys to an endpoint, and notifies the data science team via Microsoft Teams.

naftiko: "0.5"
info:
  label: "Customer Analytics Model Deployment Pipeline"
  description: "Trains a customer segmentation model in SAS Viya, registers it in the Azure Machine Learning model registry, deploys to an endpoint, and notifies the data science team via Microsoft Teams."
  tags:
    - analytics
    - machine-learning
    - azure-machine-learning
    - microsoft-teams
    - model-deployment
capability:
  exposes:
    - type: mcp
      namespace: ml-deployment
      port: 8080
      tools:
        - name: deploy-customer-model
          description: "Given a SAS Viya model ID, register in Azure ML, deploy to endpoint, and notify the team."
          inputParameters:
            - name: model_id
              in: body
              type: string
              description: "The SAS Viya model ID."
            - name: endpoint_name
              in: body
              type: string
              description: "The Azure ML endpoint name for deployment."
            - name: model_version
              in: body
              type: string
              description: "The model version tag."
          steps:
            - name: get-model
              type: call
              call: "sasviya.get-model"
              with:
                model_id: "{{model_id}}"
            - name: register-model
              type: call
              call: "azureml.register-model"
              with:
                model_name: "{{get-model.name}}"
                version: "{{model_version}}"
                description: "{{get-model.description}}"
            - name: deploy-endpoint
              type: call
              call: "azureml.deploy-endpoint"
              with:
                endpoint_name: "{{endpoint_name}}"
                model_name: "{{get-model.name}}"
                version: "{{model_version}}"
            - name: notify-team
              type: call
              call: "msteams.send-message"
              with:
                channel_id: "data_science"
                text: "Model Deployed: {{get-model.name}} v{{model_version}} to {{endpoint_name}}. Scoring URI: {{deploy-endpoint.scoring_uri}}."
  consumes:
    - type: http
      namespace: sasviya
      baseUri: "https://sasviya.sas.com/modelRepository"
      authentication:
        type: bearer
        token: "$secrets.sas_viya_token"
      resources:
        - name: models
          path: "/models/{{model_id}}"
          inputParameters:
            - name: model_id
              in: path
          operations:
            - name: get-model
              method: GET
    - type: http
      namespace: azureml
      baseUri: "https://management.azure.com/subscriptions/$secrets.azure_subscription_id/resourceGroups/$secrets.azure_rg/providers/Microsoft.MachineLearningServices/workspaces/$secrets.azure_ml_workspace"
      authentication:
        type: bearer
        token: "$secrets.azure_ml_token"
      resources:
        - name: models
          path: "/models"
          operations:
            - name: register-model
              method: POST
        - name: endpoints
          path: "/onlineEndpoints/{{endpoint_name}}/deployments"
          inputParameters:
            - name: endpoint_name
              in: path
          operations:
            - name: deploy-endpoint
              method: PUT
    - type: http
      namespace: msteams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: channel-messages
          path: "/teams/{{channel_id}}/channels/general/messages"
          inputParameters:
            - name: channel_id
              in: path
          operations:
            - name: send-message
              method: POST

Extracts customer interaction data from Salesforce, transforms it via a Databricks notebook, loads into Snowflake, and notifies the analytics team via Microsoft Teams.

naftiko: "0.5"
info:
  label: "Customer Data Platform Sync Pipeline"
  description: "Extracts customer interaction data from Salesforce, transforms it via a Databricks notebook, loads into Snowflake, and notifies the analytics team via Microsoft Teams."
  tags:
    - data-management
    - etl
    - salesforce
    - databricks
    - snowflake
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: cdp-sync
      port: 8080
      tools:
        - name: sync-customer-data
          description: "Given a Salesforce report ID, extract data, transform in Databricks, load to Snowflake, and notify."
          inputParameters:
            - name: report_id
              in: body
              type: string
              description: "The Salesforce report ID to extract."
            - name: notebook_path
              in: body
              type: string
              description: "The Databricks transformation notebook path."
            - name: target_table
              in: body
              type: string
              description: "The Snowflake target table name."
          steps:
            - name: extract-data
              type: call
              call: "salesforce.get-report"
              with:
                report_id: "{{report_id}}"
            - name: transform-data
              type: call
              call: "databricks.run-notebook"
              with:
                notebook_path: "{{notebook_path}}"
                parameters: "source_report={{report_id}},target_table={{target_table}}"
            - name: notify-analytics
              type: call
              call: "msteams.send-message"
              with:
                channel_id: "analytics_team"
                text: "Customer data sync complete. Source: Salesforce report {{report_id}}. Target: Snowflake {{target_table}}. Transform: {{transform-data.status}}."
  consumes:
    - type: http
      namespace: salesforce
      baseUri: "https://sas.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token"
      resources:
        - name: reports
          path: "/analytics/reports/{{report_id}}"
          inputParameters:
            - name: report_id
              in: path
          operations:
            - name: get-report
              method: GET
    - type: http
      namespace: databricks
      baseUri: "https://sas.cloud.databricks.com/api/2.1"
      authentication:
        type: bearer
        token: "$secrets.databricks_token"
      resources:
        - name: runs
          path: "/jobs/runs/submit"
          operations:
            - name: run-notebook
              method: POST
    - type: http
      namespace: msteams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: channel-messages
          path: "/teams/{{channel_id}}/channels/general/messages"
          inputParameters:
            - name: channel_id
              in: path
          operations:
            - name: send-message
              method: POST

Orchestrates customer education engagement pipeline across analytics and AI software systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Customer Education Engagement Pipeline"
  description: "Orchestrates customer education engagement pipeline across analytics and AI software systems, coordinating multiple services and notifying stakeholders."
  tags:
    - customer
    - sas
    - github
    - confluence
    - datadog
capability:
  exposes:
    - type: mcp
      namespace: customer
      port: 8080
      tools:
        - name: customer-education-engagement-pipeline
          description: "Orchestrates customer education engagement pipeline across analytics and AI software systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "github.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "confluence.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "datadog.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: github
      baseUri: "https://api.github.com"
      authentication:
        type: bearer
        token: "$secrets.github_token"
      resources:
        - name: github-resource
          path: "/api/customer"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: confluence
      baseUri: "https://sas.atlassian.net/wiki/rest/api"
      authentication:
        type: bearer
        token: "$secrets.confluence_token"
      resources:
        - name: confluence-resource
          path: "/api/customer"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: datadog
      baseUri: "https://api.datadoghq.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.datadog_api_key"
      resources:
        - name: datadog-resource
          path: "/api/customer"
          operations:
            - name: execute-3
              method: POST

Orchestrates customer expansion opportunity pipeline across analytics and AI software systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Customer Expansion Opportunity Pipeline"
  description: "Orchestrates customer expansion opportunity pipeline across analytics and AI software systems, coordinating multiple services and notifying stakeholders."
  tags:
    - customer
    - sas
    - snowflake
    - slack
    - jira
capability:
  exposes:
    - type: mcp
      namespace: customer
      port: 8080
      tools:
        - name: customer-expansion-opportunity-pipeline
          description: "Orchestrates customer expansion opportunity pipeline across analytics and AI software systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "snowflake.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "slack.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "jira.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: snowflake
      baseUri: "https://sas.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: snowflake-resource
          path: "/api/customer"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: slack
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token"
      resources:
        - name: slack-resource
          path: "/api/customer"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: jira
      baseUri: "https://sas.atlassian.net/rest/api/3"
      authentication:
        type: bearer
        token: "$secrets.jira_token"
      resources:
        - name: jira-resource
          path: "/api/customer"
          operations:
            - name: execute-3
              method: POST

Orchestrates customer feedback action pipeline across analytics and AI software systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Customer Feedback Action Pipeline"
  description: "Orchestrates customer feedback action pipeline across analytics and AI software systems, coordinating multiple services and notifying stakeholders."
  tags:
    - customer
    - sas
    - jira
    - teams
    - github
capability:
  exposes:
    - type: mcp
      namespace: customer
      port: 8080
      tools:
        - name: customer-feedback-action-pipeline
          description: "Orchestrates customer feedback action pipeline across analytics and AI software systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "jira.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "teams.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "github.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: jira
      baseUri: "https://sas.atlassian.net/rest/api/3"
      authentication:
        type: bearer
        token: "$secrets.jira_token"
      resources:
        - name: jira-resource
          path: "/api/customer"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: teams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.teams_token"
      resources:
        - name: teams-resource
          path: "/api/customer"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: github
      baseUri: "https://api.github.com"
      authentication:
        type: bearer
        token: "$secrets.github_token"
      resources:
        - name: github-resource
          path: "/api/customer"
          operations:
            - name: execute-3
              method: POST

Queries Salesforce for customer license usage data, aggregates metrics in Snowflake, and sends a weekly usage summary to the customer success team via Microsoft Teams.

naftiko: "0.5"
info:
  label: "Customer License Usage Report"
  description: "Queries Salesforce for customer license usage data, aggregates metrics in Snowflake, and sends a weekly usage summary to the customer success team via Microsoft Teams."
  tags:
    - customer-success
    - licensing
    - salesforce
    - snowflake
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: license-usage
      port: 8080
      tools:
        - name: generate-usage-report
          description: "Given an account ID, aggregate license usage from Salesforce and Snowflake and notify customer success."
          inputParameters:
            - name: account_id
              in: body
              type: string
              description: "The Salesforce account ID."
            - name: reporting_period
              in: body
              type: string
              description: "The reporting period."
          steps:
            - name: get-account
              type: call
              call: "salesforce.get-account"
              with:
                account_id: "{{account_id}}"
            - name: get-usage-metrics
              type: call
              call: "snowflake.execute-sql"
              with:
                statement: "SELECT sum(compute_hours) as total_hours, count(distinct user_id) as active_users FROM license_usage WHERE account_id = '{{account_id}}' AND period = '{{reporting_period}}'"
            - name: notify-cs
              type: call
              call: "msteams.send-message"
              with:
                channel_id: "customer_success"
                text: "License Usage Report: {{get-account.name}} ({{reporting_period}}). Compute hours: {{get-usage-metrics.total_hours}}. Active users: {{get-usage-metrics.active_users}}."
  consumes:
    - type: http
      namespace: salesforce
      baseUri: "https://sas.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: snowflake
      baseUri: "https://sas.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: statements
          path: "/statements"
          operations:
            - name: execute-sql
              method: POST
    - type: http
      namespace: msteams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: channel-messages
          path: "/teams/{{channel_id}}/channels/general/messages"
          inputParameters:
            - name: channel_id
              in: path
          operations:
            - name: send-message
              method: POST

Orchestrates customer migration pipeline across analytics and AI software systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Customer Migration Pipeline"
  description: "Orchestrates customer migration pipeline across analytics and AI software systems, coordinating multiple services and notifying stakeholders."
  tags:
    - customer
    - sas
    - salesforce
    - servicenow
    - snowflake
capability:
  exposes:
    - type: mcp
      namespace: customer
      port: 8080
      tools:
        - name: customer-migration-pipeline
          description: "Orchestrates customer migration pipeline across analytics and AI software systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "salesforce.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "servicenow.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "snowflake.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: salesforce
      baseUri: "https://sas.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_access_token"
      resources:
        - name: salesforce-resource
          path: "/api/customer"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: servicenow
      baseUri: "https://sas.service-now.com/api/now"
      authentication:
        type: bearer
        token: "$secrets.servicenow_token"
      resources:
        - name: servicenow-resource
          path: "/api/customer"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: snowflake
      baseUri: "https://sas.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: snowflake-resource
          path: "/api/customer"
          operations:
            - name: execute-3
              method: POST

Orchestrates customer onboarding pipeline across analytics and AI software systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Customer Onboarding Pipeline"
  description: "Orchestrates customer onboarding pipeline across analytics and AI software systems, coordinating multiple services and notifying stakeholders."
  tags:
    - customer
    - sas
    - jira
    - teams
    - github
capability:
  exposes:
    - type: mcp
      namespace: customer
      port: 8080
      tools:
        - name: customer-onboarding-pipeline
          description: "Orchestrates customer onboarding pipeline across analytics and AI software systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "jira.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "teams.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "github.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: jira
      baseUri: "https://sas.atlassian.net/rest/api/3"
      authentication:
        type: bearer
        token: "$secrets.jira_token"
      resources:
        - name: jira-resource
          path: "/api/customer"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: teams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.teams_token"
      resources:
        - name: teams-resource
          path: "/api/customer"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: github
      baseUri: "https://api.github.com"
      authentication:
        type: bearer
        token: "$secrets.github_token"
      resources:
        - name: github-resource
          path: "/api/customer"
          operations:
            - name: execute-3
              method: POST

Orchestrates customer reference program pipeline across analytics and AI software systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Customer Reference Program Pipeline"
  description: "Orchestrates customer reference program pipeline across analytics and AI software systems, coordinating multiple services and notifying stakeholders."
  tags:
    - customer
    - sas
    - snowflake
    - slack
    - jira
capability:
  exposes:
    - type: mcp
      namespace: customer
      port: 8080
      tools:
        - name: customer-reference-program-pipeline
          description: "Orchestrates customer reference program pipeline across analytics and AI software systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "snowflake.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "slack.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "jira.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: snowflake
      baseUri: "https://sas.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: snowflake-resource
          path: "/api/customer"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: slack
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token"
      resources:
        - name: slack-resource
          path: "/api/customer"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: jira
      baseUri: "https://sas.atlassian.net/rest/api/3"
      authentication:
        type: bearer
        token: "$secrets.jira_token"
      resources:
        - name: jira-resource
          path: "/api/customer"
          operations:
            - name: execute-3
              method: POST

Orchestrates customer renewal pipeline across analytics and AI software systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Customer Renewal Pipeline"
  description: "Orchestrates customer renewal pipeline across analytics and AI software systems, coordinating multiple services and notifying stakeholders."
  tags:
    - customer
    - sas
    - datadog
    - sas
    - salesforce
capability:
  exposes:
    - type: mcp
      namespace: customer
      port: 8080
      tools:
        - name: customer-renewal-pipeline
          description: "Orchestrates customer renewal pipeline across analytics and AI software systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "datadog.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "sas.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "salesforce.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: datadog
      baseUri: "https://api.datadoghq.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.datadog_api_key"
      resources:
        - name: datadog-resource
          path: "/api/customer"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: sas
      baseUri: "https://api.sas.com/v2"
      authentication:
        type: bearer
        token: "$secrets.sas_api_token"
      resources:
        - name: sas-resource
          path: "/api/customer"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: salesforce
      baseUri: "https://sas.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_access_token"
      resources:
        - name: salesforce-resource
          path: "/api/customer"
          operations:
            - name: execute-3
              method: POST

Retrieves customer subscription usage report data from the Sas analytics and AI software systems.

naftiko: "0.5"
info:
  label: "Customer Subscription Usage Report"
  description: "Retrieves customer subscription usage report data from the Sas analytics and AI software systems."
  tags:
    - customer
    - sas
    - report
capability:
  exposes:
    - type: mcp
      namespace: customer
      port: 8080
      tools:
        - name: customer-subscription-usage-report
          description: "Retrieves customer subscription usage report data from the Sas analytics and AI software systems."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The input id."
          call: "sas.customer-subscription-usage-report"
          with:
            input_id: "{{input_id}}"
          outputParameters:
            - name: result
              type: string
              mapping: "$.data"
            - name: status
              type: string
              mapping: "$.status"
  consumes:
    - type: http
      namespace: sas
      baseUri: "https://api.sas.com/v2"
      authentication:
        type: bearer
        token: "$secrets.sas_api_token"
      resources:
        - name: resource
          path: "/customer/subscription/usage/report/{{input_id}}"
          inputParameters:
            - name: input_id
              in: path
          operations:
            - name: customer-subscription-usage-report
              method: GET

Orchestrates customer success health pipeline across analytics and AI software systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Customer Success Health Pipeline"
  description: "Orchestrates customer success health pipeline across analytics and AI software systems, coordinating multiple services and notifying stakeholders."
  tags:
    - customer
    - sas
    - salesforce
    - servicenow
    - snowflake
capability:
  exposes:
    - type: mcp
      namespace: customer
      port: 8080
      tools:
        - name: customer-success-health-pipeline
          description: "Orchestrates customer success health pipeline across analytics and AI software systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "salesforce.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "servicenow.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "snowflake.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: salesforce
      baseUri: "https://sas.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_access_token"
      resources:
        - name: salesforce-resource
          path: "/api/customer"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: servicenow
      baseUri: "https://sas.service-now.com/api/now"
      authentication:
        type: bearer
        token: "$secrets.servicenow_token"
      resources:
        - name: servicenow-resource
          path: "/api/customer"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: snowflake
      baseUri: "https://sas.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: snowflake-resource
          path: "/api/customer"
          operations:
            - name: execute-3
              method: POST

Retrieves customer support case status data from the Sas analytics and AI software systems.

naftiko: "0.5"
info:
  label: "Customer Support Case Status"
  description: "Retrieves customer support case status data from the Sas analytics and AI software systems."
  tags:
    - customer
    - sas
    - status
capability:
  exposes:
    - type: mcp
      namespace: customer
      port: 8080
      tools:
        - name: customer-support-case-status
          description: "Retrieves customer support case status data from the Sas analytics and AI software systems."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The input id."
          call: "sas.customer-support-case-status"
          with:
            input_id: "{{input_id}}"
          outputParameters:
            - name: result
              type: string
              mapping: "$.data"
            - name: status
              type: string
              mapping: "$.status"
  consumes:
    - type: http
      namespace: sas
      baseUri: "https://api.sas.com/v2"
      authentication:
        type: bearer
        token: "$secrets.sas_api_token"
      resources:
        - name: resource
          path: "/customer/support/case/status/{{input_id}}"
          inputParameters:
            - name: input_id
              in: path
          operations:
            - name: customer-support-case-status
              method: GET

Orchestrates data catalog enrichment pipeline across analytics and AI software systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Data Catalog Enrichment Pipeline"
  description: "Orchestrates data catalog enrichment pipeline across analytics and AI software systems, coordinating multiple services and notifying stakeholders."
  tags:
    - data
    - sas
    - github
    - confluence
    - datadog
capability:
  exposes:
    - type: mcp
      namespace: data
      port: 8080
      tools:
        - name: data-catalog-enrichment-pipeline
          description: "Orchestrates data catalog enrichment pipeline across analytics and AI software systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "github.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "confluence.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "datadog.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: github
      baseUri: "https://api.github.com"
      authentication:
        type: bearer
        token: "$secrets.github_token"
      resources:
        - name: github-resource
          path: "/api/data"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: confluence
      baseUri: "https://sas.atlassian.net/wiki/rest/api"
      authentication:
        type: bearer
        token: "$secrets.confluence_token"
      resources:
        - name: confluence-resource
          path: "/api/data"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: datadog
      baseUri: "https://api.datadoghq.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.datadog_api_key"
      resources:
        - name: datadog-resource
          path: "/api/data"
          operations:
            - name: execute-3
              method: POST

Retrieves data catalog search results data from the Sas analytics and AI software systems.

naftiko: "0.5"
info:
  label: "Data Catalog Search Results"
  description: "Retrieves data catalog search results data from the Sas analytics and AI software systems."
  tags:
    - data
    - sas
    - results
capability:
  exposes:
    - type: mcp
      namespace: data
      port: 8080
      tools:
        - name: data-catalog-search-results
          description: "Retrieves data catalog search results data from the Sas analytics and AI software systems."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The input id."
          call: "sas.data-catalog-search-results"
          with:
            input_id: "{{input_id}}"
          outputParameters:
            - name: result
              type: string
              mapping: "$.data"
            - name: status
              type: string
              mapping: "$.status"
  consumes:
    - type: http
      namespace: sas
      baseUri: "https://api.sas.com/v2"
      authentication:
        type: bearer
        token: "$secrets.sas_api_token"
      resources:
        - name: resource
          path: "/data/catalog/search/results/{{input_id}}"
          inputParameters:
            - name: input_id
              in: path
          operations:
            - name: data-catalog-search-results
              method: GET

Orchestrates data governance compliance pipeline across analytics and AI software systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Data Governance Compliance Pipeline"
  description: "Orchestrates data governance compliance pipeline across analytics and AI software systems, coordinating multiple services and notifying stakeholders."
  tags:
    - data
    - sas
    - snowflake
    - slack
    - jira
capability:
  exposes:
    - type: mcp
      namespace: data
      port: 8080
      tools:
        - name: data-governance-compliance-pipeline
          description: "Orchestrates data governance compliance pipeline across analytics and AI software systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "snowflake.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "slack.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "jira.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: snowflake
      baseUri: "https://sas.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: snowflake-resource
          path: "/api/data"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: slack
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token"
      resources:
        - name: slack-resource
          path: "/api/data"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: jira
      baseUri: "https://sas.atlassian.net/rest/api/3"
      authentication:
        type: bearer
        token: "$secrets.jira_token"
      resources:
        - name: jira-resource
          path: "/api/data"
          operations:
            - name: execute-3
              method: POST

Orchestrates data integration pipeline orchestrator across analytics and AI software systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Data Integration Pipeline Orchestrator"
  description: "Orchestrates data integration pipeline orchestrator across analytics and AI software systems, coordinating multiple services and notifying stakeholders."
  tags:
    - data
    - sas
    - github
    - confluence
    - datadog
capability:
  exposes:
    - type: mcp
      namespace: data
      port: 8080
      tools:
        - name: data-integration-pipeline-orchestrator
          description: "Orchestrates data integration pipeline orchestrator across analytics and AI software systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "github.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "confluence.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "datadog.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: github
      baseUri: "https://api.github.com"
      authentication:
        type: bearer
        token: "$secrets.github_token"
      resources:
        - name: github-resource
          path: "/api/data"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: confluence
      baseUri: "https://sas.atlassian.net/wiki/rest/api"
      authentication:
        type: bearer
        token: "$secrets.confluence_token"
      resources:
        - name: confluence-resource
          path: "/api/data"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: datadog
      baseUri: "https://api.datadoghq.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.datadog_api_key"
      resources:
        - name: datadog-resource
          path: "/api/data"
          operations:
            - name: execute-3
              method: POST

Orchestrates data lineage documentation pipeline across analytics and AI software systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Data Lineage Documentation Pipeline"
  description: "Orchestrates data lineage documentation pipeline across analytics and AI software systems, coordinating multiple services and notifying stakeholders."
  tags:
    - data
    - sas
    - snowflake
    - slack
    - jira
capability:
  exposes:
    - type: mcp
      namespace: data
      port: 8080
      tools:
        - name: data-lineage-documentation-pipeline
          description: "Orchestrates data lineage documentation pipeline across analytics and AI software systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "snowflake.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "slack.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "jira.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: snowflake
      baseUri: "https://sas.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: snowflake-resource
          path: "/api/data"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: slack
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token"
      resources:
        - name: slack-resource
          path: "/api/data"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: jira
      baseUri: "https://sas.atlassian.net/rest/api/3"
      authentication:
        type: bearer
        token: "$secrets.jira_token"
      resources:
        - name: jira-resource
          path: "/api/data"
          operations:
            - name: execute-3
              method: POST

Orchestrates data marketplace publishing pipeline across analytics and AI software systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Data Marketplace Publishing Pipeline"
  description: "Orchestrates data marketplace publishing pipeline across analytics and AI software systems, coordinating multiple services and notifying stakeholders."
  tags:
    - data
    - sas
    - salesforce
    - servicenow
    - snowflake
capability:
  exposes:
    - type: mcp
      namespace: data
      port: 8080
      tools:
        - name: data-marketplace-publishing-pipeline
          description: "Orchestrates data marketplace publishing pipeline across analytics and AI software systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "salesforce.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "servicenow.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "snowflake.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: salesforce
      baseUri: "https://sas.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_access_token"
      resources:
        - name: salesforce-resource
          path: "/api/data"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: servicenow
      baseUri: "https://sas.service-now.com/api/now"
      authentication:
        type: bearer
        token: "$secrets.servicenow_token"
      resources:
        - name: servicenow-resource
          path: "/api/data"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: snowflake
      baseUri: "https://sas.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: snowflake-resource
          path: "/api/data"
          operations:
            - name: execute-3
              method: POST

Orchestrates data masking compliance pipeline across analytics and AI software systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Data Masking Compliance Pipeline"
  description: "Orchestrates data masking compliance pipeline across analytics and AI software systems, coordinating multiple services and notifying stakeholders."
  tags:
    - data
    - sas
    - datadog
    - sas
    - salesforce
capability:
  exposes:
    - type: mcp
      namespace: data
      port: 8080
      tools:
        - name: data-masking-compliance-pipeline
          description: "Orchestrates data masking compliance pipeline across analytics and AI software systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "datadog.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "sas.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "salesforce.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: datadog
      baseUri: "https://api.datadoghq.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.datadog_api_key"
      resources:
        - name: datadog-resource
          path: "/api/data"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: sas
      baseUri: "https://api.sas.com/v2"
      authentication:
        type: bearer
        token: "$secrets.sas_api_token"
      resources:
        - name: sas-resource
          path: "/api/data"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: salesforce
      baseUri: "https://sas.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_access_token"
      resources:
        - name: salesforce-resource
          path: "/api/data"
          operations:
            - name: execute-3
              method: POST

Orchestrates data privacy impact pipeline across analytics and AI software systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Data Privacy Impact Pipeline"
  description: "Orchestrates data privacy impact pipeline across analytics and AI software systems, coordinating multiple services and notifying stakeholders."
  tags:
    - data
    - sas
    - salesforce
    - servicenow
    - snowflake
capability:
  exposes:
    - type: mcp
      namespace: data
      port: 8080
      tools:
        - name: data-privacy-impact-pipeline
          description: "Orchestrates data privacy impact pipeline across analytics and AI software systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "salesforce.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "servicenow.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "snowflake.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: salesforce
      baseUri: "https://sas.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_access_token"
      resources:
        - name: salesforce-resource
          path: "/api/data"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: servicenow
      baseUri: "https://sas.service-now.com/api/now"
      authentication:
        type: bearer
        token: "$secrets.servicenow_token"
      resources:
        - name: servicenow-resource
          path: "/api/data"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: snowflake
      baseUri: "https://sas.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: snowflake-resource
          path: "/api/data"
          operations:
            - name: execute-3
              method: POST

Orchestrates data quality monitoring pipeline across analytics and AI software systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Data Quality Monitoring Pipeline"
  description: "Orchestrates data quality monitoring pipeline across analytics and AI software systems, coordinating multiple services and notifying stakeholders."
  tags:
    - data
    - sas
    - jira
    - teams
    - github
capability:
  exposes:
    - type: mcp
      namespace: data
      port: 8080
      tools:
        - name: data-quality-monitoring-pipeline
          description: "Orchestrates data quality monitoring pipeline across analytics and AI software systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "jira.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "teams.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "github.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: jira
      baseUri: "https://sas.atlassian.net/rest/api/3"
      authentication:
        type: bearer
        token: "$secrets.jira_token"
      resources:
        - name: jira-resource
          path: "/api/data"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: teams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.teams_token"
      resources:
        - name: teams-resource
          path: "/api/data"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: github
      baseUri: "https://api.github.com"
      authentication:
        type: bearer
        token: "$secrets.github_token"
      resources:
        - name: github-resource
          path: "/api/data"
          operations:
            - name: execute-3
              method: POST

Retrieves data quality profile lookup data from the Sas analytics and AI software systems.

naftiko: "0.5"
info:
  label: "Data Quality Profile Lookup"
  description: "Retrieves data quality profile lookup data from the Sas analytics and AI software systems."
  tags:
    - data
    - sas
    - lookup
capability:
  exposes:
    - type: mcp
      namespace: data
      port: 8080
      tools:
        - name: data-quality-profile-lookup
          description: "Retrieves data quality profile lookup data from the Sas analytics and AI software systems."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The input id."
          call: "sas.data-quality-profile-lookup"
          with:
            input_id: "{{input_id}}"
          outputParameters:
            - name: result
              type: string
              mapping: "$.data"
            - name: status
              type: string
              mapping: "$.status"
  consumes:
    - type: http
      namespace: sas
      baseUri: "https://api.sas.com/v2"
      authentication:
        type: bearer
        token: "$secrets.sas_api_token"
      resources:
        - name: resource
          path: "/data/quality/profile/lookup/{{input_id}}"
          inputParameters:
            - name: input_id
              in: path
          operations:
            - name: data-quality-profile-lookup
              method: GET

Runs data quality checks in SAS Viya against a Snowflake dataset, logs results to Datadog, and opens a ServiceNow task for the data governance team when quality thresholds are breached.

naftiko: "0.5"
info:
  label: "Data Quality Validation Pipeline"
  description: "Runs data quality checks in SAS Viya against a Snowflake dataset, logs results to Datadog, and opens a ServiceNow task for the data governance team when quality thresholds are breached."
  tags:
    - data-quality
    - data-governance
    - snowflake
    - datadog
    - servicenow
capability:
  exposes:
    - type: mcp
      namespace: data-quality
      port: 8080
      tools:
        - name: run-data-quality-check
          description: "Given a dataset name, run quality validation and alert on failures."
          inputParameters:
            - name: dataset_name
              in: body
              type: string
              description: "The Snowflake dataset name."
            - name: quality_profile
              in: body
              type: string
              description: "The SAS data quality profile to apply."
          steps:
            - name: run-quality-job
              type: call
              call: "sasviya.run-quality-job"
              with:
                dataset: "{{dataset_name}}"
                profile: "{{quality_profile}}"
            - name: log-results
              type: call
              call: "datadog.create-event"
              with:
                title: "Data Quality Check: {{dataset_name}}"
                text: "Profile: {{quality_profile}}. Score: {{run-quality-job.quality_score}}%. Failed rules: {{run-quality-job.failed_rules}}."
                alert_type: "info"
                tags: "dataset:{{dataset_name}},profile:{{quality_profile}}"
            - name: open-governance-task
              type: call
              call: "servicenow.create-task"
              with:
                short_description: "Data quality issue: {{dataset_name}} — Score: {{run-quality-job.quality_score}}%"
                assigned_group: "Data_Governance"
                description: "Dataset {{dataset_name}} quality score: {{run-quality-job.quality_score}}%. Profile: {{quality_profile}}. Failed rules: {{run-quality-job.failed_rules}}."
  consumes:
    - type: http
      namespace: sasviya
      baseUri: "https://sasviya.sas.com/dataQuality"
      authentication:
        type: bearer
        token: "$secrets.sas_viya_token"
      resources:
        - name: quality-jobs
          path: "/jobs"
          operations:
            - name: run-quality-job
              method: POST
    - type: http
      namespace: datadog
      baseUri: "https://api.datadoghq.com/api/v1"
      authentication:
        type: apiKey
        key: "$secrets.datadog_api_key"
      resources:
        - name: events
          path: "/events"
          operations:
            - name: create-event
              method: POST
    - type: http
      namespace: servicenow
      baseUri: "https://sas.service-now.com/api/now"
      authentication:
        type: basic
        username: "$secrets.servicenow_user"
        password: "$secrets.servicenow_password"
      resources:
        - name: tasks
          path: "/table/task"
          operations:
            - name: create-task
              method: POST

Retrieves data source connection test data from the Sas analytics and AI software systems.

naftiko: "0.5"
info:
  label: "Data Source Connection Test"
  description: "Retrieves data source connection test data from the Sas analytics and AI software systems."
  tags:
    - data
    - sas
    - test
capability:
  exposes:
    - type: mcp
      namespace: data
      port: 8080
      tools:
        - name: data-source-connection-test
          description: "Retrieves data source connection test data from the Sas analytics and AI software systems."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The input id."
          call: "sas.data-source-connection-test"
          with:
            input_id: "{{input_id}}"
          outputParameters:
            - name: result
              type: string
              mapping: "$.data"
            - name: status
              type: string
              mapping: "$.status"
  consumes:
    - type: http
      namespace: sas
      baseUri: "https://api.sas.com/v2"
      authentication:
        type: bearer
        token: "$secrets.sas_api_token"
      resources:
        - name: resource
          path: "/data/source/connection/test/{{input_id}}"
          inputParameters:
            - name: input_id
              in: path
          operations:
            - name: data-source-connection-test
              method: GET

Retrieves the latest run status of a Databricks job, returning run ID, state, duration, and output for the data engineering team.

naftiko: "0.5"
info:
  label: "Databricks Data Pipeline Status"
  description: "Retrieves the latest run status of a Databricks job, returning run ID, state, duration, and output for the data engineering team."
  tags:
    - data-engineering
    - data-pipelines
    - databricks
capability:
  exposes:
    - type: mcp
      namespace: data-pipelines
      port: 8080
      tools:
        - name: get-job-run-status
          description: "Look up the latest Databricks job run by job ID."
          inputParameters:
            - name: job_id
              in: body
              type: string
              description: "The Databricks job ID."
          call: "databricks.get-latest-run"
          with:
            job_id: "{{job_id}}"
          outputParameters:
            - name: run_id
              type: number
              mapping: "$.runs[0].run_id"
            - name: state
              type: string
              mapping: "$.runs[0].state.result_state"
            - name: duration_ms
              type: number
              mapping: "$.runs[0].execution_duration"
  consumes:
    - type: http
      namespace: databricks
      baseUri: "https://sas.cloud.databricks.com/api/2.1"
      authentication:
        type: bearer
        token: "$secrets.databricks_token"
      resources:
        - name: job-runs
          path: "/jobs/runs/list?job_id={{job_id}}&limit=1"
          inputParameters:
            - name: job_id
              in: path
          operations:
            - name: get-latest-run
              method: GET

Queries Datadog for infrastructure host health metrics.

naftiko: "0.5"
info:
  label: "Datadog Infrastructure Monitor"
  description: "Queries Datadog for infrastructure host health metrics."
  tags:
    - monitoring
    - infrastructure
    - datadog
capability:
  exposes:
    - type: mcp
      namespace: infra-monitoring
      port: 8080
      tools:
        - name: get-host-health
          description: "Query Datadog for host health metrics."
          inputParameters:
            - name: host_name
              in: body
              type: string
              description: "The host name to query."
          call: "datadog.get-host"
          with:
            host_name: "{{host_name}}"
  consumes:
    - type: http
      namespace: datadog
      baseUri: "https://api.datadoghq.com/api/v1"
      authentication:
        type: apiKey
        key: "$secrets.datadog_api_key"
      resources:
        - name: hosts
          path: "/hosts?filter={{host_name}}"
          inputParameters:
            - name: host_name
              in: path
          operations:
            - name: get-host
              method: GET

Retrieves decision flow execution log data from the Sas analytics and AI software systems.

naftiko: "0.5"
info:
  label: "Decision Flow Execution Log"
  description: "Retrieves decision flow execution log data from the Sas analytics and AI software systems."
  tags:
    - decision
    - sas
    - log
capability:
  exposes:
    - type: mcp
      namespace: decision
      port: 8080
      tools:
        - name: decision-flow-execution-log
          description: "Retrieves decision flow execution log data from the Sas analytics and AI software systems."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The input id."
          call: "sas.decision-flow-execution-log"
          with:
            input_id: "{{input_id}}"
          outputParameters:
            - name: result
              type: string
              mapping: "$.data"
            - name: status
              type: string
              mapping: "$.status"
  consumes:
    - type: http
      namespace: sas
      baseUri: "https://api.sas.com/v2"
      authentication:
        type: bearer
        token: "$secrets.sas_api_token"
      resources:
        - name: resource
          path: "/decision/flow/execution/log/{{input_id}}"
          inputParameters:
            - name: input_id
              in: path
          operations:
            - name: decision-flow-execution-log
              method: GET

Retrieves DocuSign envelope status.

naftiko: "0.5"
info:
  label: "DocuSign Agreement Status"
  description: "Retrieves DocuSign envelope status."
  tags: [legal, document-signing, docusign]
capability:
  exposes:
    - type: mcp
      namespace: doc-signing
      port: 8080
      tools:
        - name: get-envelope-status
          description: "Look up a DocuSign envelope."
          inputParameters:
            - name: envelope_id
              in: body
              type: string
              description: "DocuSign envelope ID."
          call: "docusign.get-envelope"
          with:
            envelope_id: "{{envelope_id}}"
  consumes:
    - type: http
      namespace: docusign
      baseUri: "https://na4.docusign.net/restapi/v2.1/accounts/$secrets.docusign_account_id"
      authentication:
        type: bearer
        token: "$secrets.docusign_token"
      resources:
        - name: envelopes
          path: "/envelopes/{{envelope_id}}"
          inputParameters:
            - name: envelope_id
              in: path
          operations:
            - name: get-envelope
              method: GET

On new hire creation in Workday, opens a ServiceNow onboarding ticket, provisions a SharePoint folder, and sends a Microsoft Teams welcome message.

naftiko: "0.5"
info:
  label: "Employee Onboarding Orchestrator"
  description: "On new hire creation in Workday, opens a ServiceNow onboarding ticket, provisions a SharePoint folder, and sends a Microsoft Teams welcome message."
  tags:
    - hr
    - onboarding
    - workday
    - servicenow
    - sharepoint
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: hr-onboarding
      port: 8080
      tools:
        - name: trigger-onboarding
          description: "Given a Workday employee ID and start date, orchestrate onboarding across ServiceNow, SharePoint, and Microsoft Teams."
          inputParameters:
            - name: workday_employee_id
              in: body
              type: string
              description: "The Workday worker ID."
            - name: start_date
              in: body
              type: string
              description: "Start date in YYYY-MM-DD format."
            - name: department
              in: body
              type: string
              description: "The department."
          steps:
            - name: get-employee
              type: call
              call: "workday.get-worker"
              with:
                worker_id: "{{workday_employee_id}}"
            - name: open-ticket
              type: call
              call: "servicenow.create-incident"
              with:
                short_description: "New hire onboarding: {{get-employee.full_name}}"
                category: "hr_onboarding"
                assigned_group: "IT_Onboarding"
                description: "Onboarding for {{get-employee.full_name}} starting {{start_date}} in {{department}}."
            - name: provision-folder
              type: call
              call: "sharepoint.create-folder"
              with:
                site_id: "hr_onboarding_site"
                folder_path: "OnboardingDocs/{{get-employee.full_name}}_{{start_date}}"
            - name: send-welcome
              type: call
              call: "msteams.send-message"
              with:
                channel_id: "new_hires"
                text: "Welcome to SAS, {{get-employee.first_name}}! Your onboarding ticket is {{open-ticket.number}}. Documents: {{provision-folder.url}}."
  consumes:
    - type: http
      namespace: workday
      baseUri: "https://wd2-impl-services1.workday.com/ccx/api/v1"
      authentication:
        type: bearer
        token: "$secrets.workday_token"
      resources:
        - name: workers
          path: "/workers/{{worker_id}}"
          inputParameters:
            - name: worker_id
              in: path
          operations:
            - name: get-worker
              method: GET
    - type: http
      namespace: servicenow
      baseUri: "https://sas.service-now.com/api/now"
      authentication:
        type: basic
        username: "$secrets.servicenow_user"
        password: "$secrets.servicenow_password"
      resources:
        - name: incidents
          path: "/table/incident"
          operations:
            - name: create-incident
              method: POST
    - type: http
      namespace: sharepoint
      baseUri: "https://graph.microsoft.com/v1.0/sites"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: drive-items
          path: "/{{site_id}}/drive/root:/{{folder_path}}"
          inputParameters:
            - name: site_id
              in: path
            - name: folder_path
              in: path
          operations:
            - name: create-folder
              method: POST
    - type: http
      namespace: msteams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: channel-messages
          path: "/teams/{{channel_id}}/channels/general/messages"
          inputParameters:
            - name: channel_id
              in: path
          operations:
            - name: send-message
              method: POST

Retrieves expense reports from SAP Concur, validates against Workday cost center, and opens a ServiceNow task for finance review.

naftiko: "0.5"
info:
  label: "Expense Report Review Pipeline"
  description: "Retrieves expense reports from SAP Concur, validates against Workday cost center, and opens a ServiceNow task for finance review."
  tags:
    - finance
    - expense
    - sap-concur
    - workday
    - servicenow
capability:
  exposes:
    - type: mcp
      namespace: expense-review
      port: 8080
      tools:
        - name: review-expense-report
          description: "Given a Concur report ID and employee ID, validate and flag exceptions."
          inputParameters:
            - name: expense_report_id
              in: body
              type: string
              description: "The SAP Concur expense report ID."
            - name: employee_id
              in: body
              type: string
              description: "The Workday employee ID."
          steps:
            - name: get-expense-report
              type: call
              call: "concur.get-expense-report"
              with:
                report_id: "{{expense_report_id}}"
            - name: get-employee
              type: call
              call: "workday.get-worker"
              with:
                worker_id: "{{employee_id}}"
            - name: open-review-task
              type: call
              call: "servicenow.create-task"
              with:
                short_description: "Expense review: {{get-expense-report.report_name}} — {{get-employee.full_name}}"
                description: "Report total: {{get-expense-report.total_amount}}. Cost center: {{get-employee.cost_center}}."
                assigned_group: "Finance_Audit"
  consumes:
    - type: http
      namespace: concur
      baseUri: "https://www.concursolutions.com/api/v3.0"
      authentication:
        type: bearer
        token: "$secrets.concur_token"
      resources:
        - name: expense-reports
          path: "/expense/reports/{{report_id}}"
          inputParameters:
            - name: report_id
              in: path
          operations:
            - name: get-expense-report
              method: GET
    - type: http
      namespace: workday
      baseUri: "https://wd2-impl-services1.workday.com/ccx/api/v1"
      authentication:
        type: bearer
        token: "$secrets.workday_token"
      resources:
        - name: workers
          path: "/workers/{{worker_id}}"
          inputParameters:
            - name: worker_id
              in: path
          operations:
            - name: get-worker
              method: GET
    - type: http
      namespace: servicenow
      baseUri: "https://sas.service-now.com/api/now"
      authentication:
        type: basic
        username: "$secrets.servicenow_user"
        password: "$secrets.servicenow_password"
      resources:
        - name: tasks
          path: "/table/task"
          operations:
            - name: create-task
              method: POST

Retrieves Figma file metadata for design system assets.

naftiko: "0.5"
info:
  label: "Figma Design File Viewer"
  description: "Retrieves Figma file metadata for design system assets."
  tags: [design, ux, figma]
capability:
  exposes:
    - type: mcp
      namespace: design
      port: 8080
      tools:
        - name: get-figma-file
          description: "Retrieve Figma file metadata."
          inputParameters:
            - name: file_key
              in: body
              type: string
              description: "Figma file key."
          call: "figma.get-file"
          with:
            file_key: "{{file_key}}"
  consumes:
    - type: http
      namespace: figma
      baseUri: "https://api.figma.com/v1"
      authentication:
        type: bearer
        token: "$secrets.figma_token"
      resources:
        - name: files
          path: "/files/{{file_key}}"
          inputParameters:
            - name: file_key
              in: path
          operations:
            - name: get-file
              method: GET

Extracts new transaction data from Snowflake, retrains a fraud detection model in SAS Viya, evaluates performance, and deploys to production if metrics improve, notifying the risk analytics team via Microsoft Teams.

naftiko: "0.5"
info:
  label: "Fraud Detection Model Retraining Pipeline"
  description: "Extracts new transaction data from Snowflake, retrains a fraud detection model in SAS Viya, evaluates performance, and deploys to production if metrics improve, notifying the risk analytics team via Microsoft Teams."
  tags:
    - machine-learning
    - fraud-detection
    - snowflake
    - sas-viya
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: fraud-ml
      port: 8080
      tools:
        - name: retrain-fraud-model
          description: "Given a training dataset and model name, retrain in SAS Viya and deploy if improved."
          inputParameters:
            - name: dataset_name
              in: body
              type: string
              description: "The Snowflake training dataset name."
            - name: model_name
              in: body
              type: string
              description: "The SAS Viya model name."
          steps:
            - name: extract-training-data
              type: call
              call: "snowflake.execute-sql"
              with:
                statement: "SELECT * FROM {{dataset_name}} WHERE created_at > DATEADD(day, -30, CURRENT_DATE)"
            - name: retrain-model
              type: call
              call: "sasviya.retrain-model"
              with:
                model_name: "{{model_name}}"
                dataset: "{{dataset_name}}"
            - name: notify-risk-team
              type: call
              call: "msteams.send-message"
              with:
                channel_id: "risk_analytics"
                text: "Fraud Model Retrained: {{model_name}}. New AUC: {{retrain-model.auc_score}}. Previous AUC: {{retrain-model.previous_auc}}. Status: {{retrain-model.deploy_status}}."
  consumes:
    - type: http
      namespace: snowflake
      baseUri: "https://sas.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: statements
          path: "/statements"
          operations:
            - name: execute-sql
              method: POST
    - type: http
      namespace: sasviya
      baseUri: "https://sasviya.sas.com/modelManagement"
      authentication:
        type: bearer
        token: "$secrets.sas_viya_token"
      resources:
        - name: models
          path: "/models/{{model_name}}/retrain"
          inputParameters:
            - name: model_name
              in: path
          operations:
            - name: retrain-model
              method: POST
    - type: http
      namespace: msteams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: channel-messages
          path: "/teams/{{channel_id}}/channels/general/messages"
          inputParameters:
            - name: channel_id
              in: path
          operations:
            - name: send-message
              method: POST

Retrieves the status of a GitHub pull request including review state and merge readiness.

naftiko: "0.5"
info:
  label: "GitHub Pull Request Status"
  description: "Retrieves the status of a GitHub pull request including review state and merge readiness."
  tags:
    - engineering
    - ci-cd
    - github
capability:
  exposes:
    - type: mcp
      namespace: engineering-ci
      port: 8080
      tools:
        - name: get-pr-status
          description: "Look up a GitHub pull request by repo and PR number."
          inputParameters:
            - name: repo
              in: body
              type: string
              description: "The GitHub repository in owner/repo format."
            - name: pr_number
              in: body
              type: string
              description: "The pull request number."
          call: "github.get-pull-request"
          with:
            repo: "{{repo}}"
            pr_number: "{{pr_number}}"
          outputParameters:
            - name: state
              type: string
              mapping: "$.state"
            - name: mergeable
              type: boolean
              mapping: "$.mergeable"
  consumes:
    - type: http
      namespace: github
      baseUri: "https://api.github.com/repos"
      authentication:
        type: bearer
        token: "$secrets.github_token"
      resources:
        - name: pull-requests
          path: "/{{repo}}/pulls/{{pr_number}}"
          inputParameters:
            - name: repo
              in: path
            - name: pr_number
              in: path
          operations:
            - name: get-pull-request
              method: GET

Retrieves latest GitLab CI pipeline status.

naftiko: "0.5"
info:
  label: "GitLab CI Pipeline Status"
  description: "Retrieves latest GitLab CI pipeline status."
  tags: [ci-cd, engineering, gitlab]
capability:
  exposes:
    - type: mcp
      namespace: gitlab-ci
      port: 8080
      tools:
        - name: get-pipeline-status
          description: "Look up latest GitLab pipeline."
          inputParameters:
            - name: project_id
              in: body
              type: string
              description: "GitLab project ID."
          call: "gitlab.get-latest-pipeline"
          with:
            project_id: "{{project_id}}"
  consumes:
    - type: http
      namespace: gitlab
      baseUri: "https://gitlab.sas.com/api/v4"
      authentication:
        type: bearer
        token: "$secrets.gitlab_token"
      resources:
        - name: pipelines
          path: "/projects/{{project_id}}/pipelines?per_page=1"
          inputParameters:
            - name: project_id
              in: path
          operations:
            - name: get-latest-pipeline
              method: GET

Retrieves product analytics from Google Analytics for SAS product web properties.

naftiko: "0.5"
info:
  label: "Google Analytics Product Analytics"
  description: "Retrieves product analytics from Google Analytics for SAS product web properties."
  tags:
    - marketing
    - analytics
    - google-analytics
capability:
  exposes:
    - type: mcp
      namespace: web-analytics
      port: 8080
      tools:
        - name: get-product-analytics
          description: "Retrieve web analytics from Google Analytics."
          inputParameters:
            - name: property_id
              in: body
              type: string
              description: "The Google Analytics property ID."
            - name: start_date
              in: body
              type: string
              description: "Start date."
            - name: end_date
              in: body
              type: string
              description: "End date."
          call: "ga.run-report"
          with:
            property_id: "{{property_id}}"
            start_date: "{{start_date}}"
            end_date: "{{end_date}}"
  consumes:
    - type: http
      namespace: ga
      baseUri: "https://analyticsdata.googleapis.com/v1beta"
      authentication:
        type: bearer
        token: "$secrets.google_analytics_token"
      resources:
        - name: reports
          path: "/properties/{{property_id}}:runReport"
          inputParameters:
            - name: property_id
              in: path
          operations:
            - name: run-report
              method: POST

Retrieves a HubSpot contact by email for the marketing team.

naftiko: "0.5"
info:
  label: "HubSpot Marketing Contact Lookup"
  description: "Retrieves a HubSpot contact by email for the marketing team."
  tags:
    - marketing
    - crm
    - hubspot
capability:
  exposes:
    - type: mcp
      namespace: marketing-crm
      port: 8080
      tools:
        - name: get-hubspot-contact
          description: "Look up a HubSpot contact by email."
          inputParameters:
            - name: email
              in: body
              type: string
              description: "The contact email."
          call: "hubspot.get-contact"
          with:
            email: "{{email}}"
  consumes:
    - type: http
      namespace: hubspot
      baseUri: "https://api.hubapi.com/crm/v3"
      authentication:
        type: bearer
        token: "$secrets.hubspot_token"
      resources:
        - name: contacts
          path: "/objects/contacts/{{email}}?idProperty=email"
          inputParameters:
            - name: email
              in: path
          operations:
            - name: get-contact
              method: GET

Checks Informatica data integration job status for ETL pipeline monitoring.

naftiko: "0.5"
info:
  label: "Informatica Data Integration Monitor"
  description: "Checks Informatica data integration job status for ETL pipeline monitoring."
  tags: [data-engineering, etl, informatica]
capability:
  exposes:
    - type: mcp
      namespace: data-integration
      port: 8080
      tools:
        - name: get-job-status
          description: "Check Informatica job status."
          inputParameters:
            - name: job_id
              in: body
              type: string
              description: "The Informatica job ID."
          call: "informatica.get-job"
          with:
            job_id: "{{job_id}}"
  consumes:
    - type: http
      namespace: informatica
      baseUri: "https://dm-us.informaticacloud.com/saas/api/v2"
      authentication:
        type: bearer
        token: "$secrets.informatica_token"
      resources:
        - name: jobs
          path: "/job/{{job_id}}"
          inputParameters:
            - name: job_id
              in: path
          operations:
            - name: get-job
              method: GET

Orchestrates intelligent decisioning optimization pipeline across analytics and AI software systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Intelligent Decisioning Optimization Pipeline"
  description: "Orchestrates intelligent decisioning optimization pipeline across analytics and AI software systems, coordinating multiple services and notifying stakeholders."
  tags:
    - intelligent
    - sas
    - slack
    - jira
    - teams
capability:
  exposes:
    - type: mcp
      namespace: intelligent
      port: 8080
      tools:
        - name: intelligent-decisioning-optimization-pipeline
          description: "Orchestrates intelligent decisioning optimization pipeline across analytics and AI software systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "slack.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "jira.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "teams.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: slack
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token"
      resources:
        - name: slack-resource
          path: "/api/intelligent"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: jira
      baseUri: "https://sas.atlassian.net/rest/api/3"
      authentication:
        type: bearer
        token: "$secrets.jira_token"
      resources:
        - name: jira-resource
          path: "/api/intelligent"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: teams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.teams_token"
      resources:
        - name: teams-resource
          path: "/api/intelligent"
          operations:
            - name: execute-3
              method: POST

Retrieves intelligent decisioning rule status data from the Sas analytics and AI software systems.

naftiko: "0.5"
info:
  label: "Intelligent Decisioning Rule Status"
  description: "Retrieves intelligent decisioning rule status data from the Sas analytics and AI software systems."
  tags:
    - intelligent
    - sas
    - status
capability:
  exposes:
    - type: mcp
      namespace: intelligent
      port: 8080
      tools:
        - name: intelligent-decisioning-rule-status
          description: "Retrieves intelligent decisioning rule status data from the Sas analytics and AI software systems."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The input id."
          call: "sas.intelligent-decisioning-rule-status"
          with:
            input_id: "{{input_id}}"
          outputParameters:
            - name: result
              type: string
              mapping: "$.data"
            - name: status
              type: string
              mapping: "$.status"
  consumes:
    - type: http
      namespace: sas
      baseUri: "https://api.sas.com/v2"
      authentication:
        type: bearer
        token: "$secrets.sas_api_token"
      resources:
        - name: resource
          path: "/intelligent/decisioning/rule/status/{{input_id}}"
          inputParameters:
            - name: input_id
              in: path
          operations:
            - name: intelligent-decisioning-rule-status
              method: GET

Fetches the current sprint details and open issue count from Jira for a given engineering board.

naftiko: "0.5"
info:
  label: "Jira Engineering Sprint Tracker"
  description: "Fetches the current sprint details and open issue count from Jira for a given engineering board."
  tags:
    - engineering
    - project-management
    - jira
capability:
  exposes:
    - type: mcp
      namespace: engineering-pm
      port: 8080
      tools:
        - name: get-sprint-status
          description: "Retrieve active sprint details for a Jira board."
          inputParameters:
            - name: board_id
              in: body
              type: string
              description: "The Jira board ID."
          call: "jira.get-active-sprint"
          with:
            board_id: "{{board_id}}"
          outputParameters:
            - name: sprint_name
              type: string
              mapping: "$.values[0].name"
            - name: start_date
              type: string
              mapping: "$.values[0].startDate"
            - name: end_date
              type: string
              mapping: "$.values[0].endDate"
  consumes:
    - type: http
      namespace: jira
      baseUri: "https://sas.atlassian.net/rest/agile/1.0"
      authentication:
        type: basic
        username: "$secrets.jira_user"
        password: "$secrets.jira_api_token"
      resources:
        - name: sprints
          path: "/board/{{board_id}}/sprint?state=active"
          inputParameters:
            - name: board_id
              in: path
          operations:
            - name: get-active-sprint
              method: GET

Fetches completed Jira issues for a release, creates Confluence release notes, and notifies the engineering team.

naftiko: "0.5"
info:
  label: "Jira to Confluence Release Notes Generator"
  description: "Fetches completed Jira issues for a release, creates Confluence release notes, and notifies the engineering team."
  tags:
    - engineering
    - release-management
    - jira
    - confluence
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: release-mgmt
      port: 8080
      tools:
        - name: generate-release-notes
          description: "Given a Jira project and version, create release notes in Confluence and notify the team."
          inputParameters:
            - name: project_key
              in: body
              type: string
              description: "The Jira project key."
            - name: version_name
              in: body
              type: string
              description: "The release version name."
          steps:
            - name: get-release-issues
              type: call
              call: "jira.search-issues"
              with:
                jql: "project = {{project_key}} AND fixVersion = '{{version_name}}' AND status = Done"
            - name: create-release-notes
              type: call
              call: "confluence.create-page"
              with:
                space_key: "ENG"
                title: "Release Notes: {{project_key}} {{version_name}}"
                body: "Release {{version_name}}. Issues completed: {{get-release-issues.total}}."
            - name: notify-team
              type: call
              call: "msteams.send-message"
              with:
                channel_id: "engineering_releases"
                text: "Release notes published: {{project_key}} {{version_name}}. URL: {{create-release-notes.url}}. Issues: {{get-release-issues.total}}."
  consumes:
    - type: http
      namespace: jira
      baseUri: "https://sas.atlassian.net/rest/api/3"
      authentication:
        type: basic
        username: "$secrets.jira_user"
        password: "$secrets.jira_api_token"
      resources:
        - name: search
          path: "/search?jql={{jql}}"
          inputParameters:
            - name: jql
              in: path
          operations:
            - name: search-issues
              method: GET
    - type: http
      namespace: confluence
      baseUri: "https://sas.atlassian.net/wiki/rest/api"
      authentication:
        type: basic
        username: "$secrets.confluence_user"
        password: "$secrets.confluence_api_token"
      resources:
        - name: content
          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/{{channel_id}}/channels/general/messages"
          inputParameters:
            - name: channel_id
              in: path
          operations:
            - name: send-message
              method: POST

Retrieves LinkedIn job posting status and application count.

naftiko: "0.5"
info:
  label: "LinkedIn Job Posting Status"
  description: "Retrieves LinkedIn job posting status and application count."
  tags:
    - recruitment
    - talent-acquisition
    - linkedin
capability:
  exposes:
    - type: mcp
      namespace: recruitment
      port: 8080
      tools:
        - name: get-job-posting-status
          description: "Look up a LinkedIn job posting by ID."
          inputParameters:
            - name: job_posting_id
              in: body
              type: string
              description: "The LinkedIn job posting ID."
          call: "linkedin.get-job-posting"
          with:
            job_posting_id: "{{job_posting_id}}"
          outputParameters:
            - name: status
              type: string
              mapping: "$.status"
            - name: application_count
              type: number
              mapping: "$.applicationCount"
  consumes:
    - type: http
      namespace: linkedin
      baseUri: "https://api.linkedin.com/v2"
      authentication:
        type: bearer
        token: "$secrets.linkedin_token"
      resources:
        - name: job-postings
          path: "/jobPostings/{{job_posting_id}}"
          inputParameters:
            - name: job_posting_id
              in: path
          operations:
            - name: get-job-posting
              method: GET

Retrieves a Looker dashboard embed URL.

naftiko: "0.5"
info:
  label: "Looker Dashboard Embed"
  description: "Retrieves a Looker dashboard embed URL."
  tags: [analytics, visualization, looker]
capability:
  exposes:
    - type: mcp
      namespace: looker-analytics
      port: 8080
      tools:
        - name: get-dashboard-embed
          description: "Retrieve a Looker dashboard URL."
          inputParameters:
            - name: dashboard_id
              in: body
              type: string
              description: "Looker dashboard ID."
          call: "looker.get-dashboard"
          with:
            dashboard_id: "{{dashboard_id}}"
  consumes:
    - type: http
      namespace: looker
      baseUri: "https://sas.looker.com/api/4.0"
      authentication:
        type: bearer
        token: "$secrets.looker_token"
      resources:
        - name: dashboards
          path: "/dashboards/{{dashboard_id}}"
          inputParameters:
            - name: dashboard_id
              in: path
          operations:
            - name: get-dashboard
              method: GET

Sends a formatted message to a specified Microsoft Teams channel.

naftiko: "0.5"
info:
  label: "Microsoft Teams Channel Notifier"
  description: "Sends a formatted message to a specified Microsoft Teams channel."
  tags:
    - communications
    - messaging
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: comms
      port: 8080
      tools:
        - name: send-teams-notification
          description: "Send a message to a Microsoft Teams channel."
          inputParameters:
            - name: channel_id
              in: body
              type: string
              description: "The Teams channel ID."
            - name: message
              in: body
              type: string
              description: "The message text."
          call: "msteams.send-message"
          with:
            channel_id: "{{channel_id}}"
            text: "{{message}}"
  consumes:
    - type: http
      namespace: msteams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: channel-messages
          path: "/teams/{{channel_id}}/channels/general/messages"
          inputParameters:
            - name: channel_id
              in: path
          operations:
            - name: send-message
              method: POST

Orchestrates model bias detection pipeline across analytics and AI software systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Model Bias Detection Pipeline"
  description: "Orchestrates model bias detection pipeline across analytics and AI software systems, coordinating multiple services and notifying stakeholders."
  tags:
    - model
    - sas
    - confluence
    - datadog
    - sas
capability:
  exposes:
    - type: mcp
      namespace: model
      port: 8080
      tools:
        - name: model-bias-detection-pipeline
          description: "Orchestrates model bias detection pipeline across analytics and AI software systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "confluence.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "datadog.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "sas.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: confluence
      baseUri: "https://sas.atlassian.net/wiki/rest/api"
      authentication:
        type: bearer
        token: "$secrets.confluence_token"
      resources:
        - name: confluence-resource
          path: "/api/model"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: datadog
      baseUri: "https://api.datadoghq.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.datadog_api_key"
      resources:
        - name: datadog-resource
          path: "/api/model"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: sas
      baseUri: "https://api.sas.com/v2"
      authentication:
        type: bearer
        token: "$secrets.sas_api_token"
      resources:
        - name: sas-resource
          path: "/api/model"
          operations:
            - name: execute-3
              method: POST

Orchestrates model champion challenger pipeline across analytics and AI software systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Model Champion Challenger Pipeline"
  description: "Orchestrates model champion challenger pipeline across analytics and AI software systems, coordinating multiple services and notifying stakeholders."
  tags:
    - model
    - sas
    - teams
    - github
    - confluence
capability:
  exposes:
    - type: mcp
      namespace: model
      port: 8080
      tools:
        - name: model-champion-challenger-pipeline
          description: "Orchestrates model champion challenger pipeline across analytics and AI software systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "teams.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "github.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "confluence.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: teams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.teams_token"
      resources:
        - name: teams-resource
          path: "/api/model"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: github
      baseUri: "https://api.github.com"
      authentication:
        type: bearer
        token: "$secrets.github_token"
      resources:
        - name: github-resource
          path: "/api/model"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: confluence
      baseUri: "https://sas.atlassian.net/wiki/rest/api"
      authentication:
        type: bearer
        token: "$secrets.confluence_token"
      resources:
        - name: confluence-resource
          path: "/api/model"
          operations:
            - name: execute-3
              method: POST

Orchestrates model deployment promotion pipeline across analytics and AI software systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Model Deployment Promotion Pipeline"
  description: "Orchestrates model deployment promotion pipeline across analytics and AI software systems, coordinating multiple services and notifying stakeholders."
  tags:
    - model
    - sas
    - sas
    - salesforce
    - servicenow
capability:
  exposes:
    - type: mcp
      namespace: model
      port: 8080
      tools:
        - name: model-deployment-promotion-pipeline
          description: "Orchestrates model deployment promotion pipeline across analytics and AI software systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "sas.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "salesforce.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "servicenow.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: sas
      baseUri: "https://api.sas.com/v2"
      authentication:
        type: bearer
        token: "$secrets.sas_api_token"
      resources:
        - name: sas-resource
          path: "/api/model"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: salesforce
      baseUri: "https://sas.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_access_token"
      resources:
        - name: salesforce-resource
          path: "/api/model"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: servicenow
      baseUri: "https://sas.service-now.com/api/now"
      authentication:
        type: bearer
        token: "$secrets.servicenow_token"
      resources:
        - name: servicenow-resource
          path: "/api/model"
          operations:
            - name: execute-3
              method: POST

Orchestrates model explainability report pipeline across analytics and AI software systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Model Explainability Report Pipeline"
  description: "Orchestrates model explainability report pipeline across analytics and AI software systems, coordinating multiple services and notifying stakeholders."
  tags:
    - model
    - sas
    - servicenow
    - snowflake
    - slack
capability:
  exposes:
    - type: mcp
      namespace: model
      port: 8080
      tools:
        - name: model-explainability-report-pipeline
          description: "Orchestrates model explainability report pipeline across analytics and AI software systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "servicenow.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "snowflake.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "slack.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: servicenow
      baseUri: "https://sas.service-now.com/api/now"
      authentication:
        type: bearer
        token: "$secrets.servicenow_token"
      resources:
        - name: servicenow-resource
          path: "/api/model"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: snowflake
      baseUri: "https://sas.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: snowflake-resource
          path: "/api/model"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: slack
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token"
      resources:
        - name: slack-resource
          path: "/api/model"
          operations:
            - name: execute-3
              method: POST

Retrieves model lineage trace lookup data from the Sas analytics and AI software systems.

naftiko: "0.5"
info:
  label: "Model Lineage Trace Lookup"
  description: "Retrieves model lineage trace lookup data from the Sas analytics and AI software systems."
  tags:
    - model
    - sas
    - lookup
capability:
  exposes:
    - type: mcp
      namespace: model
      port: 8080
      tools:
        - name: model-lineage-trace-lookup
          description: "Retrieves model lineage trace lookup data from the Sas analytics and AI software systems."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The input id."
          call: "sas.model-lineage-trace-lookup"
          with:
            input_id: "{{input_id}}"
          outputParameters:
            - name: result
              type: string
              mapping: "$.data"
            - name: status
              type: string
              mapping: "$.status"
  consumes:
    - type: http
      namespace: sas
      baseUri: "https://api.sas.com/v2"
      authentication:
        type: bearer
        token: "$secrets.sas_api_token"
      resources:
        - name: resource
          path: "/model/lineage/trace/lookup/{{input_id}}"
          inputParameters:
            - name: input_id
              in: path
          operations:
            - name: model-lineage-trace-lookup
              method: GET

Orchestrates model monitoring alerting pipeline across analytics and AI software systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Model Monitoring Alerting Pipeline"
  description: "Orchestrates model monitoring alerting pipeline across analytics and AI software systems, coordinating multiple services and notifying stakeholders."
  tags:
    - model
    - sas
    - servicenow
    - snowflake
    - slack
capability:
  exposes:
    - type: mcp
      namespace: model
      port: 8080
      tools:
        - name: model-monitoring-alerting-pipeline
          description: "Orchestrates model monitoring alerting pipeline across analytics and AI software systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "servicenow.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "snowflake.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "slack.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: servicenow
      baseUri: "https://sas.service-now.com/api/now"
      authentication:
        type: bearer
        token: "$secrets.servicenow_token"
      resources:
        - name: servicenow-resource
          path: "/api/model"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: snowflake
      baseUri: "https://sas.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: snowflake-resource
          path: "/api/model"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: slack
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token"
      resources:
        - name: slack-resource
          path: "/api/model"
          operations:
            - name: execute-3
              method: POST

Retrieves model performance score lookup data from the Sas analytics and AI software systems.

naftiko: "0.5"
info:
  label: "Model Performance Score Lookup"
  description: "Retrieves model performance score lookup data from the Sas analytics and AI software systems."
  tags:
    - model
    - sas
    - lookup
capability:
  exposes:
    - type: mcp
      namespace: model
      port: 8080
      tools:
        - name: model-performance-score-lookup
          description: "Retrieves model performance score lookup data from the Sas analytics and AI software systems."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The input id."
          call: "sas.model-performance-score-lookup"
          with:
            input_id: "{{input_id}}"
          outputParameters:
            - name: result
              type: string
              mapping: "$.data"
            - name: status
              type: string
              mapping: "$.status"
  consumes:
    - type: http
      namespace: sas
      baseUri: "https://api.sas.com/v2"
      authentication:
        type: bearer
        token: "$secrets.sas_api_token"
      resources:
        - name: resource
          path: "/model/performance/score/lookup/{{input_id}}"
          inputParameters:
            - name: input_id
              in: path
          operations:
            - name: model-performance-score-lookup
              method: GET

Orchestrates model regulatory documentation pipeline across analytics and AI software systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Model Regulatory Documentation Pipeline"
  description: "Orchestrates model regulatory documentation pipeline across analytics and AI software systems, coordinating multiple services and notifying stakeholders."
  tags:
    - model
    - sas
    - sas
    - salesforce
    - servicenow
capability:
  exposes:
    - type: mcp
      namespace: model
      port: 8080
      tools:
        - name: model-regulatory-documentation-pipeline
          description: "Orchestrates model regulatory documentation pipeline across analytics and AI software systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "sas.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "salesforce.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "servicenow.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: sas
      baseUri: "https://api.sas.com/v2"
      authentication:
        type: bearer
        token: "$secrets.sas_api_token"
      resources:
        - name: sas-resource
          path: "/api/model"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: salesforce
      baseUri: "https://sas.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_access_token"
      resources:
        - name: salesforce-resource
          path: "/api/model"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: servicenow
      baseUri: "https://sas.service-now.com/api/now"
      authentication:
        type: bearer
        token: "$secrets.servicenow_token"
      resources:
        - name: servicenow-resource
          path: "/api/model"
          operations:
            - name: execute-3
              method: POST

Retrieves model repository listing data from the Sas analytics and AI software systems.

naftiko: "0.5"
info:
  label: "Model Repository Listing"
  description: "Retrieves model repository listing data from the Sas analytics and AI software systems."
  tags:
    - model
    - sas
    - listing
capability:
  exposes:
    - type: mcp
      namespace: model
      port: 8080
      tools:
        - name: model-repository-listing
          description: "Retrieves model repository listing data from the Sas analytics and AI software systems."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The input id."
          call: "sas.model-repository-listing"
          with:
            input_id: "{{input_id}}"
          outputParameters:
            - name: result
              type: string
              mapping: "$.data"
            - name: status
              type: string
              mapping: "$.status"
  consumes:
    - type: http
      namespace: sas
      baseUri: "https://api.sas.com/v2"
      authentication:
        type: bearer
        token: "$secrets.sas_api_token"
      resources:
        - name: resource
          path: "/model/repository/listing/{{input_id}}"
          inputParameters:
            - name: input_id
              in: path
          operations:
            - name: model-repository-listing
              method: GET

Orchestrates model retraining automation pipeline across analytics and AI software systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Model Retraining Automation Pipeline"
  description: "Orchestrates model retraining automation pipeline across analytics and AI software systems, coordinating multiple services and notifying stakeholders."
  tags:
    - model
    - sas
    - slack
    - jira
    - teams
capability:
  exposes:
    - type: mcp
      namespace: model
      port: 8080
      tools:
        - name: model-retraining-automation-pipeline
          description: "Orchestrates model retraining automation pipeline across analytics and AI software systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "slack.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "jira.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "teams.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: slack
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token"
      resources:
        - name: slack-resource
          path: "/api/model"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: jira
      baseUri: "https://sas.atlassian.net/rest/api/3"
      authentication:
        type: bearer
        token: "$secrets.jira_token"
      resources:
        - name: jira-resource
          path: "/api/model"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: teams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.teams_token"
      resources:
        - name: teams-resource
          path: "/api/model"
          operations:
            - name: execute-3
              method: POST

Orchestrates model risk validation pipeline across analytics and AI software systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Model Risk Validation Pipeline"
  description: "Orchestrates model risk validation pipeline across analytics and AI software systems, coordinating multiple services and notifying stakeholders."
  tags:
    - model
    - sas
    - confluence
    - datadog
    - sas
capability:
  exposes:
    - type: mcp
      namespace: model
      port: 8080
      tools:
        - name: model-risk-validation-pipeline
          description: "Orchestrates model risk validation pipeline across analytics and AI software systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "confluence.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "datadog.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "sas.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: confluence
      baseUri: "https://sas.atlassian.net/wiki/rest/api"
      authentication:
        type: bearer
        token: "$secrets.confluence_token"
      resources:
        - name: confluence-resource
          path: "/api/model"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: datadog
      baseUri: "https://api.datadoghq.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.datadog_api_key"
      resources:
        - name: datadog-resource
          path: "/api/model"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: sas
      baseUri: "https://api.sas.com/v2"
      authentication:
        type: bearer
        token: "$secrets.sas_api_token"
      resources:
        - name: sas-resource
          path: "/api/model"
          operations:
            - name: execute-3
              method: POST

Queries New Relic for application performance metrics.

naftiko: "0.5"
info:
  label: "New Relic APM Check"
  description: "Queries New Relic for application performance metrics."
  tags: [monitoring, performance, new-relic]
capability:
  exposes:
    - type: mcp
      namespace: apm
      port: 8080
      tools:
        - name: get-app-performance
          description: "Check New Relic APM metrics."
          inputParameters:
            - name: app_id
              in: body
              type: string
              description: "New Relic app ID."
          call: "newrelic.get-app"
          with:
            app_id: "{{app_id}}"
  consumes:
    - type: http
      namespace: newrelic
      baseUri: "https://api.newrelic.com/v2"
      authentication:
        type: apiKey
        key: "$secrets.newrelic_api_key"
      resources:
        - name: applications
          path: "/applications/{{app_id}}.json"
          inputParameters:
            - name: app_id
              in: path
          operations:
            - name: get-app
              method: GET

Retrieves firewall rules from Palo Alto Networks.

naftiko: "0.5"
info:
  label: "Palo Alto Firewall Audit"
  description: "Retrieves firewall rules from Palo Alto Networks."
  tags: [security, firewall, palo-alto-networks]
capability:
  exposes:
    - type: mcp
      namespace: security-audit
      port: 8080
      tools:
        - name: audit-firewall-rules
          description: "Query Palo Alto for firewall rules."
          inputParameters:
            - name: device_group
              in: body
              type: string
              description: "Device group."
          call: "paloalto.get-security-rules"
          with:
            device_group: "{{device_group}}"
  consumes:
    - type: http
      namespace: paloalto
      baseUri: "https://panorama.sas.com/restapi/v10.2"
      authentication:
        type: apiKey
        key: "$secrets.paloalto_api_key"
      resources:
        - name: security-rules
          path: "/Policies/SecurityRules?location=device-group&device-group={{device_group}}"
          inputParameters:
            - name: device_group
              in: path
          operations:
            - name: get-security-rules
              method: GET

When a new partner API integration is submitted, runs automated tests via GitHub Actions, logs results to Datadog, and notifies the platform team via Microsoft Teams with pass/fail status.

naftiko: "0.5"
info:
  label: "Partner Integration Testing Pipeline"
  description: "When a new partner API integration is submitted, runs automated tests via GitHub Actions, logs results to Datadog, and notifies the platform team via Microsoft Teams with pass/fail status."
  tags:
    - platform
    - testing
    - github-actions
    - datadog
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: partner-testing
      port: 8080
      tools:
        - name: run-integration-tests
          description: "Given a partner name and test suite, trigger GitHub Actions, log to Datadog, and notify."
          inputParameters:
            - name: repo
              in: body
              type: string
              description: "The GitHub repo in owner/repo format."
            - name: workflow_id
              in: body
              type: string
              description: "The GitHub Actions workflow ID."
            - name: partner_name
              in: body
              type: string
              description: "The partner integration name."
          steps:
            - name: trigger-workflow
              type: call
              call: "github.trigger-workflow"
              with:
                repo: "{{repo}}"
                workflow_id: "{{workflow_id}}"
                ref: "main"
            - name: log-event
              type: call
              call: "datadog.create-event"
              with:
                title: "Integration Test Triggered: {{partner_name}}"
                text: "Workflow {{workflow_id}} triggered for partner {{partner_name}}."
                alert_type: "info"
                tags: "partner:{{partner_name}},test:integration"
            - name: notify-platform
              type: call
              call: "msteams.send-message"
              with:
                channel_id: "platform_engineering"
                text: "Integration test triggered for partner {{partner_name}}. Workflow: {{workflow_id}}. Repo: {{repo}}."
  consumes:
    - type: http
      namespace: github
      baseUri: "https://api.github.com/repos"
      authentication:
        type: bearer
        token: "$secrets.github_token"
      resources:
        - name: workflows
          path: "/{{repo}}/actions/workflows/{{workflow_id}}/dispatches"
          inputParameters:
            - name: repo
              in: path
            - name: workflow_id
              in: path
          operations:
            - name: trigger-workflow
              method: POST
    - type: http
      namespace: datadog
      baseUri: "https://api.datadoghq.com/api/v1"
      authentication:
        type: apiKey
        key: "$secrets.datadog_api_key"
      resources:
        - name: events
          path: "/events"
          operations:
            - name: create-event
              method: POST
    - type: http
      namespace: msteams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: channel-messages
          path: "/teams/{{channel_id}}/channels/general/messages"
          inputParameters:
            - name: channel_id
              in: path
          operations:
            - name: send-message
              method: POST

Orchestrates platform api deprecation pipeline across analytics and AI software systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Platform Api Deprecation Pipeline"
  description: "Orchestrates platform api deprecation pipeline across analytics and AI software systems, coordinating multiple services and notifying stakeholders."
  tags:
    - platform
    - sas
    - sas
    - salesforce
    - servicenow
capability:
  exposes:
    - type: mcp
      namespace: platform
      port: 8080
      tools:
        - name: platform-api-deprecation-pipeline
          description: "Orchestrates platform api deprecation pipeline across analytics and AI software systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "sas.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "salesforce.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "servicenow.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: sas
      baseUri: "https://api.sas.com/v2"
      authentication:
        type: bearer
        token: "$secrets.sas_api_token"
      resources:
        - name: sas-resource
          path: "/api/platform"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: salesforce
      baseUri: "https://sas.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_access_token"
      resources:
        - name: salesforce-resource
          path: "/api/platform"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: servicenow
      baseUri: "https://sas.service-now.com/api/now"
      authentication:
        type: bearer
        token: "$secrets.servicenow_token"
      resources:
        - name: servicenow-resource
          path: "/api/platform"
          operations:
            - name: execute-3
              method: POST

Orchestrates platform capacity planning pipeline across analytics and AI software systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Platform Capacity Planning Pipeline"
  description: "Orchestrates platform capacity planning pipeline across analytics and AI software systems, coordinating multiple services and notifying stakeholders."
  tags:
    - platform
    - sas
    - slack
    - jira
    - teams
capability:
  exposes:
    - type: mcp
      namespace: platform
      port: 8080
      tools:
        - name: platform-capacity-planning-pipeline
          description: "Orchestrates platform capacity planning pipeline across analytics and AI software systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "slack.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "jira.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "teams.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: slack
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token"
      resources:
        - name: slack-resource
          path: "/api/platform"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: jira
      baseUri: "https://sas.atlassian.net/rest/api/3"
      authentication:
        type: bearer
        token: "$secrets.jira_token"
      resources:
        - name: jira-resource
          path: "/api/platform"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: teams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.teams_token"
      resources:
        - name: teams-resource
          path: "/api/platform"
          operations:
            - name: execute-3
              method: POST

Orchestrates platform disaster recovery pipeline across analytics and AI software systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Platform Disaster Recovery Pipeline"
  description: "Orchestrates platform disaster recovery pipeline across analytics and AI software systems, coordinating multiple services and notifying stakeholders."
  tags:
    - platform
    - sas
    - servicenow
    - snowflake
    - slack
capability:
  exposes:
    - type: mcp
      namespace: platform
      port: 8080
      tools:
        - name: platform-disaster-recovery-pipeline
          description: "Orchestrates platform disaster recovery pipeline across analytics and AI software systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "servicenow.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "snowflake.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "slack.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: servicenow
      baseUri: "https://sas.service-now.com/api/now"
      authentication:
        type: bearer
        token: "$secrets.servicenow_token"
      resources:
        - name: servicenow-resource
          path: "/api/platform"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: snowflake
      baseUri: "https://sas.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: snowflake-resource
          path: "/api/platform"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: slack
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token"
      resources:
        - name: slack-resource
          path: "/api/platform"
          operations:
            - name: execute-3
              method: POST

Orchestrates platform performance benchmarking pipeline across analytics and AI software systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Platform Performance Benchmarking Pipeline"
  description: "Orchestrates platform performance benchmarking pipeline across analytics and AI software systems, coordinating multiple services and notifying stakeholders."
  tags:
    - platform
    - sas
    - teams
    - github
    - confluence
capability:
  exposes:
    - type: mcp
      namespace: platform
      port: 8080
      tools:
        - name: platform-performance-benchmarking-pipeline
          description: "Orchestrates platform performance benchmarking pipeline across analytics and AI software systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "teams.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "github.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "confluence.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: teams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.teams_token"
      resources:
        - name: teams-resource
          path: "/api/platform"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: github
      baseUri: "https://api.github.com"
      authentication:
        type: bearer
        token: "$secrets.github_token"
      resources:
        - name: github-resource
          path: "/api/platform"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: confluence
      baseUri: "https://sas.atlassian.net/wiki/rest/api"
      authentication:
        type: bearer
        token: "$secrets.confluence_token"
      resources:
        - name: confluence-resource
          path: "/api/platform"
          operations:
            - name: execute-3
              method: POST

Retrieves platform resource utilization data from the Sas analytics and AI software systems.

naftiko: "0.5"
info:
  label: "Platform Resource Utilization"
  description: "Retrieves platform resource utilization data from the Sas analytics and AI software systems."
  tags:
    - platform
    - sas
    - utilization
capability:
  exposes:
    - type: mcp
      namespace: platform
      port: 8080
      tools:
        - name: platform-resource-utilization
          description: "Retrieves platform resource utilization data from the Sas analytics and AI software systems."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The input id."
          call: "sas.platform-resource-utilization"
          with:
            input_id: "{{input_id}}"
          outputParameters:
            - name: result
              type: string
              mapping: "$.data"
            - name: status
              type: string
              mapping: "$.status"
  consumes:
    - type: http
      namespace: sas
      baseUri: "https://api.sas.com/v2"
      authentication:
        type: bearer
        token: "$secrets.sas_api_token"
      resources:
        - name: resource
          path: "/platform/resource/utilization/{{input_id}}"
          inputParameters:
            - name: input_id
              in: path
          operations:
            - name: platform-resource-utilization
              method: GET

Orchestrates platform security audit pipeline across analytics and AI software systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Platform Security Audit Pipeline"
  description: "Orchestrates platform security audit pipeline across analytics and AI software systems, coordinating multiple services and notifying stakeholders."
  tags:
    - platform
    - sas
    - sas
    - salesforce
    - servicenow
capability:
  exposes:
    - type: mcp
      namespace: platform
      port: 8080
      tools:
        - name: platform-security-audit-pipeline
          description: "Orchestrates platform security audit pipeline across analytics and AI software systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "sas.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "salesforce.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "servicenow.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: sas
      baseUri: "https://api.sas.com/v2"
      authentication:
        type: bearer
        token: "$secrets.sas_api_token"
      resources:
        - name: sas-resource
          path: "/api/platform"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: salesforce
      baseUri: "https://sas.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_access_token"
      resources:
        - name: salesforce-resource
          path: "/api/platform"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: servicenow
      baseUri: "https://sas.service-now.com/api/now"
      authentication:
        type: bearer
        token: "$secrets.servicenow_token"
      resources:
        - name: servicenow-resource
          path: "/api/platform"
          operations:
            - name: execute-3
              method: POST

Orchestrates platform upgrade orchestrator across analytics and AI software systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Platform Upgrade Orchestrator"
  description: "Orchestrates platform upgrade orchestrator across analytics and AI software systems, coordinating multiple services and notifying stakeholders."
  tags:
    - platform
    - sas
    - servicenow
    - snowflake
    - slack
capability:
  exposes:
    - type: mcp
      namespace: platform
      port: 8080
      tools:
        - name: platform-upgrade-orchestrator
          description: "Orchestrates platform upgrade orchestrator across analytics and AI software systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "servicenow.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "snowflake.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "slack.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: servicenow
      baseUri: "https://sas.service-now.com/api/now"
      authentication:
        type: bearer
        token: "$secrets.servicenow_token"
      resources:
        - name: servicenow-resource
          path: "/api/platform"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: snowflake
      baseUri: "https://sas.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: snowflake-resource
          path: "/api/platform"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: slack
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token"
      resources:
        - name: slack-resource
          path: "/api/platform"
          operations:
            - name: execute-3
              method: POST

Triggers a Postman collection run for API testing.

naftiko: "0.5"
info:
  label: "Postman API Test Runner"
  description: "Triggers a Postman collection run for API testing."
  tags: [platform, testing, postman]
capability:
  exposes:
    - type: mcp
      namespace: api-testing
      port: 8080
      tools:
        - name: run-api-tests
          description: "Trigger a Postman collection run."
          inputParameters:
            - name: collection_id
              in: body
              type: string
              description: "Postman collection ID."
          call: "postman.run-collection"
          with:
            collection_id: "{{collection_id}}"
  consumes:
    - type: http
      namespace: postman
      baseUri: "https://api.getpostman.com"
      authentication:
        type: apiKey
        key: "$secrets.postman_api_key"
      resources:
        - name: monitors
          path: "/monitors/{{collection_id}}/run"
          inputParameters:
            - name: collection_id
              in: path
          operations:
            - name: run-collection
              method: POST

Triggers a Power BI dataset refresh for an analytics dashboard.

naftiko: "0.5"
info:
  label: "Power BI Analytics Dashboard Refresh"
  description: "Triggers a Power BI dataset refresh for an analytics dashboard."
  tags:
    - analytics
    - reporting
    - power-bi
capability:
  exposes:
    - type: mcp
      namespace: analytics-dashboards
      port: 8080
      tools:
        - name: refresh-dashboard
          description: "Trigger a Power BI dataset refresh."
          inputParameters:
            - name: dataset_id
              in: body
              type: string
              description: "The Power BI dataset ID."
          call: "powerbi.refresh-dataset"
          with:
            dataset_id: "{{dataset_id}}"
  consumes:
    - type: http
      namespace: powerbi
      baseUri: "https://api.powerbi.com/v1.0/myorg"
      authentication:
        type: bearer
        token: "$secrets.powerbi_token"
      resources:
        - name: datasets
          path: "/datasets/{{dataset_id}}/refreshes"
          inputParameters:
            - name: dataset_id
              in: path
          operations:
            - name: refresh-dataset
              method: POST

When a purchase requisition exceeds a threshold, routes for approval via Workday and notifies the requestor in Microsoft Teams.

naftiko: "0.5"
info:
  label: "Procurement Approval Pipeline"
  description: "When a purchase requisition exceeds a threshold, routes for approval via Workday and notifies the requestor in Microsoft Teams."
  tags:
    - procurement
    - approval
    - workday
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: procurement-approval
      port: 8080
      tools:
        - name: route-requisition-approval
          description: "Given a requisition ID and requestor ID, resolve the approver and notify."
          inputParameters:
            - name: requisition_id
              in: body
              type: string
              description: "The requisition ID."
            - name: requestor_employee_id
              in: body
              type: string
              description: "The Workday employee ID."
            - name: spend_amount
              in: body
              type: number
              description: "The spend amount."
          steps:
            - name: get-requestor
              type: call
              call: "workday.get-worker"
              with:
                worker_id: "{{requestor_employee_id}}"
            - name: get-manager
              type: call
              call: "workday.get-worker"
              with:
                worker_id: "{{get-requestor.manager_id}}"
            - name: notify-approver
              type: call
              call: "msteams.send-message"
              with:
                channel_id: "procurement_approvals"
                text: "Approval Required: Requisition {{requisition_id}} from {{get-requestor.full_name}} for ${{spend_amount}}."
            - name: notify-requestor
              type: call
              call: "msteams.send-message"
              with:
                channel_id: "procurement_requests"
                text: "Your requisition {{requisition_id}} (${{spend_amount}}) has been routed to {{get-manager.full_name}} for approval."
  consumes:
    - type: http
      namespace: workday
      baseUri: "https://wd2-impl-services1.workday.com/ccx/api/v1"
      authentication:
        type: bearer
        token: "$secrets.workday_token"
      resources:
        - name: workers
          path: "/workers/{{worker_id}}"
          inputParameters:
            - name: worker_id
              in: path
          operations:
            - name: get-worker
              method: GET
    - type: http
      namespace: msteams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: channel-messages
          path: "/teams/{{channel_id}}/channels/general/messages"
          inputParameters:
            - name: channel_id
              in: path
          operations:
            - name: send-message
              method: POST

Retrieves a Salesforce opportunity by ID, returning stage, close date, amount, and account name for the sales team.

naftiko: "0.5"
info:
  label: "Salesforce Opportunity Lookup"
  description: "Retrieves a Salesforce opportunity by ID, returning stage, close date, amount, and account name for the sales team."
  tags:
    - sales
    - crm
    - salesforce
capability:
  exposes:
    - type: mcp
      namespace: sales-crm
      port: 8080
      tools:
        - name: get-opportunity
          description: "Look up a Salesforce opportunity by ID."
          inputParameters:
            - name: opportunity_id
              in: body
              type: string
              description: "The Salesforce opportunity ID."
          call: "salesforce.get-opportunity"
          with:
            opportunity_id: "{{opportunity_id}}"
          outputParameters:
            - name: stage
              type: string
              mapping: "$.StageName"
            - name: close_date
              type: string
              mapping: "$.CloseDate"
            - name: amount
              type: number
              mapping: "$.Amount"
            - name: account_name
              type: string
              mapping: "$.Account.Name"
  consumes:
    - type: http
      namespace: salesforce
      baseUri: "https://sas.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

Retrieves a SAP Concur expense report by ID.

naftiko: "0.5"
info:
  label: "SAP Concur Expense Report Lookup"
  description: "Retrieves a SAP Concur expense report by ID."
  tags:
    - finance
    - expense
    - sap-concur
capability:
  exposes:
    - type: mcp
      namespace: finance-expense
      port: 8080
      tools:
        - name: get-expense-report
          description: "Look up a SAP Concur expense report by ID."
          inputParameters:
            - name: report_id
              in: body
              type: string
              description: "The SAP Concur expense report ID."
          call: "concur.get-expense-report"
          with:
            report_id: "{{report_id}}"
          outputParameters:
            - name: total_amount
              type: number
              mapping: "$.Total"
            - name: approval_status
              type: string
              mapping: "$.ApprovalStatusName"
  consumes:
    - type: http
      namespace: concur
      baseUri: "https://www.concursolutions.com/api/v3.0"
      authentication:
        type: bearer
        token: "$secrets.concur_token"
      resources:
        - name: expense-reports
          path: "/expense/reports/{{report_id}}"
          inputParameters:
            - name: report_id
              in: path
          operations:
            - name: get-expense-report
              method: GET

Submits a SAS Viya compute job and returns the job ID and execution status for data scientists running batch analytics.

naftiko: "0.5"
info:
  label: "SAS Viya Job Scheduler"
  description: "Submits a SAS Viya compute job and returns the job ID and execution status for data scientists running batch analytics."
  tags:
    - analytics
    - platform
    - sas-viya
capability:
  exposes:
    - type: mcp
      namespace: sas-compute
      port: 8080
      tools:
        - name: submit-sas-job
          description: "Submit a SAS Viya compute job."
          inputParameters:
            - name: code
              in: body
              type: string
              description: "The SAS code to execute."
            - name: context_name
              in: body
              type: string
              description: "The SAS Viya compute context name."
          call: "sasviya.submit-job"
          with:
            code: "{{code}}"
            context_name: "{{context_name}}"
  consumes:
    - type: http
      namespace: sasviya
      baseUri: "https://sasviya.sas.com/compute"
      authentication:
        type: bearer
        token: "$secrets.sas_viya_token"
      resources:
        - name: sessions
          path: "/contexts/{{context_name}}/sessions"
          inputParameters:
            - name: context_name
              in: path
          operations:
            - name: submit-job
              method: POST

Generates and retrieves a SAS Visual Analytics report by report ID for business intelligence consumers.

naftiko: "0.5"
info:
  label: "SAS Viya Visual Analytics Report"
  description: "Generates and retrieves a SAS Visual Analytics report by report ID for business intelligence consumers."
  tags:
    - analytics
    - visualization
    - sas-viya
capability:
  exposes:
    - type: mcp
      namespace: sas-reporting
      port: 8080
      tools:
        - name: get-va-report
          description: "Retrieve a SAS Visual Analytics report."
          inputParameters:
            - name: report_id
              in: body
              type: string
              description: "The SAS VA report ID."
          call: "sasviya.get-report"
          with:
            report_id: "{{report_id}}"
  consumes:
    - type: http
      namespace: sasviya
      baseUri: "https://sasviya.sas.com/reportImages"
      authentication:
        type: bearer
        token: "$secrets.sas_viya_token"
      resources:
        - name: reports
          path: "/jobs"
          operations:
            - name: get-report
              method: POST

Retrieves a ServiceNow incident by number and returns state, priority, and assigned group.

naftiko: "0.5"
info:
  label: "ServiceNow Incident Lookup"
  description: "Retrieves a ServiceNow incident by number and returns state, priority, and assigned group."
  tags:
    - it-operations
    - itsm
    - servicenow
capability:
  exposes:
    - type: mcp
      namespace: itsm
      port: 8080
      tools:
        - name: get-incident
          description: "Look up a ServiceNow incident by number."
          inputParameters:
            - name: incident_number
              in: body
              type: string
              description: "The ServiceNow incident number."
          call: "servicenow.get-incident"
          with:
            incident_number: "{{incident_number}}"
          outputParameters:
            - name: state
              type: string
              mapping: "$.result.state"
            - name: priority
              type: string
              mapping: "$.result.priority"
            - name: assigned_group
              type: string
              mapping: "$.result.assignment_group.display_value"
  consumes:
    - type: http
      namespace: servicenow
      baseUri: "https://sas.service-now.com/api/now"
      authentication:
        type: basic
        username: "$secrets.servicenow_user"
        password: "$secrets.servicenow_password"
      resources:
        - name: incidents
          path: "/table/incident?sysparm_query=number={{incident_number}}"
          inputParameters:
            - name: incident_number
              in: path
          operations:
            - name: get-incident
              method: GET

Searches a SharePoint site for documents by keyword.

naftiko: "0.5"
info:
  label: "SharePoint Document Lookup"
  description: "Searches a SharePoint site for documents by keyword."
  tags:
    - documentation
    - sharepoint
capability:
  exposes:
    - type: mcp
      namespace: doc-search
      port: 8080
      tools:
        - name: search-documents
          description: "Search SharePoint for documents by keyword."
          inputParameters:
            - name: site_id
              in: body
              type: string
              description: "The SharePoint site ID."
            - name: query
              in: body
              type: string
              description: "The search keyword."
          call: "sharepoint.search"
          with:
            site_id: "{{site_id}}"
            query: "{{query}}"
  consumes:
    - type: http
      namespace: sharepoint
      baseUri: "https://graph.microsoft.com/v1.0/sites"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: search
          path: "/{{site_id}}/drive/root/search(q='{{query}}')"
          inputParameters:
            - name: site_id
              in: path
            - name: query
              in: path
          operations:
            - name: search
              method: GET

Posts announcements to the SAS developer community Slack channel for API updates and platform changes.

naftiko: "0.5"
info:
  label: "Slack Developer Community Notifier"
  description: "Posts announcements to the SAS developer community Slack channel for API updates and platform changes."
  tags:
    - community
    - communications
    - slack
capability:
  exposes:
    - type: mcp
      namespace: dev-community
      port: 8080
      tools:
        - name: post-slack-announcement
          description: "Post an announcement to a Slack channel."
          inputParameters:
            - name: channel
              in: body
              type: string
              description: "The Slack channel name."
            - name: message
              in: body
              type: string
              description: "The announcement text."
          call: "slack.post-message"
          with:
            channel: "{{channel}}"
            text: "{{message}}"
  consumes:
    - type: http
      namespace: slack
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_token"
      resources:
        - name: messages
          path: "/chat.postMessage"
          operations:
            - name: post-message
              method: POST

Executes a SQL query against a Snowflake data warehouse and returns the result set for analytics and reporting teams.

naftiko: "0.5"
info:
  label: "Snowflake Data Warehouse Query"
  description: "Executes a SQL query against a Snowflake data warehouse and returns the result set for analytics and reporting teams."
  tags:
    - data-management
    - analytics
    - snowflake
capability:
  exposes:
    - type: mcp
      namespace: data-warehouse
      port: 8080
      tools:
        - name: execute-snowflake-query
          description: "Execute a SQL statement against Snowflake and return results."
          inputParameters:
            - name: warehouse
              in: body
              type: string
              description: "The Snowflake warehouse name."
            - name: database
              in: body
              type: string
              description: "The Snowflake database name."
            - name: sql_statement
              in: body
              type: string
              description: "The SQL statement to execute."
          call: "snowflake.execute-sql"
          with:
            warehouse: "{{warehouse}}"
            database: "{{database}}"
            statement: "{{sql_statement}}"
  consumes:
    - type: http
      namespace: snowflake
      baseUri: "https://sas.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: statements
          path: "/statements"
          operations:
            - name: execute-sql
              method: POST

Retrieves Snowflake warehouse credit consumption metrics for FinOps.

naftiko: "0.5"
info:
  label: "Snowflake Warehouse Usage Metrics"
  description: "Retrieves Snowflake warehouse credit consumption metrics for FinOps."
  tags: [data-management, cost-management, snowflake]
capability:
  exposes:
    - type: mcp
      namespace: finops
      port: 8080
      tools:
        - name: get-warehouse-usage
          description: "Query Snowflake warehouse credits."
          inputParameters:
            - name: warehouse_name
              in: body
              type: string
              description: "Warehouse name."
          call: "snowflake.execute-sql"
          with:
            statement: "SELECT sum(credits_used) FROM snowflake.account_usage.warehouse_metering_history WHERE warehouse_name = '{{warehouse_name}}'"
  consumes:
    - type: http
      namespace: snowflake
      baseUri: "https://sas.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: statements
          path: "/statements"
          operations:
            - name: execute-sql
              method: POST

Queries SolarWinds for network node health.

naftiko: "0.5"
info:
  label: "SolarWinds Network Health"
  description: "Queries SolarWinds for network node health."
  tags: [networking, infrastructure, solarwinds]
capability:
  exposes:
    - type: mcp
      namespace: network-health
      port: 8080
      tools:
        - name: get-network-health
          description: "Query SolarWinds network nodes."
          inputParameters:
            - name: site_name
              in: body
              type: string
              description: "Site name."
          call: "solarwinds.query-nodes"
          with:
            site_name: "{{site_name}}"
  consumes:
    - type: http
      namespace: solarwinds
      baseUri: "https://solarwinds.sas.com:17778/SolarWinds/InformationService/v3/Json"
      authentication:
        type: basic
        username: "$secrets.solarwinds_user"
        password: "$secrets.solarwinds_password"
      resources:
        - name: nodes
          path: "/Query?query=SELECT+NodeID,Caption,Status+FROM+Orion.Nodes+WHERE+Location='{{site_name}}'"
          inputParameters:
            - name: site_name
              in: path
          operations:
            - name: query-nodes
              method: GET

Queries Splunk for security log events.

naftiko: "0.5"
info:
  label: "Splunk Security Log Search"
  description: "Queries Splunk for security log events."
  tags: [security, logging, splunk]
capability:
  exposes:
    - type: mcp
      namespace: security-logs
      port: 8080
      tools:
        - name: search-security-logs
          description: "Search Splunk for security events."
          inputParameters:
            - name: search_query
              in: body
              type: string
              description: "Splunk search query."
          call: "splunk.search"
          with:
            search: "{{search_query}}"
  consumes:
    - type: http
      namespace: splunk
      baseUri: "https://splunk.sas.com:8089/services"
      authentication:
        type: bearer
        token: "$secrets.splunk_token"
      resources:
        - name: search
          path: "/search/jobs"
          operations:
            - name: search
              method: POST

Retrieves a Tableau workbook view for analytics dashboards.

naftiko: "0.5"
info:
  label: "Tableau Analytics View Retrieval"
  description: "Retrieves a Tableau workbook view for analytics dashboards."
  tags:
    - analytics
    - visualization
    - tableau
capability:
  exposes:
    - type: mcp
      namespace: tableau-analytics
      port: 8080
      tools:
        - name: get-tableau-view
          description: "Retrieve a Tableau workbook view."
          inputParameters:
            - name: workbook_id
              in: body
              type: string
              description: "The Tableau workbook ID."
            - name: view_id
              in: body
              type: string
              description: "The view ID."
          call: "tableau.get-view"
          with:
            workbook_id: "{{workbook_id}}"
            view_id: "{{view_id}}"
  consumes:
    - type: http
      namespace: tableau
      baseUri: "https://tableau.sas.com/api/3.19"
      authentication:
        type: bearer
        token: "$secrets.tableau_token"
      resources:
        - name: views
          path: "/sites/$secrets.tableau_site_id/workbooks/{{workbook_id}}/views/{{view_id}}"
          inputParameters:
            - name: workbook_id
              in: path
            - name: view_id
              in: path
          operations:
            - name: get-view
              method: GET

Retrieves visual analytics report status data from the Sas analytics and AI software systems.

naftiko: "0.5"
info:
  label: "Visual Analytics Report Status"
  description: "Retrieves visual analytics report status data from the Sas analytics and AI software systems."
  tags:
    - visual
    - sas
    - status
capability:
  exposes:
    - type: mcp
      namespace: visual
      port: 8080
      tools:
        - name: visual-analytics-report-status
          description: "Retrieves visual analytics report status data from the Sas analytics and AI software systems."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The input id."
          call: "sas.visual-analytics-report-status"
          with:
            input_id: "{{input_id}}"
          outputParameters:
            - name: result
              type: string
              mapping: "$.data"
            - name: status
              type: string
              mapping: "$.status"
  consumes:
    - type: http
      namespace: sas
      baseUri: "https://api.sas.com/v2"
      authentication:
        type: bearer
        token: "$secrets.sas_api_token"
      resources:
        - name: resource
          path: "/visual/analytics/report/status/{{input_id}}"
          inputParameters:
            - name: input_id
              in: path
          operations:
            - name: visual-analytics-report-status
              method: GET

Retrieves viya environment health check data from the Sas analytics and AI software systems.

naftiko: "0.5"
info:
  label: "Viya Environment Health Check"
  description: "Retrieves viya environment health check data from the Sas analytics and AI software systems."
  tags:
    - viya
    - sas
    - check
capability:
  exposes:
    - type: mcp
      namespace: viya
      port: 8080
      tools:
        - name: viya-environment-health-check
          description: "Retrieves viya environment health check data from the Sas analytics and AI software systems."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The input id."
          call: "sas.viya-environment-health-check"
          with:
            input_id: "{{input_id}}"
          outputParameters:
            - name: result
              type: string
              mapping: "$.data"
            - name: status
              type: string
              mapping: "$.status"
  consumes:
    - type: http
      namespace: sas
      baseUri: "https://api.sas.com/v2"
      authentication:
        type: bearer
        token: "$secrets.sas_api_token"
      resources:
        - name: resource
          path: "/viya/environment/health/check/{{input_id}}"
          inputParameters:
            - name: input_id
              in: path
          operations:
            - name: viya-environment-health-check
              method: GET

Retrieves compensation data and sends review to manager.

naftiko: "0.5"
info:
  label: "Workday Compensation Review"
  description: "Retrieves compensation data and sends review to manager."
  tags: [hr, compensation, workday, microsoft-outlook]
capability:
  exposes:
    - type: mcp
      namespace: hr-compensation
      port: 8080
      tools:
        - name: generate-comp-review
          description: "Generate compensation review."
          inputParameters:
            - name: employee_id
              in: body
              type: string
              description: "Workday employee ID."
          steps:
            - name: get-employee
              type: call
              call: "workday.get-worker"
              with:
                worker_id: "{{employee_id}}"
            - name: send-review
              type: call
              call: "outlook.send-mail"
              with:
                recipient: "{{get-employee.manager_email}}"
                subject: "Compensation Review: {{get-employee.full_name}}"
                body: "Employee: {{get-employee.full_name}}. Department: {{get-employee.department}}."
  consumes:
    - type: http
      namespace: workday
      baseUri: "https://wd2-impl-services1.workday.com/ccx/api/v1"
      authentication:
        type: bearer
        token: "$secrets.workday_token"
      resources:
        - name: workers
          path: "/workers/{{worker_id}}"
          inputParameters:
            - name: worker_id
              in: path
          operations:
            - name: get-worker
              method: GET
    - type: http
      namespace: outlook
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: mail
          path: "/me/sendMail"
          operations:
            - name: send-mail
              method: POST

Retrieves a Workday worker profile by employee ID.

naftiko: "0.5"
info:
  label: "Workday Employee Profile Lookup"
  description: "Retrieves a Workday worker profile by employee ID."
  tags:
    - hr
    - employee-data
    - workday
capability:
  exposes:
    - type: mcp
      namespace: hr-data
      port: 8080
      tools:
        - name: get-employee-profile
          description: "Look up a Workday employee by ID."
          inputParameters:
            - name: employee_id
              in: body
              type: string
              description: "The Workday worker ID."
          call: "workday.get-worker"
          with:
            worker_id: "{{employee_id}}"
          outputParameters:
            - name: full_name
              type: string
              mapping: "$.descriptor"
            - name: department
              type: string
              mapping: "$.primaryPosition.department"
            - name: cost_center
              type: string
              mapping: "$.primaryPosition.costCenter"
  consumes:
    - type: http
      namespace: workday
      baseUri: "https://wd2-impl-services1.workday.com/ccx/api/v1"
      authentication:
        type: bearer
        token: "$secrets.workday_token"
      resources:
        - name: workers
          path: "/workers/{{worker_id}}"
          inputParameters:
            - name: worker_id
              in: path
          operations:
            - name: get-worker
              method: GET

Creates a Zoom meeting and notifies via Microsoft Teams.

naftiko: "0.5"
info:
  label: "Zoom Meeting Scheduler"
  description: "Creates a Zoom meeting and notifies via Microsoft Teams."
  tags:
    - collaboration
    - meetings
    - zoom
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: collaboration
      port: 8080
      tools:
        - name: schedule-zoom-meeting
          description: "Create a Zoom meeting and notify via Microsoft Teams."
          inputParameters:
            - name: topic
              in: body
              type: string
              description: "The meeting topic."
            - name: start_time
              in: body
              type: string
              description: "Start time in ISO 8601."
            - name: duration
              in: body
              type: number
              description: "Duration in minutes."
            - name: teams_channel_id
              in: body
              type: string
              description: "Teams channel to notify."
          steps:
            - name: create-meeting
              type: call
              call: "zoom.create-meeting"
              with:
                topic: "{{topic}}"
                start_time: "{{start_time}}"
                duration: "{{duration}}"
            - name: notify-teams
              type: call
              call: "msteams.send-message"
              with:
                channel_id: "{{teams_channel_id}}"
                text: "Zoom meeting scheduled: {{topic}} at {{start_time}}. Join: {{create-meeting.join_url}}"
  consumes:
    - type: http
      namespace: zoom
      baseUri: "https://api.zoom.us/v2"
      authentication:
        type: bearer
        token: "$secrets.zoom_token"
      resources:
        - name: meetings
          path: "/users/me/meetings"
          operations:
            - name: create-meeting
              method: POST
    - type: http
      namespace: msteams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: channel-messages
          path: "/teams/{{channel_id}}/channels/general/messages"
          inputParameters:
            - name: channel_id
              in: path
          operations:
            - name: send-message
              method: POST