New York Life Capabilities

Naftiko 0.5 capability definitions for New York Life - 100 capabilities showing integration workflows and service orchestrations.

Sort
Expand

Calculates agent commissions by pulling policy sales data from Salesforce Sales Cloud, applying commission rules from SAP, and posting the results to the agent's Workday compensation record.

naftiko: "0.5"
info:
  label: "Agent Commission Calculator"
  description: "Calculates agent commissions by pulling policy sales data from Salesforce Sales Cloud, applying commission rules from SAP, and posting the results to the agent's Workday compensation record."
  tags:
    - commissions
    - salesforce-sales-cloud
    - sap
    - workday
    - finance
capability:
  exposes:
    - type: mcp
      namespace: agent-commissions
      port: 8080
      tools:
        - name: calculate-commissions
          description: "Given an agent ID and commission period, pull sales data, apply commission rules, and update the compensation record."
          inputParameters:
            - name: agent_id
              in: body
              type: string
              description: "The agent'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-agent-sales"
              with:
                agent_id: "{{agent_id}}"
                period: "{{commission_period}}"
            - name: apply-rules
              type: call
              call: "sap.calculate-commission"
              with:
                sales_data: "{{fetch-sales.records}}"
                agent_tier: "{{fetch-sales.agent_tier}}"
            - name: update-compensation
              type: call
              call: "workday.update-compensation"
              with:
                worker_id: "{{agent_id}}"
                commission_amount: "{{apply-rules.total_commission}}"
                period: "{{commission_period}}"
  consumes:
    - type: http
      namespace: salesforce
      baseUri: "https://newyorklife.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token"
      resources:
        - name: agent-sales
          path: "/query/?q=SELECT+Id,Amount,Product__c+FROM+Policy_Sale__c+WHERE+Agent_Id__c='{{agent_id}}'+AND+Period__c='{{period}}'"
          inputParameters:
            - name: agent_id
              in: query
            - name: period
              in: query
          operations:
            - name: get-agent-sales
              method: GET
    - type: http
      namespace: sap
      baseUri: "https://newyorklife-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 agent licensing status by checking Workday employment records, querying the licensing database in Salesforce, validating continuing education credits, and flagging non-compliant agents in ServiceNow.

naftiko: "0.5"
info:
  label: "Agent Licensing Verification Pipeline"
  description: "Verifies agent licensing status by checking Workday employment records, querying the licensing database in Salesforce, validating continuing education credits, and flagging non-compliant agents in ServiceNow."
  tags:
    - compliance
    - agent-licensing
    - workday
    - salesforce
    - servicenow
capability:
  exposes:
    - type: mcp
      namespace: agent-compliance
      port: 8080
      tools:
        - name: verify-agent-licensing
          description: "Given an agent ID and state, verify licensing status across Workday, Salesforce, and flag issues in ServiceNow."
          inputParameters:
            - name: agent_id
              in: body
              type: string
              description: "The agent's employee identifier."
            - name: state_code
              in: body
              type: string
              description: "The state code to verify licensing for."
          steps:
            - name: check-employment
              type: call
              call: "workday.get-worker"
              with:
                worker_id: "{{agent_id}}"
            - name: check-license
              type: call
              call: "salesforce.get-license"
              with:
                agent_id: "{{agent_id}}"
                state: "{{state_code}}"
            - name: flag-noncompliant
              type: call
              call: "servicenow.create-case"
              with:
                short_description: "License Verification: Agent {{agent_id}} - {{state_code}}"
                category: "agent_compliance"
                description: "Employment status: {{check-employment.status}}. License status: {{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://newyorklife.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+Agent_License__c+WHERE+Agent_Id__c='{{agent_id}}'+AND+State__c='{{state}}'"
          inputParameters:
            - name: agent_id
              in: query
            - name: state
              in: query
          operations:
            - name: get-license
              method: GET
    - type: http
      namespace: servicenow
      baseUri: "https://newyorklife.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

Executes a named analytics query against Amazon Redshift and returns the result set for reporting purposes.

naftiko: "0.5"
info:
  label: "Amazon Redshift Analytics Query"
  description: "Executes a named analytics query against Amazon Redshift and returns the result set for reporting purposes."
  tags:
    - analytics
    - amazon-redshift
    - data-warehouse
capability:
  exposes:
    - type: mcp
      namespace: analytics-warehouse
      port: 8080
      tools:
        - name: run-redshift-query
          description: "Execute a named query in Amazon Redshift."
          inputParameters:
            - name: query_name
              in: body
              type: string
              description: "The predefined query name."
            - name: parameters
              in: body
              type: string
              description: "Query parameters as JSON string."
          call: "redshift.execute-statement"
          with:
            query_name: "{{query_name}}"
            parameters: "{{parameters}}"
          outputParameters:
            - name: statement_id
              type: string
              mapping: "$.Id"
            - name: status
              type: string
              mapping: "$.Status"
  consumes:
    - type: http
      namespace: redshift
      baseUri: "https://redshift-data.us-east-1.amazonaws.com"
      authentication:
        type: aws
        accessKeyId: "$secrets.aws_access_key"
        secretAccessKey: "$secrets.aws_secret_key"
      resources:
        - name: statements
          path: "/execute-statement"
          operations:
            - name: execute-statement
              method: POST

Retrieves a document from Amazon S3 by bucket and key, returning the download URL, file size, and last modified timestamp.

naftiko: "0.5"
info:
  label: "Amazon S3 Document Retrieval"
  description: "Retrieves a document from Amazon S3 by bucket and key, returning the download URL, file size, and last modified timestamp."
  tags:
    - document-management
    - amazon-s3
    - cloud-storage
capability:
  exposes:
    - type: mcp
      namespace: cloud-storage
      port: 8080
      tools:
        - name: get-s3-document
          description: "Retrieve an S3 object by bucket and key."
          inputParameters:
            - name: bucket
              in: body
              type: string
              description: "The S3 bucket name."
            - name: key
              in: body
              type: string
              description: "The S3 object key."
          call: "s3.get-object"
          with:
            bucket: "{{bucket}}"
            key: "{{key}}"
          outputParameters:
            - name: content_type
              type: string
              mapping: "$.ContentType"
            - name: content_length
              type: string
              mapping: "$.ContentLength"
            - name: last_modified
              type: string
              mapping: "$.LastModified"
  consumes:
    - type: http
      namespace: s3
      baseUri: "https://s3.amazonaws.com"
      authentication:
        type: aws
        accessKeyId: "$secrets.aws_access_key"
        secretAccessKey: "$secrets.aws_secret_key"
      resources:
        - name: objects
          path: "/{{bucket}}/{{key}}"
          inputParameters:
            - name: bucket
              in: path
            - name: key
              in: path
          operations:
            - name: get-object
              method: GET

Generates an annuity product illustration by pulling rate tables from SAP, running Monte Carlo projections via Azure Machine Learning, creating the illustration document in SharePoint, and emailing it to the agent via Microsoft Outlook.

naftiko: "0.5"
info:
  label: "Annuity Illustration Generator"
  description: "Generates an annuity product illustration by pulling rate tables from SAP, running Monte Carlo projections via Azure Machine Learning, creating the illustration document in SharePoint, and emailing it to the agent via Microsoft Outlook."
  tags:
    - insurance
    - annuity
    - sap
    - azure-machine-learning
    - sharepoint
    - microsoft-outlook
capability:
  exposes:
    - type: mcp
      namespace: product-illustration
      port: 8080
      tools:
        - name: generate-annuity-illustration
          description: "Given product type, premium amount, and client age, generate a full annuity illustration with projections."
          inputParameters:
            - name: product_type
              in: body
              type: string
              description: "Annuity product type (fixed, variable, indexed)."
            - name: premium_amount
              in: body
              type: string
              description: "The premium amount."
            - name: client_age
              in: body
              type: string
              description: "The client's current age."
            - name: agent_email
              in: body
              type: string
              description: "The agent's email address."
          steps:
            - name: get-rates
              type: call
              call: "sap.get-annuity-rates"
              with:
                product: "{{product_type}}"
            - name: run-projection
              type: call
              call: "azureml.project-annuity"
              with:
                rates: "{{get-rates.rate_table}}"
                premium: "{{premium_amount}}"
                age: "{{client_age}}"
                product: "{{product_type}}"
            - name: create-illustration
              type: call
              call: "sharepoint.upload-file"
              with:
                site_id: "product_illustrations"
                folder_path: "Annuity/{{product_type}}"
                file_name: "illustration_{{client_age}}_{{premium_amount}}.pdf"
                content: "{{run-projection.illustration_content}}"
            - name: email-agent
              type: call
              call: "outlook.send-mail"
              with:
                recipient: "{{agent_email}}"
                subject: "Annuity Illustration: {{product_type}} - ${{premium_amount}}"
                body: "Your annuity illustration is ready. Projected accumulation: {{run-projection.projected_value}}. Download: {{create-illustration.url}}"
  consumes:
    - type: http
      namespace: sap
      baseUri: "https://newyorklife-s4.sap.com/sap/opu/odata/sap"
      authentication:
        type: basic
        username: "$secrets.sap_user"
        password: "$secrets.sap_password"
      resources:
        - name: annuity-rates
          path: "/ANNUITY_RATE_SRV/Rates"
          operations:
            - name: get-annuity-rates
              method: GET
    - type: http
      namespace: azureml
      baseUri: "https://newyorklife-ml.eastus.inference.ml.azure.com"
      authentication:
        type: bearer
        token: "$secrets.azureml_token"
      resources:
        - name: projections
          path: "/score"
          operations:
            - name: project-annuity
              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

Invokes an AWS Lambda function by name and returns the execution result, status code, and execution duration.

naftiko: "0.5"
info:
  label: "AWS Lambda Function Invocation"
  description: "Invokes an AWS Lambda function by name and returns the execution result, status code, and execution duration."
  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 with a JSON payload."
          inputParameters:
            - name: function_name
              in: body
              type: string
              description: "The Lambda function name."
            - name: payload
              in: body
              type: string
              description: "The JSON payload to pass to the function."
          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 including display name, job title, department, and manager.

