Northwestern Mutual Capabilities

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

Sort
Expand

Calculates advisor commissions by pulling policy sales from Salesforce, applying commission rules from SAP, and updating the Workday compensation record.

naftiko: "0.5"
info:
  label: "Advisor Commission Calculator"
  description: "Calculates advisor commissions by pulling policy sales from Salesforce, applying commission rules from SAP, and updating the Workday compensation record."
  tags:
    - commissions
    - salesforce
    - sap
    - workday
    - finance
capability:
  exposes:
    - type: mcp
      namespace: advisor-commissions
      port: 8080
      tools:
        - name: calculate-commissions
          description: "Given an advisor ID and period, pull sales, apply rules, and update compensation."
          inputParameters:
            - name: advisor_id
              in: body
              type: string
              description: "The advisor's employee identifier."
            - name: commission_period
              in: body
              type: string
              description: "The commission period (e.g., 2025-Q1)."
          steps:
            - name: fetch-sales
              type: call
              call: "salesforce.get-advisor-sales"
              with:
                advisor_id: "{{advisor_id}}"
                period: "{{commission_period}}"
            - name: apply-rules
              type: call
              call: "sap.calculate-commission"
              with:
                sales_data: "{{fetch-sales.records}}"
                advisor_tier: "{{fetch-sales.advisor_tier}}"
            - name: update-compensation
              type: call
              call: "workday.update-compensation"
              with:
                worker_id: "{{advisor_id}}"
                commission_amount: "{{apply-rules.total_commission}}"
                period: "{{commission_period}}"
  consumes:
    - type: http
      namespace: salesforce
      baseUri: "https://northwesternmutual.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token"
      resources:
        - name: advisor-sales
          path: "/query/?q=SELECT+Id,Amount,Product__c+FROM+Policy_Sale__c+WHERE+Advisor_Id__c='{{advisor_id}}'+AND+Period__c='{{period}}'"
          inputParameters:
            - name: advisor_id
              in: query
            - name: period
              in: query
          operations:
            - name: get-advisor-sales
              method: GET
    - type: http
      namespace: sap
      baseUri: "https://northwesternmutual-s4.sap.com/sap/opu/odata/sap"
      authentication:
        type: basic
        username: "$secrets.sap_user"
        password: "$secrets.sap_password"
      resources:
        - name: commissions
          path: "/COMMISSION_CALC_SRV/Calculate"
          operations:
            - name: calculate-commission
              method: POST
    - type: http
      namespace: workday
      baseUri: "https://wd2-impl-services1.workday.com/ccx/api/v1"
      authentication:
        type: bearer
        token: "$secrets.workday_token"
      resources:
        - name: compensation
          path: "/workers/{{worker_id}}/compensation"
          inputParameters:
            - name: worker_id
              in: path
          operations:
            - name: update-compensation
              method: PATCH

Verifies advisor licensing by checking Workday employment, querying Salesforce licensing records, and flagging non-compliant advisors in ServiceNow.

naftiko: "0.5"
info:
  label: "Advisor Licensing Verification Pipeline"
  description: "Verifies advisor licensing by checking Workday employment, querying Salesforce licensing records, and flagging non-compliant advisors in ServiceNow."
  tags:
    - compliance
    - advisor-licensing
    - workday
    - salesforce
    - servicenow
capability:
  exposes:
    - type: mcp
      namespace: advisor-compliance
      port: 8080
      tools:
        - name: verify-advisor-licensing
          description: "Given an advisor ID and state, verify licensing across systems."
          inputParameters:
            - name: advisor_id
              in: body
              type: string
              description: "The advisor's employee identifier."
            - name: state_code
              in: body
              type: string
              description: "The state code to verify."
          steps:
            - name: check-employment
              type: call
              call: "workday.get-worker"
              with:
                worker_id: "{{advisor_id}}"
            - name: check-license
              type: call
              call: "salesforce.get-license"
              with:
                advisor_id: "{{advisor_id}}"
                state: "{{state_code}}"
            - name: flag-noncompliant
              type: call
              call: "servicenow.create-case"
              with:
                short_description: "License Verification: Advisor {{advisor_id}} - {{state_code}}"
                category: "advisor_compliance"
                description: "Employment: {{check-employment.status}}. License: {{check-license.license_status}}. Expiry: {{check-license.expiry_date}}."
  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: salesforce
      baseUri: "https://northwesternmutual.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token"
      resources:
        - name: licenses
          path: "/query/?q=SELECT+Id,Status__c,Expiry__c+FROM+Advisor_License__c+WHERE+Advisor_Id__c='{{advisor_id}}'+AND+State__c='{{state}}'"
          inputParameters:
            - name: advisor_id
              in: query
            - name: state
              in: query
          operations:
            - name: get-license
              method: GET
    - type: http
      namespace: servicenow
      baseUri: "https://northwesternmutual.service-now.com/api/now"
      authentication:
        type: basic
        username: "$secrets.servicenow_user"
        password: "$secrets.servicenow_password"
      resources:
        - name: cases
          path: "/table/sn_customerservice_case"
          operations:
            - name: create-case
              method: POST

Invokes an AWS Lambda function and returns the execution result.

naftiko: "0.5"
info:
  label: "AWS Lambda Function Invocation"
  description: "Invokes an AWS Lambda function and returns the execution result."
  tags:
    - cloud
    - aws-lambda
    - serverless
capability:
  exposes:
    - type: mcp
      namespace: serverless
      port: 8080
      tools:
        - name: invoke-lambda
          description: "Invoke an AWS Lambda function by name."
          inputParameters:
            - name: function_name
              in: body
              type: string
              description: "The Lambda function name."
            - name: payload
              in: body
              type: string
              description: "JSON payload."
          call: "lambda.invoke-function"
          with:
            function_name: "{{function_name}}"
            payload: "{{payload}}"
          outputParameters:
            - name: status_code
              type: string
              mapping: "$.StatusCode"
            - name: result
              type: string
              mapping: "$.Payload"
  consumes:
    - type: http
      namespace: lambda
      baseUri: "https://lambda.us-east-1.amazonaws.com/2015-03-31"
      authentication:
        type: aws
        accessKeyId: "$secrets.aws_access_key"
        secretAccessKey: "$secrets.aws_secret_key"
      resources:
        - name: functions
          path: "/functions/{{function_name}}/invocations"
          inputParameters:
            - name: function_name
              in: path
          operations:
            - name: invoke-function
              method: POST

Retrieves user profile information from Azure Active Directory.

naftiko: "0.5"
info:
  label: "Azure Active Directory User Lookup"
  description: "Retrieves user profile information from Azure Active Directory."
  tags:
    - security
    - azure-active-directory
    - identity
capability:
  exposes:
    - type: mcp
      namespace: identity
      port: 8080
      tools:
        - name: get-ad-user
          description: "Look up an Azure AD user by UPN or object ID."
          inputParameters:
            - name: user_id
              in: body
              type: string
              description: "The user principal name or object ID."
          call: "azuread.get-user"
          with:
            user_id: "{{user_id}}"
          outputParameters:
            - name: display_name
              type: string
              mapping: "$.displayName"
            - name: job_title
              type: string
              mapping: "$.jobTitle"
            - name: department
              type: string
              mapping: "$.department"
  consumes:
    - type: http
      namespace: azuread
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: users
          path: "/users/{{user_id}}"
          inputParameters:
            - name: user_id
              in: path
          operations:
            - name: get-user
              method: GET

Retrieves real-time market data from Bloomberg for investment instruments, returning price, yield, and change percentage.

naftiko: "0.5"
info:
  label: "Bloomberg Market Data Lookup"
  description: "Retrieves real-time market data from Bloomberg for investment instruments, returning price, yield, and change percentage."
  tags:
    - wealth-management
    - bloomberg
    - market-data
capability:
  exposes:
    - type: mcp
      namespace: market-data
      port: 8080
      tools:
        - name: get-market-data
          description: "Look up Bloomberg market data by ticker symbol."
          inputParameters:
            - name: ticker
              in: body
              type: string
              description: "The Bloomberg ticker symbol."
          call: "bloomberg.get-quote"
          with:
            ticker: "{{ticker}}"
          outputParameters:
            - name: price
              type: string
              mapping: "$.data.price"
            - name: yield
              type: string
              mapping: "$.data.yield"
            - name: change_pct
              type: string
              mapping: "$.data.changePercent"
  consumes:
    - type: http
      namespace: bloomberg
      baseUri: "https://api.bloomberg.com/eap/catalogs/bbg/fields"
      authentication:
        type: bearer
        token: "$secrets.bloomberg_token"
      resources:
        - name: quotes
          path: "/{{ticker}}"
          inputParameters:
            - name: ticker
              in: path
          operations:
            - name: get-quote
              method: GET

Retrieves a document from Box by file ID.

naftiko: "0.5"
info:
  label: "Box Document Retrieval"
  description: "Retrieves a document from Box by file ID."
  tags:
    - document-management
    - box
capability:
  exposes:
    - type: mcp
      namespace: documents
      port: 8080
      tools:
        - name: get-box-document
          description: "Retrieve a Box document by file ID."
          inputParameters:
            - name: file_id
              in: body
              type: string
              description: "The Box file identifier."
          call: "box.get-file"
          with:
            file_id: "{{file_id}}"
          outputParameters:
            - name: file_name
              type: string
              mapping: "$.name"
            - name: size
              type: string
              mapping: "$.size"
  consumes:
    - type: http
      namespace: box
      baseUri: "https://api.box.com/2.0"
      authentication:
        type: bearer
        token: "$secrets.box_token"
      resources:
        - name: files
          path: "/files/{{file_id}}"
          inputParameters:
            - name: file_id
              in: path
          operations:
            - name: get-file
              method: GET

When a new claim is filed, creates the claim record in Salesforce, opens a ServiceNow case, uploads supporting documents to SharePoint, and notifies the claims adjuster via Microsoft Teams.

naftiko: "0.5"
info:
  label: "Claims Intake Orchestrator"
  description: "When a new claim is filed, creates the claim record in Salesforce, opens a ServiceNow case, uploads supporting documents to SharePoint, and notifies the claims adjuster via Microsoft Teams."
  tags:
    - claims
    - salesforce
    - servicenow
    - sharepoint
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: claims
      port: 8080
      tools:
        - name: process-claim-intake
          description: "Given a policy number, claimant name, and claim type, create the claim record, open a case, store documents, and notify the adjuster."
          inputParameters:
            - name: policy_number
              in: body
              type: string
              description: "The policy number."
            - name: claimant_name
              in: body
              type: string
              description: "The claimant's name."
            - name: claim_type
              in: body
              type: string
              description: "Type of claim (death benefit, disability, long-term care)."
            - name: claim_description
              in: body
              type: string
              description: "Description of the claim."
          steps:
            - name: create-claim
              type: call
              call: "salesforce.create-claim"
              with:
                policy_number: "{{policy_number}}"
                claimant: "{{claimant_name}}"
                type: "{{claim_type}}"
                description: "{{claim_description}}"
            - name: open-case
              type: call
              call: "servicenow.create-case"
              with:
                short_description: "Claim Processing: {{claim_type}} - Policy {{policy_number}}"
                category: "claims_processing"
                description: "Claim {{create-claim.claim_id}} filed by {{claimant_name}}. {{claim_description}}"
            - name: provision-folder
              type: call
              call: "sharepoint.create-folder"
              with:
                site_id: "claims_site"
                folder_path: "Claims/{{create-claim.claim_id}}"
            - name: notify-adjuster
              type: call
              call: "msteams.send-message"
              with:
                channel_id: "claims-intake"
                text: "New claim: {{claim_type}} for policy {{policy_number}}. Claim ID: {{create-claim.claim_id}}. Claimant: {{claimant_name}}. ServiceNow: {{open-case.number}}. Documents: {{provision-folder.url}}"
  consumes:
    - type: http
      namespace: salesforce
      baseUri: "https://northwesternmutual.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token"
      resources:
        - name: claims
          path: "/sobjects/Claim__c"
          operations:
            - name: create-claim
              method: POST
    - type: http
      namespace: servicenow
      baseUri: "https://northwesternmutual.service-now.com/api/now"
      authentication:
        type: basic
        username: "$secrets.servicenow_user"
        password: "$secrets.servicenow_password"
      resources:
        - name: cases
          path: "/table/sn_customerservice_case"
          operations:
            - name: create-case
              method: POST
    - type: http
      namespace: sharepoint
      baseUri: "https://graph.microsoft.com/v1.0/sites"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: drive-items
          path: "/{{site_id}}/drive/root:/{{folder_path}}"
          inputParameters:
            - name: site_id
              in: path
            - name: folder_path
              in: path
          operations:
            - name: create-folder
              method: POST
    - type: http
      namespace: msteams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: channel-messages
          path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
          inputParameters:
            - name: team_id
              in: path
            - name: channel_id
              in: path
          operations:
            - name: send-message
              method: POST

Queries Cloudflare analytics for Northwestern Mutual web properties.

naftiko: "0.5"
info:
  label: "Cloudflare CDN Performance Check"
  description: "Queries Cloudflare analytics for Northwestern Mutual web properties."
  tags:
    - infrastructure
    - cloudflare
    - cdn
capability:
  exposes:
    - type: mcp
      namespace: cdn
      port: 8080
      tools:
        - name: get-cdn-performance
          description: "Retrieve Cloudflare CDN performance metrics for a given zone."
          inputParameters:
            - name: zone_id
              in: body
              type: string
              description: "The Cloudflare zone identifier."
          call: "cloudflare.get-zone-analytics"
          with:
            zone_id: "{{zone_id}}"
          outputParameters:
            - name: bandwidth
              type: string
              mapping: "$.result.totals.bandwidth.all"
            - name: cache_hit_ratio
              type: string
              mapping: "$.result.totals.bandwidth.cached"
  consumes:
    - type: http
      namespace: cloudflare
      baseUri: "https://api.cloudflare.com/client/v4"
      authentication:
        type: bearer
        token: "$secrets.cloudflare_token"
      resources:
        - name: zone-analytics
          path: "/zones/{{zone_id}}/analytics/dashboard"
          inputParameters:
            - name: zone_id
              in: path
          operations:
            - name: get-zone-analytics
              method: GET

Generates a compliance audit trail by pulling policy transactions from Salesforce, investment activities from Bloomberg AIM, and employee actions from Workday, then storing the report in SharePoint.

naftiko: "0.5"
info:
  label: "Compliance Audit Trail Generator"
  description: "Generates a compliance audit trail by pulling policy transactions from Salesforce, investment activities from Bloomberg AIM, and employee actions from Workday, then storing the report in SharePoint."
  tags:
    - compliance
    - audit
    - salesforce
    - bloomberg-aim
    - workday
    - sharepoint
capability:
  exposes:
    - type: mcp
      namespace: compliance-audit
      port: 8080
      tools:
        - name: generate-audit-trail
          description: "Given a date range, pull data from all systems and generate a consolidated audit report."
          inputParameters:
            - name: start_date
              in: body
              type: string
              description: "Audit period start date."
            - name: end_date
              in: body
              type: string
              description: "Audit period end date."
            - name: audit_scope
              in: body
              type: string
              description: "Scope of audit."
          steps:
            - name: fetch-policy-data
              type: call
              call: "salesforce.query-transactions"
              with:
                start_date: "{{start_date}}"
                end_date: "{{end_date}}"
            - name: fetch-investment-data
              type: call
              call: "bloomberg-aim.get-activity-log"
              with:
                start_date: "{{start_date}}"
                end_date: "{{end_date}}"
            - name: fetch-employee-data
              type: call
              call: "workday.get-audit-log"
              with:
                start_date: "{{start_date}}"
                end_date: "{{end_date}}"
            - name: store-report
              type: call
              call: "sharepoint.upload-file"
              with:
                site_id: "compliance_site"
                folder_path: "AuditTrails/{{start_date}}_{{end_date}}"
                file_name: "audit_trail.json"
                content: "Policies: {{fetch-policy-data.records}} | Investments: {{fetch-investment-data.activities}} | Employee: {{fetch-employee-data.events}}"
  consumes:
    - type: http
      namespace: salesforce
      baseUri: "https://northwesternmutual.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token"
      resources:
        - name: transactions
          path: "/query/?q=SELECT+Id,Type,Amount,CreatedDate+FROM+Transaction__c+WHERE+CreatedDate>={{start_date}}+AND+CreatedDate<={{end_date}}"
          inputParameters:
            - name: start_date
              in: query
            - name: end_date
              in: query
          operations:
            - name: query-transactions
              method: GET
    - type: http
      namespace: bloomberg-aim
      baseUri: "https://aim.bloomberg.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.bloomberg_aim_token"
      resources:
        - name: activity-log
          path: "/activity"
          operations:
            - name: get-activity-log
              method: GET
    - type: http
      namespace: workday
      baseUri: "https://wd2-impl-services1.workday.com/ccx/api/v1"
      authentication:
        type: bearer
        token: "$secrets.workday_token"
      resources:
        - name: audit-log
          path: "/auditLogs"
          operations:
            - name: get-audit-log
              method: GET
    - type: http
      namespace: sharepoint
      baseUri: "https://graph.microsoft.com/v1.0/sites"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: drive-items
          path: "/{{site_id}}/drive/root:/{{folder_path}}/{{file_name}}:/content"
          inputParameters:
            - name: site_id
              in: path
            - name: folder_path
              in: path
            - name: file_name
              in: path
          operations:
            - name: upload-file
              method: PUT

