TSMC Capabilities

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

Sort
Expand

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}}&parameter={{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