naftiko: "0.5"
info:
  label: "Azure Active Directory User Lookup"
  description: "Retrieves user profile information from Azure Active Directory including display name, job title, department, and manager."
  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"
            - name: manager
              type: string
              mapping: "$.manager.displayName"
  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}}?$expand=manager"
          inputParameters:
            - name: user_id
              in: path
          operations:
            - name: get-user
              method: GET

Processes a beneficiary change request by validating the policy in Salesforce, updating the beneficiary record, creating a compliance review in ServiceNow, and sending confirmation to the policyholder via Microsoft Teams.

naftiko: "0.5"
info:
  label: "Beneficiary Change Request Processor"
  description: "Processes a beneficiary change request by validating the policy in Salesforce, updating the beneficiary record, creating a compliance review in ServiceNow, and sending confirmation to the policyholder via Microsoft Teams."
  tags:
    - insurance
    - beneficiary
    - salesforce
    - servicenow
    - microsoft-teams
    - compliance
capability:
  exposes:
    - type: mcp
      namespace: beneficiary-changes
      port: 8080
      tools:
        - name: process-beneficiary-change
          description: "Given a policy number, new beneficiary details, and change reason, update the beneficiary, create compliance review, and send confirmation."
          inputParameters:
            - name: policy_number
              in: body
              type: string
              description: "The policy number."
            - name: new_beneficiary_name
              in: body
              type: string
              description: "The new beneficiary's full name."
            - name: relationship
              in: body
              type: string
              description: "Relationship to policyholder (spouse, child, trust, etc.)."
            - name: allocation_pct
              in: body
              type: string
              description: "Benefit allocation percentage."
          steps:
            - name: validate-policy
              type: call
              call: "salesforce.get-policy"
              with:
                policy_number: "{{policy_number}}"
            - name: update-beneficiary
              type: call
              call: "salesforce.update-beneficiary"
              with:
                policy_number: "{{policy_number}}"
                beneficiary_name: "{{new_beneficiary_name}}"
                relationship: "{{relationship}}"
                allocation: "{{allocation_pct}}"
            - name: compliance-review
              type: call
              call: "servicenow.create-case"
              with:
                short_description: "Beneficiary Change Review: Policy {{policy_number}}"
                category: "compliance_review"
                description: "Beneficiary changed to {{new_beneficiary_name}} ({{relationship}}) at {{allocation_pct}}% for policy {{policy_number}}."
            - name: send-confirmation
              type: call
              call: "msteams.send-message"
              with:
                recipient_upn: "{{validate-policy.policyholder_email}}"
                text: "Your beneficiary change for policy {{policy_number}} has been submitted. New beneficiary: {{new_beneficiary_name}} ({{relationship}}). Compliance review: {{compliance-review.number}}."
  consumes:
    - type: http
      namespace: salesforce
      baseUri: "https://newyorklife.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
        - name: beneficiaries
          path: "/sobjects/Beneficiary__c"
          operations:
            - name: update-beneficiary
              method: POST
    - type: http
      namespace: servicenow
      baseUri: "https://newyorklife.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: messages
          path: "/users/{{recipient_upn}}/sendMail"
          inputParameters:
            - name: recipient_upn
              in: path
          operations:
            - name: send-message
              method: POST

Retrieves real-time market data from Bloomberg for investment instruments in the New York Life portfolio, returning price, yield, and change metrics.

naftiko: "0.5"
info:
  label: "Bloomberg Market Data Lookup"
  description: "Retrieves real-time market data from Bloomberg for investment instruments in the New York Life portfolio, returning price, yield, and change metrics."
  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, returning the file name, size, owner, and download URL.

naftiko: "0.5"
info:
  label: "Box Document Retrieval"
  description: "Retrieves a document from Box by file ID, returning the file name, size, owner, and download URL."
  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"
            - name: owner
              type: string
              mapping: "$.owned_by.name"
  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

Retrieves IVR call metrics from Cisco Voice Portal for the New York Life customer service line, returning call volume, average handle time, and abandonment rate.

naftiko: "0.5"
info:
  label: "Cisco Voice Portal IVR Metrics"
  description: "Retrieves IVR call metrics from Cisco Voice Portal for the New York Life customer service line, returning call volume, average handle time, and abandonment rate."
  tags:
    - customer-service
    - cisco-voice-portal
    - telephony
capability:
  exposes:
    - type: mcp
      namespace: contact-center
      port: 8080
      tools:
        - name: get-ivr-metrics
          description: "Retrieve Cisco Voice Portal IVR metrics for a given date range."
          inputParameters:
            - name: start_date
              in: body
              type: string
              description: "Start date in YYYY-MM-DD format."
            - name: end_date
              in: body
              type: string
              description: "End date in YYYY-MM-DD format."
          call: "cisco-cvp.get-metrics"
          with:
            start_date: "{{start_date}}"
            end_date: "{{end_date}}"
          outputParameters:
            - name: total_calls
              type: string
              mapping: "$.data.total_calls"
            - name: avg_handle_time
              type: string
              mapping: "$.data.avg_handle_time_seconds"
            - name: abandonment_rate
              type: string
              mapping: "$.data.abandonment_rate"
  consumes:
    - type: http
      namespace: cisco-cvp
      baseUri: "https://newyorklife-cvp.cisco.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.cisco_cvp_token"
      resources:
        - name: metrics
          path: "/reports/ivr-metrics"
          operations:
            - name: get-metrics
              method: POST