Generates a comprehensive financial plan by pulling client data from Salesforce, running Monte Carlo projections in Azure ML, fetching portfolio performance from Bloomberg AIM, and delivering the plan via SharePoint and Microsoft Outlook.

naftiko: "0.5"
info:
  label: "Comprehensive Financial Plan Generator"
  description: "Generates a comprehensive financial plan by pulling client data from Salesforce, running Monte Carlo projections in Azure ML, fetching portfolio performance from Bloomberg AIM, and delivering the plan via SharePoint and Microsoft Outlook."
  tags:
    - financial-planning
    - wealth-management
    - salesforce
    - azure-machine-learning
    - bloomberg-aim
    - sharepoint
    - microsoft-outlook
capability:
  exposes:
    - type: mcp
      namespace: financial-plan-gen
      port: 8080
      tools:
        - name: generate-financial-plan
          description: "Given a client ID and planning horizon, pull data, run projections, and deliver the plan."
          inputParameters:
            - name: client_id
              in: body
              type: string
              description: "The client identifier."
            - name: planning_horizon
              in: body
              type: string
              description: "Planning horizon in years."
            - name: advisor_email
              in: body
              type: string
              description: "The financial advisor's email."
          steps:
            - name: get-client-data
              type: call
              call: "salesforce.get-client-profile"
              with:
                client_id: "{{client_id}}"
            - name: get-portfolio
              type: call
              call: "bloomberg-aim.get-portfolio"
              with:
                account_id: "{{get-client-data.account_id}}"
            - name: run-projections
              type: call
              call: "azureml.project-financial-plan"
              with:
                client_data: "{{get-client-data}}"
                portfolio: "{{get-portfolio}}"
                horizon: "{{planning_horizon}}"
            - name: store-plan
              type: call
              call: "sharepoint.upload-file"
              with:
                site_id: "financial_plans_site"
                folder_path: "Plans/{{client_id}}"
                file_name: "financial_plan_{{planning_horizon}}yr.pdf"
                content: "{{run-projections.plan_content}}"
            - name: email-advisor
              type: call
              call: "outlook.send-mail"
              with:
                recipient: "{{advisor_email}}"
                subject: "Financial Plan Ready: {{get-client-data.client_name}}"
                body: "The {{planning_horizon}}-year plan for {{get-client-data.client_name}} is ready. Portfolio: ${{get-portfolio.market_value}}. Projected growth: {{run-projections.projected_growth}}. Download: {{store-plan.url}}"
  consumes:
    - type: http
      namespace: salesforce
      baseUri: "https://northwesternmutual.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token"
      resources:
        - name: clients
          path: "/sobjects/Client__c/{{client_id}}"
          inputParameters:
            - name: client_id
              in: path
          operations:
            - name: get-client-profile
              method: GET
    - type: http
      namespace: bloomberg-aim
      baseUri: "https://aim.bloomberg.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.bloomberg_aim_token"
      resources:
        - name: portfolios
          path: "/portfolios/{{account_id}}"
          inputParameters:
            - name: account_id
              in: path
          operations:
            - name: get-portfolio
              method: GET
    - type: http
      namespace: azureml
      baseUri: "https://northwesternmutual-ml.eastus.inference.ml.azure.com"
      authentication:
        type: bearer
        token: "$secrets.azureml_token"
      resources:
        - name: projections
          path: "/score"
          operations:
            - name: project-financial-plan
              method: POST
    - type: http
      namespace: sharepoint
      baseUri: "https://graph.microsoft.com/v1.0/sites"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: drive-items
          path: "/{{site_id}}/drive/root:/{{folder_path}}/{{file_name}}:/content"
          inputParameters:
            - name: site_id
              in: path
            - name: folder_path
              in: path
            - name: file_name
              in: path
          operations:
            - name: upload-file
              method: PUT
    - type: http
      namespace: outlook
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: send-mail
          path: "/me/sendMail"
          operations:
            - name: send-mail
              method: POST

Searches the Northwestern Mutual Confluence knowledge base by keyword.

naftiko: "0.5"
info:
  label: "Confluence Knowledge Base Search"
  description: "Searches the Northwestern Mutual Confluence knowledge base by keyword."
  tags:
    - knowledge-management
    - confluence
capability:
  exposes:
    - type: mcp
      namespace: knowledge
      port: 8080
      tools:
        - name: search-knowledge-base
          description: "Search Confluence knowledge base by keyword."
          inputParameters:
            - name: query
              in: body
              type: string
              description: "The search query."
          call: "confluence.search"
          with:
            query: "{{query}}"
          outputParameters:
            - name: results
              type: array
              mapping: "$.results"
            - name: total_count
              type: string
              mapping: "$.totalSize"
  consumes:
    - type: http
      namespace: confluence
      baseUri: "https://northwesternmutual.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: query
          operations:
            - name: search
              method: GET

Checks the status of a Databricks ML pipeline run.

naftiko: "0.5"
info:
  label: "Databricks ML Pipeline Status"
  description: "Checks the status of a Databricks ML pipeline run."
  tags:
    - data-science
    - databricks
    - machine-learning
capability:
  exposes:
    - type: mcp
      namespace: ml-ops
      port: 8080
      tools:
        - name: get-pipeline-status
          description: "Check Databricks pipeline run status by run ID."
          inputParameters:
            - name: run_id
              in: body
              type: string
              description: "The Databricks run identifier."
          call: "databricks.get-run"
          with:
            run_id: "{{run_id}}"
          outputParameters:
            - name: state
              type: string
              mapping: "$.state.life_cycle_state"
            - name: result_state
              type: string
              mapping: "$.state.result_state"
  consumes:
    - type: http
      namespace: databricks
      baseUri: "https://northwesternmutual.cloud.databricks.com/api/2.1"
      authentication:
        type: bearer
        token: "$secrets.databricks_token"
      resources:
        - name: runs
          path: "/jobs/runs/get?run_id={{run_id}}"
          inputParameters:
            - name: run_id
              in: query
          operations:
            - name: get-run
              method: GET

Queries Datadog for current infrastructure health, returning host count, alert counts, and critical monitors.

naftiko: "0.5"
info:
  label: "Datadog Infrastructure Health Check"
  description: "Queries Datadog for current infrastructure health, returning host count, alert counts, and critical monitors."
  tags:
    - infrastructure
    - monitoring
    - datadog
capability:
  exposes:
    - type: mcp
      namespace: infra-monitoring
      port: 8080
      tools:
        - name: get-infra-health
          description: "Retrieve Datadog infrastructure health summary."
          inputParameters:
            - name: environment
              in: body
              type: string
              description: "The environment (production, staging)."
          call: "datadog.get-monitors"
          with:
            environment: "{{environment}}"
          outputParameters:
            - name: total_hosts
              type: string
              mapping: "$.total_hosts"
            - name: active_alerts
              type: string
              mapping: "$.alert_count"
  consumes:
    - type: http
      namespace: datadog
      baseUri: "https://api.datadoghq.com/api/v1"
      authentication:
        type: apiKey
        key: "$secrets.datadog_api_key"
      resources:
        - name: monitors
          path: "/monitor"
          operations:
            - name: get-monitors
              method: GET

Assesses disability insurance claims by pulling medical data from the claims system, running the disability assessment model in Azure ML, creating the assessment report in SharePoint, and routing for adjudicator review in ServiceNow.

naftiko: "0.5"
info:
  label: "Disability Insurance Claim Assessment Pipeline"
  description: "Assesses disability insurance claims by pulling medical data from the claims system, running the disability assessment model in Azure ML, creating the assessment report in SharePoint, and routing for adjudicator review in ServiceNow."
  tags:
    - insurance
    - disability
    - claims
    - azure-machine-learning
    - sharepoint
    - servicenow
capability:
  exposes:
    - type: mcp
      namespace: disability-claims
      port: 8080
      tools:
        - name: assess-disability-claim
          description: "Given a claim ID and policy number, run the disability assessment model and route for review."
          inputParameters:
            - name: claim_id
              in: body
              type: string
              description: "The claim identifier."
            - name: policy_number
              in: body
              type: string
              description: "The associated policy number."
          steps:
            - name: get-claim-data
              type: call
              call: "salesforce.get-claim"
              with:
                claim_id: "{{claim_id}}"
            - name: run-assessment
              type: call
              call: "azureml.assess-disability"
              with:
                claim_data: "{{get-claim-data}}"
                policy_number: "{{policy_number}}"
            - name: store-assessment
              type: call
              call: "sharepoint.upload-file"
              with:
                site_id: "claims_site"
                folder_path: "DisabilityAssessments/{{claim_id}}"
                file_name: "assessment_report.pdf"
                content: "{{run-assessment.report}}"
            - name: route-review
              type: call
              call: "servicenow.create-case"
              with:
                short_description: "Disability Claim Review: {{claim_id}}"
                category: "disability_claims"
                description: "Assessment score: {{run-assessment.score}}. Recommendation: {{run-assessment.recommendation}}. Report: {{store-assessment.url}}"
  consumes:
    - type: http
      namespace: salesforce
      baseUri: "https://northwesternmutual.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token"
      resources:
        - name: claims
          path: "/sobjects/Claim__c/{{claim_id}}"
          inputParameters:
            - name: claim_id
              in: path
          operations:
            - name: get-claim
              method: GET
    - type: http
      namespace: azureml
      baseUri: "https://northwesternmutual-ml.eastus.inference.ml.azure.com"
      authentication:
        type: bearer
        token: "$secrets.azureml_token"
      resources:
        - name: assessments
          path: "/score"
          operations:
            - name: assess-disability
              method: POST
    - type: http
      namespace: sharepoint
      baseUri: "https://graph.microsoft.com/v1.0/sites"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: drive-items
          path: "/{{site_id}}/drive/root:/{{folder_path}}/{{file_name}}:/content"
          inputParameters:
            - name: site_id
              in: path
            - name: folder_path
              in: path
            - name: file_name
              in: path
          operations:
            - name: upload-file
              method: PUT
    - type: http
      namespace: servicenow
      baseUri: "https://northwesternmutual.service-now.com/api/now"
      authentication:
        type: basic
        username: "$secrets.servicenow_user"
        password: "$secrets.servicenow_password"
      resources:
        - name: cases
          path: "/table/sn_customerservice_case"
          operations:
            - name: create-case
              method: POST

Queries Dynatrace for application health metrics.

naftiko: "0.5"
info:
  label: "Dynatrace Application Health Check"
  description: "Queries Dynatrace for application health metrics."
  tags:
    - monitoring
    - dynatrace
    - application-health
capability:
  exposes:
    - type: mcp
      namespace: app-health
      port: 8080
      tools:
        - name: get-dynatrace-health
          description: "Retrieve Dynatrace application health metrics by entity ID."
          inputParameters:
            - name: entity_id
              in: body
              type: string
              description: "The Dynatrace application entity ID."
          call: "dynatrace.get-app-health"
          with:
            entity_id: "{{entity_id}}"
          outputParameters:
            - name: availability
              type: string
              mapping: "$.result[0].data[0].values[0]"
            - name: response_time
              type: string
              mapping: "$.result[1].data[0].values[0]"
            - name: failure_rate
              type: string
              mapping: "$.result[2].data[0].values[0]"
  consumes:
    - type: http
      namespace: dynatrace
      baseUri: "https://northwesternmutual.live.dynatrace.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.dynatrace_token"
      resources:
        - name: metrics
          path: "/metrics/query"
          operations:
            - name: get-app-health
              method: POST

Retrieves the status of an AWS EC2 instance, returning instance state, type, and public IP.

naftiko: "0.5"
info:
  label: "EC2 Instance Status Check"
  description: "Retrieves the status of an AWS EC2 instance, returning instance state, type, and public IP."
  tags:
    - cloud
    - ec2
    - infrastructure
capability:
  exposes:
    - type: mcp
      namespace: cloud-infra
      port: 8080
      tools:
        - name: get-ec2-status
          description: "Check the status of an EC2 instance by instance ID."
          inputParameters:
            - name: instance_id
              in: body
              type: string
              description: "The EC2 instance identifier."
          call: "ec2.describe-instance"
          with:
            instance_id: "{{instance_id}}"
          outputParameters:
            - name: state
              type: string
              mapping: "$.Reservations[0].Instances[0].State.Name"
            - name: instance_type
              type: string
              mapping: "$.Reservations[0].Instances[0].InstanceType"
            - name: public_ip
              type: string
              mapping: "$.Reservations[0].Instances[0].PublicIpAddress"
  consumes:
    - type: http
      namespace: ec2
      baseUri: "https://ec2.us-east-1.amazonaws.com"
      authentication:
        type: aws
        accessKeyId: "$secrets.aws_access_key"
        secretAccessKey: "$secrets.aws_secret_key"
      resources:
        - name: instances
          path: "/?Action=DescribeInstances&InstanceId.1={{instance_id}}"
          inputParameters:
            - name: instance_id
              in: query
          operations:
            - name: describe-instance
              method: GET

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

naftiko: "0.5"
info:
  label: "Employee Onboarding Orchestrator"
  description: "On new hire creation in Workday, opens a ServiceNow onboarding ticket, provisions a SharePoint folder, and sends a Microsoft Teams welcome message."
  tags:
    - hr
    - onboarding
    - workday
    - servicenow
    - sharepoint
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: hr-onboarding
      port: 8080
      tools:
        - name: trigger-onboarding
          description: "Given a Workday employee ID and start date, orchestrate onboarding."
          inputParameters:
            - name: workday_employee_id
              in: body
              type: string
              description: "The Workday worker ID."
            - name: start_date
              in: body
              type: string
              description: "Employee 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"
            - 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 Northwestern Mutual, {{get-employee.first_name}}! Your onboarding ticket is {{open-ticket.number}}."
  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://northwesternmutual.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

Generates estate planning documents by pulling client estate data from Salesforce, running tax projection models in Azure ML, creating the document package in SharePoint, and emailing the advisor via Microsoft Outlook.

naftiko: "0.5"
info:
  label: "Estate Planning Document Generator"
  description: "Generates estate planning documents by pulling client estate data from Salesforce, running tax projection models in Azure ML, creating the document package in SharePoint, and emailing the advisor via Microsoft Outlook."
  tags:
    - financial-planning
    - estate-planning
    - salesforce
    - azure-machine-learning
    - sharepoint
    - microsoft-outlook
capability:
  exposes:
    - type: mcp
      namespace: estate-planning
      port: 8080
      tools:
        - name: generate-estate-plan
          description: "Given a client ID and estate value, generate tax projections and estate planning documents."
          inputParameters:
            - name: client_id
              in: body
              type: string
              description: "The client identifier."
            - name: estate_value
              in: body
              type: string
              description: "Estimated estate value."
            - name: advisor_email
              in: body
              type: string
              description: "The advisor's email."
          steps:
            - name: get-estate-data
              type: call
              call: "salesforce.get-estate-profile"
              with:
                client_id: "{{client_id}}"
            - name: run-tax-projection
              type: call
              call: "azureml.project-estate-tax"
              with:
                estate_value: "{{estate_value}}"
                beneficiaries: "{{get-estate-data.beneficiaries}}"
            - name: create-documents
              type: call
              call: "sharepoint.upload-file"
              with:
                site_id: "estate_planning_site"
                folder_path: "EstatePlans/{{client_id}}"
                file_name: "estate_plan.pdf"
                content: "{{run-tax-projection.plan_content}}"
            - name: email-advisor
              type: call
              call: "outlook.send-mail"
              with:
                recipient: "{{advisor_email}}"
                subject: "Estate Plan Ready: {{get-estate-data.client_name}}"
                body: "Estate plan for {{get-estate-data.client_name}} is ready. Estate value: ${{estate_value}}. Projected tax: ${{run-tax-projection.estimated_tax}}. Download: {{create-documents.url}}"
  consumes:
    - type: http
      namespace: salesforce
      baseUri: "https://northwesternmutual.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token"
      resources:
        - name: estate-profiles
          path: "/sobjects/Estate_Profile__c/{{client_id}}"
          inputParameters:
            - name: client_id
              in: path
          operations:
            - name: get-estate-profile
              method: GET
    - type: http
      namespace: azureml
      baseUri: "https://northwesternmutual-ml.eastus.inference.ml.azure.com"
      authentication:
        type: bearer
        token: "$secrets.azureml_token"
      resources:
        - name: projections
          path: "/score"
          operations:
            - name: project-estate-tax
              method: POST
    - type: http
      namespace: sharepoint
      baseUri: "https://graph.microsoft.com/v1.0/sites"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: drive-items
          path: "/{{site_id}}/drive/root:/{{folder_path}}/{{file_name}}:/content"
          inputParameters:
            - name: site_id
              in: path
            - name: folder_path
              in: path
            - name: file_name
              in: path
          operations:
            - name: upload-file
              method: PUT
    - type: http
      namespace: outlook
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: send-mail
          path: "/me/sendMail"
          operations:
            - name: send-mail
              method: POST

