SAS Institute Capabilities
Naftiko 0.5 capability definitions for SAS Institute - 100 capabilities showing integration workflows and service orchestrations.
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