When a new claim is filed, creates the claim record in Salesforce Service Cloud, opens a ServiceNow case for the claims processing team, 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 Service Cloud, opens a ServiceNow case for the claims processing team, uploads supporting documents to SharePoint, and notifies the claims adjuster via Microsoft Teams."
  tags:
    - claims
    - salesforce-service-cloud
    - 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 processing case, store documents, and notify the adjuster."
          inputParameters:
            - name: policy_number
              in: body
              type: string
              description: "The policy number associated with the claim."
            - name: claimant_name
              in: body
              type: string
              description: "The name of the claimant."
            - name: claim_type
              in: body
              type: string
              description: "Type of claim (death benefit, disability, accelerated benefit)."
            - name: claim_description
              in: body
              type: string
              description: "Description of the claim circumstances."
          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}}. Type: {{claim_type}}. {{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 filed: {{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://newyorklife.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://newyorklife.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

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

naftiko: "0.5"
info:
  label: "Client Financial Plan Orchestrator"
  description: "Generates a comprehensive financial plan by pulling client data from Salesforce, running projections in Azure ML, fetching portfolio performance from Bloomberg AIM, and delivering the plan via SharePoint and Microsoft Outlook."
  tags:
    - wealth-management
    - financial-planning
    - salesforce
    - azure-machine-learning
    - bloomberg-aim
    - sharepoint
    - microsoft-outlook
capability:
  exposes:
    - type: mcp
      namespace: financial-planning
      port: 8080
      tools:
        - name: generate-financial-plan
          description: "Given a client ID and planning horizon, pull data, run projections, and deliver the comprehensive financial 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: Client {{get-client-data.client_name}}"
                body: "The {{planning_horizon}}-year financial plan for {{get-client-data.client_name}} is ready. Portfolio value: {{get-portfolio.market_value}}. Projected growth: {{run-projections.projected_growth}}. Download: {{store-plan.url}}"
  consumes:
    - type: http
      namespace: salesforce
      baseUri: "https://newyorklife.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://newyorklife-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

Queries Cloudflare analytics for New York Life web properties to return bandwidth usage, cache hit ratio, and threat event counts.

naftiko: "0.5"
info:
  label: "Cloudflare CDN Performance Check"
  description: "Queries Cloudflare analytics for New York Life web properties to return bandwidth usage, cache hit ratio, and threat event counts."
  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"
            - name: threats
              type: string
              mapping: "$.result.totals.threats.all"
  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 consolidated audit 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 consolidated audit 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 and audit scope, pull data from Salesforce, Bloomberg AIM, and Workday, and generate a consolidated audit report in SharePoint."
          inputParameters:
            - name: start_date
              in: body
              type: string
              description: "Audit period start date in YYYY-MM-DD format."
            - name: end_date
              in: body
              type: string
              description: "Audit period end date in YYYY-MM-DD format."
            - name: audit_scope
              in: body
              type: string
              description: "Scope of audit (policy-transactions, investment-activities, all)."
          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_{{audit_scope}}.json"
                content: "Policies: {{fetch-policy-data.records}} | Investments: {{fetch-investment-data.activities}} | Employee: {{fetch-employee-data.events}}"
  consumes:
    - type: http
      namespace: salesforce
      baseUri: "https://newyorklife.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

Searches the New York Life Confluence knowledge base by keyword and returns matching page titles, spaces, and last update dates.

naftiko: "0.5"
info:
  label: "Confluence Knowledge Base Search"
  description: "Searches the New York Life Confluence knowledge base by keyword and returns matching page titles, spaces, and last update dates."
  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 keywords."
          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://newyorklife.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 machine learning pipeline run, returning run state, start time, and output metrics.

naftiko: "0.5"
info:
  label: "Databricks ML Pipeline Status"
  description: "Checks the status of a Databricks machine learning pipeline run, returning run state, start time, and output metrics."
  tags:
    - data-science
    - databricks
    - machine-learning
capability:
  exposes:
    - type: mcp
      namespace: ml-ops
      port: 8080
      tools:
        - name: get-pipeline-status
          description: "Check the status of a Databricks pipeline run 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"
            - name: start_time
              type: string
              mapping: "$.start_time"
  consumes:
    - type: http
      namespace: databricks
      baseUri: "https://newyorklife.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 the current health status of New York Life infrastructure, returning host count, alert counts, and critical monitors.

naftiko: "0.5"
info:
  label: "Datadog Infrastructure Health Check"
  description: "Queries Datadog for the current health status of New York Life infrastructure, 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 to check (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"
            - name: critical_monitors
              type: array
              mapping: "$.critical_monitors"
  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

Queries Dynatrace for application health metrics for New York Life digital services, returning availability, response time, and failure rate.

naftiko: "0.5"
info:
  label: "Dynatrace Application Health Check"
  description: "Queries Dynatrace for application health metrics for New York Life digital services, returning availability, response time, and failure rate."
  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://newyorklife.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

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

naftiko: "0.5"
info:
  label: "Employee Onboarding Orchestrator"
  description: "On new hire creation in Workday, opens a ServiceNow onboarding ticket, provisions a SharePoint folder, and sends a Microsoft Teams welcome message."
  tags:
    - hr
    - onboarding
    - workday
    - servicenow
    - sharepoint
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: hr-onboarding
      port: 8080
      tools:
        - name: trigger-onboarding
          description: "Given a Workday employee ID and start date, orchestrate onboarding across ServiceNow, SharePoint, and Microsoft Teams."
          inputParameters:
            - name: workday_employee_id
              in: body
              type: string
              description: "The Workday worker ID for the new hire."
            - 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 the new hire is joining."
          steps:
            - name: get-employee
              type: call
              call: "workday.get-worker"
              with:
                worker_id: "{{workday_employee_id}}"
            - name: open-ticket
              type: call
              call: "servicenow.create-incident"
              with:
                short_description: "New hire onboarding: {{get-employee.full_name}}"
                category: "hr_onboarding"
                assigned_group: "IT_Onboarding"
                description: "Onboarding for {{get-employee.full_name}} starting {{start_date}} in {{department}}."
            - name: provision-folder
              type: call
              call: "sharepoint.create-folder"
              with:
                site_id: "hr_onboarding_site"
                folder_path: "OnboardingDocs/{{get-employee.full_name}}_{{start_date}}"
            - name: send-welcome
              type: call
              call: "msteams.send-message"
              with:
                recipient_upn: "{{get-employee.work_email}}"
                text: "Welcome to New York Life, {{get-employee.first_name}}! Your IT onboarding ticket is {{open-ticket.number}}. Documents: {{provision-folder.url}}."
  consumes:
    - type: http
      namespace: workday
      baseUri: "https://wd2-impl-services1.workday.com/ccx/api/v1"
      authentication:
        type: bearer
        token: "$secrets.workday_token"
      resources:
        - name: workers
          path: "/workers/{{worker_id}}"
          inputParameters:
            - name: worker_id
              in: path
          operations:
            - name: get-worker
              method: GET
    - type: http
      namespace: servicenow
      baseUri: "https://newyorklife.service-now.com/api/now"
      authentication:
        type: basic
        username: "$secrets.servicenow_user"
        password: "$secrets.servicenow_password"
      resources:
        - name: incidents
          path: "/table/incident"
          operations:
            - name: create-incident
              method: POST
    - type: http
      namespace: sharepoint
      baseUri: "https://graph.microsoft.com/v1.0/sites"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: drive-items
          path: "/{{site_id}}/drive/root:/{{folder_path}}"
          inputParameters:
            - name: site_id
              in: path
            - name: folder_path
              in: path
          operations:
            - name: create-folder
              method: POST
    - type: http
      namespace: msteams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: messages
          path: "/users/{{recipient_upn}}/sendMail"
          inputParameters:
            - name: recipient_upn
              in: path
          operations:
            - name: send-message
              method: POST

Retrieves investment research data from FactSet for a given security, returning analyst ratings, price targets, and fundamental metrics.

naftiko: "0.5"
info:
  label: "FactSet Investment Research Lookup"
  description: "Retrieves investment research data from FactSet for a given security, returning analyst ratings, price targets, and fundamental metrics."
  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 the current status of a New York Life GitHub repository including open pull requests, recent commits, and branch information.

naftiko: "0.5"
info:
  label: "GitHub Repository Status"
  description: "Retrieves the current status of a New York Life GitHub repository including open pull requests, recent commits, and branch information."
  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/newyorklife/{{repo}}"
          inputParameters:
            - name: repo
              in: path
          operations:
            - name: get-repo
              method: GET

Checks the status of an Informatica data integration job, returning job state, start time, and rows processed.

naftiko: "0.5"
info:
  label: "Informatica Data Integration Status"
  description: "Checks the status of an Informatica data integration job, returning job state, start time, and rows processed."
  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: start_time
              type: string
              mapping: "$.startTime"
            - 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 New York Life.

naftiko: "0.5"
info:
  label: "New York Life Workflow 1"
  description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for New York Life."
  tags:
    - insurance
    - operations
    - salesforce
capability:
  exposes:
    - type: mcp
      namespace: insurance
      port: 8080
      tools:
        - name: new-york-life-workflow-1
          description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for New York Life."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Primary identifier for this workflow"
          steps:
            - name: process
              type: call
              call: "newyorklife-ops.run-workflow-1"
              with:
                identifier: "{{identifier}}"
            - name: create
              type: call
              call: "salesforce.create-account"
              with:
                data: "{{process.result}}"
  consumes:
    - type: http
      namespace: newyorklife-ops
      baseUri: "https://api.newyorklife.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.nyl_api_token"
      resources:
        - name: operations
          path: "/operations"
          operations:
            - name: run-workflow-1
              method: POST
    - type: http
      namespace: salesforce
      baseUri: "https://newyorklife.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 New York Life.

naftiko: "0.5"
info:
  label: "New York Life Workflow 10"
  description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for New York Life."
  tags:
    - insurance
    - operations
    - sharepoint
capability:
  exposes:
    - type: mcp
      namespace: insurance
      port: 8080
      tools:
        - name: new-york-life-workflow-10
          description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for New York Life."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Primary identifier for this workflow"
          steps:
            - name: process
              type: call
              call: "newyorklife-ops.run-workflow-10"
              with:
                identifier: "{{identifier}}"
            - name: upload
              type: call
              call: "sharepoint.upload-document"
              with:
                content: "{{process.document}}"
  consumes:
    - type: http
      namespace: newyorklife-ops
      baseUri: "https://api.newyorklife.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.nyl_api_token"
      resources:
        - name: operations
          path: "/operations"
          operations:
            - name: run-workflow-10
              method: POST
    - type: http
      namespace: sharepoint
      baseUri: "https://newyorklife.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 New York Life.

naftiko: "0.5"
info:
  label: "New York Life Workflow 11"
  description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for New York Life."
  tags:
    - insurance
    - operations
    - hubspot
capability:
  exposes:
    - type: mcp
      namespace: insurance
      port: 8080
      tools:
        - name: new-york-life-workflow-11
          description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for New York Life."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Primary identifier for this workflow"
          steps:
            - name: process
              type: call
              call: "newyorklife-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: newyorklife-ops
      baseUri: "https://api.newyorklife.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.nyl_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 New York Life.

naftiko: "0.5"
info:
  label: "New York Life Workflow 12"
  description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for New York Life."
  tags:
    - insurance
    - operations
    - datadog
capability:
  exposes:
    - type: mcp
      namespace: insurance
      port: 8080
      tools:
        - name: new-york-life-workflow-12
          description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for New York Life."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Primary identifier for this workflow"
          steps:
            - name: process
              type: call
              call: "newyorklife-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: newyorklife-ops
      baseUri: "https://api.newyorklife.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.nyl_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 New York Life.

naftiko: "0.5"
info:
  label: "New York Life Workflow 13"
  description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for New York Life."
  tags:
    - insurance
    - operations
    - salesforce
capability:
  exposes:
    - type: mcp
      namespace: insurance
      port: 8080
      tools:
        - name: new-york-life-workflow-13
          description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for New York Life."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Primary identifier for this workflow"
          steps:
            - name: process
              type: call
              call: "newyorklife-ops.run-workflow-13"
              with:
                identifier: "{{identifier}}"
            - name: create
              type: call
              call: "salesforce.create-account"
              with:
                data: "{{process.result}}"
  consumes:
    - type: http
      namespace: newyorklife-ops
      baseUri: "https://api.newyorklife.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.nyl_api_token"
      resources:
        - name: operations
          path: "/operations"
          operations:
            - name: run-workflow-13
              method: POST
    - type: http
      namespace: salesforce
      baseUri: "https://newyorklife.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 New York Life.

naftiko: "0.5"
info:
  label: "New York Life Workflow 14"
  description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for New York Life."
  tags:
    - insurance
    - operations
    - servicenow
capability:
  exposes:
    - type: mcp
      namespace: insurance
      port: 8080
      tools:
        - name: new-york-life-workflow-14
          description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for New York Life."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Primary identifier for this workflow"
          steps:
            - name: process
              type: call
              call: "newyorklife-ops.run-workflow-14"
              with:
                identifier: "{{identifier}}"
            - name: create
              type: call
              call: "servicenow.create-incident"
              with:
                data: "{{process.result}}"
  consumes:
    - type: http
      namespace: newyorklife-ops
      baseUri: "https://api.newyorklife.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.nyl_api_token"
      resources:
        - name: operations
          path: "/operations"
          operations:
            - name: run-workflow-14
              method: POST
    - type: http
      namespace: servicenow
      baseUri: "https://newyorklife.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 New York Life.

naftiko: "0.5"
info:
  label: "New York Life Workflow 15"
  description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for New York Life."
  tags:
    - insurance
    - operations
    - slack
capability:
  exposes:
    - type: mcp
      namespace: insurance
      port: 8080
      tools:
        - name: new-york-life-workflow-15
          description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for New York Life."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Primary identifier for this workflow"
          steps:
            - name: process
              type: call
              call: "newyorklife-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: newyorklife-ops
      baseUri: "https://api.newyorklife.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.nyl_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 New York Life.

naftiko: "0.5"
info:
  label: "New York Life Workflow 16"
  description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for New York Life."
  tags:
    - insurance
    - operations
    - confluence
capability:
  exposes:
    - type: mcp
      namespace: insurance
      port: 8080
      tools:
        - name: new-york-life-workflow-16
          description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for New York Life."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Primary identifier for this workflow"
          steps:
            - name: process
              type: call
              call: "newyorklife-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: newyorklife-ops
      baseUri: "https://api.newyorklife.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.nyl_api_token"
      resources:
        - name: operations
          path: "/operations"
          operations:
            - name: run-workflow-16
              method: POST
    - type: http
      namespace: confluence
      baseUri: "https://newyorklife.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 New York Life.

naftiko: "0.5"
info:
  label: "New York Life Workflow 17"
  description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for New York Life."
  tags:
    - insurance
    - operations
    - powerbi
capability:
  exposes:
    - type: mcp
      namespace: insurance
      port: 8080
      tools:
        - name: new-york-life-workflow-17
          description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for New York Life."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Primary identifier for this workflow"
          steps:
            - name: process
              type: call
              call: "newyorklife-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: newyorklife-ops
      baseUri: "https://api.newyorklife.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.nyl_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 New York Life.

naftiko: "0.5"
info:
  label: "New York Life Workflow 18"
  description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for New York Life."
  tags:
    - insurance
    - operations
    - jira
capability:
  exposes:
    - type: mcp
      namespace: insurance
      port: 8080
      tools:
        - name: new-york-life-workflow-18
          description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for New York Life."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Primary identifier for this workflow"
          steps:
            - name: process
              type: call
              call: "newyorklife-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: newyorklife-ops
      baseUri: "https://api.newyorklife.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.nyl_api_token"
      resources:
        - name: operations
          path: "/operations"
          operations:
            - name: run-workflow-18
              method: POST
    - type: http
      namespace: jira
      baseUri: "https://newyorklife.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 New York Life.

naftiko: "0.5"
info:
  label: "New York Life Workflow 19"
  description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for New York Life."
  tags:
    - insurance
    - operations
    - teams
capability:
  exposes:
    - type: mcp
      namespace: insurance
      port: 8080
      tools:
        - name: new-york-life-workflow-19
          description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for New York Life."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Primary identifier for this workflow"
          steps:
            - name: process
              type: call
              call: "newyorklife-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: newyorklife-ops
      baseUri: "https://api.newyorklife.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.nyl_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 New York Life.

naftiko: "0.5"
info:
  label: "New York Life Workflow 2"
  description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for New York Life."
  tags:
    - insurance
    - operations
    - servicenow
capability:
  exposes:
    - type: mcp
      namespace: insurance
      port: 8080
      tools:
        - name: new-york-life-workflow-2
          description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for New York Life."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Primary identifier for this workflow"
          steps:
            - name: process
              type: call
              call: "newyorklife-ops.run-workflow-2"
              with:
                identifier: "{{identifier}}"
            - name: create
              type: call
              call: "servicenow.create-incident"
              with:
                data: "{{process.result}}"
  consumes:
    - type: http
      namespace: newyorklife-ops
      baseUri: "https://api.newyorklife.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.nyl_api_token"
      resources:
        - name: operations
          path: "/operations"
          operations:
            - name: run-workflow-2
              method: POST
    - type: http
      namespace: servicenow
      baseUri: "https://newyorklife.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 New York Life.

naftiko: "0.5"
info:
  label: "New York Life Workflow 20"
  description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for New York Life."
  tags:
    - insurance
    - operations
    - tableau
capability:
  exposes:
    - type: mcp
      namespace: insurance
      port: 8080
      tools:
        - name: new-york-life-workflow-20
          description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for New York Life."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Primary identifier for this workflow"
          steps:
            - name: process
              type: call
              call: "newyorklife-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: newyorklife-ops
      baseUri: "https://api.newyorklife.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.nyl_api_token"
      resources:
        - name: operations
          path: "/operations"
          operations:
            - name: run-workflow-20
              method: POST
    - type: http
      namespace: tableau
      baseUri: "https://newyorklife-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 New York Life.

naftiko: "0.5"
info:
  label: "New York Life Workflow 21"
  description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for New York Life."
  tags:
    - insurance
    - operations
    - box
capability:
  exposes:
    - type: mcp
      namespace: insurance
      port: 8080
      tools:
        - name: new-york-life-workflow-21
          description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for New York Life."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Primary identifier for this workflow"
          steps:
            - name: process
              type: call
              call: "newyorklife-ops.run-workflow-21"
              with:
                identifier: "{{identifier}}"
            - name: upload
              type: call
              call: "box.upload-file"
              with:
                content: "{{process.document}}"
  consumes:
    - type: http
      namespace: newyorklife-ops
      baseUri: "https://api.newyorklife.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.nyl_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 New York Life.

naftiko: "0.5"
info:
  label: "New York Life Workflow 22"
  description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for New York Life."
  tags:
    - insurance
    - operations
    - sharepoint
capability:
  exposes:
    - type: mcp
      namespace: insurance
      port: 8080
      tools:
        - name: new-york-life-workflow-22
          description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for New York Life."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Primary identifier for this workflow"
          steps:
            - name: process
              type: call
              call: "newyorklife-ops.run-workflow-22"
              with:
                identifier: "{{identifier}}"
            - name: upload
              type: call
              call: "sharepoint.upload-document"
              with:
                content: "{{process.document}}"
  consumes:
    - type: http
      namespace: newyorklife-ops
      baseUri: "https://api.newyorklife.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.nyl_api_token"
      resources:
        - name: operations
          path: "/operations"
          operations:
            - name: run-workflow-22
              method: POST
    - type: http
      namespace: sharepoint
      baseUri: "https://newyorklife.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 New York Life.

naftiko: "0.5"
info:
  label: "New York Life Workflow 23"
  description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for New York Life."
  tags:
    - insurance
    - operations
    - hubspot
capability:
  exposes:
    - type: mcp
      namespace: insurance
      port: 8080
      tools:
        - name: new-york-life-workflow-23
          description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for New York Life."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Primary identifier for this workflow"
          steps:
            - name: process
              type: call
              call: "newyorklife-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: newyorklife-ops
      baseUri: "https://api.newyorklife.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.nyl_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 New York Life.

naftiko: "0.5"
info:
  label: "New York Life Workflow 24"
  description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for New York Life."
  tags:
    - insurance
    - operations
    - datadog
capability:
  exposes:
    - type: mcp
      namespace: insurance
      port: 8080
      tools:
        - name: new-york-life-workflow-24
          description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for New York Life."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Primary identifier for this workflow"
          steps:
            - name: process
              type: call
              call: "newyorklife-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: newyorklife-ops
      baseUri: "https://api.newyorklife.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.nyl_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 New York Life.

naftiko: "0.5"
info:
  label: "New York Life Workflow 25"
  description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for New York Life."
  tags:
    - insurance
    - operations
    - salesforce
capability:
  exposes:
    - type: mcp
      namespace: insurance
      port: 8080
      tools:
        - name: new-york-life-workflow-25
          description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for New York Life."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Primary identifier for this workflow"
          steps:
            - name: process
              type: call
              call: "newyorklife-ops.run-workflow-25"
              with:
                identifier: "{{identifier}}"
            - name: create
              type: call
              call: "salesforce.create-account"
              with:
                data: "{{process.result}}"
  consumes:
    - type: http
      namespace: newyorklife-ops
      baseUri: "https://api.newyorklife.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.nyl_api_token"
      resources:
        - name: operations
          path: "/operations"
          operations:
            - name: run-workflow-25
              method: POST
    - type: http
      namespace: salesforce
      baseUri: "https://newyorklife.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 New York Life.

naftiko: "0.5"
info:
  label: "New York Life Workflow 26"
  description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for New York Life."
  tags:
    - insurance
    - operations
    - servicenow
capability:
  exposes:
    - type: mcp
      namespace: insurance
      port: 8080
      tools:
        - name: new-york-life-workflow-26
          description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for New York Life."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Primary identifier for this workflow"
          steps:
            - name: process
              type: call
              call: "newyorklife-ops.run-workflow-26"
              with:
                identifier: "{{identifier}}"
            - name: create
              type: call
              call: "servicenow.create-incident"
              with:
                data: "{{process.result}}"
  consumes:
    - type: http
      namespace: newyorklife-ops
      baseUri: "https://api.newyorklife.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.nyl_api_token"
      resources:
        - name: operations
          path: "/operations"
          operations:
            - name: run-workflow-26
              method: POST
    - type: http
      namespace: servicenow
      baseUri: "https://newyorklife.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 New York Life.

naftiko: "0.5"
info:
  label: "New York Life Workflow 27"
  description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for New York Life."
  tags:
    - insurance
    - operations
    - slack
capability:
  exposes:
    - type: mcp
      namespace: insurance
      port: 8080
      tools:
        - name: new-york-life-workflow-27
          description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for New York Life."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Primary identifier for this workflow"
          steps:
            - name: process
              type: call
              call: "newyorklife-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: newyorklife-ops
      baseUri: "https://api.newyorklife.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.nyl_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 New York Life.

naftiko: "0.5"
info:
  label: "New York Life Workflow 28"
  description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for New York Life."
  tags:
    - insurance
    - operations
    - confluence
capability:
  exposes:
    - type: mcp
      namespace: insurance
      port: 8080
      tools:
        - name: new-york-life-workflow-28
          description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for New York Life."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Primary identifier for this workflow"
          steps:
            - name: process
              type: call
              call: "newyorklife-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: newyorklife-ops
      baseUri: "https://api.newyorklife.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.nyl_api_token"
      resources:
        - name: operations
          path: "/operations"
          operations:
            - name: run-workflow-28
              method: POST
    - type: http
      namespace: confluence
      baseUri: "https://newyorklife.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 New York Life.

naftiko: "0.5"
info:
  label: "New York Life Workflow 29"
  description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for New York Life."
  tags:
    - insurance
    - operations
    - powerbi
capability:
  exposes:
    - type: mcp
      namespace: insurance
      port: 8080
      tools:
        - name: new-york-life-workflow-29
          description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for New York Life."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Primary identifier for this workflow"
          steps:
            - name: process
              type: call
              call: "newyorklife-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: newyorklife-ops
      baseUri: "https://api.newyorklife.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.nyl_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 New York Life.

naftiko: "0.5"
info:
  label: "New York Life Workflow 3"
  description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for New York Life."
  tags:
    - insurance
    - operations
    - slack
capability:
  exposes:
    - type: mcp
      namespace: insurance
      port: 8080
      tools:
        - name: new-york-life-workflow-3
          description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for New York Life."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Primary identifier for this workflow"
          steps:
            - name: process
              type: call
              call: "newyorklife-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: newyorklife-ops
      baseUri: "https://api.newyorklife.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.nyl_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 New York Life.

naftiko: "0.5"
info:
  label: "New York Life Workflow 30"
  description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for New York Life."
  tags:
    - insurance
    - operations
    - jira
capability:
  exposes:
    - type: mcp
      namespace: insurance
      port: 8080
      tools:
        - name: new-york-life-workflow-30
          description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for New York Life."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Primary identifier for this workflow"
          steps:
            - name: process
              type: call
              call: "newyorklife-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: newyorklife-ops
      baseUri: "https://api.newyorklife.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.nyl_api_token"
      resources:
        - name: operations
          path: "/operations"
          operations:
            - name: run-workflow-30
              method: POST
    - type: http
      namespace: jira
      baseUri: "https://newyorklife.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 New York Life.

naftiko: "0.5"
info:
  label: "New York Life Workflow 31"
  description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for New York Life."
  tags:
    - insurance
    - operations
    - teams
capability:
  exposes:
    - type: mcp
      namespace: insurance
      port: 8080
      tools:
        - name: new-york-life-workflow-31
          description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for New York Life."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Primary identifier for this workflow"
          steps:
            - name: process
              type: call
              call: "newyorklife-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: newyorklife-ops
      baseUri: "https://api.newyorklife.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.nyl_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 New York Life.

naftiko: "0.5"
info:
  label: "New York Life Workflow 32"
  description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for New York Life."
  tags:
    - insurance
    - operations
    - tableau
capability:
  exposes:
    - type: mcp
      namespace: insurance
      port: 8080
      tools:
        - name: new-york-life-workflow-32
          description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for New York Life."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Primary identifier for this workflow"
          steps:
            - name: process
              type: call
              call: "newyorklife-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: newyorklife-ops
      baseUri: "https://api.newyorklife.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.nyl_api_token"
      resources:
        - name: operations
          path: "/operations"
          operations:
            - name: run-workflow-32
              method: POST
    - type: http
      namespace: tableau
      baseUri: "https://newyorklife-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 New York Life.

naftiko: "0.5"
info:
  label: "New York Life Workflow 33"
  description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for New York Life."
  tags:
    - insurance
    - operations
    - box
capability:
  exposes:
    - type: mcp
      namespace: insurance
      port: 8080
      tools:
        - name: new-york-life-workflow-33
          description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for New York Life."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Primary identifier for this workflow"
          steps:
            - name: process
              type: call
              call: "newyorklife-ops.run-workflow-33"
              with:
                identifier: "{{identifier}}"
            - name: upload
              type: call
              call: "box.upload-file"
              with:
                content: "{{process.document}}"
  consumes:
    - type: http
      namespace: newyorklife-ops
      baseUri: "https://api.newyorklife.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.nyl_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 New York Life.

naftiko: "0.5"
info:
  label: "New York Life Workflow 34"
  description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for New York Life."
  tags:
    - insurance
    - operations
    - sharepoint
capability:
  exposes:
    - type: mcp
      namespace: insurance
      port: 8080
      tools:
        - name: new-york-life-workflow-34
          description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for New York Life."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Primary identifier for this workflow"
          steps:
            - name: process
              type: call
              call: "newyorklife-ops.run-workflow-34"
              with:
                identifier: "{{identifier}}"
            - name: upload
              type: call
              call: "sharepoint.upload-document"
              with:
                content: "{{process.document}}"
  consumes:
    - type: http
      namespace: newyorklife-ops
      baseUri: "https://api.newyorklife.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.nyl_api_token"
      resources:
        - name: operations
          path: "/operations"
          operations:
            - name: run-workflow-34
              method: POST
    - type: http
      namespace: sharepoint
      baseUri: "https://newyorklife.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 New York Life.

naftiko: "0.5"
info:
  label: "New York Life Workflow 35"
  description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for New York Life."
  tags:
    - insurance
    - operations
    - hubspot
capability:
  exposes:
    - type: mcp
      namespace: insurance
      port: 8080
      tools:
        - name: new-york-life-workflow-35
          description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for New York Life."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Primary identifier for this workflow"
          steps:
            - name: process
              type: call
              call: "newyorklife-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: newyorklife-ops
      baseUri: "https://api.newyorklife.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.nyl_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 New York Life.

naftiko: "0.5"
info:
  label: "New York Life Workflow 4"
  description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for New York Life."
  tags:
    - insurance
    - operations
    - confluence
capability:
  exposes:
    - type: mcp
      namespace: insurance
      port: 8080
      tools:
        - name: new-york-life-workflow-4
          description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for New York Life."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Primary identifier for this workflow"
          steps:
            - name: process
              type: call
              call: "newyorklife-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: newyorklife-ops
      baseUri: "https://api.newyorklife.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.nyl_api_token"
      resources:
        - name: operations
          path: "/operations"
          operations:
            - name: run-workflow-4
              method: POST
    - type: http
      namespace: confluence
      baseUri: "https://newyorklife.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 New York Life.

naftiko: "0.5"
info:
  label: "New York Life Workflow 5"
  description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for New York Life."
  tags:
    - insurance
    - operations
    - powerbi
capability:
  exposes:
    - type: mcp
      namespace: insurance
      port: 8080
      tools:
        - name: new-york-life-workflow-5
          description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for New York Life."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Primary identifier for this workflow"
          steps:
            - name: process
              type: call
              call: "newyorklife-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: newyorklife-ops
      baseUri: "https://api.newyorklife.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.nyl_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 New York Life.

naftiko: "0.5"
info:
  label: "New York Life Workflow 6"
  description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for New York Life."
  tags:
    - insurance
    - operations
    - jira
capability:
  exposes:
    - type: mcp
      namespace: insurance
      port: 8080
      tools:
        - name: new-york-life-workflow-6
          description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for New York Life."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Primary identifier for this workflow"
          steps:
            - name: process
              type: call
              call: "newyorklife-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: newyorklife-ops
      baseUri: "https://api.newyorklife.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.nyl_api_token"
      resources:
        - name: operations
          path: "/operations"
          operations:
            - name: run-workflow-6
              method: POST
    - type: http
      namespace: jira
      baseUri: "https://newyorklife.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 New York Life.

naftiko: "0.5"
info:
  label: "New York Life Workflow 7"
  description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for New York Life."
  tags:
    - insurance
    - operations
    - teams
capability:
  exposes:
    - type: mcp
      namespace: insurance
      port: 8080
      tools:
        - name: new-york-life-workflow-7
          description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for New York Life."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Primary identifier for this workflow"
          steps:
            - name: process
              type: call
              call: "newyorklife-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: newyorklife-ops
      baseUri: "https://api.newyorklife.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.nyl_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 New York Life.

naftiko: "0.5"
info:
  label: "New York Life Workflow 8"
  description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for New York Life."
  tags:
    - insurance
    - operations
    - tableau
capability:
  exposes:
    - type: mcp
      namespace: insurance
      port: 8080
      tools:
        - name: new-york-life-workflow-8
          description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for New York Life."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Primary identifier for this workflow"
          steps:
            - name: process
              type: call
              call: "newyorklife-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: newyorklife-ops
      baseUri: "https://api.newyorklife.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.nyl_api_token"
      resources:
        - name: operations
          path: "/operations"
          operations:
            - name: run-workflow-8
              method: POST
    - type: http
      namespace: tableau
      baseUri: "https://newyorklife-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 New York Life.

naftiko: "0.5"
info:
  label: "New York Life Workflow 9"
  description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for New York Life."
  tags:
    - insurance
    - operations
    - box
capability:
  exposes:
    - type: mcp
      namespace: insurance
      port: 8080
      tools:
        - name: new-york-life-workflow-9
          description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for New York Life."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Primary identifier for this workflow"
          steps:
            - name: process
              type: call
              call: "newyorklife-ops.run-workflow-9"
              with:
                identifier: "{{identifier}}"
            - name: upload
              type: call
              call: "box.upload-file"
              with:
                content: "{{process.document}}"
  consumes:
    - type: http
      namespace: newyorklife-ops
      baseUri: "https://api.newyorklife.com/operations/v1"
      authentication:
        type: bearer
        token: "$secrets.nyl_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 New York Life insurance workflows.

naftiko: "0.5"
info:
  label: "New York Life Data Lookup 1"
  description: "Retrieves operational data for New York Life insurance workflows."
  tags:
    - insurance
    - operations
capability:
  exposes:
    - type: mcp
      namespace: newyorklife-data
      port: 8080
      tools:
        - name: get-data-1
          description: "Retrieves operational data for New York Life insurance workflows."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Resource identifier"
          call: "newyorklife-data.get-data-1"
          with:
            identifier: "{{identifier}}"
  consumes:
    - type: http
      namespace: newyorklife-data
      baseUri: "https://api.newyorklife.com/data/v1"
      authentication:
        type: bearer
        token: "$secrets.nyl_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 New York Life insurance workflows.

naftiko: "0.5"
info:
  label: "New York Life Data Lookup 10"
  description: "Retrieves operational data for New York Life insurance workflows."
  tags:
    - insurance
    - operations
capability:
  exposes:
    - type: mcp
      namespace: newyorklife-data
      port: 8080
      tools:
        - name: get-data-10
          description: "Retrieves operational data for New York Life insurance workflows."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Resource identifier"
          call: "newyorklife-data.get-data-10"
          with:
            identifier: "{{identifier}}"
  consumes:
    - type: http
      namespace: newyorklife-data
      baseUri: "https://api.newyorklife.com/data/v1"
      authentication:
        type: bearer
        token: "$secrets.nyl_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 New York Life insurance workflows.

naftiko: "0.5"
info:
  label: "New York Life Data Lookup 11"
  description: "Retrieves operational data for New York Life insurance workflows."
  tags:
    - insurance
    - operations
capability:
  exposes:
    - type: mcp
      namespace: newyorklife-data
      port: 8080
      tools:
        - name: get-data-11
          description: "Retrieves operational data for New York Life insurance workflows."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Resource identifier"
          call: "newyorklife-data.get-data-11"
          with:
            identifier: "{{identifier}}"
  consumes:
    - type: http
      namespace: newyorklife-data
      baseUri: "https://api.newyorklife.com/data/v1"
      authentication:
        type: bearer
        token: "$secrets.nyl_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 New York Life insurance workflows.

naftiko: "0.5"
info:
  label: "New York Life Data Lookup 12"
  description: "Retrieves operational data for New York Life insurance workflows."
  tags:
    - insurance
    - operations
capability:
  exposes:
    - type: mcp
      namespace: newyorklife-data
      port: 8080
      tools:
        - name: get-data-12
          description: "Retrieves operational data for New York Life insurance workflows."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Resource identifier"
          call: "newyorklife-data.get-data-12"
          with:
            identifier: "{{identifier}}"
  consumes:
    - type: http
      namespace: newyorklife-data
      baseUri: "https://api.newyorklife.com/data/v1"
      authentication:
        type: bearer
        token: "$secrets.nyl_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 New York Life insurance workflows.

naftiko: "0.5"
info:
  label: "New York Life Data Lookup 13"
  description: "Retrieves operational data for New York Life insurance workflows."
  tags:
    - insurance
    - operations
capability:
  exposes:
    - type: mcp
      namespace: newyorklife-data
      port: 8080
      tools:
        - name: get-data-13
          description: "Retrieves operational data for New York Life insurance workflows."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Resource identifier"
          call: "newyorklife-data.get-data-13"
          with:
            identifier: "{{identifier}}"
  consumes:
    - type: http
      namespace: newyorklife-data
      baseUri: "https://api.newyorklife.com/data/v1"
      authentication:
        type: bearer
        token: "$secrets.nyl_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 New York Life insurance workflows.

naftiko: "0.5"
info:
  label: "New York Life Data Lookup 14"
  description: "Retrieves operational data for New York Life insurance workflows."
  tags:
    - insurance
    - operations
capability:
  exposes:
    - type: mcp
      namespace: newyorklife-data
      port: 8080
      tools:
        - name: get-data-14
          description: "Retrieves operational data for New York Life insurance workflows."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Resource identifier"
          call: "newyorklife-data.get-data-14"
          with:
            identifier: "{{identifier}}"
  consumes:
    - type: http
      namespace: newyorklife-data
      baseUri: "https://api.newyorklife.com/data/v1"
      authentication:
        type: bearer
        token: "$secrets.nyl_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 New York Life insurance workflows.

naftiko: "0.5"
info:
  label: "New York Life Data Lookup 15"
  description: "Retrieves operational data for New York Life insurance workflows."
  tags:
    - insurance
    - operations
capability:
  exposes:
    - type: mcp
      namespace: newyorklife-data
      port: 8080
      tools:
        - name: get-data-15
          description: "Retrieves operational data for New York Life insurance workflows."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Resource identifier"
          call: "newyorklife-data.get-data-15"
          with:
            identifier: "{{identifier}}"
  consumes:
    - type: http
      namespace: newyorklife-data
      baseUri: "https://api.newyorklife.com/data/v1"
      authentication:
        type: bearer
        token: "$secrets.nyl_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 New York Life insurance workflows.

naftiko: "0.5"
info:
  label: "New York Life Data Lookup 2"
  description: "Retrieves operational data for New York Life insurance workflows."
  tags:
    - insurance
    - operations
capability:
  exposes:
    - type: mcp
      namespace: newyorklife-data
      port: 8080
      tools:
        - name: get-data-2
          description: "Retrieves operational data for New York Life insurance workflows."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Resource identifier"
          call: "newyorklife-data.get-data-2"
          with:
            identifier: "{{identifier}}"
  consumes:
    - type: http
      namespace: newyorklife-data
      baseUri: "https://api.newyorklife.com/data/v1"
      authentication:
        type: bearer
        token: "$secrets.nyl_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 New York Life insurance workflows.

naftiko: "0.5"
info:
  label: "New York Life Data Lookup 3"
  description: "Retrieves operational data for New York Life insurance workflows."
  tags:
    - insurance
    - operations
capability:
  exposes:
    - type: mcp
      namespace: newyorklife-data
      port: 8080
      tools:
        - name: get-data-3
          description: "Retrieves operational data for New York Life insurance workflows."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Resource identifier"
          call: "newyorklife-data.get-data-3"
          with:
            identifier: "{{identifier}}"
  consumes:
    - type: http
      namespace: newyorklife-data
      baseUri: "https://api.newyorklife.com/data/v1"
      authentication:
        type: bearer
        token: "$secrets.nyl_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 New York Life insurance workflows.

naftiko: "0.5"
info:
  label: "New York Life Data Lookup 4"
  description: "Retrieves operational data for New York Life insurance workflows."
  tags:
    - insurance
    - operations
capability:
  exposes:
    - type: mcp
      namespace: newyorklife-data
      port: 8080
      tools:
        - name: get-data-4
          description: "Retrieves operational data for New York Life insurance workflows."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Resource identifier"
          call: "newyorklife-data.get-data-4"
          with:
            identifier: "{{identifier}}"
  consumes:
    - type: http
      namespace: newyorklife-data
      baseUri: "https://api.newyorklife.com/data/v1"
      authentication:
        type: bearer
        token: "$secrets.nyl_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 New York Life insurance workflows.

naftiko: "0.5"
info:
  label: "New York Life Data Lookup 5"
  description: "Retrieves operational data for New York Life insurance workflows."
  tags:
    - insurance
    - operations
capability:
  exposes:
    - type: mcp
      namespace: newyorklife-data
      port: 8080
      tools:
        - name: get-data-5
          description: "Retrieves operational data for New York Life insurance workflows."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Resource identifier"
          call: "newyorklife-data.get-data-5"
          with:
            identifier: "{{identifier}}"
  consumes:
    - type: http
      namespace: newyorklife-data
      baseUri: "https://api.newyorklife.com/data/v1"
      authentication:
        type: bearer
        token: "$secrets.nyl_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 New York Life insurance workflows.

naftiko: "0.5"
info:
  label: "New York Life Data Lookup 6"
  description: "Retrieves operational data for New York Life insurance workflows."
  tags:
    - insurance
    - operations
capability:
  exposes:
    - type: mcp
      namespace: newyorklife-data
      port: 8080
      tools:
        - name: get-data-6
          description: "Retrieves operational data for New York Life insurance workflows."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Resource identifier"
          call: "newyorklife-data.get-data-6"
          with:
            identifier: "{{identifier}}"
  consumes:
    - type: http
      namespace: newyorklife-data
      baseUri: "https://api.newyorklife.com/data/v1"
      authentication:
        type: bearer
        token: "$secrets.nyl_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 New York Life insurance workflows.

naftiko: "0.5"
info:
  label: "New York Life Data Lookup 7"
  description: "Retrieves operational data for New York Life insurance workflows."
  tags:
    - insurance
    - operations
capability:
  exposes:
    - type: mcp
      namespace: newyorklife-data
      port: 8080
      tools:
        - name: get-data-7
          description: "Retrieves operational data for New York Life insurance workflows."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Resource identifier"
          call: "newyorklife-data.get-data-7"
          with:
            identifier: "{{identifier}}"
  consumes:
    - type: http
      namespace: newyorklife-data
      baseUri: "https://api.newyorklife.com/data/v1"
      authentication:
        type: bearer
        token: "$secrets.nyl_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 New York Life insurance workflows.

naftiko: "0.5"
info:
  label: "New York Life Data Lookup 8"
  description: "Retrieves operational data for New York Life insurance workflows."
  tags:
    - insurance
    - operations
capability:
  exposes:
    - type: mcp
      namespace: newyorklife-data
      port: 8080
      tools:
        - name: get-data-8
          description: "Retrieves operational data for New York Life insurance workflows."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Resource identifier"
          call: "newyorklife-data.get-data-8"
          with:
            identifier: "{{identifier}}"
  consumes:
    - type: http
      namespace: newyorklife-data
      baseUri: "https://api.newyorklife.com/data/v1"
      authentication:
        type: bearer
        token: "$secrets.nyl_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 New York Life insurance workflows.

naftiko: "0.5"
info:
  label: "New York Life Data Lookup 9"
  description: "Retrieves operational data for New York Life insurance workflows."
  tags:
    - insurance
    - operations
capability:
  exposes:
    - type: mcp
      namespace: newyorklife-data
      port: 8080
      tools:
        - name: get-data-9
          description: "Retrieves operational data for New York Life insurance workflows."
          inputParameters:
            - name: identifier
              in: body
              type: string
              description: "Resource identifier"
          call: "newyorklife-data.get-data-9"
          with:
            identifier: "{{identifier}}"
  consumes:
    - type: http
      namespace: newyorklife-data
      baseUri: "https://api.newyorklife.com/data/v1"
      authentication:
        type: bearer
        token: "$secrets.nyl_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 reporting.

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 reporting."
  tags:
    - wealth-management
    - trading
    - bloomberg-emsx
    - snowflake
    - compliance
capability:
  exposes:
    - type: mcp
      namespace: trade-monitoring
      port: 8080
      tools:
        - name: monitor-trade-execution
          description: "Given a trade order ID, check execution status in Bloomberg EMSX and log the result in 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}}"
                fill_quantity: "{{check-execution.fill_quantity}}"
                execution_time: "{{check-execution.execution_time}}"
  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://newyorklife.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 for a given project board, returning sprint name, story points completed, and remaining items.

naftiko: "0.5"
info:
  label: "Jira Sprint Status Lookup"
  description: "Retrieves the current sprint status from Jira for a given project board, returning sprint name, story points completed, and remaining items."
  tags:
    - development
    - jira
    - agile
capability:
  exposes:
    - type: mcp
      namespace: dev-ops
      port: 8080
      tools:
        - name: get-sprint-status
          description: "Look up Jira sprint status 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: start_date
              type: string
              mapping: "$.values[0].startDate"
            - name: end_date
              type: string
              mapping: "$.values[0].endDate"
  consumes:
    - type: http
      namespace: jira
      baseUri: "https://newyorklife.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 New York Life LinkedIn corporate campaigns by creating sponsored content, pulling engagement analytics, and syncing results to Salesforce for lead tracking.

naftiko: "0.5"
info:
  label: "LinkedIn Corporate Brand Campaign Manager"
  description: "Manages New York Life LinkedIn corporate campaigns by creating sponsored content, pulling engagement analytics, and syncing results to Salesforce for lead tracking."
  tags:
    - marketing
    - linkedin
    - salesforce
    - brand
capability:
  exposes:
    - type: mcp
      namespace: brand-marketing
      port: 8080
      tools:
        - name: manage-linkedin-campaign
          description: "Given a campaign brief and target audience, create sponsored content on LinkedIn, fetch metrics, and sync leads to Salesforce."
          inputParameters:
            - name: campaign_name
              in: body
              type: string
              description: "The campaign name."
            - name: content_text
              in: body
              type: string
              description: "The sponsored content text."
            - name: target_audience
              in: body
              type: string
              description: "Target audience description."
          steps:
            - name: create-content
              type: call
              call: "linkedin.create-sponsored-content"
              with:
                campaign_name: "{{campaign_name}}"
                text: "{{content_text}}"
                audience: "{{target_audience}}"
            - name: fetch-metrics
              type: call
              call: "linkedin.get-campaign-analytics"
              with:
                campaign_id: "{{create-content.campaign_id}}"
            - name: sync-leads
              type: call
              call: "salesforce.create-leads"
              with:
                campaign_id: "{{create-content.campaign_id}}"
                leads: "{{fetch-metrics.lead_forms}}"
  consumes:
    - type: http
      namespace: linkedin
      baseUri: "https://api.linkedin.com/v2"
      authentication:
        type: bearer
        token: "$secrets.linkedin_token"
      resources:
        - name: sponsored-content
          path: "/adCreativesV2"
          operations:
            - name: create-sponsored-content
              method: POST
        - name: analytics
          path: "/adAnalyticsV2"
          operations:
            - name: get-campaign-analytics
              method: GET
    - type: http
      namespace: salesforce
      baseUri: "https://newyorklife.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token"
      resources:
        - name: leads
          path: "/sobjects/Lead"
          operations:
            - name: create-leads
              method: POST

Checks Microsoft Entra identity governance access reviews for a user, returning pending reviews and last certification date.

naftiko: "0.5"
info:
  label: "Microsoft Entra Identity Governance"
  description: "Checks Microsoft Entra identity governance access reviews for a user, returning pending reviews and last certification date."
  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 in Microsoft Entra."
          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"
            - name: last_certification
              type: string
              mapping: "$.value[0].lastCertifiedDateTime"
  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?$filter=reviewers/any(r:r/id eq '{{user_id}}')"
          inputParameters:
            - name: user_id
              in: query
          operations:
            - name: get-reviews
              method: GET

Triggers a Microsoft Power Automate flow by flow ID and returns the run status and output.

naftiko: "0.5"
info:
  label: "Microsoft Power Automate Flow Trigger"
  description: "Triggers a Microsoft Power Automate flow by flow ID and returns the run status and output."
  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 flow 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 for the flow."
          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 for New York Life digital services, including response time, throughput, and error rate.

naftiko: "0.5"
info:
  label: "New Relic Application Performance Lookup"
  description: "Retrieves application performance metrics from New Relic for New York Life digital services, including response time, throughput, and error rate."
  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 application 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 the status of an Oracle GoldenGate replication process, returning lag time, status, and checkpoint position.

naftiko: "0.5"
info:
  label: "Oracle GoldenGate Replication Status"
  description: "Checks the status of an Oracle GoldenGate replication process, returning lag time, status, and checkpoint position."
  tags:
    - data-engineering
    - oracle-goldengate
    - replication
capability:
  exposes:
    - type: mcp
      namespace: data-replication
      port: 8080
      tools:
        - name: get-replication-status
          description: "Check Oracle GoldenGate replication process 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"
            - name: checkpoint
              type: string
              mapping: "$.checkpointPosition"
  consumes:
    - type: http
      namespace: goldengate
      baseUri: "https://newyorklife-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, returning the action, source zones, and destination zones.

naftiko: "0.5"
info:
  label: "Palo Alto Firewall Rule Lookup"
  description: "Queries Palo Alto Networks firewall for a specific security rule, returning the action, source zones, and destination zones."
  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"
            - name: destination_zones
              type: array
              mapping: "$.result.entry.to.member"
  consumes:
    - type: http
      namespace: paloalto
      baseUri: "https://newyorklife-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 an insurance policy record from Salesforce by policy number and returns the current 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 and returns the current 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 amount, premium due date, 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://newyorklife.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, creating the communication in Adobe Campaign, and logging the outreach in ServiceNow.

naftiko: "0.5"
info:
  label: "Policyholder Communication Orchestrator"
  description: "Generates and sends policyholder communications by pulling policy data from Salesforce, creating the communication in Adobe Campaign, and logging the outreach in ServiceNow."
  tags:
    - communications
    - policyholder
    - 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 policy data, trigger the Adobe Campaign email, and log the activity."
          inputParameters:
            - name: policy_number
              in: body
              type: string
              description: "The policy number."
            - name: communication_type
              in: body
              type: string
              description: "Type of communication (renewal notice, premium reminder, beneficiary update)."
          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}}"
                policyholder_name: "{{get-policy.policyholder_name}}"
            - name: log-activity
              type: call
              call: "servicenow.create-record"
              with:
                table: "communication_log"
                policy_number: "{{policy_number}}"
                type: "{{communication_type}}"
                status: "sent"
                campaign_id: "{{send-email.campaign_id}}"
  consumes:
    - type: http
      namespace: salesforce
      baseUri: "https://newyorklife.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/newyorklife/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://newyorklife.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 New York Life reporting dashboards and returns the refresh status.

naftiko: "0.5"
info:
  label: "Power BI Dashboard Refresh"
  description: "Triggers a Power BI dataset refresh for New York Life reporting dashboards and returns the refresh status."
  tags:
    - analytics
    - power-bi
    - reporting
capability:
  exposes:
    - type: mcp
      namespace: reporting
      port: 8080
      tools:
        - name: refresh-dashboard
          description: "Trigger a Power BI dataset refresh and check status."
          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"
            - name: request_id
              type: string
              mapping: "$.requestId"
  consumes:
    - type: http
      namespace: powerbi
      baseUri: "https://api.powerbi.com/v1.0/myorg"
      authentication:
        type: bearer
        token: "$secrets.powerbi_token"
      resources:
        - name: datasets
          path: "/datasets/{{dataset_id}}/refreshes"
          inputParameters:
            - name: dataset_id
              in: path
          operations:
            - name: refresh-dataset
              method: POST

When a premium payment is received, validates the policy in Salesforce, processes the payment via Mastercard gateway, updates the policy ledger in SAP, and sends a confirmation via Adobe Campaign email.

naftiko: "0.5"
info:
  label: "Premium Payment Processing Pipeline"
  description: "When a premium payment is received, validates the policy in Salesforce, processes the payment via Mastercard gateway, updates the policy ledger in SAP, and sends a confirmation via Adobe Campaign email."
  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, payment amount, and payment method, validate, process, update ledger, and send confirmation."
          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 (card token)."
          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}}"
                transaction_id: "{{process-payment.transaction_id}}"
  consumes:
    - type: http
      namespace: salesforce
      baseUri: "https://newyorklife.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://newyorklife-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/newyorklife/campaign"
      authentication:
        type: bearer
        token: "$secrets.adobe_campaign_token"
      resources:
        - name: email-triggers
          path: "/profileAndServicesExt/aemTriggerEvent"
          operations:
            - name: trigger-email
              method: POST