Retrieves investment research data from FactSet for a given security.

naftiko: "0.5"
info:
  label: "FactSet Investment Research Lookup"
  description: "Retrieves investment research data from FactSet for a given security."
  tags:
    - wealth-management
    - research
    - factset
capability:
  exposes:
    - type: mcp
      namespace: investment-research
      port: 8080
      tools:
        - name: get-factset-research
          description: "Look up FactSet research data by security identifier."
          inputParameters:
            - name: security_id
              in: body
              type: string
              description: "The FactSet security identifier."
          call: "factset.get-research"
          with:
            security_id: "{{security_id}}"
          outputParameters:
            - name: analyst_rating
              type: string
              mapping: "$.data.consensus_rating"
            - name: price_target
              type: string
              mapping: "$.data.mean_price_target"
            - name: pe_ratio
              type: string
              mapping: "$.data.pe_ratio"
  consumes:
    - type: http
      namespace: factset
      baseUri: "https://api.factset.com/content/factset-estimates/v2"
      authentication:
        type: basic
        username: "$secrets.factset_user"
        password: "$secrets.factset_password"
      resources:
        - name: estimates
          path: "/consensus-estimates"
          operations:
            - name: get-research
              method: POST

Retrieves a client's financial planning goals from Salesforce, returning goal name, target amount, current progress, and target date.

naftiko: "0.5"
info:
  label: "Financial Planning Goal Tracker"
  description: "Retrieves a client's financial planning goals from Salesforce, returning goal name, target amount, current progress, and target date."
  tags:
    - financial-planning
    - goals
    - salesforce
capability:
  exposes:
    - type: mcp
      namespace: financial-planning
      port: 8080
      tools:
        - name: get-client-goals
          description: "Look up a client's financial planning goals by client ID."
          inputParameters:
            - name: client_id
              in: body
              type: string
              description: "The client identifier."
          call: "salesforce.get-goals"
          with:
            client_id: "{{client_id}}"
          outputParameters:
            - name: goals
              type: array
              mapping: "$.records"
            - name: total_goals
              type: string
              mapping: "$.totalSize"
  consumes:
    - type: http
      namespace: salesforce
      baseUri: "https://northwesternmutual.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token"
      resources:
        - name: goals
          path: "/query/?q=SELECT+Id,Goal_Name__c,Target_Amount__c,Current_Progress__c,Target_Date__c+FROM+Financial_Goal__c+WHERE+Client_Id__c='{{client_id}}'"
          inputParameters:
            - name: client_id
              in: query
          operations:
            - name: get-goals
              method: GET

Retrieves the current status of a Northwestern Mutual GitHub repository.

naftiko: "0.5"
info:
  label: "GitHub Repository Status"
  description: "Retrieves the current status of a Northwestern Mutual GitHub repository."
  tags:
    - development
    - github
capability:
  exposes:
    - type: mcp
      namespace: dev-ops
      port: 8080
      tools:
        - name: get-repo-status
          description: "Look up GitHub repository status by repo name."
          inputParameters:
            - name: repo_name
              in: body
              type: string
              description: "The GitHub repository name."
          call: "github.get-repo"
          with:
            repo: "{{repo_name}}"
          outputParameters:
            - name: open_prs
              type: string
              mapping: "$.open_issues_count"
            - name: default_branch
              type: string
              mapping: "$.default_branch"
            - name: last_push
              type: string
              mapping: "$.pushed_at"
  consumes:
    - type: http
      namespace: github
      baseUri: "https://api.github.com"
      authentication:
        type: bearer
        token: "$secrets.github_token"
      resources:
        - name: repos
          path: "/repos/northwesternmutual/{{repo}}"
          inputParameters:
            - name: repo
              in: path
          operations:
            - name: get-repo
              method: GET

Checks the status of an Informatica data integration job.

naftiko: "0.5"
info:
  label: "Informatica Data Integration Status"
  description: "Checks the status of an Informatica data integration job."
  tags:
    - data-engineering
    - informatica
    - integration
capability:
  exposes:
    - type: mcp
      namespace: data-integration
      port: 8080
      tools:
        - name: get-integration-status
          description: "Check Informatica job status by run ID."
          inputParameters:
            - name: run_id
              in: body
              type: string
              description: "The Informatica run identifier."
          call: "informatica.get-job-status"
          with:
            run_id: "{{run_id}}"
          outputParameters:
            - name: status
              type: string
              mapping: "$.status"
            - name: rows_processed
              type: string
              mapping: "$.targetRowsInserted"
  consumes:
    - type: http
      namespace: informatica
      baseUri: "https://na1.dm-us.informaticacloud.com/saas/api/v2"
      authentication:
        type: bearer
        token: "$secrets.informatica_token"
      resources:
        - name: jobs
          path: "/activity/activityLog/{{run_id}}"
          inputParameters:
            - name: run_id
              in: path
          operations:
            - name: get-job-status
              method: GET

Orchestrates insurance operations including data retrieval, processing, and automated notification for Northwestern Mutual.

naftiko: "0.5"
info:
  label: "Northwestern Mutual Workflow 1"
  description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for Northwestern Mutual."
  tags:
    - insurance
    - operations
    - salesforce
capability:
  exposes:
    - type: mcp
      namespace: insurance
      port: 8080
      tools:
        - name: northwestern-mutual-workflow-1
          description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for Northwestern Mutual."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Primary identifier for this workflow"
          steps:
            - name: process
              type: call
              call: "northwesternmutual-ops.run-workflow-1"
              with:
                identifier: "{{identifier}}"
            - name: create
              type: call
              call: "salesforce.create-account"
              with:
                data: "{{process.result}}"
  consumes:
    - type: http
      namespace: northwesternmutual-ops
      baseUri: "https://api.northwesternmutual.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.nwm_api_token"
      resources:
        - name: operations
          path: "/operations"
          operations:
            - name: run-workflow-1
              method: POST
    - type: http
      namespace: salesforce
      baseUri: "https://northwesternmutual.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token"
      resources:
        - name: accounts
          path: "/accounts"
          operations:
            - name: create-account
              method: POST

Orchestrates insurance operations including data retrieval, processing, and automated notification for Northwestern Mutual.

naftiko: "0.5"
info:
  label: "Northwestern Mutual Workflow 10"
  description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for Northwestern Mutual."
  tags:
    - insurance
    - operations
    - sharepoint
capability:
  exposes:
    - type: mcp
      namespace: insurance
      port: 8080
      tools:
        - name: northwestern-mutual-workflow-10
          description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for Northwestern Mutual."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Primary identifier for this workflow"
          steps:
            - name: process
              type: call
              call: "northwesternmutual-ops.run-workflow-10"
              with:
                identifier: "{{identifier}}"
            - name: upload
              type: call
              call: "sharepoint.upload-document"
              with:
                content: "{{process.document}}"
  consumes:
    - type: http
      namespace: northwesternmutual-ops
      baseUri: "https://api.northwesternmutual.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.nwm_api_token"
      resources:
        - name: operations
          path: "/operations"
          operations:
            - name: run-workflow-10
              method: POST
    - type: http
      namespace: sharepoint
      baseUri: "https://northwesternmutual.sharepoint.com/_api/v2.0"
      authentication:
        type: bearer
        token: "$secrets.sharepoint_token"
      resources:
        - name: documents
          path: "/documents"
          operations:
            - name: upload-document
              method: POST

Orchestrates insurance operations including data retrieval, processing, and automated notification for Northwestern Mutual.

naftiko: "0.5"
info:
  label: "Northwestern Mutual Workflow 11"
  description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for Northwestern Mutual."
  tags:
    - insurance
    - operations
    - hubspot
capability:
  exposes:
    - type: mcp
      namespace: insurance
      port: 8080
      tools:
        - name: northwestern-mutual-workflow-11
          description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for Northwestern Mutual."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Primary identifier for this workflow"
          steps:
            - name: process
              type: call
              call: "northwesternmutual-ops.run-workflow-11"
              with:
                identifier: "{{identifier}}"
            - name: notify
              type: call
              call: "hubspot.send-email"
              with:
                to: "{{process.email}}"
                subject: "Workflow 11 Complete"
                body: "{{process.summary}}"
  consumes:
    - type: http
      namespace: northwesternmutual-ops
      baseUri: "https://api.northwesternmutual.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.nwm_api_token"
      resources:
        - name: operations
          path: "/operations"
          operations:
            - name: run-workflow-11
              method: POST
    - type: http
      namespace: hubspot
      baseUri: "https://api.hubapi.com/crm/v3"
      authentication:
        type: bearer
        token: "$secrets.hubspot_token"
      resources:
        - name: contacts
          path: "/contacts"
          operations:
            - name: send-email
              method: POST

Orchestrates insurance operations including data retrieval, processing, and automated notification for Northwestern Mutual.

naftiko: "0.5"
info:
  label: "Northwestern Mutual Workflow 12"
  description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for Northwestern Mutual."
  tags:
    - insurance
    - operations
    - datadog
capability:
  exposes:
    - type: mcp
      namespace: insurance
      port: 8080
      tools:
        - name: northwestern-mutual-workflow-12
          description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for Northwestern Mutual."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Primary identifier for this workflow"
          steps:
            - name: process
              type: call
              call: "northwesternmutual-ops.run-workflow-12"
              with:
                identifier: "{{identifier}}"
            - name: push
              type: call
              call: "datadog.submit-metrics"
              with:
                metric_name: "insurance.workflow_12"
                data: "{{process.metrics}}"
  consumes:
    - type: http
      namespace: northwesternmutual-ops
      baseUri: "https://api.northwesternmutual.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.nwm_api_token"
      resources:
        - name: operations
          path: "/operations"
          operations:
            - name: run-workflow-12
              method: POST
    - type: http
      namespace: datadog
      baseUri: "https://api.datadoghq.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.datadog_token"
      resources:
        - name: metrics
          path: "/metrics"
          operations:
            - name: submit-metrics
              method: POST

Orchestrates insurance operations including data retrieval, processing, and automated notification for Northwestern Mutual.

naftiko: "0.5"
info:
  label: "Northwestern Mutual Workflow 13"
  description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for Northwestern Mutual."
  tags:
    - insurance
    - operations
    - salesforce
capability:
  exposes:
    - type: mcp
      namespace: insurance
      port: 8080
      tools:
        - name: northwestern-mutual-workflow-13
          description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for Northwestern Mutual."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Primary identifier for this workflow"
          steps:
            - name: process
              type: call
              call: "northwesternmutual-ops.run-workflow-13"
              with:
                identifier: "{{identifier}}"
            - name: create
              type: call
              call: "salesforce.create-account"
              with:
                data: "{{process.result}}"
  consumes:
    - type: http
      namespace: northwesternmutual-ops
      baseUri: "https://api.northwesternmutual.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.nwm_api_token"
      resources:
        - name: operations
          path: "/operations"
          operations:
            - name: run-workflow-13
              method: POST
    - type: http
      namespace: salesforce
      baseUri: "https://northwesternmutual.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token"
      resources:
        - name: accounts
          path: "/accounts"
          operations:
            - name: create-account
              method: POST

Orchestrates insurance operations including data retrieval, processing, and automated notification for Northwestern Mutual.

naftiko: "0.5"
info:
  label: "Northwestern Mutual Workflow 14"
  description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for Northwestern Mutual."
  tags:
    - insurance
    - operations
    - servicenow
capability:
  exposes:
    - type: mcp
      namespace: insurance
      port: 8080
      tools:
        - name: northwestern-mutual-workflow-14
          description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for Northwestern Mutual."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Primary identifier for this workflow"
          steps:
            - name: process
              type: call
              call: "northwesternmutual-ops.run-workflow-14"
              with:
                identifier: "{{identifier}}"
            - name: create
              type: call
              call: "servicenow.create-incident"
              with:
                data: "{{process.result}}"
  consumes:
    - type: http
      namespace: northwesternmutual-ops
      baseUri: "https://api.northwesternmutual.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.nwm_api_token"
      resources:
        - name: operations
          path: "/operations"
          operations:
            - name: run-workflow-14
              method: POST
    - type: http
      namespace: servicenow
      baseUri: "https://northwesternmutual.service-now.com/api/now/v1"
      authentication:
        type: bearer
        token: "$secrets.servicenow_token"
      resources:
        - name: incidents
          path: "/incidents"
          operations:
            - name: create-incident
              method: POST

Orchestrates insurance operations including data retrieval, processing, and automated notification for Northwestern Mutual.

naftiko: "0.5"
info:
  label: "Northwestern Mutual Workflow 15"
  description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for Northwestern Mutual."
  tags:
    - insurance
    - operations
    - slack
capability:
  exposes:
    - type: mcp
      namespace: insurance
      port: 8080
      tools:
        - name: northwestern-mutual-workflow-15
          description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for Northwestern Mutual."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Primary identifier for this workflow"
          steps:
            - name: process
              type: call
              call: "northwesternmutual-ops.run-workflow-15"
              with:
                identifier: "{{identifier}}"
            - name: notify
              type: call
              call: "slack.post-message"
              with:
                channel: "#insurance"
                text: "Completed workflow 15: {{process.summary}}"
  consumes:
    - type: http
      namespace: northwesternmutual-ops
      baseUri: "https://api.northwesternmutual.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.nwm_api_token"
      resources:
        - name: operations
          path: "/operations"
          operations:
            - name: run-workflow-15
              method: POST
    - type: http
      namespace: slack
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_token"
      resources:
        - name: messages
          path: "/messages"
          operations:
            - name: post-message
              method: POST

Orchestrates insurance operations including data retrieval, processing, and automated notification for Northwestern Mutual.

naftiko: "0.5"
info:
  label: "Northwestern Mutual Workflow 16"
  description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for Northwestern Mutual."
  tags:
    - insurance
    - operations
    - confluence
capability:
  exposes:
    - type: mcp
      namespace: insurance
      port: 8080
      tools:
        - name: northwestern-mutual-workflow-16
          description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for Northwestern Mutual."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Primary identifier for this workflow"
          steps:
            - name: process
              type: call
              call: "northwesternmutual-ops.run-workflow-16"
              with:
                identifier: "{{identifier}}"
            - name: publish
              type: call
              call: "confluence.create-page"
              with:
                space: "INSURA"
                title: "Report 16"
                content: "{{process.report}}"
  consumes:
    - type: http
      namespace: northwesternmutual-ops
      baseUri: "https://api.northwesternmutual.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.nwm_api_token"
      resources:
        - name: operations
          path: "/operations"
          operations:
            - name: run-workflow-16
              method: POST
    - type: http
      namespace: confluence
      baseUri: "https://northwesternmutual.atlassian.net/wiki/rest/api"
      authentication:
        type: bearer
        token: "$secrets.confluence_token"
      resources:
        - name: pages
          path: "/pages"
          operations:
            - name: create-page
              method: POST

Orchestrates insurance operations including data retrieval, processing, and automated notification for Northwestern Mutual.

naftiko: "0.5"
info:
  label: "Northwestern Mutual Workflow 17"
  description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for Northwestern Mutual."
  tags:
    - insurance
    - operations
    - powerbi
capability:
  exposes:
    - type: mcp
      namespace: insurance
      port: 8080
      tools:
        - name: northwestern-mutual-workflow-17
          description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for Northwestern Mutual."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Primary identifier for this workflow"
          steps:
            - name: process
              type: call
              call: "northwesternmutual-ops.run-workflow-17"
              with:
                identifier: "{{identifier}}"
            - name: refresh
              type: call
              call: "powerbi.refresh-dataset"
              with:
                dataset_id: "workflow_17"
                data: "{{process.metrics}}"
  consumes:
    - type: http
      namespace: northwesternmutual-ops
      baseUri: "https://api.northwesternmutual.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.nwm_api_token"
      resources:
        - name: operations
          path: "/operations"
          operations:
            - name: run-workflow-17
              method: POST
    - type: http
      namespace: powerbi
      baseUri: "https://api.powerbi.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.powerbi_token"
      resources:
        - name: datasets
          path: "/datasets"
          operations:
            - name: refresh-dataset
              method: POST

Orchestrates insurance operations including data retrieval, processing, and automated notification for Northwestern Mutual.

naftiko: "0.5"
info:
  label: "Northwestern Mutual Workflow 18"
  description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for Northwestern Mutual."
  tags:
    - insurance
    - operations
    - jira
capability:
  exposes:
    - type: mcp
      namespace: insurance
      port: 8080
      tools:
        - name: northwestern-mutual-workflow-18
          description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for Northwestern Mutual."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Primary identifier for this workflow"
          steps:
            - name: process
              type: call
              call: "northwesternmutual-ops.run-workflow-18"
              with:
                identifier: "{{identifier}}"
            - name: create-ticket
              type: call
              call: "jira.create-issue"
              with:
                project: "INSU"
                summary: "Task from workflow 18"
                description: "{{process.details}}"
  consumes:
    - type: http
      namespace: northwesternmutual-ops
      baseUri: "https://api.northwesternmutual.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.nwm_api_token"
      resources:
        - name: operations
          path: "/operations"
          operations:
            - name: run-workflow-18
              method: POST
    - type: http
      namespace: jira
      baseUri: "https://northwesternmutual.atlassian.net/rest/api/3"
      authentication:
        type: bearer
        token: "$secrets.jira_token"
      resources:
        - name: issues
          path: "/issues"
          operations:
            - name: create-issue
              method: POST

