AMD Capabilities
Naftiko 0.5 capability definitions for AMD - 100 capabilities showing integration workflows and service orchestrations.
Collects access entitlements, routes for review, revokes expired access, and creates audit records.
naftiko: "0.5"
info:
label: "Access Review Certification Pipeline"
description: "Collects access entitlements, routes for review, revokes expired access, and creates audit records."
tags:
- security
- okta
- servicenow
- slack
capability:
exposes:
- type: mcp
namespace: security
port: 8080
tools:
- name: access_review_certification_pipeline
description: "Orchestrate access review certification pipeline workflow."
inputParameters:
- name: resource_id
in: body
type: string
description: "Primary resource identifier."
steps:
- name: get-jira
type: call
call: "jira.get-resource"
with:
resource_id: "{{resource_id}}"
- name: process-servicenow
type: call
call: "servicenow.process-resource"
with:
data: "{{get-jira.result}}"
- name: create-slack
type: call
call: "slack.create-resource"
with:
channel: "{{notification_channel}}"
text: "Access Review Certification Pipeline step 3 complete."
consumes:
- type: http
namespace: jira
baseUri: "https://amd.atlassian.net/rest/api/3"
authentication:
type: basic
username: "$secrets.jira_user"
password: "$secrets.jira_api_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: jira-op
method: POST
- type: http
namespace: servicenow
baseUri: "https://amd.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: servicenow-op
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: slack-op
method: POST
Invokes an Amazon SageMaker inference endpoint for chip yield prediction, logs the prediction in Snowflake for trend tracking, and alerts if yield drops below threshold.
naftiko: "0.5"
info:
label: "Amazon SageMaker Chip Yield Prediction"
description: "Invokes an Amazon SageMaker inference endpoint for chip yield prediction, logs the prediction in Snowflake for trend tracking, and alerts if yield drops below threshold."
tags:
- machine-learning
- yield-prediction
- amazon-sagemaker
- snowflake
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: yield-prediction
port: 8080
tools:
- name: predict-and-track-yield
description: "Invoke a SageMaker yield prediction model, store the result, and alert on low predictions."
inputParameters:
- name: endpoint_name
in: body
type: string
description: "SageMaker endpoint name."
- name: process_params
in: body
type: object
description: "Wafer-level process parameters for prediction."
- name: yield_threshold
in: body
type: number
description: "Minimum acceptable yield percentage."
steps:
- name: invoke-model
type: call
call: "sagemaker.invoke-endpoint"
with:
endpoint_name: "{{endpoint_name}}"
body: "{{process_params}}"
content_type: "application/json"
- name: store-prediction
type: call
call: "snowflake.execute-statement"
with:
statement: "INSERT INTO YIELD_PREDICTIONS (endpoint, params_hash, predicted_yield, timestamp) VALUES ('{{endpoint_name}}', HASH('{{process_params}}'), {{invoke-model.predicted_yield}}, CURRENT_TIMESTAMP())"
warehouse: "ANALYTICS_WH"
database: "SILICON_TELEMETRY"
- name: alert-low-yield
type: call
call: "msteams.send-message"
with:
channel_id: "yield-alerts"
text: "Yield prediction: {{invoke-model.predicted_yield}}% (threshold: {{yield_threshold}}%). Endpoint: {{endpoint_name}}."
consumes:
- type: http
namespace: sagemaker
baseUri: "https://runtime.sagemaker.us-west-2.amazonaws.com"
authentication:
type: aws-sigv4
access_key: "$secrets.aws_access_key"
secret_key: "$secrets.aws_secret_key"
region: "us-west-2"
resources:
- name: endpoints
path: "/endpoints/{{endpoint_name}}/invocations"
inputParameters:
- name: endpoint_name
in: path
operations:
- name: invoke-endpoint
method: POST
- type: http
namespace: snowflake
baseUri: "https://amd.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: statements
path: "/statements"
operations:
- name: execute-statement
method: POST
- type: http
namespace: 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 current monitoring alert status. Used by AMD teams.
naftiko: "0.5"
info:
label: "AMD Alert Status Check"
description: "Retrieves current monitoring alert status. Used by AMD teams."
tags:
- semiconductor
- kubernetes
capability:
exposes:
- type: mcp
namespace: kubernetes
port: 8080
tools:
- name: get-alert_status_check
description: "Retrieves current monitoring alert status. Used by AMD teams."
inputParameters:
- name: alert_id
in: body
type: string
description: "The alert_id to look up."
call: "kubernetes.get-alert_id"
with:
alert_id: "{{alert_id}}"
consumes:
- type: http
namespace: k8s
baseUri: "https://amd-k8s.com/api/v1"
authentication:
type: bearer
token: "$secrets.k8s_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: amd_alert_status_check
method: GET
Checks availability of an API endpoint. Used by AMD teams.
naftiko: "0.5"
info:
label: "AMD API Endpoint Status"
description: "Checks availability of an API endpoint. Used by AMD teams."
tags:
- semiconductor
- datadog
capability:
exposes:
- type: mcp
namespace: datadog
port: 8080
tools:
- name: get-api_endpoint_status
description: "Checks availability of an API endpoint. Used by AMD teams."
inputParameters:
- name: endpoint_url
in: body
type: string
description: "The endpoint_url to look up."
call: "datadog.get-endpoint_url"
with:
endpoint_url: "{{endpoint_url}}"
consumes:
- type: http
namespace: datadog
baseUri: "https://api.datadoghq.com/api/v1"
authentication:
type: apiKey
key: "$secrets.datadog_api_key"
header: "DD-API-KEY"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: amd_api_endpoint_status
method: GET
Orchestrates design review milestones, collects approvals, updates tracking, and notifies teams.
naftiko: "0.5"
info:
label: "Chip Design Review Signoff Pipeline"
description: "Orchestrates design review milestones, collects approvals, updates tracking, and notifies teams."
tags:
- engineering
- jira
- confluence
- slack
capability:
exposes:
- type: mcp
namespace: engineering
port: 8080
tools:
- name: amd_chip_design_review_signoff_pipeline
description: "Orchestrate chip design review signoff pipeline workflow."
inputParameters:
- name: resource_id
in: body
type: string
description: "Primary resource identifier."
steps:
- name: get-jira
type: call
call: "jira.get-resource"
with:
resource_id: "{{resource_id}}"
- name: process-confluence
type: call
call: "confluence.process-resource"
with:
data: "{{get-jira.result}}"
- name: create-slack
type: call
call: "slack.create-resource"
with:
channel: "{{notification_channel}}"
text: "Chip Design Review Signoff Pipeline step 3 complete."
consumes:
- type: http
namespace: jira
baseUri: "https://amd.atlassian.net/rest/api/3"
authentication:
type: basic
username: "$secrets.jira_user"
password: "$secrets.jira_api_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: jira-op
method: POST
- type: http
namespace: confluence
baseUri: "https://amd.atlassian.net/wiki/rest/api"
authentication:
type: basic
username: "$secrets.confluence_user"
password: "$secrets.confluence_api_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: confluence-op
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: slack-op
method: POST
Retrieves compliance check status. Used by AMD teams.
naftiko: "0.5"
info:
label: "AMD Compliance Check Status"
description: "Retrieves compliance check status. Used by AMD teams."
tags:
- semiconductor
- pagerduty
capability:
exposes:
- type: mcp
namespace: pagerduty
port: 8080
tools:
- name: get-compliance_check_status
description: "Retrieves compliance check status. Used by AMD teams."
inputParameters:
- name: check_id
in: body
type: string
description: "The check_id to look up."
call: "pagerduty.get-check_id"
with:
check_id: "{{check_id}}"
consumes:
- type: http
namespace: pagerduty
baseUri: "https://api.pagerduty.com"
authentication:
type: bearer
token: "$secrets.pagerduty_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: amd_compliance_check_status
method: GET
Queries metric values from a monitoring dashboard. Used by AMD teams.
naftiko: "0.5"
info:
label: "AMD Metric Dashboard Query"
description: "Queries metric values from a monitoring dashboard. Used by AMD teams."
tags:
- semiconductor
- confluence
capability:
exposes:
- type: mcp
namespace: confluence
port: 8080
tools:
- name: get-metric_dashboard_query
description: "Queries metric values from a monitoring dashboard. Used by AMD teams."
inputParameters:
- name: metric_name
in: body
type: string
description: "The metric_name to look up."
call: "confluence.get-metric_name"
with:
metric_name: "{{metric_name}}"
consumes:
- type: http
namespace: confluence
baseUri: "https://amd.atlassian.net/wiki/rest/api"
authentication:
type: basic
username: "$secrets.confluence_user"
password: "$secrets.confluence_api_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: amd_confluence_metric_dashboar
method: GET
Queries cost and spending data. Used by AMD teams.
naftiko: "0.5"
info:
label: "AMD Cost Report Query"
description: "Queries cost and spending data. Used by AMD teams."
tags:
- semiconductor
- slack
capability:
exposes:
- type: mcp
namespace: slack
port: 8080
tools:
- name: get-cost_report_query
description: "Queries cost and spending data. Used by AMD teams."
inputParameters:
- name: cost_center
in: body
type: string
description: "The cost_center to look up."
call: "slack.get-cost_center"
with:
cost_center: "{{cost_center}}"
consumes:
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: amd_cost_report_query
method: GET
Executes a read-only analytics query. Used by AMD teams.
naftiko: "0.5"
info:
label: "AMD Database Query Runner"
description: "Executes a read-only analytics query. Used by AMD teams."
tags:
- semiconductor
- splunk
capability:
exposes:
- type: mcp
namespace: splunk
port: 8080
tools:
- name: get-database_query_runner
description: "Executes a read-only analytics query. Used by AMD teams."
inputParameters:
- name: sql_query
in: body
type: string
description: "The sql_query to look up."
call: "splunk.get-sql_query"
with:
sql_query: "{{sql_query}}"
consumes:
- type: http
namespace: splunk
baseUri: "https://amd-splunk.com/services"
authentication:
type: bearer
token: "$secrets.splunk_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: amd_database_query_runner
method: GET
Checks status of a recent deployment. Used by AMD teams.
naftiko: "0.5"
info:
label: "AMD Deployment Status Check"
description: "Checks status of a recent deployment. Used by AMD teams."
tags:
- semiconductor
- elasticsearch
capability:
exposes:
- type: mcp
namespace: elasticsearc
port: 8080
tools:
- name: get-deployment_status_check
description: "Checks status of a recent deployment. Used by AMD teams."
inputParameters:
- name: deployment_id
in: body
type: string
description: "The deployment_id to look up."
call: "elasticsearch.get-deployment_id"
with:
deployment_id: "{{deployment_id}}"
consumes:
- type: http
namespace: elasticsearch
baseUri: "https://amd-es.com:9200"
authentication:
type: bearer
token: "$secrets.elasticsearch_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: amd_deployment_status_check
method: GET
Retrieves a document from knowledge management. Used by AMD teams.
naftiko: "0.5"
info:
label: "AMD Document Retrieval"
description: "Retrieves a document from knowledge management. Used by AMD teams."
tags:
- semiconductor
- grafana
capability:
exposes:
- type: mcp
namespace: grafana
port: 8080
tools:
- name: get-document_retrieval
description: "Retrieves a document from knowledge management. Used by AMD teams."
inputParameters:
- name: document_id
in: body
type: string
description: "The document_id to look up."
call: "grafana.get-document_id"
with:
document_id: "{{document_id}}"
consumes:
- type: http
namespace: grafana
baseUri: "https://amd-grafana.com/api"
authentication:
type: bearer
token: "$secrets.grafana_api_key"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: amd_document_retrieval
method: GET
Monitors EDA tool license usage, optimizes allocation, forecasts needs, and reports to management.
naftiko: "0.5"
info:
label: "EDA License Utilization Pipeline"
description: "Monitors EDA tool license usage, optimizes allocation, forecasts needs, and reports to management."
tags:
- operations
- grafana
- servicenow
- powerbi
capability:
exposes:
- type: mcp
namespace: operations
port: 8080
tools:
- name: amd_eda_license_utilization_pipeline
description: "Orchestrate eda license utilization pipeline workflow."
inputParameters:
- name: resource_id
in: body
type: string
description: "Primary resource identifier."
steps:
- name: get-grafana
type: call
call: "grafana.get-resource"
with:
resource_id: "{{resource_id}}"
- name: process-servicenow
type: call
call: "servicenow.process-resource"
with:
data: "{{get-grafana.result}}"
- name: create-powerbi
type: call
call: "powerbi.create-resource"
with:
channel: "{{notification_channel}}"
text: "EDA License Utilization Pipeline step 3 complete."
consumes:
- type: http
namespace: grafana
baseUri: "https://amd-grafana.com/api"
authentication:
type: bearer
token: "$secrets.grafana_api_key"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: grafana-op
method: POST
- type: http
namespace: servicenow
baseUri: "https://amd.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: servicenow-op
method: POST
- type: http
namespace: powerbi
baseUri: "https://api.powerbi.com/v1.0/myorg"
authentication:
type: bearer
token: "$secrets.powerbi_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: powerbi-op
method: POST
Provisions new employee accounts, assigns training, creates IT tickets, and notifies managers.
naftiko: "0.5"
info:
label: "Employee Onboarding Automation Pipeline"
description: "Provisions new employee accounts, assigns training, creates IT tickets, and notifies managers."
tags:
- hr
- workday
- servicenow
- slack
capability:
exposes:
- type: mcp
namespace: hr
port: 8080
tools:
- name: amd_employee_onboarding_automation
description: "Orchestrate employee onboarding automation pipeline workflow."
inputParameters:
- name: resource_id
in: body
type: string
description: "Primary resource identifier."
steps:
- name: get-workday
type: call
call: "workday.get-resource"
with:
resource_id: "{{resource_id}}"
- name: process-servicenow
type: call
call: "servicenow.process-resource"
with:
data: "{{get-workday.result}}"
- name: create-slack
type: call
call: "slack.create-resource"
with:
channel: "{{notification_channel}}"
text: "Employee Onboarding Automation Pipeline step 3 complete."
consumes:
- type: http
namespace: workday
baseUri: "https://wd5-impl-services1.workday.com/ccx/api/v1/amd"
authentication:
type: bearer
token: "$secrets.workday_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: workday-op
method: POST
- type: http
namespace: servicenow
baseUri: "https://amd.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: servicenow-op
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: slack-op
method: POST
Analyzes wafer yield trends, detects regressions, creates investigation tickets, and alerts engineering.
naftiko: "0.5"
info:
label: "Fab Yield Trend Analysis Pipeline"
description: "Analyzes wafer yield trends, detects regressions, creates investigation tickets, and alerts engineering."
tags:
- manufacturing
- snowflake
- jira
- slack
capability:
exposes:
- type: mcp
namespace: manufacturing
port: 8080
tools:
- name: amd_fab_yield_trend_analysis_pipeline
description: "Orchestrate fab yield trend analysis pipeline workflow."
inputParameters:
- name: resource_id
in: body
type: string
description: "Primary resource identifier."
steps:
- name: get-snowflake
type: call
call: "snowflake.get-resource"
with:
resource_id: "{{resource_id}}"
- name: process-jira
type: call
call: "jira.process-resource"
with:
data: "{{get-snowflake.result}}"
- name: create-slack
type: call
call: "slack.create-resource"
with:
channel: "{{notification_channel}}"
text: "Fab Yield Trend Analysis Pipeline step 3 complete."
consumes:
- type: http
namespace: snowflake
baseUri: "https://amd.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: snowflake-op
method: POST
- type: http
namespace: jira
baseUri: "https://amd.atlassian.net/rest/api/3"
authentication:
type: basic
username: "$secrets.jira_user"
password: "$secrets.jira_api_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: jira-op
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: slack-op
method: POST
Searches application logs for matching patterns. Used by AMD teams.
naftiko: "0.5"
info:
label: "AMD Log Search Query"
description: "Searches application logs for matching patterns. Used by AMD teams."
tags:
- semiconductor
- github
capability:
exposes:
- type: mcp
namespace: github
port: 8080
tools:
- name: get-log_search_query
description: "Searches application logs for matching patterns. Used by AMD teams."
inputParameters:
- name: search_query
in: body
type: string
description: "The search_query to look up."
call: "github.get-search_query"
with:
search_query: "{{search_query}}"
consumes:
- type: http
namespace: github
baseUri: "https://api.github.com"
authentication:
type: bearer
token: "$secrets.github_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: amd_github_log_search_query
method: GET
Runs benchmark suites, compares against baselines, flags regressions, and reports to development.
naftiko: "0.5"
info:
label: "GPU Benchmark Regression Pipeline"
description: "Runs benchmark suites, compares against baselines, flags regressions, and reports to development."
tags:
- performance
- grafana
- jira
- slack
capability:
exposes:
- type: mcp
namespace: performance
port: 8080
tools:
- name: amd_gpu_benchmark_regression_pipeline
description: "Orchestrate gpu benchmark regression pipeline workflow."
inputParameters:
- name: resource_id
in: body
type: string
description: "Primary resource identifier."
steps:
- name: get-grafana
type: call
call: "grafana.get-resource"
with:
resource_id: "{{resource_id}}"
- name: process-jira
type: call
call: "jira.process-resource"
with:
data: "{{get-grafana.result}}"
- name: create-slack
type: call
call: "slack.create-resource"
with:
channel: "{{notification_channel}}"
text: "GPU Benchmark Regression Pipeline step 3 complete."
consumes:
- type: http
namespace: grafana
baseUri: "https://amd-grafana.com/api"
authentication:
type: bearer
token: "$secrets.grafana_api_key"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: grafana-op
method: POST
- type: http
namespace: jira
baseUri: "https://amd.atlassian.net/rest/api/3"
authentication:
type: basic
username: "$secrets.jira_user"
password: "$secrets.jira_api_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: jira-op
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: slack-op
method: POST
Checks the health status of a monitored service. Used by AMD teams.
naftiko: "0.5"
info:
label: "AMD Service Health Check"
description: "Checks the health status of a monitored service. Used by AMD teams."
tags:
- semiconductor
- jira
capability:
exposes:
- type: mcp
namespace: jira
port: 8080
tools:
- name: get-service_health_check
description: "Checks the health status of a monitored service. Used by AMD teams."
inputParameters:
- name: health_target
in: body
type: string
description: "The health_target to look up."
call: "jira.get-health_target"
with:
health_target: "{{health_target}}"
consumes:
- type: http
namespace: jira
baseUri: "https://amd.atlassian.net/rest/api/3"
authentication:
type: basic
username: "$secrets.jira_user"
password: "$secrets.jira_api_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: amd_jira_service_health_check
method: GET
Searches application logs for matching patterns. Used by AMD teams.
naftiko: "0.5"
info:
label: "AMD Log Search Query"
description: "Searches application logs for matching patterns. Used by AMD teams."
tags:
- semiconductor
- github
capability:
exposes:
- type: mcp
namespace: github
port: 8080
tools:
- name: get-log_search_query
description: "Searches application logs for matching patterns. Used by AMD teams."
inputParameters:
- name: search_query
in: body
type: string
description: "The search_query to look up."
call: "github.get-search_query"
with:
search_query: "{{search_query}}"
consumes:
- type: http
namespace: github
baseUri: "https://api.github.com"
authentication:
type: bearer
token: "$secrets.github_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: amd_log_search_query
method: GET
Queries metric values from a monitoring dashboard. Used by AMD teams.
naftiko: "0.5"
info:
label: "AMD Metric Dashboard Query"
description: "Queries metric values from a monitoring dashboard. Used by AMD teams."
tags:
- semiconductor
- confluence
capability:
exposes:
- type: mcp
namespace: confluence
port: 8080
tools:
- name: get-metric_dashboard_query
description: "Queries metric values from a monitoring dashboard. Used by AMD teams."
inputParameters:
- name: metric_name
in: body
type: string
description: "The metric_name to look up."
call: "confluence.get-metric_name"
with:
metric_name: "{{metric_name}}"
consumes:
- type: http
namespace: confluence
baseUri: "https://amd.atlassian.net/wiki/rest/api"
authentication:
type: basic
username: "$secrets.confluence_user"
password: "$secrets.confluence_api_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: amd_metric_dashboard_query
method: GET
Checks the current status of a project. Used by AMD teams.
naftiko: "0.5"
info:
label: "AMD Project Status Check"
description: "Checks the current status of a project. Used by AMD teams."
tags:
- semiconductor
- salesforce
capability:
exposes:
- type: mcp
namespace: salesforce
port: 8080
tools:
- name: get-project_status_check
description: "Checks the current status of a project. Used by AMD teams."
inputParameters:
- name: project_key
in: body
type: string
description: "The project_key to look up."
call: "salesforce.get-project_key"
with:
project_key: "{{project_key}}"
consumes:
- type: http
namespace: salesforce
baseUri: "https://amd.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: amd_project_status_check
method: GET
Retrieves code repository information. Used by AMD teams.
naftiko: "0.5"
info:
label: "AMD Repository Info Lookup"
description: "Retrieves code repository information. Used by AMD teams."
tags:
- semiconductor
- workday
capability:
exposes:
- type: mcp
namespace: workday
port: 8080
tools:
- name: get-repository_info_lookup
description: "Retrieves code repository information. Used by AMD teams."
inputParameters:
- name: repo_name
in: body
type: string
description: "The repo_name to look up."
call: "workday.get-repo_name"
with:
repo_name: "{{repo_name}}"
consumes:
- type: http
namespace: workday
baseUri: "https://wd5-impl-services1.workday.com/ccx/api/v1/amd"
authentication:
type: bearer
token: "$secrets.workday_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: amd_repository_info_lookup
method: GET
Detects security incidents, enriches with context, creates response tickets, and notifies the SOC.
naftiko: "0.5"
info:
label: "Security Incident Response Pipeline"
description: "Detects security incidents, enriches with context, creates response tickets, and notifies the SOC."
tags:
- security
- splunk
- servicenow
- pagerduty
capability:
exposes:
- type: mcp
namespace: security
port: 8080
tools:
- name: amd_security_incident_response_pipeline
description: "Orchestrate security incident response pipeline workflow."
inputParameters:
- name: resource_id
in: body
type: string
description: "Primary resource identifier."
steps:
- name: get-splunk
type: call
call: "splunk.get-resource"
with:
resource_id: "{{resource_id}}"
- name: process-servicenow
type: call
call: "servicenow.process-resource"
with:
data: "{{get-splunk.result}}"
- name: create-pagerduty
type: call
call: "pagerduty.create-resource"
with:
channel: "{{notification_channel}}"
text: "Security Incident Response Pipeline step 3 complete."
consumes:
- type: http
namespace: splunk
baseUri: "https://amd-splunk.com/services"
authentication:
type: bearer
token: "$secrets.splunk_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: splunk-op
method: POST
- type: http
namespace: servicenow
baseUri: "https://amd.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: servicenow-op
method: POST
- type: http
namespace: pagerduty
baseUri: "https://api.pagerduty.com"
authentication:
type: bearer
token: "$secrets.pagerduty_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: pagerduty-op
method: POST
Retrieves vulnerability scan results. Used by AMD teams.
naftiko: "0.5"
info:
label: "AMD Security Scan Results"
description: "Retrieves vulnerability scan results. Used by AMD teams."
tags:
- semiconductor
- powerbi
capability:
exposes:
- type: mcp
namespace: powerbi
port: 8080
tools:
- name: get-security_scan_results
description: "Retrieves vulnerability scan results. Used by AMD teams."
inputParameters:
- name: scan_id
in: body
type: string
description: "The scan_id to look up."
call: "powerbi.get-scan_id"
with:
scan_id: "{{scan_id}}"
consumes:
- type: http
namespace: powerbi
baseUri: "https://api.powerbi.com/v1.0/myorg"
authentication:
type: bearer
token: "$secrets.powerbi_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: amd_security_scan_results
method: GET
Checks the health status of a monitored service. Used by AMD teams.
naftiko: "0.5"
info:
label: "AMD Service Health Check"
description: "Checks the health status of a monitored service. Used by AMD teams."
tags:
- semiconductor
- jira
capability:
exposes:
- type: mcp
namespace: jira
port: 8080
tools:
- name: get-service_health_check
description: "Checks the health status of a monitored service. Used by AMD teams."
inputParameters:
- name: health_target
in: body
type: string
description: "The health_target to look up."
call: "jira.get-health_target"
with:
health_target: "{{health_target}}"
consumes:
- type: http
namespace: jira
baseUri: "https://amd.atlassian.net/rest/api/3"
authentication:
type: basic
username: "$secrets.jira_user"
password: "$secrets.jira_api_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: amd_service_health_check
method: GET
Tracks component lead times, identifies delays, escalates critical shortages, and updates procurement.
naftiko: "0.5"
info:
label: "Supply Chain Lead Time Monitor Pipeline"
description: "Tracks component lead times, identifies delays, escalates critical shortages, and updates procurement."
tags:
- logistics
- servicenow
- salesforce
- slack
capability:
exposes:
- type: mcp
namespace: logistics
port: 8080
tools:
- name: amd_supply_chain_lead_time_monitor
description: "Orchestrate supply chain lead time monitor pipeline workflow."
inputParameters:
- name: resource_id
in: body
type: string
description: "Primary resource identifier."
steps:
- name: get-servicenow
type: call
call: "servicenow.get-resource"
with:
resource_id: "{{resource_id}}"
- name: process-salesforce
type: call
call: "salesforce.process-resource"
with:
data: "{{get-servicenow.result}}"
- name: create-slack
type: call
call: "slack.create-resource"
with:
channel: "{{notification_channel}}"
text: "Supply Chain Lead Time Monitor Pipeline step 3 complete."
consumes:
- type: http
namespace: servicenow
baseUri: "https://amd.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: servicenow-op
method: POST
- type: http
namespace: salesforce
baseUri: "https://amd.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: salesforce-op
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: slack-op
method: POST
Retrieves the details of a support ticket. Used by AMD teams.
naftiko: "0.5"
info:
label: "AMD Ticket Details Lookup"
description: "Retrieves the details of a support ticket. Used by AMD teams."
tags:
- semiconductor
- snowflake
capability:
exposes:
- type: mcp
namespace: snowflake
port: 8080
tools:
- name: get-ticket_details_lookup
description: "Retrieves the details of a support ticket. Used by AMD teams."
inputParameters:
- name: ticket_id
in: body
type: string
description: "The ticket_id to look up."
call: "snowflake.get-ticket_id"
with:
ticket_id: "{{ticket_id}}"
consumes:
- type: http
namespace: snowflake
baseUri: "https://amd.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: amd_ticket_details_lookup
method: GET
Retrieves user account details from the directory. Used by AMD teams.
naftiko: "0.5"
info:
label: "AMD User Account Lookup"
description: "Retrieves user account details from the directory. Used by AMD teams."
tags:
- semiconductor
- servicenow
capability:
exposes:
- type: mcp
namespace: servicenow
port: 8080
tools:
- name: get-user_account_lookup
description: "Retrieves user account details from the directory. Used by AMD teams."
inputParameters:
- name: user_id
in: body
type: string
description: "The user_id to look up."
call: "servicenow.get-user_id"
with:
user_id: "{{user_id}}"
consumes:
- type: http
namespace: servicenow
baseUri: "https://amd.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: amd_user_account_lookup
method: GET
Executes an Ansible Tower playbook to patch fab floor control servers, targeting a specific inventory group, and reports results to ServiceNow.
naftiko: "0.5"
info:
label: "Ansible Playbook for Fab Server Patching"
description: "Executes an Ansible Tower playbook to patch fab floor control servers, targeting a specific inventory group, and reports results to ServiceNow."
tags:
- infrastructure
- patching
- ansible
- red-hat-ansible-automation-platform
- servicenow
capability:
exposes:
- type: mcp
namespace: server-patching
port: 8080
tools:
- name: run-patch-playbook
description: "Execute an Ansible patch playbook on fab servers and log results in ServiceNow."
inputParameters:
- name: playbook_id
in: body
type: string
description: "Ansible Tower job template ID."
- name: inventory_group
in: body
type: string
description: "Target inventory group."
- name: change_number
in: body
type: string
description: "ServiceNow change request number."
steps:
- name: launch-job
type: call
call: "ansible.launch-job"
with:
job_template_id: "{{playbook_id}}"
extra_vars:
target_group: "{{inventory_group}}"
- name: update-change
type: call
call: "servicenow.update-change"
with:
change_number: "{{change_number}}"
work_notes: "Ansible job {{launch-job.job_id}} completed. Status: {{launch-job.status}}. Hosts patched: {{launch-job.host_count}}."
consumes:
- type: http
namespace: ansible
baseUri: "https://ansible-tower.amd.com/api/v2"
authentication:
type: bearer
token: "$secrets.ansible_tower_token"
resources:
- name: job-templates
path: "/job_templates/{{job_template_id}}/launch/"
inputParameters:
- name: job_template_id
in: path
operations:
- name: launch-job
method: POST
- type: http
namespace: servicenow
baseUri: "https://amd.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: changes
path: "/table/change_request/{{change_number}}"
inputParameters:
- name: change_number
in: path
operations:
- name: update-change
method: PATCH
Triggers an Apache Airflow DAG run for the fab yield ETL pipeline, passing configuration for source fab and target Snowflake schema, then logs the run in Datadog.
naftiko: "0.5"
info:
label: "Apache Airflow Yield ETL Pipeline"
description: "Triggers an Apache Airflow DAG run for the fab yield ETL pipeline, passing configuration for source fab and target Snowflake schema, then logs the run in Datadog."
tags:
- data-pipeline
- etl
- apache-airflow
- snowflake
- datadog
capability:
exposes:
- type: mcp
namespace: yield-etl
port: 8080
tools:
- name: trigger-yield-etl
description: "Trigger an Airflow yield ETL DAG run and log the event."
inputParameters:
- name: dag_id
in: body
type: string
description: "Airflow DAG ID."
- name: source_fab
in: body
type: string
description: "Source fab site identifier."
- name: target_schema
in: body
type: string
description: "Snowflake target schema."
steps:
- name: trigger-dag
type: call
call: "airflow.trigger-dag"
with:
dag_id: "{{dag_id}}"
conf:
source_fab: "{{source_fab}}"
target_schema: "{{target_schema}}"
- name: log-etl-run
type: call
call: "datadog.send-event"
with:
title: "Yield ETL triggered: {{dag_id}}"
text: "DAG run {{trigger-dag.dag_run_id}} started for fab {{source_fab}} targeting {{target_schema}}."
tags: "etl:yield,fab:{{source_fab}}"
consumes:
- type: http
namespace: airflow
baseUri: "https://airflow.amd.com/api/v1"
authentication:
type: basic
username: "$secrets.airflow_user"
password: "$secrets.airflow_password"
resources:
- name: dag-runs
path: "/dags/{{dag_id}}/dagRuns"
inputParameters:
- name: dag_id
in: path
operations:
- name: trigger-dag
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: send-event
method: POST
Retrieves the status of an Apache NiFi data flow process group used for fab sensor data routing, including queue sizes and throughput metrics.
naftiko: "0.5"
info:
label: "Apache NiFi Fab Sensor Data Flow Status"
description: "Retrieves the status of an Apache NiFi data flow process group used for fab sensor data routing, including queue sizes and throughput metrics."
tags:
- data-pipeline
- manufacturing
- apache-nifi
capability:
exposes:
- type: mcp
namespace: nifi-monitoring
port: 8080
tools:
- name: get-flow-status
description: "Retrieve Apache NiFi process group status for fab data routing."
inputParameters:
- name: process_group_id
in: body
type: string
description: "NiFi process group ID."
call: "nifi.get-process-group"
with:
process_group_id: "{{process_group_id}}"
outputParameters:
- name: queued_count
type: string
mapping: "$.processGroupStatus.aggregateSnapshot.queued"
- name: bytes_in
type: number
mapping: "$.processGroupStatus.aggregateSnapshot.bytesIn"
- name: bytes_out
type: number
mapping: "$.processGroupStatus.aggregateSnapshot.bytesOut"
consumes:
- type: http
namespace: nifi
baseUri: "https://nifi.amd.com/nifi-api"
authentication:
type: bearer
token: "$secrets.nifi_token"
resources:
- name: process-groups
path: "/flow/process-groups/{{process_group_id}}/status"
inputParameters:
- name: process_group_id
in: path
operations:
- name: get-process-group
method: GET
Identifies deprecated API consumers, sends migration notices, tracks adoption, and reports progress.
naftiko: "0.5"
info:
label: "API Deprecation Notice Pipeline"
description: "Identifies deprecated API consumers, sends migration notices, tracks adoption, and reports progress."
tags:
- engineering
- datadog
- jira
- slack
capability:
exposes:
- type: mcp
namespace: engineering
port: 8080
tools:
- name: api_deprecation_notice_pipeline
description: "Orchestrate api deprecation notice pipeline workflow."
inputParameters:
- name: resource_id
in: body
type: string
description: "Primary resource identifier."
steps:
- name: get-datadog
type: call
call: "datadog.get-resource"
with:
resource_id: "{{resource_id}}"
- name: process-jira
type: call
call: "jira.process-resource"
with:
data: "{{get-datadog.result}}"
- name: create-slack
type: call
call: "slack.create-resource"
with:
channel: "{{notification_channel}}"
text: "API Deprecation Notice Pipeline step 3 complete."
consumes:
- type: http
namespace: datadog
baseUri: "https://api.datadoghq.com/api/v1"
authentication:
type: apiKey
key: "$secrets.datadog_api_key"
header: "DD-API-KEY"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: datadog-op
method: POST
- type: http
namespace: jira
baseUri: "https://amd.atlassian.net/rest/api/3"
authentication:
type: basic
username: "$secrets.jira_user"
password: "$secrets.jira_api_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: jira-op
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: slack-op
method: POST
Triggers an Azure Data Factory pipeline to ingest fab equipment telemetry data from on-premises sources into Azure Data Lake, then refreshes the Grafana dashboard.
naftiko: "0.5"
info:
label: "Azure Data Factory Fab Telemetry Ingestion"
description: "Triggers an Azure Data Factory pipeline to ingest fab equipment telemetry data from on-premises sources into Azure Data Lake, then refreshes the Grafana dashboard."
tags:
- data-pipeline
- manufacturing
- azure-data-factory
- grafana
capability:
exposes:
- type: mcp
namespace: fab-telemetry-ingest
port: 8080
tools:
- name: trigger-telemetry-ingestion
description: "Trigger an ADF pipeline for fab telemetry ingestion and refresh the monitoring dashboard."
inputParameters:
- name: pipeline_name
in: body
type: string
description: "ADF pipeline name."
- name: fab_site
in: body
type: string
description: "Fab site identifier."
steps:
- name: trigger-pipeline
type: call
call: "adf.create-pipeline-run"
with:
pipeline_name: "{{pipeline_name}}"
parameters:
fab_site: "{{fab_site}}"
- name: refresh-dashboard
type: call
call: "grafana.refresh-dashboard"
with:
dashboard_uid: "fab-telemetry-{{fab_site}}"
consumes:
- type: http
namespace: adf
baseUri: "https://management.azure.com/subscriptions/$secrets.azure_subscription_id/resourceGroups/amd-data-rg/providers/Microsoft.DataFactory/factories/amd-fab-adf"
authentication:
type: bearer
token: "$secrets.azure_token"
resources:
- name: pipeline-runs
path: "/pipelines/{{pipeline_name}}/createRun"
inputParameters:
- name: pipeline_name
in: path
operations:
- name: create-pipeline-run
method: POST
- type: http
namespace: grafana
baseUri: "https://grafana.amd.com/api"
authentication:
type: bearer
token: "$secrets.grafana_token"
resources:
- name: dashboards
path: "/dashboards/uid/{{dashboard_uid}}"
inputParameters:
- name: dashboard_uid
in: path
operations:
- name: refresh-dashboard
method: POST
Rotates a TLS certificate in Azure Key Vault used by EDA service endpoints and triggers a Kubernetes deployment rollout to pick up the new certificate.
naftiko: "0.5"
info:
label: "Azure Key Vault Certificate Rotation"
description: "Rotates a TLS certificate in Azure Key Vault used by EDA service endpoints and triggers a Kubernetes deployment rollout to pick up the new certificate."
tags:
- security
- certificates
- azure-key-vault
- kubernetes
capability:
exposes:
- type: mcp
namespace: cert-rotation
port: 8080
tools:
- name: rotate-tls-cert
description: "Rotate a TLS certificate in Azure Key Vault and trigger a Kubernetes rollout restart."
inputParameters:
- name: vault_name
in: body
type: string
description: "Azure Key Vault name."
- name: cert_name
in: body
type: string
description: "Certificate name in the vault."
- name: k8s_namespace
in: body
type: string
description: "Kubernetes namespace of the consuming service."
- name: deployment_name
in: body
type: string
description: "Kubernetes deployment to restart."
steps:
- name: create-cert-version
type: call
call: "keyvault.create-certificate"
with:
vault_name: "{{vault_name}}"
cert_name: "{{cert_name}}"
- name: restart-deployment
type: call
call: "kubernetes.rollout-restart"
with:
namespace: "{{k8s_namespace}}"
deployment: "{{deployment_name}}"
consumes:
- type: http
namespace: keyvault
baseUri: "https://{{vault_name}}.vault.azure.net"
authentication:
type: bearer
token: "$secrets.azure_token"
resources:
- name: certificates
path: "/certificates/{{cert_name}}/create"
inputParameters:
- name: cert_name
in: path
operations:
- name: create-certificate
method: POST
- type: http
namespace: kubernetes
baseUri: "https://k8s-api.amd.com/apis/apps/v1"
authentication:
type: bearer
token: "$secrets.k8s_token"
resources:
- name: deployments
path: "/namespaces/{{namespace}}/deployments/{{deployment}}"
inputParameters:
- name: namespace
in: path
- name: deployment
in: path
operations:
- name: rollout-restart
method: PATCH
Checks the health and traffic metrics of an Azure Machine Learning managed inference endpoint used for chip design optimization models.
naftiko: "0.5"
info:
label: "Azure Machine Learning Inference Endpoint Status"
description: "Checks the health and traffic metrics of an Azure Machine Learning managed inference endpoint used for chip design optimization models."
tags:
- machine-learning
- inference
- azure-machine-learning
capability:
exposes:
- type: mcp
namespace: ml-inference
port: 8080
tools:
- name: get-endpoint-status
description: "Retrieve Azure ML inference endpoint health and traffic metrics."
inputParameters:
- name: endpoint_name
in: body
type: string
description: "Azure ML endpoint name."
- name: workspace_name
in: body
type: string
description: "Azure ML workspace name."
call: "azureml.get-endpoint"
with:
workspace_name: "{{workspace_name}}"
endpoint_name: "{{endpoint_name}}"
outputParameters:
- name: provisioning_state
type: string
mapping: "$.properties.provisioningState"
- name: traffic
type: object
mapping: "$.properties.traffic"
consumes:
- type: http
namespace: azureml
baseUri: "https://management.azure.com/subscriptions/$secrets.azure_subscription_id/resourceGroups/amd-ml-rg/providers/Microsoft.MachineLearningServices/workspaces"
authentication:
type: bearer
token: "$secrets.azure_token"
resources:
- name: endpoints
path: "/{{workspace_name}}/onlineEndpoints/{{endpoint_name}}"
inputParameters:
- name: workspace_name
in: path
- name: endpoint_name
in: path
operations:
- name: get-endpoint
method: GET
Creates a Bitbucket repository for a new IP verification environment, sets branch permissions, and adds the DV team as reviewers.
naftiko: "0.5"
info:
label: "Bitbucket IP Verification Repository Manager"
description: "Creates a Bitbucket repository for a new IP verification environment, sets branch permissions, and adds the DV team as reviewers."
tags:
- verification
- source-control
- bitbucket
capability:
exposes:
- type: mcp
namespace: dv-repos
port: 8080
tools:
- name: create-dv-repo
description: "Create a Bitbucket repo for IP verification with branch protections and default reviewers."
inputParameters:
- name: ip_block
in: body
type: string
description: "IP block name for the repo."
- name: project_key
in: body
type: string
description: "Bitbucket project key."
- name: reviewer_group
in: body
type: string
description: "Bitbucket group slug for default reviewers."
steps:
- name: create-repo
type: call
call: "bitbucket.create-repository"
with:
project_key: "{{project_key}}"
name: "dv-{{ip_block}}"
description: "Design verification environment for {{ip_block}}"
is_private: true
- name: set-branch-perms
type: call
call: "bitbucket.set-branch-restriction"
with:
project_key: "{{project_key}}"
repo_slug: "dv-{{ip_block}}"
branch: "main"
restriction_type: "pull-request-only"
- name: add-reviewers
type: call
call: "bitbucket.add-default-reviewers"
with:
project_key: "{{project_key}}"
repo_slug: "dv-{{ip_block}}"
group: "{{reviewer_group}}"
consumes:
- type: http
namespace: bitbucket
baseUri: "https://bitbucket.amd.com/rest/api/1.0"
authentication:
type: bearer
token: "$secrets.bitbucket_token"
resources:
- name: repositories
path: "/projects/{{project_key}}/repos"
inputParameters:
- name: project_key
in: path
operations:
- name: create-repository
method: POST
- name: branch-restrictions
path: "/projects/{{project_key}}/repos/{{repo_slug}}/restrictions"
inputParameters:
- name: project_key
in: path
- name: repo_slug
in: path
operations:
- name: set-branch-restriction
method: POST
- name: default-reviewers
path: "/projects/{{project_key}}/repos/{{repo_slug}}/conditions"
inputParameters:
- name: project_key
in: path
- name: repo_slug
in: path
operations:
- name: add-default-reviewers
method: POST
Analyzes resource utilization trends, forecasts capacity needs, creates procurement requests, and reports.
naftiko: "0.5"
info:
label: "Capacity Planning Forecast Pipeline"
description: "Analyzes resource utilization trends, forecasts capacity needs, creates procurement requests, and reports."
tags:
- infrastructure
- grafana
- snowflake
- powerbi
capability:
exposes:
- type: mcp
namespace: infrastructure
port: 8080
tools:
- name: capacity_planning_forecast_pipeline
description: "Orchestrate capacity planning forecast pipeline workflow."
inputParameters:
- name: resource_id
in: body
type: string
description: "Primary resource identifier."
steps:
- name: get-grafana
type: call
call: "grafana.get-resource"
with:
resource_id: "{{resource_id}}"
- name: process-snowflake
type: call
call: "snowflake.process-resource"
with:
data: "{{get-grafana.result}}"
- name: create-powerbi
type: call
call: "powerbi.create-resource"
with:
channel: "{{notification_channel}}"
text: "Capacity Planning Forecast Pipeline step 3 complete."
consumes:
- type: http
namespace: grafana
baseUri: "https://amd-grafana.com/api"
authentication:
type: bearer
token: "$secrets.grafana_api_key"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: grafana-op
method: POST
- type: http
namespace: snowflake
baseUri: "https://amd.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: snowflake-op
method: POST
- type: http
namespace: powerbi
baseUri: "https://api.powerbi.com/v1.0/myorg"
authentication:
type: bearer
token: "$secrets.powerbi_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: powerbi-op
method: POST
Validates change requests, routes for approval, schedules implementation, and notifies stakeholders.
naftiko: "0.5"
info:
label: "Change Management Approval Pipeline"
description: "Validates change requests, routes for approval, schedules implementation, and notifies stakeholders."
tags:
- itsm
- servicenow
- jira
- slack
capability:
exposes:
- type: mcp
namespace: itsm
port: 8080
tools:
- name: change_management_approval_pipeline
description: "Orchestrate change management approval pipeline workflow."
inputParameters:
- name: resource_id
in: body
type: string
description: "Primary resource identifier."
steps:
- name: get-servicenow
type: call
call: "servicenow.get-resource"
with:
resource_id: "{{resource_id}}"
- name: process-jira
type: call
call: "jira.process-resource"
with:
data: "{{get-servicenow.result}}"
- name: create-slack
type: call
call: "slack.create-resource"
with:
channel: "{{notification_channel}}"
text: "Change Management Approval Pipeline step 3 complete."
consumes:
- type: http
namespace: servicenow
baseUri: "https://amd.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: servicenow-op
method: POST
- type: http
namespace: jira
baseUri: "https://amd.atlassian.net/rest/api/3"
authentication:
type: basic
username: "$secrets.jira_user"
password: "$secrets.jira_api_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: jira-op
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: slack-op
method: POST
Orchestrates design review milestones, collects approvals, updates tracking, and notifies teams.
naftiko: "0.5"
info:
label: "Chip Design Review Signoff Pipeline"
description: "Orchestrates design review milestones, collects approvals, updates tracking, and notifies teams."
tags:
- engineering
- jira
- confluence
- slack
capability:
exposes:
- type: mcp
namespace: engineering
port: 8080
tools:
- name: chip_design_review_signoff_pipeline
description: "Orchestrate chip design review signoff pipeline workflow."
inputParameters:
- name: resource_id
in: body
type: string
description: "Primary resource identifier."
steps:
- name: get-jira
type: call
call: "jira.get-resource"
with:
resource_id: "{{resource_id}}"
- name: process-confluence
type: call
call: "confluence.process-resource"
with:
data: "{{get-jira.result}}"
- name: create-slack
type: call
call: "slack.create-resource"
with:
channel: "{{notification_channel}}"
text: "Chip Design Review Signoff Pipeline step 3 complete."
consumes:
- type: http
namespace: jira
baseUri: "https://amd.atlassian.net/rest/api/3"
authentication:
type: basic
username: "$secrets.jira_user"
password: "$secrets.jira_api_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: jira-op
method: POST
- type: http
namespace: confluence
baseUri: "https://amd.atlassian.net/wiki/rest/api"
authentication:
type: basic
username: "$secrets.confluence_user"
password: "$secrets.confluence_api_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: confluence-op
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: slack-op
method: POST
Purges the Cloudflare CDN cache for AMD developer documentation pages after a content update, ensuring freshness for external developers.
naftiko: "0.5"
info:
label: "Cloudflare CDN Cache Purge for Developer Docs"
description: "Purges the Cloudflare CDN cache for AMD developer documentation pages after a content update, ensuring freshness for external developers."
tags:
- cdn
- developer-portal
- cloudflare
capability:
exposes:
- type: mcp
namespace: cdn-ops
port: 8080
tools:
- name: purge-docs-cache
description: "Purge Cloudflare CDN cache for developer documentation URLs."
inputParameters:
- name: zone_id
in: body
type: string
description: "Cloudflare zone ID."
- name: urls
in: body
type: array
description: "List of URLs to purge."
call: "cloudflare.purge-cache"
with:
zone_id: "{{zone_id}}"
files: "{{urls}}"
consumes:
- type: http
namespace: cloudflare
baseUri: "https://api.cloudflare.com/client/v4"
authentication:
type: bearer
token: "$secrets.cloudflare_token"
resources:
- name: cache
path: "/zones/{{zone_id}}/purge_cache"
inputParameters:
- name: zone_id
in: path
operations:
- name: purge-cache
method: POST
Collects audit events, validates against policies, generates compliance reports, and notifies auditors.
naftiko: "0.5"
info:
label: "Compliance Audit Trail Pipeline"
description: "Collects audit events, validates against policies, generates compliance reports, and notifies auditors."
tags:
- compliance
- elasticsearch
- confluence
- slack
capability:
exposes:
- type: mcp
namespace: compliance
port: 8080
tools:
- name: compliance_audit_trail_pipeline
description: "Orchestrate compliance audit trail pipeline workflow."
inputParameters:
- name: resource_id
in: body
type: string
description: "Primary resource identifier."
steps:
- name: get-elasticsearch
type: call
call: "elasticsearch.get-resource"
with:
resource_id: "{{resource_id}}"
- name: process-confluence
type: call
call: "confluence.process-resource"
with:
data: "{{get-elasticsearch.result}}"
- name: create-slack
type: call
call: "slack.create-resource"
with:
channel: "{{notification_channel}}"
text: "Compliance Audit Trail Pipeline step 3 complete."
consumes:
- type: http
namespace: elasticsearch
baseUri: "https://amd-es.com:9200"
authentication:
type: bearer
token: "$secrets.elasticsearch_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: elasticsearch-op
method: POST
- type: http
namespace: confluence
baseUri: "https://amd.atlassian.net/wiki/rest/api"
authentication:
type: basic
username: "$secrets.confluence_user"
password: "$secrets.confluence_api_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: confluence-op
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: slack-op
method: POST
Tracks spending against budgets, forecasts overruns, creates alerts, and notifies finance leaders.
naftiko: "0.5"
info:
label: "Cost Center Budget Tracking Pipeline"
description: "Tracks spending against budgets, forecasts overruns, creates alerts, and notifies finance leaders."
tags:
- finance
- snowflake
- powerbi
- slack
capability:
exposes:
- type: mcp
namespace: finance
port: 8080
tools:
- name: cost_center_budget_tracking
description: "Orchestrate cost center budget tracking pipeline workflow."
inputParameters:
- name: resource_id
in: body
type: string
description: "Primary resource identifier."
steps:
- name: get-snowflake
type: call
call: "snowflake.get-resource"
with:
resource_id: "{{resource_id}}"
- name: process-powerbi
type: call
call: "powerbi.process-resource"
with:
data: "{{get-snowflake.result}}"
- name: create-slack
type: call
call: "slack.create-resource"
with:
channel: "{{notification_channel}}"
text: "Cost Center Budget Tracking Pipeline step 3 complete."
consumes:
- type: http
namespace: snowflake
baseUri: "https://amd.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: snowflake-op
method: POST
- type: http
namespace: powerbi
baseUri: "https://api.powerbi.com/v1.0/myorg"
authentication:
type: bearer
token: "$secrets.powerbi_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: powerbi-op
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: slack-op
method: POST
Creates a Coupa purchase requisition for EDA tool licenses or fab consumables, validates the cost center budget in Oracle, and notifies procurement on Microsoft Teams.
naftiko: "0.5"
info:
label: "Coupa Procurement Requisition with Budget Validation"
description: "Creates a Coupa purchase requisition for EDA tool licenses or fab consumables, validates the cost center budget in Oracle, and notifies procurement on Microsoft Teams."
tags:
- procurement
- coupa
- oracle
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: procurement-reqs
port: 8080
tools:
- name: create-requisition
description: "Create a Coupa purchase requisition with Oracle budget validation and Teams notification."
inputParameters:
- name: item_description
in: body
type: string
description: "Description of the item being procured."
- name: quantity
in: body
type: integer
description: "Quantity requested."
- name: unit_price
in: body
type: number
description: "Unit price in USD."
- name: cost_center
in: body
type: string
description: "Oracle cost center code."
steps:
- name: validate-budget
type: call
call: "oracle.get-budget"
with:
cost_center: "{{cost_center}}"
- name: create-req
type: call
call: "coupa.create-requisition"
with:
description: "{{item_description}}"
quantity: "{{quantity}}"
unit_price: "{{unit_price}}"
account_code: "{{validate-budget.account_code}}"
- name: notify-procurement
type: call
call: "msteams.send-message"
with:
channel_id: "procurement-ops"
text: "Requisition {{create-req.req_number}} created: {{item_description}} x{{quantity}} at ${{unit_price}}. Budget remaining: ${{validate-budget.remaining}}."
consumes:
- type: http
namespace: oracle
baseUri: "https://oracle-ebs.amd.com/webservices/rest/v1"
authentication:
type: basic
username: "$secrets.oracle_user"
password: "$secrets.oracle_password"
resources:
- name: budgets
path: "/gl/budgets/{{cost_center}}"
inputParameters:
- name: cost_center
in: path
operations:
- name: get-budget
method: GET
- type: http
namespace: coupa
baseUri: "https://amd.coupahost.com/api"
authentication:
type: bearer
token: "$secrets.coupa_token"
resources:
- name: requisitions
path: "/requisitions"
operations:
- name: create-requisition
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
Aggregates customer data from multiple sources, deduplicates, enriches profiles, and syncs to CRM.
naftiko: "0.5"
info:
label: "Customer 360 Data Sync Pipeline"
description: "Aggregates customer data from multiple sources, deduplicates, enriches profiles, and syncs to CRM."
tags:
- data
- snowflake
- salesforce
- slack
capability:
exposes:
- type: mcp
namespace: data
port: 8080
tools:
- name: customer_360_data_sync_pipeline
description: "Orchestrate customer 360 data sync pipeline workflow."
inputParameters:
- name: resource_id
in: body
type: string
description: "Primary resource identifier."
steps:
- name: get-snowflake
type: call
call: "snowflake.get-resource"
with:
resource_id: "{{resource_id}}"
- name: process-salesforce
type: call
call: "salesforce.process-resource"
with:
data: "{{get-snowflake.result}}"
- name: create-slack
type: call
call: "slack.create-resource"
with:
channel: "{{notification_channel}}"
text: "Customer 360 Data Sync Pipeline step 3 complete."
consumes:
- type: http
namespace: snowflake
baseUri: "https://amd.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: snowflake-op
method: POST
- type: http
namespace: salesforce
baseUri: "https://amd.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: salesforce-op
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: slack-op
method: POST
Runs data quality checks, scores datasets, creates remediation tickets, and publishes scorecards.
naftiko: "0.5"
info:
label: "Data Quality Monitoring Pipeline"
description: "Runs data quality checks, scores datasets, creates remediation tickets, and publishes scorecards."
tags:
- data-quality
- snowflake
- jira
- grafana
capability:
exposes:
- type: mcp
namespace: data-quality
port: 8080
tools:
- name: data_quality_monitoring_pipeline
description: "Orchestrate data quality monitoring pipeline workflow."
inputParameters:
- name: resource_id
in: body
type: string
description: "Primary resource identifier."
steps:
- name: get-snowflake
type: call
call: "snowflake.get-resource"
with:
resource_id: "{{resource_id}}"
- name: process-jira
type: call
call: "jira.process-resource"
with:
data: "{{get-snowflake.result}}"
- name: create-grafana
type: call
call: "grafana.create-resource"
with:
channel: "{{notification_channel}}"
text: "Data Quality Monitoring Pipeline step 3 complete."
consumes:
- type: http
namespace: snowflake
baseUri: "https://amd.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: snowflake-op
method: POST
- type: http
namespace: jira
baseUri: "https://amd.atlassian.net/rest/api/3"
authentication:
type: basic
username: "$secrets.jira_user"
password: "$secrets.jira_api_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: jira-op
method: POST
- type: http
namespace: grafana
baseUri: "https://amd-grafana.com/api"
authentication:
type: bearer
token: "$secrets.grafana_api_key"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: grafana-op
method: POST
Submits a Databricks job run for training a silicon defect classification ML model, then registers the resulting model in the MLflow registry and notifies the ML team.
naftiko: "0.5"
info:
label: "Databricks Defect Classification Training"
description: "Submits a Databricks job run for training a silicon defect classification ML model, then registers the resulting model in the MLflow registry and notifies the ML team."
tags:
- machine-learning
- defect-classification
- databricks
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: ml-training
port: 8080
tools:
- name: train-defect-model
description: "Launch a Databricks ML training job for silicon defect classification, register the model, and notify the team."
inputParameters:
- name: job_id
in: body
type: string
description: "Databricks job ID for the training pipeline."
- name: dataset_path
in: body
type: string
description: "Path to training dataset in DBFS."
- name: hyperparams
in: body
type: object
description: "Model hyperparameters."
steps:
- name: run-training
type: call
call: "databricks.run-job"
with:
job_id: "{{job_id}}"
notebook_params:
dataset_path: "{{dataset_path}}"
hyperparams: "{{hyperparams}}"
- name: notify-ml-team
type: call
call: "msteams.send-message"
with:
channel_id: "ml-ops"
text: "Databricks training run {{run-training.run_id}} completed for job {{job_id}}. Check MLflow for model artifact."
consumes:
- type: http
namespace: databricks
baseUri: "https://amd.cloud.databricks.com/api/2.1"
authentication:
type: bearer
token: "$secrets.databricks_token"
resources:
- name: jobs
path: "/jobs/run-now"
operations:
- name: run-job
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
Creates a Demandbase account-based marketing campaign targeting OEM partners, syncs the account list from Salesforce, and launches the campaign.
naftiko: "0.5"
info:
label: "Demandbase ABM Campaign for OEM Partners"
description: "Creates a Demandbase account-based marketing campaign targeting OEM partners, syncs the account list from Salesforce, and launches the campaign."
tags:
- marketing
- partner-ecosystem
- demandbase
- salesforce
capability:
exposes:
- type: mcp
namespace: abm-campaigns
port: 8080
tools:
- name: create-oem-campaign
description: "Create a Demandbase ABM campaign with Salesforce account list sync."
inputParameters:
- name: campaign_name
in: body
type: string
description: "Campaign name."
- name: salesforce_report_id
in: body
type: string
description: "Salesforce report ID for OEM account list."
- name: product_focus
in: body
type: string
description: "AMD product focus (e.g., EPYC Embedded, Ryzen Embedded)."
steps:
- name: get-accounts
type: call
call: "salesforce.run-report"
with:
report_id: "{{salesforce_report_id}}"
- name: create-campaign
type: call
call: "demandbase.create-campaign"
with:
name: "{{campaign_name}}"
accounts: "{{get-accounts.rows}}"
tags:
- "oem"
- "{{product_focus}}"
consumes:
- type: http
namespace: salesforce
baseUri: "https://amd.my.salesforce.com/services/data/v59.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: reports
path: "/analytics/reports/{{report_id}}"
inputParameters:
- name: report_id
in: path
operations:
- name: run-report
method: GET
- type: http
namespace: demandbase
baseUri: "https://api.demandbase.com/api/v1"
authentication:
type: bearer
token: "$secrets.demandbase_token"
resources:
- name: campaigns
path: "/campaigns"
operations:
- name: create-campaign
method: POST
Triggers a Jenkins regression suite for a given IP block, collects coverage metrics, and uploads the summary report to SharePoint for design review.
naftiko: "0.5"
info:
label: "Design Verification Regression Runner"
description: "Triggers a Jenkins regression suite for a given IP block, collects coverage metrics, and uploads the summary report to SharePoint for design review."
tags:
- verification
- regression
- jenkins
- sharepoint
- chip-design
capability:
exposes:
- type: mcp
namespace: dv-regression
port: 8080
tools:
- name: run-regression
description: "Launch a verification regression suite for an IP block and publish results to SharePoint."
inputParameters:
- name: ip_block
in: body
type: string
description: "Name of the IP block under verification."
- name: test_suite
in: body
type: string
description: "Regression test suite identifier."
- name: coverage_target
in: body
type: number
description: "Minimum functional coverage percentage target."
steps:
- name: start-build
type: call
call: "jenkins.trigger-build"
with:
job_name: "dv-regression-{{ip_block}}"
parameters:
SUITE: "{{test_suite}}"
COVERAGE_TARGET: "{{coverage_target}}"
- name: upload-report
type: call
call: "sharepoint.upload-file"
with:
site_id: "dv_reports_site"
folder_path: "Regressions/{{ip_block}}/{{start-build.build_number}}"
file_name: "coverage_report.html"
content_url: "{{start-build.artifact_url}}/coverage_report.html"
consumes:
- type: http
namespace: jenkins
baseUri: "https://jenkins.amd.com"
authentication:
type: basic
username: "$secrets.jenkins_user"
password: "$secrets.jenkins_token"
resources:
- name: jobs
path: "/job/{{job_name}}/buildWithParameters"
inputParameters:
- name: job_name
in: path
operations:
- name: trigger-build
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}}/{{file_name}}:/content"
inputParameters:
- name: site_id
in: path
- name: folder_path
in: path
- name: file_name
in: path
operations:
- name: upload-file
method: PUT
Tests DR procedures, validates backup integrity, generates readiness reports, and notifies leadership.
naftiko: "0.5"
info:
label: "Disaster Recovery Readiness Pipeline"
description: "Tests DR procedures, validates backup integrity, generates readiness reports, and notifies leadership."
tags:
- disaster-recovery
- servicenow
- confluence
- pagerduty
capability:
exposes:
- type: mcp
namespace: disaster-recovery
port: 8080
tools:
- name: disaster_recovery_readiness_pipeline
description: "Orchestrate disaster recovery readiness pipeline workflow."
inputParameters:
- name: resource_id
in: body
type: string
description: "Primary resource identifier."
steps:
- name: get-servicenow
type: call
call: "servicenow.get-resource"
with:
resource_id: "{{resource_id}}"
- name: process-confluence
type: call
call: "confluence.process-resource"
with:
data: "{{get-servicenow.result}}"
- name: create-pagerduty
type: call
call: "pagerduty.create-resource"
with:
channel: "{{notification_channel}}"
text: "Disaster Recovery Readiness Pipeline step 3 complete."
consumes:
- type: http
namespace: servicenow
baseUri: "https://amd.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: servicenow-op
method: POST
- type: http
namespace: confluence
baseUri: "https://amd.atlassian.net/wiki/rest/api"
authentication:
type: basic
username: "$secrets.confluence_user"
password: "$secrets.confluence_api_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: confluence-op
method: POST
- type: http
namespace: pagerduty
baseUri: "https://api.pagerduty.com"
authentication:
type: bearer
token: "$secrets.pagerduty_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: pagerduty-op
method: POST
Builds and pushes a Docker container image for an EDA tool environment to JFrog Artifactory, tagging it with the tool version and PDK revision.
naftiko: "0.5"
info:
label: "Docker EDA Container Builder"
description: "Builds and pushes a Docker container image for an EDA tool environment to JFrog Artifactory, tagging it with the tool version and PDK revision."
tags:
- eda
- containers
- docker
- jfrog-artifactory
- github-actions
capability:
exposes:
- type: mcp
namespace: eda-containers
port: 8080
tools:
- name: build-eda-image
description: "Build and push a Docker image for an EDA tool environment to Artifactory via GitHub Actions."
inputParameters:
- name: tool_name
in: body
type: string
description: "EDA tool name (e.g., synopsys-dc, cadence-innovus)."
- name: tool_version
in: body
type: string
description: "EDA tool version string."
- name: pdk_revision
in: body
type: string
description: "PDK revision identifier."
steps:
- name: trigger-build
type: call
call: "github.dispatch-workflow"
with:
repo: "amd/eda-containers"
workflow_id: "build-push.yml"
ref: "main"
inputs:
tool_name: "{{tool_name}}"
tool_version: "{{tool_version}}"
pdk_revision: "{{pdk_revision}}"
- name: verify-image
type: call
call: "artifactory.get-artifact-info"
with:
repo: "eda-docker-local"
path: "{{tool_name}}/{{tool_version}}-{{pdk_revision}}"
consumes:
- type: http
namespace: github
baseUri: "https://api.github.com"
authentication:
type: bearer
token: "$secrets.github_token"
resources:
- name: workflow-dispatches
path: "/repos/{{repo}}/actions/workflows/{{workflow_id}}/dispatches"
inputParameters:
- name: repo
in: path
- name: workflow_id
in: path
operations:
- name: dispatch-workflow
method: POST
- type: http
namespace: artifactory
baseUri: "https://amd.jfrog.io/artifactory/api"
authentication:
type: bearer
token: "$secrets.artifactory_token"
resources:
- name: storage
path: "/storage/{{repo}}/{{path}}"
inputParameters:
- name: repo
in: path
- name: path
in: path
operations:
- name: get-artifact-info
method: GET
Creates a DocuSign envelope with a pre-configured NDA template for a new technology partner, sends it for signature, and logs the event in Salesforce.
naftiko: "0.5"
info:
label: "DocuSign NDA for Partner Onboarding"
description: "Creates a DocuSign envelope with a pre-configured NDA template for a new technology partner, sends it for signature, and logs the event in Salesforce."
tags:
- partner-ecosystem
- legal
- docusign
- salesforce
capability:
exposes:
- type: mcp
namespace: partner-nda
port: 8080
tools:
- name: send-partner-nda
description: "Send an NDA via DocuSign to a new technology partner and log in Salesforce."
inputParameters:
- name: partner_name
in: body
type: string
description: "Partner company name."
- name: signer_email
in: body
type: string
description: "Email of the partner signer."
- name: signer_name
in: body
type: string
description: "Full name of the partner signer."
- name: salesforce_account_id
in: body
type: string
description: "Salesforce account ID for the partner."
steps:
- name: create-envelope
type: call
call: "docusign.create-envelope"
with:
template_id: "amd-partner-nda-template"
signer_email: "{{signer_email}}"
signer_name: "{{signer_name}}"
email_subject: "AMD NDA for {{partner_name}}"
- name: log-activity
type: call
call: "salesforce.create-task"
with:
WhatId: "{{salesforce_account_id}}"
Subject: "NDA sent to {{partner_name}}"
Description: "DocuSign envelope {{create-envelope.envelope_id}} sent to {{signer_email}}."
Status: "Completed"
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"
operations:
- name: create-envelope
method: POST
- type: http
namespace: salesforce
baseUri: "https://amd.my.salesforce.com/services/data/v59.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: tasks
path: "/sobjects/Task"
operations:
- name: create-task
method: POST
Monitors EDA tool license usage, optimizes allocation, forecasts needs, and reports to management.
naftiko: "0.5"
info:
label: "EDA License Utilization Pipeline"
description: "Monitors EDA tool license usage, optimizes allocation, forecasts needs, and reports to management."
tags:
- operations
- grafana
- servicenow
- powerbi
capability:
exposes:
- type: mcp
namespace: operations
port: 8080
tools:
- name: eda_license_utilization_pipeline
description: "Orchestrate eda license utilization pipeline workflow."
inputParameters:
- name: resource_id
in: body
type: string
description: "Primary resource identifier."
steps:
- name: get-grafana
type: call
call: "grafana.get-resource"
with:
resource_id: "{{resource_id}}"
- name: process-servicenow
type: call
call: "servicenow.process-resource"
with:
data: "{{get-grafana.result}}"
- name: create-powerbi
type: call
call: "powerbi.create-resource"
with:
channel: "{{notification_channel}}"
text: "EDA License Utilization Pipeline step 3 complete."
consumes:
- type: http
namespace: grafana
baseUri: "https://amd-grafana.com/api"
authentication:
type: bearer
token: "$secrets.grafana_api_key"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: grafana-op
method: POST
- type: http
namespace: servicenow
baseUri: "https://amd.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: servicenow-op
method: POST
- type: http
namespace: powerbi
baseUri: "https://api.powerbi.com/v1.0/myorg"
authentication:
type: bearer
token: "$secrets.powerbi_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: powerbi-op
method: POST
Searches Elasticsearch for post-silicon debug logs by chip SKU and error pattern, enriches results with Jira defect links, and posts a summary to Microsoft Teams.
naftiko: "0.5"
info:
label: "Elasticsearch Post-Silicon Log Search"
description: "Searches Elasticsearch for post-silicon debug logs by chip SKU and error pattern, enriches results with Jira defect links, and posts a summary to Microsoft Teams."
tags:
- post-silicon
- debug
- elasticsearch
- jira
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: post-silicon-logs
port: 8080
tools:
- name: search-debug-logs
description: "Search Elasticsearch for post-silicon debug logs, cross-reference with Jira defects, and notify the debug team."
inputParameters:
- name: chip_sku
in: body
type: string
description: "Chip SKU identifier."
- name: error_pattern
in: body
type: string
description: "Regex or keyword pattern to match in log messages."
- name: time_range
in: body
type: string
description: "Time range (e.g., 24h, 7d)."
steps:
- name: search-logs
type: call
call: "elasticsearch.search"
with:
index: "post-silicon-logs-{{chip_sku}}"
query:
bool:
must:
- match:
message: "{{error_pattern}}"
filter:
- range:
timestamp:
gte: "now-{{time_range}}"
- name: search-defects
type: call
call: "jira.search-issues"
with:
jql: "project = POSTSI AND labels = {{chip_sku}} AND text ~ '{{error_pattern}}'"
- name: notify-debug-team
type: call
call: "msteams.send-message"
with:
channel_id: "post-silicon-debug"
text: "Debug log search for {{chip_sku}} pattern '{{error_pattern}}': {{search-logs.hits.total.value}} log hits, {{search-defects.total}} related Jira defects."
consumes:
- type: http
namespace: elasticsearch
baseUri: "https://es.amd.com:9200"
authentication:
type: basic
username: "$secrets.es_user"
password: "$secrets.es_password"
resources:
- name: search
path: "/{{index}}/_search"
inputParameters:
- name: index
in: path
operations:
- name: search
method: POST
- type: http
namespace: jira
baseUri: "https://amd.atlassian.net/rest/api/3"
authentication:
type: basic
username: "$secrets.jira_user"
password: "$secrets.jira_api_token"
resources:
- name: search
path: "/search"
operations:
- name: search-issues
method: GET
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{channel_id}}/channels/general/messages"
inputParameters:
- name: channel_id
in: path
operations:
- name: send-message
method: POST
Provisions new employee accounts, assigns training, creates IT tickets, and notifies managers.
naftiko: "0.5"
info:
label: "Employee Onboarding Automation Pipeline"
description: "Provisions new employee accounts, assigns training, creates IT tickets, and notifies managers."
tags:
- hr
- workday
- servicenow
- slack
capability:
exposes:
- type: mcp
namespace: hr
port: 8080
tools:
- name: employee_onboarding_automation
description: "Orchestrate employee onboarding automation pipeline workflow."
inputParameters:
- name: resource_id
in: body
type: string
description: "Primary resource identifier."
steps:
- name: get-workday
type: call
call: "workday.get-resource"
with:
resource_id: "{{resource_id}}"
- name: process-servicenow
type: call
call: "servicenow.process-resource"
with:
data: "{{get-workday.result}}"
- name: create-slack
type: call
call: "slack.create-resource"
with:
channel: "{{notification_channel}}"
text: "Employee Onboarding Automation Pipeline step 3 complete."
consumes:
- type: http
namespace: workday
baseUri: "https://wd5-impl-services1.workday.com/ccx/api/v1/amd"
authentication:
type: bearer
token: "$secrets.workday_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: workday-op
method: POST
- type: http
namespace: servicenow
baseUri: "https://amd.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: servicenow-op
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: slack-op
method: POST
Analyzes wafer yield trends, detects regressions, creates investigation tickets, and alerts engineering.
naftiko: "0.5"
info:
label: "Fab Yield Trend Analysis Pipeline"
description: "Analyzes wafer yield trends, detects regressions, creates investigation tickets, and alerts engineering."
tags:
- manufacturing
- snowflake
- jira
- slack
capability:
exposes:
- type: mcp
namespace: manufacturing
port: 8080
tools:
- name: fab_yield_trend_analysis_pipeline
description: "Orchestrate fab yield trend analysis pipeline workflow."
inputParameters:
- name: resource_id
in: body
type: string
description: "Primary resource identifier."
steps:
- name: get-snowflake
type: call
call: "snowflake.get-resource"
with:
resource_id: "{{resource_id}}"
- name: process-jira
type: call
call: "jira.process-resource"
with:
data: "{{get-snowflake.result}}"
- name: create-slack
type: call
call: "slack.create-resource"
with:
channel: "{{notification_channel}}"
text: "Fab Yield Trend Analysis Pipeline step 3 complete."
consumes:
- type: http
namespace: snowflake
baseUri: "https://amd.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: snowflake-op
method: POST
- type: http
namespace: jira
baseUri: "https://amd.atlassian.net/rest/api/3"
authentication:
type: basic
username: "$secrets.jira_user"
password: "$secrets.jira_api_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: jira-op
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: slack-op
method: POST
On a GitHub pull request for RTL code, runs a SonarQube static analysis scan and posts the lint summary as a PR comment.
naftiko: "0.5"
info:
label: "GitHub Pull Request EDA Lint Check"
description: "On a GitHub pull request for RTL code, runs a SonarQube static analysis scan and posts the lint summary as a PR comment."
tags:
- code-quality
- eda
- github
- sonarqube
capability:
exposes:
- type: mcp
namespace: eda-lint
port: 8080
tools:
- name: lint-rtl-pr
description: "Run SonarQube lint on an RTL pull request and post results as a GitHub PR comment."
inputParameters:
- name: repo
in: body
type: string
description: "GitHub repository (org/repo)."
- name: pr_number
in: body
type: integer
description: "Pull request number."
- name: branch
in: body
type: string
description: "Source branch of the PR."
steps:
- name: run-scan
type: call
call: "sonarqube.trigger-analysis"
with:
project_key: "{{repo}}"
branch: "{{branch}}"
- name: get-results
type: call
call: "sonarqube.get-quality-gate"
with:
project_key: "{{repo}}"
analysis_id: "{{run-scan.analysis_id}}"
- name: post-comment
type: call
call: "github.create-pr-comment"
with:
repo: "{{repo}}"
pr_number: "{{pr_number}}"
body: "SonarQube lint: {{get-results.status}} — {{get-results.bugs}} bugs, {{get-results.code_smells}} code smells, coverage {{get-results.coverage}}%."
consumes:
- type: http
namespace: sonarqube
baseUri: "https://sonarqube.amd.com/api"
authentication:
type: bearer
token: "$secrets.sonarqube_token"
resources:
- name: analysis
path: "/ce/submit"
operations:
- name: trigger-analysis
method: POST
- name: quality-gate
path: "/qualitygates/project_status"
operations:
- name: get-quality-gate
method: GET
- type: http
namespace: github
baseUri: "https://api.github.com"
authentication:
type: bearer
token: "$secrets.github_token"
resources:
- name: pr-comments
path: "/repos/{{repo}}/issues/{{pr_number}}/comments"
inputParameters:
- name: repo
in: path
- name: pr_number
in: path
operations:
- name: create-pr-comment
method: POST
Triggers a GitLab CI pipeline for firmware builds, monitors the job, and uploads the binary artifact to Amazon S3 for distribution.
naftiko: "0.5"
info:
label: "GitLab CI/CD Firmware Build Pipeline"
description: "Triggers a GitLab CI pipeline for firmware builds, monitors the job, and uploads the binary artifact to Amazon S3 for distribution."
tags:
- firmware
- ci-cd
- gitlab
- amazon-s3
capability:
exposes:
- type: mcp
namespace: firmware-builds
port: 8080
tools:
- name: build-firmware
description: "Trigger a GitLab firmware build pipeline and upload the resulting binary to S3."
inputParameters:
- name: project_id
in: body
type: string
description: "GitLab project ID."
- name: ref
in: body
type: string
description: "Git ref (branch or tag) to build."
- name: firmware_target
in: body
type: string
description: "Firmware target platform (e.g., epyc-bmc, instinct-smc)."
steps:
- name: trigger-pipeline
type: call
call: "gitlab.create-pipeline"
with:
project_id: "{{project_id}}"
ref: "{{ref}}"
variables:
FIRMWARE_TARGET: "{{firmware_target}}"
- name: upload-binary
type: call
call: "s3.put-object"
with:
bucket: "amd-firmware-releases"
key: "{{firmware_target}}/{{ref}}/{{trigger-pipeline.pipeline_id}}/firmware.bin"
source_url: "{{trigger-pipeline.artifact_url}}"
consumes:
- type: http
namespace: gitlab
baseUri: "https://gitlab.amd.com/api/v4"
authentication:
type: bearer
token: "$secrets.gitlab_token"
resources:
- name: pipelines
path: "/projects/{{project_id}}/pipeline"
inputParameters:
- name: project_id
in: path
operations:
- name: create-pipeline
method: POST
- type: http
namespace: s3
baseUri: "https://s3.amazonaws.com"
authentication:
type: aws-sigv4
access_key: "$secrets.aws_access_key"
secret_key: "$secrets.aws_secret_key"
region: "us-west-2"
resources:
- name: objects
path: "/{{bucket}}/{{key}}"
inputParameters:
- name: bucket
in: path
- name: key
in: path
operations:
- name: put-object
method: PUT
Retrieves Gong call analytics for design win customer meetings, returning talk ratio, key topics discussed, and action items for the sales team.
naftiko: "0.5"
info:
label: "Gong Sales Call Insights for Design Wins"
description: "Retrieves Gong call analytics for design win customer meetings, returning talk ratio, key topics discussed, and action items for the sales team."
tags:
- sales
- design-win
- gong
capability:
exposes:
- type: mcp
namespace: sales-insights
port: 8080
tools:
- name: get-call-insights
description: "Retrieve Gong call analytics for a customer meeting."
inputParameters:
- name: call_id
in: body
type: string
description: "Gong call ID."
call: "gong.get-call"
with:
call_id: "{{call_id}}"
outputParameters:
- name: talk_ratio
type: number
mapping: "$.call.talkRatio"
- name: topics
type: array
mapping: "$.call.topics"
- name: action_items
type: array
mapping: "$.call.actionItems"
consumes:
- type: http
namespace: gong
baseUri: "https://api.gong.io/v2"
authentication:
type: bearer
token: "$secrets.gong_token"
resources:
- name: calls
path: "/calls/{{call_id}}"
inputParameters:
- name: call_id
in: path
operations:
- name: get-call
method: GET
Retrieves Google Analytics page view and session metrics for the AMD developer portal to track documentation adoption and SDK download trends.
naftiko: "0.5"
info:
label: "Google Analytics Developer Portal Metrics"
description: "Retrieves Google Analytics page view and session metrics for the AMD developer portal to track documentation adoption and SDK download trends."
tags:
- analytics
- developer-portal
- google-analytics
capability:
exposes:
- type: mcp
namespace: dev-portal-analytics
port: 8080
tools:
- name: get-portal-metrics
description: "Query Google Analytics for developer portal traffic metrics."
inputParameters:
- name: property_id
in: body
type: string
description: "GA4 property ID."
- name: start_date
in: body
type: string
description: "Report start date (YYYY-MM-DD)."
- name: end_date
in: body
type: string
description: "Report end date (YYYY-MM-DD)."
steps:
- name: fetch-report
type: call
call: "ga.run-report"
with:
property_id: "{{property_id}}"
dateRanges:
startDate: "{{start_date}}"
endDate: "{{end_date}}"
metrics:
- "screenPageViews"
- "sessions"
- "averageSessionDuration"
- name: post-metrics
type: call
call: "msteams.send-message"
with:
channel_id: "developer-portal-metrics"
text: "Developer portal GA4 report ({{start_date}} to {{end_date}}): {{fetch-report.rows[0].metricValues[0].value}} page views, {{fetch-report.rows[0].metricValues[1].value}} sessions."
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
- 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
Runs benchmark suites, compares against baselines, flags regressions, and reports to development.
naftiko: "0.5"
info:
label: "GPU Benchmark Regression Pipeline"
description: "Runs benchmark suites, compares against baselines, flags regressions, and reports to development."
tags:
- performance
- grafana
- jira
- slack
capability:
exposes:
- type: mcp
namespace: performance
port: 8080
tools:
- name: gpu_benchmark_regression_pipeline
description: "Orchestrate gpu benchmark regression pipeline workflow."
inputParameters:
- name: resource_id
in: body
type: string
description: "Primary resource identifier."
steps:
- name: get-grafana
type: call
call: "grafana.get-resource"
with:
resource_id: "{{resource_id}}"
- name: process-jira
type: call
call: "jira.process-resource"
with:
data: "{{get-grafana.result}}"
- name: create-slack
type: call
call: "slack.create-resource"
with:
channel: "{{notification_channel}}"
text: "GPU Benchmark Regression Pipeline step 3 complete."
consumes:
- type: http
namespace: grafana
baseUri: "https://amd-grafana.com/api"
authentication:
type: bearer
token: "$secrets.grafana_api_key"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: grafana-op
method: POST
- type: http
namespace: jira
baseUri: "https://amd.atlassian.net/rest/api/3"
authentication:
type: basic
username: "$secrets.jira_user"
password: "$secrets.jira_api_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: jira-op
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: slack-op
method: POST
Queries a Grafana dashboard for fab yield metrics by product line and date range, returning pass rate, defect density, and wafer-level trends.
naftiko: "0.5"
info:
label: "Grafana Fab Yield Dashboard Query"
description: "Queries a Grafana dashboard for fab yield metrics by product line and date range, returning pass rate, defect density, and wafer-level trends."
tags:
- manufacturing
- yield
- grafana
capability:
exposes:
- type: mcp
namespace: yield-analytics
port: 8080
tools:
- name: query-yield-dashboard
description: "Query Grafana fab yield dashboard for a product line and date range."
inputParameters:
- name: product_line
in: body
type: string
description: "Product line identifier (e.g., EPYC, Ryzen, Instinct)."
- name: from_date
in: body
type: string
description: "Start date in YYYY-MM-DD format."
- name: to_date
in: body
type: string
description: "End date in YYYY-MM-DD format."
call: "grafana.query-dashboard"
with:
dashboard_uid: "fab-yield-{{product_line}}"
from: "{{from_date}}"
to: "{{to_date}}"
outputParameters:
- name: pass_rate
type: number
mapping: "$.results[0].series[0].values[-1]"
- name: defect_density
type: number
mapping: "$.results[1].series[0].values[-1]"
consumes:
- type: http
namespace: grafana
baseUri: "https://grafana.amd.com/api"
authentication:
type: bearer
token: "$secrets.grafana_token"
resources:
- name: dashboards
path: "/dashboards/uid/{{dashboard_uid}}"
inputParameters:
- name: dashboard_uid
in: path
operations:
- name: query-dashboard
method: GET
Deploys or upgrades a Helm chart for an EDA microservice to the Kubernetes cluster, validates the rollout, and logs the deployment in Datadog.
naftiko: "0.5"
info:
label: "Helm Chart Deployment for EDA Services"
description: "Deploys or upgrades a Helm chart for an EDA microservice to the Kubernetes cluster, validates the rollout, and logs the deployment in Datadog."
tags:
- deployment
- eda
- helm
- kubernetes
- datadog
capability:
exposes:
- type: mcp
namespace: eda-deployments
port: 8080
tools:
- name: deploy-eda-service
description: "Deploy or upgrade an EDA microservice via Helm and log the event."
inputParameters:
- name: release_name
in: body
type: string
description: "Helm release name."
- name: chart
in: body
type: string
description: "Chart name in the Helm repo."
- name: namespace
in: body
type: string
description: "Kubernetes namespace."
- name: values_override
in: body
type: object
description: "Helm values overrides."
steps:
- name: deploy-chart
type: call
call: "helm.upgrade-release"
with:
release_name: "{{release_name}}"
chart: "{{chart}}"
namespace: "{{namespace}}"
values: "{{values_override}}"
- name: log-deployment
type: call
call: "datadog.send-event"
with:
title: "Helm deploy: {{release_name}}"
text: "Chart {{chart}} deployed to {{namespace}}. Revision: {{deploy-chart.revision}}."
tags: "deploy:helm,namespace:{{namespace}}"
consumes:
- type: http
namespace: helm
baseUri: "https://helm-api.amd.com/v1"
authentication:
type: bearer
token: "$secrets.helm_api_token"
resources:
- name: releases
path: "/namespaces/{{namespace}}/releases/{{release_name}}"
inputParameters:
- name: namespace
in: path
- name: release_name
in: path
operations:
- name: upgrade-release
method: PUT
- 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: send-event
method: POST
When a new partner lead is created in HubSpot, enriches it with ZoomInfo company data and syncs the enriched lead into Salesforce for the channel sales team.
naftiko: "0.5"
info:
label: "HubSpot Partner Lead Enrichment and Sync"
description: "When a new partner lead is created in HubSpot, enriches it with ZoomInfo company data and syncs the enriched lead into Salesforce for the channel sales team."
tags:
- partner-ecosystem
- lead-management
- hubspot
- zoominfo
- salesforce
capability:
exposes:
- type: mcp
namespace: partner-leads
port: 8080
tools:
- name: sync-partner-lead
description: "Enrich a HubSpot partner lead with ZoomInfo data and sync to Salesforce."
inputParameters:
- name: contact_id
in: body
type: string
description: "HubSpot contact ID."
steps:
- name: get-contact
type: call
call: "hubspot.get-contact"
with:
contact_id: "{{contact_id}}"
- name: enrich-company
type: call
call: "zoominfo.enrich-company"
with:
company_name: "{{get-contact.company}}"
domain: "{{get-contact.website}}"
- name: create-lead
type: call
call: "salesforce.create-lead"
with:
FirstName: "{{get-contact.firstname}}"
LastName: "{{get-contact.lastname}}"
Company: "{{get-contact.company}}"
Email: "{{get-contact.email}}"
Industry: "{{enrich-company.industry}}"
NumberOfEmployees: "{{enrich-company.employee_count}}"
LeadSource: "Partner Channel"
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/{{contact_id}}"
inputParameters:
- name: contact_id
in: path
operations:
- name: get-contact
method: GET
- type: http
namespace: zoominfo
baseUri: "https://api.zoominfo.com"
authentication:
type: bearer
token: "$secrets.zoominfo_token"
resources:
- name: company-enrich
path: "/enrich/company"
operations:
- name: enrich-company
method: POST
- type: http
namespace: salesforce
baseUri: "https://amd.my.salesforce.com/services/data/v59.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: leads
path: "/sobjects/Lead"
operations:
- name: create-lead
method: POST
Compares deployed state against desired config, identifies drift, creates remediation tickets, and alerts ops.
naftiko: "0.5"
info:
label: "Infrastructure Drift Detection Pipeline"
description: "Compares deployed state against desired config, identifies drift, creates remediation tickets, and alerts ops."
tags:
- devops
- github
- jira
- slack
capability:
exposes:
- type: mcp
namespace: devops
port: 8080
tools:
- name: infrastructure_drift_detection
description: "Orchestrate infrastructure drift detection pipeline workflow."
inputParameters:
- name: resource_id
in: body
type: string
description: "Primary resource identifier."
steps:
- name: get-github
type: call
call: "github.get-resource"
with:
resource_id: "{{resource_id}}"
- name: process-jira
type: call
call: "jira.process-resource"
with:
data: "{{get-github.result}}"
- name: create-slack
type: call
call: "slack.create-resource"
with:
channel: "{{notification_channel}}"
text: "Infrastructure Drift Detection Pipeline step 3 complete."
consumes:
- type: http
namespace: github
baseUri: "https://api.github.com"
authentication:
type: bearer
token: "$secrets.github_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: github-op
method: POST
- type: http
namespace: jira
baseUri: "https://amd.atlassian.net/rest/api/3"
authentication:
type: basic
username: "$secrets.jira_user"
password: "$secrets.jira_api_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: jira-op
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: slack-op
method: POST
Tracks asset lifecycle stages, schedules replacements, manages disposal, and updates CMDB.
naftiko: "0.5"
info:
label: "IT Asset Lifecycle Pipeline"
description: "Tracks asset lifecycle stages, schedules replacements, manages disposal, and updates CMDB."
tags:
- operations
- servicenow
- snowflake
- slack
capability:
exposes:
- type: mcp
namespace: operations
port: 8080
tools:
- name: it_asset_lifecycle_pipeline
description: "Orchestrate it asset lifecycle pipeline workflow."
inputParameters:
- name: resource_id
in: body
type: string
description: "Primary resource identifier."
steps:
- name: get-servicenow
type: call
call: "servicenow.get-resource"
with:
resource_id: "{{resource_id}}"
- name: process-snowflake
type: call
call: "snowflake.process-resource"
with:
data: "{{get-servicenow.result}}"
- name: create-slack
type: call
call: "slack.create-resource"
with:
channel: "{{notification_channel}}"
text: "IT Asset Lifecycle Pipeline step 3 complete."
consumes:
- type: http
namespace: servicenow
baseUri: "https://amd.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: servicenow-op
method: POST
- type: http
namespace: snowflake
baseUri: "https://amd.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: snowflake-op
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: slack-op
method: POST
Fetches the current status of a tape-out milestone epic in Jira, including completion percentage, blockers, and remaining story points.
naftiko: "0.5"
info:
label: "Jira Tape-Out Milestone Tracker"
description: "Fetches the current status of a tape-out milestone epic in Jira, including completion percentage, blockers, and remaining story points."
tags:
- project-management
- tape-out
- jira
capability:
exposes:
- type: mcp
namespace: tapeout-tracking
port: 8080
tools:
- name: get-tapeout-status
description: "Retrieve tape-out milestone epic status from Jira including completion and blockers."
inputParameters:
- name: epic_key
in: body
type: string
description: "Jira epic key for the tape-out milestone (e.g., TAPEOUT-42)."
call: "jira.get-issue"
with:
issue_key: "{{epic_key}}"
outputParameters:
- name: summary
type: string
mapping: "$.fields.summary"
- name: status
type: string
mapping: "$.fields.status.name"
- name: story_points_remaining
type: number
mapping: "$.fields.customfield_10016"
- name: blockers
type: array
mapping: "$.fields.issuelinks[?(@.type.name=='Blocker')]"
consumes:
- type: http
namespace: jira
baseUri: "https://amd.atlassian.net/rest/api/3"
authentication:
type: basic
username: "$secrets.jira_user"
password: "$secrets.jira_api_token"
resources:
- name: issues
path: "/issue/{{issue_key}}"
inputParameters:
- name: issue_key
in: path
operations:
- name: get-issue
method: GET
Creates a Keycloak user account for a new external developer, assigns realm roles, and sends a welcome email via MailChimp with onboarding instructions.
naftiko: "0.5"
info:
label: "Keycloak Developer Portal SSO Provisioning"
description: "Creates a Keycloak user account for a new external developer, assigns realm roles, and sends a welcome email via MailChimp with onboarding instructions."
tags:
- identity
- developer-portal
- keycloak
- mailchimp
capability:
exposes:
- type: mcp
namespace: dev-identity
port: 8080
tools:
- name: provision-developer
description: "Create a Keycloak user for the AMD developer portal and send a welcome email."
inputParameters:
- name: email
in: body
type: string
description: "Developer email address."
- name: first_name
in: body
type: string
description: "Developer first name."
- name: last_name
in: body
type: string
description: "Developer last name."
- name: company
in: body
type: string
description: "Developer company name."
steps:
- name: create-user
type: call
call: "keycloak.create-user"
with:
realm: "amd-developer-portal"
username: "{{email}}"
email: "{{email}}"
firstName: "{{first_name}}"
lastName: "{{last_name}}"
enabled: true
attributes:
company: "{{company}}"
realmRoles:
- "developer"
- "sdk-download"
- name: send-welcome
type: call
call: "mailchimp.send-transactional"
with:
template_name: "developer-welcome"
to_email: "{{email}}"
merge_vars:
first_name: "{{first_name}}"
portal_url: "https://developer.amd.com"
consumes:
- type: http
namespace: keycloak
baseUri: "https://sso.amd.com/auth/admin/realms"
authentication:
type: bearer
token: "$secrets.keycloak_admin_token"
resources:
- name: users
path: "/{{realm}}/users"
inputParameters:
- name: realm
in: path
operations:
- name: create-user
method: POST
- type: http
namespace: mailchimp
baseUri: "https://mandrillapp.com/api/1.0"
authentication:
type: apiKey
key: "$secrets.mandrill_api_key"
resources:
- name: messages
path: "/messages/send-template"
operations:
- name: send-transactional
method: POST
Identifies stale articles, assigns review tasks, tracks updates, and publishes freshness reports.
naftiko: "0.5"
info:
label: "Knowledge Base Freshness Pipeline"
description: "Identifies stale articles, assigns review tasks, tracks updates, and publishes freshness reports."
tags:
- knowledge
- confluence
- jira
- slack
capability:
exposes:
- type: mcp
namespace: knowledge
port: 8080
tools:
- name: knowledge_base_freshness_pipeline
description: "Orchestrate knowledge base freshness pipeline workflow."
inputParameters:
- name: resource_id
in: body
type: string
description: "Primary resource identifier."
steps:
- name: get-confluence
type: call
call: "confluence.get-resource"
with:
resource_id: "{{resource_id}}"
- name: process-jira
type: call
call: "jira.process-resource"
with:
data: "{{get-confluence.result}}"
- name: create-slack
type: call
call: "slack.create-resource"
with:
channel: "{{notification_channel}}"
text: "Knowledge Base Freshness Pipeline step 3 complete."
consumes:
- type: http
namespace: confluence
baseUri: "https://amd.atlassian.net/wiki/rest/api"
authentication:
type: basic
username: "$secrets.confluence_user"
password: "$secrets.confluence_api_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: confluence-op
method: POST
- type: http
namespace: jira
baseUri: "https://amd.atlassian.net/rest/api/3"
authentication:
type: basic
username: "$secrets.jira_user"
password: "$secrets.jira_api_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: jira-op
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: slack-op
method: POST
Checks GPU node pool utilization in Azure Kubernetes Service and scales the cluster up or down based on EDA workload demand, logging the action to Datadog.
naftiko: "0.5"
info:
label: "Kubernetes GPU Cluster Scaler"
description: "Checks GPU node pool utilization in Azure Kubernetes Service and scales the cluster up or down based on EDA workload demand, logging the action to Datadog."
tags:
- infrastructure
- gpu-compute
- azure-kubernetes-service
- datadog
capability:
exposes:
- type: mcp
namespace: gpu-cluster
port: 8080
tools:
- name: scale-gpu-pool
description: "Scale an AKS GPU node pool based on EDA workload demand and log the scaling event."
inputParameters:
- name: cluster_name
in: body
type: string
description: "AKS cluster name."
- name: node_pool
in: body
type: string
description: "GPU node pool name."
- name: desired_count
in: body
type: integer
description: "Desired number of GPU nodes."
steps:
- name: scale-pool
type: call
call: "aks.update-node-pool"
with:
cluster_name: "{{cluster_name}}"
node_pool: "{{node_pool}}"
count: "{{desired_count}}"
- name: log-scaling
type: call
call: "datadog.send-event"
with:
title: "GPU pool scaled: {{cluster_name}}/{{node_pool}}"
text: "Node pool {{node_pool}} scaled to {{desired_count}} nodes."
tags: "infra:aks,cluster:{{cluster_name}}"
consumes:
- type: http
namespace: aks
baseUri: "https://management.azure.com/subscriptions/$secrets.azure_subscription_id/resourceGroups/amd-eda-rg/providers/Microsoft.ContainerService/managedClusters"
authentication:
type: bearer
token: "$secrets.azure_token"
resources:
- name: node-pools
path: "/{{cluster_name}}/agentPools/{{node_pool}}"
inputParameters:
- name: cluster_name
in: path
- name: node_pool
in: path
operations:
- name: update-node-pool
method: PUT
- 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: send-event
method: POST
Creates and sends a MailChimp email campaign to AMD technology partners with product updates, SDK releases, and upcoming webinar announcements.
naftiko: "0.5"
info:
label: "MailChimp Partner Newsletter Campaign"
description: "Creates and sends a MailChimp email campaign to AMD technology partners with product updates, SDK releases, and upcoming webinar announcements."
tags:
- partner-ecosystem
- marketing
- mailchimp
capability:
exposes:
- type: mcp
namespace: partner-comms
port: 8080
tools:
- name: send-partner-newsletter
description: "Create and send a MailChimp campaign to the AMD partner list."
inputParameters:
- name: subject
in: body
type: string
description: "Email subject line."
- name: html_content
in: body
type: string
description: "HTML content of the newsletter."
- name: list_id
in: body
type: string
description: "MailChimp audience list ID."
steps:
- name: create-campaign
type: call
call: "mailchimp.create-campaign"
with:
type: "regular"
recipients:
list_id: "{{list_id}}"
settings:
subject_line: "{{subject}}"
from_name: "AMD Partner Program"
reply_to: "partners@amd.com"
- name: set-content
type: call
call: "mailchimp.set-campaign-content"
with:
campaign_id: "{{create-campaign.id}}"
html: "{{html_content}}"
- name: send-campaign
type: call
call: "mailchimp.send-campaign"
with:
campaign_id: "{{create-campaign.id}}"
consumes:
- type: http
namespace: mailchimp
baseUri: "https://us1.api.mailchimp.com/3.0"
authentication:
type: basic
username: "anystring"
password: "$secrets.mailchimp_api_key"
resources:
- name: campaigns
path: "/campaigns"
operations:
- name: create-campaign
method: POST
- name: campaign-content
path: "/campaigns/{{campaign_id}}/content"
inputParameters:
- name: campaign_id
in: path
operations:
- name: set-campaign-content
method: PUT
- name: campaign-actions
path: "/campaigns/{{campaign_id}}/actions/send"
inputParameters:
- name: campaign_id
in: path
operations:
- name: send-campaign
method: POST
Queries Mixpanel funnel analytics for the AMD ROCm SDK adoption flow, tracking download-to-first-build conversion across developer segments.
naftiko: "0.5"
info:
label: "Mixpanel ROCm SDK Adoption Funnel"
description: "Queries Mixpanel funnel analytics for the AMD ROCm SDK adoption flow, tracking download-to-first-build conversion across developer segments."
tags:
- analytics
- developer-portal
- mixpanel
capability:
exposes:
- type: mcp
namespace: sdk-analytics
port: 8080
tools:
- name: get-sdk-funnel
description: "Query Mixpanel for ROCm SDK adoption funnel metrics."
inputParameters:
- name: funnel_id
in: body
type: string
description: "Mixpanel funnel ID."
- name: from_date
in: body
type: string
description: "Start date (YYYY-MM-DD)."
- name: to_date
in: body
type: string
description: "End date (YYYY-MM-DD)."
call: "mixpanel.get-funnel"
with:
funnel_id: "{{funnel_id}}"
from_date: "{{from_date}}"
to_date: "{{to_date}}"
consumes:
- type: http
namespace: mixpanel
baseUri: "https://mixpanel.com/api/2.0"
authentication:
type: basic
username: "$secrets.mixpanel_api_secret"
password: ""
resources:
- name: funnels
path: "/funnels"
operations:
- name: get-funnel
method: GET
Queries Nutanix Prism Central for hyperconverged cluster capacity metrics used by EDA compute farms, returning CPU, memory, and storage utilization.
naftiko: "0.5"
info:
label: "Nutanix HCI Cluster Capacity Planner"
description: "Queries Nutanix Prism Central for hyperconverged cluster capacity metrics used by EDA compute farms, returning CPU, memory, and storage utilization."
tags:
- infrastructure
- capacity-planning
- nutanix
capability:
exposes:
- type: mcp
namespace: hci-capacity
port: 8080
tools:
- name: get-cluster-capacity
description: "Query Nutanix Prism Central for EDA cluster capacity metrics."
inputParameters:
- name: cluster_uuid
in: body
type: string
description: "Nutanix cluster UUID."
call: "nutanix.get-cluster"
with:
cluster_uuid: "{{cluster_uuid}}"
outputParameters:
- name: cpu_usage_pct
type: number
mapping: "$.stats.hypervisor_cpu_usage_ppm"
- name: memory_usage_pct
type: number
mapping: "$.stats.hypervisor_memory_usage_ppm"
- name: storage_usage_bytes
type: number
mapping: "$.usageStats.storage.usage_bytes"
consumes:
- type: http
namespace: nutanix
baseUri: "https://prism-central.amd.com/api/nutanix/v3"
authentication:
type: basic
username: "$secrets.nutanix_user"
password: "$secrets.nutanix_password"
resources:
- name: clusters
path: "/clusters/{{cluster_uuid}}"
inputParameters:
- name: cluster_uuid
in: path
operations:
- name: get-cluster
method: GET
Retrieves a chip product bill of materials from Oracle E-Business Suite by item number, returning component hierarchy, quantities, and supplier sourcing.
naftiko: "0.5"
info:
label: "Oracle ERP Bill of Materials Lookup"
description: "Retrieves a chip product bill of materials from Oracle E-Business Suite by item number, returning component hierarchy, quantities, and supplier sourcing."
tags:
- manufacturing
- bom
- oracle
- oracle-e-business-suite
capability:
exposes:
- type: mcp
namespace: chip-bom
port: 8080
tools:
- name: get-bom
description: "Look up a chip product BOM in Oracle E-Business Suite."
inputParameters:
- name: item_number
in: body
type: string
description: "Oracle item number for the chip product."
- name: organization_id
in: body
type: string
description: "Oracle organization ID."
call: "oracle.get-bom"
with:
item_number: "{{item_number}}"
organization_id: "{{organization_id}}"
outputParameters:
- name: item_description
type: string
mapping: "$.BillOfMaterial.ItemDescription"
- name: components
type: array
mapping: "$.BillOfMaterial.Components"
- name: revision
type: string
mapping: "$.BillOfMaterial.Revision"
consumes:
- type: http
namespace: oracle
baseUri: "https://oracle-ebs.amd.com/webservices/rest/v1"
authentication:
type: basic
username: "$secrets.oracle_user"
password: "$secrets.oracle_password"
resources:
- name: bom
path: "/bom/items/{{item_number}}/organizations/{{organization_id}}"
inputParameters:
- name: item_number
in: path
- name: organization_id
in: path
operations:
- name: get-bom
method: GET
Retrieves firewall rule configurations from Palo Alto Networks Panorama for EDA network segments and exports the audit report to Box.
naftiko: "0.5"
info:
label: "Palo Alto Firewall Rule Audit"
description: "Retrieves firewall rule configurations from Palo Alto Networks Panorama for EDA network segments and exports the audit report to Box."
tags:
- security
- network
- palo-alto-networks
- box
capability:
exposes:
- type: mcp
namespace: firewall-audit
port: 8080
tools:
- name: audit-firewall-rules
description: "Export Palo Alto firewall rules for EDA segments and upload audit report to Box."
inputParameters:
- name: device_group
in: body
type: string
description: "Panorama device group name."
- name: box_folder_id
in: body
type: string
description: "Box folder ID for audit reports."
steps:
- name: get-rules
type: call
call: "paloalto.get-security-rules"
with:
device_group: "{{device_group}}"
- name: upload-report
type: call
call: "box.upload-file"
with:
folder_id: "{{box_folder_id}}"
file_name: "firewall-audit-{{device_group}}.json"
content: "{{get-rules.rules}}"
consumes:
- type: http
namespace: paloalto
baseUri: "https://panorama.amd.com/restapi/v10.2"
authentication:
type: apiKey
key: "$secrets.paloalto_api_key"
resources:
- name: security-rules
path: "/Policies/SecurityRules"
operations:
- name: get-security-rules
method: GET
- type: http
namespace: box
baseUri: "https://upload.box.com/api/2.0"
authentication:
type: bearer
token: "$secrets.box_token"
resources:
- name: files
path: "/files/content"
operations:
- name: upload-file
method: POST
Retrieves recent Perforce Helix changelists for an RTL depot path, returning changelist numbers, descriptions, and authors for design audit.
naftiko: "0.5"
info:
label: "Perforce Helix RTL Changelist Tracker"
description: "Retrieves recent Perforce Helix changelists for an RTL depot path, returning changelist numbers, descriptions, and authors for design audit."
tags:
- source-control
- chip-design
- perforce
capability:
exposes:
- type: mcp
namespace: rtl-changelists
port: 8080
tools:
- name: list-recent-changelists
description: "List recent Perforce changelists for an RTL depot path."
inputParameters:
- name: depot_path
in: body
type: string
description: "Perforce depot path (e.g., //depot/rtl/epyc/...)."
- name: max_results
in: body
type: integer
description: "Maximum number of changelists to return."
steps:
- name: list-changes
type: call
call: "perforce.list-changelists"
with:
depot_path: "{{depot_path}}"
max: "{{max_results}}"
- name: post-summary
type: call
call: "msteams.send-message"
with:
channel_id: "rtl-design-audit"
text: "Recent changelists for {{depot_path}}: {{list-changes.count}} changes found. Latest: CL {{list-changes.changelists[0].number}} by {{list-changes.changelists[0].user}}."
consumes:
- type: http
namespace: perforce
baseUri: "https://helix-api.amd.com/api/v1"
authentication:
type: bearer
token: "$secrets.perforce_token"
resources:
- name: changelists
path: "/changes"
operations:
- name: list-changelists
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
Initiates review cycles, collects feedback, aggregates scores, and distributes to managers.
naftiko: "0.5"
info:
label: "Performance Review Cycle Pipeline"
description: "Initiates review cycles, collects feedback, aggregates scores, and distributes to managers."
tags:
- hr
- workday
- confluence
- slack
capability:
exposes:
- type: mcp
namespace: hr
port: 8080
tools:
- name: performance_review_cycle_pipeline
description: "Orchestrate performance review cycle pipeline workflow."
inputParameters:
- name: resource_id
in: body
type: string
description: "Primary resource identifier."
steps:
- name: get-workday
type: call
call: "workday.get-resource"
with:
resource_id: "{{resource_id}}"
- name: process-confluence
type: call
call: "confluence.process-resource"
with:
data: "{{get-workday.result}}"
- name: create-slack
type: call
call: "slack.create-resource"
with:
channel: "{{notification_channel}}"
text: "Performance Review Cycle Pipeline step 3 complete."
consumes:
- type: http
namespace: workday
baseUri: "https://wd5-impl-services1.workday.com/ccx/api/v1/amd"
authentication:
type: bearer
token: "$secrets.workday_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: workday-op
method: POST
- type: http
namespace: confluence
baseUri: "https://amd.atlassian.net/wiki/rest/api"
authentication:
type: basic
username: "$secrets.confluence_user"
password: "$secrets.confluence_api_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: confluence-op
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: slack-op
method: POST
Queries the PostgreSQL EDA job metadata database for job execution history, returning run times, exit codes, and resource consumption by job type.
naftiko: "0.5"
info:
label: "PostgreSQL EDA Job Metadata Query"
description: "Queries the PostgreSQL EDA job metadata database for job execution history, returning run times, exit codes, and resource consumption by job type."
tags:
- eda
- metadata
- postgresql
capability:
exposes:
- type: mcp
namespace: eda-job-metadata
port: 8080
tools:
- name: query-job-history
description: "Query PostgreSQL for EDA job execution metadata."
inputParameters:
- name: job_type
in: body
type: string
description: "EDA job type (synthesis, place-route, timing, drc)."
- name: days_back
in: body
type: integer
description: "Number of days of history to retrieve."
call: "postgres.execute-query"
with:
query: "SELECT job_id, start_time, end_time, exit_code, peak_memory_gb, cpu_hours FROM eda_jobs WHERE job_type = '{{job_type}}' AND start_time >= NOW() - INTERVAL '{{days_back}} days' ORDER BY start_time DESC"
consumes:
- type: http
namespace: postgres
baseUri: "https://pgrest.amd.com/v1"
authentication:
type: bearer
token: "$secrets.pgrest_token"
resources:
- name: query
path: "/rpc/execute_query"
operations:
- name: execute-query
method: POST
Triggers a Power BI dataset refresh for the chip revenue dashboard and sends a notification to the finance team in Microsoft Teams when complete.
naftiko: "0.5"
info:
label: "Power BI Chip Revenue Dashboard Refresh"
description: "Triggers a Power BI dataset refresh for the chip revenue dashboard and sends a notification to the finance team in Microsoft Teams when complete."
tags:
- analytics
- finance
- power-bi
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: revenue-analytics
port: 8080
tools:
- name: refresh-revenue-dashboard
description: "Refresh the Power BI chip revenue dataset and notify the finance team."
inputParameters:
- name: dataset_id
in: body
type: string
description: "Power BI dataset identifier."
- name: group_id
in: body
type: string
description: "Power BI workspace (group) ID."
steps:
- name: refresh-dataset
type: call
call: "powerbi.trigger-refresh"
with:
group_id: "{{group_id}}"
dataset_id: "{{dataset_id}}"
- name: notify-finance
type: call
call: "msteams.send-message"
with:
channel_id: "finance-analytics"
text: "Power BI revenue dashboard refreshed. Dataset {{dataset_id}} updated successfully."
consumes:
- type: http
namespace: powerbi
baseUri: "https://api.powerbi.com/v1.0/myorg"
authentication:
type: bearer
token: "$secrets.powerbi_token"
resources:
- name: datasets
path: "/groups/{{group_id}}/datasets/{{dataset_id}}/refreshes"
inputParameters:
- name: group_id
in: path
- name: dataset_id
in: path
operations:
- name: trigger-refresh
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
Queries Prometheus for EDA compute farm resource utilization metrics, evaluates against thresholds, and sends a capacity warning to Microsoft Teams if exceeded.
naftiko: "0.5"
info:
label: "Prometheus EDA Farm Monitor with Slack Alert"
description: "Queries Prometheus for EDA compute farm resource utilization metrics, evaluates against thresholds, and sends a capacity warning to Microsoft Teams if exceeded."
tags:
- monitoring
- eda
- prometheus
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: eda-monitoring
port: 8080
tools:
- name: check-farm-utilization
description: "Query Prometheus for EDA farm metrics and alert if thresholds are exceeded."
inputParameters:
- name: query
in: body
type: string
description: "PromQL query string."
- name: threshold
in: body
type: number
description: "Alert threshold percentage."
steps:
- name: query-metrics
type: call
call: "prometheus.query-instant"
with:
query: "{{query}}"
- name: send-alert
type: call
call: "msteams.send-message"
with:
channel_id: "eda-farm-alerts"
text: "EDA farm utilization alert: {{query}} returned {{query-metrics.value}}. Threshold: {{threshold}}%."
consumes:
- type: http
namespace: prometheus
baseUri: "https://prometheus.amd.com/api/v1"
authentication:
type: bearer
token: "$secrets.prometheus_token"
resources:
- name: query
path: "/query"
operations:
- name: query-instant
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
Checks the Redis cache for current EDA license availability by tool vendor, returning available seats, checked-out count, and queue depth.
naftiko: "0.5"
info:
label: "Redis EDA License Cache Query"
description: "Checks the Redis cache for current EDA license availability by tool vendor, returning available seats, checked-out count, and queue depth."
tags:
- eda
- license-management
- redis
capability:
exposes:
- type: mcp
namespace: license-cache
port: 8080
tools:
- name: get-license-status
description: "Query Redis for EDA license availability by vendor and tool."
inputParameters:
- name: vendor
in: body
type: string
description: "EDA vendor name (e.g., synopsys, cadence, siemens)."
- name: tool_name
in: body
type: string
description: "EDA tool name."
call: "redis.get-key"
with:
key: "licenses:{{vendor}}:{{tool_name}}"
consumes:
- type: http
namespace: redis
baseUri: "https://redis-api.amd.com/v1"
authentication:
type: bearer
token: "$secrets.redis_api_token"
resources:
- name: keys
path: "/get/{{key}}"
inputParameters:
- name: key
in: path
operations:
- name: get-key
method: GET
Triggers an RTL synthesis run on Azure DevOps CI pipeline for a given design block, streams build logs to Datadog, and posts completion status to Microsoft Teams.
naftiko: "0.5"
info:
label: "RTL Synthesis Job Launcher"
description: "Triggers an RTL synthesis run on Azure DevOps CI pipeline for a given design block, streams build logs to Datadog, and posts completion status to Microsoft Teams."
tags:
- chip-design
- synthesis
- azure-devops
- datadog
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: rtl-synthesis
port: 8080
tools:
- name: launch-synthesis
description: "Kick off an RTL synthesis pipeline for a specified design block and PDK target, then notify the design team on completion."
inputParameters:
- name: design_block
in: body
type: string
description: "Name of the RTL design block to synthesize."
- name: pdk_target
in: body
type: string
description: "Process design kit target node (e.g., tsmc5nm, tsmc3nm)."
- name: branch
in: body
type: string
description: "Git branch containing the RTL source."
steps:
- name: trigger-pipeline
type: call
call: "azuredevops.run-pipeline"
with:
project: "amd-rtl-designs"
pipeline_id: "synthesis-flow"
parameters:
design_block: "{{design_block}}"
pdk_target: "{{pdk_target}}"
branch: "{{branch}}"
- name: log-event
type: call
call: "datadog.send-event"
with:
title: "Synthesis launched: {{design_block}}"
text: "Pipeline {{trigger-pipeline.run_id}} started for {{design_block}} on {{pdk_target}}."
tags: "team:rtl,block:{{design_block}}"
- name: notify-team
type: call
call: "msteams.send-message"
with:
channel_id: "rtl-design-alerts"
text: "Synthesis run {{trigger-pipeline.run_id}} launched for {{design_block}} ({{pdk_target}}) on branch {{branch}}."
consumes:
- type: http
namespace: azuredevops
baseUri: "https://dev.azure.com/amd"
authentication:
type: bearer
token: "$secrets.azuredevops_token"
resources:
- name: pipelines
path: "/{{project}}/_apis/pipelines/{{pipeline_id}}/runs"
inputParameters:
- name: project
in: path
- name: pipeline_id
in: path
operations:
- name: run-pipeline
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: send-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
Retrieves a design win opportunity from Salesforce by opportunity ID and returns stage, account, product family, and projected revenue.
naftiko: "0.5"
info:
label: "Salesforce Design Win Tracker"
description: "Retrieves a design win opportunity from Salesforce by opportunity ID and returns stage, account, product family, and projected revenue."
tags:
- sales
- design-win
- salesforce
capability:
exposes:
- type: mcp
namespace: design-wins
port: 8080
tools:
- name: get-design-win
description: "Look up a Salesforce design win opportunity by ID. Returns stage, account name, product family, and projected revenue."
inputParameters:
- name: opportunity_id
in: body
type: string
description: "The Salesforce opportunity ID for the design win."
call: "salesforce.get-opportunity"
with:
opportunity_id: "{{opportunity_id}}"
outputParameters:
- name: stage
type: string
mapping: "$.StageName"
- name: account
type: string
mapping: "$.Account.Name"
- name: product_family
type: string
mapping: "$.Product_Family__c"
- name: projected_revenue
type: string
mapping: "$.Amount"
consumes:
- type: http
namespace: salesforce
baseUri: "https://amd.my.salesforce.com/services/data/v59.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 travel expense report from SAP Concur by report ID, returning total amount, approval status, and line item summary for engineering travel.
naftiko: "0.5"
info:
label: "SAP Concur Travel Expense Report"
description: "Retrieves a travel expense report from SAP Concur by report ID, returning total amount, approval status, and line item summary for engineering travel."
tags:
- finance
- travel
- sap-concur
capability:
exposes:
- type: mcp
namespace: travel-expenses
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: "Concur expense report ID."
call: "concur.get-report"
with:
report_id: "{{report_id}}"
outputParameters:
- name: total_amount
type: number
mapping: "$.Total"
- name: approval_status
type: string
mapping: "$.ApprovalStatusName"
- name: currency
type: string
mapping: "$.CurrencyCode"
consumes:
- type: http
namespace: concur
baseUri: "https://us.api.concursolutions.com/api/v3.0"
authentication:
type: bearer
token: "$secrets.concur_token"
resources:
- name: reports
path: "/expense/reports/{{report_id}}"
inputParameters:
- name: report_id
in: path
operations:
- name: get-report
method: GET
Detects security incidents, enriches with context, creates response tickets, and notifies the SOC.
naftiko: "0.5"
info:
label: "Security Incident Response Pipeline"
description: "Detects security incidents, enriches with context, creates response tickets, and notifies the SOC."
tags:
- security
- splunk
- servicenow
- pagerduty
capability:
exposes:
- type: mcp
namespace: security
port: 8080
tools:
- name: security_incident_response_pipeline
description: "Orchestrate security incident response pipeline workflow."
inputParameters:
- name: resource_id
in: body
type: string
description: "Primary resource identifier."
steps:
- name: get-splunk
type: call
call: "splunk.get-resource"
with:
resource_id: "{{resource_id}}"
- name: process-servicenow
type: call
call: "servicenow.process-resource"
with:
data: "{{get-splunk.result}}"
- name: create-pagerduty
type: call
call: "pagerduty.create-resource"
with:
channel: "{{notification_channel}}"
text: "Security Incident Response Pipeline step 3 complete."
consumes:
- type: http
namespace: splunk
baseUri: "https://amd-splunk.com/services"
authentication:
type: bearer
token: "$secrets.splunk_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: splunk-op
method: POST
- type: http
namespace: servicenow
baseUri: "https://amd.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: servicenow-op
method: POST
- type: http
namespace: pagerduty
baseUri: "https://api.pagerduty.com"
authentication:
type: bearer
token: "$secrets.pagerduty_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: pagerduty-op
method: POST
Creates a ServiceNow change request for scheduled fab tool maintenance, attaches the maintenance plan from Confluence, and notifies the fab ops team on Microsoft Teams.
naftiko: "0.5"
info:
label: "ServiceNow Fab Tool Maintenance Change"
description: "Creates a ServiceNow change request for scheduled fab tool maintenance, attaches the maintenance plan from Confluence, and notifies the fab ops team on Microsoft Teams."
tags:
- manufacturing
- maintenance
- servicenow
- confluence
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: fab-maintenance
port: 8080
tools:
- name: create-maintenance-change
description: "Create a ServiceNow change request for fab tool maintenance with Confluence attachment and Teams notification."
inputParameters:
- name: tool_id
in: body
type: string
description: "Fab tool equipment identifier."
- name: description
in: body
type: string
description: "Description of the maintenance activity."
- name: start_time
in: body
type: string
description: "Planned maintenance start in ISO 8601."
- name: end_time
in: body
type: string
description: "Planned maintenance end in ISO 8601."
- name: confluence_page_id
in: body
type: string
description: "Confluence page ID for the maintenance plan."
steps:
- name: get-plan
type: call
call: "confluence.get-page"
with:
page_id: "{{confluence_page_id}}"
- name: create-change
type: call
call: "servicenow.create-change"
with:
short_description: "Fab tool maintenance: {{tool_id}}"
description: "{{description}}. Maintenance plan: {{get-plan.title}} — {{get-plan._links.webui}}"
start_date: "{{start_time}}"
end_date: "{{end_time}}"
category: "fab_equipment"
type: "standard"
- name: notify-ops
type: call
call: "msteams.send-message"
with:
channel_id: "fab-operations"
text: "Maintenance change {{create-change.number}} created for tool {{tool_id}}. Window: {{start_time}} to {{end_time}}."
consumes:
- type: http
namespace: confluence
baseUri: "https://amd.atlassian.net/wiki/rest/api"
authentication:
type: basic
username: "$secrets.confluence_user"
password: "$secrets.confluence_api_token"
resources:
- name: content
path: "/content/{{page_id}}"
inputParameters:
- name: page_id
in: path
operations:
- name: get-page
method: GET
- type: http
namespace: servicenow
baseUri: "https://amd.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: changes
path: "/table/change_request"
operations:
- name: create-change
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
Monitors service levels, detects SLA breaches, creates escalation tickets, and reports to management.
naftiko: "0.5"
info:
label: "SLA Compliance Monitoring Pipeline"
description: "Monitors service levels, detects SLA breaches, creates escalation tickets, and reports to management."
tags:
- operations
- datadog
- servicenow
- powerbi
capability:
exposes:
- type: mcp
namespace: operations
port: 8080
tools:
- name: sla_compliance_monitoring_pipeline
description: "Orchestrate sla compliance monitoring pipeline workflow."
inputParameters:
- name: resource_id
in: body
type: string
description: "Primary resource identifier."
steps:
- name: get-datadog
type: call
call: "datadog.get-resource"
with:
resource_id: "{{resource_id}}"
- name: process-servicenow
type: call
call: "servicenow.process-resource"
with:
data: "{{get-datadog.result}}"
- name: create-powerbi
type: call
call: "powerbi.create-resource"
with:
channel: "{{notification_channel}}"
text: "SLA Compliance Monitoring Pipeline step 3 complete."
consumes:
- type: http
namespace: datadog
baseUri: "https://api.datadoghq.com/api/v1"
authentication:
type: apiKey
key: "$secrets.datadog_api_key"
header: "DD-API-KEY"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: datadog-op
method: POST
- type: http
namespace: servicenow
baseUri: "https://amd.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: servicenow-op
method: POST
- type: http
namespace: powerbi
baseUri: "https://api.powerbi.com/v1.0/myorg"
authentication:
type: bearer
token: "$secrets.powerbi_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: powerbi-op
method: POST
Executes a Snowflake SQL query against the silicon telemetry warehouse and returns structured results for post-silicon validation analysis.
naftiko: "0.5"
info:
label: "Snowflake Silicon Telemetry Query"
description: "Executes a Snowflake SQL query against the silicon telemetry warehouse and returns structured results for post-silicon validation analysis."
tags:
- analytics
- telemetry
- snowflake
- post-silicon
capability:
exposes:
- type: mcp
namespace: silicon-telemetry
port: 8080
tools:
- name: query-telemetry
description: "Run a SQL query against the Snowflake silicon telemetry data warehouse."
inputParameters:
- name: sql_statement
in: body
type: string
description: "SQL SELECT statement to execute."
- name: warehouse
in: body
type: string
description: "Snowflake warehouse to use (e.g., TELEMETRY_WH)."
steps:
- name: run-query
type: call
call: "snowflake.execute-statement"
with:
statement: "{{sql_statement}}"
warehouse: "{{warehouse}}"
database: "SILICON_TELEMETRY"
- name: log-query
type: call
call: "datadog.send-event"
with:
title: "Telemetry query executed"
text: "Snowflake query on {{warehouse}} returned {{run-query.rowCount}} rows."
tags: "data:snowflake,warehouse:{{warehouse}}"
consumes:
- type: http
namespace: snowflake
baseUri: "https://amd.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: statements
path: "/statements"
operations:
- name: execute-statement
method: POST
- type: http
namespace: datadog
baseUri: "https://api.datadoghq.com/api/v1"
authentication:
type: apiKey
key: "$secrets.datadog_api_key"
resources:
- name: events
path: "/events"
operations:
- name: send-event
method: POST
Audits license usage, identifies underutilized licenses, recommends optimization, and notifies IT.
naftiko: "0.5"
info:
label: "Software License Optimization Pipeline"
description: "Audits license usage, identifies underutilized licenses, recommends optimization, and notifies IT."
tags:
- operations
- servicenow
- snowflake
- slack
capability:
exposes:
- type: mcp
namespace: operations
port: 8080
tools:
- name: software_license_optimization
description: "Orchestrate software license optimization pipeline workflow."
inputParameters:
- name: resource_id
in: body
type: string
description: "Primary resource identifier."
steps:
- name: get-servicenow
type: call
call: "servicenow.get-resource"
with:
resource_id: "{{resource_id}}"
- name: process-snowflake
type: call
call: "snowflake.process-resource"
with:
data: "{{get-servicenow.result}}"
- name: create-slack
type: call
call: "slack.create-resource"
with:
channel: "{{notification_channel}}"
text: "Software License Optimization Pipeline step 3 complete."
consumes:
- type: http
namespace: servicenow
baseUri: "https://amd.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: servicenow-op
method: POST
- type: http
namespace: snowflake
baseUri: "https://amd.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: snowflake-op
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: slack-op
method: POST
Searches Splunk for security events related to EDA license server access and returns recent anomalous activity logs.
naftiko: "0.5"
info:
label: "Splunk Security Event Query"
description: "Searches Splunk for security events related to EDA license server access and returns recent anomalous activity logs."
tags:
- security
- monitoring
- splunk
capability:
exposes:
- type: mcp
namespace: security-monitoring
port: 8080
tools:
- name: search-security-events
description: "Search Splunk for security events on EDA license servers."
inputParameters:
- name: search_query
in: body
type: string
description: "Splunk SPL search query."
- name: earliest_time
in: body
type: string
description: "Earliest time boundary (e.g., -24h)."
steps:
- name: create-search
type: call
call: "splunk.create-search"
with:
search: "{{search_query}}"
earliest_time: "{{earliest_time}}"
latest_time: "now"
- name: notify-security
type: call
call: "msteams.send-message"
with:
channel_id: "security-ops"
text: "Splunk security search completed. Job ID: {{create-search.sid}}. Query: {{search_query}}."
consumes:
- type: http
namespace: splunk
baseUri: "https://splunk.amd.com:8089/services"
authentication:
type: bearer
token: "$secrets.splunk_token"
resources:
- name: searches
path: "/search/jobs"
operations:
- name: create-search
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
Tracks component lead times, identifies delays, escalates critical shortages, and updates procurement.
naftiko: "0.5"
info:
label: "Supply Chain Lead Time Monitor Pipeline"
description: "Tracks component lead times, identifies delays, escalates critical shortages, and updates procurement."
tags:
- logistics
- servicenow
- salesforce
- slack
capability:
exposes:
- type: mcp
namespace: logistics
port: 8080
tools:
- name: supply_chain_lead_time_monitor
description: "Orchestrate supply chain lead time monitor pipeline workflow."
inputParameters:
- name: resource_id
in: body
type: string
description: "Primary resource identifier."
steps:
- name: get-servicenow
type: call
call: "servicenow.get-resource"
with:
resource_id: "{{resource_id}}"
- name: process-salesforce
type: call
call: "salesforce.process-resource"
with:
data: "{{get-servicenow.result}}"
- name: create-slack
type: call
call: "slack.create-resource"
with:
channel: "{{notification_channel}}"
text: "Supply Chain Lead Time Monitor Pipeline step 3 complete."
consumes:
- type: http
namespace: servicenow
baseUri: "https://amd.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: servicenow-op
method: POST
- type: http
namespace: salesforce
baseUri: "https://amd.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: salesforce-op
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: slack-op
method: POST
When a supplier risk score changes in SAP Ariba, evaluates the impact on open purchase orders in SAP S/4HANA, logs a ServiceNow incident, and alerts the supply chain team on Microsoft Teams.
naftiko: "0.5"
info:
label: "Supply Chain Risk Alert Pipeline"
description: "When a supplier risk score changes in SAP Ariba, evaluates the impact on open purchase orders in SAP S/4HANA, logs a ServiceNow incident, and alerts the supply chain team on Microsoft Teams."
tags:
- supply-chain
- risk-management
- sap-ariba
- sap-s4hana
- servicenow
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: supply-risk
port: 8080
tools:
- name: assess-supplier-risk
description: "Evaluate a supplier risk event from SAP Ariba, check affected POs, create an incident, and notify the supply chain team."
inputParameters:
- name: supplier_id
in: body
type: string
description: "SAP Ariba supplier identifier."
- name: risk_score
in: body
type: number
description: "New risk score from Ariba risk assessment."
steps:
- name: get-supplier
type: call
call: "ariba.get-supplier-profile"
with:
supplier_id: "{{supplier_id}}"
- name: get-open-pos
type: call
call: "sap.list-purchase-orders"
with:
supplier: "{{supplier_id}}"
status: "open"
- name: create-incident
type: call
call: "servicenow.create-incident"
with:
short_description: "Supplier risk alert: {{get-supplier.supplier_name}} score {{risk_score}}"
category: "supply_chain_risk"
urgency: "high"
description: "Supplier {{get-supplier.supplier_name}} risk score changed to {{risk_score}}. Affected open POs: {{get-open-pos.count}}."
- name: notify-team
type: call
call: "msteams.send-message"
with:
channel_id: "supply-chain-alerts"
text: "Supplier {{get-supplier.supplier_name}} risk score: {{risk_score}}. {{get-open-pos.count}} open POs affected. Incident: {{create-incident.number}}."
consumes:
- type: http
namespace: ariba
baseUri: "https://openapi.ariba.com/api/supplier-management/v1"
authentication:
type: bearer
token: "$secrets.ariba_token"
resources:
- name: suppliers
path: "/suppliers/{{supplier_id}}"
inputParameters:
- name: supplier_id
in: path
operations:
- name: get-supplier-profile
method: GET
- type: http
namespace: sap
baseUri: "https://amd-s4.sap.com/sap/opu/odata/sap/MM_PUR_PO_MAINT_V2_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: purchase-orders
path: "/A_PurchaseOrder"
operations:
- name: list-purchase-orders
method: GET
- type: http
namespace: servicenow
baseUri: "https://amd.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 a Terraform Cloud run to provision or update EDA compute infrastructure, waits for plan approval, and notifies the infra team via Microsoft Teams.
naftiko: "0.5"
info:
label: "Terraform Infrastructure Provisioner"
description: "Triggers a Terraform Cloud run to provision or update EDA compute infrastructure, waits for plan approval, and notifies the infra team via Microsoft Teams."
tags:
- infrastructure
- iac
- terraform
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: infra-provisioning
port: 8080
tools:
- name: provision-eda-infra
description: "Trigger a Terraform Cloud workspace run for EDA infrastructure and notify the team."
inputParameters:
- name: workspace_id
in: body
type: string
description: "Terraform Cloud workspace ID."
- name: message
in: body
type: string
description: "Run message describing the change."
steps:
- name: create-run
type: call
call: "terraform.create-run"
with:
workspace_id: "{{workspace_id}}"
message: "{{message}}"
- name: notify-infra
type: call
call: "msteams.send-message"
with:
channel_id: "infra-ops"
text: "Terraform run {{create-run.run_id}} created for workspace {{workspace_id}}: {{message}}. Awaiting plan approval."
consumes:
- type: http
namespace: terraform
baseUri: "https://app.terraform.io/api/v2"
authentication:
type: bearer
token: "$secrets.terraform_token"
resources:
- name: runs
path: "/runs"
operations:
- name: create-run
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
Monitors integration endpoints, detects failures, creates support tickets, and notifies integration team.
naftiko: "0.5"
info:
label: "Third-Party Integration Health Pipeline"
description: "Monitors integration endpoints, detects failures, creates support tickets, and notifies integration team."
tags:
- integrations
- datadog
- servicenow
- slack
capability:
exposes:
- type: mcp
namespace: integrations
port: 8080
tools:
- name: third_party_integration_health_pipeline
description: "Orchestrate third-party integration health pipeline workflow."
inputParameters:
- name: resource_id
in: body
type: string
description: "Primary resource identifier."
steps:
- name: get-datadog
type: call
call: "datadog.get-resource"
with:
resource_id: "{{resource_id}}"
- name: process-servicenow
type: call
call: "servicenow.process-resource"
with:
data: "{{get-datadog.result}}"
- name: create-slack
type: call
call: "slack.create-resource"
with:
channel: "{{notification_channel}}"
text: "Third-Party Integration Health Pipeline step 3 complete."
consumes:
- type: http
namespace: datadog
baseUri: "https://api.datadoghq.com/api/v1"
authentication:
type: apiKey
key: "$secrets.datadog_api_key"
header: "DD-API-KEY"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: datadog-op
method: POST
- type: http
namespace: servicenow
baseUri: "https://amd.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: servicenow-op
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: slack-op
method: POST
Tracks mandatory training completion, sends reminders, escalates non-compliance, and reports status.
naftiko: "0.5"
info:
label: "Training Compliance Tracker Pipeline"
description: "Tracks mandatory training completion, sends reminders, escalates non-compliance, and reports status."
tags:
- compliance
- workday
- servicenow
- slack
capability:
exposes:
- type: mcp
namespace: compliance
port: 8080
tools:
- name: training_compliance_tracker_pipeline
description: "Orchestrate training compliance tracker pipeline workflow."
inputParameters:
- name: resource_id
in: body
type: string
description: "Primary resource identifier."
steps:
- name: get-workday
type: call
call: "workday.get-resource"
with:
resource_id: "{{resource_id}}"
- name: process-servicenow
type: call
call: "servicenow.process-resource"
with:
data: "{{get-workday.result}}"
- name: create-slack
type: call
call: "slack.create-resource"
with:
channel: "{{notification_channel}}"
text: "Training Compliance Tracker Pipeline step 3 complete."
consumes:
- type: http
namespace: workday
baseUri: "https://wd5-impl-services1.workday.com/ccx/api/v1/amd"
authentication:
type: bearer
token: "$secrets.workday_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: workday-op
method: POST
- type: http
namespace: servicenow
baseUri: "https://amd.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: servicenow-op
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: slack-op
method: POST
Rotates an EDA tool service account credential stored in HashiCorp Vault and updates the corresponding Kubernetes secret.
naftiko: "0.5"
info:
label: "Vault Secret Rotation for EDA Credentials"
description: "Rotates an EDA tool service account credential stored in HashiCorp Vault and updates the corresponding Kubernetes secret."
tags:
- security
- secrets-management
- hashicorp-vault
- kubernetes
capability:
exposes:
- type: mcp
namespace: secret-rotation
port: 8080
tools:
- name: rotate-eda-credential
description: "Rotate an EDA service account credential in Vault and sync to Kubernetes."
inputParameters:
- name: secret_path
in: body
type: string
description: "Vault secret path."
- name: k8s_namespace
in: body
type: string
description: "Kubernetes namespace for the secret."
- name: k8s_secret_name
in: body
type: string
description: "Kubernetes secret name to update."
steps:
- name: rotate-secret
type: call
call: "vault.rotate-credentials"
with:
path: "{{secret_path}}"
- name: update-k8s-secret
type: call
call: "kubernetes.patch-secret"
with:
namespace: "{{k8s_namespace}}"
secret_name: "{{k8s_secret_name}}"
data:
password: "{{rotate-secret.new_password}}"
consumes:
- type: http
namespace: vault
baseUri: "https://vault.amd.com/v1"
authentication:
type: bearer
token: "$secrets.vault_token"
resources:
- name: secrets
path: "/{{path}}"
inputParameters:
- name: path
in: path
operations:
- name: rotate-credentials
method: POST
- type: http
namespace: kubernetes
baseUri: "https://k8s-api.amd.com/api/v1"
authentication:
type: bearer
token: "$secrets.k8s_token"
resources:
- name: secrets
path: "/namespaces/{{namespace}}/secrets/{{secret_name}}"
inputParameters:
- name: namespace
in: path
- name: secret_name
in: path
operations:
- name: patch-secret
method: PATCH
Evaluates vendor security posture, scores risk, creates assessment records, and notifies procurement.
naftiko: "0.5"
info:
label: "Vendor Risk Assessment Pipeline"
description: "Evaluates vendor security posture, scores risk, creates assessment records, and notifies procurement."
tags:
- procurement
- servicenow
- confluence
- slack
capability:
exposes:
- type: mcp
namespace: procurement
port: 8080
tools:
- name: vendor_risk_assessment_pipeline
description: "Orchestrate vendor risk assessment pipeline workflow."
inputParameters:
- name: resource_id
in: body
type: string
description: "Primary resource identifier."
steps:
- name: get-servicenow
type: call
call: "servicenow.get-resource"
with:
resource_id: "{{resource_id}}"
- name: process-confluence
type: call
call: "confluence.process-resource"
with:
data: "{{get-servicenow.result}}"
- name: create-slack
type: call
call: "slack.create-resource"
with:
channel: "{{notification_channel}}"
text: "Vendor Risk Assessment Pipeline step 3 complete."
consumes:
- type: http
namespace: servicenow
baseUri: "https://amd.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: servicenow-op
method: POST
- type: http
namespace: confluence
baseUri: "https://amd.atlassian.net/wiki/rest/api"
authentication:
type: basic
username: "$secrets.confluence_user"
password: "$secrets.confluence_api_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: confluence-op
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: resources
path: "/resources/{{resource_id}}"
operations:
- name: slack-op
method: POST
Provisions a new VMware vSphere virtual machine for an EDA workstation, configures GPU passthrough, and registers it in ServiceNow CMDB.
naftiko: "0.5"
info:
label: "VMware vSphere EDA VM Provisioner"
description: "Provisions a new VMware vSphere virtual machine for an EDA workstation, configures GPU passthrough, and registers it in ServiceNow CMDB."
tags:
- infrastructure
- eda
- vmware
- servicenow
capability:
exposes:
- type: mcp
namespace: eda-vms
port: 8080
tools:
- name: provision-eda-vm
description: "Provision a VMware vSphere VM with GPU passthrough for EDA workloads and register in CMDB."
inputParameters:
- name: vm_name
in: body
type: string
description: "Name for the new VM."
- name: template
in: body
type: string
description: "VM template name."
- name: gpu_count
in: body
type: integer
description: "Number of GPUs to assign."
- name: owner_email
in: body
type: string
description: "Email of the VM owner."
steps:
- name: create-vm
type: call
call: "vsphere.clone-vm"
with:
template: "{{template}}"
name: "{{vm_name}}"
gpu_passthrough: "{{gpu_count}}"
folder: "EDA-Workstations"
- name: register-cmdb
type: call
call: "servicenow.create-ci"
with:
name: "{{vm_name}}"
sys_class_name: "cmdb_ci_vmware_instance"
assigned_to: "{{owner_email}}"
ip_address: "{{create-vm.ip_address}}"
consumes:
- type: http
namespace: vsphere
baseUri: "https://vcenter.amd.com/api/vcenter"
authentication:
type: bearer
token: "$secrets.vsphere_token"
resources:
- name: vms
path: "/vm"
operations:
- name: clone-vm
method: POST
- type: http
namespace: servicenow
baseUri: "https://amd.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: cmdb
path: "/table/cmdb_ci_vmware_instance"
operations:
- name: create-ci
method: POST
Retrieves wafer lot tracking information from SAP S/4HANA manufacturing execution and returns lot status, current fab step, and estimated completion.
naftiko: "0.5"
info:
label: "Wafer Lot Status Lookup"
description: "Retrieves wafer lot tracking information from SAP S/4HANA manufacturing execution and returns lot status, current fab step, and estimated completion."
tags:
- manufacturing
- wafer-tracking
- sap
- sap-s4hana
capability:
exposes:
- type: mcp
namespace: fab-tracking
port: 8080
tools:
- name: get-wafer-lot
description: "Look up a wafer lot by lot ID in SAP manufacturing execution. Returns current fab step, status, and ETA."
inputParameters:
- name: lot_id
in: body
type: string
description: "The wafer lot identifier."
call: "sap.get-production-order"
with:
lot_id: "{{lot_id}}"
outputParameters:
- name: status
type: string
mapping: "$.d.OrderStatus"
- name: current_step
type: string
mapping: "$.d.CurrentOperation"
- name: eta
type: string
mapping: "$.d.PlannedEndDate"
consumes:
- type: http
namespace: sap
baseUri: "https://amd-s4.sap.com/sap/opu/odata/sap/PP_MFG_ORDER_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
inputParameters:
- name: Accept
in: header
value: "application/json"
- name: sap-client
in: header
value: "200"
resources:
- name: production-orders
path: "/A_ProductionOrder('{{lot_id}}')"
inputParameters:
- name: lot_id
in: path
operations:
- name: get-production-order
method: GET
Retrieves headcount data for an engineering organization from Workday, then queries open job requisitions in Workday Recruiting, and posts a summary to Microsoft Teams for workforce planning.
naftiko: "0.5"
info:
label: "Workday Headcount and Hiring Pipeline"
description: "Retrieves headcount data for an engineering organization from Workday, then queries open job requisitions in Workday Recruiting, and posts a summary to Microsoft Teams for workforce planning."
tags:
- hr
- workforce-planning
- workday
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: hr-analytics
port: 8080
tools:
- name: get-org-workforce-summary
description: "Retrieve headcount and open requisition metrics for an engineering org and notify the team."
inputParameters:
- name: org_id
in: body
type: string
description: "Workday supervisory organization ID."
steps:
- name: get-headcount
type: call
call: "workday.get-org-headcount"
with:
org_id: "{{org_id}}"
- name: get-open-reqs
type: call
call: "workday.get-open-requisitions"
with:
org_id: "{{org_id}}"
- name: post-summary
type: call
call: "msteams.send-message"
with:
channel_id: "engineering-workforce"
text: "Org {{org_id}} workforce: {{get-headcount.total_workers}} headcount, {{get-open-reqs.count}} open reqs, attrition {{get-headcount.attrition_rate}}%."
consumes:
- type: http
namespace: workday
baseUri: "https://wd2-impl-services1.workday.com/ccx/api/v1/amd"
authentication:
type: bearer
token: "$secrets.workday_token"
resources:
- name: org-headcount
path: "/organizations/{{org_id}}/headcount"
inputParameters:
- name: org_id
in: path
operations:
- name: get-org-headcount
method: GET
- name: requisitions
path: "/organizations/{{org_id}}/requisitions"
inputParameters:
- name: org_id
in: path
operations:
- name: get-open-requisitions
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
Creates a Zendesk support ticket for a technology partner issue, tagging it with partner tier and product family for SLA routing.
naftiko: "0.5"
info:
label: "Zendesk Partner Support Ticket Creator"
description: "Creates a Zendesk support ticket for a technology partner issue, tagging it with partner tier and product family for SLA routing."
tags:
- partner-ecosystem
- support
- zendesk
capability:
exposes:
- type: mcp
namespace: partner-support
port: 8080
tools:
- name: create-partner-ticket
description: "Create a Zendesk ticket for a technology partner support request."
inputParameters:
- name: partner_name
in: body
type: string
description: "Partner company name."
- name: subject
in: body
type: string
description: "Ticket subject."
- name: description
in: body
type: string
description: "Issue description."
- name: partner_tier
in: body
type: string
description: "Partner tier (platinum, gold, silver)."
- name: product_family
in: body
type: string
description: "AMD product family affected."
call: "zendesk.create-ticket"
with:
subject: "{{subject}}"
description: "{{description}}"
requester_name: "{{partner_name}}"
tags: "partner,{{partner_tier}},{{product_family}}"
priority: "high"
consumes:
- type: http
namespace: zendesk
baseUri: "https://amd.zendesk.com/api/v2"
authentication:
type: basic
username: "$secrets.zendesk_user"
password: "$secrets.zendesk_token"
resources:
- name: tickets
path: "/tickets"
operations:
- name: create-ticket
method: POST
Creates a Zoom meeting for a chip design review, invites attendees from Workday org data, and creates a linked Jira ticket to track action items.
naftiko: "0.5"
info:
label: "Zoom Design Review Meeting Scheduler"
description: "Creates a Zoom meeting for a chip design review, invites attendees from Workday org data, and creates a linked Jira ticket to track action items."
tags:
- collaboration
- design-review
- zoom
- workday
- jira
capability:
exposes:
- type: mcp
namespace: design-reviews
port: 8080
tools:
- name: schedule-design-review
description: "Schedule a Zoom design review meeting, pulling attendees from Workday and creating a Jira tracking ticket."
inputParameters:
- name: topic
in: body
type: string
description: "Meeting topic / design block under review."
- name: org_id
in: body
type: string
description: "Workday org ID for the review team."
- name: scheduled_time
in: body
type: string
description: "Meeting start time in ISO 8601."
- name: duration_minutes
in: body
type: integer
description: "Meeting duration in minutes."
steps:
- name: get-team
type: call
call: "workday.get-org-members"
with:
org_id: "{{org_id}}"
- name: create-meeting
type: call
call: "zoom.create-meeting"
with:
topic: "Design Review: {{topic}}"
start_time: "{{scheduled_time}}"
duration: "{{duration_minutes}}"
invitees: "{{get-team.members}}"
- name: create-tracker
type: call
call: "jira.create-issue"
with:
project: "DREV"
issuetype: "Task"
summary: "Action items: {{topic}} design review"
description: "Zoom link: {{create-meeting.join_url}}. Attendees: {{get-team.count}} team members."
consumes:
- type: http
namespace: workday
baseUri: "https://wd2-impl-services1.workday.com/ccx/api/v1/amd"
authentication:
type: bearer
token: "$secrets.workday_token"
resources:
- name: org-members
path: "/organizations/{{org_id}}/members"
inputParameters:
- name: org_id
in: path
operations:
- name: get-org-members
method: GET
- 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: jira
baseUri: "https://amd.atlassian.net/rest/api/3"
authentication:
type: basic
username: "$secrets.jira_user"
password: "$secrets.jira_api_token"
resources:
- name: issues
path: "/issue"
operations:
- name: create-issue
method: POST