Prepares regulatory filings by pulling policy metrics from Snowflake, generating the filing document in SharePoint, submitting to the compliance system via ServiceNow, and notifying the legal team via Microsoft Teams.

naftiko: "0.5"
info:
  label: "Regulatory Filing Compliance Pipeline"
  description: "Prepares regulatory filings by pulling policy metrics from Snowflake, generating the filing document in SharePoint, submitting to the compliance system via ServiceNow, and notifying the legal team via Microsoft Teams."
  tags:
    - compliance
    - regulatory
    - snowflake
    - sharepoint
    - servicenow
    - microsoft-teams
    - legal
capability:
  exposes:
    - type: mcp
      namespace: regulatory-compliance
      port: 8080
      tools:
        - name: prepare-regulatory-filing
          description: "Given a filing type and reporting period, pull metrics, generate the filing, submit for review, and notify legal."
          inputParameters:
            - name: filing_type
              in: body
              type: string
              description: "Type of regulatory filing (statutory, GAAP, risk-based capital)."
            - name: reporting_period
              in: body
              type: string
              description: "The reporting period (e.g., 2025-Q4)."
          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_{{filing_type}}_{{reporting_period}}.xlsx"
                content: "{{pull-metrics.data}}"
            - name: submit-review
              type: call
              call: "servicenow.create-case"
              with:
                short_description: "Regulatory Filing Review: {{filing_type}} - {{reporting_period}}"
                category: "regulatory_compliance"
                description: "Filing document: {{generate-filing.url}}"
            - name: notify-legal
              type: call
              call: "msteams.send-message"
              with:
                channel_id: "legal-regulatory"
                text: "Regulatory filing prepared: {{filing_type}} for {{reporting_period}}. Review case: {{submit-review.number}}. Document: {{generate-filing.url}}"
  consumes:
    - type: http
      namespace: snowflake
      baseUri: "https://newyorklife.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://newyorklife.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