Orchestrates insurance operations including data retrieval, processing, and automated notification for Northwestern Mutual.

naftiko: "0.5"
info:
  label: "Northwestern Mutual Workflow 19"
  description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for Northwestern Mutual."
  tags:
    - insurance
    - operations
    - teams
capability:
  exposes:
    - type: mcp
      namespace: insurance
      port: 8080
      tools:
        - name: northwestern-mutual-workflow-19
          description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for Northwestern Mutual."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Primary identifier for this workflow"
          steps:
            - name: process
              type: call
              call: "northwesternmutual-ops.run-workflow-19"
              with:
                identifier: "{{identifier}}"
            - name: notify
              type: call
              call: "teams.send-message"
              with:
                channel_id: "insurance"
                message: "Workflow 19 complete: {{process.summary}}"
  consumes:
    - type: http
      namespace: northwesternmutual-ops
      baseUri: "https://api.northwesternmutual.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.nwm_api_token"
      resources:
        - name: operations
          path: "/operations"
          operations:
            - name: run-workflow-19
              method: POST
    - type: http
      namespace: teams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.teams_token"
      resources:
        - name: messages
          path: "/messages"
          operations:
            - name: send-message
              method: POST

Orchestrates insurance operations including data retrieval, processing, and automated notification for Northwestern Mutual.

naftiko: "0.5"
info:
  label: "Northwestern Mutual Workflow 2"
  description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for Northwestern Mutual."
  tags:
    - insurance
    - operations
    - servicenow
capability:
  exposes:
    - type: mcp
      namespace: insurance
      port: 8080
      tools:
        - name: northwestern-mutual-workflow-2
          description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for Northwestern Mutual."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Primary identifier for this workflow"
          steps:
            - name: process
              type: call
              call: "northwesternmutual-ops.run-workflow-2"
              with:
                identifier: "{{identifier}}"
            - name: create
              type: call
              call: "servicenow.create-incident"
              with:
                data: "{{process.result}}"
  consumes:
    - type: http
      namespace: northwesternmutual-ops
      baseUri: "https://api.northwesternmutual.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.nwm_api_token"
      resources:
        - name: operations
          path: "/operations"
          operations:
            - name: run-workflow-2
              method: POST
    - type: http
      namespace: servicenow
      baseUri: "https://northwesternmutual.service-now.com/api/now/v1"
      authentication:
        type: bearer
        token: "$secrets.servicenow_token"
      resources:
        - name: incidents
          path: "/incidents"
          operations:
            - name: create-incident
              method: POST

Orchestrates insurance operations including data retrieval, processing, and automated notification for Northwestern Mutual.

naftiko: "0.5"
info:
  label: "Northwestern Mutual Workflow 20"
  description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for Northwestern Mutual."
  tags:
    - insurance
    - operations
    - tableau
capability:
  exposes:
    - type: mcp
      namespace: insurance
      port: 8080
      tools:
        - name: northwestern-mutual-workflow-20
          description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for Northwestern Mutual."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Primary identifier for this workflow"
          steps:
            - name: process
              type: call
              call: "northwesternmutual-ops.run-workflow-20"
              with:
                identifier: "{{identifier}}"
            - name: refresh
              type: call
              call: "tableau.publish-datasource"
              with:
                dataset_id: "workflow_20"
                data: "{{process.metrics}}"
  consumes:
    - type: http
      namespace: northwesternmutual-ops
      baseUri: "https://api.northwesternmutual.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.nwm_api_token"
      resources:
        - name: operations
          path: "/operations"
          operations:
            - name: run-workflow-20
              method: POST
    - type: http
      namespace: tableau
      baseUri: "https://northwesternmutual-tableau.online.tableau.com/api/3.19"
      authentication:
        type: bearer
        token: "$secrets.tableau_token"
      resources:
        - name: datasources
          path: "/datasources"
          operations:
            - name: publish-datasource
              method: POST

Orchestrates insurance operations including data retrieval, processing, and automated notification for Northwestern Mutual.

naftiko: "0.5"
info:
  label: "Northwestern Mutual Workflow 21"
  description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for Northwestern Mutual."
  tags:
    - insurance
    - operations
    - box
capability:
  exposes:
    - type: mcp
      namespace: insurance
      port: 8080
      tools:
        - name: northwestern-mutual-workflow-21
          description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for Northwestern Mutual."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Primary identifier for this workflow"
          steps:
            - name: process
              type: call
              call: "northwesternmutual-ops.run-workflow-21"
              with:
                identifier: "{{identifier}}"
            - name: upload
              type: call
              call: "box.upload-file"
              with:
                content: "{{process.document}}"
  consumes:
    - type: http
      namespace: northwesternmutual-ops
      baseUri: "https://api.northwesternmutual.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.nwm_api_token"
      resources:
        - name: operations
          path: "/operations"
          operations:
            - name: run-workflow-21
              method: POST
    - type: http
      namespace: box
      baseUri: "https://api.box.com/2.0"
      authentication:
        type: bearer
        token: "$secrets.box_token"
      resources:
        - name: files
          path: "/files"
          operations:
            - name: upload-file
              method: POST

Orchestrates insurance operations including data retrieval, processing, and automated notification for Northwestern Mutual.

naftiko: "0.5"
info:
  label: "Northwestern Mutual Workflow 22"
  description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for Northwestern Mutual."
  tags:
    - insurance
    - operations
    - sharepoint
capability:
  exposes:
    - type: mcp
      namespace: insurance
      port: 8080
      tools:
        - name: northwestern-mutual-workflow-22
          description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for Northwestern Mutual."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Primary identifier for this workflow"
          steps:
            - name: process
              type: call
              call: "northwesternmutual-ops.run-workflow-22"
              with:
                identifier: "{{identifier}}"
            - name: upload
              type: call
              call: "sharepoint.upload-document"
              with:
                content: "{{process.document}}"
  consumes:
    - type: http
      namespace: northwesternmutual-ops
      baseUri: "https://api.northwesternmutual.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.nwm_api_token"
      resources:
        - name: operations
          path: "/operations"
          operations:
            - name: run-workflow-22
              method: POST
    - type: http
      namespace: sharepoint
      baseUri: "https://northwesternmutual.sharepoint.com/_api/v2.0"
      authentication:
        type: bearer
        token: "$secrets.sharepoint_token"
      resources:
        - name: documents
          path: "/documents"
          operations:
            - name: upload-document
              method: POST

Orchestrates insurance operations including data retrieval, processing, and automated notification for Northwestern Mutual.

naftiko: "0.5"
info:
  label: "Northwestern Mutual Workflow 23"
  description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for Northwestern Mutual."
  tags:
    - insurance
    - operations
    - hubspot
capability:
  exposes:
    - type: mcp
      namespace: insurance
      port: 8080
      tools:
        - name: northwestern-mutual-workflow-23
          description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for Northwestern Mutual."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Primary identifier for this workflow"
          steps:
            - name: process
              type: call
              call: "northwesternmutual-ops.run-workflow-23"
              with:
                identifier: "{{identifier}}"
            - name: notify
              type: call
              call: "hubspot.send-email"
              with:
                to: "{{process.email}}"
                subject: "Workflow 23 Complete"
                body: "{{process.summary}}"
  consumes:
    - type: http
      namespace: northwesternmutual-ops
      baseUri: "https://api.northwesternmutual.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.nwm_api_token"
      resources:
        - name: operations
          path: "/operations"
          operations:
            - name: run-workflow-23
              method: POST
    - type: http
      namespace: hubspot
      baseUri: "https://api.hubapi.com/crm/v3"
      authentication:
        type: bearer
        token: "$secrets.hubspot_token"
      resources:
        - name: contacts
          path: "/contacts"
          operations:
            - name: send-email
              method: POST

Orchestrates insurance operations including data retrieval, processing, and automated notification for Northwestern Mutual.

naftiko: "0.5"
info:
  label: "Northwestern Mutual Workflow 24"
  description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for Northwestern Mutual."
  tags:
    - insurance
    - operations
    - datadog
capability:
  exposes:
    - type: mcp
      namespace: insurance
      port: 8080
      tools:
        - name: northwestern-mutual-workflow-24
          description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for Northwestern Mutual."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Primary identifier for this workflow"
          steps:
            - name: process
              type: call
              call: "northwesternmutual-ops.run-workflow-24"
              with:
                identifier: "{{identifier}}"
            - name: push
              type: call
              call: "datadog.submit-metrics"
              with:
                metric_name: "insurance.workflow_24"
                data: "{{process.metrics}}"
  consumes:
    - type: http
      namespace: northwesternmutual-ops
      baseUri: "https://api.northwesternmutual.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.nwm_api_token"
      resources:
        - name: operations
          path: "/operations"
          operations:
            - name: run-workflow-24
              method: POST
    - type: http
      namespace: datadog
      baseUri: "https://api.datadoghq.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.datadog_token"
      resources:
        - name: metrics
          path: "/metrics"
          operations:
            - name: submit-metrics
              method: POST

Orchestrates insurance operations including data retrieval, processing, and automated notification for Northwestern Mutual.

naftiko: "0.5"
info:
  label: "Northwestern Mutual Workflow 25"
  description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for Northwestern Mutual."
  tags:
    - insurance
    - operations
    - salesforce
capability:
  exposes:
    - type: mcp
      namespace: insurance
      port: 8080
      tools:
        - name: northwestern-mutual-workflow-25
          description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for Northwestern Mutual."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Primary identifier for this workflow"
          steps:
            - name: process
              type: call
              call: "northwesternmutual-ops.run-workflow-25"
              with:
                identifier: "{{identifier}}"
            - name: create
              type: call
              call: "salesforce.create-account"
              with:
                data: "{{process.result}}"
  consumes:
    - type: http
      namespace: northwesternmutual-ops
      baseUri: "https://api.northwesternmutual.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.nwm_api_token"
      resources:
        - name: operations
          path: "/operations"
          operations:
            - name: run-workflow-25
              method: POST
    - type: http
      namespace: salesforce
      baseUri: "https://northwesternmutual.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token"
      resources:
        - name: accounts
          path: "/accounts"
          operations:
            - name: create-account
              method: POST

Orchestrates insurance operations including data retrieval, processing, and automated notification for Northwestern Mutual.

naftiko: "0.5"
info:
  label: "Northwestern Mutual Workflow 26"
  description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for Northwestern Mutual."
  tags:
    - insurance
    - operations
    - servicenow
capability:
  exposes:
    - type: mcp
      namespace: insurance
      port: 8080
      tools:
        - name: northwestern-mutual-workflow-26
          description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for Northwestern Mutual."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Primary identifier for this workflow"
          steps:
            - name: process
              type: call
              call: "northwesternmutual-ops.run-workflow-26"
              with:
                identifier: "{{identifier}}"
            - name: create
              type: call
              call: "servicenow.create-incident"
              with:
                data: "{{process.result}}"
  consumes:
    - type: http
      namespace: northwesternmutual-ops
      baseUri: "https://api.northwesternmutual.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.nwm_api_token"
      resources:
        - name: operations
          path: "/operations"
          operations:
            - name: run-workflow-26
              method: POST
    - type: http
      namespace: servicenow
      baseUri: "https://northwesternmutual.service-now.com/api/now/v1"
      authentication:
        type: bearer
        token: "$secrets.servicenow_token"
      resources:
        - name: incidents
          path: "/incidents"
          operations:
            - name: create-incident
              method: POST

Orchestrates insurance operations including data retrieval, processing, and automated notification for Northwestern Mutual.

naftiko: "0.5"
info:
  label: "Northwestern Mutual Workflow 27"
  description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for Northwestern Mutual."
  tags:
    - insurance
    - operations
    - slack
capability:
  exposes:
    - type: mcp
      namespace: insurance
      port: 8080
      tools:
        - name: northwestern-mutual-workflow-27
          description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for Northwestern Mutual."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Primary identifier for this workflow"
          steps:
            - name: process
              type: call
              call: "northwesternmutual-ops.run-workflow-27"
              with:
                identifier: "{{identifier}}"
            - name: notify
              type: call
              call: "slack.post-message"
              with:
                channel: "#insurance"
                text: "Completed workflow 27: {{process.summary}}"
  consumes:
    - type: http
      namespace: northwesternmutual-ops
      baseUri: "https://api.northwesternmutual.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.nwm_api_token"
      resources:
        - name: operations
          path: "/operations"
          operations:
            - name: run-workflow-27
              method: POST
    - type: http
      namespace: slack
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_token"
      resources:
        - name: messages
          path: "/messages"
          operations:
            - name: post-message
              method: POST

Orchestrates insurance operations including data retrieval, processing, and automated notification for Northwestern Mutual.

naftiko: "0.5"
info:
  label: "Northwestern Mutual Workflow 28"
  description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for Northwestern Mutual."
  tags:
    - insurance
    - operations
    - confluence
capability:
  exposes:
    - type: mcp
      namespace: insurance
      port: 8080
      tools:
        - name: northwestern-mutual-workflow-28
          description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for Northwestern Mutual."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Primary identifier for this workflow"
          steps:
            - name: process
              type: call
              call: "northwesternmutual-ops.run-workflow-28"
              with:
                identifier: "{{identifier}}"
            - name: publish
              type: call
              call: "confluence.create-page"
              with:
                space: "INSURA"
                title: "Report 28"
                content: "{{process.report}}"
  consumes:
    - type: http
      namespace: northwesternmutual-ops
      baseUri: "https://api.northwesternmutual.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.nwm_api_token"
      resources:
        - name: operations
          path: "/operations"
          operations:
            - name: run-workflow-28
              method: POST
    - type: http
      namespace: confluence
      baseUri: "https://northwesternmutual.atlassian.net/wiki/rest/api"
      authentication:
        type: bearer
        token: "$secrets.confluence_token"
      resources:
        - name: pages
          path: "/pages"
          operations:
            - name: create-page
              method: POST

Orchestrates insurance operations including data retrieval, processing, and automated notification for Northwestern Mutual.

naftiko: "0.5"
info:
  label: "Northwestern Mutual Workflow 29"
  description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for Northwestern Mutual."
  tags:
    - insurance
    - operations
    - powerbi
capability:
  exposes:
    - type: mcp
      namespace: insurance
      port: 8080
      tools:
        - name: northwestern-mutual-workflow-29
          description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for Northwestern Mutual."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Primary identifier for this workflow"
          steps:
            - name: process
              type: call
              call: "northwesternmutual-ops.run-workflow-29"
              with:
                identifier: "{{identifier}}"
            - name: refresh
              type: call
              call: "powerbi.refresh-dataset"
              with:
                dataset_id: "workflow_29"
                data: "{{process.metrics}}"
  consumes:
    - type: http
      namespace: northwesternmutual-ops
      baseUri: "https://api.northwesternmutual.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.nwm_api_token"
      resources:
        - name: operations
          path: "/operations"
          operations:
            - name: run-workflow-29
              method: POST
    - type: http
      namespace: powerbi
      baseUri: "https://api.powerbi.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.powerbi_token"
      resources:
        - name: datasets
          path: "/datasets"
          operations:
            - name: refresh-dataset
              method: POST

Orchestrates insurance operations including data retrieval, processing, and automated notification for Northwestern Mutual.

naftiko: "0.5"
info:
  label: "Northwestern Mutual Workflow 3"
  description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for Northwestern Mutual."
  tags:
    - insurance
    - operations
    - slack
capability:
  exposes:
    - type: mcp
      namespace: insurance
      port: 8080
      tools:
        - name: northwestern-mutual-workflow-3
          description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for Northwestern Mutual."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Primary identifier for this workflow"
          steps:
            - name: process
              type: call
              call: "northwesternmutual-ops.run-workflow-3"
              with:
                identifier: "{{identifier}}"
            - name: notify
              type: call
              call: "slack.post-message"
              with:
                channel: "#insurance"
                text: "Completed workflow 3: {{process.summary}}"
  consumes:
    - type: http
      namespace: northwesternmutual-ops
      baseUri: "https://api.northwesternmutual.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.nwm_api_token"
      resources:
        - name: operations
          path: "/operations"
          operations:
            - name: run-workflow-3
              method: POST
    - type: http
      namespace: slack
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_token"
      resources:
        - name: messages
          path: "/messages"
          operations:
            - name: post-message
              method: POST

Orchestrates insurance operations including data retrieval, processing, and automated notification for Northwestern Mutual.

naftiko: "0.5"
info:
  label: "Northwestern Mutual Workflow 30"
  description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for Northwestern Mutual."
  tags:
    - insurance
    - operations
    - jira
