TSMC Capabilities
Naftiko 0.5 capability definitions for TSMC - 100 capabilities showing integration workflows and service orchestrations.
Retrieves the technology roadmap timeline from the customer portal for upcoming process nodes and capabilities.
naftiko: "0.5"
info:
label: "Advanced Node Technology Roadmap"
description: "Retrieves the technology roadmap timeline from the customer portal for upcoming process nodes and capabilities."
tags:
- customer-portal
- roadmap
- technology
- planning
capability:
exposes:
- type: mcp
namespace: tech-roadmap
port: 8080
tools:
- name: get-technology-roadmap
description: "Fetch technology roadmap for upcoming nodes."
inputParameters:
- name: customer_id
in: body
type: string
description: "The customer ID for NDA-gated content."
call: "customer-portal.get-roadmap"
with:
customer: "{{customer_id}}"
consumes:
- type: http
namespace: customer-portal
baseUri: "https://portal.tsmc.com/api/v1"
authentication:
type: bearer
token: "$secrets.portal_token"
resources:
- name: roadmap
path: "/technology/roadmap?customer={{customer}}"
inputParameters:
- name: customer
in: path
operations:
- name: get-roadmap
method: GET
Manages annual compliance certifications by distributing attestations, tracking completion, and filing results.
naftiko: "0.5"
info:
label: "Annual Compliance Certification Orchestrator"
description: "Manages annual compliance certifications by distributing attestations, tracking completion, and filing results."
tags:
- compliance
- hr
- legal
capability:
exposes:
- type: mcp
namespace: compliance
port: 8080
tools:
- name: run-annual-compliance-certification-orchestrator
description: "Manages annual compliance certifications by distributing attestations, tracking completion, and filing results."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Annual Compliance Certification Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.tsmc.com/v1"
authentication:
type: bearer
token: "$secrets.tsmc_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.tsmc.com/v2"
authentication:
type: bearer
token: "$secrets.tsmc_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Manages API lifecycle by versioning, deprecating old endpoints, notifying consumers, and updating documentation.
naftiko: "0.5"
info:
label: "API Lifecycle Management Orchestrator"
description: "Manages API lifecycle by versioning, deprecating old endpoints, notifying consumers, and updating documentation."
tags:
- engineering
- api
- operations
capability:
exposes:
- type: mcp
namespace: engineering
port: 8080
tools:
- name: run-api-lifecycle-management-orchestrator
description: "Manages API lifecycle by versioning, deprecating old endpoints, notifying consumers, and updating documentation."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed API Lifecycle Management Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.tsmc.com/v1"
authentication:
type: bearer
token: "$secrets.tsmc_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.tsmc.com/v2"
authentication:
type: bearer
token: "$secrets.tsmc_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Retrieves the latest build status for an Azure DevOps pipeline.
naftiko: "0.5"
info:
label: "Azure DevOps Build Status"
description: "Retrieves the latest build status for an Azure DevOps pipeline."
tags:
- development
- azure-devops
- ci-cd
capability:
exposes:
- type: mcp
namespace: devops-builds
port: 8080
tools:
- name: get-build-status
description: "Fetch latest build status for an Azure DevOps pipeline."
inputParameters:
- name: pipeline_id
in: body
type: string
description: "The Azure DevOps pipeline ID."
call: "azdo.get-latest-build"
with:
pipeline_id: "{{pipeline_id}}"
consumes:
- type: http
namespace: azdo
baseUri: "https://dev.azure.com/tsmc"
authentication:
type: basic
username: ""
password: "$secrets.azure_devops_pat"
resources:
- name: builds
path: "/_apis/build/builds?definitions={{pipeline_id}}&$top=1&api-version=7.0"
inputParameters:
- name: pipeline_id
in: path
operations:
- name: get-latest-build
method: GET
When fab chemical inventory falls below reorder point, creates a purchase requisition in SAP, routes for approval via Microsoft Power Automate, and notifies procurement via Teams.
naftiko: "0.5"
info:
label: "Chemical Supplier Order Pipeline"
description: "When fab chemical inventory falls below reorder point, creates a purchase requisition in SAP, routes for approval via Microsoft Power Automate, and notifies procurement via Teams."
tags:
- supply-chain
- procurement
- sap
- microsoft-power-automate
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: chemical-procurement
port: 8080
tools:
- name: reorder-chemicals
description: "Create purchase requisition for chemicals, route for approval, and notify procurement."
inputParameters:
- name: material_number
in: body
type: string
description: "The SAP material number for the chemical."
- name: fab_code
in: body
type: string
description: "The fab plant code."
- name: quantity
in: body
type: string
description: "Quantity to order."
steps:
- name: create-requisition
type: call
call: "sap.create-purchase-req"
with:
material: "{{material_number}}"
plant: "{{fab_code}}"
quantity: "{{quantity}}"
- name: route-approval
type: call
call: "power-automate.trigger-flow"
with:
flow_id: "chemical_purchase_approval"
requisition_id: "{{create-requisition.req_number}}"
material: "{{material_number}}"
quantity: "{{quantity}}"
- name: notify-procurement
type: call
call: "msteams.post-channel-message"
with:
channel_id: "fab_procurement"
text: "Chemical reorder: {{material_number}} ({{quantity}} units) for Fab {{fab_code}}. Requisition: {{create-requisition.req_number}}. Approval status: {{route-approval.status}}."
consumes:
- type: http
namespace: sap
baseUri: "https://tsmc.sap.com/sap/opu/odata/sap/ZMM_PURCHASE_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: purchase-requisitions
path: "/PurchaseRequisitionSet"
operations:
- name: create-purchase-req
method: POST
- type: http
namespace: power-automate
baseUri: "https://prod-01.westus.logic.azure.com/workflows"
authentication:
type: bearer
token: "$secrets.power_automate_token"
resources:
- name: flows
path: "/{{flow_id}}/triggers/manual/paths/invoke"
inputParameters:
- name: flow_id
in: path
operations:
- name: trigger-flow
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: post-channel-message
method: POST
Fetches cleanroom environmental data from the facility monitoring system including particle count, temperature, humidity, and air pressure differential.
naftiko: "0.5"
info:
label: "Cleanroom Environmental Monitor"
description: "Fetches cleanroom environmental data from the facility monitoring system including particle count, temperature, humidity, and air pressure differential."
tags:
- chip-fabrication
- cleanroom
- monitoring
- environmental
capability:
exposes:
- type: mcp
namespace: cleanroom-monitoring
port: 8080
tools:
- name: get-cleanroom-environment
description: "Retrieve cleanroom environmental readings for a fab zone."
inputParameters:
- name: fab_code
in: body
type: string
description: "The fab facility code."
- name: zone_id
in: body
type: string
description: "The cleanroom zone identifier."
call: "facility-monitor.get-environment"
with:
fab: "{{fab_code}}"
zone: "{{zone_id}}"
consumes:
- type: http
namespace: facility-monitor
baseUri: "https://facilities.tsmc.com/api/v1"
authentication:
type: bearer
token: "$secrets.facility_token"
resources:
- name: environment
path: "/fabs/{{fab}}/zones/{{zone}}/environment"
inputParameters:
- name: fab
in: path
- name: zone
in: path
operations:
- name: get-environment
method: GET
Searches Confluence for articles matching a query string.
naftiko: "0.5"
info:
label: "Confluence Knowledge Base Search"
description: "Searches Confluence for articles matching a query string."
tags:
- knowledge-management
- confluence
- search
capability:
exposes:
- type: mcp
namespace: knowledge-base
port: 8080
tools:
- name: search-confluence
description: "Search Confluence knowledge base for matching articles."
inputParameters:
- name: query
in: body
type: string
description: "The search query."
call: "confluence.search"
with:
query: "{{query}}"
consumes:
- type: http
namespace: confluence
baseUri: "https://tsmc.atlassian.net/wiki/rest/api"
authentication:
type: basic
username: "$secrets.confluence_user"
password: "$secrets.confluence_api_token"
resources:
- name: search
path: "/search?cql=text~\"{{query}}\""
inputParameters:
- name: query
in: path
operations:
- name: search
method: GET
Retrieves a Confluence wiki page.
naftiko: "0.5"
info:
label: "Confluence Page Viewer"
description: "Retrieves a Confluence wiki page."
tags:
- collaboration
- confluence
capability:
exposes:
- type: mcp
namespace: collaboration
port: 8080
tools:
- name: get-confluence
description: "Retrieves a Confluence wiki page."
inputParameters:
- name: entity_id
in: body
type: string
description: "The confluence page viewer identifier."
call: "collaboration-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: collaboration-api
baseUri: "https://api.tsmc.com/collaboration/v1"
authentication:
type: bearer
token: "$secrets.tsmc_api_token"
resources:
- name: confluence
path: "/confluence/page/viewer/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-confluence
method: GET
Kicks off cross-functional projects by creating workspaces, scheduling meetings, and distributing project charters.
naftiko: "0.5"
info:
label: "Cross-Functional Project Kickoff Orchestrator"
description: "Kicks off cross-functional projects by creating workspaces, scheduling meetings, and distributing project charters."
tags:
- project-management
- collaboration
- operations
capability:
exposes:
- type: mcp
namespace: project-management
port: 8080
tools:
- name: run-cross-functional-project-kickoff-orchestrator
description: "Kicks off cross-functional projects by creating workspaces, scheduling meetings, and distributing project charters."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Cross-Functional Project Kickoff Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.tsmc.com/v1"
authentication:
type: bearer
token: "$secrets.tsmc_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.tsmc.com/v2"
authentication:
type: bearer
token: "$secrets.tsmc_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Handles customer data privacy requests by locating records, processing deletions, and confirming compliance.
naftiko: "0.5"
info:
label: "Customer Data Privacy Request Handler"
description: "Handles customer data privacy requests by locating records, processing deletions, and confirming compliance."
tags:
- compliance
- privacy
- customer-service
capability:
exposes:
- type: mcp
namespace: compliance
port: 8080
tools:
- name: run-customer-data-privacy-request-handler
description: "Handles customer data privacy requests by locating records, processing deletions, and confirming compliance."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Customer Data Privacy Request Handler for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.tsmc.com/v1"
authentication:
type: bearer
token: "$secrets.tsmc_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.tsmc.com/v2"
authentication:
type: bearer
token: "$secrets.tsmc_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Accepts a design file reference from the customer portal, runs DRC validation, creates a Jira ticket with results, and notifies the customer engineer via Microsoft Teams.
naftiko: "0.5"
info:
label: "Customer Design Rule Check Pipeline"
description: "Accepts a design file reference from the customer portal, runs DRC validation, creates a Jira ticket with results, and notifies the customer engineer via Microsoft Teams."
tags:
- customer-portal
- design-validation
- drc
- jira
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: design-validation
port: 8080
tools:
- name: run-drc-validation
description: "Run design rule check and notify customer with results."
inputParameters:
- name: design_id
in: body
type: string
description: "The design file reference ID."
- name: tech_node
in: body
type: string
description: "The technology node."
- name: customer_contact_upn
in: body
type: string
description: "Customer engineer email for notification."
steps:
- name: run-drc
type: call
call: "customer-portal.submit-drc"
with:
design_id: "{{design_id}}"
node: "{{tech_node}}"
- name: create-ticket
type: call
call: "jira.create-issue"
with:
project: "DRC"
summary: "DRC results: {{design_id}} ({{tech_node}})"
description: "Violations: {{run-drc.violation_count}}. Warnings: {{run-drc.warning_count}}. Status: {{run-drc.overall_status}}."
issue_type: "Task"
- name: notify-customer
type: call
call: "msteams.send-message"
with:
recipient_upn: "{{customer_contact_upn}}"
text: "DRC complete for design {{design_id}} ({{tech_node}}): Status: {{run-drc.overall_status}}. Violations: {{run-drc.violation_count}}. Jira: {{create-ticket.key}}"
consumes:
- type: http
namespace: customer-portal
baseUri: "https://portal.tsmc.com/api/v1"
authentication:
type: bearer
token: "$secrets.portal_token"
resources:
- name: drc
path: "/designs/{{design_id}}/drc"
inputParameters:
- name: design_id
in: path
operations:
- name: submit-drc
method: POST
- type: http
namespace: jira
baseUri: "https://tsmc.atlassian.net/rest/api/3"
authentication:
type: basic
username: "$secrets.jira_user"
password: "$secrets.jira_api_token"
resources:
- name: issues
path: "/issue"
operations:
- name: create-issue
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/users/{{recipient_upn}}/sendMail"
inputParameters:
- name: recipient_upn
in: path
operations:
- name: send-message
method: POST
Maps customer journeys by aggregating touchpoint data, identifying friction points, and generating improvement recommendations.
naftiko: "0.5"
info:
label: "Customer Journey Mapping Orchestrator"
description: "Maps customer journeys by aggregating touchpoint data, identifying friction points, and generating improvement recommendations."
tags:
- customer-experience
- analytics
- product-management
capability:
exposes:
- type: mcp
namespace: customer-experience
port: 8080
tools:
- name: run-customer-journey-mapping-orchestrator
description: "Maps customer journeys by aggregating touchpoint data, identifying friction points, and generating improvement recommendations."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Customer Journey Mapping Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.tsmc.com/v1"
authentication:
type: bearer
token: "$secrets.tsmc_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.tsmc.com/v2"
authentication:
type: bearer
token: "$secrets.tsmc_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Retrieves a customer fabrication order from SAP by order number and returns current status, wafer-out forecast, and shipping schedule.
naftiko: "0.5"
info:
label: "Customer Order Status Portal"
description: "Retrieves a customer fabrication order from SAP by order number and returns current status, wafer-out forecast, and shipping schedule."
tags:
- customer-portal
- order-tracking
- sap
- supply-chain
capability:
exposes:
- type: mcp
namespace: customer-orders
port: 8080
tools:
- name: get-customer-order
description: "Look up a customer fabrication order from SAP."
inputParameters:
- name: order_number
in: body
type: string
description: "The SAP fabrication order number."
call: "sap.get-fab-order"
with:
order_number: "{{order_number}}"
consumes:
- type: http
namespace: sap
baseUri: "https://tsmc.sap.com/sap/opu/odata/sap/ZSD_FAB_ORDER_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: fab-orders
path: "/FabOrderSet('{{order_number}}')"
inputParameters:
- name: order_number
in: path
operations:
- name: get-fab-order
method: GET
Provisions access to a process design kit (PDK) for a customer engineer via the customer portal and logs the access grant in ServiceNow.
naftiko: "0.5"
info:
label: "Customer Portal Design Kit Access"
description: "Provisions access to a process design kit (PDK) for a customer engineer via the customer portal and logs the access grant in ServiceNow."
tags:
- customer-portal
- design-kit
- access-management
- servicenow
capability:
exposes:
- type: mcp
namespace: customer-design
port: 8080
tools:
- name: grant-pdk-access
description: "Provision PDK access for a customer engineer and log in ServiceNow."
inputParameters:
- name: customer_id
in: body
type: string
description: "The customer account identifier."
- name: engineer_email
in: body
type: string
description: "The customer engineer's email."
- name: pdk_version
in: body
type: string
description: "The PDK version to grant access to."
steps:
- name: provision-access
type: call
call: "customer-portal.grant-access"
with:
customer_id: "{{customer_id}}"
email: "{{engineer_email}}"
pdk: "{{pdk_version}}"
- name: log-access
type: call
call: "servicenow.create-record"
with:
table: "u_pdk_access_log"
customer: "{{customer_id}}"
engineer: "{{engineer_email}}"
pdk_version: "{{pdk_version}}"
status: "{{provision-access.status}}"
consumes:
- type: http
namespace: customer-portal
baseUri: "https://portal.tsmc.com/api/v1"
authentication:
type: bearer
token: "$secrets.portal_token"
resources:
- name: access
path: "/pdk/access"
operations:
- name: grant-access
method: POST
- type: http
namespace: servicenow
baseUri: "https://tsmc.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: records
path: "/table/{{table}}"
inputParameters:
- name: table
in: path
operations:
- name: create-record
method: POST
Pulls customer order history from SAP, yield metrics from MES, and account data from Salesforce to generate a QBR package uploaded to SharePoint and shared via Microsoft Teams.
naftiko: "0.5"
info:
label: "Customer Quarterly Business Review Generator"
description: "Pulls customer order history from SAP, yield metrics from MES, and account data from Salesforce to generate a QBR package uploaded to SharePoint and shared via Microsoft Teams."
tags:
- customer-portal
- reporting
- sap
- salesforce
- sharepoint
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: customer-qbr
port: 8080
tools:
- name: generate-qbr
description: "Generate a customer quarterly business review across SAP, MES, Salesforce, SharePoint, and Teams."
inputParameters:
- name: customer_id
in: body
type: string
description: "The customer account ID."
- name: quarter
in: body
type: string
description: "The quarter (e.g., 2026-Q1)."
- name: customer_contact_upn
in: body
type: string
description: "Customer contact email."
steps:
- name: get-order-history
type: call
call: "sap.get-customer-orders"
with:
customer: "{{customer_id}}"
quarter: "{{quarter}}"
- name: get-yield-summary
type: call
call: "mes.get-customer-yield"
with:
customer: "{{customer_id}}"
quarter: "{{quarter}}"
- name: get-account-data
type: call
call: "salesforce.get-account"
with:
account_id: "{{customer_id}}"
- name: upload-qbr
type: call
call: "sharepoint.upload-file"
with:
site_id: "customer_qbr"
file_path: "QBR/{{customer_id}}/{{quarter}}_qbr.pptx"
content: "{{get-order-history.summary}}"
- name: notify-customer
type: call
call: "msteams.send-message"
with:
recipient_upn: "{{customer_contact_upn}}"
text: "Your TSMC QBR for {{quarter}} is ready: {{upload-qbr.url}}. Wafers shipped: {{get-order-history.total_wafers}}. Avg yield: {{get-yield-summary.avg_yield}}%."
consumes:
- type: http
namespace: sap
baseUri: "https://tsmc.sap.com/sap/opu/odata/sap/ZSD_CUSTOMER_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: customer-orders
path: "/CustomerOrderSet?$filter=Customer eq '{{customer}}' and Quarter eq '{{quarter}}'"
inputParameters:
- name: customer
in: path
- name: quarter
in: path
operations:
- name: get-customer-orders
method: GET
- type: http
namespace: mes
baseUri: "https://mes.tsmc.com/api/v2"
authentication:
type: bearer
token: "$secrets.mes_token"
resources:
- name: customer-yield
path: "/yield/customer/{{customer}}?quarter={{quarter}}"
inputParameters:
- name: customer
in: path
- name: quarter
in: path
operations:
- name: get-customer-yield
method: GET
- type: http
namespace: salesforce
baseUri: "https://tsmc.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: accounts
path: "/sobjects/Account/{{account_id}}"
inputParameters:
- name: account_id
in: path
operations:
- name: get-account
method: GET
- type: http
namespace: sharepoint
baseUri: "https://graph.microsoft.com/v1.0/sites"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: files
path: "/{{site_id}}/drive/root:/{{file_path}}:/content"
inputParameters:
- name: site_id
in: path
- name: file_path
in: path
operations:
- name: upload-file
method: PUT
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/users/{{recipient_upn}}/sendMail"
inputParameters:
- name: recipient_upn
in: path
operations:
- name: send-message
method: POST
Tracks the status of a customer tape-out through the customer portal, returning design sign-off status, mask order status, and first silicon ETA.
naftiko: "0.5"
info:
label: "Customer Tape-Out Tracker"
description: "Tracks the status of a customer tape-out through the customer portal, returning design sign-off status, mask order status, and first silicon ETA."
tags:
- customer-portal
- tape-out
- design-validation
- manufacturing
capability:
exposes:
- type: mcp
namespace: tape-out-tracking
port: 8080
tools:
- name: get-tape-out-status
description: "Track customer tape-out progress through design, mask, and fab stages."
inputParameters:
- name: tape_out_id
in: body
type: string
description: "The tape-out reference ID."
call: "customer-portal.get-tape-out"
with:
tape_out_id: "{{tape_out_id}}"
consumes:
- type: http
namespace: customer-portal
baseUri: "https://portal.tsmc.com/api/v1"
authentication:
type: bearer
token: "$secrets.portal_token"
resources:
- name: tape-outs
path: "/tape-outs/{{tape_out_id}}"
inputParameters:
- name: tape_out_id
in: path
operations:
- name: get-tape-out
method: GET
Reviews data governance compliance by auditing access controls, classifying data, and generating compliance reports.
naftiko: "0.5"
info:
label: "Data Governance Review Orchestrator"
description: "Reviews data governance compliance by auditing access controls, classifying data, and generating compliance reports."
tags:
- data-governance
- compliance
- analytics
capability:
exposes:
- type: mcp
namespace: data-governance
port: 8080
tools:
- name: run-data-governance-review-orchestrator
description: "Reviews data governance compliance by auditing access controls, classifying data, and generating compliance reports."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Data Governance Review Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.tsmc.com/v1"
authentication:
type: bearer
token: "$secrets.tsmc_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.tsmc.com/v2"
authentication:
type: bearer
token: "$secrets.tsmc_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Queries Datadog for fab infrastructure health metrics including server CPU, network latency, and storage utilization.
naftiko: "0.5"
info:
label: "Datadog Fab Infrastructure Monitor"
description: "Queries Datadog for fab infrastructure health metrics including server CPU, network latency, and storage utilization."
tags:
- monitoring
- datadog
- infrastructure
capability:
exposes:
- type: mcp
namespace: infra-monitoring
port: 8080
tools:
- name: get-infra-health
description: "Fetch fab infrastructure health metrics from Datadog."
inputParameters:
- name: fab_code
in: body
type: string
description: "The fab facility code."
call: "datadog.get-infra-metrics"
with:
fab: "{{fab_code}}"
consumes:
- type: http
namespace: datadog
baseUri: "https://api.datadoghq.com/api/v1"
authentication:
type: apiKey
key: "$secrets.datadog_api_key"
headerName: "DD-API-KEY"
resources:
- name: metrics
path: "/query?query=avg:system.cpu.user{fab:{{fab}}}"
inputParameters:
- name: fab
in: path
operations:
- name: get-infra-metrics
method: GET
Retrieves defect classification data from the inspection system for a wafer lot, returning defect types, counts, locations, and kill ratios.
naftiko: "0.5"
info:
label: "Defect Classification Report"
description: "Retrieves defect classification data from the inspection system for a wafer lot, returning defect types, counts, locations, and kill ratios."
tags:
- yield
- defect-analysis
- quality
- inspection
capability:
exposes:
- type: mcp
namespace: defect-analysis
port: 8080
tools:
- name: get-defect-report
description: "Fetch defect classification data for a wafer lot."
inputParameters:
- name: lot_id
in: body
type: string
description: "The wafer lot identifier."
call: "inspection.get-defects"
with:
lot_id: "{{lot_id}}"
consumes:
- type: http
namespace: inspection
baseUri: "https://inspection.tsmc.com/api/v1"
authentication:
type: bearer
token: "$secrets.inspection_token"
resources:
- name: defects
path: "/lots/{{lot_id}}/defects"
inputParameters:
- name: lot_id
in: path
operations:
- name: get-defects
method: GET
Retrieves die sort yield data by lot number.
naftiko: "0.5"
info:
label: "Die Sort Yield Lookup"
description: "Retrieves die sort yield data by lot number."
tags:
- manufacturing
- quality
capability:
exposes:
- type: mcp
namespace: manufacturing
port: 8080
tools:
- name: get-die
description: "Retrieves die sort yield data by lot number."
inputParameters:
- name: entity_id
in: body
type: string
description: "The die sort yield lookup identifier."
call: "manufacturing-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: manufacturing-api
baseUri: "https://api.tsmc.com/manufacturing/v1"
authentication:
type: bearer
token: "$secrets.tsmc_api_token"
resources:
- name: die
path: "/die/sort/yield/lookup/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-die
method: GET
Tracks digital transformation progress by aggregating initiative metrics, reporting milestones, and alerting on risks.
naftiko: "0.5"
info:
label: "Digital Transformation Progress Orchestrator"
description: "Tracks digital transformation progress by aggregating initiative metrics, reporting milestones, and alerting on risks."
tags:
- strategy
- analytics
- project-management
capability:
exposes:
- type: mcp
namespace: strategy
port: 8080
tools:
- name: run-digital-transformation-progress-orchestrator
description: "Tracks digital transformation progress by aggregating initiative metrics, reporting milestones, and alerting on risks."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Digital Transformation Progress Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.tsmc.com/v1"
authentication:
type: bearer
token: "$secrets.tsmc_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.tsmc.com/v2"
authentication:
type: bearer
token: "$secrets.tsmc_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Executes disaster recovery tests by failing over systems, validating recovery, and documenting results.
naftiko: "0.5"
info:
label: "Disaster Recovery Test Orchestrator"
description: "Executes disaster recovery tests by failing over systems, validating recovery, and documenting results."
tags:
- infrastructure
- operations
- compliance
capability:
exposes:
- type: mcp
namespace: infrastructure
port: 8080
tools:
- name: run-disaster-recovery-test-orchestrator
description: "Executes disaster recovery tests by failing over systems, validating recovery, and documenting results."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Disaster Recovery Test Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.tsmc.com/v1"
authentication:
type: bearer
token: "$secrets.tsmc_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.tsmc.com/v2"
authentication:
type: bearer
token: "$secrets.tsmc_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Sends an NDA for e-signature via DocuSign and updates the Salesforce customer record.
naftiko: "0.5"
info:
label: "DocuSign Customer NDA Executor"
description: "Sends an NDA for e-signature via DocuSign and updates the Salesforce customer record."
tags:
- legal
- docusign
- salesforce
- contracts
capability:
exposes:
- type: mcp
namespace: contract-management
port: 8080
tools:
- name: send-nda-for-signature
description: "Send NDA via DocuSign and update Salesforce."
inputParameters:
- name: customer_id
in: body
type: string
description: "The Salesforce customer account ID."
- name: signer_email
in: body
type: string
description: "The signer's email."
- name: signer_name
in: body
type: string
description: "The signer's name."
steps:
- name: get-customer
type: call
call: "salesforce.get-account"
with:
account_id: "{{customer_id}}"
- name: send-envelope
type: call
call: "docusign.create-envelope"
with:
document_url: "{{get-customer.nda_template_url}}"
signer_email: "{{signer_email}}"
signer_name: "{{signer_name}}"
- name: update-customer
type: call
call: "salesforce.update-account"
with:
account_id: "{{customer_id}}"
nda_status: "Sent for Signature"
consumes:
- type: http
namespace: salesforce
baseUri: "https://tsmc.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: accounts
path: "/sobjects/Account/{{account_id}}"
inputParameters:
- name: account_id
in: path
operations:
- name: get-account
method: GET
- name: update-account
method: PATCH
- 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
Processes employee offboarding by revoking access, returning equipment, and conducting exit interviews.
naftiko: "0.5"
info:
label: "Employee Offboarding Orchestrator"
description: "Processes employee offboarding by revoking access, returning equipment, and conducting exit interviews."
tags:
- hr
- identity
- operations
capability:
exposes:
- type: mcp
namespace: hr
port: 8080
tools:
- name: run-employee-offboarding-orchestrator
description: "Processes employee offboarding by revoking access, returning equipment, and conducting exit interviews."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Employee Offboarding Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.tsmc.com/v1"
authentication:
type: bearer
token: "$secrets.tsmc_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.tsmc.com/v2"
authentication:
type: bearer
token: "$secrets.tsmc_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
On new hire creation in Workday, opens a ServiceNow onboarding ticket, provisions a SharePoint folder, and sends a Microsoft Teams welcome message.
naftiko: "0.5"
info:
label: "Employee Onboarding Orchestrator"
description: "On new hire creation in Workday, opens a ServiceNow onboarding ticket, provisions a SharePoint folder, and sends a Microsoft Teams welcome message."
tags:
- hr
- onboarding
- workday
- servicenow
- sharepoint
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: hr-onboarding
port: 8080
tools:
- name: trigger-onboarding
description: "Orchestrate new hire onboarding across ServiceNow, SharePoint, and Microsoft Teams."
inputParameters:
- name: workday_employee_id
in: body
type: string
description: "The Workday worker ID."
- name: start_date
in: body
type: string
description: "Start date in YYYY-MM-DD format."
- name: department
in: body
type: string
description: "The department."
steps:
- name: get-employee
type: call
call: "workday.get-worker"
with:
worker_id: "{{workday_employee_id}}"
- name: open-ticket
type: call
call: "servicenow.create-incident"
with:
short_description: "New hire onboarding: {{get-employee.full_name}}"
category: "hr_onboarding"
assigned_group: "IT_Onboarding"
description: "Onboarding for {{get-employee.full_name}} starting {{start_date}} in {{department}}."
- name: provision-folder
type: call
call: "sharepoint.create-folder"
with:
site_id: "hr_onboarding_site"
folder_path: "OnboardingDocs/{{get-employee.full_name}}_{{start_date}}"
- name: send-welcome
type: call
call: "msteams.send-message"
with:
recipient_upn: "{{get-employee.work_email}}"
text: "Welcome to TSMC, {{get-employee.first_name}}! Your onboarding ticket is {{open-ticket.number}}. Documents are at {{provision-folder.url}}."
consumes:
- type: http
namespace: workday
baseUri: "https://wd2-impl-services1.workday.com/ccx/api/v1"
authentication:
type: bearer
token: "$secrets.workday_token"
resources:
- name: workers
path: "/workers/{{worker_id}}"
inputParameters:
- name: worker_id
in: path
operations:
- name: get-worker
method: GET
- type: http
namespace: servicenow
baseUri: "https://tsmc.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: incidents
path: "/table/incident"
operations:
- name: create-incident
method: POST
- type: http
namespace: sharepoint
baseUri: "https://graph.microsoft.com/v1.0/sites"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: drive-items
path: "/{{site_id}}/drive/root:/{{folder_path}}"
inputParameters:
- name: site_id
in: path
- name: folder_path
in: path
operations:
- name: create-folder
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/users/{{recipient_upn}}/sendMail"
inputParameters:
- name: recipient_upn
in: path
operations:
- name: send-message
method: POST
Retrieves process parameters for an etch step.
naftiko: "0.5"
info:
label: "Etch Process Parameter Lookup"
description: "Retrieves process parameters for an etch step."
tags:
- manufacturing
- process-control
capability:
exposes:
- type: mcp
namespace: manufacturing
port: 8080
tools:
- name: get-etch
description: "Retrieves process parameters for an etch step."
inputParameters:
- name: entity_id
in: body
type: string
description: "The etch process parameter lookup identifier."
call: "manufacturing-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: manufacturing-api
baseUri: "https://api.tsmc.com/manufacturing/v1"
authentication:
type: bearer
token: "$secrets.tsmc_api_token"
resources:
- name: etch
path: "/etch/process/parameter/lookup/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-etch
method: GET
Refreshes executive dashboards by pulling data from multiple sources, transforming metrics, and updating Power BI.
naftiko: "0.5"
info:
label: "Executive Dashboard Refresh Orchestrator"
description: "Refreshes executive dashboards by pulling data from multiple sources, transforming metrics, and updating Power BI."
tags:
- analytics
- power-bi
- business
capability:
exposes:
- type: mcp
namespace: analytics
port: 8080
tools:
- name: run-executive-dashboard-refresh-orchestrator
description: "Refreshes executive dashboards by pulling data from multiple sources, transforming metrics, and updating Power BI."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Executive Dashboard Refresh Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.tsmc.com/v1"
authentication:
type: bearer
token: "$secrets.tsmc_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.tsmc.com/v2"
authentication:
type: bearer
token: "$secrets.tsmc_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Retrieves fab capacity utilization metrics from SAP including wafer starts, moves, and tool utilization percentages by technology node.
naftiko: "0.5"
info:
label: "Fab Capacity Utilization Report"
description: "Retrieves fab capacity utilization metrics from SAP including wafer starts, moves, and tool utilization percentages by technology node."
tags:
- chip-fabrication
- capacity
- sap
- reporting
capability:
exposes:
- type: mcp
namespace: fab-capacity
port: 8080
tools:
- name: get-capacity-utilization
description: "Fetch fab capacity utilization data from SAP."
inputParameters:
- name: fab_code
in: body
type: string
description: "The fab facility code."
- name: tech_node
in: body
type: string
description: "The technology node to filter on (or ALL)."
call: "sap.get-utilization"
with:
fab: "{{fab_code}}"
node: "{{tech_node}}"
consumes:
- type: http
namespace: sap
baseUri: "https://tsmc.sap.com/sap/opu/odata/sap/ZPP_CAPACITY_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: utilization
path: "/CapacityUtilizationSet?$filter=Fab eq '{{fab}}' and TechNode eq '{{node}}'"
inputParameters:
- name: fab
in: path
- name: node
in: path
operations:
- name: get-utilization
method: GET
Retrieves energy consumption data for a fab facility from the building management system, returning electricity, water, and gas usage for sustainability reporting.
naftiko: "0.5"
info:
label: "Fab Energy Consumption Tracker"
description: "Retrieves energy consumption data for a fab facility from the building management system, returning electricity, water, and gas usage for sustainability reporting."
tags:
- sustainability
- energy
- facilities
- reporting
capability:
exposes:
- type: mcp
namespace: energy-tracking
port: 8080
tools:
- name: get-energy-consumption
description: "Fetch fab energy consumption data for sustainability reporting."
inputParameters:
- name: fab_code
in: body
type: string
description: "The fab facility code."
- name: period
in: body
type: string
description: "The reporting period in YYYY-MM format."
call: "facility-monitor.get-energy"
with:
fab: "{{fab_code}}"
period: "{{period}}"
consumes:
- type: http
namespace: facility-monitor
baseUri: "https://facilities.tsmc.com/api/v1"
authentication:
type: bearer
token: "$secrets.facility_token"
resources:
- name: energy
path: "/fabs/{{fab}}/energy?period={{period}}"
inputParameters:
- name: fab
in: path
- name: period
in: path
operations:
- name: get-energy
method: GET
Queries the equipment monitoring system for a fab tool's health status including uptime, error rate, and maintenance schedule, and creates a ServiceNow incident if degraded.
naftiko: "0.5"
info:
label: "Fab Equipment Health Monitor"
description: "Queries the equipment monitoring system for a fab tool's health status including uptime, error rate, and maintenance schedule, and creates a ServiceNow incident if degraded."
tags:
- chip-fabrication
- equipment
- monitoring
- servicenow
capability:
exposes:
- type: mcp
namespace: equipment-monitoring
port: 8080
tools:
- name: check-tool-health
description: "Monitor fab tool health and create incident if degraded."
inputParameters:
- name: tool_id
in: body
type: string
description: "The fab tool identifier."
- name: fab_id
in: body
type: string
description: "The fab facility identifier."
steps:
- name: get-health
type: call
call: "equipment-mgmt.get-tool-status"
with:
tool_id: "{{tool_id}}"
fab: "{{fab_id}}"
- name: create-incident
type: call
call: "servicenow.create-incident"
with:
short_description: "Tool degradation: {{tool_id}} in Fab {{fab_id}}"
category: "fab_equipment"
priority: "2"
description: "Uptime: {{get-health.uptime_pct}}%. Error rate: {{get-health.error_rate}}. Last maintenance: {{get-health.last_maintenance}}."
consumes:
- type: http
namespace: equipment-mgmt
baseUri: "https://equipment.tsmc.com/api/v1"
authentication:
type: bearer
token: "$secrets.equipment_token"
resources:
- name: tool-status
path: "/fabs/{{fab}}/tools/{{tool_id}}/health"
inputParameters:
- name: fab
in: path
- name: tool_id
in: path
operations:
- name: get-tool-status
method: GET
- type: http
namespace: servicenow
baseUri: "https://tsmc.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
Checks SAP Plant Maintenance for upcoming PM tasks on fab equipment and creates ServiceNow work orders.
naftiko: "0.5"
info:
label: "Fab Preventive Maintenance Scheduler"
description: "Checks SAP Plant Maintenance for upcoming PM tasks on fab equipment and creates ServiceNow work orders."
tags:
- chip-fabrication
- maintenance
- sap
- servicenow
capability:
exposes:
- type: mcp
namespace: fab-maintenance
port: 8080
tools:
- name: schedule-fab-pm
description: "Retrieve upcoming PM tasks from SAP and create ServiceNow work orders."
inputParameters:
- name: fab_code
in: body
type: string
description: "The fab plant code."
- name: days_ahead
in: body
type: string
description: "Days to look ahead."
steps:
- name: get-pm-tasks
type: call
call: "sap.get-pm-schedule"
with:
fab: "{{fab_code}}"
days: "{{days_ahead}}"
- name: create-work-orders
type: call
call: "servicenow.create-record"
with:
table: "wm_order"
short_description: "PM: {{get-pm-tasks.equipment_list}} in Fab {{fab_code}}"
scheduled_date: "{{get-pm-tasks.next_due}}"
consumes:
- type: http
namespace: sap
baseUri: "https://tsmc.sap.com/sap/opu/odata/sap/ZPM_MAINTENANCE_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: pm-schedule
path: "/PMScheduleSet?$filter=Fab eq '{{fab}}' and DaysAhead le {{days}}"
inputParameters:
- name: fab
in: path
- name: days
in: path
operations:
- name: get-pm-schedule
method: GET
- type: http
namespace: servicenow
baseUri: "https://tsmc.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: records
path: "/table/{{table}}"
inputParameters:
- name: table
in: path
operations:
- name: create-record
method: POST
Generates a shift handoff report from the MES summarizing lot movements, tool status changes, and yield events for the outgoing shift and distributes via Microsoft Teams.
naftiko: "0.5"
info:
label: "Fab Shift Handoff Report"
description: "Generates a shift handoff report from the MES summarizing lot movements, tool status changes, and yield events for the outgoing shift and distributes via Microsoft Teams."
tags:
- chip-fabrication
- shift-management
- reporting
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: shift-handoff
port: 8080
tools:
- name: generate-shift-report
description: "Generate fab shift handoff report and distribute via Teams."
inputParameters:
- name: fab_code
in: body
type: string
description: "The fab facility code."
- name: shift_id
in: body
type: string
description: "The shift identifier (e.g., A, B, C)."
- name: date
in: body
type: string
description: "The shift date in YYYY-MM-DD."
steps:
- name: get-shift-data
type: call
call: "mes.get-shift-summary"
with:
fab: "{{fab_code}}"
shift: "{{shift_id}}"
date: "{{date}}"
- name: distribute-report
type: call
call: "msteams.post-channel-message"
with:
channel_id: "fab_{{fab_code}}_ops"
text: "Shift {{shift_id}} handoff ({{date}}): Lots moved: {{get-shift-data.lots_moved}}. Tools down: {{get-shift-data.tools_down}}. Yield events: {{get-shift-data.yield_events}}."
consumes:
- type: http
namespace: mes
baseUri: "https://mes.tsmc.com/api/v2"
authentication:
type: bearer
token: "$secrets.mes_token"
resources:
- name: shift-summary
path: "/fabs/{{fab}}/shifts/{{shift}}/summary?date={{date}}"
inputParameters:
- name: fab
in: path
- name: shift
in: path
- name: date
in: path
operations:
- name: get-shift-summary
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: post-channel-message
method: POST
Retrieves utilization metrics for a fab tool.
naftiko: "0.5"
info:
label: "Fab Tool Utilization Report"
description: "Retrieves utilization metrics for a fab tool."
tags:
- manufacturing
- operations
capability:
exposes:
- type: mcp
namespace: manufacturing
port: 8080
tools:
- name: get-fab
description: "Retrieves utilization metrics for a fab tool."
inputParameters:
- name: entity_id
in: body
type: string
description: "The fab tool utilization report identifier."
call: "manufacturing-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: manufacturing-api
baseUri: "https://api.tsmc.com/manufacturing/v1"
authentication:
type: bearer
token: "$secrets.tsmc_api_token"
resources:
- name: fab
path: "/fab/tool/utilization/report/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-fab
method: GET
Retrieves ultra-pure water usage data for a fab facility from the facility monitoring system for environmental compliance.
naftiko: "0.5"
info:
label: "Fab Water Usage Monitor"
description: "Retrieves ultra-pure water usage data for a fab facility from the facility monitoring system for environmental compliance."
tags:
- sustainability
- water
- facilities
- compliance
capability:
exposes:
- type: mcp
namespace: water-monitoring
port: 8080
tools:
- name: get-water-usage
description: "Fetch ultra-pure water usage data for a fab."
inputParameters:
- name: fab_code
in: body
type: string
description: "The fab facility code."
- name: period
in: body
type: string
description: "Period in YYYY-MM format."
call: "facility-monitor.get-water"
with:
fab: "{{fab_code}}"
period: "{{period}}"
consumes:
- type: http
namespace: facility-monitor
baseUri: "https://facilities.tsmc.com/api/v1"
authentication:
type: bearer
token: "$secrets.facility_token"
resources:
- name: water
path: "/fabs/{{fab}}/water?period={{period}}"
inputParameters:
- name: fab
in: path
- name: period
in: path
operations:
- name: get-water
method: GET
Retrieves a file from Google Drive.
naftiko: "0.5"
info:
label: "Google Drive File Viewer"
description: "Retrieves a file from Google Drive."
tags:
- collaboration
- google-drive
capability:
exposes:
- type: mcp
namespace: collaboration
port: 8080
tools:
- name: get-google
description: "Retrieves a file from Google Drive."
inputParameters:
- name: entity_id
in: body
type: string
description: "The google drive file viewer identifier."
call: "collaboration-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: collaboration-api
baseUri: "https://api.tsmc.com/collaboration/v1"
authentication:
type: bearer
token: "$secrets.tsmc_api_token"
resources:
- name: google
path: "/google/drive/file/viewer/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-google
method: GET
Plans infrastructure capacity by analyzing utilization trends, modeling growth, and generating procurement requests.
naftiko: "0.5"
info:
label: "Infrastructure Capacity Planning Orchestrator"
description: "Plans infrastructure capacity by analyzing utilization trends, modeling growth, and generating procurement requests."
tags:
- infrastructure
- planning
- finance
capability:
exposes:
- type: mcp
namespace: infrastructure
port: 8080
tools:
- name: run-infrastructure-capacity-planning-orchestrator
description: "Plans infrastructure capacity by analyzing utilization trends, modeling growth, and generating procurement requests."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Infrastructure Capacity Planning Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.tsmc.com/v1"
authentication:
type: bearer
token: "$secrets.tsmc_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.tsmc.com/v2"
authentication:
type: bearer
token: "$secrets.tsmc_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Retrieves intellectual property access audit logs from the customer portal for a customer account and date range.
naftiko: "0.5"
info:
label: "IP Security Access Audit"
description: "Retrieves intellectual property access audit logs from the customer portal for a customer account and date range."
tags:
- security
- customer-portal
- audit
- ip-protection
capability:
exposes:
- type: mcp
namespace: ip-security
port: 8080
tools:
- name: get-ip-access-audit
description: "Fetch IP access audit logs for a customer."
inputParameters:
- name: customer_id
in: body
type: string
description: "The customer account ID."
- name: start_date
in: body
type: string
description: "Audit start date in YYYY-MM-DD."
- name: end_date
in: body
type: string
description: "Audit end date in YYYY-MM-DD."
call: "customer-portal.get-access-logs"
with:
customer: "{{customer_id}}"
start: "{{start_date}}"
end: "{{end_date}}"
consumes:
- type: http
namespace: customer-portal
baseUri: "https://portal.tsmc.com/api/v1"
authentication:
type: bearer
token: "$secrets.portal_token"
resources:
- name: access-logs
path: "/customers/{{customer}}/access-logs?from={{start}}&to={{end}}"
inputParameters:
- name: customer
in: path
- name: start
in: path
- name: end
in: path
operations:
- name: get-access-logs
method: GET
Manages IT changes by reviewing requests, scheduling implementation windows, and notifying affected teams.
naftiko: "0.5"
info:
label: "IT Change Management Orchestrator"
description: "Manages IT changes by reviewing requests, scheduling implementation windows, and notifying affected teams."
tags:
- it
- servicenow
- operations
capability:
exposes:
- type: mcp
namespace: it
port: 8080
tools:
- name: run-it-change-management-orchestrator
description: "Manages IT changes by reviewing requests, scheduling implementation windows, and notifying affected teams."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed IT Change Management Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.tsmc.com/v1"
authentication:
type: bearer
token: "$secrets.tsmc_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.tsmc.com/v2"
authentication:
type: bearer
token: "$secrets.tsmc_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Retrieves the current sprint and its issues for a Jira project board.
naftiko: "0.5"
info:
label: "Jira Sprint Board Viewer"
description: "Retrieves the current sprint and its issues for a Jira project board."
tags:
- development
- jira
- agile
capability:
exposes:
- type: mcp
namespace: dev-ops
port: 8080
tools:
- name: get-current-sprint
description: "Fetch current sprint details for a Jira board."
inputParameters:
- name: board_id
in: body
type: string
description: "The Jira board ID."
call: "jira.get-sprint"
with:
board_id: "{{board_id}}"
consumes:
- type: http
namespace: jira
baseUri: "https://tsmc.atlassian.net/rest/agile/1.0"
authentication:
type: basic
username: "$secrets.jira_user"
password: "$secrets.jira_api_token"
resources:
- name: sprints
path: "/board/{{board_id}}/sprint?state=active"
inputParameters:
- name: board_id
in: path
operations:
- name: get-sprint
method: GET
Retrieves a Jira ticket by issue key.
naftiko: "0.5"
info:
label: "Jira Ticket Viewer"
description: "Retrieves a Jira ticket by issue key."
tags:
- engineering
- jira
capability:
exposes:
- type: mcp
namespace: engineering
port: 8080
tools:
- name: get-jira
description: "Retrieves a Jira ticket by issue key."
inputParameters:
- name: entity_id
in: body
type: string
description: "The jira ticket viewer identifier."
call: "engineering-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: engineering-api
baseUri: "https://api.tsmc.com/engineering/v1"
authentication:
type: bearer
token: "$secrets.tsmc_api_token"
resources:
- name: jira
path: "/jira/ticket/viewer/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-jira
method: GET
Refreshes the knowledge base by identifying outdated articles, routing for review, and publishing updates.
naftiko: "0.5"
info:
label: "Knowledge Base Refresh Orchestrator"
description: "Refreshes the knowledge base by identifying outdated articles, routing for review, and publishing updates."
tags:
- knowledge-management
- collaboration
- operations
capability:
exposes:
- type: mcp
namespace: knowledge-management
port: 8080
tools:
- name: run-knowledge-base-refresh-orchestrator
description: "Refreshes the knowledge base by identifying outdated articles, routing for review, and publishing updates."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Knowledge Base Refresh Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.tsmc.com/v1"
authentication:
type: bearer
token: "$secrets.tsmc_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.tsmc.com/v2"
authentication:
type: bearer
token: "$secrets.tsmc_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Fetches a job requisition from Workday and publishes it to LinkedIn.
naftiko: "0.5"
info:
label: "LinkedIn Job Posting Publisher"
description: "Fetches a job requisition from Workday and publishes it to LinkedIn."
tags:
- hr
- recruiting
- workday
- linkedin
capability:
exposes:
- type: mcp
namespace: talent-acquisition
port: 8080
tools:
- name: publish-job-to-linkedin
description: "Fetch a Workday job requisition and publish to LinkedIn."
inputParameters:
- name: requisition_id
in: body
type: string
description: "The Workday job requisition ID."
steps:
- name: get-requisition
type: call
call: "workday.get-requisition"
with:
requisition_id: "{{requisition_id}}"
- name: publish-posting
type: call
call: "linkedin.create-job-posting"
with:
title: "{{get-requisition.title}}"
description: "{{get-requisition.description}}"
location: "{{get-requisition.location}}"
consumes:
- type: http
namespace: workday
baseUri: "https://wd2-impl-services1.workday.com/ccx/api/v1"
authentication:
type: bearer
token: "$secrets.workday_token"
resources:
- name: requisitions
path: "/jobRequisitions/{{requisition_id}}"
inputParameters:
- name: requisition_id
in: path
operations:
- name: get-requisition
method: GET
- type: http
namespace: linkedin
baseUri: "https://api.linkedin.com/v2"
authentication:
type: bearer
token: "$secrets.linkedin_token"
resources:
- name: job-postings
path: "/simpleJobPostings"
operations:
- name: create-job-posting
method: POST
Retrieves calibration status and history for EUV lithography tools from the equipment management system.
naftiko: "0.5"
info:
label: "Lithography Tool Calibration Tracker"
description: "Retrieves calibration status and history for EUV lithography tools from the equipment management system."
tags:
- chip-fabrication
- lithography
- calibration
- equipment
capability:
exposes:
- type: mcp
namespace: litho-calibration
port: 8080
tools:
- name: get-litho-calibration
description: "Fetch lithography tool calibration status."
inputParameters:
- name: tool_id
in: body
type: string
description: "The lithography tool ID."
call: "equipment-mgmt.get-calibration"
with:
tool_id: "{{tool_id}}"
consumes:
- type: http
namespace: equipment-mgmt
baseUri: "https://equipment.tsmc.com/api/v1"
authentication:
type: bearer
token: "$secrets.equipment_token"
resources:
- name: calibration
path: "/tools/{{tool_id}}/calibration"
inputParameters:
- name: tool_id
in: path
operations:
- name: get-calibration
method: GET
Traces the full genealogy of a wafer lot through the MES, returning parent lots, split/merge history, and process routing.
naftiko: "0.5"
info:
label: "Lot Genealogy Tracker"
description: "Traces the full genealogy of a wafer lot through the MES, returning parent lots, split/merge history, and process routing."
tags:
- chip-fabrication
- traceability
- manufacturing
- quality
capability:
exposes:
- type: mcp
namespace: lot-genealogy
port: 8080
tools:
- name: get-lot-genealogy
description: "Trace full lot genealogy through the MES."
inputParameters:
- name: lot_id
in: body
type: string
description: "The lot identifier."
call: "mes.get-genealogy"
with:
lot_id: "{{lot_id}}"
consumes:
- type: http
namespace: mes
baseUri: "https://mes.tsmc.com/api/v2"
authentication:
type: bearer
token: "$secrets.mes_token"
resources:
- name: genealogy
path: "/lots/{{lot_id}}/genealogy"
inputParameters:
- name: lot_id
in: path
operations:
- name: get-genealogy
method: GET
Evaluates marketing campaign performance by aggregating metrics across channels and generating ROI reports.
naftiko: "0.5"
info:
label: "Marketing Campaign Performance Orchestrator"
description: "Evaluates marketing campaign performance by aggregating metrics across channels and generating ROI reports."
tags:
- marketing
- analytics
- finance
capability:
exposes:
- type: mcp
namespace: marketing
port: 8080
tools:
- name: run-marketing-campaign-performance-orchestrator
description: "Evaluates marketing campaign performance by aggregating metrics across channels and generating ROI reports."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Marketing Campaign Performance Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.tsmc.com/v1"
authentication:
type: bearer
token: "$secrets.tsmc_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.tsmc.com/v2"
authentication:
type: bearer
token: "$secrets.tsmc_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Queries the mask shop management system for a photomask order status including design validation, fabrication progress, and delivery estimate.
naftiko: "0.5"
info:
label: "Mask Shop Order Tracker"
description: "Queries the mask shop management system for a photomask order status including design validation, fabrication progress, and delivery estimate."
tags:
- chip-fabrication
- mask-shop
- photomask
- manufacturing
capability:
exposes:
- type: mcp
namespace: mask-shop
port: 8080
tools:
- name: get-mask-order
description: "Look up a photomask order status."
inputParameters:
- name: mask_order_id
in: body
type: string
description: "The mask order identifier."
call: "mask-shop.get-order"
with:
order_id: "{{mask_order_id}}"
consumes:
- type: http
namespace: mask-shop
baseUri: "https://maskshop.tsmc.com/api/v1"
authentication:
type: bearer
token: "$secrets.maskshop_token"
resources:
- name: orders
path: "/orders/{{order_id}}"
inputParameters:
- name: order_id
in: path
operations:
- name: get-order
method: GET
Sends a formatted email via Microsoft Outlook Graph API.
naftiko: "0.5"
info:
label: "Microsoft Outlook Email Sender"
description: "Sends a formatted email via Microsoft Outlook Graph API."
tags:
- communications
- microsoft-outlook
- email
capability:
exposes:
- type: mcp
namespace: email-comms
port: 8080
tools:
- name: send-outlook-email
description: "Send an email via Microsoft Outlook."
inputParameters:
- name: to_address
in: body
type: string
description: "Recipient email."
- name: subject
in: body
type: string
description: "Email subject."
- name: body_text
in: body
type: string
description: "Email body."
call: "outlook.send-email"
with:
to: "{{to_address}}"
subject: "{{subject}}"
body: "{{body_text}}"
consumes:
- type: http
namespace: outlook
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: mail
path: "/me/sendMail"
operations:
- name: send-email
method: POST
Sends a formatted message to a specified Microsoft Teams channel.
naftiko: "0.5"
info:
label: "Microsoft Teams Channel Notifier"
description: "Sends a formatted message to a specified Microsoft Teams channel."
tags:
- communications
- microsoft-teams
- notifications
capability:
exposes:
- type: mcp
namespace: team-notifications
port: 8080
tools:
- name: send-teams-notification
description: "Post a notification message to a Microsoft Teams channel."
inputParameters:
- name: channel_id
in: body
type: string
description: "The Teams channel ID."
- name: message
in: body
type: string
description: "The message text."
call: "msteams.post-channel-message"
with:
channel_id: "{{channel_id}}"
text: "{{message}}"
consumes:
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{channel_id}}/channels/General/messages"
inputParameters:
- name: channel_id
in: path
operations:
- name: post-channel-message
method: POST
Sends a message to a Microsoft Teams channel.
naftiko: "0.5"
info:
label: "Microsoft Teams Message Sender"
description: "Sends a message to a Microsoft Teams channel."
tags:
- communications
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: communications
port: 8080
tools:
- name: get-microsoft
description: "Sends a message to a Microsoft Teams channel."
inputParameters:
- name: entity_id
in: body
type: string
description: "The microsoft teams message sender identifier."
call: "communications-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: communications-api
baseUri: "https://api.tsmc.com/communications/v1"
authentication:
type: bearer
token: "$secrets.tsmc_api_token"
resources:
- name: microsoft
path: "/microsoft/teams/message/sender/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-microsoft
method: GET
Retrieves packaging and final test status for a customer lot from SAP including package type, test results, and readiness for shipment.
naftiko: "0.5"
info:
label: "Packaging and Test Status"
description: "Retrieves packaging and final test status for a customer lot from SAP including package type, test results, and readiness for shipment."
tags:
- supply-chain
- packaging
- testing
- sap
capability:
exposes:
- type: mcp
namespace: packaging-test
port: 8080
tools:
- name: get-packaging-status
description: "Fetch packaging and test status for a customer lot."
inputParameters:
- name: lot_id
in: body
type: string
description: "The lot identifier."
call: "sap.get-packaging-test"
with:
lot_id: "{{lot_id}}"
consumes:
- type: http
namespace: sap
baseUri: "https://tsmc.sap.com/sap/opu/odata/sap/ZPP_PACKAGING_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: packaging-test
path: "/PackagingTestSet('{{lot_id}}')"
inputParameters:
- name: lot_id
in: path
operations:
- name: get-packaging-test
method: GET
Retrieves overlay measurement data for lithography.
naftiko: "0.5"
info:
label: "Photolithography Overlay Measurement"
description: "Retrieves overlay measurement data for lithography."
tags:
- manufacturing
- metrology
capability:
exposes:
- type: mcp
namespace: manufacturing
port: 8080
tools:
- name: get-photolithography
description: "Retrieves overlay measurement data for lithography."
inputParameters:
- name: entity_id
in: body
type: string
description: "The photolithography overlay measurement identifier."
call: "manufacturing-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: manufacturing-api
baseUri: "https://api.tsmc.com/manufacturing/v1"
authentication:
type: bearer
token: "$secrets.tsmc_api_token"
resources:
- name: photolithography
path: "/photolithography/overlay/measurement/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-photolithography
method: GET
Triggers a Power BI dataset refresh.
naftiko: "0.5"
info:
label: "Power BI Dashboard Refresher"
description: "Triggers a Power BI dataset refresh."
tags:
- analytics
- power-bi
capability:
exposes:
- type: mcp
namespace: analytics
port: 8080
tools:
- name: get-power
description: "Triggers a Power BI dataset refresh."
inputParameters:
- name: entity_id
in: body
type: string
description: "The power bi dashboard refresher identifier."
call: "analytics-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: analytics-api
baseUri: "https://api.tsmc.com/analytics/v1"
authentication:
type: bearer
token: "$secrets.tsmc_api_token"
resources:
- name: power
path: "/power/bi/dashboard/refresher/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-power
method: GET
Triggers a Power BI dataset refresh for fab operations dashboards.
naftiko: "0.5"
info:
label: "Power BI Fab Dashboard Refresh"
description: "Triggers a Power BI dataset refresh for fab operations dashboards."
tags:
- analytics
- power-bi
- reporting
capability:
exposes:
- type: mcp
namespace: bi-refresh
port: 8080
tools:
- name: refresh-fab-dashboard
description: "Trigger a Power BI dataset refresh."
inputParameters:
- name: dataset_id
in: body
type: string
description: "The Power BI dataset ID."
call: "powerbi.refresh-dataset"
with:
dataset_id: "{{dataset_id}}"
consumes:
- type: http
namespace: powerbi
baseUri: "https://api.powerbi.com/v1.0/myorg"
authentication:
type: bearer
token: "$secrets.powerbi_token"
resources:
- name: refreshes
path: "/datasets/{{dataset_id}}/refreshes"
inputParameters:
- name: dataset_id
in: path
operations:
- name: refresh-dataset
method: POST
Retrieves the current process recipe parameters for a technology node and process step from the MES, used by process engineers to review and validate fab settings.
naftiko: "0.5"
info:
label: "Process Recipe Management"
description: "Retrieves the current process recipe parameters for a technology node and process step from the MES, used by process engineers to review and validate fab settings."
tags:
- chip-fabrication
- process-control
- recipe-management
capability:
exposes:
- type: mcp
namespace: recipe-mgmt
port: 8080
tools:
- name: get-process-recipe
description: "Fetch process recipe parameters from MES."
inputParameters:
- name: tech_node
in: body
type: string
description: "The technology node."
- name: process_step
in: body
type: string
description: "The process step."
- name: tool_type
in: body
type: string
description: "The tool type (e.g., ETCH, CVD, LITHO)."
call: "mes.get-recipe"
with:
node: "{{tech_node}}"
step: "{{process_step}}"
tool: "{{tool_type}}"
consumes:
- type: http
namespace: mes
baseUri: "https://mes.tsmc.com/api/v2"
authentication:
type: bearer
token: "$secrets.mes_token"
resources:
- name: recipes
path: "/recipes?node={{node}}&step={{step}}&tool={{tool}}"
inputParameters:
- name: node
in: path
- name: step
in: path
- name: tool
in: path
operations:
- name: get-recipe
method: GET
Analyzes procurement spend by categorizing purchases, identifying savings opportunities, and generating reports.
naftiko: "0.5"
info:
label: "Procurement Spend Analysis Orchestrator"
description: "Analyzes procurement spend by categorizing purchases, identifying savings opportunities, and generating reports."
tags:
- procurement
- analytics
- finance
capability:
exposes:
- type: mcp
namespace: procurement
port: 8080
tools:
- name: run-procurement-spend-analysis-orchestrator
description: "Analyzes procurement spend by categorizing purchases, identifying savings opportunities, and generating reports."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Procurement Spend Analysis Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.tsmc.com/v1"
authentication:
type: bearer
token: "$secrets.tsmc_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.tsmc.com/v2"
authentication:
type: bearer
token: "$secrets.tsmc_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Generates quarterly business reviews by aggregating KPIs from multiple systems, creating presentations, and distributing to stakeholders.
naftiko: "0.5"
info:
label: "Quarterly Business Review Orchestrator"
description: "Generates quarterly business reviews by aggregating KPIs from multiple systems, creating presentations, and distributing to stakeholders."
tags:
- analytics
- business
- sharepoint
capability:
exposes:
- type: mcp
namespace: analytics
port: 8080
tools:
- name: run-quarterly-business-review-orchestrator
description: "Generates quarterly business reviews by aggregating KPIs from multiple systems, creating presentations, and distributing to stakeholders."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Quarterly Business Review Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.tsmc.com/v1"
authentication:
type: bearer
token: "$secrets.tsmc_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.tsmc.com/v2"
authentication:
type: bearer
token: "$secrets.tsmc_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Queries the mask shop system for reticle inventory and usage status by technology node.
naftiko: "0.5"
info:
label: "Reticle Inventory Tracker"
description: "Queries the mask shop system for reticle inventory and usage status by technology node."
tags:
- chip-fabrication
- reticle
- mask-shop
- inventory
capability:
exposes:
- type: mcp
namespace: reticle-inventory
port: 8080
tools:
- name: get-reticle-inventory
description: "Fetch reticle inventory and usage by technology node."
inputParameters:
- name: tech_node
in: body
type: string
description: "The technology node."
call: "mask-shop.get-reticles"
with:
node: "{{tech_node}}"
consumes:
- type: http
namespace: mask-shop
baseUri: "https://maskshop.tsmc.com/api/v1"
authentication:
type: bearer
token: "$secrets.maskshop_token"
resources:
- name: reticles
path: "/reticles?node={{node}}"
inputParameters:
- name: node
in: path
operations:
- name: get-reticles
method: GET
Retrieves a Salesforce account by account ID.
naftiko: "0.5"
info:
label: "Salesforce Account Viewer"
description: "Retrieves a Salesforce account by account ID."
tags:
- sales
- salesforce
capability:
exposes:
- type: mcp
namespace: sales
port: 8080
tools:
- name: get-salesforce
description: "Retrieves a Salesforce account by account ID."
inputParameters:
- name: entity_id
in: body
type: string
description: "The salesforce account viewer identifier."
call: "sales-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: sales-api
baseUri: "https://api.tsmc.com/sales/v1"
authentication:
type: bearer
token: "$secrets.tsmc_api_token"
resources:
- name: salesforce
path: "/salesforce/account/viewer/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-salesforce
method: GET
Retrieves active customer opportunities from Salesforce including pipeline value, technology node, and expected close dates.
naftiko: "0.5"
info:
label: "Salesforce Customer Opportunity Tracker"
description: "Retrieves active customer opportunities from Salesforce including pipeline value, technology node, and expected close dates."
tags:
- sales
- salesforce
- customer-portal
- pipeline
capability:
exposes:
- type: mcp
namespace: sales-pipeline
port: 8080
tools:
- name: get-customer-opportunities
description: "Fetch active customer opportunities from Salesforce."
inputParameters:
- name: customer_account_id
in: body
type: string
description: "The Salesforce customer account ID."
call: "salesforce.get-opportunities"
with:
account_id: "{{customer_account_id}}"
consumes:
- type: http
namespace: salesforce
baseUri: "https://tsmc.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: opportunities
path: "/sobjects/Opportunity?q=AccountId='{{account_id}}' AND IsClosed=false"
inputParameters:
- name: account_id
in: path
operations:
- name: get-opportunities
method: GET
Retrieves material master data from SAP by material number.
naftiko: "0.5"
info:
label: "SAP Material Master Lookup"
description: "Retrieves material master data from SAP by material number."
tags:
- erp
- sap
- materials
- master-data
capability:
exposes:
- type: mcp
namespace: material-master
port: 8080
tools:
- name: get-material
description: "Look up SAP material master data."
inputParameters:
- name: material_number
in: body
type: string
description: "The SAP material number."
call: "sap.get-material"
with:
material_number: "{{material_number}}"
consumes:
- type: http
namespace: sap
baseUri: "https://tsmc.sap.com/sap/opu/odata/sap/API_PRODUCT_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: materials
path: "/A_Product('{{material_number}}')"
inputParameters:
- name: material_number
in: path
operations:
- name: get-material
method: GET
Looks up a SAP purchase order by number and returns status, vendor, total value, and delivery schedule.
naftiko: "0.5"
info:
label: "SAP Purchase Order Status"
description: "Looks up a SAP purchase order by number and returns status, vendor, total value, and delivery schedule."
tags:
- procurement
- sap
- purchase-order
capability:
exposes:
- type: mcp
namespace: procurement
port: 8080
tools:
- name: get-purchase-order
description: "Look up a SAP purchase order by PO number."
inputParameters:
- name: po_number
in: body
type: string
description: "The SAP purchase order number."
call: "sap.get-po"
with:
po_number: "{{po_number}}"
consumes:
- type: http
namespace: sap
baseUri: "https://tsmc.sap.com/sap/opu/odata/sap/MM_PUR_PO_MAINT_V2_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: purchase-orders
path: "/A_PurchaseOrder('{{po_number}}')"
inputParameters:
- name: po_number
in: path
operations:
- name: get-po
method: GET
Conducts security audits by scanning systems, documenting findings in ServiceNow, and tracking remediation.
naftiko: "0.5"
info:
label: "Security Audit Orchestrator"
description: "Conducts security audits by scanning systems, documenting findings in ServiceNow, and tracking remediation."
tags:
- security
- servicenow
- compliance
capability:
exposes:
- type: mcp
namespace: security
port: 8080
tools:
- name: run-security-audit-orchestrator
description: "Conducts security audits by scanning systems, documenting findings in ServiceNow, and tracking remediation."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Security Audit Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.tsmc.com/v1"
authentication:
type: bearer
token: "$secrets.tsmc_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.tsmc.com/v2"
authentication:
type: bearer
token: "$secrets.tsmc_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Orchestrates semiconductor workflow 1 by coordinating across systems, validating data, and sending notifications.
naftiko: "0.5"
info:
label: "Semiconductor Workflow 1"
description: "Orchestrates semiconductor workflow 1 by coordinating across systems, validating data, and sending notifications."
tags:
- semiconductor
- operations
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: semiconductor
port: 8080
tools:
- name: run-semiconductor-workflow-001
description: "Orchestrates semiconductor workflow 1 by coordinating across systems, validating data, and sending notifications."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Semiconductor Workflow 1 for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.tsmc.com/v1"
authentication:
type: bearer
token: "$secrets.tsmc_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.tsmc.com/v2"
authentication:
type: bearer
token: "$secrets.tsmc_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Orchestrates semiconductor workflow 2 by coordinating across systems, validating data, and sending notifications.
naftiko: "0.5"
info:
label: "Semiconductor Workflow 2"
description: "Orchestrates semiconductor workflow 2 by coordinating across systems, validating data, and sending notifications."
tags:
- semiconductor
- operations
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: semiconductor
port: 8080
tools:
- name: run-semiconductor-workflow-002
description: "Orchestrates semiconductor workflow 2 by coordinating across systems, validating data, and sending notifications."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Semiconductor Workflow 2 for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.tsmc.com/v1"
authentication:
type: bearer
token: "$secrets.tsmc_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.tsmc.com/v2"
authentication:
type: bearer
token: "$secrets.tsmc_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Retrieves semiconductor operational data for workflow 3.
naftiko: "0.5"
info:
label: "Semiconductor Data Query 3"
description: "Retrieves semiconductor operational data for workflow 3."
tags:
- semiconductor
- operations
capability:
exposes:
- type: mcp
namespace: semiconductor
port: 8080
tools:
- name: get-data-3
description: "Query semiconductor data for workflow 3."
inputParameters:
- name: entity_id
in: body
type: string
description: "The entity identifier."
call: "semiconductor-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: semiconductor-api
baseUri: "https://api.tsmc.com/semiconductor/v1"
authentication:
type: bearer
token: "$secrets.tsmc_api_token"
resources:
- name: data
path: "/data/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-data-3
method: GET
Orchestrates semiconductor workflow 4 by coordinating across systems, validating data, and sending notifications.
naftiko: "0.5"
info:
label: "Semiconductor Workflow 4"
description: "Orchestrates semiconductor workflow 4 by coordinating across systems, validating data, and sending notifications."
tags:
- semiconductor
- operations
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: semiconductor
port: 8080
tools:
- name: run-semiconductor-workflow-004
description: "Orchestrates semiconductor workflow 4 by coordinating across systems, validating data, and sending notifications."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Semiconductor Workflow 4 for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.tsmc.com/v1"
authentication:
type: bearer
token: "$secrets.tsmc_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.tsmc.com/v2"
authentication:
type: bearer
token: "$secrets.tsmc_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Orchestrates semiconductor workflow 5 by coordinating across systems, validating data, and sending notifications.
naftiko: "0.5"
info:
label: "Semiconductor Workflow 5"
description: "Orchestrates semiconductor workflow 5 by coordinating across systems, validating data, and sending notifications."
tags:
- semiconductor
- operations
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: semiconductor
port: 8080
tools:
- name: run-semiconductor-workflow-005
description: "Orchestrates semiconductor workflow 5 by coordinating across systems, validating data, and sending notifications."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Semiconductor Workflow 5 for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.tsmc.com/v1"
authentication:
type: bearer
token: "$secrets.tsmc_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.tsmc.com/v2"
authentication:
type: bearer
token: "$secrets.tsmc_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Retrieves semiconductor operational data for workflow 6.
naftiko: "0.5"
info:
label: "Semiconductor Data Query 6"
description: "Retrieves semiconductor operational data for workflow 6."
tags:
- semiconductor
- operations
capability:
exposes:
- type: mcp
namespace: semiconductor
port: 8080
tools:
- name: get-data-6
description: "Query semiconductor data for workflow 6."
inputParameters:
- name: entity_id
in: body
type: string
description: "The entity identifier."
call: "semiconductor-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: semiconductor-api
baseUri: "https://api.tsmc.com/semiconductor/v1"
authentication:
type: bearer
token: "$secrets.tsmc_api_token"
resources:
- name: data
path: "/data/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-data-6
method: GET
Orchestrates semiconductor workflow 7 by coordinating across systems, validating data, and sending notifications.
naftiko: "0.5"
info:
label: "Semiconductor Workflow 7"
description: "Orchestrates semiconductor workflow 7 by coordinating across systems, validating data, and sending notifications."
tags:
- semiconductor
- operations
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: semiconductor
port: 8080
tools:
- name: run-semiconductor-workflow-007
description: "Orchestrates semiconductor workflow 7 by coordinating across systems, validating data, and sending notifications."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Semiconductor Workflow 7 for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.tsmc.com/v1"
authentication:
type: bearer
token: "$secrets.tsmc_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.tsmc.com/v2"
authentication:
type: bearer
token: "$secrets.tsmc_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Orchestrates semiconductor workflow 8 by coordinating across systems, validating data, and sending notifications.
naftiko: "0.5"
info:
label: "Semiconductor Workflow 8"
description: "Orchestrates semiconductor workflow 8 by coordinating across systems, validating data, and sending notifications."
tags:
- semiconductor
- operations
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: semiconductor
port: 8080
tools:
- name: run-semiconductor-workflow-008
description: "Orchestrates semiconductor workflow 8 by coordinating across systems, validating data, and sending notifications."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Semiconductor Workflow 8 for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.tsmc.com/v1"
authentication:
type: bearer
token: "$secrets.tsmc_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.tsmc.com/v2"
authentication:
type: bearer
token: "$secrets.tsmc_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Retrieves semiconductor operational data for workflow 9.
naftiko: "0.5"
info:
label: "Semiconductor Data Query 9"
description: "Retrieves semiconductor operational data for workflow 9."
tags:
- semiconductor
- operations
capability:
exposes:
- type: mcp
namespace: semiconductor
port: 8080
tools:
- name: get-data-9
description: "Query semiconductor data for workflow 9."
inputParameters:
- name: entity_id
in: body
type: string
description: "The entity identifier."
call: "semiconductor-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: semiconductor-api
baseUri: "https://api.tsmc.com/semiconductor/v1"
authentication:
type: bearer
token: "$secrets.tsmc_api_token"
resources:
- name: data
path: "/data/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-data-9
method: GET
Orchestrates semiconductor workflow 10 by coordinating across systems, validating data, and sending notifications.
naftiko: "0.5"
info:
label: "Semiconductor Workflow 10"
description: "Orchestrates semiconductor workflow 10 by coordinating across systems, validating data, and sending notifications."
tags:
- semiconductor
- operations
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: semiconductor
port: 8080
tools:
- name: run-semiconductor-workflow-010
description: "Orchestrates semiconductor workflow 10 by coordinating across systems, validating data, and sending notifications."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Semiconductor Workflow 10 for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.tsmc.com/v1"
authentication:
type: bearer
token: "$secrets.tsmc_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.tsmc.com/v2"
authentication:
type: bearer
token: "$secrets.tsmc_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Orchestrates semiconductor workflow 11 by coordinating across systems, validating data, and sending notifications.
naftiko: "0.5"
info:
label: "Semiconductor Workflow 11"
description: "Orchestrates semiconductor workflow 11 by coordinating across systems, validating data, and sending notifications."
tags:
- semiconductor
- operations
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: semiconductor
port: 8080
tools:
- name: run-semiconductor-workflow-011
description: "Orchestrates semiconductor workflow 11 by coordinating across systems, validating data, and sending notifications."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Semiconductor Workflow 11 for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.tsmc.com/v1"
authentication:
type: bearer
token: "$secrets.tsmc_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.tsmc.com/v2"
authentication:
type: bearer
token: "$secrets.tsmc_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Retrieves semiconductor operational data for workflow 12.
naftiko: "0.5"
info:
label: "Semiconductor Data Query 12"
description: "Retrieves semiconductor operational data for workflow 12."
tags:
- semiconductor
- operations
capability:
exposes:
- type: mcp
namespace: semiconductor
port: 8080
tools:
- name: get-data-12
description: "Query semiconductor data for workflow 12."
inputParameters:
- name: entity_id
in: body
type: string
description: "The entity identifier."
call: "semiconductor-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: semiconductor-api
baseUri: "https://api.tsmc.com/semiconductor/v1"
authentication:
type: bearer
token: "$secrets.tsmc_api_token"
resources:
- name: data
path: "/data/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-data-12
method: GET
Orchestrates semiconductor workflow 13 by coordinating across systems, validating data, and sending notifications.
naftiko: "0.5"
info:
label: "Semiconductor Workflow 13"
description: "Orchestrates semiconductor workflow 13 by coordinating across systems, validating data, and sending notifications."
tags:
- semiconductor
- operations
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: semiconductor
port: 8080
tools:
- name: run-semiconductor-workflow-013
description: "Orchestrates semiconductor workflow 13 by coordinating across systems, validating data, and sending notifications."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Semiconductor Workflow 13 for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.tsmc.com/v1"
authentication:
type: bearer
token: "$secrets.tsmc_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.tsmc.com/v2"
authentication:
type: bearer
token: "$secrets.tsmc_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Orchestrates semiconductor workflow 14 by coordinating across systems, validating data, and sending notifications.
naftiko: "0.5"
info:
label: "Semiconductor Workflow 14"
description: "Orchestrates semiconductor workflow 14 by coordinating across systems, validating data, and sending notifications."
tags:
- semiconductor
- operations
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: semiconductor
port: 8080
tools:
- name: run-semiconductor-workflow-014
description: "Orchestrates semiconductor workflow 14 by coordinating across systems, validating data, and sending notifications."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Semiconductor Workflow 14 for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.tsmc.com/v1"
authentication:
type: bearer
token: "$secrets.tsmc_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.tsmc.com/v2"
authentication:
type: bearer
token: "$secrets.tsmc_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Retrieves semiconductor operational data for workflow 15.
naftiko: "0.5"
info:
label: "Semiconductor Data Query 15"
description: "Retrieves semiconductor operational data for workflow 15."
tags:
- semiconductor
- operations
capability:
exposes:
- type: mcp
namespace: semiconductor
port: 8080
tools:
- name: get-data-15
description: "Query semiconductor data for workflow 15."
inputParameters:
- name: entity_id
in: body
type: string
description: "The entity identifier."
call: "semiconductor-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: semiconductor-api
baseUri: "https://api.tsmc.com/semiconductor/v1"
authentication:
type: bearer
token: "$secrets.tsmc_api_token"
resources:
- name: data
path: "/data/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-data-15
method: GET
Creates a new incident in ServiceNow.
naftiko: "0.5"
info:
label: "ServiceNow Incident Creator"
description: "Creates a new incident in ServiceNow."
tags:
- it
- servicenow
capability:
exposes:
- type: mcp
namespace: it
port: 8080
tools:
- name: get-servicenow
description: "Creates a new incident in ServiceNow."
inputParameters:
- name: entity_id
in: body
type: string
description: "The servicenow incident creator identifier."
call: "it-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: it-api
baseUri: "https://api.tsmc.com/it/v1"
authentication:
type: bearer
token: "$secrets.tsmc_api_token"
resources:
- name: servicenow
path: "/servicenow/incident/creator/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-servicenow
method: GET
Retrieves a ServiceNow incident by number and returns current state, priority, and resolution notes.
naftiko: "0.5"
info:
label: "ServiceNow Incident Lookup"
description: "Retrieves a ServiceNow incident by number and returns current state, priority, and resolution notes."
tags:
- it-support
- servicenow
- incident-management
capability:
exposes:
- type: mcp
namespace: it-service
port: 8080
tools:
- name: get-incident
description: "Look up a ServiceNow incident by number."
inputParameters:
- name: incident_number
in: body
type: string
description: "The ServiceNow incident number."
call: "servicenow.get-incident"
with:
incident_number: "{{incident_number}}"
consumes:
- type: http
namespace: servicenow
baseUri: "https://tsmc.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: incidents
path: "/table/incident?sysparm_query=number={{incident_number}}"
inputParameters:
- name: incident_number
in: path
operations:
- name: get-incident
method: GET
Fetches a document from SharePoint by site and path.
naftiko: "0.5"
info:
label: "SharePoint Document Retrieval"
description: "Fetches a document from SharePoint by site and path."
tags:
- document-management
- sharepoint
capability:
exposes:
- type: mcp
namespace: doc-management
port: 8080
tools:
- name: get-sharepoint-doc
description: "Retrieve a document from SharePoint."
inputParameters:
- name: site_id
in: body
type: string
description: "The SharePoint site identifier."
- name: file_path
in: body
type: string
description: "The file path."
call: "sharepoint.get-file"
with:
site_id: "{{site_id}}"
file_path: "{{file_path}}"
consumes:
- type: http
namespace: sharepoint
baseUri: "https://graph.microsoft.com/v1.0/sites"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: files
path: "/{{site_id}}/drive/root:/{{file_path}}"
inputParameters:
- name: site_id
in: path
- name: file_path
in: path
operations:
- name: get-file
method: GET
Sends a notification to a Slack channel.
naftiko: "0.5"
info:
label: "Slack Notification Publisher"
description: "Sends a notification to a Slack channel."
tags:
- communications
- slack
capability:
exposes:
- type: mcp
namespace: communications
port: 8080
tools:
- name: get-slack
description: "Sends a notification to a Slack channel."
inputParameters:
- name: entity_id
in: body
type: string
description: "The slack notification publisher identifier."
call: "communications-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: communications-api
baseUri: "https://api.tsmc.com/communications/v1"
authentication:
type: bearer
token: "$secrets.tsmc_api_token"
resources:
- name: slack
path: "/slack/notification/publisher/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-slack
method: GET
Runs an analytics query against the Snowflake data warehouse.
naftiko: "0.5"
info:
label: "Snowflake Analytics Query"
description: "Runs an analytics query against the Snowflake data warehouse."
tags:
- analytics
- snowflake
capability:
exposes:
- type: mcp
namespace: analytics
port: 8080
tools:
- name: get-snowflake
description: "Runs an analytics query against the Snowflake data warehouse."
inputParameters:
- name: entity_id
in: body
type: string
description: "The snowflake analytics query identifier."
call: "analytics-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: analytics-api
baseUri: "https://api.tsmc.com/analytics/v1"
authentication:
type: bearer
token: "$secrets.tsmc_api_token"
resources:
- name: snowflake
path: "/snowflake/analytics/query/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-snowflake
method: GET
Retrieves SPC chart data from the MES for a process parameter, identifying out-of-control conditions and trending violations.
naftiko: "0.5"
info:
label: "SPC Statistical Process Control Monitor"
description: "Retrieves SPC chart data from the MES for a process parameter, identifying out-of-control conditions and trending violations."
tags:
- yield
- spc
- process-control
- quality
capability:
exposes:
- type: mcp
namespace: spc-monitoring
port: 8080
tools:
- name: get-spc-data
description: "Fetch SPC chart data for a process parameter from MES."
inputParameters:
- name: tech_node
in: body
type: string
description: "The technology node."
- name: parameter_id
in: body
type: string
description: "The SPC parameter identifier."
- name: tool_id
in: body
type: string
description: "The fab tool ID."
call: "mes.get-spc"
with:
node: "{{tech_node}}"
parameter: "{{parameter_id}}"
tool: "{{tool_id}}"
consumes:
- type: http
namespace: mes
baseUri: "https://mes.tsmc.com/api/v2"
authentication:
type: bearer
token: "$secrets.mes_token"
resources:
- name: spc
path: "/spc/charts?node={{node}}¶meter={{parameter}}&tool={{tool}}"
inputParameters:
- name: node
in: path
- name: parameter
in: path
- name: tool
in: path
operations:
- name: get-spc
method: GET
Retrieves supplier quality scorecards from Salesforce including defect rates, delivery performance, and overall quality rating.
naftiko: "0.5"
info:
label: "Supplier Quality Scorecard"
description: "Retrieves supplier quality scorecards from Salesforce including defect rates, delivery performance, and overall quality rating."
tags:
- supply-chain
- quality
- salesforce
- vendor-management
capability:
exposes:
- type: mcp
namespace: supplier-quality
port: 8080
tools:
- name: get-supplier-scorecard
description: "Fetch supplier quality scorecard from Salesforce."
inputParameters:
- name: supplier_account_id
in: body
type: string
description: "The Salesforce supplier account ID."
call: "salesforce.get-scorecard"
with:
account_id: "{{supplier_account_id}}"
consumes:
- type: http
namespace: salesforce
baseUri: "https://tsmc.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: scorecards
path: "/sobjects/Supplier_Scorecard__c?q=Account__c='{{account_id}}'"
inputParameters:
- name: account_id
in: path
operations:
- name: get-scorecard
method: GET
Queries SAP for current chemical and material inventory levels at a fab, returning stock quantities, reorder points, and supplier lead times.
naftiko: "0.5"
info:
label: "Supply Chain Material Inventory"
description: "Queries SAP for current chemical and material inventory levels at a fab, returning stock quantities, reorder points, and supplier lead times."
tags:
- supply-chain
- inventory
- sap
- materials
capability:
exposes:
- type: mcp
namespace: supply-chain-inventory
port: 8080
tools:
- name: get-material-inventory
description: "Check material inventory levels at a fab in SAP."
inputParameters:
- name: material_number
in: body
type: string
description: "The SAP material number."
- name: fab_code
in: body
type: string
description: "The fab plant code."
call: "sap.get-stock"
with:
material: "{{material_number}}"
plant: "{{fab_code}}"
consumes:
- type: http
namespace: sap
baseUri: "https://tsmc.sap.com/sap/opu/odata/sap/ZMM_STOCK_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: stock
path: "/StockSet(Material='{{material}}',Plant='{{plant}}')"
inputParameters:
- name: material
in: path
- name: plant
in: path
operations:
- name: get-stock
method: GET
Collects sustainability metrics by gathering environmental data, calculating carbon footprint, and publishing ESG reports.
naftiko: "0.5"
info:
label: "Sustainability Metrics Collection Orchestrator"
description: "Collects sustainability metrics by gathering environmental data, calculating carbon footprint, and publishing ESG reports."
tags:
- sustainability
- analytics
- compliance
capability:
exposes:
- type: mcp
namespace: sustainability
port: 8080
tools:
- name: run-sustainability-metrics-collection-orchestrator
description: "Collects sustainability metrics by gathering environmental data, calculating carbon footprint, and publishing ESG reports."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Sustainability Metrics Collection Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.tsmc.com/v1"
authentication:
type: bearer
token: "$secrets.tsmc_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.tsmc.com/v2"
authentication:
type: bearer
token: "$secrets.tsmc_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Assesses third-party risks by collecting vendor questionnaires, scoring responses, and tracking remediation plans.
naftiko: "0.5"
info:
label: "Third Party Risk Assessment Orchestrator"
description: "Assesses third-party risks by collecting vendor questionnaires, scoring responses, and tracking remediation plans."
tags:
- risk
- procurement
- compliance
capability:
exposes:
- type: mcp
namespace: risk
port: 8080
tools:
- name: run-third-party-risk-assessment-orchestrator
description: "Assesses third-party risks by collecting vendor questionnaires, scoring responses, and tracking remediation plans."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Third Party Risk Assessment Orchestrator for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.tsmc.com/v1"
authentication:
type: bearer
token: "$secrets.tsmc_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.tsmc.com/v2"
authentication:
type: bearer
token: "$secrets.tsmc_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Manages vendor contract renewals by reviewing terms, routing for legal approval, and executing via DocuSign.
naftiko: "0.5"
info:
label: "Vendor Contract Renewal Pipeline"
description: "Manages vendor contract renewals by reviewing terms, routing for legal approval, and executing via DocuSign."
tags:
- procurement
- legal
- docusign
capability:
exposes:
- type: mcp
namespace: procurement
port: 8080
tools:
- name: run-vendor-contract-renewal-pipeline
description: "Manages vendor contract renewals by reviewing terms, routing for legal approval, and executing via DocuSign."
inputParameters:
- name: request_id
in: body
type: string
description: "The unique request identifier."
steps:
- name: step-1
type: call
call: "primary-api.initiate"
with:
request_id: "{{request_id}}"
- name: step-2
type: call
call: "secondary-api.process"
with:
request_id: "{{request_id}}"
data: "{{step-1.result}}"
- name: notify
type: call
call: "notification-api.send"
with:
channel: "operations"
message: "Completed Vendor Contract Renewal Pipeline for request {{request_id}}."
consumes:
- type: http
namespace: primary-api
baseUri: "https://api.tsmc.com/v1"
authentication:
type: bearer
token: "$secrets.tsmc_api_token"
resources:
- name: primary
path: "/process"
operations:
- name: initiate
method: POST
- type: http
namespace: secondary-api
baseUri: "https://api.tsmc.com/v2"
authentication:
type: bearer
token: "$secrets.tsmc_api_token"
resources:
- name: secondary
path: "/execute"
operations:
- name: process
method: POST
- type: http
namespace: notification-api
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/teams/notifications"
operations:
- name: send
method: POST
Matches a vendor invoice to its purchase order in SAP, routes for approval via Microsoft Power Automate, and logs in ServiceNow.
naftiko: "0.5"
info:
label: "Vendor Invoice Processing Pipeline"
description: "Matches a vendor invoice to its purchase order in SAP, routes for approval via Microsoft Power Automate, and logs in ServiceNow."
tags:
- finance
- sap
- microsoft-power-automate
- servicenow
- invoice
capability:
exposes:
- type: mcp
namespace: invoice-processing
port: 8080
tools:
- name: process-vendor-invoice
description: "Match invoice to PO in SAP, route for approval, and log in ServiceNow."
inputParameters:
- name: invoice_number
in: body
type: string
description: "The vendor invoice number."
- name: po_number
in: body
type: string
description: "The SAP purchase order number."
steps:
- name: match-invoice
type: call
call: "sap.match-invoice"
with:
invoice_number: "{{invoice_number}}"
po_number: "{{po_number}}"
- name: route-approval
type: call
call: "power-automate.trigger-flow"
with:
flow_id: "invoice_approval"
invoice_number: "{{invoice_number}}"
amount: "{{match-invoice.amount}}"
- name: log-processing
type: call
call: "servicenow.create-record"
with:
table: "u_invoice_log"
invoice_number: "{{invoice_number}}"
status: "{{route-approval.status}}"
consumes:
- type: http
namespace: sap
baseUri: "https://tsmc.sap.com/sap/opu/odata/sap/ZFI_INVOICE_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: invoice-match
path: "/InvoiceMatchSet"
operations:
- name: match-invoice
method: POST
- type: http
namespace: power-automate
baseUri: "https://prod-01.westus.logic.azure.com/workflows"
authentication:
type: bearer
token: "$secrets.power_automate_token"
resources:
- name: flows
path: "/{{flow_id}}/triggers/manual/paths/invoke"
inputParameters:
- name: flow_id
in: path
operations:
- name: trigger-flow
method: POST
- type: http
namespace: servicenow
baseUri: "https://tsmc.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: records
path: "/table/{{table}}"
inputParameters:
- name: table
in: path
operations:
- name: create-record
method: POST
Retrieves defect density data for a wafer lot.
naftiko: "0.5"
info:
label: "Wafer Defect Density Lookup"
description: "Retrieves defect density data for a wafer lot."
tags:
- manufacturing
- quality
capability:
exposes:
- type: mcp
namespace: manufacturing
port: 8080
tools:
- name: get-wafer
description: "Retrieves defect density data for a wafer lot."
inputParameters:
- name: entity_id
in: body
type: string
description: "The wafer defect density lookup identifier."
call: "manufacturing-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: manufacturing-api
baseUri: "https://api.tsmc.com/manufacturing/v1"
authentication:
type: bearer
token: "$secrets.tsmc_api_token"
resources:
- name: wafer
path: "/wafer/defect/density/lookup/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-wafer
method: GET
Queries SAP for a wafer lot by lot ID and returns current process step, yield metrics, priority level, and estimated completion date.
naftiko: "0.5"
info:
label: "Wafer Lot Status Lookup"
description: "Queries SAP for a wafer lot by lot ID and returns current process step, yield metrics, priority level, and estimated completion date."
tags:
- chip-fabrication
- wafer-tracking
- sap
- manufacturing
capability:
exposes:
- type: mcp
namespace: fab-operations
port: 8080
tools:
- name: get-wafer-lot-status
description: "Look up a wafer lot in SAP by lot ID and return fabrication status."
inputParameters:
- name: lot_id
in: body
type: string
description: "The wafer lot identifier."
call: "sap.get-lot"
with:
lot_id: "{{lot_id}}"
consumes:
- type: http
namespace: sap
baseUri: "https://tsmc.sap.com/sap/opu/odata/sap/ZPP_WAFER_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: lots
path: "/WaferLotSet('{{lot_id}}')"
inputParameters:
- name: lot_id
in: path
operations:
- name: get-lot
method: GET
When wafers are scrapped, logs the scrap event in SAP, creates a Jira root-cause analysis task, and notifies the process engineering team via Microsoft Teams.
naftiko: "0.5"
info:
label: "Wafer Scrap Analysis Pipeline"
description: "When wafers are scrapped, logs the scrap event in SAP, creates a Jira root-cause analysis task, and notifies the process engineering team via Microsoft Teams."
tags:
- yield
- scrap
- sap
- jira
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: scrap-analysis
port: 8080
tools:
- name: log-wafer-scrap
description: "Log wafer scrap in SAP, create Jira RCA task, and notify engineering."
inputParameters:
- name: lot_id
in: body
type: string
description: "The scrapped lot ID."
- name: scrap_reason
in: body
type: string
description: "The reason for scrapping."
- name: wafer_count
in: body
type: string
description: "Number of wafers scrapped."
steps:
- name: log-scrap
type: call
call: "sap.create-scrap-record"
with:
lot_id: "{{lot_id}}"
reason: "{{scrap_reason}}"
count: "{{wafer_count}}"
- name: create-rca
type: call
call: "jira.create-issue"
with:
project: "YLD"
summary: "Scrap RCA: {{lot_id}} ({{wafer_count}} wafers)"
description: "Reason: {{scrap_reason}}. SAP record: {{log-scrap.record_id}}."
issue_type: "Task"
- name: notify-team
type: call
call: "msteams.post-channel-message"
with:
channel_id: "process_engineering"
text: "Wafer scrap: {{lot_id}} ({{wafer_count}} wafers). Reason: {{scrap_reason}}. RCA: {{create-rca.key}}"
consumes:
- type: http
namespace: sap
baseUri: "https://tsmc.sap.com/sap/opu/odata/sap/ZPP_SCRAP_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: scrap-records
path: "/ScrapRecordSet"
operations:
- name: create-scrap-record
method: POST
- type: http
namespace: jira
baseUri: "https://tsmc.atlassian.net/rest/api/3"
authentication:
type: basic
username: "$secrets.jira_user"
password: "$secrets.jira_api_token"
resources:
- name: issues
path: "/issue"
operations:
- name: create-issue
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{channel_id}}/channels/General/messages"
inputParameters:
- name: channel_id
in: path
operations:
- name: post-channel-message
method: POST
When wafers are ready for shipment, creates a delivery in SAP, generates shipping documents in SharePoint, and notifies the customer via the portal and Microsoft Teams.
naftiko: "0.5"
info:
label: "Wafer Shipping Notification Pipeline"
description: "When wafers are ready for shipment, creates a delivery in SAP, generates shipping documents in SharePoint, and notifies the customer via the portal and Microsoft Teams."
tags:
- supply-chain
- shipping
- sap
- sharepoint
- customer-portal
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: wafer-shipping
port: 8080
tools:
- name: ship-wafers
description: "Create SAP delivery, generate docs, and notify customer for wafer shipment."
inputParameters:
- name: order_number
in: body
type: string
description: "The fabrication order number."
- name: lot_ids
in: body
type: string
description: "Comma-separated lot IDs being shipped."
- name: customer_contact_upn
in: body
type: string
description: "Customer contact email for notification."
steps:
- name: create-delivery
type: call
call: "sap.create-outbound-delivery"
with:
order_number: "{{order_number}}"
lots: "{{lot_ids}}"
- name: generate-docs
type: call
call: "sharepoint.upload-file"
with:
site_id: "shipping_docs"
file_path: "Shipments/{{create-delivery.delivery_number}}/packing_list.pdf"
content: "{{create-delivery.packing_list}}"
- name: notify-customer
type: call
call: "msteams.send-message"
with:
recipient_upn: "{{customer_contact_upn}}"
text: "Wafer shipment notification: Order {{order_number}}, Delivery {{create-delivery.delivery_number}}. Lots: {{lot_ids}}. Tracking: {{create-delivery.tracking_number}}."
consumes:
- type: http
namespace: sap
baseUri: "https://tsmc.sap.com/sap/opu/odata/sap/ZSD_SHIPPING_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: outbound-deliveries
path: "/OutboundDeliverySet"
operations:
- name: create-outbound-delivery
method: POST
- type: http
namespace: sharepoint
baseUri: "https://graph.microsoft.com/v1.0/sites"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: files
path: "/{{site_id}}/drive/root:/{{file_path}}:/content"
inputParameters:
- name: site_id
in: path
- name: file_path
in: path
operations:
- name: upload-file
method: PUT
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/users/{{recipient_upn}}/sendMail"
inputParameters:
- name: recipient_upn
in: path
operations:
- name: send-message
method: POST
Retrieves customer demand from Salesforce, checks fab capacity in SAP, generates a wafer start plan, and posts the plan to the planning team via Microsoft Teams.
naftiko: "0.5"
info:
label: "Wafer Start Planning Pipeline"
description: "Retrieves customer demand from Salesforce, checks fab capacity in SAP, generates a wafer start plan, and posts the plan to the planning team via Microsoft Teams."
tags:
- supply-chain
- planning
- salesforce
- sap
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: wafer-planning
port: 8080
tools:
- name: plan-wafer-starts
description: "Generate wafer start plan based on demand and capacity."
inputParameters:
- name: quarter
in: body
type: string
description: "The planning quarter (e.g., 2026-Q2)."
- name: tech_node
in: body
type: string
description: "The technology node."
steps:
- name: get-demand
type: call
call: "salesforce.get-demand-forecast"
with:
quarter: "{{quarter}}"
node: "{{tech_node}}"
- name: check-capacity
type: call
call: "sap.get-available-capacity"
with:
quarter: "{{quarter}}"
node: "{{tech_node}}"
- name: post-plan
type: call
call: "msteams.post-channel-message"
with:
channel_id: "fab_planning"
text: "Wafer start plan for {{tech_node}} Q{{quarter}}: Demand: {{get-demand.total_wafers}} wafers. Available capacity: {{check-capacity.available_starts}}. Utilization: {{check-capacity.utilization_pct}}%."
consumes:
- type: http
namespace: salesforce
baseUri: "https://tsmc.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: demand-forecasts
path: "/sobjects/Demand_Forecast__c?q=Quarter__c='{{quarter}}' AND Tech_Node__c='{{node}}'"
inputParameters:
- name: quarter
in: path
- name: node
in: path
operations:
- name: get-demand-forecast
method: GET
- type: http
namespace: sap
baseUri: "https://tsmc.sap.com/sap/opu/odata/sap/ZPP_CAPACITY_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: capacity
path: "/AvailableCapacitySet?$filter=Quarter eq '{{quarter}}' and TechNode eq '{{node}}'"
inputParameters:
- name: quarter
in: path
- name: node
in: path
operations:
- name: get-available-capacity
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: post-channel-message
method: POST
Retrieves wafer electrical test (WAT) data from the test system for a wafer lot, returning parametric test results, bin maps, and pass rates.
naftiko: "0.5"
info:
label: "Wafer Test Data Retrieval"
description: "Retrieves wafer electrical test (WAT) data from the test system for a wafer lot, returning parametric test results, bin maps, and pass rates."
tags:
- yield
- wafer-test
- quality
- chip-fabrication
capability:
exposes:
- type: mcp
namespace: wafer-test
port: 8080
tools:
- name: get-wat-data
description: "Fetch wafer acceptance test data for a lot."
inputParameters:
- name: lot_id
in: body
type: string
description: "The wafer lot identifier."
call: "test-system.get-wat"
with:
lot_id: "{{lot_id}}"
consumes:
- type: http
namespace: test-system
baseUri: "https://test.tsmc.com/api/v1"
authentication:
type: bearer
token: "$secrets.test_system_token"
resources:
- name: wat
path: "/lots/{{lot_id}}/wat-results"
inputParameters:
- name: lot_id
in: path
operations:
- name: get-wat
method: GET
Retrieves employee profile from Workday.
naftiko: "0.5"
info:
label: "Workday Employee Profile"
description: "Retrieves employee profile from Workday."
tags:
- hr
- workday
capability:
exposes:
- type: mcp
namespace: hr
port: 8080
tools:
- name: get-workday
description: "Retrieves employee profile from Workday."
inputParameters:
- name: entity_id
in: body
type: string
description: "The workday employee profile identifier."
call: "hr-api.get-data"
with:
entity_id: "{{entity_id}}"
consumes:
- type: http
namespace: hr-api
baseUri: "https://api.tsmc.com/hr/v1"
authentication:
type: bearer
token: "$secrets.tsmc_api_token"
resources:
- name: workday
path: "/workday/employee/profile/{{entity_id}}"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-workday
method: GET
Retrieves payroll summary data from Workday for a pay period.
naftiko: "0.5"
info:
label: "Workday Payroll Summary"
description: "Retrieves payroll summary data from Workday for a pay period."
tags:
- hr
- payroll
- workday
- finance
capability:
exposes:
- type: mcp
namespace: payroll
port: 8080
tools:
- name: get-payroll-summary
description: "Fetch Workday payroll summary for a pay period."
inputParameters:
- name: pay_period
in: body
type: string
description: "The pay period identifier."
call: "workday.get-payroll"
with:
pay_period: "{{pay_period}}"
consumes:
- type: http
namespace: workday
baseUri: "https://wd2-impl-services1.workday.com/ccx/api/v1"
authentication:
type: bearer
token: "$secrets.workday_token"
resources:
- name: payroll
path: "/payroll/summaries?payPeriod={{pay_period}}"
inputParameters:
- name: pay_period
in: path
operations:
- name: get-payroll
method: GET
Retrieves an employee's current time-off balances from Workday.
naftiko: "0.5"
info:
label: "Workday Time-Off Balance"
description: "Retrieves an employee's current time-off balances from Workday."
tags:
- hr
- workday
- time-off
capability:
exposes:
- type: mcp
namespace: hr-time-off
port: 8080
tools:
- name: get-time-off-balance
description: "Look up an employee's time-off balances in Workday."
inputParameters:
- name: worker_id
in: body
type: string
description: "The Workday worker ID."
call: "workday.get-time-off"
with:
worker_id: "{{worker_id}}"
consumes:
- type: http
namespace: workday
baseUri: "https://wd2-impl-services1.workday.com/ccx/api/v1"
authentication:
type: bearer
token: "$secrets.workday_token"
resources:
- name: time-off
path: "/workers/{{worker_id}}/timeOffBalance"
inputParameters:
- name: worker_id
in: path
operations:
- name: get-time-off
method: GET
Retrieves yield analysis data from the manufacturing execution system for a technology node and process step, returning defect density, die yield, and wafer yield metrics.
naftiko: "0.5"
info:
label: "Yield Analysis Report"
description: "Retrieves yield analysis data from the manufacturing execution system for a technology node and process step, returning defect density, die yield, and wafer yield metrics."
tags:
- yield
- quality
- manufacturing
- analytics
capability:
exposes:
- type: mcp
namespace: yield-analytics
port: 8080
tools:
- name: get-yield-data
description: "Fetch yield analysis data by technology node and process step."
inputParameters:
- name: tech_node
in: body
type: string
description: "The technology node (e.g., N3, N5, N7)."
- name: process_step
in: body
type: string
description: "The process step identifier."
call: "mes.get-yield"
with:
node: "{{tech_node}}"
step: "{{process_step}}"
consumes:
- type: http
namespace: mes
baseUri: "https://mes.tsmc.com/api/v2"
authentication:
type: bearer
token: "$secrets.mes_token"
resources:
- name: yield
path: "/yield/analysis?node={{node}}&step={{step}}"
inputParameters:
- name: node
in: path
- name: step
in: path
operations:
- name: get-yield
method: GET
When the MES detects a yield excursion, creates a Jira investigation task, notifies the yield engineering team via Microsoft Teams, and holds affected lots in SAP.
naftiko: "0.5"
info:
label: "Yield Excursion Alert Pipeline"
description: "When the MES detects a yield excursion, creates a Jira investigation task, notifies the yield engineering team via Microsoft Teams, and holds affected lots in SAP."
tags:
- yield
- excursion
- jira
- microsoft-teams
- sap
capability:
exposes:
- type: mcp
namespace: yield-excursion
port: 8080
tools:
- name: handle-yield-excursion
description: "Create Jira task, notify yield team, and hold affected lots for a yield excursion."
inputParameters:
- name: tech_node
in: body
type: string
description: "The technology node."
- name: process_step
in: body
type: string
description: "The process step where excursion occurred."
- name: affected_lots
in: body
type: string
description: "Comma-separated list of affected lot IDs."
- name: yield_drop_pct
in: body
type: string
description: "Percentage yield drop."
steps:
- name: create-investigation
type: call
call: "jira.create-issue"
with:
project: "YLD"
summary: "Yield excursion: {{tech_node}} at {{process_step}} (-{{yield_drop_pct}}%)"
description: "Yield dropped {{yield_drop_pct}}% at {{process_step}} for {{tech_node}}. Affected lots: {{affected_lots}}."
issue_type: "Bug"
priority: "Critical"
- name: notify-yield-team
type: call
call: "msteams.post-channel-message"
with:
channel_id: "yield_engineering"
text: "YIELD EXCURSION: {{tech_node}} at {{process_step}}. Drop: {{yield_drop_pct}}%. Lots: {{affected_lots}}. Jira: {{create-investigation.key}}"
- name: hold-lots
type: call
call: "sap.hold-lots"
with:
lot_ids: "{{affected_lots}}"
reason: "Yield excursion at {{process_step}}"
consumes:
- type: http
namespace: jira
baseUri: "https://tsmc.atlassian.net/rest/api/3"
authentication:
type: basic
username: "$secrets.jira_user"
password: "$secrets.jira_api_token"
resources:
- name: issues
path: "/issue"
operations:
- name: create-issue
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{channel_id}}/channels/General/messages"
inputParameters:
- name: channel_id
in: path
operations:
- name: post-channel-message
method: POST
- type: http
namespace: sap
baseUri: "https://tsmc.sap.com/sap/opu/odata/sap/ZPP_LOT_HOLD_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: lot-holds
path: "/LotHoldSet"
operations:
- name: hold-lots
method: POST