Triggers a SailPoint access certification campaign, retrieves pending reviews, and notifies managers via Microsoft Teams to complete their certifications.

naftiko: "0.5"
info:
  label: "SailPoint Access Certification Review"
  description: "Triggers a SailPoint access certification campaign, retrieves pending reviews, and notifies managers via Microsoft Teams to complete their certifications."
  tags:
    - security
    - access-management
    - sailpoint
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: access-management
      port: 8080
      tools:
        - name: trigger-access-review
          description: "Given a certification campaign name and deadline, trigger the SailPoint campaign and notify managers to complete reviews."
          inputParameters:
            - name: campaign_name
              in: body
              type: string
              description: "The access certification campaign name."
            - name: deadline
              in: body
              type: string
              description: "The review deadline in YYYY-MM-DD format."
          steps:
            - name: create-campaign
              type: call
              call: "sailpoint.create-certification"
              with:
                name: "{{campaign_name}}"
                deadline: "{{deadline}}"
            - name: get-reviewers
              type: call
              call: "sailpoint.get-pending-reviews"
              with:
                campaign_id: "{{create-campaign.campaign_id}}"
            - name: notify-managers
              type: call
              call: "msteams.send-message"
              with:
                channel_id: "access-certifications"
                text: "Access Certification Campaign '{{campaign_name}}' is now active. Deadline: {{deadline}}. {{get-reviewers.pending_count}} reviews pending across {{get-reviewers.reviewer_count}} managers."
  consumes:
    - type: http
      namespace: sailpoint
      baseUri: "https://newyorklife.api.identitynow.com/v3"
      authentication:
        type: bearer
        token: "$secrets.sailpoint_token"
      resources:
        - name: certifications
          path: "/campaigns"
          operations:
            - name: create-certification
              method: POST
        - name: reviews
          path: "/campaigns/{{campaign_id}}/access-review-items"
          inputParameters:
            - name: campaign_id
              in: path
          operations:
            - name: get-pending-reviews
              method: GET
    - type: http
      namespace: msteams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: channel-messages
          path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
          inputParameters:
            - name: team_id
              in: path
            - name: channel_id
              in: path
          operations:
            - name: send-message
              method: POST