capability:
  exposes:
    - type: mcp
      namespace: insurance
      port: 8080
      tools:
        - name: northwestern-mutual-workflow-30
          description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for Northwestern Mutual."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Primary identifier for this workflow"
          steps:
            - name: process
              type: call
              call: "northwesternmutual-ops.run-workflow-30"
              with:
                identifier: "{{identifier}}"
            - name: create-ticket
              type: call
              call: "jira.create-issue"
              with:
                project: "INSU"
                summary: "Task from workflow 30"
                description: "{{process.details}}"
  consumes:
    - type: http
      namespace: northwesternmutual-ops
      baseUri: "https://api.northwesternmutual.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.nwm_api_token"
      resources:
        - name: operations
          path: "/operations"
          operations:
            - name: run-workflow-30
              method: POST
    - type: http
      namespace: jira
      baseUri: "https://northwesternmutual.atlassian.net/rest/api/3"
      authentication:
        type: bearer
        token: "$secrets.jira_token"
      resources:
        - name: issues
          path: "/issues"
          operations:
            - name: create-issue
              method: POST

Orchestrates insurance operations including data retrieval, processing, and automated notification for Northwestern Mutual.

naftiko: "0.5"
info:
  label: "Northwestern Mutual Workflow 31"
  description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for Northwestern Mutual."
  tags:
    - insurance
    - operations
    - teams
capability:
  exposes:
    - type: mcp
      namespace: insurance
      port: 8080
      tools:
        - name: northwestern-mutual-workflow-31
          description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for Northwestern Mutual."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Primary identifier for this workflow"
          steps:
            - name: process
              type: call
              call: "northwesternmutual-ops.run-workflow-31"
              with:
                identifier: "{{identifier}}"
            - name: notify
              type: call
              call: "teams.send-message"
              with:
                channel_id: "insurance"
                message: "Workflow 31 complete: {{process.summary}}"
  consumes:
    - type: http
      namespace: northwesternmutual-ops
      baseUri: "https://api.northwesternmutual.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.nwm_api_token"
      resources:
        - name: operations
          path: "/operations"
          operations:
            - name: run-workflow-31
              method: POST
    - type: http
      namespace: teams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.teams_token"
      resources:
        - name: messages
          path: "/messages"
          operations:
            - name: send-message
              method: POST

Orchestrates insurance operations including data retrieval, processing, and automated notification for Northwestern Mutual.

naftiko: "0.5"
info:
  label: "Northwestern Mutual Workflow 32"
  description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for Northwestern Mutual."
  tags:
    - insurance
    - operations
    - tableau
capability:
  exposes:
    - type: mcp
      namespace: insurance
      port: 8080
      tools:
        - name: northwestern-mutual-workflow-32
          description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for Northwestern Mutual."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Primary identifier for this workflow"
          steps:
            - name: process
              type: call
              call: "northwesternmutual-ops.run-workflow-32"
              with:
                identifier: "{{identifier}}"
            - name: refresh
              type: call
              call: "tableau.publish-datasource"
              with:
                dataset_id: "workflow_32"
                data: "{{process.metrics}}"
  consumes:
    - type: http
      namespace: northwesternmutual-ops
      baseUri: "https://api.northwesternmutual.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.nwm_api_token"
      resources:
        - name: operations
          path: "/operations"
          operations:
            - name: run-workflow-32
              method: POST
    - type: http
      namespace: tableau
      baseUri: "https://northwesternmutual-tableau.online.tableau.com/api/3.19"
      authentication:
        type: bearer
        token: "$secrets.tableau_token"
      resources:
        - name: datasources
          path: "/datasources"
          operations:
            - name: publish-datasource
              method: POST

Orchestrates insurance operations including data retrieval, processing, and automated notification for Northwestern Mutual.

naftiko: "0.5"
info:
  label: "Northwestern Mutual Workflow 33"
  description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for Northwestern Mutual."
  tags:
    - insurance
    - operations
    - box
capability:
  exposes:
    - type: mcp
      namespace: insurance
      port: 8080
      tools:
        - name: northwestern-mutual-workflow-33
          description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for Northwestern Mutual."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Primary identifier for this workflow"
          steps:
            - name: process
              type: call
              call: "northwesternmutual-ops.run-workflow-33"
              with:
                identifier: "{{identifier}}"
            - name: upload
              type: call
              call: "box.upload-file"
              with:
                content: "{{process.document}}"
  consumes:
    - type: http
      namespace: northwesternmutual-ops
      baseUri: "https://api.northwesternmutual.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.nwm_api_token"
      resources:
        - name: operations
          path: "/operations"
          operations:
            - name: run-workflow-33
              method: POST
    - type: http
      namespace: box
      baseUri: "https://api.box.com/2.0"
      authentication:
        type: bearer
        token: "$secrets.box_token"
      resources:
        - name: files
          path: "/files"
          operations:
            - name: upload-file
              method: POST

Orchestrates insurance operations including data retrieval, processing, and automated notification for Northwestern Mutual.

naftiko: "0.5"
info:
  label: "Northwestern Mutual Workflow 34"
  description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for Northwestern Mutual."
  tags:
    - insurance
    - operations
    - sharepoint
capability:
  exposes:
    - type: mcp
      namespace: insurance
      port: 8080
      tools:
        - name: northwestern-mutual-workflow-34
          description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for Northwestern Mutual."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Primary identifier for this workflow"
          steps:
            - name: process
              type: call
              call: "northwesternmutual-ops.run-workflow-34"
              with:
                identifier: "{{identifier}}"
            - name: upload
              type: call
              call: "sharepoint.upload-document"
              with:
                content: "{{process.document}}"
  consumes:
    - type: http
      namespace: northwesternmutual-ops
      baseUri: "https://api.northwesternmutual.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.nwm_api_token"
      resources:
        - name: operations
          path: "/operations"
          operations:
            - name: run-workflow-34
              method: POST
    - type: http
      namespace: sharepoint
      baseUri: "https://northwesternmutual.sharepoint.com/_api/v2.0"
      authentication:
        type: bearer
        token: "$secrets.sharepoint_token"
      resources:
        - name: documents
          path: "/documents"
          operations:
            - name: upload-document
              method: POST

Orchestrates insurance operations including data retrieval, processing, and automated notification for Northwestern Mutual.

naftiko: "0.5"
info:
  label: "Northwestern Mutual Workflow 35"
  description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for Northwestern Mutual."
  tags:
    - insurance
    - operations
    - hubspot
capability:
  exposes:
    - type: mcp
      namespace: insurance
      port: 8080
      tools:
        - name: northwestern-mutual-workflow-35
          description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for Northwestern Mutual."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Primary identifier for this workflow"
          steps:
            - name: process
              type: call
              call: "northwesternmutual-ops.run-workflow-35"
              with:
                identifier: "{{identifier}}"
            - name: notify
              type: call
              call: "hubspot.send-email"
              with:
                to: "{{process.email}}"
                subject: "Workflow 35 Complete"
                body: "{{process.summary}}"
  consumes:
    - type: http
      namespace: northwesternmutual-ops
      baseUri: "https://api.northwesternmutual.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.nwm_api_token"
      resources:
        - name: operations
          path: "/operations"
          operations:
            - name: run-workflow-35
              method: POST
    - type: http
      namespace: hubspot
      baseUri: "https://api.hubapi.com/crm/v3"
      authentication:
        type: bearer
        token: "$secrets.hubspot_token"
      resources:
        - name: contacts
          path: "/contacts"
          operations:
            - name: send-email
              method: POST

Orchestrates insurance operations including data retrieval, processing, and automated notification for Northwestern Mutual.

naftiko: "0.5"
info:
  label: "Northwestern Mutual Workflow 4"
  description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for Northwestern Mutual."
  tags:
    - insurance
    - operations
    - confluence
capability:
  exposes:
    - type: mcp
      namespace: insurance
      port: 8080
      tools:
        - name: northwestern-mutual-workflow-4
          description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for Northwestern Mutual."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Primary identifier for this workflow"
          steps:
            - name: process
              type: call
              call: "northwesternmutual-ops.run-workflow-4"
              with:
                identifier: "{{identifier}}"
            - name: publish
              type: call
              call: "confluence.create-page"
              with:
                space: "INSURA"
                title: "Report 4"
                content: "{{process.report}}"
  consumes:
    - type: http
      namespace: northwesternmutual-ops
      baseUri: "https://api.northwesternmutual.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.nwm_api_token"
      resources:
        - name: operations
          path: "/operations"
          operations:
            - name: run-workflow-4
              method: POST
    - type: http
      namespace: confluence
      baseUri: "https://northwesternmutual.atlassian.net/wiki/rest/api"
      authentication:
        type: bearer
        token: "$secrets.confluence_token"
      resources:
        - name: pages
          path: "/pages"
          operations:
            - name: create-page
              method: POST

Orchestrates insurance operations including data retrieval, processing, and automated notification for Northwestern Mutual.

naftiko: "0.5"
info:
  label: "Northwestern Mutual Workflow 5"
  description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for Northwestern Mutual."
  tags:
    - insurance
    - operations
    - powerbi
capability:
  exposes:
    - type: mcp
      namespace: insurance
      port: 8080
      tools:
        - name: northwestern-mutual-workflow-5
          description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for Northwestern Mutual."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Primary identifier for this workflow"
          steps:
            - name: process
              type: call
              call: "northwesternmutual-ops.run-workflow-5"
              with:
                identifier: "{{identifier}}"
            - name: refresh
              type: call
              call: "powerbi.refresh-dataset"
              with:
                dataset_id: "workflow_5"
                data: "{{process.metrics}}"
  consumes:
    - type: http
      namespace: northwesternmutual-ops
      baseUri: "https://api.northwesternmutual.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.nwm_api_token"
      resources:
        - name: operations
          path: "/operations"
          operations:
            - name: run-workflow-5
              method: POST
    - type: http
      namespace: powerbi
      baseUri: "https://api.powerbi.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.powerbi_token"
      resources:
        - name: datasets
          path: "/datasets"
          operations:
            - name: refresh-dataset
              method: POST

Orchestrates insurance operations including data retrieval, processing, and automated notification for Northwestern Mutual.

naftiko: "0.5"
info:
  label: "Northwestern Mutual Workflow 6"
  description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for Northwestern Mutual."
  tags:
    - insurance
    - operations
    - jira
capability:
  exposes:
    - type: mcp
      namespace: insurance
      port: 8080
      tools:
        - name: northwestern-mutual-workflow-6
          description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for Northwestern Mutual."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Primary identifier for this workflow"
          steps:
            - name: process
              type: call
              call: "northwesternmutual-ops.run-workflow-6"
              with:
                identifier: "{{identifier}}"
            - name: create-ticket
              type: call
              call: "jira.create-issue"
              with:
                project: "INSU"
                summary: "Task from workflow 6"
                description: "{{process.details}}"
  consumes:
    - type: http
      namespace: northwesternmutual-ops
      baseUri: "https://api.northwesternmutual.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.nwm_api_token"
      resources:
        - name: operations
          path: "/operations"
          operations:
            - name: run-workflow-6
              method: POST
    - type: http
      namespace: jira
      baseUri: "https://northwesternmutual.atlassian.net/rest/api/3"
      authentication:
        type: bearer
        token: "$secrets.jira_token"
      resources:
        - name: issues
          path: "/issues"
          operations:
            - name: create-issue
              method: POST

Orchestrates insurance operations including data retrieval, processing, and automated notification for Northwestern Mutual.

naftiko: "0.5"
info:
  label: "Northwestern Mutual Workflow 7"
  description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for Northwestern Mutual."
  tags:
    - insurance
    - operations
    - teams
capability:
  exposes:
    - type: mcp
      namespace: insurance
      port: 8080
      tools:
        - name: northwestern-mutual-workflow-7
          description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for Northwestern Mutual."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Primary identifier for this workflow"
          steps:
            - name: process
              type: call
              call: "northwesternmutual-ops.run-workflow-7"
              with:
                identifier: "{{identifier}}"
            - name: notify
              type: call
              call: "teams.send-message"
              with:
                channel_id: "insurance"
                message: "Workflow 7 complete: {{process.summary}}"
  consumes:
    - type: http
      namespace: northwesternmutual-ops
      baseUri: "https://api.northwesternmutual.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.nwm_api_token"
      resources:
        - name: operations
          path: "/operations"
          operations:
            - name: run-workflow-7
              method: POST
    - type: http
      namespace: teams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.teams_token"
      resources:
        - name: messages
          path: "/messages"
          operations:
            - name: send-message
              method: POST

Orchestrates insurance operations including data retrieval, processing, and automated notification for Northwestern Mutual.

naftiko: "0.5"
info:
  label: "Northwestern Mutual Workflow 8"
  description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for Northwestern Mutual."
  tags:
    - insurance
    - operations
    - tableau
capability:
  exposes:
    - type: mcp
      namespace: insurance
      port: 8080
      tools:
        - name: northwestern-mutual-workflow-8
          description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for Northwestern Mutual."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Primary identifier for this workflow"
          steps:
            - name: process
              type: call
              call: "northwesternmutual-ops.run-workflow-8"
              with:
                identifier: "{{identifier}}"
            - name: refresh
              type: call
              call: "tableau.publish-datasource"
              with:
                dataset_id: "workflow_8"
                data: "{{process.metrics}}"
  consumes:
    - type: http
      namespace: northwesternmutual-ops
      baseUri: "https://api.northwesternmutual.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.nwm_api_token"
      resources:
        - name: operations
          path: "/operations"
          operations:
            - name: run-workflow-8
              method: POST
    - type: http
      namespace: tableau
      baseUri: "https://northwesternmutual-tableau.online.tableau.com/api/3.19"
      authentication:
        type: bearer
        token: "$secrets.tableau_token"
      resources:
        - name: datasources
          path: "/datasources"
          operations:
            - name: publish-datasource
              method: POST

Orchestrates insurance operations including data retrieval, processing, and automated notification for Northwestern Mutual.

naftiko: "0.5"
info:
  label: "Northwestern Mutual Workflow 9"
  description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for Northwestern Mutual."
  tags:
    - insurance
    - operations
    - box
capability:
  exposes:
    - type: mcp
      namespace: insurance
      port: 8080
      tools:
        - name: northwestern-mutual-workflow-9
          description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for Northwestern Mutual."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Primary identifier for this workflow"
          steps:
            - name: process
              type: call
              call: "northwesternmutual-ops.run-workflow-9"
              with:
                identifier: "{{identifier}}"
            - name: upload
              type: call
              call: "box.upload-file"
              with:
                content: "{{process.document}}"
  consumes:
    - type: http
      namespace: northwesternmutual-ops
      baseUri: "https://api.northwesternmutual.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.nwm_api_token"
      resources:
        - name: operations
          path: "/operations"
          operations:
            - name: run-workflow-9
              method: POST
    - type: http
      namespace: box
      baseUri: "https://api.box.com/2.0"
      authentication:
        type: bearer
        token: "$secrets.box_token"
      resources:
        - name: files
          path: "/files"
          operations:
            - name: upload-file
              method: POST

Retrieves operational data for Northwestern Mutual insurance workflows.

naftiko: "0.5"
info:
  label: "Northwestern Mutual Data Lookup 1"
  description: "Retrieves operational data for Northwestern Mutual insurance workflows."
  tags:
    - insurance
    - operations
capability:
  exposes:
    - type: mcp
      namespace: northwesternmutual-data
      port: 8080
      tools:
        - name: get-data-1
          description: "Retrieves operational data for Northwestern Mutual insurance workflows."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Resource identifier"
          call: "northwesternmutual-data.get-data-1"
          with:
            identifier: "{{identifier}}"
  consumes:
    - type: http
      namespace: northwesternmutual-data
      baseUri: "https://api.northwesternmutual.com/data/v1"
      authentication:
        type: bearer
        token: "$secrets.nwm_api_token"
      resources:
        - name: data-1
          path: "/data-1/{{identifier}}"
          inputParameters:
            - name: identifier
              in: path
          operations:
            - name: get-data-1
              method: GET

Retrieves operational data for Northwestern Mutual insurance workflows.

naftiko: "0.5"
info:
  label: "Northwestern Mutual Data Lookup 10"
  description: "Retrieves operational data for Northwestern Mutual insurance workflows."
  tags:
    - insurance
    - operations
capability:
  exposes:
    - type: mcp
      namespace: northwesternmutual-data
      port: 8080
      tools:
        - name: get-data-10
          description: "Retrieves operational data for Northwestern Mutual insurance workflows."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Resource identifier"
          call: "northwesternmutual-data.get-data-10"
          with:
            identifier: "{{identifier}}"
  consumes:
    - type: http
      namespace: northwesternmutual-data
      baseUri: "https://api.northwesternmutual.com/data/v1"
      authentication:
        type: bearer
        token: "$secrets.nwm_api_token"
      resources:
        - name: data-10
          path: "/data-10/{{identifier}}"
          inputParameters:
            - name: identifier
              in: path
          operations:
            - name: get-data-10
              method: GET

Retrieves operational data for Northwestern Mutual insurance workflows.

naftiko: "0.5"
info:
  label: "Northwestern Mutual Data Lookup 11"
  description: "Retrieves operational data for Northwestern Mutual insurance workflows."
  tags:
    - insurance
    - operations
capability:
  exposes:
    - type: mcp
      namespace: northwesternmutual-data
      port: 8080
      tools:
        - name: get-data-11
          description: "Retrieves operational data for Northwestern Mutual insurance workflows."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Resource identifier"
          call: "northwesternmutual-data.get-data-11"
          with:
            identifier: "{{identifier}}"
  consumes:
    - type: http
      namespace: northwesternmutual-data
      baseUri: "https://api.northwesternmutual.com/data/v1"
      authentication:
        type: bearer
        token: "$secrets.nwm_api_token"
      resources:
        - name: data-11
          path: "/data-11/{{identifier}}"
          inputParameters:
            - name: identifier
              in: path
          operations:
            - name: get-data-11
              method: GET