Retrieves a customer service case from Salesforce Service Cloud by case number, returning status, subject, priority, and assigned agent.

naftiko: "0.5"
info:
  label: "Salesforce Service Cloud Case Lookup"
  description: "Retrieves a customer service case from Salesforce Service Cloud by case number, returning status, subject, priority, and assigned agent."
  tags:
    - customer-service
    - salesforce-service-cloud
capability:
  exposes:
    - type: mcp
      namespace: customer-service
      port: 8080
      tools:
        - name: get-service-case
          description: "Look up a Salesforce Service Cloud case by case number."
          inputParameters:
            - name: case_number
              in: body
              type: string
              description: "The Salesforce case number."
          call: "salesforce.get-case"
          with:
            case_number: "{{case_number}}"
          outputParameters:
            - name: status
              type: string
              mapping: "$.Status"
            - name: subject
              type: string
              mapping: "$.Subject"
            - name: priority
              type: string
              mapping: "$.Priority"
            - name: owner
              type: string
              mapping: "$.Owner.Name"
  consumes:
    - type: http
      namespace: salesforce
      baseUri: "https://newyorklife.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token"
      resources:
        - name: cases
          path: "/sobjects/Case/{{case_number}}"
          inputParameters:
            - name: case_number
              in: path
          operations:
            - name: get-case
              method: GET

Retrieves a general ledger account balance from SAP for a given cost center 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 cost center 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 (e.g., 2025-Q1)."
          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"
            - name: debit_total
              type: string
              mapping: "$.d.DebitTotal"
            - name: credit_total
              type: string
              mapping: "$.d.CreditTotal"
  consumes:
    - type: http
      namespace: sap
      baseUri: "https://newyorklife-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, priority, and last updated timestamp.

naftiko: "0.5"
info:
  label: "ServiceNow Incident Status"
  description: "Retrieves a ServiceNow incident by number and returns the current state, assignee, priority, and last updated timestamp."
  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. Returns state, assignee, and priority."
          inputParameters:
            - name: incident_number
              in: body
              type: string
              description: "The ServiceNow incident number (e.g., INC0012345)."
          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://newyorklife.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

Retrieves portfolio valuation data from SimCorp Dimension for a given fund, returning net asset value, security positions, and unrealized gains.

naftiko: "0.5"
info:
  label: "SimCorp Portfolio Valuation"
  description: "Retrieves portfolio valuation data from SimCorp Dimension for a given fund, returning net asset value, security positions, and unrealized gains."
  tags:
    - wealth-management
    - portfolio-valuation
    - simcorp-dimension
capability:
  exposes:
    - type: mcp
      namespace: portfolio-valuation
      port: 8080
      tools:
        - name: get-portfolio-valuation
          description: "Look up portfolio valuation in SimCorp Dimension by fund code."
          inputParameters:
            - name: fund_code
              in: body
              type: string
              description: "The fund code identifier."
          call: "simcorp.get-valuation"
          with:
            fund_code: "{{fund_code}}"
          outputParameters:
            - name: nav
              type: string
              mapping: "$.fund.net_asset_value"
            - name: positions_count
              type: string
              mapping: "$.fund.position_count"
            - name: unrealized_gain
              type: string
              mapping: "$.fund.unrealized_gain_loss"
  consumes:
    - type: http
      namespace: simcorp
      baseUri: "https://newyorklife.simcorpdimension.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.simcorp_token"
      resources:
        - name: funds
          path: "/funds/{{fund_code}}/valuation"
          inputParameters:
            - name: fund_code
              in: path
          operations:
            - name: get-valuation
              method: GET

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