Retrieves operational data for Northwestern Mutual insurance workflows.

naftiko: "0.5"
info:
  label: "Northwestern Mutual Data Lookup 12"
  description: "Retrieves operational data for Northwestern Mutual insurance workflows."
  tags:
    - insurance
    - operations
capability:
  exposes:
    - type: mcp
      namespace: northwesternmutual-data
      port: 8080
      tools:
        - name: get-data-12
          description: "Retrieves operational data for Northwestern Mutual insurance workflows."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Resource identifier"
          call: "northwesternmutual-data.get-data-12"
          with:
            identifier: "{{identifier}}"
  consumes:
    - type: http
      namespace: northwesternmutual-data
      baseUri: "https://api.northwesternmutual.com/data/v1"
      authentication:
        type: bearer
        token: "$secrets.nwm_api_token"
      resources:
        - name: data-12
          path: "/data-12/{{identifier}}"
          inputParameters:
            - name: identifier
              in: path
          operations:
            - name: get-data-12
              method: GET

Retrieves operational data for Northwestern Mutual insurance workflows.

naftiko: "0.5"
info:
  label: "Northwestern Mutual Data Lookup 13"
  description: "Retrieves operational data for Northwestern Mutual insurance workflows."
  tags:
    - insurance
    - operations
capability:
  exposes:
    - type: mcp
      namespace: northwesternmutual-data
      port: 8080
      tools:
        - name: get-data-13
          description: "Retrieves operational data for Northwestern Mutual insurance workflows."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Resource identifier"
          call: "northwesternmutual-data.get-data-13"
          with:
            identifier: "{{identifier}}"
  consumes:
    - type: http
      namespace: northwesternmutual-data
      baseUri: "https://api.northwesternmutual.com/data/v1"
      authentication:
        type: bearer
        token: "$secrets.nwm_api_token"
      resources:
        - name: data-13
          path: "/data-13/{{identifier}}"
          inputParameters:
            - name: identifier
              in: path
          operations:
            - name: get-data-13
              method: GET

Retrieves operational data for Northwestern Mutual insurance workflows.

naftiko: "0.5"
info:
  label: "Northwestern Mutual Data Lookup 14"
  description: "Retrieves operational data for Northwestern Mutual insurance workflows."
  tags:
    - insurance
    - operations
capability:
  exposes:
    - type: mcp
      namespace: northwesternmutual-data
      port: 8080
      tools:
        - name: get-data-14
          description: "Retrieves operational data for Northwestern Mutual insurance workflows."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Resource identifier"
          call: "northwesternmutual-data.get-data-14"
          with:
            identifier: "{{identifier}}"
  consumes:
    - type: http
      namespace: northwesternmutual-data
      baseUri: "https://api.northwesternmutual.com/data/v1"
      authentication:
        type: bearer
        token: "$secrets.nwm_api_token"
      resources:
        - name: data-14
          path: "/data-14/{{identifier}}"
          inputParameters:
            - name: identifier
              in: path
          operations:
            - name: get-data-14
              method: GET

Retrieves operational data for Northwestern Mutual insurance workflows.

naftiko: "0.5"
info:
  label: "Northwestern Mutual Data Lookup 15"
  description: "Retrieves operational data for Northwestern Mutual insurance workflows."
  tags:
    - insurance
    - operations
capability:
  exposes:
    - type: mcp
      namespace: northwesternmutual-data
      port: 8080
      tools:
        - name: get-data-15
          description: "Retrieves operational data for Northwestern Mutual insurance workflows."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Resource identifier"
          call: "northwesternmutual-data.get-data-15"
          with:
            identifier: "{{identifier}}"
  consumes:
    - type: http
      namespace: northwesternmutual-data
      baseUri: "https://api.northwesternmutual.com/data/v1"
      authentication:
        type: bearer
        token: "$secrets.nwm_api_token"
      resources:
        - name: data-15
          path: "/data-15/{{identifier}}"
          inputParameters:
            - name: identifier
              in: path
          operations:
            - name: get-data-15
              method: GET

Retrieves operational data for Northwestern Mutual insurance workflows.

naftiko: "0.5"
info:
  label: "Northwestern Mutual Data Lookup 2"
  description: "Retrieves operational data for Northwestern Mutual insurance workflows."
  tags:
    - insurance
    - operations
capability:
  exposes:
    - type: mcp
      namespace: northwesternmutual-data
      port: 8080
      tools:
        - name: get-data-2
          description: "Retrieves operational data for Northwestern Mutual insurance workflows."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Resource identifier"
          call: "northwesternmutual-data.get-data-2"
          with:
            identifier: "{{identifier}}"
  consumes:
    - type: http
      namespace: northwesternmutual-data
      baseUri: "https://api.northwesternmutual.com/data/v1"
      authentication:
        type: bearer
        token: "$secrets.nwm_api_token"
      resources:
        - name: data-2
          path: "/data-2/{{identifier}}"
          inputParameters:
            - name: identifier
              in: path
          operations:
            - name: get-data-2
              method: GET

Retrieves operational data for Northwestern Mutual insurance workflows.

naftiko: "0.5"
info:
  label: "Northwestern Mutual Data Lookup 3"
  description: "Retrieves operational data for Northwestern Mutual insurance workflows."
  tags:
    - insurance
    - operations
capability:
  exposes:
    - type: mcp
      namespace: northwesternmutual-data
      port: 8080
      tools:
        - name: get-data-3
          description: "Retrieves operational data for Northwestern Mutual insurance workflows."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Resource identifier"
          call: "northwesternmutual-data.get-data-3"
          with:
            identifier: "{{identifier}}"
  consumes:
    - type: http
      namespace: northwesternmutual-data
      baseUri: "https://api.northwesternmutual.com/data/v1"
      authentication:
        type: bearer
        token: "$secrets.nwm_api_token"
      resources:
        - name: data-3
          path: "/data-3/{{identifier}}"
          inputParameters:
            - name: identifier
              in: path
          operations:
            - name: get-data-3
              method: GET

Retrieves operational data for Northwestern Mutual insurance workflows.

naftiko: "0.5"
info:
  label: "Northwestern Mutual Data Lookup 4"
  description: "Retrieves operational data for Northwestern Mutual insurance workflows."
  tags:
    - insurance
    - operations
capability:
  exposes:
    - type: mcp
      namespace: northwesternmutual-data
      port: 8080
      tools:
        - name: get-data-4
          description: "Retrieves operational data for Northwestern Mutual insurance workflows."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Resource identifier"
          call: "northwesternmutual-data.get-data-4"
          with:
            identifier: "{{identifier}}"
  consumes:
    - type: http
      namespace: northwesternmutual-data
      baseUri: "https://api.northwesternmutual.com/data/v1"
      authentication:
        type: bearer
        token: "$secrets.nwm_api_token"
      resources:
        - name: data-4
          path: "/data-4/{{identifier}}"
          inputParameters:
            - name: identifier
              in: path
          operations:
            - name: get-data-4
              method: GET

Retrieves operational data for Northwestern Mutual insurance workflows.

naftiko: "0.5"
info:
  label: "Northwestern Mutual Data Lookup 5"
  description: "Retrieves operational data for Northwestern Mutual insurance workflows."
  tags:
    - insurance
    - operations
capability:
  exposes:
    - type: mcp
      namespace: northwesternmutual-data
      port: 8080
      tools:
        - name: get-data-5
          description: "Retrieves operational data for Northwestern Mutual insurance workflows."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Resource identifier"
          call: "northwesternmutual-data.get-data-5"
          with:
            identifier: "{{identifier}}"
  consumes:
    - type: http
      namespace: northwesternmutual-data
      baseUri: "https://api.northwesternmutual.com/data/v1"
      authentication:
        type: bearer
        token: "$secrets.nwm_api_token"
      resources:
        - name: data-5
          path: "/data-5/{{identifier}}"
          inputParameters:
            - name: identifier
              in: path
          operations:
            - name: get-data-5
              method: GET

Retrieves operational data for Northwestern Mutual insurance workflows.

naftiko: "0.5"
info:
  label: "Northwestern Mutual Data Lookup 6"
  description: "Retrieves operational data for Northwestern Mutual insurance workflows."
  tags:
    - insurance
    - operations
capability:
  exposes:
    - type: mcp
      namespace: northwesternmutual-data
      port: 8080
      tools:
        - name: get-data-6
          description: "Retrieves operational data for Northwestern Mutual insurance workflows."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Resource identifier"
          call: "northwesternmutual-data.get-data-6"
          with:
            identifier: "{{identifier}}"
  consumes:
    - type: http
      namespace: northwesternmutual-data
      baseUri: "https://api.northwesternmutual.com/data/v1"
      authentication:
        type: bearer
        token: "$secrets.nwm_api_token"
      resources:
        - name: data-6
          path: "/data-6/{{identifier}}"
          inputParameters:
            - name: identifier
              in: path
          operations:
            - name: get-data-6
              method: GET

Retrieves operational data for Northwestern Mutual insurance workflows.

naftiko: "0.5"
info:
  label: "Northwestern Mutual Data Lookup 7"
  description: "Retrieves operational data for Northwestern Mutual insurance workflows."
  tags:
    - insurance
    - operations
capability:
  exposes:
    - type: mcp
      namespace: northwesternmutual-data
      port: 8080
      tools:
        - name: get-data-7
          description: "Retrieves operational data for Northwestern Mutual insurance workflows."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Resource identifier"
          call: "northwesternmutual-data.get-data-7"
          with:
            identifier: "{{identifier}}"
  consumes:
    - type: http
      namespace: northwesternmutual-data
      baseUri: "https://api.northwesternmutual.com/data/v1"
      authentication:
        type: bearer
        token: "$secrets.nwm_api_token"
      resources:
        - name: data-7
          path: "/data-7/{{identifier}}"
          inputParameters:
            - name: identifier
              in: path
          operations:
            - name: get-data-7
              method: GET

Retrieves operational data for Northwestern Mutual insurance workflows.

naftiko: "0.5"
info:
  label: "Northwestern Mutual Data Lookup 8"
  description: "Retrieves operational data for Northwestern Mutual insurance workflows."
  tags:
    - insurance
    - operations
capability:
  exposes:
    - type: mcp
      namespace: northwesternmutual-data
      port: 8080
      tools:
        - name: get-data-8
          description: "Retrieves operational data for Northwestern Mutual insurance workflows."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Resource identifier"
          call: "northwesternmutual-data.get-data-8"
          with:
            identifier: "{{identifier}}"
  consumes:
    - type: http
      namespace: northwesternmutual-data
      baseUri: "https://api.northwesternmutual.com/data/v1"
      authentication:
        type: bearer
        token: "$secrets.nwm_api_token"
      resources:
        - name: data-8
          path: "/data-8/{{identifier}}"
          inputParameters:
            - name: identifier
              in: path
          operations:
            - name: get-data-8
              method: GET

Retrieves operational data for Northwestern Mutual insurance workflows.

naftiko: "0.5"
info:
  label: "Northwestern Mutual Data Lookup 9"
  description: "Retrieves operational data for Northwestern Mutual insurance workflows."
  tags:
    - insurance
    - operations
capability:
  exposes:
    - type: mcp
      namespace: northwesternmutual-data
      port: 8080
      tools:
        - name: get-data-9
          description: "Retrieves operational data for Northwestern Mutual insurance workflows."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Resource identifier"
          call: "northwesternmutual-data.get-data-9"
          with:
            identifier: "{{identifier}}"
  consumes:
    - type: http
      namespace: northwesternmutual-data
      baseUri: "https://api.northwesternmutual.com/data/v1"
      authentication:
        type: bearer
        token: "$secrets.nwm_api_token"
      resources:
        - name: data-9
          path: "/data-9/{{identifier}}"
          inputParameters:
            - name: identifier
              in: path
          operations:
            - name: get-data-9
              method: GET

Monitors trade execution via Bloomberg EMSX, captures fill status, and logs completed trades in Snowflake for compliance.

naftiko: "0.5"
info:
  label: "Investment Trade Execution Monitor"
  description: "Monitors trade execution via Bloomberg EMSX, captures fill status, and logs completed trades in Snowflake for compliance."
  tags:
    - wealth-management
    - trading
    - bloomberg-emsx
    - snowflake
capability:
  exposes:
    - type: mcp
      namespace: trade-monitoring
      port: 8080
      tools:
        - name: monitor-trade-execution
          description: "Given a trade order ID, check execution status and log to Snowflake."
          inputParameters:
            - name: order_id
              in: body
              type: string
              description: "The Bloomberg EMSX order identifier."
            - name: account_id
              in: body
              type: string
              description: "The investment account identifier."
          steps:
            - name: check-execution
              type: call
              call: "bloomberg-emsx.get-order-status"
              with:
                order_id: "{{order_id}}"
            - name: log-trade
              type: call
              call: "snowflake.insert-trade-record"
              with:
                order_id: "{{order_id}}"
                account_id: "{{account_id}}"
                status: "{{check-execution.status}}"
                fill_price: "{{check-execution.fill_price}}"
  consumes:
    - type: http
      namespace: bloomberg-emsx
      baseUri: "https://emsx.bloomberg.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.bloomberg_emsx_token"
      resources:
        - name: orders
          path: "/orders/{{order_id}}"
          inputParameters:
            - name: order_id
              in: path
          operations:
            - name: get-order-status
              method: GET
    - type: http
      namespace: snowflake
      baseUri: "https://northwesternmutual.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: statements
          path: "/statements"
          operations:
            - name: insert-trade-record
              method: POST

Retrieves the current sprint status from Jira.

naftiko: "0.5"
info:
  label: "Jira Sprint Status Lookup"
  description: "Retrieves the current sprint status from Jira."
  tags:
    - development
    - jira
    - agile
capability:
  exposes:
    - type: mcp
      namespace: agile
      port: 8080
      tools:
        - name: get-sprint-status
          description: "Look up Jira active sprint by board ID."
          inputParameters:
            - name: board_id
              in: body
              type: string
              description: "The Jira board identifier."
          call: "jira.get-active-sprint"
          with:
            board_id: "{{board_id}}"
          outputParameters:
            - name: sprint_name
              type: string
              mapping: "$.values[0].name"
            - name: end_date
              type: string
              mapping: "$.values[0].endDate"
  consumes:
    - type: http
      namespace: jira
      baseUri: "https://northwesternmutual.atlassian.net/rest/agile/1.0"
      authentication:
        type: basic
        username: "$secrets.jira_user"
        password: "$secrets.jira_api_token"
      resources:
        - name: sprints
          path: "/board/{{board_id}}/sprint?state=active"
          inputParameters:
            - name: board_id
              in: path
          operations:
            - name: get-active-sprint
              method: GET

Manages Northwestern Mutual LinkedIn campaigns for advisor recruitment and brand awareness.

naftiko: "0.5"
info:
  label: "LinkedIn Advisor Brand Campaign"
  description: "Manages Northwestern Mutual LinkedIn campaigns for advisor recruitment and brand awareness."
  tags:
    - marketing
    - linkedin
    - brand
capability:
  exposes:
    - type: mcp
      namespace: brand-marketing
      port: 8080
      tools:
        - name: get-linkedin-campaign
          description: "Retrieve LinkedIn campaign analytics by campaign ID."
          inputParameters:
            - name: campaign_id
              in: body
              type: string
              description: "The LinkedIn campaign identifier."
          call: "linkedin.get-campaign-analytics"
          with:
            campaign_id: "{{campaign_id}}"
          outputParameters:
            - name: impressions
              type: string
              mapping: "$.elements[0].impressions"
            - name: clicks
              type: string
              mapping: "$.elements[0].clicks"
            - name: spend
              type: string
              mapping: "$.elements[0].costInLocalCurrency"
  consumes:
    - type: http
      namespace: linkedin
      baseUri: "https://api.linkedin.com/v2"
      authentication:
        type: bearer
        token: "$secrets.linkedin_token"
      resources:
        - name: analytics
          path: "/adAnalyticsV2"
          operations:
            - name: get-campaign-analytics
              method: GET

Checks Microsoft Entra identity governance access reviews for a user.

naftiko: "0.5"
info:
  label: "Microsoft Entra Access Review"
  description: "Checks Microsoft Entra identity governance access reviews for a user."
  tags:
    - security
    - microsoft-entra
    - identity-governance
capability:
  exposes:
    - type: mcp
      namespace: identity-governance
      port: 8080
      tools:
        - name: get-access-reviews
          description: "Check pending access reviews for a user."
          inputParameters:
            - name: user_id
              in: body
              type: string
              description: "The user principal name."
          call: "entra.get-reviews"
          with:
            user_id: "{{user_id}}"
          outputParameters:
            - name: pending_reviews
              type: string
              mapping: "$.value.length"
  consumes:
    - type: http
      namespace: entra
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: access-reviews
          path: "/identityGovernance/accessReviews/definitions"
          operations:
            - name: get-reviews
              method: GET