naftiko: "0.5"
info:
  label: "Slack Channel Notification"
  description: "Sends a notification message to a Slack channel for cross-team communication and 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 or ID."
            - 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"
            - name: channel_id
              type: string
              mapping: "$.channel"
  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 result rows for reporting dashboards.

naftiko: "0.5"
info:
  label: "Snowflake Analytics Query"
  description: "Executes a predefined analytics query against Snowflake and returns result rows for reporting dashboards."
  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 and return results."
          inputParameters:
            - name: query_name
              in: body
              type: string
              description: "The predefined query name."
            - name: parameters
              in: body
              type: string
              description: "Query parameters as JSON string."
          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://newyorklife.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 and view information for New York Life reporting, returning workbook name, view count, and last refresh time.

naftiko: "0.5"
info:
  label: "Tableau Dashboard Lookup"
  description: "Retrieves Tableau dashboard metadata and view information for New York Life reporting, returning workbook name, view count, and last refresh time."
  tags:
    - analytics
    - tableau
    - reporting
capability:
  exposes:
    - type: mcp
      namespace: bi-reporting
      port: 8080
      tools:
        - name: get-tableau-dashboard
          description: "Look up a Tableau workbook by site and workbook name."
          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://newyorklife.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

Executes a policy analytics query against Teradata, returning policy counts, lapse rates, and average premium by product line.

naftiko: "0.5"
info:
  label: "Teradata Policy Analytics Query"
  description: "Executes a policy analytics query against Teradata, returning policy counts, lapse rates, and average premium by product line."
  tags:
    - analytics
    - teradata
    - insurance
capability:
  exposes:
    - type: mcp
      namespace: policy-analytics
      port: 8080
      tools:
        - name: query-policy-analytics
          description: "Run a Teradata policy analytics query by product line and date range."
          inputParameters:
            - name: product_line
              in: body
              type: string
              description: "The insurance product line."
            - name: start_date
              in: body
              type: string
              description: "Start date in YYYY-MM-DD."
            - name: end_date
              in: body
              type: string
              description: "End date in YYYY-MM-DD."
          call: "teradata.query-policies"
          with:
            product_line: "{{product_line}}"
            start_date: "{{start_date}}"
            end_date: "{{end_date}}"
          outputParameters:
            - name: active_policies
              type: string
              mapping: "$.results[0].active_count"
            - name: lapse_rate
              type: string
              mapping: "$.results[0].lapse_rate"
            - name: avg_premium
              type: string
              mapping: "$.results[0].avg_premium"
  consumes:
    - type: http
      namespace: teradata
      baseUri: "https://newyorklife-analytics.teradata.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.teradata_token"
      resources:
        - name: queries
          path: "/query"
          operations:
            - name: query-policies
              method: POST

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 the risk, create the underwriting case, route for review, and notify the underwriter."
          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)."
            - 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}}"
                product: "{{product_type}}"
            - name: route-review
              type: call
              call: "servicenow.create-case"
              with:
                short_description: "Underwriting Review: {{applicant_id}} - {{product_type}}"
                category: "underwriting"
                description: "Risk score: {{score-risk.risk_score}}. Tier: {{score-risk.risk_tier}}. Coverage: {{coverage_amount}}"
            - name: notify-underwriter
              type: call
              call: "msteams.send-message"
              with:
                channel_id: "underwriting-queue"
                text: "New application for review: {{applicant_id}}. Product: {{product_type}}. Coverage: {{coverage_amount}}. Risk: {{score-risk.risk_tier}} ({{score-risk.risk_score}}). Case: {{route-review.number}}"
  consumes:
    - type: http
      namespace: azureml
      baseUri: "https://newyorklife-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://newyorklife.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://newyorklife.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, returning the risk tier, score, and recommended action.

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, returning the risk tier, score, and recommended action."
  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 by submitting demographic and health data to the Azure ML model."
          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://newyorklife-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 breakdown, 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 breakdown, 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 New York Life Workday tenant for an employee by worker ID and returns profile details including name, title, department, and office location.

naftiko: "0.5"
info:
  label: "Workday Employee Lookup"
  description: "Searches the New York Life Workday tenant for an employee by worker ID and returns profile details including name, title, department, and office location."
  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. Returns name, title, department, and location."
          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

Creates a Zoom meeting for a given topic and attendees, and sends the invite details via Microsoft Teams.

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