Triggers a Microsoft Power Automate flow for workflow automation.

naftiko: "0.5"
info:
  label: "Microsoft Power Automate Flow Trigger"
  description: "Triggers a Microsoft Power Automate flow for workflow automation."
  tags:
    - automation
    - microsoft-power-automate
capability:
  exposes:
    - type: mcp
      namespace: workflow-automation
      port: 8080
      tools:
        - name: trigger-flow
          description: "Trigger a Power Automate flow by ID."
          inputParameters:
            - name: flow_id
              in: body
              type: string
              description: "The Power Automate flow identifier."
            - name: input_data
              in: body
              type: string
              description: "JSON input data."
          call: "powerautomate.trigger-flow"
          with:
            flow_id: "{{flow_id}}"
            data: "{{input_data}}"
          outputParameters:
            - name: run_id
              type: string
              mapping: "$.name"
            - name: status
              type: string
              mapping: "$.properties.status"
  consumes:
    - type: http
      namespace: powerautomate
      baseUri: "https://management.azure.com/subscriptions"
      authentication:
        type: bearer
        token: "$secrets.azure_management_token"
      resources:
        - name: flows
          path: "/{{subscription_id}}/resourceGroups/{{resource_group}}/providers/Microsoft.Logic/workflows/{{flow_id}}/triggers/manual/run"
          inputParameters:
            - name: subscription_id
              in: path
            - name: resource_group
              in: path
            - name: flow_id
              in: path
          operations:
            - name: trigger-flow
              method: POST

Retrieves application performance metrics from New Relic.

naftiko: "0.5"
info:
  label: "New Relic Application Performance Lookup"
  description: "Retrieves application performance metrics from New Relic."
  tags:
    - monitoring
    - new-relic
    - application-performance
capability:
  exposes:
    - type: mcp
      namespace: apm
      port: 8080
      tools:
        - name: get-app-performance
          description: "Look up New Relic application performance by app name."
          inputParameters:
            - name: app_name
              in: body
              type: string
              description: "The New Relic application name."
          call: "newrelic.get-app-metrics"
          with:
            app_name: "{{app_name}}"
          outputParameters:
            - name: response_time
              type: string
              mapping: "$.application.application_summary.response_time"
            - name: throughput
              type: string
              mapping: "$.application.application_summary.throughput"
            - name: error_rate
              type: string
              mapping: "$.application.application_summary.error_rate"
  consumes:
    - type: http
      namespace: newrelic
      baseUri: "https://api.newrelic.com/v2"
      authentication:
        type: apiKey
        key: "$secrets.newrelic_api_key"
      resources:
        - name: applications
          path: "/applications.json?filter[name]={{app_name}}"
          inputParameters:
            - name: app_name
              in: query
          operations:
            - name: get-app-metrics
              method: GET

Checks Oracle GoldenGate replication process status.

naftiko: "0.5"
info:
  label: "Oracle GoldenGate Replication Status"
  description: "Checks Oracle GoldenGate replication process status."
  tags:
    - data-engineering
    - oracle-goldengate
    - replication
capability:
  exposes:
    - type: mcp
      namespace: data-replication
      port: 8080
      tools:
        - name: get-replication-status
          description: "Check GoldenGate replication status."
          inputParameters:
            - name: process_name
              in: body
              type: string
              description: "The GoldenGate process name."
          call: "goldengate.get-process"
          with:
            process_name: "{{process_name}}"
          outputParameters:
            - name: status
              type: string
              mapping: "$.status"
            - name: lag_seconds
              type: string
              mapping: "$.lagSeconds"
  consumes:
    - type: http
      namespace: goldengate
      baseUri: "https://northwesternmutual-gg.oraclecloud.com/services/v2"
      authentication:
        type: bearer
        token: "$secrets.goldengate_token"
      resources:
        - name: processes
          path: "/deployments/current/processes/{{process_name}}"
          inputParameters:
            - name: process_name
              in: path
          operations:
            - name: get-process
              method: GET

Queries Palo Alto Networks firewall for a specific security rule.

naftiko: "0.5"
info:
  label: "Palo Alto Firewall Rule Lookup"
  description: "Queries Palo Alto Networks firewall for a specific security rule."
  tags:
    - security
    - palo-alto-networks
    - firewall
capability:
  exposes:
    - type: mcp
      namespace: network-security
      port: 8080
      tools:
        - name: get-firewall-rule
          description: "Look up a Palo Alto Networks firewall rule by name."
          inputParameters:
            - name: rule_name
              in: body
              type: string
              description: "The firewall rule name."
          call: "paloalto.get-rule"
          with:
            rule_name: "{{rule_name}}"
          outputParameters:
            - name: action
              type: string
              mapping: "$.result.entry.action"
            - name: source_zones
              type: array
              mapping: "$.result.entry.from.member"
  consumes:
    - type: http
      namespace: paloalto
      baseUri: "https://northwesternmutual-fw.paloaltonetworks.com/restapi/v10.2"
      authentication:
        type: apiKey
        key: "$secrets.paloalto_api_key"
      resources:
        - name: security-rules
          path: "/Policies/SecurityRules?name={{rule_name}}"
          inputParameters:
            - name: rule_name
              in: query
          operations:
            - name: get-rule
              method: GET

Retrieves Perforce depot status for a given depot path, returning changelist count and last submit information.

naftiko: "0.5"
info:
  label: "Perforce Version Control Status"
  description: "Retrieves Perforce depot status for a given depot path, returning changelist count and last submit information."
  tags:
    - development
    - perforce
    - version-control
capability:
  exposes:
    - type: mcp
      namespace: version-control
      port: 8080
      tools:
        - name: get-depot-status
          description: "Check Perforce depot status by depot path."
          inputParameters:
            - name: depot_path
              in: body
              type: string
              description: "The Perforce depot path."
          call: "perforce.get-changes"
          with:
            depot_path: "{{depot_path}}"
          outputParameters:
            - name: latest_changelist
              type: string
              mapping: "$.data[0].change"
            - name: last_user
              type: string
              mapping: "$.data[0].user"
            - name: last_description
              type: string
              mapping: "$.data[0].desc"
  consumes:
    - type: http
      namespace: perforce
      baseUri: "https://northwesternmutual-p4.perforce.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.perforce_token"
      resources:
        - name: changes
          path: "/changes?path={{depot_path}}&max=1"
          inputParameters:
            - name: depot_path
              in: query
          operations:
            - name: get-changes
              method: GET

Retrieves an insurance policy record from Salesforce by policy number, returning status, coverage amount, premium due date, and policyholder name.

naftiko: "0.5"
info:
  label: "Policy Status Lookup"
  description: "Retrieves an insurance policy record from Salesforce by policy number, returning status, coverage amount, premium due date, and policyholder name."
  tags:
    - insurance
    - policy-management
    - salesforce
capability:
  exposes:
    - type: mcp
      namespace: policy-ops
      port: 8080
      tools:
        - name: get-policy-status
          description: "Look up a life insurance policy by number. Returns status, coverage, premium, and policyholder."
          inputParameters:
            - name: policy_number
              in: body
              type: string
              description: "The insurance policy number."
          call: "salesforce.get-policy"
          with:
            policy_number: "{{policy_number}}"
          outputParameters:
            - name: status
              type: string
              mapping: "$.Policy_Status__c"
            - name: coverage_amount
              type: string
              mapping: "$.Coverage_Amount__c"
            - name: premium_due_date
              type: string
              mapping: "$.Premium_Due_Date__c"
            - name: policyholder
              type: string
              mapping: "$.Policyholder_Name__c"
  consumes:
    - type: http
      namespace: salesforce
      baseUri: "https://northwesternmutual.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token"
      resources:
        - name: policies
          path: "/sobjects/Policy__c/{{policy_number}}"
          inputParameters:
            - name: policy_number
              in: path
          operations:
            - name: get-policy
              method: GET

Generates and sends policyholder communications by pulling policy data from Salesforce, triggering the email via Adobe Campaign, and logging the activity in ServiceNow.

naftiko: "0.5"
info:
  label: "Policyholder Communication Orchestrator"
  description: "Generates and sends policyholder communications by pulling policy data from Salesforce, triggering the email via Adobe Campaign, and logging the activity in ServiceNow."
  tags:
    - communications
    - salesforce
    - adobe-campaign
    - servicenow
capability:
  exposes:
    - type: mcp
      namespace: policyholder-comms
      port: 8080
      tools:
        - name: send-policyholder-communication
          description: "Given a policy number and communication type, pull data, send email, and log."
          inputParameters:
            - name: policy_number
              in: body
              type: string
              description: "The policy number."
            - name: communication_type
              in: body
              type: string
              description: "Type of communication (renewal, premium reminder, annual statement)."
          steps:
            - name: get-policy
              type: call
              call: "salesforce.get-policy"
              with:
                policy_number: "{{policy_number}}"
            - name: send-email
              type: call
              call: "adobe-campaign.trigger-email"
              with:
                template: "{{communication_type}}"
                recipient_email: "{{get-policy.policyholder_email}}"
                policy_number: "{{policy_number}}"
            - name: log-activity
              type: call
              call: "servicenow.create-record"
              with:
                table: "communication_log"
                policy_number: "{{policy_number}}"
                type: "{{communication_type}}"
                status: "sent"
  consumes:
    - type: http
      namespace: salesforce
      baseUri: "https://northwesternmutual.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token"
      resources:
        - name: policies
          path: "/sobjects/Policy__c/{{policy_number}}"
          inputParameters:
            - name: policy_number
              in: path
          operations:
            - name: get-policy
              method: GET
    - type: http
      namespace: adobe-campaign
      baseUri: "https://mc.adobe.io/northwesternmutual/campaign"
      authentication:
        type: bearer
        token: "$secrets.adobe_campaign_token"
      resources:
        - name: email-triggers
          path: "/profileAndServicesExt/aemTriggerEvent"
          operations:
            - name: trigger-email
              method: POST
    - type: http
      namespace: servicenow
      baseUri: "https://northwesternmutual.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

Triggers a Power BI dataset refresh for Northwestern Mutual reporting dashboards.

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

Processes premium payments by validating the policy in Salesforce, processing the payment via Mastercard, updating the ledger in SAP, and sending confirmation via Adobe Campaign.

naftiko: "0.5"
info:
  label: "Premium Payment Processing Pipeline"
  description: "Processes premium payments by validating the policy in Salesforce, processing the payment via Mastercard, updating the ledger in SAP, and sending confirmation via Adobe Campaign."
  tags:
    - payments
    - premium
    - salesforce
    - mastercard
    - sap
    - adobe-campaign
capability:
  exposes:
    - type: mcp
      namespace: payment-processing
      port: 8080
      tools:
        - name: process-premium-payment
          description: "Given a policy number, amount, and payment method, validate, process, update, and confirm."
          inputParameters:
            - name: policy_number
              in: body
              type: string
              description: "The policy number."
            - name: payment_amount
              in: body
              type: string
              description: "The payment amount."
            - name: payment_method
              in: body
              type: string
              description: "Payment method identifier."
          steps:
            - name: validate-policy
              type: call
              call: "salesforce.get-policy"
              with:
                policy_number: "{{policy_number}}"
            - name: process-payment
              type: call
              call: "mastercard.process-payment"
              with:
                amount: "{{payment_amount}}"
                payment_method: "{{payment_method}}"
                reference: "{{policy_number}}"
            - name: update-ledger
              type: call
              call: "sap.post-payment"
              with:
                policy_number: "{{policy_number}}"
                amount: "{{payment_amount}}"
                transaction_id: "{{process-payment.transaction_id}}"
            - name: send-confirmation
              type: call
              call: "adobe-campaign.trigger-email"
              with:
                template: "payment_confirmation"
                recipient_email: "{{validate-policy.policyholder_email}}"
                amount: "{{payment_amount}}"
  consumes:
    - type: http
      namespace: salesforce
      baseUri: "https://northwesternmutual.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token"
      resources:
        - name: policies
          path: "/sobjects/Policy__c/{{policy_number}}"
          inputParameters:
            - name: policy_number
              in: path
          operations:
            - name: get-policy
              method: GET
    - type: http
      namespace: mastercard
      baseUri: "https://gateway.mastercard.com/api/rest/version/73"
      authentication:
        type: basic
        username: "$secrets.mastercard_merchant_id"
        password: "$secrets.mastercard_api_password"
      resources:
        - name: payments
          path: "/merchant/{{merchant_id}}/order/{{order_id}}/transaction/{{transaction_id}}"
          inputParameters:
            - name: merchant_id
              in: path
            - name: order_id
              in: path
            - name: transaction_id
              in: path
          operations:
            - name: process-payment
              method: PUT
    - type: http
      namespace: sap
      baseUri: "https://northwesternmutual-s4.sap.com/sap/opu/odata/sap"
      authentication:
        type: basic
        username: "$secrets.sap_user"
        password: "$secrets.sap_password"
      resources:
        - name: payments
          path: "/PAYMENT_POSTING_SRV/PostPayment"
          operations:
            - name: post-payment
              method: POST
    - type: http
      namespace: adobe-campaign
      baseUri: "https://mc.adobe.io/northwesternmutual/campaign"
      authentication:
        type: bearer
        token: "$secrets.adobe_campaign_token"
      resources:
        - name: email-triggers
          path: "/profileAndServicesExt/aemTriggerEvent"
          operations:
            - name: trigger-email
              method: POST

Retrieves Qlik Sense dashboard metadata and data, returning app name, sheet count, and last reload time.

naftiko: "0.5"
info:
  label: "Qlik Sense Dashboard Lookup"
  description: "Retrieves Qlik Sense dashboard metadata and data, returning app name, sheet count, and last reload time."
  tags:
    - analytics
    - qlik-sense
    - reporting
capability:
  exposes:
    - type: mcp
      namespace: bi-reporting
      port: 8080
      tools:
        - name: get-qlik-dashboard
          description: "Look up a Qlik Sense app by ID."
          inputParameters:
            - name: app_id
              in: body
              type: string
              description: "The Qlik Sense app identifier."
          call: "qliksense.get-app"
          with:
            app_id: "{{app_id}}"
          outputParameters:
            - name: app_name
              type: string
              mapping: "$.name"
            - name: last_reload
              type: string
              mapping: "$.lastReloadTime"
            - name: published
              type: string
              mapping: "$.published"
  consumes:
    - type: http
      namespace: qliksense
      baseUri: "https://northwesternmutual.us.qlikcloud.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.qliksense_token"
      resources:
        - name: apps
          path: "/apps/{{app_id}}"
          inputParameters:
            - name: app_id
              in: path
          operations:
            - name: get-app
              method: GET

Prepares regulatory filings by pulling metrics from Snowflake, generating the filing in SharePoint, submitting for review in ServiceNow, and notifying legal via Microsoft Teams.

naftiko: "0.5"
info:
  label: "Regulatory Filing Pipeline"
  description: "Prepares regulatory filings by pulling metrics from Snowflake, generating the filing in SharePoint, submitting for review in ServiceNow, and notifying legal via Microsoft Teams."
  tags:
    - compliance
    - regulatory
    - snowflake
    - sharepoint
    - servicenow
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: regulatory-compliance
      port: 8080
      tools:
        - name: prepare-regulatory-filing
          description: "Given a filing type and period, pull metrics, generate filing, submit review, and notify."
          inputParameters:
            - name: filing_type
              in: body
              type: string
              description: "Type of filing (statutory, GAAP, risk-based capital)."
            - name: reporting_period
              in: body
              type: string
              description: "The reporting period."
          steps:
            - name: pull-metrics
              type: call
              call: "snowflake.query-filing-metrics"
              with:
                type: "{{filing_type}}"
                period: "{{reporting_period}}"
            - name: generate-filing
              type: call
              call: "sharepoint.upload-file"
              with:
                site_id: "regulatory_site"
                folder_path: "Filings/{{filing_type}}/{{reporting_period}}"
                file_name: "filing.xlsx"
                content: "{{pull-metrics.data}}"
            - name: submit-review
              type: call
              call: "servicenow.create-case"
              with:
                short_description: "Filing Review: {{filing_type}} - {{reporting_period}}"
                category: "regulatory_compliance"
            - name: notify-legal
              type: call
              call: "msteams.send-message"
              with:
                channel_id: "legal-regulatory"
                text: "Filing prepared: {{filing_type}} for {{reporting_period}}. Review: {{submit-review.number}}. Document: {{generate-filing.url}}"
  consumes:
    - type: http
      namespace: snowflake
      baseUri: "https://northwesternmutual.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: statements
          path: "/statements"
          operations:
            - name: query-filing-metrics
              method: POST
    - type: http
      namespace: sharepoint
      baseUri: "https://graph.microsoft.com/v1.0/sites"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: drive-items
          path: "/{{site_id}}/drive/root:/{{folder_path}}/{{file_name}}:/content"
          inputParameters:
            - name: site_id
              in: path
            - name: folder_path
              in: path
            - name: file_name
              in: path
          operations:
            - name: upload-file
              method: PUT
    - type: http
      namespace: servicenow
      baseUri: "https://northwesternmutual.service-now.com/api/now"
      authentication:
        type: basic
        username: "$secrets.servicenow_user"
        password: "$secrets.servicenow_password"
      resources:
        - name: cases
          path: "/table/sn_customerservice_case"
          operations:
            - name: create-case
              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/{{team_id}}/channels/{{channel_id}}/messages"
          inputParameters:
            - name: team_id
              in: path
            - name: channel_id
              in: path
          operations:
            - name: send-message
              method: POST

Projects retirement outcomes by pulling client data and goals from Salesforce, running retirement simulations in Azure ML, and delivering the projection report via SharePoint.

naftiko: "0.5"
info:
  label: "Retirement Plan Projector"
  description: "Projects retirement outcomes by pulling client data and goals from Salesforce, running retirement simulations in Azure ML, and delivering the projection report via SharePoint."
  tags:
    - financial-planning
    - retirement
    - salesforce
    - azure-machine-learning
    - sharepoint
capability:
  exposes:
    - type: mcp
      namespace: retirement-planning
      port: 8080
      tools:
        - name: project-retirement
          description: "Given a client ID, current age, and target retirement age, run projection and deliver report."
          inputParameters:
            - name: client_id
              in: body
              type: string
              description: "The client identifier."
            - name: current_age
              in: body
              type: string
              description: "Client's current age."
            - name: retirement_age
              in: body
              type: string
              description: "Target retirement age."
          steps:
            - name: get-client
              type: call
              call: "salesforce.get-client-profile"
              with:
                client_id: "{{client_id}}"
            - name: run-simulation
              type: call
              call: "azureml.simulate-retirement"
              with:
                client_data: "{{get-client}}"
                current_age: "{{current_age}}"
                retirement_age: "{{retirement_age}}"
            - name: store-report
              type: call
              call: "sharepoint.upload-file"
              with:
                site_id: "financial_plans_site"
                folder_path: "RetirementProjections/{{client_id}}"
                file_name: "retirement_projection.pdf"
                content: "{{run-simulation.report}}"
  consumes:
    - type: http
      namespace: salesforce
      baseUri: "https://northwesternmutual.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token"
      resources:
        - name: clients
          path: "/sobjects/Client__c/{{client_id}}"
          inputParameters:
            - name: client_id
              in: path
          operations:
            - name: get-client-profile
              method: GET
    - type: http
      namespace: azureml
      baseUri: "https://northwesternmutual-ml.eastus.inference.ml.azure.com"
      authentication:
        type: bearer
        token: "$secrets.azureml_token"
      resources:
        - name: simulations
          path: "/score"
          operations:
            - name: simulate-retirement
              method: POST
    - type: http
      namespace: sharepoint
      baseUri: "https://graph.microsoft.com/v1.0/sites"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: drive-items
          path: "/{{site_id}}/drive/root:/{{folder_path}}/{{file_name}}:/content"
          inputParameters:
            - name: site_id
              in: path
            - name: folder_path
              in: path
            - name: file_name
              in: path
          operations:
            - name: upload-file
              method: PUT

Retrieves an expense report from SAP Concur by report ID.

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

Retrieves a general ledger account balance from SAP for a given account and fiscal period.

naftiko: "0.5"
info:
  label: "SAP General Ledger Balance Lookup"
  description: "Retrieves a general ledger account balance from SAP for a given account and fiscal period."
  tags:
    - finance
    - sap
    - general-ledger
capability:
  exposes:
    - type: mcp
      namespace: finance
      port: 8080
      tools:
        - name: get-gl-balance
          description: "Look up SAP general ledger balance by account and period."
          inputParameters:
            - name: gl_account
              in: body
              type: string
              description: "The general ledger account number."
            - name: fiscal_period
              in: body
              type: string
              description: "The fiscal period."
          call: "sap.get-gl-balance"
          with:
            account: "{{gl_account}}"
            period: "{{fiscal_period}}"
          outputParameters:
            - name: balance
              type: string
              mapping: "$.d.Balance"
            - name: currency
              type: string
              mapping: "$.d.Currency"
  consumes:
    - type: http
      namespace: sap
      baseUri: "https://northwesternmutual-s4.sap.com/sap/opu/odata/sap"
      authentication:
        type: basic
        username: "$secrets.sap_user"
        password: "$secrets.sap_password"
      resources:
        - name: gl-accounts
          path: "/GL_ACCOUNT_BALANCE_SRV/GLAccountBalance(Account='{{account}}',Period='{{period}}')"
          inputParameters:
            - name: account
              in: path
            - name: period
              in: path
          operations:
            - name: get-gl-balance
              method: GET

Retrieves a ServiceNow incident by number and returns the current state, assignee, and priority.

naftiko: "0.5"
info:
  label: "ServiceNow Incident Status"
  description: "Retrieves a ServiceNow incident by number and returns the current state, assignee, and priority."
  tags:
    - it-operations
    - servicenow
capability:
  exposes:
    - type: mcp
      namespace: it-ops
      port: 8080
      tools:
        - name: get-incident-status
          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:
            number: "{{incident_number}}"
          outputParameters:
            - name: state
              type: string
              mapping: "$.result[0].state"
            - name: assigned_to
              type: string
              mapping: "$.result[0].assigned_to.display_value"
            - name: priority
              type: string
              mapping: "$.result[0].priority"
  consumes:
    - type: http
      namespace: servicenow
      baseUri: "https://northwesternmutual.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={{number}}"
          inputParameters:
            - name: number
              in: query
          operations:
            - name: get-incident
              method: GET

Sends a notification to a Slack channel for cross-team alerts.

naftiko: "0.5"
info:
  label: "Slack Channel Notification"
  description: "Sends a notification to a Slack channel for cross-team alerts."
  tags:
    - collaboration
    - slack
    - notifications
capability:
  exposes:
    - type: mcp
      namespace: notifications
      port: 8080
      tools:
        - name: send-slack-notification
          description: "Send a message to a Slack channel."
          inputParameters:
            - name: channel
              in: body
              type: string
              description: "The Slack channel."
            - name: message
              in: body
              type: string
              description: "The message text."
          call: "slack.post-message"
          with:
            channel: "{{channel}}"
            text: "{{message}}"
          outputParameters:
            - name: message_ts
              type: string
              mapping: "$.ts"
  consumes:
    - type: http
      namespace: slack
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_token"
      resources:
        - name: messages
          path: "/chat.postMessage"
          operations:
            - name: post-message
              method: POST

Executes a predefined analytics query against Snowflake and returns results.

naftiko: "0.5"
info:
  label: "Snowflake Analytics Query"
  description: "Executes a predefined analytics query against Snowflake and returns results."
  tags:
    - analytics
    - snowflake
    - data-warehouse
capability:
  exposes:
    - type: mcp
      namespace: analytics
      port: 8080
      tools:
        - name: run-analytics-query
          description: "Execute a named analytics query in Snowflake."
          inputParameters:
            - name: query_name
              in: body
              type: string
              description: "The predefined query name."
            - name: parameters
              in: body
              type: string
              description: "Query parameters as JSON."
          call: "snowflake.execute-query"
          with:
            query_name: "{{query_name}}"
            parameters: "{{parameters}}"
          outputParameters:
            - name: row_count
              type: string
              mapping: "$.resultSetMetaData.numRows"
            - name: data
              type: array
              mapping: "$.data"
  consumes:
    - type: http
      namespace: snowflake
      baseUri: "https://northwesternmutual.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: statements
          path: "/statements"
          operations:
            - name: execute-query
              method: POST

Retrieves Tableau dashboard metadata for Northwestern Mutual reporting.

naftiko: "0.5"
info:
  label: "Tableau Reporting Dashboard Lookup"
  description: "Retrieves Tableau dashboard metadata for Northwestern Mutual reporting."
  tags:
    - analytics
    - tableau
    - reporting
capability:
  exposes:
    - type: mcp
      namespace: tableau-reporting
      port: 8080
      tools:
        - name: get-tableau-dashboard
          description: "Look up a Tableau workbook by ID."
          inputParameters:
            - name: workbook_id
              in: body
              type: string
              description: "The Tableau workbook identifier."
          call: "tableau.get-workbook"
          with:
            workbook_id: "{{workbook_id}}"
          outputParameters:
            - name: name
              type: string
              mapping: "$.workbook.name"
            - name: view_count
              type: string
              mapping: "$.workbook.viewCount"
            - name: updated_at
              type: string
              mapping: "$.workbook.updatedAt"
  consumes:
    - type: http
      namespace: tableau
      baseUri: "https://northwesternmutual.online.tableau.com/api/3.21"
      authentication:
        type: bearer
        token: "$secrets.tableau_token"
      resources:
        - name: workbooks
          path: "/sites/{{site_id}}/workbooks/{{workbook_id}}"
          inputParameters:
            - name: site_id
              in: path
            - name: workbook_id
              in: path
          operations:
            - name: get-workbook
              method: GET

When a new insurance application is submitted, runs the Azure ML risk model, creates the underwriting case in Salesforce, routes for medical review in ServiceNow, and notifies the underwriter via Microsoft Teams.

naftiko: "0.5"
info:
  label: "Underwriting Application Pipeline"
  description: "When a new insurance application is submitted, runs the Azure ML risk model, creates the underwriting case in Salesforce, routes for medical review in ServiceNow, and notifies the underwriter via Microsoft Teams."
  tags:
    - underwriting
    - application-processing
    - azure-machine-learning
    - salesforce
    - servicenow
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: underwriting-pipeline
      port: 8080
      tools:
        - name: process-application
          description: "Given an applicant ID and application data, score risk, create case, route for review, and notify."
          inputParameters:
            - name: applicant_id
              in: body
              type: string
              description: "The applicant identifier."
            - name: product_type
              in: body
              type: string
              description: "Insurance product type (whole life, term, universal, disability)."
            - name: coverage_amount
              in: body
              type: string
              description: "Requested coverage amount."
          steps:
            - name: score-risk
              type: call
              call: "azureml.score-application"
              with:
                applicant_id: "{{applicant_id}}"
                product: "{{product_type}}"
                amount: "{{coverage_amount}}"
            - name: create-case
              type: call
              call: "salesforce.create-underwriting-case"
              with:
                applicant_id: "{{applicant_id}}"
                risk_score: "{{score-risk.risk_score}}"
                risk_tier: "{{score-risk.risk_tier}}"
            - name: route-review
              type: call
              call: "servicenow.create-case"
              with:
                short_description: "Underwriting Review: {{applicant_id}} - {{product_type}}"
                category: "underwriting"
                description: "Risk: {{score-risk.risk_tier}} ({{score-risk.risk_score}}). Coverage: {{coverage_amount}}"
            - name: notify-underwriter
              type: call
              call: "msteams.send-message"
              with:
                channel_id: "underwriting-queue"
                text: "New application: {{applicant_id}}. Product: {{product_type}}. Coverage: {{coverage_amount}}. Risk: {{score-risk.risk_tier}}. Case: {{route-review.number}}"
  consumes:
    - type: http
      namespace: azureml
      baseUri: "https://northwesternmutual-ml.eastus.inference.ml.azure.com"
      authentication:
        type: bearer
        token: "$secrets.azureml_token"
      resources:
        - name: scoring
          path: "/score"
          operations:
            - name: score-application
              method: POST
    - type: http
      namespace: salesforce
      baseUri: "https://northwesternmutual.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token"
      resources:
        - name: underwriting-cases
          path: "/sobjects/Underwriting_Case__c"
          operations:
            - name: create-underwriting-case
              method: POST
    - type: http
      namespace: servicenow
      baseUri: "https://northwesternmutual.service-now.com/api/now"
      authentication:
        type: basic
        username: "$secrets.servicenow_user"
        password: "$secrets.servicenow_password"
      resources:
        - name: cases
          path: "/table/sn_customerservice_case"
          operations:
            - name: create-case
              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/{{team_id}}/channels/{{channel_id}}/messages"
          inputParameters:
            - name: team_id
              in: path
            - name: channel_id
              in: path
          operations:
            - name: send-message
              method: POST

Queries the underwriting risk model via Azure Machine Learning to retrieve a risk score for a given applicant.

naftiko: "0.5"
info:
  label: "Underwriting Risk Score Lookup"
  description: "Queries the underwriting risk model via Azure Machine Learning to retrieve a risk score for a given applicant."
  tags:
    - underwriting
    - risk-assessment
    - azure-machine-learning
capability:
  exposes:
    - type: mcp
      namespace: underwriting
      port: 8080
      tools:
        - name: get-risk-score
          description: "Retrieve the underwriting risk score for an applicant."
          inputParameters:
            - name: applicant_id
              in: body
              type: string
              description: "The applicant identifier."
            - name: age
              in: body
              type: string
              description: "Applicant age."
            - name: health_class
              in: body
              type: string
              description: "Health classification (preferred, standard, substandard)."
          call: "azureml.score-risk"
          with:
            applicant_id: "{{applicant_id}}"
            age: "{{age}}"
            health_class: "{{health_class}}"
          outputParameters:
            - name: risk_score
              type: string
              mapping: "$.result.risk_score"
            - name: risk_tier
              type: string
              mapping: "$.result.risk_tier"
            - name: recommended_action
              type: string
              mapping: "$.result.recommended_action"
  consumes:
    - type: http
      namespace: azureml
      baseUri: "https://northwesternmutual-ml.eastus.inference.ml.azure.com"
      authentication:
        type: bearer
        token: "$secrets.azureml_token"
      resources:
        - name: scoring
          path: "/score"
          operations:
            - name: score-risk
              method: POST

Retrieves a client's investment portfolio summary from Bloomberg AIM, returning total market value, asset allocation, and year-to-date performance.

naftiko: "0.5"
info:
  label: "Wealth Management Portfolio Summary"
  description: "Retrieves a client's investment portfolio summary from Bloomberg AIM, returning total market value, asset allocation, and year-to-date performance."
  tags:
    - wealth-management
    - portfolio
    - bloomberg-aim
capability:
  exposes:
    - type: mcp
      namespace: wealth
      port: 8080
      tools:
        - name: get-portfolio-summary
          description: "Look up a client's investment portfolio in Bloomberg AIM by account ID."
          inputParameters:
            - name: account_id
              in: body
              type: string
              description: "The Bloomberg AIM account identifier."
          call: "bloomberg-aim.get-portfolio"
          with:
            account_id: "{{account_id}}"
          outputParameters:
            - name: market_value
              type: string
              mapping: "$.portfolio.total_market_value"
            - name: asset_allocation
              type: object
              mapping: "$.portfolio.allocation"
            - name: ytd_return
              type: string
              mapping: "$.portfolio.ytd_return"
  consumes:
    - type: http
      namespace: bloomberg-aim
      baseUri: "https://aim.bloomberg.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.bloomberg_aim_token"
      resources:
        - name: portfolios
          path: "/portfolios/{{account_id}}"
          inputParameters:
            - name: account_id
              in: path
          operations:
            - name: get-portfolio
              method: GET

Searches the Northwestern Mutual Workday tenant for an employee by worker ID.

naftiko: "0.5"
info:
  label: "Workday Employee Directory Lookup"
  description: "Searches the Northwestern Mutual Workday tenant for an employee by worker ID."
  tags:
    - hr
    - workday
    - employee-directory
capability:
  exposes:
    - type: mcp
      namespace: hr
      port: 8080
      tools:
        - name: lookup-employee
          description: "Look up an employee in Workday by worker ID."
          inputParameters:
            - name: worker_id
              in: body
              type: string
              description: "The Workday worker ID."
          call: "workday.get-worker"
          with:
            worker_id: "{{worker_id}}"
          outputParameters:
            - name: full_name
              type: string
              mapping: "$.Worker.Worker_Data.Personal_Data.Name_Data.Legal_Name.Name_Detail_Data.Full_Name"
            - name: title
              type: string
              mapping: "$.Worker.Worker_Data.Employment_Data.Worker_Job_Data.Position_Data.Business_Title"
            - name: department
              type: string
              mapping: "$.Worker.Worker_Data.Employment_Data.Worker_Job_Data.Position_Data.Business_Site_Summary.Name"
  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

Retrieves a Zendesk support ticket by ID.

naftiko: "0.5"
info:
  label: "Zendesk Customer Support Ticket Lookup"
  description: "Retrieves a Zendesk support ticket by ID."
  tags:
    - customer-service
    - zendesk
capability:
  exposes:
    - type: mcp
      namespace: customer-support
      port: 8080
      tools:
        - name: get-support-ticket
          description: "Look up a Zendesk support ticket by ID."
          inputParameters:
            - name: ticket_id
              in: body
              type: string
              description: "The Zendesk ticket identifier."
          call: "zendesk.get-ticket"
          with:
            ticket_id: "{{ticket_id}}"
          outputParameters:
            - name: subject
              type: string
              mapping: "$.ticket.subject"
            - name: status
              type: string
              mapping: "$.ticket.status"
            - name: priority
              type: string
              mapping: "$.ticket.priority"
  consumes:
    - type: http
      namespace: zendesk
      baseUri: "https://northwesternmutual.zendesk.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.zendesk_token"
      resources:
        - name: tickets
          path: "/tickets/{{ticket_id}}"
          inputParameters:
            - name: ticket_id
              in: path
          operations:
            - name: get-ticket
              method: GET

Creates a Zoom meeting for advisor-client consultations and notifies the advisor via Microsoft Teams.

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