Prudential Financial Capabilities

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

Sort
Expand

Orchestrates advisor licensing renewal pipeline across financial services and insurance systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Advisor Licensing Renewal Pipeline"
  description: "Orchestrates advisor licensing renewal pipeline across financial services and insurance systems, coordinating multiple services and notifying stakeholders."
  tags:
    - advisor
    - prudential-financial
    - snowflake
    - slack
    - jira
capability:
  exposes:
    - type: mcp
      namespace: advisor
      port: 8080
      tools:
        - name: advisor-licensing-renewal-pipeline
          description: "Orchestrates advisor licensing renewal pipeline across financial services and insurance systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "snowflake.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "slack.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "jira.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: snowflake
      baseUri: "https://prudential.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: snowflake-resource
          path: "/api/advisor"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: slack
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token"
      resources:
        - name: slack-resource
          path: "/api/advisor"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: jira
      baseUri: "https://prudential.atlassian.net/rest/api/3"
      authentication:
        type: bearer
        token: "$secrets.jira_token"
      resources:
        - name: jira-resource
          path: "/api/advisor"
          operations:
            - name: execute-3
              method: POST

Queries an insurance agent's licensing status from the NIPR licensing database, returning active licenses, states, expiration dates, and lines of authority.

naftiko: "0.5"
info:
  label: "Agent Licensing Status Check"
  description: "Queries an insurance agent's licensing status from the NIPR licensing database, returning active licenses, states, expiration dates, and lines of authority."
  tags:
    - compliance
    - agent
    - nipr
capability:
  exposes:
    - type: mcp
      namespace: agent-licensing
      port: 8080
      tools:
        - name: get-agent-licenses
          description: "Look up an agent's licensing status from NIPR."
          inputParameters:
            - name: npn
              in: body
              type: string
              description: "The agent's National Producer Number."
          call: "nipr.get-producer"
          with:
            npn: "{{npn}}"
          outputParameters:
            - name: licenses
              type: string
              mapping: "$.data.licenses"
            - name: active_states
              type: string
              mapping: "$.data.activeStates"
  consumes:
    - type: http
      namespace: nipr
      baseUri: "https://api.nipr.com/v2"
      authentication:
        type: bearer
        token: "$secrets.nipr_token"
      resources:
        - name: producers
          path: "/producers/{{npn}}"
          inputParameters:
            - name: npn
              in: path
          operations:
            - name: get-producer
              method: GET

Runs anti-money laundering and know-your-customer screening on a new client by checking identity against LexisNexis, screening OFAC/sanctions lists, running PEP checks, and logging results in the compliance system.

naftiko: "0.5"
info:
  label: "AML/KYC Screening Orchestrator"
  description: "Runs anti-money laundering and know-your-customer screening on a new client by checking identity against LexisNexis, screening OFAC/sanctions lists, running PEP checks, and logging results in the compliance system."
  tags:
    - compliance
    - aml
    - kyc
    - lexisnexis
capability:
  exposes:
    - type: mcp
      namespace: aml-kyc
      port: 8080
      tools:
        - name: screen-client
          description: "Given client details, run AML/KYC screening across identity verification, sanctions, and PEP databases."
          inputParameters:
            - name: client_name
              in: body
              type: string
              description: "Full name of the client."
            - name: date_of_birth
              in: body
              type: string
              description: "Date of birth in YYYY-MM-DD format."
            - name: country
              in: body
              type: string
              description: "Country of residence ISO code."
          steps:
            - name: verify-identity
              type: call
              call: "lexisnexis.verify-identity"
              with:
                name: "{{client_name}}"
                dob: "{{date_of_birth}}"
            - name: screen-sanctions
              type: call
              call: "sanctions-api.screen"
              with:
                name: "{{client_name}}"
                country: "{{country}}"
            - name: check-pep
              type: call
              call: "sanctions-api.check-pep"
              with:
                name: "{{client_name}}"
                country: "{{country}}"
            - name: log-results
              type: call
              call: "compliance-system.create-screening-record"
              with:
                client_name: "{{client_name}}"
                identity_verified: "{{verify-identity.verified}}"
                sanctions_hit: "{{screen-sanctions.hit}}"
                pep_status: "{{check-pep.is_pep}}"
  consumes:
    - type: http
      namespace: lexisnexis
      baseUri: "https://api.lexisnexis.com/identity/v2"
      authentication:
        type: bearer
        token: "$secrets.lexisnexis_token"
      resources:
        - name: identity
          path: "/verifications"
          operations:
            - name: verify-identity
              method: POST
    - type: http
      namespace: sanctions-api
      baseUri: "https://api.prudential.com/internal/sanctions/v1"
      authentication:
        type: bearer
        token: "$secrets.sanctions_token"
      resources:
        - name: screening
          path: "/screen"
          operations:
            - name: screen
              method: POST
        - name: pep
          path: "/pep-check"
          operations:
            - name: check-pep
              method: POST
    - type: http
      namespace: compliance-system
      baseUri: "https://api.prudential.com/internal/compliance/v1"
      authentication:
        type: bearer
        token: "$secrets.compliance_token"
      resources:
        - name: screenings
          path: "/screening-records"
          operations:
            - name: create-screening-record
              method: POST

Orchestrates annual policy review pipeline across financial services and insurance systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Annual Policy Review Pipeline"
  description: "Orchestrates annual policy review pipeline across financial services and insurance systems, coordinating multiple services and notifying stakeholders."
  tags:
    - annual
    - prudential-financial
    - servicenow
    - snowflake
    - slack
capability:
  exposes:
    - type: mcp
      namespace: annual
      port: 8080
      tools:
        - name: annual-policy-review-pipeline
          description: "Orchestrates annual policy review pipeline across financial services and insurance systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "servicenow.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "snowflake.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "slack.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: servicenow
      baseUri: "https://prudential.service-now.com/api/now"
      authentication:
        type: bearer
        token: "$secrets.servicenow_token"
      resources:
        - name: servicenow-resource
          path: "/api/annual"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: snowflake
      baseUri: "https://prudential.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: snowflake-resource
          path: "/api/annual"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: slack
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token"
      resources:
        - name: slack-resource
          path: "/api/annual"
          operations:
            - name: execute-3
              method: POST

Orchestrates annuity contract servicing pipeline across financial services and insurance systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Annuity Contract Servicing Pipeline"
  description: "Orchestrates annuity contract servicing pipeline across financial services and insurance systems, coordinating multiple services and notifying stakeholders."
  tags:
    - annuity
    - prudential-financial
    - tableau
    - prudential
    - salesforce
capability:
  exposes:
    - type: mcp
      namespace: annuity
      port: 8080
      tools:
        - name: annuity-contract-servicing-pipeline
          description: "Orchestrates annuity contract servicing pipeline across financial services and insurance systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "tableau.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "prudential.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "salesforce.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: tableau
      baseUri: "https://tableau.prudential.com/api/3.19"
      authentication:
        type: bearer
        token: "$secrets.tableau_token"
      resources:
        - name: tableau-resource
          path: "/api/annuity"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: prudential
      baseUri: "https://api.prudential.com/v2"
      authentication:
        type: bearer
        token: "$secrets.prudential_api_token"
      resources:
        - name: prudential-resource
          path: "/api/annuity"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: salesforce
      baseUri: "https://prudential.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_access_token"
      resources:
        - name: salesforce-resource
          path: "/api/annuity"
          operations:
            - name: execute-3
              method: POST

Retrieves an annuity contract summary from the annuity administration system, returning contract value, guaranteed minimum, surrender charge, income payment amount, and beneficiary.

naftiko: "0.5"
info:
  label: "Annuity Contract Summary"
  description: "Retrieves an annuity contract summary from the annuity administration system, returning contract value, guaranteed minimum, surrender charge, income payment amount, and beneficiary."
  tags:
    - insurance
    - annuity
capability:
  exposes:
    - type: mcp
      namespace: annuity
      port: 8080
      tools:
        - name: get-annuity-contract
          description: "Look up an annuity contract by contract number."
          inputParameters:
            - name: contract_number
              in: body
              type: string
              description: "The annuity contract number."
          call: "annuity-admin.get-contract"
          with:
            contract_number: "{{contract_number}}"
          outputParameters:
            - name: contract_value
              type: string
              mapping: "$.data.contractValue"
            - name: guaranteed_minimum
              type: string
              mapping: "$.data.guaranteedMinimum"
            - name: surrender_charge
              type: string
              mapping: "$.data.surrenderCharge"
            - name: income_amount
              type: string
              mapping: "$.data.incomePaymentAmount"
            - name: beneficiary
              type: string
              mapping: "$.data.beneficiaryName"
  consumes:
    - type: http
      namespace: annuity-admin
      baseUri: "https://api.prudential.com/internal/annuity/v2"
      authentication:
        type: bearer
        token: "$secrets.annuity_admin_token"
      resources:
        - name: contracts
          path: "/contracts/{{contract_number}}"
          inputParameters:
            - name: contract_number
              in: path
          operations:
            - name: get-contract
              method: GET

Calculates projected income payments for an annuity contract based on current value, payout option, and start age, returning monthly income, guaranteed period, and total projected payout.

naftiko: "0.5"
info:
  label: "Annuity Income Projection"
  description: "Calculates projected income payments for an annuity contract based on current value, payout option, and start age, returning monthly income, guaranteed period, and total projected payout."
  tags:
    - insurance
    - annuity
    - retirement
capability:
  exposes:
    - type: mcp
      namespace: annuity-projections
      port: 8080
      tools:
        - name: project-annuity-income
          description: "Calculate projected income from an annuity contract."
          inputParameters:
            - name: contract_number
              in: body
              type: string
              description: "The annuity contract number."
            - name: payout_option
              in: body
              type: string
              description: "Payout option (life_only, life_with_period_certain, joint_survivor)."
            - name: income_start_age
              in: body
              type: string
              description: "Age at which income payments begin."
          call: "annuity-admin.project-income"
          with:
            contract_number: "{{contract_number}}"
            payout_option: "{{payout_option}}"
            start_age: "{{income_start_age}}"
          outputParameters:
            - name: monthly_income
              type: string
              mapping: "$.data.monthlyIncome"
            - name: guaranteed_period
              type: string
              mapping: "$.data.guaranteedPeriodYears"
            - name: total_projected_payout
              type: string
              mapping: "$.data.totalProjectedPayout"
  consumes:
    - type: http
      namespace: annuity-admin
      baseUri: "https://api.prudential.com/internal/annuity/v2"
      authentication:
        type: bearer
        token: "$secrets.annuity_admin_token"
      resources:
        - name: projections
          path: "/contracts/{{contract_number}}/projections"
          inputParameters:
            - name: contract_number
              in: path
          operations:
            - name: project-income
              method: POST

Retrieves annuity withdrawal schedule data from the Prudential Financial financial services and insurance systems.

naftiko: "0.5"
info:
  label: "Annuity Withdrawal Schedule"
  description: "Retrieves annuity withdrawal schedule data from the Prudential Financial financial services and insurance systems."
  tags:
    - annuity
    - prudential-financial
    - schedule
capability:
  exposes:
    - type: mcp
      namespace: annuity
      port: 8080
      tools:
        - name: annuity-withdrawal-schedule
          description: "Retrieves annuity withdrawal schedule data from the Prudential Financial financial services and insurance systems."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The input id."
          call: "prudential.annuity-withdrawal-schedule"
          with:
            input_id: "{{input_id}}"
          outputParameters:
            - name: result
              type: string
              mapping: "$.data"
            - name: status
              type: string
              mapping: "$.status"
  consumes:
    - type: http
      namespace: prudential
      baseUri: "https://api.prudential.com/v2"
      authentication:
        type: bearer
        token: "$secrets.prudential_api_token"
      resources:
        - name: resource
          path: "/annuity/withdrawal/schedule/{{input_id}}"
          inputParameters:
            - name: input_id
              in: path
          operations:
            - name: annuity-withdrawal-schedule
              method: GET

Retrieves beneficiary verification status data from the Prudential Financial financial services and insurance systems.

naftiko: "0.5"
info:
  label: "Beneficiary Verification Status"
  description: "Retrieves beneficiary verification status data from the Prudential Financial financial services and insurance systems."
  tags:
    - beneficiary
    - prudential-financial
    - status
capability:
  exposes:
    - type: mcp
      namespace: beneficiary
      port: 8080
      tools:
        - name: beneficiary-verification-status
          description: "Retrieves beneficiary verification status data from the Prudential Financial financial services and insurance systems."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The input id."
          call: "prudential.beneficiary-verification-status"
          with:
            input_id: "{{input_id}}"
          outputParameters:
            - name: result
              type: string
              mapping: "$.data"
            - name: status
              type: string
              mapping: "$.status"
  consumes:
    - type: http
      namespace: prudential
      baseUri: "https://api.prudential.com/v2"
      authentication:
        type: bearer
        token: "$secrets.prudential_api_token"
      resources:
        - name: resource
          path: "/beneficiary/verification/status/{{input_id}}"
          inputParameters:
            - name: input_id
              in: path
          operations:
            - name: beneficiary-verification-status
              method: GET

Orchestrates client complaint resolution pipeline across financial services and insurance systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Client Complaint Resolution Pipeline"
  description: "Orchestrates client complaint resolution pipeline across financial services and insurance systems, coordinating multiple services and notifying stakeholders."
  tags:
    - client
    - prudential-financial
    - salesforce
    - servicenow
    - snowflake
capability:
  exposes:
    - type: mcp
      namespace: client
      port: 8080
      tools:
        - name: client-complaint-resolution-pipeline
          description: "Orchestrates client complaint resolution pipeline across financial services and insurance systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "salesforce.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "servicenow.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "snowflake.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: salesforce
      baseUri: "https://prudential.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_access_token"
      resources:
        - name: salesforce-resource
          path: "/api/client"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: servicenow
      baseUri: "https://prudential.service-now.com/api/now"
      authentication:
        type: bearer
        token: "$secrets.servicenow_token"
      resources:
        - name: servicenow-resource
          path: "/api/client"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: snowflake
      baseUri: "https://prudential.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: snowflake-resource
          path: "/api/client"
          operations:
            - name: execute-3
              method: POST

Orchestrates client data privacy pipeline across financial services and insurance systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Client Data Privacy Pipeline"
  description: "Orchestrates client data privacy pipeline across financial services and insurance systems, coordinating multiple services and notifying stakeholders."
  tags:
    - client
    - prudential-financial
    - workday
    - bloomberg
    - tableau
capability:
  exposes:
    - type: mcp
      namespace: client
      port: 8080
      tools:
        - name: client-data-privacy-pipeline
          description: "Orchestrates client data privacy pipeline across financial services and insurance systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "workday.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "bloomberg.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "tableau.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: workday
      baseUri: "https://wd5-impl.workday.com/prudential/api/v1"
      authentication:
        type: bearer
        token: "$secrets.workday_token"
      resources:
        - name: workday-resource
          path: "/api/client"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: bloomberg
      baseUri: "https://api.bloomberg.com/v1"
      authentication:
        type: bearer
        token: "$secrets.bloomberg_token"
      resources:
        - name: bloomberg-resource
          path: "/api/client"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: tableau
      baseUri: "https://tableau.prudential.com/api/3.19"
      authentication:
        type: bearer
        token: "$secrets.tableau_token"
      resources:
        - name: tableau-resource
          path: "/api/client"
          operations:
            - name: execute-3
              method: POST

Orchestrates client digital experience pipeline across financial services and insurance systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Client Digital Experience Pipeline"
  description: "Orchestrates client digital experience pipeline across financial services and insurance systems, coordinating multiple services and notifying stakeholders."
  tags:
    - client
    - prudential-financial
    - teams
    - workday
    - bloomberg
capability:
  exposes:
    - type: mcp
      namespace: client
      port: 8080
      tools:
        - name: client-digital-experience-pipeline
          description: "Orchestrates client digital experience pipeline across financial services and insurance systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "teams.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "workday.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "bloomberg.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: teams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.teams_token"
      resources:
        - name: teams-resource
          path: "/api/client"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: workday
      baseUri: "https://wd5-impl.workday.com/prudential/api/v1"
      authentication:
        type: bearer
        token: "$secrets.workday_token"
      resources:
        - name: workday-resource
          path: "/api/client"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: bloomberg
      baseUri: "https://api.bloomberg.com/v1"
      authentication:
        type: bearer
        token: "$secrets.bloomberg_token"
      resources:
        - name: bloomberg-resource
          path: "/api/client"
          operations:
            - name: execute-3
              method: POST

Orchestrates client financial planning pipeline across financial services and insurance systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Client Financial Planning Pipeline"
  description: "Orchestrates client financial planning pipeline across financial services and insurance systems, coordinating multiple services and notifying stakeholders."
  tags:
    - client
    - prudential-financial
    - prudential
    - salesforce
    - servicenow
capability:
  exposes:
    - type: mcp
      namespace: client
      port: 8080
      tools:
        - name: client-financial-planning-pipeline
          description: "Orchestrates client financial planning pipeline across financial services and insurance systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "prudential.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "salesforce.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "servicenow.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: prudential
      baseUri: "https://api.prudential.com/v2"
      authentication:
        type: bearer
        token: "$secrets.prudential_api_token"
      resources:
        - name: prudential-resource
          path: "/api/client"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: salesforce
      baseUri: "https://prudential.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_access_token"
      resources:
        - name: salesforce-resource
          path: "/api/client"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: servicenow
      baseUri: "https://prudential.service-now.com/api/now"
      authentication:
        type: bearer
        token: "$secrets.servicenow_token"
      resources:
        - name: servicenow-resource
          path: "/api/client"
          operations:
            - name: execute-3
              method: POST

Orchestrates client life event trigger pipeline across financial services and insurance systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Client Life Event Trigger Pipeline"
  description: "Orchestrates client life event trigger pipeline across financial services and insurance systems, coordinating multiple services and notifying stakeholders."
  tags:
    - client
    - prudential-financial
    - servicenow
    - snowflake
    - slack
capability:
  exposes:
    - type: mcp
      namespace: client
      port: 8080
      tools:
        - name: client-life-event-trigger-pipeline
          description: "Orchestrates client life event trigger pipeline across financial services and insurance systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "servicenow.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "snowflake.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "slack.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: servicenow
      baseUri: "https://prudential.service-now.com/api/now"
      authentication:
        type: bearer
        token: "$secrets.servicenow_token"
      resources:
        - name: servicenow-resource
          path: "/api/client"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: snowflake
      baseUri: "https://prudential.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: snowflake-resource
          path: "/api/client"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: slack
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token"
      resources:
        - name: slack-resource
          path: "/api/client"
          operations:
            - name: execute-3
              method: POST

Orchestrates client net promoter score pipeline across financial services and insurance systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Client Net Promoter Score Pipeline"
  description: "Orchestrates client net promoter score pipeline across financial services and insurance systems, coordinating multiple services and notifying stakeholders."
  tags:
    - client
    - prudential-financial
    - prudential
    - salesforce
    - servicenow
capability:
  exposes:
    - type: mcp
      namespace: client
      port: 8080
      tools:
        - name: client-net-promoter-score-pipeline
          description: "Orchestrates client net promoter score pipeline across financial services and insurance systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "prudential.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "salesforce.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "servicenow.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: prudential
      baseUri: "https://api.prudential.com/v2"
      authentication:
        type: bearer
        token: "$secrets.prudential_api_token"
      resources:
        - name: prudential-resource
          path: "/api/client"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: salesforce
      baseUri: "https://prudential.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_access_token"
      resources:
        - name: salesforce-resource
          path: "/api/client"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: servicenow
      baseUri: "https://prudential.service-now.com/api/now"
      authentication:
        type: bearer
        token: "$secrets.servicenow_token"
      resources:
        - name: servicenow-resource
          path: "/api/client"
          operations:
            - name: execute-3
              method: POST

Orchestrates client onboarding suitability pipeline across financial services and insurance systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Client Onboarding Suitability Pipeline"
  description: "Orchestrates client onboarding suitability pipeline across financial services and insurance systems, coordinating multiple services and notifying stakeholders."
  tags:
    - client
    - prudential-financial
    - teams
    - workday
    - bloomberg
capability:
  exposes:
    - type: mcp
      namespace: client
      port: 8080
      tools:
        - name: client-onboarding-suitability-pipeline
          description: "Orchestrates client onboarding suitability pipeline across financial services and insurance systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "teams.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "workday.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "bloomberg.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: teams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.teams_token"
      resources:
        - name: teams-resource
          path: "/api/client"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: workday
      baseUri: "https://wd5-impl.workday.com/prudential/api/v1"
      authentication:
        type: bearer
        token: "$secrets.workday_token"
      resources:
        - name: workday-resource
          path: "/api/client"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: bloomberg
      baseUri: "https://api.bloomberg.com/v1"
      authentication:
        type: bearer
        token: "$secrets.bloomberg_token"
      resources:
        - name: bloomberg-resource
          path: "/api/client"
          operations:
            - name: execute-3
              method: POST

Creates a client risk profile by pulling their financial data from Salesforce, running a risk tolerance assessment, and storing the profile in the wealth management platform for suitability purposes.

naftiko: "0.5"
info:
  label: "Client Risk Profiling Orchestrator"
  description: "Creates a client risk profile by pulling their financial data from Salesforce, running a risk tolerance assessment, and storing the profile in the wealth management platform for suitability purposes."
  tags:
    - wealth
    - risk
    - salesforce
capability:
  exposes:
    - type: mcp
      namespace: risk-profiling
      port: 8080
      tools:
        - name: create-risk-profile
          description: "Given a client ID and assessment responses, generate risk profile and store for suitability."
          inputParameters:
            - name: client_id
              in: body
              type: string
              description: "The Salesforce client contact ID."
            - name: risk_responses
              in: body
              type: string
              description: "JSON of risk assessment questionnaire responses."
          steps:
            - name: get-financials
              type: call
              call: "salesforce.get-financial-profile"
              with:
                contact_id: "{{client_id}}"
            - name: assess-risk
              type: call
              call: "risk-assessment.evaluate"
              with:
                income: "{{get-financials.annual_income}}"
                net_worth: "{{get-financials.net_worth}}"
                responses: "{{risk_responses}}"
            - name: store-profile
              type: call
              call: "wealth-platform.save-risk-profile"
              with:
                client_id: "{{client_id}}"
                risk_score: "{{assess-risk.score}}"
                risk_category: "{{assess-risk.category}}"
                time_horizon: "{{assess-risk.time_horizon}}"
  consumes:
    - type: http
      namespace: salesforce
      baseUri: "https://prudential.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token"
      resources:
        - name: profiles
          path: "/sobjects/FinancialProfile__c"
          inputParameters:
            - name: contact_id
              in: query
          operations:
            - name: get-financial-profile
              method: GET
    - type: http
      namespace: risk-assessment
      baseUri: "https://api.prudential.com/internal/risk-assessment/v1"
      authentication:
        type: bearer
        token: "$secrets.risk_assessment_token"
      resources:
        - name: evaluations
          path: "/evaluations"
          operations:
            - name: evaluate
              method: POST
    - type: http
      namespace: wealth-platform
      baseUri: "https://api.prudential.com/internal/wealth/v2"
      authentication:
        type: bearer
        token: "$secrets.wealth_platform_token"
      resources:
        - name: risk-profiles
          path: "/clients/{{client_id}}/risk-profile"
          inputParameters:
            - name: client_id
              in: path
          operations:
            - name: save-risk-profile
              method: PUT

Checks an employee's compliance training completion status from the LMS, returning completed courses, overdue trainings, and next due date.

naftiko: "0.5"
info:
  label: "Compliance Training Completion Check"
  description: "Checks an employee's compliance training completion status from the LMS, returning completed courses, overdue trainings, and next due date."
  tags:
    - compliance
    - hr
    - training
capability:
  exposes:
    - type: mcp
      namespace: compliance-training
      port: 8080
      tools:
        - name: check-training-status
          description: "Check compliance training completion for an employee."
          inputParameters:
            - name: employee_id
              in: body
              type: string
              description: "The employee identifier."
          call: "lms.get-compliance-status"
          with:
            user_id: "{{employee_id}}"
          outputParameters:
            - name: completed_courses
              type: string
              mapping: "$.data.completedCount"
            - name: overdue_count
              type: string
              mapping: "$.data.overdueCount"
            - name: next_due
              type: string
              mapping: "$.data.nextDueDate"
  consumes:
    - type: http
      namespace: lms
      baseUri: "https://api.prudential.com/internal/lms/v1"
      authentication:
        type: bearer
        token: "$secrets.lms_token"
      resources:
        - name: compliance
          path: "/users/{{user_id}}/compliance-status"
          inputParameters:
            - name: user_id
              in: path
          operations:
            - name: get-compliance-status
              method: GET

Creates a customer service case in Salesforce Service Cloud for policyholder inquiries, routing to the appropriate queue based on product line and issue type.

naftiko: "0.5"
info:
  label: "Customer Service Ticket Creation"
  description: "Creates a customer service case in Salesforce Service Cloud for policyholder inquiries, routing to the appropriate queue based on product line and issue type."
  tags:
    - customer-service
    - salesforce
capability:
  exposes:
    - type: mcp
      namespace: customer-service
      port: 8080
      tools:
        - name: create-service-case
          description: "Create a customer service case in Salesforce."
          inputParameters:
            - name: customer_id
              in: body
              type: string
              description: "The Salesforce contact ID."
            - name: product_line
              in: body
              type: string
              description: "Product line (life, annuity, retirement, disability, wealth)."
            - name: issue_type
              in: body
              type: string
              description: "Type of issue (billing, claim, account_change, general_inquiry)."
            - name: description
              in: body
              type: string
              description: "Description of the customer's issue."
          call: "salesforce.create-case"
          with:
            contact_id: "{{customer_id}}"
            product_line: "{{product_line}}"
            type: "{{issue_type}}"
            description: "{{description}}"
          outputParameters:
            - name: case_number
              type: string
              mapping: "$.id"
  consumes:
    - type: http
      namespace: salesforce
      baseUri: "https://prudential.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token"
      resources:
        - name: cases
          path: "/sobjects/Case"
          operations:
            - name: create-case
              method: POST

Orchestrates death benefit payout pipeline across financial services and insurance systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Death Benefit Payout Pipeline"
  description: "Orchestrates death benefit payout pipeline across financial services and insurance systems, coordinating multiple services and notifying stakeholders."
  tags:
    - death
    - prudential-financial
    - salesforce
    - servicenow
    - snowflake
capability:
  exposes:
    - type: mcp
      namespace: death
      port: 8080
      tools:
        - name: death-benefit-payout-pipeline
          description: "Orchestrates death benefit payout pipeline across financial services and insurance systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "salesforce.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "servicenow.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "snowflake.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: salesforce
      baseUri: "https://prudential.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_access_token"
      resources:
        - name: salesforce-resource
          path: "/api/death"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: servicenow
      baseUri: "https://prudential.service-now.com/api/now"
      authentication:
        type: bearer
        token: "$secrets.servicenow_token"
      resources:
        - name: servicenow-resource
          path: "/api/death"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: snowflake
      baseUri: "https://prudential.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: snowflake-resource
          path: "/api/death"
          operations:
            - name: execute-3
              method: POST

Processes a life insurance death claim by verifying the policy in the admin system, pulling the death certificate from DocuSign, calculating the benefit payout, notifying the beneficiary via email, and creating the payment in SAP.

naftiko: "0.5"
info:
  label: "Death Claim Processing Orchestrator"
  description: "Processes a life insurance death claim by verifying the policy in the admin system, pulling the death certificate from DocuSign, calculating the benefit payout, notifying the beneficiary via email, and creating the payment in SAP."
  tags:
    - insurance
    - claims
    - docusign
    - sap
    - salesforce-marketing-cloud
capability:
  exposes:
    - type: mcp
      namespace: death-claims
      port: 8080
      tools:
        - name: process-death-claim
          description: "Given a policy number and death certificate ID, verify, calculate payout, notify beneficiary, and create payment."
          inputParameters:
            - name: policy_number
              in: body
              type: string
              description: "The life insurance policy number."
            - name: death_certificate_envelope_id
              in: body
              type: string
              description: "The DocuSign envelope ID containing the death certificate."
            - name: date_of_death
              in: body
              type: string
              description: "Date of death in YYYY-MM-DD format."
          steps:
            - name: verify-policy
              type: call
              call: "policy-admin.get-policy"
              with:
                policy_number: "{{policy_number}}"
            - name: get-death-cert
              type: call
              call: "docusign.get-envelope"
              with:
                envelope_id: "{{death_certificate_envelope_id}}"
            - name: calculate-benefit
              type: call
              call: "claims-engine.calculate-death-benefit"
              with:
                policy_number: "{{policy_number}}"
                face_amount: "{{verify-policy.faceAmount}}"
                date_of_death: "{{date_of_death}}"
            - name: notify-beneficiary
              type: call
              call: "sfmc.send-email"
              with:
                template: "death_claim_notification"
                to: "{{verify-policy.beneficiaryEmail}}"
                merge_name: "{{verify-policy.beneficiaryName}}"
                merge_amount: "{{calculate-benefit.payout_amount}}"
            - name: create-payment
              type: call
              call: "sap.create-payment"
              with:
                payee: "{{verify-policy.beneficiaryName}}"
                amount: "{{calculate-benefit.payout_amount}}"
                reference: "DC-{{policy_number}}"
  consumes:
    - type: http
      namespace: policy-admin
      baseUri: "https://api.prudential.com/internal/policy-admin/v2"
      authentication:
        type: bearer
        token: "$secrets.policy_admin_token"
      resources:
        - name: policies
          path: "/policies/{{policy_number}}"
          inputParameters:
            - name: policy_number
              in: path
          operations:
            - name: get-policy
              method: GET
    - type: http
      namespace: docusign
      baseUri: "https://na4.docusign.net/restapi/v2.1"
      authentication:
        type: bearer
        token: "$secrets.docusign_token"
      resources:
        - name: envelopes
          path: "/accounts/{{account_id}}/envelopes/{{envelope_id}}"
          inputParameters:
            - name: account_id
              in: path
            - name: envelope_id
              in: path
          operations:
            - name: get-envelope
              method: GET
    - type: http
      namespace: claims-engine
      baseUri: "https://api.prudential.com/internal/claims/v2"
      authentication:
        type: bearer
        token: "$secrets.claims_engine_token"
      resources:
        - name: calculations
          path: "/death-benefit-calculations"
          operations:
            - name: calculate-death-benefit
              method: POST
    - type: http
      namespace: sfmc
      baseUri: "https://mc.prudential.com/rest"
      authentication:
        type: bearer
        token: "$secrets.sfmc_token"
      resources:
        - name: emails
          path: "/messaging/v1/email/messages"
          operations:
            - name: send-email
              method: POST
    - type: http
      namespace: sap
      baseUri: "https://prudential-s4.sap.com/sap/opu/odata/sap/FI_PAYMENT_SRV"
      authentication:
        type: basic
        username: "$secrets.sap_user"
        password: "$secrets.sap_password"
      resources:
        - name: payments
          path: "/A_Payment"
          operations:
            - name: create-payment
              method: POST

Orchestrates disability claim return to work pipeline across financial services and insurance systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Disability Claim Return To Work Pipeline"
  description: "Orchestrates disability claim return to work pipeline across financial services and insurance systems, coordinating multiple services and notifying stakeholders."
  tags:
    - disability
    - prudential-financial
    - bloomberg
    - tableau
    - prudential
capability:
  exposes:
    - type: mcp
      namespace: disability
      port: 8080
      tools:
        - name: disability-claim-return-to-work-pipeline
          description: "Orchestrates disability claim return to work pipeline across financial services and insurance systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "bloomberg.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "tableau.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "prudential.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: bloomberg
      baseUri: "https://api.bloomberg.com/v1"
      authentication:
        type: bearer
        token: "$secrets.bloomberg_token"
      resources:
        - name: bloomberg-resource
          path: "/api/disability"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: tableau
      baseUri: "https://tableau.prudential.com/api/3.19"
      authentication:
        type: bearer
        token: "$secrets.tableau_token"
      resources:
        - name: tableau-resource
          path: "/api/disability"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: prudential
      baseUri: "https://api.prudential.com/v2"
      authentication:
        type: bearer
        token: "$secrets.prudential_api_token"
      resources:
        - name: prudential-resource
          path: "/api/disability"
          operations:
            - name: execute-3
              method: POST

Retrieves the status of a group disability claim from the disability claims system, returning claim state, disability type, benefit amount, and return-to-work date.

naftiko: "0.5"
info:
  label: "Disability Claim Status"
  description: "Retrieves the status of a group disability claim from the disability claims system, returning claim state, disability type, benefit amount, and return-to-work date."
  tags:
    - insurance
    - disability
    - claims
capability:
  exposes:
    - type: mcp
      namespace: disability-claims
      port: 8080
      tools:
        - name: get-disability-claim
          description: "Look up a disability claim by claim number."
          inputParameters:
            - name: claim_number
              in: body
              type: string
              description: "The disability claim number."
          call: "disability-system.get-claim"
          with:
            claim_number: "{{claim_number}}"
          outputParameters:
            - name: status
              type: string
              mapping: "$.data.claimStatus"
            - name: disability_type
              type: string
              mapping: "$.data.disabilityType"
            - name: benefit_amount
              type: string
              mapping: "$.data.weeklyBenefit"
            - name: return_to_work_date
              type: string
              mapping: "$.data.expectedReturnDate"
  consumes:
    - type: http
      namespace: disability-system
      baseUri: "https://api.prudential.com/internal/disability/v2"
      authentication:
        type: bearer
        token: "$secrets.disability_token"
      resources:
        - name: claims
          path: "/claims/{{claim_number}}"
          inputParameters:
            - name: claim_number
              in: path
          operations:
            - name: get-claim
              method: GET

Manages the return-to-work process for a disability claimant by updating the claim status, coordinating with the employer through the group admin system, and sending the RTW plan to the claimant via email.

naftiko: "0.5"
info:
  label: "Disability Return-to-Work Orchestrator"
  description: "Manages the return-to-work process for a disability claimant by updating the claim status, coordinating with the employer through the group admin system, and sending the RTW plan to the claimant via email."
  tags:
    - insurance
    - disability
    - claims
    - salesforce-marketing-cloud
capability:
  exposes:
    - type: mcp
      namespace: rtw-management
      port: 8080
      tools:
        - name: process-return-to-work
          description: "Given a claim number and RTW date, update claim, notify employer, and send plan to claimant."
          inputParameters:
            - name: claim_number
              in: body
              type: string
              description: "The disability claim number."
            - name: return_date
              in: body
              type: string
              description: "Planned return-to-work date."
            - name: work_restrictions
              in: body
              type: string
              description: "Any work restrictions or accommodations needed."
          steps:
            - name: update-claim
              type: call
              call: "disability-system.update-claim"
              with:
                claim_number: "{{claim_number}}"
                return_date: "{{return_date}}"
                restrictions: "{{work_restrictions}}"
            - name: notify-employer
              type: call
              call: "group-admin.send-rtw-notice"
              with:
                claim_number: "{{claim_number}}"
                return_date: "{{return_date}}"
                restrictions: "{{work_restrictions}}"
            - name: send-plan
              type: call
              call: "sfmc.send-email"
              with:
                template: "rtw_plan"
                to: "{{update-claim.claimant_email}}"
                merge_date: "{{return_date}}"
                merge_restrictions: "{{work_restrictions}}"
  consumes:
    - type: http
      namespace: disability-system
      baseUri: "https://api.prudential.com/internal/disability/v2"
      authentication:
        type: bearer
        token: "$secrets.disability_token"
      resources:
        - name: claims
          path: "/claims/{{claim_number}}"
          inputParameters:
            - name: claim_number
              in: path
          operations:
            - name: update-claim
              method: PATCH
    - type: http
      namespace: group-admin
      baseUri: "https://api.prudential.com/internal/group-admin/v2"
      authentication:
        type: bearer
        token: "$secrets.group_admin_token"
      resources:
        - name: rtw
          path: "/rtw-notices"
          operations:
            - name: send-rtw-notice
              method: POST
    - type: http
      namespace: sfmc
      baseUri: "https://mc.prudential.com/rest"
      authentication:
        type: bearer
        token: "$secrets.sfmc_token"
      resources:
        - name: emails
          path: "/messaging/v1/email/messages"
          operations:
            - name: send-email
              method: POST

On new hire creation in Workday, opens a ServiceNow onboarding ticket, provisions access to policy systems, 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 access to policy systems, and sends a Microsoft Teams welcome message."
  tags:
    - hr
    - onboarding
    - workday
    - servicenow
    - 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 the full onboarding sequence."
          inputParameters:
            - name: employee_id
              in: body
              type: string
              description: "The Workday worker ID."
            - name: start_date
              in: body
              type: string
              description: "Employee start date in YYYY-MM-DD format."
            - name: department
              in: body
              type: string
              description: "Department the new hire is joining."
          steps:
            - name: get-employee
              type: call
              call: "workday.get-worker"
              with:
                worker_id: "{{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"
            - name: send-welcome
              type: call
              call: "msteams.send-message"
              with:
                recipient_upn: "{{get-employee.work_email}}"
                text: "Welcome to Prudential, {{get-employee.first_name}}! Your onboarding ticket is {{open-ticket.number}}. We're excited to have you on the {{department}} team."
  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://prudential.service-now.com/api/now"
      authentication:
        type: basic
        username: "$secrets.servicenow_user"
        password: "$secrets.servicenow_password"
      resources:
        - name: incidents
          path: "/table/incident"
          operations:
            - name: create-incident
              method: POST
    - type: http
      namespace: msteams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: messages
          path: "/users/{{recipient_upn}}/sendMail"
          inputParameters:
            - name: recipient_upn
              in: path
          operations:
            - name: send-message
              method: POST

Orchestrates esg investment screening pipeline across financial services and insurance systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Esg Investment Screening Pipeline"
  description: "Orchestrates esg investment screening pipeline across financial services and insurance systems, coordinating multiple services and notifying stakeholders."
  tags:
    - esg
    - prudential-financial
    - slack
    - jira
    - teams
capability:
  exposes:
    - type: mcp
      namespace: esg
      port: 8080
      tools:
        - name: esg-investment-screening-pipeline
          description: "Orchestrates esg investment screening pipeline across financial services and insurance systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "slack.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "jira.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "teams.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: slack
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token"
      resources:
        - name: slack-resource
          path: "/api/esg"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: jira
      baseUri: "https://prudential.atlassian.net/rest/api/3"
      authentication:
        type: bearer
        token: "$secrets.jira_token"
      resources:
        - name: jira-resource
          path: "/api/esg"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: teams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.teams_token"
      resources:
        - name: teams-resource
          path: "/api/esg"
          operations:
            - name: execute-3
              method: POST

Retrieves the ESG (Environmental, Social, Governance) score for a PGIM investment portfolio, returning overall ESG score, environmental score, social score, and governance score.

naftiko: "0.5"
info:
  label: "ESG Portfolio Score"
  description: "Retrieves the ESG (Environmental, Social, Governance) score for a PGIM investment portfolio, returning overall ESG score, environmental score, social score, and governance score."
  tags:
    - wealth
    - investment
    - pgim
    - esg
capability:
  exposes:
    - type: mcp
      namespace: esg-analytics
      port: 8080
      tools:
        - name: get-esg-score
          description: "Retrieve ESG scores for an investment portfolio from PGIM."
          inputParameters:
            - name: portfolio_id
              in: body
              type: string
              description: "The portfolio identifier."
          call: "pgim-esg.get-scores"
          with:
            portfolio_id: "{{portfolio_id}}"
          outputParameters:
            - name: overall_esg
              type: string
              mapping: "$.data.overallScore"
            - name: environmental
              type: string
              mapping: "$.data.environmentalScore"
            - name: social
              type: string
              mapping: "$.data.socialScore"
            - name: governance
              type: string
              mapping: "$.data.governanceScore"
  consumes:
    - type: http
      namespace: pgim-esg
      baseUri: "https://api.pgim.com/esg/v1"
      authentication:
        type: bearer
        token: "$secrets.pgim_esg_token"
      resources:
        - name: scores
          path: "/portfolios/{{portfolio_id}}/esg-scores"
          inputParameters:
            - name: portfolio_id
              in: path
          operations:
            - name: get-scores
              method: GET

Coordinates estate settlement by pulling all policies for a deceased insured, generating a consolidated benefits statement, filing claims across all lines, and notifying the estate executor via email.

naftiko: "0.5"
info:
  label: "Estate Settlement Orchestrator"
  description: "Coordinates estate settlement by pulling all policies for a deceased insured, generating a consolidated benefits statement, filing claims across all lines, and notifying the estate executor via email."
  tags:
    - insurance
    - claims
    - estate
    - salesforce-marketing-cloud
capability:
  exposes:
    - type: mcp
      namespace: estate-settlement
      port: 8080
      tools:
        - name: initiate-estate-settlement
          description: "Given a deceased insured's ID, find all policies, file claims, and notify executor."
          inputParameters:
            - name: insured_id
              in: body
              type: string
              description: "The deceased insured's identifier."
            - name: executor_email
              in: body
              type: string
              description: "Estate executor's email address."
            - name: date_of_death
              in: body
              type: string
              description: "Date of death in YYYY-MM-DD format."
          steps:
            - name: find-policies
              type: call
              call: "policy-admin.find-policies-by-insured"
              with:
                insured_id: "{{insured_id}}"
            - name: file-claims
              type: call
              call: "claims-engine.file-death-claims-batch"
              with:
                policies: "{{find-policies.policy_numbers}}"
                date_of_death: "{{date_of_death}}"
            - name: notify-executor
              type: call
              call: "sfmc.send-email"
              with:
                template: "estate_settlement"
                to: "{{executor_email}}"
                merge_policies: "{{find-policies.count}}"
                merge_total_benefit: "{{file-claims.total_benefit}}"
  consumes:
    - type: http
      namespace: policy-admin
      baseUri: "https://api.prudential.com/internal/policy-admin/v2"
      authentication:
        type: bearer
        token: "$secrets.policy_admin_token"
      resources:
        - name: search
          path: "/policies/search"
          operations:
            - name: find-policies-by-insured
              method: POST
    - type: http
      namespace: claims-engine
      baseUri: "https://api.prudential.com/internal/claims/v2"
      authentication:
        type: bearer
        token: "$secrets.claims_engine_token"
      resources:
        - name: batch-claims
          path: "/death-claims/batch"
          operations:
            - name: file-death-claims-batch
              method: POST
    - type: http
      namespace: sfmc
      baseUri: "https://mc.prudential.com/rest"
      authentication:
        type: bearer
        token: "$secrets.sfmc_token"
      resources:
        - name: emails
          path: "/messaging/v1/email/messages"
          operations:
            - name: send-email
              method: POST

Retrieves a financial advisor's commission and production report from the compensation system, returning total commissions, product mix, and trailing 12-month production.

naftiko: "0.5"
info:
  label: "Financial Advisor Commission Report"
  description: "Retrieves a financial advisor's commission and production report from the compensation system, returning total commissions, product mix, and trailing 12-month production."
  tags:
    - wealth
    - agent
    - compensation
capability:
  exposes:
    - type: mcp
      namespace: advisor-comp
      port: 8080
      tools:
        - name: get-advisor-commissions
          description: "Look up advisor commission and production data."
          inputParameters:
            - name: advisor_id
              in: body
              type: string
              description: "The advisor identifier."
            - name: period
              in: body
              type: string
              description: "Period in YYYY-MM format."
          call: "comp-system.get-commissions"
          with:
            advisor_id: "{{advisor_id}}"
            period: "{{period}}"
          outputParameters:
            - name: total_commissions
              type: string
              mapping: "$.data.totalCommissions"
            - name: product_mix
              type: string
              mapping: "$.data.productMix"
            - name: trailing_12m
              type: string
              mapping: "$.data.trailing12MonthProduction"
  consumes:
    - type: http
      namespace: comp-system
      baseUri: "https://api.prudential.com/internal/compensation/v1"
      authentication:
        type: bearer
        token: "$secrets.comp_system_token"
      resources:
        - name: commissions
          path: "/advisors/{{advisor_id}}/commissions"
          inputParameters:
            - name: advisor_id
              in: path
            - name: period
              in: query
          operations:
            - name: get-commissions
              method: GET

Orchestrates financial advisor compensation pipeline across financial services and insurance systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Financial Advisor Compensation Pipeline"
  description: "Orchestrates financial advisor compensation pipeline across financial services and insurance systems, coordinating multiple services and notifying stakeholders."
  tags:
    - financial
    - prudential-financial
    - teams
    - workday
    - bloomberg
capability:
  exposes:
    - type: mcp
      namespace: financial
      port: 8080
      tools:
        - name: financial-advisor-compensation-pipeline
          description: "Orchestrates financial advisor compensation pipeline across financial services and insurance systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "teams.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "workday.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "bloomberg.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: teams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.teams_token"
      resources:
        - name: teams-resource
          path: "/api/financial"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: workday
      baseUri: "https://wd5-impl.workday.com/prudential/api/v1"
      authentication:
        type: bearer
        token: "$secrets.workday_token"
      resources:
        - name: workday-resource
          path: "/api/financial"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: bloomberg
      baseUri: "https://api.bloomberg.com/v1"
      authentication:
        type: bearer
        token: "$secrets.bloomberg_token"
      resources:
        - name: bloomberg-resource
          path: "/api/financial"
          operations:
            - name: execute-3
              method: POST

Retrieves the duration and convexity metrics for a PGIM fixed income portfolio, returning effective duration, modified duration, spread duration, and key rate durations.

naftiko: "0.5"
info:
  label: "Fixed Income Portfolio Duration Check"
  description: "Retrieves the duration and convexity metrics for a PGIM fixed income portfolio, returning effective duration, modified duration, spread duration, and key rate durations."
  tags:
    - wealth
    - investment
    - pgim
    - fixed-income
capability:
  exposes:
    - type: mcp
      namespace: fixed-income
      port: 8080
      tools:
        - name: get-portfolio-duration
          description: "Retrieve duration metrics for a fixed income portfolio from PGIM."
          inputParameters:
            - name: portfolio_id
              in: body
              type: string
              description: "The portfolio identifier."
          call: "pgim-fi.get-duration"
          with:
            portfolio_id: "{{portfolio_id}}"
          outputParameters:
            - name: effective_duration
              type: string
              mapping: "$.data.effectiveDuration"
            - name: modified_duration
              type: string
              mapping: "$.data.modifiedDuration"
            - name: spread_duration
              type: string
              mapping: "$.data.spreadDuration"
  consumes:
    - type: http
      namespace: pgim-fi
      baseUri: "https://api.pgim.com/fixed-income/v2"
      authentication:
        type: bearer
        token: "$secrets.pgim_fi_token"
      resources:
        - name: duration
          path: "/portfolios/{{portfolio_id}}/duration"
          inputParameters:
            - name: portfolio_id
              in: path
          operations:
            - name: get-duration
              method: GET

Orchestrates group benefits annual renewal pipeline across financial services and insurance systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Group Benefits Annual Renewal Pipeline"
  description: "Orchestrates group benefits annual renewal pipeline across financial services and insurance systems, coordinating multiple services and notifying stakeholders."
  tags:
    - group
    - prudential-financial
    - snowflake
    - slack
    - jira
capability:
  exposes:
    - type: mcp
      namespace: group
      port: 8080
      tools:
        - name: group-benefits-annual-renewal-pipeline
          description: "Orchestrates group benefits annual renewal pipeline across financial services and insurance systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "snowflake.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "slack.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "jira.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: snowflake
      baseUri: "https://prudential.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: snowflake-resource
          path: "/api/group"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: slack
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token"
      resources:
        - name: slack-resource
          path: "/api/group"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: jira
      baseUri: "https://prudential.atlassian.net/rest/api/3"
      authentication:
        type: bearer
        token: "$secrets.jira_token"
      resources:
        - name: jira-resource
          path: "/api/group"
          operations:
            - name: execute-3
              method: POST

Retrieves group benefits enrollment details for an employee from the group admin platform, returning enrolled coverages, dependents, coverage amounts, and effective dates.

naftiko: "0.5"
info:
  label: "Group Benefits Enrollment Lookup"
  description: "Retrieves group benefits enrollment details for an employee from the group admin platform, returning enrolled coverages, dependents, coverage amounts, and effective dates."
  tags:
    - insurance
    - group-benefits
capability:
  exposes:
    - type: mcp
      namespace: group-benefits
      port: 8080
      tools:
        - name: get-enrollment
          description: "Look up group benefits enrollment for an employee."
          inputParameters:
            - name: employer_id
              in: body
              type: string
              description: "The employer group identifier."
            - name: employee_ssn_last4
              in: body
              type: string
              description: "Last 4 digits of the employee's SSN."
          call: "group-admin.get-enrollment"
          with:
            employer_id: "{{employer_id}}"
            ssn_last4: "{{employee_ssn_last4}}"
          outputParameters:
            - name: coverages
              type: string
              mapping: "$.data.enrolledCoverages"
            - name: dependents
              type: string
              mapping: "$.data.dependents"
            - name: effective_date
              type: string
              mapping: "$.data.effectiveDate"
  consumes:
    - type: http
      namespace: group-admin
      baseUri: "https://api.prudential.com/internal/group-admin/v2"
      authentication:
        type: bearer
        token: "$secrets.group_admin_token"
      resources:
        - name: enrollments
          path: "/employers/{{employer_id}}/employees"
          inputParameters:
            - name: employer_id
              in: path
            - name: ssn_last4
              in: query
          operations:
            - name: get-enrollment
              method: GET

Manages group benefits open enrollment by pulling eligible employee census from the employer, sending enrollment invitations via Salesforce Marketing Cloud, and tracking enrollment progress in the group admin system.

naftiko: "0.5"
info:
  label: "Group Benefits Open Enrollment Orchestrator"
  description: "Manages group benefits open enrollment by pulling eligible employee census from the employer, sending enrollment invitations via Salesforce Marketing Cloud, and tracking enrollment progress in the group admin system."
  tags:
    - insurance
    - group-benefits
    - enrollment
    - salesforce-marketing-cloud
capability:
  exposes:
    - type: mcp
      namespace: group-enrollment
      port: 8080
      tools:
        - name: launch-open-enrollment
          description: "Given an employer ID and enrollment window, pull eligible employees, send invitations, and track."
          inputParameters:
            - name: employer_id
              in: body
              type: string
              description: "The employer group identifier."
            - name: enrollment_start
              in: body
              type: string
              description: "Enrollment start date."
            - name: enrollment_end
              in: body
              type: string
              description: "Enrollment end date."
          steps:
            - name: get-eligible
              type: call
              call: "group-admin.get-eligible-employees"
              with:
                employer_id: "{{employer_id}}"
            - name: send-invitations
              type: call
              call: "sfmc.send-batch-email"
              with:
                template: "oe_invitation"
                recipients: "{{get-eligible.emails}}"
                merge_start: "{{enrollment_start}}"
                merge_end: "{{enrollment_end}}"
            - name: create-window
              type: call
              call: "group-admin.create-enrollment-window"
              with:
                employer_id: "{{employer_id}}"
                start: "{{enrollment_start}}"
                end: "{{enrollment_end}}"
                eligible_count: "{{get-eligible.count}}"
  consumes:
    - type: http
      namespace: group-admin
      baseUri: "https://api.prudential.com/internal/group-admin/v2"
      authentication:
        type: bearer
        token: "$secrets.group_admin_token"
      resources:
        - name: eligible
          path: "/employers/{{employer_id}}/eligible-employees"
          inputParameters:
            - name: employer_id
              in: path
          operations:
            - name: get-eligible-employees
              method: GET
        - name: enrollment-windows
          path: "/employers/{{employer_id}}/enrollment-windows"
          inputParameters:
            - name: employer_id
              in: path
          operations:
            - name: create-enrollment-window
              method: POST
    - type: http
      namespace: sfmc
      baseUri: "https://mc.prudential.com/rest"
      authentication:
        type: bearer
        token: "$secrets.sfmc_token"
      resources:
        - name: batch-emails
          path: "/messaging/v1/email/messages/batch"
          operations:
            - name: send-batch-email
              method: POST

Orchestrates group billing reconciliation pipeline across financial services and insurance systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Group Billing Reconciliation Pipeline"
  description: "Orchestrates group billing reconciliation pipeline across financial services and insurance systems, coordinating multiple services and notifying stakeholders."
  tags:
    - group
    - prudential-financial
    - salesforce
    - servicenow
    - snowflake
capability:
  exposes:
    - type: mcp
      namespace: group
      port: 8080
      tools:
        - name: group-billing-reconciliation-pipeline
          description: "Orchestrates group billing reconciliation pipeline across financial services and insurance systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "salesforce.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "servicenow.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "snowflake.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: salesforce
      baseUri: "https://prudential.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_access_token"
      resources:
        - name: salesforce-resource
          path: "/api/group"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: servicenow
      baseUri: "https://prudential.service-now.com/api/now"
      authentication:
        type: bearer
        token: "$secrets.servicenow_token"
      resources:
        - name: servicenow-resource
          path: "/api/group"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: snowflake
      baseUri: "https://prudential.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: snowflake-resource
          path: "/api/group"
          operations:
            - name: execute-3
              method: POST

Retrieves group disability benefit calculator data from the Prudential Financial financial services and insurance systems.

naftiko: "0.5"
info:
  label: "Group Disability Benefit Calculator"
  description: "Retrieves group disability benefit calculator data from the Prudential Financial financial services and insurance systems."
  tags:
    - group
    - prudential-financial
    - calculator
capability:
  exposes:
    - type: mcp
      namespace: group
      port: 8080
      tools:
        - name: group-disability-benefit-calculator
          description: "Retrieves group disability benefit calculator data from the Prudential Financial financial services and insurance systems."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The input id."
          call: "prudential.group-disability-benefit-calculator"
          with:
            input_id: "{{input_id}}"
          outputParameters:
            - name: result
              type: string
              mapping: "$.data"
            - name: status
              type: string
              mapping: "$.status"
  consumes:
    - type: http
      namespace: prudential
      baseUri: "https://api.prudential.com/v2"
      authentication:
        type: bearer
        token: "$secrets.prudential_api_token"
      resources:
        - name: resource
          path: "/group/disability/benefit/calculator/{{input_id}}"
          inputParameters:
            - name: input_id
              in: path
          operations:
            - name: group-disability-benefit-calculator
              method: GET

Retrieves group life certificate lookup data from the Prudential Financial financial services and insurance systems.

naftiko: "0.5"
info:
  label: "Group Life Certificate Lookup"
  description: "Retrieves group life certificate lookup data from the Prudential Financial financial services and insurance systems."
  tags:
    - group
    - prudential-financial
    - lookup
capability:
  exposes:
    - type: mcp
      namespace: group
      port: 8080
      tools:
        - name: group-life-certificate-lookup
          description: "Retrieves group life certificate lookup data from the Prudential Financial financial services and insurance systems."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The input id."
          call: "prudential.group-life-certificate-lookup"
          with:
            input_id: "{{input_id}}"
          outputParameters:
            - name: result
              type: string
              mapping: "$.data"
            - name: status
              type: string
              mapping: "$.status"
  consumes:
    - type: http
      namespace: prudential
      baseUri: "https://api.prudential.com/v2"
      authentication:
        type: bearer
        token: "$secrets.prudential_api_token"
      resources:
        - name: resource
          path: "/group/life/certificate/lookup/{{input_id}}"
          inputParameters:
            - name: input_id
              in: path
          operations:
            - name: group-life-certificate-lookup
              method: GET

Generates monthly group life insurance premium billing by pulling census data from the employer feed, calculating premiums by age band, creating an invoice in SAP, and sending the bill to the employer via Salesforce.

naftiko: "0.5"
info:
  label: "Group Life Premium Billing Orchestrator"
  description: "Generates monthly group life insurance premium billing by pulling census data from the employer feed, calculating premiums by age band, creating an invoice in SAP, and sending the bill to the employer via Salesforce."
  tags:
    - insurance
    - billing
    - group-benefits
    - sap
    - salesforce
capability:
  exposes:
    - type: mcp
      namespace: group-billing
      port: 8080
      tools:
        - name: generate-group-billing
          description: "Given an employer ID and billing month, calculate premiums and generate the invoice."
          inputParameters:
            - name: employer_id
              in: body
              type: string
              description: "The employer group identifier."
            - name: billing_month
              in: body
              type: string
              description: "Billing month in YYYY-MM format."
          steps:
            - name: get-census
              type: call
              call: "group-admin.get-active-census"
              with:
                employer_id: "{{employer_id}}"
            - name: calculate-premium
              type: call
              call: "rating-engine.calculate-group-premium"
              with:
                employer_id: "{{employer_id}}"
                census: "{{get-census.employees}}"
                month: "{{billing_month}}"
            - name: create-invoice
              type: call
              call: "sap.create-invoice"
              with:
                customer: "{{employer_id}}"
                amount: "{{calculate-premium.total_premium}}"
                period: "{{billing_month}}"
            - name: send-bill
              type: call
              call: "salesforce.create-task"
              with:
                subject: "Group life premium bill: {{employer_id}} for {{billing_month}}"
                description: "Total premium: ${{calculate-premium.total_premium}}. Lives: {{get-census.count}}. Invoice: {{create-invoice.invoice_number}}."
  consumes:
    - type: http
      namespace: group-admin
      baseUri: "https://api.prudential.com/internal/group-admin/v2"
      authentication:
        type: bearer
        token: "$secrets.group_admin_token"
      resources:
        - name: census
          path: "/employers/{{employer_id}}/active-census"
          inputParameters:
            - name: employer_id
              in: path
          operations:
            - name: get-active-census
              method: GET
    - type: http
      namespace: rating-engine
      baseUri: "https://api.prudential.com/internal/rating/v1"
      authentication:
        type: bearer
        token: "$secrets.rating_engine_token"
      resources:
        - name: group-premium
          path: "/group-premium-calculations"
          operations:
            - name: calculate-group-premium
              method: POST
    - type: http
      namespace: sap
      baseUri: "https://prudential-s4.sap.com/sap/opu/odata/sap/SD_BILLING_SRV"
      authentication:
        type: basic
        username: "$secrets.sap_user"
        password: "$secrets.sap_password"
      resources:
        - name: invoices
          path: "/A_BillingDocument"
          operations:
            - name: create-invoice
              method: POST
    - type: http
      namespace: salesforce
      baseUri: "https://prudential.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token"
      resources:
        - name: tasks
          path: "/sobjects/Task"
          operations:
            - name: create-task
              method: POST

Orchestrates group open enrollment orchestrator across financial services and insurance systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Group Open Enrollment Orchestrator"
  description: "Orchestrates group open enrollment orchestrator across financial services and insurance systems, coordinating multiple services and notifying stakeholders."
  tags:
    - group
    - prudential-financial
    - snowflake
    - slack
    - jira
capability:
  exposes:
    - type: mcp
      namespace: group
      port: 8080
      tools:
        - name: group-open-enrollment-orchestrator
          description: "Orchestrates group open enrollment orchestrator across financial services and insurance systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "snowflake.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "slack.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "jira.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: snowflake
      baseUri: "https://prudential.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: snowflake-resource
          path: "/api/group"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: slack
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token"
      resources:
        - name: slack-resource
          path: "/api/group"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: jira
      baseUri: "https://prudential.atlassian.net/rest/api/3"
      authentication:
        type: bearer
        token: "$secrets.jira_token"
      resources:
        - name: jira-resource
          path: "/api/group"
          operations:
            - name: execute-3
              method: POST

Generates a life insurance policy illustration by pulling product rates from the product catalog, running the illustration engine, and sharing the PDF with the agent via Salesforce and Box.

naftiko: "0.5"
info:
  label: "Illustration Generation Orchestrator"
  description: "Generates a life insurance policy illustration by pulling product rates from the product catalog, running the illustration engine, and sharing the PDF with the agent via Salesforce and Box."
  tags:
    - insurance
    - sales
    - salesforce
    - box
capability:
  exposes:
    - type: mcp
      namespace: illustrations
      port: 8080
      tools:
        - name: generate-illustration
          description: "Given product and applicant details, generate a policy illustration, store in Box, and share with the agent."
          inputParameters:
            - name: product_code
              in: body
              type: string
              description: "The insurance product code."
            - name: face_amount
              in: body
              type: string
              description: "Requested face amount."
            - name: applicant_age
              in: body
              type: string
              description: "Applicant's current age."
            - name: agent_id
              in: body
              type: string
              description: "The agent's Salesforce user ID."
          steps:
            - name: get-rates
              type: call
              call: "product-catalog.get-rates"
              with:
                product_code: "{{product_code}}"
                face_amount: "{{face_amount}}"
                age: "{{applicant_age}}"
            - name: generate-pdf
              type: call
              call: "illustration-engine.create-illustration"
              with:
                product_code: "{{product_code}}"
                face_amount: "{{face_amount}}"
                premium: "{{get-rates.annual_premium}}"
                age: "{{applicant_age}}"
            - name: upload-to-box
              type: call
              call: "box.upload-file"
              with:
                folder_id: "illustrations"
                file_name: "Illustration_{{product_code}}_{{applicant_age}}.pdf"
                content: "{{generate-pdf.pdf_content}}"
            - name: notify-agent
              type: call
              call: "salesforce.create-task"
              with:
                owner_id: "{{agent_id}}"
                subject: "Illustration ready: {{product_code}} ${{face_amount}}"
                description: "Premium: ${{get-rates.annual_premium}}/year. Download: {{upload-to-box.shared_link}}"
  consumes:
    - type: http
      namespace: product-catalog
      baseUri: "https://api.prudential.com/internal/products/v1"
      authentication:
        type: bearer
        token: "$secrets.product_catalog_token"
      resources:
        - name: rates
          path: "/products/{{product_code}}/rates"
          inputParameters:
            - name: product_code
              in: path
          operations:
            - name: get-rates
              method: POST
    - type: http
      namespace: illustration-engine
      baseUri: "https://api.prudential.com/internal/illustrations/v1"
      authentication:
        type: bearer
        token: "$secrets.illustration_token"
      resources:
        - name: illustrations
          path: "/illustrations"
          operations:
            - name: create-illustration
              method: POST
    - type: http
      namespace: box
      baseUri: "https://upload.box.com/api/2.0"
      authentication:
        type: bearer
        token: "$secrets.box_token"
      resources:
        - name: files
          path: "/files/content"
          operations:
            - name: upload-file
              method: POST
    - type: http
      namespace: salesforce
      baseUri: "https://prudential.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token"
      resources:
        - name: tasks
          path: "/sobjects/Task"
          operations:
            - name: create-task
              method: POST

Orchestrates insurance fraud detection pipeline across financial services and insurance systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Insurance Fraud Detection Pipeline"
  description: "Orchestrates insurance fraud detection pipeline across financial services and insurance systems, coordinating multiple services and notifying stakeholders."
  tags:
    - insurance
    - prudential-financial
    - tableau
    - prudential
    - salesforce
capability:
  exposes:
    - type: mcp
      namespace: insurance
      port: 8080
      tools:
        - name: insurance-fraud-detection-pipeline
          description: "Orchestrates insurance fraud detection pipeline across financial services and insurance systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "tableau.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "prudential.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "salesforce.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: tableau
      baseUri: "https://tableau.prudential.com/api/3.19"
      authentication:
        type: bearer
        token: "$secrets.tableau_token"
      resources:
        - name: tableau-resource
          path: "/api/insurance"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: prudential
      baseUri: "https://api.prudential.com/v2"
      authentication:
        type: bearer
        token: "$secrets.prudential_api_token"
      resources:
        - name: prudential-resource
          path: "/api/insurance"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: salesforce
      baseUri: "https://prudential.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_access_token"
      resources:
        - name: salesforce-resource
          path: "/api/insurance"
          operations:
            - name: execute-3
              method: POST

Retrieves insurance illustration lookup data from the Prudential Financial financial services and insurance systems.

naftiko: "0.5"
info:
  label: "Insurance Illustration Lookup"
  description: "Retrieves insurance illustration lookup data from the Prudential Financial financial services and insurance systems."
  tags:
    - insurance
    - prudential-financial
    - lookup
capability:
  exposes:
    - type: mcp
      namespace: insurance
      port: 8080
      tools:
        - name: insurance-illustration-lookup
          description: "Retrieves insurance illustration lookup data from the Prudential Financial financial services and insurance systems."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The input id."
          call: "prudential.insurance-illustration-lookup"
          with:
            input_id: "{{input_id}}"
          outputParameters:
            - name: result
              type: string
              mapping: "$.data"
            - name: status
              type: string
              mapping: "$.status"
  consumes:
    - type: http
      namespace: prudential
      baseUri: "https://api.prudential.com/v2"
      authentication:
        type: bearer
        token: "$secrets.prudential_api_token"
      resources:
        - name: resource
          path: "/insurance/illustration/lookup/{{input_id}}"
          inputParameters:
            - name: input_id
              in: path
          operations:
            - name: insurance-illustration-lookup
              method: GET

Retrieves product details from the insurance product catalog, returning product name, available riders, state availability, and current rate class information.

naftiko: "0.5"
info:
  label: "Insurance Product Catalog Lookup"
  description: "Retrieves product details from the insurance product catalog, returning product name, available riders, state availability, and current rate class information."
  tags:
    - insurance
    - product
capability:
  exposes:
    - type: mcp
      namespace: product-info
      port: 8080
      tools:
        - name: get-product-details
          description: "Look up insurance product details from the product catalog."
          inputParameters:
            - name: product_code
              in: body
              type: string
              description: "The insurance product code."
          call: "product-catalog.get-product"
          with:
            product_code: "{{product_code}}"
          outputParameters:
            - name: product_name
              type: string
              mapping: "$.data.productName"
            - name: riders
              type: string
              mapping: "$.data.availableRiders"
            - name: state_availability
              type: string
              mapping: "$.data.availableStates"
            - name: rate_classes
              type: string
              mapping: "$.data.rateClasses"
  consumes:
    - type: http
      namespace: product-catalog
      baseUri: "https://api.prudential.com/internal/products/v1"
      authentication:
        type: bearer
        token: "$secrets.product_catalog_token"
      resources:
        - name: products
          path: "/products/{{product_code}}"
          inputParameters:
            - name: product_code
              in: path
          operations:
            - name: get-product
              method: GET

Orchestrates insurance product pricing pipeline across financial services and insurance systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Insurance Product Pricing Pipeline"
  description: "Orchestrates insurance product pricing pipeline across financial services and insurance systems, coordinating multiple services and notifying stakeholders."
  tags:
    - insurance
    - prudential-financial
    - servicenow
    - snowflake
    - slack
capability:
  exposes:
    - type: mcp
      namespace: insurance
      port: 8080
      tools:
        - name: insurance-product-pricing-pipeline
          description: "Orchestrates insurance product pricing pipeline across financial services and insurance systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "servicenow.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "snowflake.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "slack.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: servicenow
      baseUri: "https://prudential.service-now.com/api/now"
      authentication:
        type: bearer
        token: "$secrets.servicenow_token"
      resources:
        - name: servicenow-resource
          path: "/api/insurance"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: snowflake
      baseUri: "https://prudential.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: snowflake-resource
          path: "/api/insurance"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: slack
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token"
      resources:
        - name: slack-resource
          path: "/api/insurance"
          operations:
            - name: execute-3
              method: POST

Retrieves investment account holdings lookup data from the Prudential Financial financial services and insurance systems.

naftiko: "0.5"
info:
  label: "Investment Account Holdings Lookup"
  description: "Retrieves investment account holdings lookup data from the Prudential Financial financial services and insurance systems."
  tags:
    - investment
    - prudential-financial
    - lookup
capability:
  exposes:
    - type: mcp
      namespace: investment
      port: 8080
      tools:
        - name: investment-account-holdings-lookup
          description: "Retrieves investment account holdings lookup data from the Prudential Financial financial services and insurance systems."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The input id."
          call: "prudential.investment-account-holdings-lookup"
          with:
            input_id: "{{input_id}}"
          outputParameters:
            - name: result
              type: string
              mapping: "$.data"
            - name: status
              type: string
              mapping: "$.status"
  consumes:
    - type: http
      namespace: prudential
      baseUri: "https://api.prudential.com/v2"
      authentication:
        type: bearer
        token: "$secrets.prudential_api_token"
      resources:
        - name: resource
          path: "/investment/account/holdings/lookup/{{input_id}}"
          inputParameters:
            - name: input_id
              in: path
          operations:
            - name: investment-account-holdings-lookup
              method: GET

Orchestrates investment fund launch pipeline across financial services and insurance systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Investment Fund Launch Pipeline"
  description: "Orchestrates investment fund launch pipeline across financial services and insurance systems, coordinating multiple services and notifying stakeholders."
  tags:
    - investment
    - prudential-financial
    - jira
    - teams
    - workday
capability:
  exposes:
    - type: mcp
      namespace: investment
      port: 8080
      tools:
        - name: investment-fund-launch-pipeline
          description: "Orchestrates investment fund launch pipeline across financial services and insurance systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "jira.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "teams.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "workday.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: jira
      baseUri: "https://prudential.atlassian.net/rest/api/3"
      authentication:
        type: bearer
        token: "$secrets.jira_token"
      resources:
        - name: jira-resource
          path: "/api/investment"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: teams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.teams_token"
      resources:
        - name: teams-resource
          path: "/api/investment"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: workday
      baseUri: "https://wd5-impl.workday.com/prudential/api/v1"
      authentication:
        type: bearer
        token: "$secrets.workday_token"
      resources:
        - name: workday-resource
          path: "/api/investment"
          operations:
            - name: execute-3
              method: POST

Retrieves the performance data for a PGIM investment fund, returning NAV, YTD return, 1-year return, 3-year return, and expense ratio from the fund data platform.

naftiko: "0.5"
info:
  label: "Investment Fund Performance Lookup"
  description: "Retrieves the performance data for a PGIM investment fund, returning NAV, YTD return, 1-year return, 3-year return, and expense ratio from the fund data platform."
  tags:
    - wealth
    - investment
    - pgim
capability:
  exposes:
    - type: mcp
      namespace: fund-data
      port: 8080
      tools:
        - name: get-fund-performance
          description: "Look up performance metrics for a PGIM investment fund."
          inputParameters:
            - name: fund_ticker
              in: body
              type: string
              description: "The fund ticker symbol."
          call: "fund-platform.get-performance"
          with:
            ticker: "{{fund_ticker}}"
          outputParameters:
            - name: nav
              type: string
              mapping: "$.data.nav"
            - name: ytd_return
              type: string
              mapping: "$.data.ytdReturn"
            - name: one_year_return
              type: string
              mapping: "$.data.oneYearReturn"
            - name: three_year_return
              type: string
              mapping: "$.data.threeYearReturn"
            - name: expense_ratio
              type: string
              mapping: "$.data.expenseRatio"
  consumes:
    - type: http
      namespace: fund-platform
      baseUri: "https://api.pgim.com/fund-data/v2"
      authentication:
        type: bearer
        token: "$secrets.pgim_fund_token"
      resources:
        - name: performance
          path: "/funds/{{ticker}}/performance"
          inputParameters:
            - name: ticker
              in: path
          operations:
            - name: get-performance
              method: GET

Retrieves investment fund prospectus lookup data from the Prudential Financial financial services and insurance systems.

naftiko: "0.5"
info:
  label: "Investment Fund Prospectus Lookup"
  description: "Retrieves investment fund prospectus lookup data from the Prudential Financial financial services and insurance systems."
  tags:
    - investment
    - prudential-financial
    - lookup
capability:
  exposes:
    - type: mcp
      namespace: investment
      port: 8080
      tools:
        - name: investment-fund-prospectus-lookup
          description: "Retrieves investment fund prospectus lookup data from the Prudential Financial financial services and insurance systems."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The input id."
          call: "prudential.investment-fund-prospectus-lookup"
          with:
            input_id: "{{input_id}}"
          outputParameters:
            - name: result
              type: string
              mapping: "$.data"
            - name: status
              type: string
              mapping: "$.status"
  consumes:
    - type: http
      namespace: prudential
      baseUri: "https://api.prudential.com/v2"
      authentication:
        type: bearer
        token: "$secrets.prudential_api_token"
      resources:
        - name: resource
          path: "/investment/fund/prospectus/lookup/{{input_id}}"
          inputParameters:
            - name: input_id
              in: path
          operations:
            - name: investment-fund-prospectus-lookup
              method: GET

Orchestrates investment performance reporting pipeline across financial services and insurance systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Investment Performance Reporting Pipeline"
  description: "Orchestrates investment performance reporting pipeline across financial services and insurance systems, coordinating multiple services and notifying stakeholders."
  tags:
    - investment
    - prudential-financial
    - bloomberg
    - tableau
    - prudential
capability:
  exposes:
    - type: mcp
      namespace: investment
      port: 8080
      tools:
        - name: investment-performance-reporting-pipeline
          description: "Orchestrates investment performance reporting pipeline across financial services and insurance systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "bloomberg.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "tableau.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "prudential.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: bloomberg
      baseUri: "https://api.bloomberg.com/v1"
      authentication:
        type: bearer
        token: "$secrets.bloomberg_token"
      resources:
        - name: bloomberg-resource
          path: "/api/investment"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: tableau
      baseUri: "https://tableau.prudential.com/api/3.19"
      authentication:
        type: bearer
        token: "$secrets.tableau_token"
      resources:
        - name: tableau-resource
          path: "/api/investment"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: prudential
      baseUri: "https://api.prudential.com/v2"
      authentication:
        type: bearer
        token: "$secrets.prudential_api_token"
      resources:
        - name: prudential-resource
          path: "/api/investment"
          operations:
            - name: execute-3
              method: POST

Orchestrates investment portfolio risk rebalancer across financial services and insurance systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Investment Portfolio Risk Rebalancer"
  description: "Orchestrates investment portfolio risk rebalancer across financial services and insurance systems, coordinating multiple services and notifying stakeholders."
  tags:
    - investment
    - prudential-financial
    - slack
    - jira
    - teams
capability:
  exposes:
    - type: mcp
      namespace: investment
      port: 8080
      tools:
        - name: investment-portfolio-risk-rebalancer
          description: "Orchestrates investment portfolio risk rebalancer across financial services and insurance systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "slack.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "jira.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "teams.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: slack
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token"
      resources:
        - name: slack-resource
          path: "/api/investment"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: jira
      baseUri: "https://prudential.atlassian.net/rest/api/3"
      authentication:
        type: bearer
        token: "$secrets.jira_token"
      resources:
        - name: jira-resource
          path: "/api/investment"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: teams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.teams_token"
      resources:
        - name: teams-resource
          path: "/api/investment"
          operations:
            - name: execute-3
              method: POST

Orchestrates investment trade compliance pipeline across financial services and insurance systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Investment Trade Compliance Pipeline"
  description: "Orchestrates investment trade compliance pipeline across financial services and insurance systems, coordinating multiple services and notifying stakeholders."
  tags:
    - investment
    - prudential-financial
    - prudential
    - salesforce
    - servicenow
capability:
  exposes:
    - type: mcp
      namespace: investment
      port: 8080
      tools:
        - name: investment-trade-compliance-pipeline
          description: "Orchestrates investment trade compliance pipeline across financial services and insurance systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "prudential.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "salesforce.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "servicenow.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: prudential
      baseUri: "https://api.prudential.com/v2"
      authentication:
        type: bearer
        token: "$secrets.prudential_api_token"
      resources:
        - name: prudential-resource
          path: "/api/investment"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: salesforce
      baseUri: "https://prudential.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_access_token"
      resources:
        - name: salesforce-resource
          path: "/api/investment"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: servicenow
      baseUri: "https://prudential.service-now.com/api/now"
      authentication:
        type: bearer
        token: "$secrets.servicenow_token"
      resources:
        - name: servicenow-resource
          path: "/api/investment"
          operations:
            - name: execute-3
              method: POST

Executes a securities trade through the Charles River IMS order management system, returning trade confirmation, execution price, and settlement date.

naftiko: "0.5"
info:
  label: "Investment Trade Execution"
  description: "Executes a securities trade through the Charles River IMS order management system, returning trade confirmation, execution price, and settlement date."
  tags:
    - wealth
    - investment
    - charles-river
capability:
  exposes:
    - type: mcp
      namespace: trade-execution
      port: 8080
      tools:
        - name: execute-trade
          description: "Execute a securities trade through Charles River IMS."
          inputParameters:
            - name: account_id
              in: body
              type: string
              description: "The investment account identifier."
            - name: security
              in: body
              type: string
              description: "Security ticker symbol."
            - name: side
              in: body
              type: string
              description: "Trade side (buy, sell)."
            - name: quantity
              in: body
              type: string
              description: "Number of shares."
          call: "charles-river.submit-order"
          with:
            account_id: "{{account_id}}"
            security: "{{security}}"
            side: "{{side}}"
            quantity: "{{quantity}}"
          outputParameters:
            - name: order_id
              type: string
              mapping: "$.data.orderId"
            - name: execution_price
              type: string
              mapping: "$.data.executionPrice"
            - name: settlement_date
              type: string
              mapping: "$.data.settlementDate"
  consumes:
    - type: http
      namespace: charles-river
      baseUri: "https://crd.prudential.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.charles_river_token"
      resources:
        - name: orders
          path: "/orders"
          operations:
            - name: submit-order
              method: POST

Creates an IT support incident in ServiceNow for Prudential employees, covering system access issues, application errors, and hardware requests.

naftiko: "0.5"
info:
  label: "IT Incident Ticket Creation"
  description: "Creates an IT support incident in ServiceNow for Prudential employees, covering system access issues, application errors, and hardware requests."
  tags:
    - it-support
    - servicenow
capability:
  exposes:
    - type: mcp
      namespace: it-support
      port: 8080
      tools:
        - name: create-it-incident
          description: "Submit an IT support incident to ServiceNow."
          inputParameters:
            - name: category
              in: body
              type: string
              description: "IT category (access, application, hardware, network)."
            - name: description
              in: body
              type: string
              description: "Description of the issue."
            - name: priority
              in: body
              type: string
              description: "Priority (low, medium, high, critical)."
          call: "servicenow.create-incident"
          with:
            category: "{{category}}"
            short_description: "IT Support: {{category}}"
            description: "{{description}}"
            priority: "{{priority}}"
          outputParameters:
            - name: incident_number
              type: string
              mapping: "$.result.number"
  consumes:
    - type: http
      namespace: servicenow
      baseUri: "https://prudential.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

Retrieves a life insurance policy from the policy administration system by policy number, returning policyholder name, face amount, premium, cash value, and policy status.

naftiko: "0.5"
info:
  label: "Life Insurance Policy Lookup"
  description: "Retrieves a life insurance policy from the policy administration system by policy number, returning policyholder name, face amount, premium, cash value, and policy status."
  tags:
    - insurance
    - policy
    - life-insurance
capability:
  exposes:
    - type: mcp
      namespace: life-policy
      port: 8080
      tools:
        - name: get-life-policy
          description: "Look up a life insurance policy by policy number."
          inputParameters:
            - name: policy_number
              in: body
              type: string
              description: "The life insurance policy number."
          call: "policy-admin.get-policy"
          with:
            policy_number: "{{policy_number}}"
          outputParameters:
            - name: policyholder
              type: string
              mapping: "$.data.insuredName"
            - name: face_amount
              type: string
              mapping: "$.data.faceAmount"
            - name: premium
              type: string
              mapping: "$.data.annualPremium"
            - name: cash_value
              type: string
              mapping: "$.data.cashValue"
            - name: status
              type: string
              mapping: "$.data.policyStatus"
  consumes:
    - type: http
      namespace: policy-admin
      baseUri: "https://api.prudential.com/internal/policy-admin/v2"
      authentication:
        type: bearer
        token: "$secrets.policy_admin_token"
      resources:
        - name: policies
          path: "/policies/{{policy_number}}"
          inputParameters:
            - name: policy_number
              in: path
          operations:
            - name: get-policy
              method: GET

Retrieves long term care benefit summary data from the Prudential Financial financial services and insurance systems.

naftiko: "0.5"
info:
  label: "Long Term Care Benefit Summary"
  description: "Retrieves long term care benefit summary data from the Prudential Financial financial services and insurance systems."
  tags:
    - long
    - prudential-financial
    - summary
capability:
  exposes:
    - type: mcp
      namespace: long
      port: 8080
      tools:
        - name: long-term-care-benefit-summary
          description: "Retrieves long term care benefit summary data from the Prudential Financial financial services and insurance systems."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The input id."
          call: "prudential.long-term-care-benefit-summary"
          with:
            input_id: "{{input_id}}"
          outputParameters:
            - name: result
              type: string
              mapping: "$.data"
            - name: status
              type: string
              mapping: "$.status"
  consumes:
    - type: http
      namespace: prudential
      baseUri: "https://api.prudential.com/v2"
      authentication:
        type: bearer
        token: "$secrets.prudential_api_token"
      resources:
        - name: resource
          path: "/long/term/care/benefit/summary/{{input_id}}"
          inputParameters:
            - name: input_id
              in: path
          operations:
            - name: long-term-care-benefit-summary
              method: GET

Retrieves the status of a long-term care insurance claim, returning claim state, benefit period remaining, daily benefit amount, and care provider.

naftiko: "0.5"
info:
  label: "Long-Term Care Claim Status"
  description: "Retrieves the status of a long-term care insurance claim, returning claim state, benefit period remaining, daily benefit amount, and care provider."
  tags:
    - insurance
    - claims
    - long-term-care
capability:
  exposes:
    - type: mcp
      namespace: ltc-claims
      port: 8080
      tools:
        - name: get-ltc-claim
          description: "Look up a long-term care claim by claim number."
          inputParameters:
            - name: claim_number
              in: body
              type: string
              description: "The LTC claim number."
          call: "ltc-system.get-claim"
          with:
            claim_number: "{{claim_number}}"
          outputParameters:
            - name: status
              type: string
              mapping: "$.data.claimStatus"
            - name: benefit_remaining
              type: string
              mapping: "$.data.benefitPeriodRemaining"
            - name: daily_benefit
              type: string
              mapping: "$.data.dailyBenefitAmount"
            - name: care_provider
              type: string
              mapping: "$.data.careProviderName"
  consumes:
    - type: http
      namespace: ltc-system
      baseUri: "https://api.prudential.com/internal/ltc/v2"
      authentication:
        type: bearer
        token: "$secrets.ltc_token"
      resources:
        - name: claims
          path: "/claims/{{claim_number}}"
          inputParameters:
            - name: claim_number
              in: path
          operations:
            - name: get-claim
              method: GET

Pulls the daily market risk exposure report from the PGIM risk platform, returning VaR, stress test results, and sector concentration for a given portfolio.

naftiko: "0.5"
info:
  label: "Market Risk Report"
  description: "Pulls the daily market risk exposure report from the PGIM risk platform, returning VaR, stress test results, and sector concentration for a given portfolio."
  tags:
    - wealth
    - risk
    - pgim
capability:
  exposes:
    - type: mcp
      namespace: risk-management
      port: 8080
      tools:
        - name: get-market-risk-report
          description: "Retrieve daily market risk metrics for a portfolio from PGIM."
          inputParameters:
            - name: portfolio_id
              in: body
              type: string
              description: "The portfolio identifier."
            - name: as_of_date
              in: body
              type: string
              description: "Report date in YYYY-MM-DD format."
          call: "pgim-risk.get-daily-risk"
          with:
            portfolio_id: "{{portfolio_id}}"
            date: "{{as_of_date}}"
          outputParameters:
            - name: var_95
              type: string
              mapping: "$.data.valueAtRisk95"
            - name: stress_test_loss
              type: string
              mapping: "$.data.stressTestMaxLoss"
            - name: sector_concentration
              type: string
              mapping: "$.data.sectorConcentration"
  consumes:
    - type: http
      namespace: pgim-risk
      baseUri: "https://api.pgim.com/risk/v2"
      authentication:
        type: bearer
        token: "$secrets.pgim_risk_token"
      resources:
        - name: daily-risk
          path: "/portfolios/{{portfolio_id}}/risk"
          inputParameters:
            - name: portfolio_id
              in: path
            - name: date
              in: query
          operations:
            - name: get-daily-risk
              method: GET

Processes a new life insurance application by running underwriting through the automated UW engine, ordering medical records from ExamOne, pulling MIB data, and creating the case in Salesforce for the agent.

naftiko: "0.5"
info:
  label: "New Life Insurance Application Orchestrator"
  description: "Processes a new life insurance application by running underwriting through the automated UW engine, ordering medical records from ExamOne, pulling MIB data, and creating the case in Salesforce for the agent."
  tags:
    - insurance
    - underwriting
    - examone
    - mib
    - salesforce
capability:
  exposes:
    - type: mcp
      namespace: life-underwriting
      port: 8080
      tools:
        - name: process-life-application
          description: "Given applicant details, run automated UW, order med records, pull MIB, and create Salesforce case."
          inputParameters:
            - name: applicant_name
              in: body
              type: string
              description: "Full name of the applicant."
            - name: date_of_birth
              in: body
              type: string
              description: "Date of birth in YYYY-MM-DD format."
            - name: face_amount
              in: body
              type: string
              description: "Requested face amount."
            - name: agent_id
              in: body
              type: string
              description: "The producing agent's Salesforce ID."
          steps:
            - name: run-auto-uw
              type: call
              call: "uw-engine.evaluate-application"
              with:
                applicant_name: "{{applicant_name}}"
                dob: "{{date_of_birth}}"
                face_amount: "{{face_amount}}"
            - name: order-exam
              type: call
              call: "examone.order-exam"
              with:
                applicant_name: "{{applicant_name}}"
                dob: "{{date_of_birth}}"
                exam_type: "{{run-auto-uw.required_exam}}"
            - name: pull-mib
              type: call
              call: "mib.check-codes"
              with:
                applicant_name: "{{applicant_name}}"
                dob: "{{date_of_birth}}"
            - name: create-case
              type: call
              call: "salesforce.create-case"
              with:
                subject: "Life app: {{applicant_name}} - ${{face_amount}}"
                description: "Auto-UW decision: {{run-auto-uw.decision}}. Exam ordered: {{order-exam.order_id}}. MIB codes: {{pull-mib.codes}}."
                owner_id: "{{agent_id}}"
  consumes:
    - type: http
      namespace: uw-engine
      baseUri: "https://api.prudential.com/internal/underwriting/v2"
      authentication:
        type: bearer
        token: "$secrets.uw_engine_token"
      resources:
        - name: evaluations
          path: "/evaluations"
          operations:
            - name: evaluate-application
              method: POST
    - type: http
      namespace: examone
      baseUri: "https://api.examone.com/v1"
      authentication:
        type: bearer
        token: "$secrets.examone_token"
      resources:
        - name: exams
          path: "/orders"
          operations:
            - name: order-exam
              method: POST
    - type: http
      namespace: mib
      baseUri: "https://api.mib.com/v1"
      authentication:
        type: bearer
        token: "$secrets.mib_token"
      resources:
        - name: codes
          path: "/code-checks"
          operations:
            - name: check-codes
              method: POST
    - type: http
      namespace: salesforce
      baseUri: "https://prudential.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token"
      resources:
        - name: cases
          path: "/sobjects/Case"
          operations:
            - name: create-case
              method: POST

Calculates a pension benefit estimate for a plan participant based on years of service, final average salary, and benefit formula.

naftiko: "0.5"
info:
  label: "Pension Benefit Calculation"
  description: "Calculates a pension benefit estimate for a plan participant based on years of service, final average salary, and benefit formula."
  tags:
    - retirement
    - pension
capability:
  exposes:
    - type: mcp
      namespace: pension
      port: 8080
      tools:
        - name: calculate-pension-benefit
          description: "Calculate estimated pension benefit for a participant."
          inputParameters:
            - name: participant_id
              in: body
              type: string
              description: "The participant identifier."
            - name: plan_id
              in: body
              type: string
              description: "The pension plan identifier."
            - name: retirement_date
              in: body
              type: string
              description: "Projected retirement date."
          call: "pension-system.calculate-benefit"
          with:
            participant_id: "{{participant_id}}"
            plan_id: "{{plan_id}}"
            retirement_date: "{{retirement_date}}"
          outputParameters:
            - name: monthly_benefit
              type: string
              mapping: "$.data.monthlyBenefit"
            - name: years_of_service
              type: string
              mapping: "$.data.yearsOfService"
            - name: final_avg_salary
              type: string
              mapping: "$.data.finalAverageSalary"
  consumes:
    - type: http
      namespace: pension-system
      baseUri: "https://api.prudential.com/internal/pension/v2"
      authentication:
        type: bearer
        token: "$secrets.pension_token"
      resources:
        - name: calculations
          path: "/benefit-calculations"
          operations:
            - name: calculate-benefit
              method: POST

Orchestrates pension benefit estimation pipeline across financial services and insurance systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Pension Benefit Estimation Pipeline"
  description: "Orchestrates pension benefit estimation pipeline across financial services and insurance systems, coordinating multiple services and notifying stakeholders."
  tags:
    - pension
    - prudential-financial
    - slack
    - jira
    - teams
capability:
  exposes:
    - type: mcp
      namespace: pension
      port: 8080
      tools:
        - name: pension-benefit-estimation-pipeline
          description: "Orchestrates pension benefit estimation pipeline across financial services and insurance systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "slack.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "jira.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "teams.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: slack
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token"
      resources:
        - name: slack-resource
          path: "/api/pension"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: jira
      baseUri: "https://prudential.atlassian.net/rest/api/3"
      authentication:
        type: bearer
        token: "$secrets.jira_token"
      resources:
        - name: jira-resource
          path: "/api/pension"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: teams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.teams_token"
      resources:
        - name: teams-resource
          path: "/api/pension"
          operations:
            - name: execute-3
              method: POST

Retrieves a real estate property valuation from the PGIM Real Estate platform, returning property address, current appraised value, cap rate, occupancy rate, and net operating income.

naftiko: "0.5"
info:
  label: "PGIM Real Estate Property Valuation"
  description: "Retrieves a real estate property valuation from the PGIM Real Estate platform, returning property address, current appraised value, cap rate, occupancy rate, and net operating income."
  tags:
    - wealth
    - real-estate
    - pgim
capability:
  exposes:
    - type: mcp
      namespace: real-estate
      port: 8080
      tools:
        - name: get-property-valuation
          description: "Look up a real estate property valuation from PGIM Real Estate."
          inputParameters:
            - name: property_id
              in: body
              type: string
              description: "The PGIM Real Estate property identifier."
          call: "pgim-re.get-valuation"
          with:
            property_id: "{{property_id}}"
          outputParameters:
            - name: address
              type: string
              mapping: "$.data.address"
            - name: appraised_value
              type: string
              mapping: "$.data.appraisedValue"
            - name: cap_rate
              type: string
              mapping: "$.data.capRate"
            - name: occupancy
              type: string
              mapping: "$.data.occupancyRate"
            - name: noi
              type: string
              mapping: "$.data.netOperatingIncome"
  consumes:
    - type: http
      namespace: pgim-re
      baseUri: "https://api.pgim.com/real-estate/v2"
      authentication:
        type: bearer
        token: "$secrets.pgim_re_token"
      resources:
        - name: valuations
          path: "/properties/{{property_id}}/valuation"
          inputParameters:
            - name: property_id
              in: path
          operations:
            - name: get-valuation
              method: GET

Processes a beneficiary change request by updating the policy record, generating a DocuSign envelope for signature, and sending a confirmation email to the policyholder via Salesforce Marketing Cloud.

naftiko: "0.5"
info:
  label: "Policy Beneficiary Change Orchestrator"
  description: "Processes a beneficiary change request by updating the policy record, generating a DocuSign envelope for signature, and sending a confirmation email to the policyholder via Salesforce Marketing Cloud."
  tags:
    - insurance
    - policy
    - docusign
    - salesforce-marketing-cloud
capability:
  exposes:
    - type: mcp
      namespace: policy-changes
      port: 8080
      tools:
        - name: change-beneficiary
          description: "Given a policy number and new beneficiary details, update the policy, send DocuSign for signature, and confirm."
          inputParameters:
            - name: policy_number
              in: body
              type: string
              description: "The policy number."
            - name: new_beneficiary_name
              in: body
              type: string
              description: "Name of the new beneficiary."
            - name: new_beneficiary_relationship
              in: body
              type: string
              description: "Relationship to the insured."
            - name: new_beneficiary_percentage
              in: body
              type: string
              description: "Beneficiary percentage (0-100)."
          steps:
            - name: update-policy
              type: call
              call: "policy-admin.update-beneficiary"
              with:
                policy_number: "{{policy_number}}"
                name: "{{new_beneficiary_name}}"
                relationship: "{{new_beneficiary_relationship}}"
                percentage: "{{new_beneficiary_percentage}}"
            - name: send-docusign
              type: call
              call: "docusign.create-envelope"
              with:
                template_id: "beneficiary_change"
                signer_email: "{{update-policy.insured_email}}"
                signer_name: "{{update-policy.insured_name}}"
            - name: send-confirmation
              type: call
              call: "sfmc.send-email"
              with:
                template: "beneficiary_change_confirmation"
                to: "{{update-policy.insured_email}}"
                merge_name: "{{update-policy.insured_name}}"
                merge_beneficiary: "{{new_beneficiary_name}}"
  consumes:
    - type: http
      namespace: policy-admin
      baseUri: "https://api.prudential.com/internal/policy-admin/v2"
      authentication:
        type: bearer
        token: "$secrets.policy_admin_token"
      resources:
        - name: beneficiaries
          path: "/policies/{{policy_number}}/beneficiaries"
          inputParameters:
            - name: policy_number
              in: path
          operations:
            - name: update-beneficiary
              method: PUT
    - type: http
      namespace: docusign
      baseUri: "https://na4.docusign.net/restapi/v2.1"
      authentication:
        type: bearer
        token: "$secrets.docusign_token"
      resources:
        - name: envelopes
          path: "/accounts/{{account_id}}/envelopes"
          inputParameters:
            - name: account_id
              in: path
          operations:
            - name: create-envelope
              method: POST
    - type: http
      namespace: sfmc
      baseUri: "https://mc.prudential.com/rest"
      authentication:
        type: bearer
        token: "$secrets.sfmc_token"
      resources:
        - name: emails
          path: "/messaging/v1/email/messages"
          operations:
            - name: send-email
              method: POST

Orchestrates policy conversion eligibility pipeline across financial services and insurance systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Policy Conversion Eligibility Pipeline"
  description: "Orchestrates policy conversion eligibility pipeline across financial services and insurance systems, coordinating multiple services and notifying stakeholders."
  tags:
    - policy
    - prudential-financial
    - workday
    - bloomberg
    - tableau
capability:
  exposes:
    - type: mcp
      namespace: policy
      port: 8080
      tools:
        - name: policy-conversion-eligibility-pipeline
          description: "Orchestrates policy conversion eligibility pipeline across financial services and insurance systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "workday.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "bloomberg.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "tableau.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: workday
      baseUri: "https://wd5-impl.workday.com/prudential/api/v1"
      authentication:
        type: bearer
        token: "$secrets.workday_token"
      resources:
        - name: workday-resource
          path: "/api/policy"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: bloomberg
      baseUri: "https://api.bloomberg.com/v1"
      authentication:
        type: bearer
        token: "$secrets.bloomberg_token"
      resources:
        - name: bloomberg-resource
          path: "/api/policy"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: tableau
      baseUri: "https://tableau.prudential.com/api/3.19"
      authentication:
        type: bearer
        token: "$secrets.tableau_token"
      resources:
        - name: tableau-resource
          path: "/api/policy"
          operations:
            - name: execute-3
              method: POST

Retrieves policy dividend history data from the Prudential Financial financial services and insurance systems.

naftiko: "0.5"
info:
  label: "Policy Dividend History"
  description: "Retrieves policy dividend history data from the Prudential Financial financial services and insurance systems."
  tags:
    - policy
    - prudential-financial
    - history
capability:
  exposes:
    - type: mcp
      namespace: policy
      port: 8080
      tools:
        - name: policy-dividend-history
          description: "Retrieves policy dividend history data from the Prudential Financial financial services and insurance systems."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The input id."
          call: "prudential.policy-dividend-history"
          with:
            input_id: "{{input_id}}"
          outputParameters:
            - name: result
              type: string
              mapping: "$.data"
            - name: status
              type: string
              mapping: "$.status"
  consumes:
    - type: http
      namespace: prudential
      baseUri: "https://api.prudential.com/v2"
      authentication:
        type: bearer
        token: "$secrets.prudential_api_token"
      resources:
        - name: resource
          path: "/policy/dividend/history/{{input_id}}"
          inputParameters:
            - name: input_id
              in: path
          operations:
            - name: policy-dividend-history
              method: GET

Processes a policy loan against a permanent life insurance policy's cash value, verifying the available loan amount and creating the disbursement.

naftiko: "0.5"
info:
  label: "Policy Loan Request Processing"
  description: "Processes a policy loan against a permanent life insurance policy's cash value, verifying the available loan amount and creating the disbursement."
  tags:
    - insurance
    - policy
    - finance
capability:
  exposes:
    - type: mcp
      namespace: policy-loans
      port: 8080
      tools:
        - name: process-policy-loan
          description: "Process a policy loan request against the cash value of a life insurance policy."
          inputParameters:
            - name: policy_number
              in: body
              type: string
              description: "The policy number."
            - name: loan_amount
              in: body
              type: string
              description: "Requested loan amount."
          call: "policy-admin.create-loan"
          with:
            policy_number: "{{policy_number}}"
            amount: "{{loan_amount}}"
          outputParameters:
            - name: loan_id
              type: string
              mapping: "$.data.loanId"
            - name: interest_rate
              type: string
              mapping: "$.data.interestRate"
            - name: remaining_cash_value
              type: string
              mapping: "$.data.remainingCashValue"
  consumes:
    - type: http
      namespace: policy-admin
      baseUri: "https://api.prudential.com/internal/policy-admin/v2"
      authentication:
        type: bearer
        token: "$secrets.policy_admin_token"
      resources:
        - name: loans
          path: "/policies/{{policy_number}}/loans"
          inputParameters:
            - name: policy_number
              in: path
          operations:
            - name: create-loan
              method: POST

Retrieves policy premium projection data from the Prudential Financial financial services and insurance systems.

naftiko: "0.5"
info:
  label: "Policy Premium Projection"
  description: "Retrieves policy premium projection data from the Prudential Financial financial services and insurance systems."
  tags:
    - policy
    - prudential-financial
    - projection
capability:
  exposes:
    - type: mcp
      namespace: policy
      port: 8080
      tools:
        - name: policy-premium-projection
          description: "Retrieves policy premium projection data from the Prudential Financial financial services and insurance systems."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The input id."
          call: "prudential.policy-premium-projection"
          with:
            input_id: "{{input_id}}"
          outputParameters:
            - name: result
              type: string
              mapping: "$.data"
            - name: status
              type: string
              mapping: "$.status"
  consumes:
    - type: http
      namespace: prudential
      baseUri: "https://api.prudential.com/v2"
      authentication:
        type: bearer
        token: "$secrets.prudential_api_token"
      resources:
        - name: resource
          path: "/policy/premium/projection/{{input_id}}"
          inputParameters:
            - name: input_id
              in: path
          operations:
            - name: policy-premium-projection
              method: GET

Orchestrates policy reinstatement pipeline across financial services and insurance systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Policy Reinstatement Pipeline"
  description: "Orchestrates policy reinstatement pipeline across financial services and insurance systems, coordinating multiple services and notifying stakeholders."
  tags:
    - policy
    - prudential-financial
    - snowflake
    - slack
    - jira
capability:
  exposes:
    - type: mcp
      namespace: policy
      port: 8080
      tools:
        - name: policy-reinstatement-pipeline
          description: "Orchestrates policy reinstatement pipeline across financial services and insurance systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "snowflake.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "slack.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "jira.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: snowflake
      baseUri: "https://prudential.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: snowflake-resource
          path: "/api/policy"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: slack
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token"
      resources:
        - name: slack-resource
          path: "/api/policy"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: jira
      baseUri: "https://prudential.atlassian.net/rest/api/3"
      authentication:
        type: bearer
        token: "$secrets.jira_token"
      resources:
        - name: jira-resource
          path: "/api/policy"
          operations:
            - name: execute-3
              method: POST

Orchestrates policy underwriting decision pipeline across financial services and insurance systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Policy Underwriting Decision Pipeline"
  description: "Orchestrates policy underwriting decision pipeline across financial services and insurance systems, coordinating multiple services and notifying stakeholders."
  tags:
    - policy
    - prudential-financial
    - jira
    - teams
    - workday
capability:
  exposes:
    - type: mcp
      namespace: policy
      port: 8080
      tools:
        - name: policy-underwriting-decision-pipeline
          description: "Orchestrates policy underwriting decision pipeline across financial services and insurance systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "jira.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "teams.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "workday.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: jira
      baseUri: "https://prudential.atlassian.net/rest/api/3"
      authentication:
        type: bearer
        token: "$secrets.jira_token"
      resources:
        - name: jira-resource
          path: "/api/policy"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: teams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.teams_token"
      resources:
        - name: teams-resource
          path: "/api/policy"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: workday
      baseUri: "https://wd5-impl.workday.com/prudential/api/v1"
      authentication:
        type: bearer
        token: "$secrets.workday_token"
      resources:
        - name: workday-resource
          path: "/api/policy"
          operations:
            - name: execute-3
              method: POST

Retrieves policyholder service history data from the Prudential Financial financial services and insurance systems.

naftiko: "0.5"
info:
  label: "Policyholder Service History"
  description: "Retrieves policyholder service history data from the Prudential Financial financial services and insurance systems."
  tags:
    - policyholder
    - prudential-financial
    - history
capability:
  exposes:
    - type: mcp
      namespace: policyholder
      port: 8080
      tools:
        - name: policyholder-service-history
          description: "Retrieves policyholder service history data from the Prudential Financial financial services and insurance systems."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The input id."
          call: "prudential.policyholder-service-history"
          with:
            input_id: "{{input_id}}"
          outputParameters:
            - name: result
              type: string
              mapping: "$.data"
            - name: status
              type: string
              mapping: "$.status"
  consumes:
    - type: http
      namespace: prudential
      baseUri: "https://api.prudential.com/v2"
      authentication:
        type: bearer
        token: "$secrets.prudential_api_token"
      resources:
        - name: resource
          path: "/policyholder/service/history/{{input_id}}"
          inputParameters:
            - name: input_id
              in: path
          operations:
            - name: policyholder-service-history
              method: GET

Rebalances a client's investment portfolio by comparing current allocations from Charles River IMS against the target model, generating trade orders, and notifying the advisor in Salesforce with the rebalance summary.

naftiko: "0.5"
info:
  label: "Portfolio Rebalancing Orchestrator"
  description: "Rebalances a client's investment portfolio by comparing current allocations from Charles River IMS against the target model, generating trade orders, and notifying the advisor in Salesforce with the rebalance summary."
  tags:
    - wealth
    - investment
    - charles-river
    - salesforce
capability:
  exposes:
    - type: mcp
      namespace: portfolio-mgmt
      port: 8080
      tools:
        - name: rebalance-portfolio
          description: "Given a client account ID and target model, compare allocations, generate trades, and notify the advisor."
          inputParameters:
            - name: account_id
              in: body
              type: string
              description: "The investment account identifier."
            - name: model_id
              in: body
              type: string
              description: "The target allocation model identifier."
          steps:
            - name: get-current-positions
              type: call
              call: "charles-river.get-positions"
              with:
                account_id: "{{account_id}}"
            - name: get-target-model
              type: call
              call: "charles-river.get-model"
              with:
                model_id: "{{model_id}}"
            - name: generate-trades
              type: call
              call: "charles-river.create-rebalance-orders"
              with:
                account_id: "{{account_id}}"
                current_positions: "{{get-current-positions.positions}}"
                target_allocations: "{{get-target-model.allocations}}"
            - name: notify-advisor
              type: call
              call: "salesforce.create-task"
              with:
                subject: "Portfolio rebalanced: {{account_id}}"
                description: "{{generate-trades.trade_count}} trades generated. Net cash impact: ${{generate-trades.net_cash}}."
                related_to: "{{account_id}}"
  consumes:
    - type: http
      namespace: charles-river
      baseUri: "https://crd.prudential.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.charles_river_token"
      resources:
        - name: positions
          path: "/accounts/{{account_id}}/positions"
          inputParameters:
            - name: account_id
              in: path
          operations:
            - name: get-positions
              method: GET
        - name: models
          path: "/models/{{model_id}}"
          inputParameters:
            - name: model_id
              in: path
          operations:
            - name: get-model
              method: GET
        - name: rebalance
          path: "/accounts/{{account_id}}/rebalance"
          inputParameters:
            - name: account_id
              in: path
          operations:
            - name: create-rebalance-orders
              method: POST
    - type: http
      namespace: salesforce
      baseUri: "https://prudential.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token"
      resources:
        - name: tasks
          path: "/sobjects/Task"
          operations:
            - name: create-task
              method: POST

Processes a life insurance premium payment through the billing system, accepting payment details and returning confirmation and updated account status.

naftiko: "0.5"
info:
  label: "Premium Payment Processing"
  description: "Processes a life insurance premium payment through the billing system, accepting payment details and returning confirmation and updated account status."
  tags:
    - insurance
    - billing
capability:
  exposes:
    - type: mcp
      namespace: premium-billing
      port: 8080
      tools:
        - name: process-premium-payment
          description: "Process a premium payment for a life insurance policy."
          inputParameters:
            - name: policy_number
              in: body
              type: string
              description: "The policy number."
            - name: amount
              in: body
              type: string
              description: "Payment amount."
            - name: payment_method
              in: body
              type: string
              description: "Payment method (ach, credit_card, check)."
          call: "billing-system.process-payment"
          with:
            policy: "{{policy_number}}"
            amount: "{{amount}}"
            method: "{{payment_method}}"
          outputParameters:
            - name: confirmation
              type: string
              mapping: "$.data.confirmationNumber"
            - name: next_due_date
              type: string
              mapping: "$.data.nextPremiumDueDate"
  consumes:
    - type: http
      namespace: billing-system
      baseUri: "https://api.prudential.com/internal/billing/v2"
      authentication:
        type: bearer
        token: "$secrets.billing_token"
      resources:
        - name: payments
          path: "/payments"
          operations:
            - name: process-payment
              method: POST

Compiles quarterly earnings data by pulling financial results from SAP, investment performance from PGIM, and policy metrics from the admin systems, then pushes the compiled data to Power BI and notifies IR team in Microsoft Teams.

naftiko: "0.5"
info:
  label: "Quarterly Earnings Reporting Orchestrator"
  description: "Compiles quarterly earnings data by pulling financial results from SAP, investment performance from PGIM, and policy metrics from the admin systems, then pushes the compiled data to Power BI and notifies IR team in Microsoft Teams."
  tags:
    - finance
    - reporting
    - sap
    - pgim
    - power-bi
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: earnings-reporting
      port: 8080
      tools:
        - name: compile-quarterly-earnings
          description: "Given a quarter, aggregate financial, investment, and policy data, push to Power BI, and notify the IR team."
          inputParameters:
            - name: quarter
              in: body
              type: string
              description: "Quarter in YYYY-Q# format."
          steps:
            - name: get-financials
              type: call
              call: "sap.get-quarterly-results"
              with:
                period: "{{quarter}}"
            - name: get-investment-performance
              type: call
              call: "pgim-platform.get-aum-summary"
              with:
                period: "{{quarter}}"
            - name: push-to-powerbi
              type: call
              call: "powerbi.push-rows"
              with:
                dataset_id: "quarterly_earnings"
                rows_revenue: "{{get-financials.total_revenue}}"
                rows_net_income: "{{get-financials.net_income}}"
                rows_aum: "{{get-investment-performance.total_aum}}"
            - name: notify-ir
              type: call
              call: "msteams.send-message"
              with:
                channel_id: "investor-relations"
                text: "Q{{quarter}} earnings data compiled. Revenue: ${{get-financials.total_revenue}}M, Net Income: ${{get-financials.net_income}}M, AUM: ${{get-investment-performance.total_aum}}B. Dashboard updated."
  consumes:
    - type: http
      namespace: sap
      baseUri: "https://prudential-s4.sap.com/sap/opu/odata/sap/FI_GL_SRV"
      authentication:
        type: basic
        username: "$secrets.sap_user"
        password: "$secrets.sap_password"
      resources:
        - name: results
          path: "/A_GLAccountBalance"
          inputParameters:
            - name: period
              in: query
          operations:
            - name: get-quarterly-results
              method: GET
    - type: http
      namespace: pgim-platform
      baseUri: "https://api.pgim.com/platform/v2"
      authentication:
        type: bearer
        token: "$secrets.pgim_platform_token"
      resources:
        - name: aum
          path: "/aum-summary"
          inputParameters:
            - name: period
              in: query
          operations:
            - name: get-aum-summary
              method: GET
    - 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}}/tables/Earnings/rows"
          inputParameters:
            - name: dataset_id
              in: path
          operations:
            - name: push-rows
              method: POST
    - type: http
      namespace: msteams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: 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

Orchestrates regulatory exam preparation pipeline across financial services and insurance systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Regulatory Exam Preparation Pipeline"
  description: "Orchestrates regulatory exam preparation pipeline across financial services and insurance systems, coordinating multiple services and notifying stakeholders."
  tags:
    - regulatory
    - prudential-financial
    - jira
    - teams
    - workday
capability:
  exposes:
    - type: mcp
      namespace: regulatory
      port: 8080
      tools:
        - name: regulatory-exam-preparation-pipeline
          description: "Orchestrates regulatory exam preparation pipeline across financial services and insurance systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "jira.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "teams.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "workday.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: jira
      baseUri: "https://prudential.atlassian.net/rest/api/3"
      authentication:
        type: bearer
        token: "$secrets.jira_token"
      resources:
        - name: jira-resource
          path: "/api/regulatory"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: teams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.teams_token"
      resources:
        - name: teams-resource
          path: "/api/regulatory"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: workday
      baseUri: "https://wd5-impl.workday.com/prudential/api/v1"
      authentication:
        type: bearer
        token: "$secrets.workday_token"
      resources:
        - name: workday-resource
          path: "/api/regulatory"
          operations:
            - name: execute-3
              method: POST

Orchestrates regulatory filing automation pipeline across financial services and insurance systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Regulatory Filing Automation Pipeline"
  description: "Orchestrates regulatory filing automation pipeline across financial services and insurance systems, coordinating multiple services and notifying stakeholders."
  tags:
    - regulatory
    - prudential-financial
    - workday
    - bloomberg
    - tableau
capability:
  exposes:
    - type: mcp
      namespace: regulatory
      port: 8080
      tools:
        - name: regulatory-filing-automation-pipeline
          description: "Orchestrates regulatory filing automation pipeline across financial services and insurance systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "workday.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "bloomberg.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "tableau.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: workday
      baseUri: "https://wd5-impl.workday.com/prudential/api/v1"
      authentication:
        type: bearer
        token: "$secrets.workday_token"
      resources:
        - name: workday-resource
          path: "/api/regulatory"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: bloomberg
      baseUri: "https://api.bloomberg.com/v1"
      authentication:
        type: bearer
        token: "$secrets.bloomberg_token"
      resources:
        - name: bloomberg-resource
          path: "/api/regulatory"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: tableau
      baseUri: "https://tableau.prudential.com/api/3.19"
      authentication:
        type: bearer
        token: "$secrets.tableau_token"
      resources:
        - name: tableau-resource
          path: "/api/regulatory"
          operations:
            - name: execute-3
              method: POST

Queries the status of an insurance regulatory filing from the compliance tracking system, returning filing type, state, status, submission date, and approval date.

naftiko: "0.5"
info:
  label: "Regulatory Filing Status Check"
  description: "Queries the status of an insurance regulatory filing from the compliance tracking system, returning filing type, state, status, submission date, and approval date."
  tags:
    - compliance
    - regulatory
capability:
  exposes:
    - type: mcp
      namespace: compliance
      port: 8080
      tools:
        - name: get-filing-status
          description: "Check the status of a regulatory filing."
          inputParameters:
            - name: filing_id
              in: body
              type: string
              description: "The regulatory filing identifier."
          call: "compliance-system.get-filing"
          with:
            filing_id: "{{filing_id}}"
          outputParameters:
            - name: filing_type
              type: string
              mapping: "$.data.filingType"
            - name: state
              type: string
              mapping: "$.data.state"
            - name: status
              type: string
              mapping: "$.data.status"
            - name: submission_date
              type: string
              mapping: "$.data.submissionDate"
            - name: approval_date
              type: string
              mapping: "$.data.approvalDate"
  consumes:
    - type: http
      namespace: compliance-system
      baseUri: "https://api.prudential.com/internal/compliance/v1"
      authentication:
        type: bearer
        token: "$secrets.compliance_token"
      resources:
        - name: filings
          path: "/filings/{{filing_id}}"
          inputParameters:
            - name: filing_id
              in: path
          operations:
            - name: get-filing
              method: GET

Retrieves reinsurance treaty details from the reinsurance management system, returning treaty type, retention limit, ceded percentage, and reinsurer name.

naftiko: "0.5"
info:
  label: "Reinsurance Treaty Lookup"
  description: "Retrieves reinsurance treaty details from the reinsurance management system, returning treaty type, retention limit, ceded percentage, and reinsurer name."
  tags:
    - insurance
    - reinsurance
    - compliance
capability:
  exposes:
    - type: mcp
      namespace: reinsurance
      port: 8080
      tools:
        - name: get-treaty-details
          description: "Look up reinsurance treaty details by treaty number."
          inputParameters:
            - name: treaty_number
              in: body
              type: string
              description: "The reinsurance treaty number."
          call: "reinsurance-system.get-treaty"
          with:
            treaty_number: "{{treaty_number}}"
          outputParameters:
            - name: treaty_type
              type: string
              mapping: "$.data.treatyType"
            - name: retention_limit
              type: string
              mapping: "$.data.retentionLimit"
            - name: ceded_percentage
              type: string
              mapping: "$.data.cededPercentage"
            - name: reinsurer
              type: string
              mapping: "$.data.reinsurerName"
  consumes:
    - type: http
      namespace: reinsurance-system
      baseUri: "https://api.prudential.com/internal/reinsurance/v1"
      authentication:
        type: bearer
        token: "$secrets.reinsurance_token"
      resources:
        - name: treaties
          path: "/treaties/{{treaty_number}}"
          inputParameters:
            - name: treaty_number
              in: path
          operations:
            - name: get-treaty
              method: GET

Retrieves a participant's retirement account balance from the PGIM recordkeeping system, returning total balance, vested balance, investment allocations, and last contribution date.

naftiko: "0.5"
info:
  label: "Retirement Account Balance Lookup"
  description: "Retrieves a participant's retirement account balance from the PGIM recordkeeping system, returning total balance, vested balance, investment allocations, and last contribution date."
  tags:
    - retirement
    - account
    - pgim
capability:
  exposes:
    - type: mcp
      namespace: retirement
      port: 8080
      tools:
        - name: get-retirement-balance
          description: "Look up a retirement plan participant's account balance."
          inputParameters:
            - name: participant_id
              in: body
              type: string
              description: "The participant identifier."
            - name: plan_id
              in: body
              type: string
              description: "The retirement plan identifier."
          call: "pgim-rk.get-account"
          with:
            participant_id: "{{participant_id}}"
            plan_id: "{{plan_id}}"
          outputParameters:
            - name: total_balance
              type: string
              mapping: "$.data.totalBalance"
            - name: vested_balance
              type: string
              mapping: "$.data.vestedBalance"
            - name: allocations
              type: string
              mapping: "$.data.investmentAllocations"
            - name: last_contribution
              type: string
              mapping: "$.data.lastContributionDate"
  consumes:
    - type: http
      namespace: pgim-rk
      baseUri: "https://api.prudential.com/internal/retirement/v2"
      authentication:
        type: bearer
        token: "$secrets.pgim_rk_token"
      resources:
        - name: accounts
          path: "/plans/{{plan_id}}/participants/{{participant_id}}/account"
          inputParameters:
            - name: plan_id
              in: path
            - name: participant_id
              in: path
          operations:
            - name: get-account
              method: GET

Orchestrates retirement distribution tax pipeline across financial services and insurance systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Retirement Distribution Tax Pipeline"
  description: "Orchestrates retirement distribution tax pipeline across financial services and insurance systems, coordinating multiple services and notifying stakeholders."
  tags:
    - retirement
    - prudential-financial
    - slack
    - jira
    - teams
capability:
  exposes:
    - type: mcp
      namespace: retirement
      port: 8080
      tools:
        - name: retirement-distribution-tax-pipeline
          description: "Orchestrates retirement distribution tax pipeline across financial services and insurance systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "slack.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "jira.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "teams.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: slack
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token"
      resources:
        - name: slack-resource
          path: "/api/retirement"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: jira
      baseUri: "https://prudential.atlassian.net/rest/api/3"
      authentication:
        type: bearer
        token: "$secrets.jira_token"
      resources:
        - name: jira-resource
          path: "/api/retirement"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: teams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.teams_token"
      resources:
        - name: teams-resource
          path: "/api/retirement"
          operations:
            - name: execute-3
              method: POST

Launches a retirement plan enrollment campaign by pulling eligible employees from the plan sponsor's HR feed, sending enrollment invitation emails via Salesforce Marketing Cloud, and tracking enrollment progress in the recordkeeping system.

naftiko: "0.5"
info:
  label: "Retirement Enrollment Campaign Orchestrator"
  description: "Launches a retirement plan enrollment campaign by pulling eligible employees from the plan sponsor's HR feed, sending enrollment invitation emails via Salesforce Marketing Cloud, and tracking enrollment progress in the recordkeeping system."
  tags:
    - retirement
    - enrollment
    - pgim
    - salesforce-marketing-cloud
capability:
  exposes:
    - type: mcp
      namespace: retirement-enrollment
      port: 8080
      tools:
        - name: launch-enrollment-campaign
          description: "Given a plan ID and enrollment window, pull eligible employees, send invitations, and track progress."
          inputParameters:
            - name: plan_id
              in: body
              type: string
              description: "The retirement plan identifier."
            - name: enrollment_start
              in: body
              type: string
              description: "Enrollment start date in YYYY-MM-DD format."
            - name: enrollment_end
              in: body
              type: string
              description: "Enrollment end date in YYYY-MM-DD format."
          steps:
            - name: get-eligible-employees
              type: call
              call: "pgim-rk.get-eligible-participants"
              with:
                plan_id: "{{plan_id}}"
            - name: send-invitations
              type: call
              call: "sfmc.send-batch-email"
              with:
                template: "enrollment_invitation"
                recipients: "{{get-eligible-employees.emails}}"
                merge_plan: "{{plan_id}}"
                merge_start: "{{enrollment_start}}"
                merge_end: "{{enrollment_end}}"
            - name: create-tracking
              type: call
              call: "pgim-rk.create-enrollment-window"
              with:
                plan_id: "{{plan_id}}"
                start_date: "{{enrollment_start}}"
                end_date: "{{enrollment_end}}"
                eligible_count: "{{get-eligible-employees.count}}"
  consumes:
    - type: http
      namespace: pgim-rk
      baseUri: "https://api.prudential.com/internal/retirement/v2"
      authentication:
        type: bearer
        token: "$secrets.pgim_rk_token"
      resources:
        - name: eligible
          path: "/plans/{{plan_id}}/eligible-participants"
          inputParameters:
            - name: plan_id
              in: path
          operations:
            - name: get-eligible-participants
              method: GET
        - name: enrollment-windows
          path: "/plans/{{plan_id}}/enrollment-windows"
          inputParameters:
            - name: plan_id
              in: path
          operations:
            - name: create-enrollment-window
              method: POST
    - type: http
      namespace: sfmc
      baseUri: "https://mc.prudential.com/rest"
      authentication:
        type: bearer
        token: "$secrets.sfmc_token"
      resources:
        - name: batch-emails
          path: "/messaging/v1/email/messages/batch"
          operations:
            - name: send-batch-email
              method: POST

Orchestrates retirement enrollment orchestrator across financial services and insurance systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Retirement Enrollment Orchestrator"
  description: "Orchestrates retirement enrollment orchestrator across financial services and insurance systems, coordinating multiple services and notifying stakeholders."
  tags:
    - retirement
    - prudential-financial
    - servicenow
    - snowflake
    - slack
capability:
  exposes:
    - type: mcp
      namespace: retirement
      port: 8080
      tools:
        - name: retirement-enrollment-orchestrator
          description: "Orchestrates retirement enrollment orchestrator across financial services and insurance systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "servicenow.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "snowflake.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "slack.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: servicenow
      baseUri: "https://prudential.service-now.com/api/now"
      authentication:
        type: bearer
        token: "$secrets.servicenow_token"
      resources:
        - name: servicenow-resource
          path: "/api/retirement"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: snowflake
      baseUri: "https://prudential.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: snowflake-resource
          path: "/api/retirement"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: slack
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token"
      resources:
        - name: slack-resource
          path: "/api/retirement"
          operations:
            - name: execute-3
              method: POST

Calculates a projected retirement income estimate for a plan participant based on current balance, contribution rate, expected returns, and retirement age.

naftiko: "0.5"
info:
  label: "Retirement Income Projection"
  description: "Calculates a projected retirement income estimate for a plan participant based on current balance, contribution rate, expected returns, and retirement age."
  tags:
    - retirement
    - planning
    - pgim
capability:
  exposes:
    - type: mcp
      namespace: retirement-planning
      port: 8080
      tools:
        - name: project-retirement-income
          description: "Calculate projected retirement income for a participant."
          inputParameters:
            - name: participant_id
              in: body
              type: string
              description: "The participant identifier."
            - name: plan_id
              in: body
              type: string
              description: "The retirement plan identifier."
            - name: retirement_age
              in: body
              type: string
              description: "Expected retirement age."
          call: "pgim-rk.project-income"
          with:
            participant_id: "{{participant_id}}"
            plan_id: "{{plan_id}}"
            retirement_age: "{{retirement_age}}"
          outputParameters:
            - name: projected_monthly_income
              type: string
              mapping: "$.data.projectedMonthlyIncome"
            - name: projected_balance
              type: string
              mapping: "$.data.projectedBalanceAtRetirement"
            - name: income_replacement_ratio
              type: string
              mapping: "$.data.incomeReplacementRatio"
  consumes:
    - type: http
      namespace: pgim-rk
      baseUri: "https://api.prudential.com/internal/retirement/v2"
      authentication:
        type: bearer
        token: "$secrets.pgim_rk_token"
      resources:
        - name: projections
          path: "/plans/{{plan_id}}/participants/{{participant_id}}/income-projection"
          inputParameters:
            - name: plan_id
              in: path
            - name: participant_id
              in: path
          operations:
            - name: project-income
              method: POST

Orchestrates retirement plan audit pipeline across financial services and insurance systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Retirement Plan Audit Pipeline"
  description: "Orchestrates retirement plan audit pipeline across financial services and insurance systems, coordinating multiple services and notifying stakeholders."
  tags:
    - retirement
    - prudential-financial
    - tableau
    - prudential
    - salesforce
capability:
  exposes:
    - type: mcp
      namespace: retirement
      port: 8080
      tools:
        - name: retirement-plan-audit-pipeline
          description: "Orchestrates retirement plan audit pipeline across financial services and insurance systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "tableau.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "prudential.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "salesforce.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: tableau
      baseUri: "https://tableau.prudential.com/api/3.19"
      authentication:
        type: bearer
        token: "$secrets.tableau_token"
      resources:
        - name: tableau-resource
          path: "/api/retirement"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: prudential
      baseUri: "https://api.prudential.com/v2"
      authentication:
        type: bearer
        token: "$secrets.prudential_api_token"
      resources:
        - name: prudential-resource
          path: "/api/retirement"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: salesforce
      baseUri: "https://prudential.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_access_token"
      resources:
        - name: salesforce-resource
          path: "/api/retirement"
          operations:
            - name: execute-3
              method: POST

Runs annual retirement plan compliance tests by pulling plan data from the recordkeeping system, running ADP/ACP tests through the compliance engine, and filing results with the plan sponsor via Salesforce and SharePoint.

naftiko: "0.5"
info:
  label: "Retirement Plan Compliance Testing Orchestrator"
  description: "Runs annual retirement plan compliance tests by pulling plan data from the recordkeeping system, running ADP/ACP tests through the compliance engine, and filing results with the plan sponsor via Salesforce and SharePoint."
  tags:
    - retirement
    - compliance
    - pgim
    - salesforce
    - sharepoint
capability:
  exposes:
    - type: mcp
      namespace: plan-compliance
      port: 8080
      tools:
        - name: run-compliance-tests
          description: "Given a plan ID and test year, pull plan data, run ADP/ACP tests, and share results."
          inputParameters:
            - name: plan_id
              in: body
              type: string
              description: "The retirement plan identifier."
            - name: test_year
              in: body
              type: string
              description: "The compliance testing year."
          steps:
            - name: get-plan-data
              type: call
              call: "pgim-rk.get-plan-census"
              with:
                plan_id: "{{plan_id}}"
                year: "{{test_year}}"
            - name: run-tests
              type: call
              call: "compliance-engine.run-adp-acp"
              with:
                plan_id: "{{plan_id}}"
                census_data: "{{get-plan-data.census}}"
                year: "{{test_year}}"
            - name: upload-results
              type: call
              call: "sharepoint.upload-file"
              with:
                site_id: "retirement_compliance"
                file_path: "ComplianceTests/{{plan_id}}/{{test_year}}_results.pdf"
                content: "{{run-tests.report}}"
            - name: notify-sponsor
              type: call
              call: "salesforce.create-task"
              with:
                subject: "Plan {{plan_id}} compliance test results for {{test_year}}"
                description: "ADP test: {{run-tests.adp_result}}. ACP test: {{run-tests.acp_result}}. Report: {{upload-results.url}}"
  consumes:
    - type: http
      namespace: pgim-rk
      baseUri: "https://api.prudential.com/internal/retirement/v2"
      authentication:
        type: bearer
        token: "$secrets.pgim_rk_token"
      resources:
        - name: census
          path: "/plans/{{plan_id}}/census"
          inputParameters:
            - name: plan_id
              in: path
            - name: year
              in: query
          operations:
            - name: get-plan-census
              method: GET
    - type: http
      namespace: compliance-engine
      baseUri: "https://api.prudential.com/internal/plan-compliance/v1"
      authentication:
        type: bearer
        token: "$secrets.plan_compliance_token"
      resources:
        - name: tests
          path: "/adp-acp-tests"
          operations:
            - name: run-adp-acp
              method: POST
    - type: http
      namespace: sharepoint
      baseUri: "https://graph.microsoft.com/v1.0/sites"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: files
          path: "/{{site_id}}/drive/root:/{{file_path}}:/content"
          inputParameters:
            - name: site_id
              in: path
            - name: file_path
              in: path
          operations:
            - name: upload-file
              method: PUT
    - type: http
      namespace: salesforce
      baseUri: "https://prudential.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token"
      resources:
        - name: tasks
          path: "/sobjects/Task"
          operations:
            - name: create-task
              method: POST

Orchestrates retirement plan correction pipeline across financial services and insurance systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Retirement Plan Correction Pipeline"
  description: "Orchestrates retirement plan correction pipeline across financial services and insurance systems, coordinating multiple services and notifying stakeholders."
  tags:
    - retirement
    - prudential-financial
    - prudential
    - salesforce
    - servicenow
capability:
  exposes:
    - type: mcp
      namespace: retirement
      port: 8080
      tools:
        - name: retirement-plan-correction-pipeline
          description: "Orchestrates retirement plan correction pipeline across financial services and insurance systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "prudential.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "salesforce.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "servicenow.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: prudential
      baseUri: "https://api.prudential.com/v2"
      authentication:
        type: bearer
        token: "$secrets.prudential_api_token"
      resources:
        - name: prudential-resource
          path: "/api/retirement"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: salesforce
      baseUri: "https://prudential.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_access_token"
      resources:
        - name: salesforce-resource
          path: "/api/retirement"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: servicenow
      baseUri: "https://prudential.service-now.com/api/now"
      authentication:
        type: bearer
        token: "$secrets.servicenow_token"
      resources:
        - name: servicenow-resource
          path: "/api/retirement"
          operations:
            - name: execute-3
              method: POST

Processes a retirement plan distribution request by verifying the participant's eligibility, calculating tax withholding, creating the payment in the recordkeeping system, and sending a confirmation via Salesforce Marketing Cloud.

naftiko: "0.5"
info:
  label: "Retirement Plan Distribution Orchestrator"
  description: "Processes a retirement plan distribution request by verifying the participant's eligibility, calculating tax withholding, creating the payment in the recordkeeping system, and sending a confirmation via Salesforce Marketing Cloud."
  tags:
    - retirement
    - distribution
    - pgim
    - salesforce-marketing-cloud
capability:
  exposes:
    - type: mcp
      namespace: retirement-distributions
      port: 8080
      tools:
        - name: process-distribution
          description: "Given a participant ID, plan ID, and distribution amount, verify eligibility, calculate taxes, process payment, and send confirmation."
          inputParameters:
            - name: participant_id
              in: body
              type: string
              description: "The participant identifier."
            - name: plan_id
              in: body
              type: string
              description: "The retirement plan identifier."
            - name: distribution_amount
              in: body
              type: string
              description: "The requested distribution amount."
            - name: distribution_type
              in: body
              type: string
              description: "Type of distribution (hardship, retirement, rollover, rmd)."
          steps:
            - name: verify-eligibility
              type: call
              call: "pgim-rk.check-eligibility"
              with:
                participant_id: "{{participant_id}}"
                plan_id: "{{plan_id}}"
                type: "{{distribution_type}}"
            - name: calculate-taxes
              type: call
              call: "tax-engine.calculate-withholding"
              with:
                amount: "{{distribution_amount}}"
                type: "{{distribution_type}}"
                participant_state: "{{verify-eligibility.state}}"
            - name: process-payment
              type: call
              call: "pgim-rk.create-distribution"
              with:
                participant_id: "{{participant_id}}"
                plan_id: "{{plan_id}}"
                gross_amount: "{{distribution_amount}}"
                federal_withholding: "{{calculate-taxes.federal}}"
                state_withholding: "{{calculate-taxes.state}}"
            - name: send-confirmation
              type: call
              call: "sfmc.send-email"
              with:
                template: "distribution_confirmation"
                to: "{{verify-eligibility.email}}"
                merge_amount: "{{distribution_amount}}"
                merge_net: "{{process-payment.net_amount}}"
  consumes:
    - type: http
      namespace: pgim-rk
      baseUri: "https://api.prudential.com/internal/retirement/v2"
      authentication:
        type: bearer
        token: "$secrets.pgim_rk_token"
      resources:
        - name: eligibility
          path: "/plans/{{plan_id}}/participants/{{participant_id}}/eligibility"
          inputParameters:
            - name: plan_id
              in: path
            - name: participant_id
              in: path
          operations:
            - name: check-eligibility
              method: GET
        - name: distributions
          path: "/plans/{{plan_id}}/participants/{{participant_id}}/distributions"
          inputParameters:
            - name: plan_id
              in: path
            - name: participant_id
              in: path
          operations:
            - name: create-distribution
              method: POST
    - type: http
      namespace: tax-engine
      baseUri: "https://api.prudential.com/internal/tax/v1"
      authentication:
        type: bearer
        token: "$secrets.tax_engine_token"
      resources:
        - name: withholding
          path: "/withholding-calculations"
          operations:
            - name: calculate-withholding
              method: POST
    - type: http
      namespace: sfmc
      baseUri: "https://mc.prudential.com/rest"
      authentication:
        type: bearer
        token: "$secrets.sfmc_token"
      resources:
        - name: emails
          path: "/messaging/v1/email/messages"
          operations:
            - name: send-email
              method: POST

Retrieves retirement plan fee disclosure data from the Prudential Financial financial services and insurance systems.

naftiko: "0.5"
info:
  label: "Retirement Plan Fee Disclosure"
  description: "Retrieves retirement plan fee disclosure data from the Prudential Financial financial services and insurance systems."
  tags:
    - retirement
    - prudential-financial
    - disclosure
capability:
  exposes:
    - type: mcp
      namespace: retirement
      port: 8080
      tools:
        - name: retirement-plan-fee-disclosure
          description: "Retrieves retirement plan fee disclosure data from the Prudential Financial financial services and insurance systems."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The input id."
          call: "prudential.retirement-plan-fee-disclosure"
          with:
            input_id: "{{input_id}}"
          outputParameters:
            - name: result
              type: string
              mapping: "$.data"
            - name: status
              type: string
              mapping: "$.status"
  consumes:
    - type: http
      namespace: prudential
      baseUri: "https://api.prudential.com/v2"
      authentication:
        type: bearer
        token: "$secrets.prudential_api_token"
      resources:
        - name: resource
          path: "/retirement/plan/fee/disclosure/{{input_id}}"
          inputParameters:
            - name: input_id
              in: path
          operations:
            - name: retirement-plan-fee-disclosure
              method: GET

Orchestrates retirement plan forfeit reallocation pipeline across financial services and insurance systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Retirement Plan Forfeit Reallocation Pipeline"
  description: "Orchestrates retirement plan forfeit reallocation pipeline across financial services and insurance systems, coordinating multiple services and notifying stakeholders."
  tags:
    - retirement
    - prudential-financial
    - salesforce
    - servicenow
    - snowflake
capability:
  exposes:
    - type: mcp
      namespace: retirement
      port: 8080
      tools:
        - name: retirement-plan-forfeit-reallocation-pipeline
          description: "Orchestrates retirement plan forfeit reallocation pipeline across financial services and insurance systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "salesforce.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "servicenow.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "snowflake.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: salesforce
      baseUri: "https://prudential.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_access_token"
      resources:
        - name: salesforce-resource
          path: "/api/retirement"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: servicenow
      baseUri: "https://prudential.service-now.com/api/now"
      authentication:
        type: bearer
        token: "$secrets.servicenow_token"
      resources:
        - name: servicenow-resource
          path: "/api/retirement"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: snowflake
      baseUri: "https://prudential.snowflakecomputing.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.snowflake_token"
      resources:
        - name: snowflake-resource
          path: "/api/retirement"
          operations:
            - name: execute-3
              method: POST

Retrieves retirement plan hardship eligibility data from the Prudential Financial financial services and insurance systems.

naftiko: "0.5"
info:
  label: "Retirement Plan Hardship Eligibility"
  description: "Retrieves retirement plan hardship eligibility data from the Prudential Financial financial services and insurance systems."
  tags:
    - retirement
    - prudential-financial
    - eligibility
capability:
  exposes:
    - type: mcp
      namespace: retirement
      port: 8080
      tools:
        - name: retirement-plan-hardship-eligibility
          description: "Retrieves retirement plan hardship eligibility data from the Prudential Financial financial services and insurance systems."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The input id."
          call: "prudential.retirement-plan-hardship-eligibility"
          with:
            input_id: "{{input_id}}"
          outputParameters:
            - name: result
              type: string
              mapping: "$.data"
            - name: status
              type: string
              mapping: "$.status"
  consumes:
    - type: http
      namespace: prudential
      baseUri: "https://api.prudential.com/v2"
      authentication:
        type: bearer
        token: "$secrets.prudential_api_token"
      resources:
        - name: resource
          path: "/retirement/plan/hardship/eligibility/{{input_id}}"
          inputParameters:
            - name: input_id
              in: path
          operations:
            - name: retirement-plan-hardship-eligibility
              method: GET

Processes a 401(k) plan loan by checking loan eligibility and maximum, creating the loan in the recordkeeping system, and sending confirmation to the participant.

naftiko: "0.5"
info:
  label: "Retirement Plan Loan Processing"
  description: "Processes a 401(k) plan loan by checking loan eligibility and maximum, creating the loan in the recordkeeping system, and sending confirmation to the participant."
  tags:
    - retirement
    - loans
    - pgim
capability:
  exposes:
    - type: mcp
      namespace: retirement-loans
      port: 8080
      tools:
        - name: process-plan-loan
          description: "Given participant and loan details, check eligibility, create loan, and confirm."
          inputParameters:
            - name: participant_id
              in: body
              type: string
              description: "The participant identifier."
            - name: plan_id
              in: body
              type: string
              description: "The retirement plan identifier."
            - name: loan_amount
              in: body
              type: string
              description: "Requested loan amount."
          steps:
            - name: check-eligibility
              type: call
              call: "pgim-rk.check-loan-eligibility"
              with:
                participant_id: "{{participant_id}}"
                plan_id: "{{plan_id}}"
            - name: create-loan
              type: call
              call: "pgim-rk.create-plan-loan"
              with:
                participant_id: "{{participant_id}}"
                plan_id: "{{plan_id}}"
                amount: "{{loan_amount}}"
            - name: send-confirmation
              type: call
              call: "sfmc.send-email"
              with:
                template: "plan_loan_confirmation"
                to: "{{check-eligibility.email}}"
                merge_amount: "{{loan_amount}}"
                merge_rate: "{{create-loan.interest_rate}}"
  consumes:
    - type: http
      namespace: pgim-rk
      baseUri: "https://api.prudential.com/internal/retirement/v2"
      authentication:
        type: bearer
        token: "$secrets.pgim_rk_token"
      resources:
        - name: loan-eligibility
          path: "/plans/{{plan_id}}/participants/{{participant_id}}/loan-eligibility"
          inputParameters:
            - name: plan_id
              in: path
            - name: participant_id
              in: path
          operations:
            - name: check-loan-eligibility
              method: GET
        - name: loans
          path: "/plans/{{plan_id}}/participants/{{participant_id}}/loans"
          inputParameters:
            - name: plan_id
              in: path
            - name: participant_id
              in: path
          operations:
            - name: create-plan-loan
              method: POST
    - type: http
      namespace: sfmc
      baseUri: "https://mc.prudential.com/rest"
      authentication:
        type: bearer
        token: "$secrets.sfmc_token"
      resources:
        - name: emails
          path: "/messaging/v1/email/messages"
          operations:
            - name: send-email
              method: POST

Processes a 401(k) rollover by verifying the source plan, initiating the transfer through the custodian, updating the participant's account in the recordkeeping system, and sending confirmation via email.

naftiko: "0.5"
info:
  label: "Retirement Plan Rollover Orchestrator"
  description: "Processes a 401(k) rollover by verifying the source plan, initiating the transfer through the custodian, updating the participant's account in the recordkeeping system, and sending confirmation via email."
  tags:
    - retirement
    - rollover
    - pgim
    - salesforce-marketing-cloud
capability:
  exposes:
    - type: mcp
      namespace: retirement-rollovers
      port: 8080
      tools:
        - name: process-rollover
          description: "Given participant and source plan details, verify, initiate transfer, update account, and confirm."
          inputParameters:
            - name: participant_id
              in: body
              type: string
              description: "The participant identifier."
            - name: target_plan_id
              in: body
              type: string
              description: "The Prudential target plan identifier."
            - name: source_plan_name
              in: body
              type: string
              description: "Name of the source plan/provider."
            - name: rollover_amount
              in: body
              type: string
              description: "Amount to roll over."
          steps:
            - name: verify-participant
              type: call
              call: "pgim-rk.get-account"
              with:
                participant_id: "{{participant_id}}"
                plan_id: "{{target_plan_id}}"
            - name: initiate-transfer
              type: call
              call: "custodian.initiate-rollover"
              with:
                target_account: "{{participant_id}}"
                source_plan: "{{source_plan_name}}"
                amount: "{{rollover_amount}}"
            - name: update-account
              type: call
              call: "pgim-rk.record-rollover"
              with:
                participant_id: "{{participant_id}}"
                plan_id: "{{target_plan_id}}"
                amount: "{{rollover_amount}}"
                transfer_id: "{{initiate-transfer.transfer_id}}"
            - name: send-confirmation
              type: call
              call: "sfmc.send-email"
              with:
                template: "rollover_confirmation"
                to: "{{verify-participant.email}}"
                merge_amount: "{{rollover_amount}}"
                merge_source: "{{source_plan_name}}"
  consumes:
    - type: http
      namespace: pgim-rk
      baseUri: "https://api.prudential.com/internal/retirement/v2"
      authentication:
        type: bearer
        token: "$secrets.pgim_rk_token"
      resources:
        - name: accounts
          path: "/plans/{{plan_id}}/participants/{{participant_id}}/account"
          inputParameters:
            - name: plan_id
              in: path
            - name: participant_id
              in: path
          operations:
            - name: get-account
              method: GET
        - name: rollovers
          path: "/plans/{{plan_id}}/participants/{{participant_id}}/rollovers"
          inputParameters:
            - name: plan_id
              in: path
            - name: participant_id
              in: path
          operations:
            - name: record-rollover
              method: POST
    - type: http
      namespace: custodian
      baseUri: "https://api.prudential.com/internal/custody/v1"
      authentication:
        type: bearer
        token: "$secrets.custodian_token"
      resources:
        - name: rollovers
          path: "/rollovers"
          operations:
            - name: initiate-rollover
              method: POST
    - type: http
      namespace: sfmc
      baseUri: "https://mc.prudential.com/rest"
      authentication:
        type: bearer
        token: "$secrets.sfmc_token"
      resources:
        - name: emails
          path: "/messaging/v1/email/messages"
          operations:
            - name: send-email
              method: POST

Retrieves retirement plan vesting schedule data from the Prudential Financial financial services and insurance systems.

naftiko: "0.5"
info:
  label: "Retirement Plan Vesting Schedule"
  description: "Retrieves retirement plan vesting schedule data from the Prudential Financial financial services and insurance systems."
  tags:
    - retirement
    - prudential-financial
    - schedule
capability:
  exposes:
    - type: mcp
      namespace: retirement
      port: 8080
      tools:
        - name: retirement-plan-vesting-schedule
          description: "Retrieves retirement plan vesting schedule data from the Prudential Financial financial services and insurance systems."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The input id."
          call: "prudential.retirement-plan-vesting-schedule"
          with:
            input_id: "{{input_id}}"
          outputParameters:
            - name: result
              type: string
              mapping: "$.data"
            - name: status
              type: string
              mapping: "$.status"
  consumes:
    - type: http
      namespace: prudential
      baseUri: "https://api.prudential.com/v2"
      authentication:
        type: bearer
        token: "$secrets.prudential_api_token"
      resources:
        - name: resource
          path: "/retirement/plan/vesting/schedule/{{input_id}}"
          inputParameters:
            - name: input_id
              in: path
          operations:
            - name: retirement-plan-vesting-schedule
              method: GET

Checks the payment status of a vendor invoice in SAP, returning payment date, amount, payment method, and clearing document number.

naftiko: "0.5"
info:
  label: "SAP Vendor Payment Status"
  description: "Checks the payment status of a vendor invoice in SAP, returning payment date, amount, payment method, and clearing document number."
  tags:
    - finance
    - sap
    - accounts-payable
capability:
  exposes:
    - type: mcp
      namespace: finance
      port: 8080
      tools:
        - name: get-vendor-payment-status
          description: "Look up vendor payment status from SAP."
          inputParameters:
            - name: invoice_number
              in: body
              type: string
              description: "The SAP vendor invoice document number."
          call: "sap.get-payment-status"
          with:
            document_number: "{{invoice_number}}"
          outputParameters:
            - name: payment_date
              type: string
              mapping: "$.d.PaymentDate"
            - name: amount
              type: string
              mapping: "$.d.Amount"
            - name: payment_method
              type: string
              mapping: "$.d.PaymentMethod"
            - name: clearing_doc
              type: string
              mapping: "$.d.ClearingDocument"
  consumes:
    - type: http
      namespace: sap
      baseUri: "https://prudential-s4.sap.com/sap/opu/odata/sap/FI_AP_SRV"
      authentication:
        type: basic
        username: "$secrets.sap_user"
        password: "$secrets.sap_password"
      resources:
        - name: payments
          path: "/A_VendorPayment('{{document_number}}')"
          inputParameters:
            - name: document_number
              in: path
          operations:
            - name: get-payment-status
              method: GET

Runs a suitability review for an annuity or investment sale by pulling the client's financial profile from Salesforce, comparing against the product requirements, and logging the suitability determination in the compliance system.

naftiko: "0.5"
info:
  label: "Suitability Review Orchestrator"
  description: "Runs a suitability review for an annuity or investment sale by pulling the client's financial profile from Salesforce, comparing against the product requirements, and logging the suitability determination in the compliance system."
  tags:
    - compliance
    - wealth
    - salesforce
capability:
  exposes:
    - type: mcp
      namespace: suitability
      port: 8080
      tools:
        - name: run-suitability-review
          description: "Given a client ID and product, evaluate suitability based on financial profile and product requirements."
          inputParameters:
            - name: client_id
              in: body
              type: string
              description: "The Salesforce client contact ID."
            - name: product_code
              in: body
              type: string
              description: "The product code being considered."
            - name: investment_amount
              in: body
              type: string
              description: "Proposed investment amount."
          steps:
            - name: get-client-profile
              type: call
              call: "salesforce.get-financial-profile"
              with:
                contact_id: "{{client_id}}"
            - name: get-product-requirements
              type: call
              call: "product-catalog.get-suitability-criteria"
              with:
                product_code: "{{product_code}}"
            - name: evaluate-suitability
              type: call
              call: "compliance-system.evaluate-suitability"
              with:
                client_age: "{{get-client-profile.age}}"
                income: "{{get-client-profile.annual_income}}"
                net_worth: "{{get-client-profile.net_worth}}"
                risk_tolerance: "{{get-client-profile.risk_tolerance}}"
                product_code: "{{product_code}}"
                amount: "{{investment_amount}}"
  consumes:
    - type: http
      namespace: salesforce
      baseUri: "https://prudential.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token"
      resources:
        - name: profiles
          path: "/sobjects/FinancialProfile__c"
          inputParameters:
            - name: contact_id
              in: query
          operations:
            - name: get-financial-profile
              method: GET
    - type: http
      namespace: product-catalog
      baseUri: "https://api.prudential.com/internal/products/v1"
      authentication:
        type: bearer
        token: "$secrets.product_catalog_token"
      resources:
        - name: suitability
          path: "/products/{{product_code}}/suitability"
          inputParameters:
            - name: product_code
              in: path
          operations:
            - name: get-suitability-criteria
              method: GET
    - type: http
      namespace: compliance-system
      baseUri: "https://api.prudential.com/internal/compliance/v1"
      authentication:
        type: bearer
        token: "$secrets.compliance_token"
      resources:
        - name: suitability
          path: "/suitability-evaluations"
          operations:
            - name: evaluate-suitability
              method: POST

Converts a term life policy to a permanent policy by pulling the existing term details, generating a conversion offer, creating the new policy, and sending the conversion documents via DocuSign.

naftiko: "0.5"
info:
  label: "Term Life Conversion Orchestrator"
  description: "Converts a term life policy to a permanent policy by pulling the existing term details, generating a conversion offer, creating the new policy, and sending the conversion documents via DocuSign."
  tags:
    - insurance
    - policy
    - docusign
capability:
  exposes:
    - type: mcp
      namespace: policy-conversion
      port: 8080
      tools:
        - name: convert-term-to-perm
          description: "Given a term policy number, generate conversion offer, create permanent policy, and send docs for signature."
          inputParameters:
            - name: policy_number
              in: body
              type: string
              description: "The term life policy number."
            - name: target_product
              in: body
              type: string
              description: "Target permanent product (whole_life, universal_life, variable_life)."
          steps:
            - name: get-term-policy
              type: call
              call: "policy-admin.get-policy"
              with:
                policy_number: "{{policy_number}}"
            - name: generate-offer
              type: call
              call: "uw-engine.generate-conversion-offer"
              with:
                policy_number: "{{policy_number}}"
                target: "{{target_product}}"
                face_amount: "{{get-term-policy.faceAmount}}"
            - name: send-docs
              type: call
              call: "docusign.create-envelope"
              with:
                template_id: "term_conversion"
                signer_email: "{{get-term-policy.insuredEmail}}"
                signer_name: "{{get-term-policy.insuredName}}"
  consumes:
    - type: http
      namespace: policy-admin
      baseUri: "https://api.prudential.com/internal/policy-admin/v2"
      authentication:
        type: bearer
        token: "$secrets.policy_admin_token"
      resources:
        - name: policies
          path: "/policies/{{policy_number}}"
          inputParameters:
            - name: policy_number
              in: path
          operations:
            - name: get-policy
              method: GET
    - type: http
      namespace: uw-engine
      baseUri: "https://api.prudential.com/internal/underwriting/v2"
      authentication:
        type: bearer
        token: "$secrets.uw_engine_token"
      resources:
        - name: conversions
          path: "/conversion-offers"
          operations:
            - name: generate-conversion-offer
              method: POST
    - type: http
      namespace: docusign
      baseUri: "https://na4.docusign.net/restapi/v2.1"
      authentication:
        type: bearer
        token: "$secrets.docusign_token"
      resources:
        - name: envelopes
          path: "/accounts/{{account_id}}/envelopes"
          inputParameters:
            - name: account_id
              in: path
          operations:
            - name: create-envelope
              method: POST

Retrieves universal life cash value lookup data from the Prudential Financial financial services and insurance systems.

naftiko: "0.5"
info:
  label: "Universal Life Cash Value Lookup"
  description: "Retrieves universal life cash value lookup data from the Prudential Financial financial services and insurance systems."
  tags:
    - universal
    - prudential-financial
    - lookup
capability:
  exposes:
    - type: mcp
      namespace: universal
      port: 8080
      tools:
        - name: universal-life-cash-value-lookup
          description: "Retrieves universal life cash value lookup data from the Prudential Financial financial services and insurance systems."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The input id."
          call: "prudential.universal-life-cash-value-lookup"
          with:
            input_id: "{{input_id}}"
          outputParameters:
            - name: result
              type: string
              mapping: "$.data"
            - name: status
              type: string
              mapping: "$.status"
  consumes:
    - type: http
      namespace: prudential
      baseUri: "https://api.prudential.com/v2"
      authentication:
        type: bearer
        token: "$secrets.prudential_api_token"
      resources:
        - name: resource
          path: "/universal/life/cash/value/lookup/{{input_id}}"
          inputParameters:
            - name: input_id
              in: path
          operations:
            - name: universal-life-cash-value-lookup
              method: GET

Processes a fund transfer within a variable annuity contract, moving allocations between sub-accounts and recording the transfer.

naftiko: "0.5"
info:
  label: "Variable Annuity Fund Transfer"
  description: "Processes a fund transfer within a variable annuity contract, moving allocations between sub-accounts and recording the transfer."
  tags:
    - insurance
    - annuity
    - investment
capability:
  exposes:
    - type: mcp
      namespace: annuity-transfers
      port: 8080
      tools:
        - name: transfer-annuity-funds
          description: "Transfer funds between sub-accounts within a variable annuity."
          inputParameters:
            - name: contract_number
              in: body
              type: string
              description: "The annuity contract number."
            - name: from_fund
              in: body
              type: string
              description: "Source fund code."
            - name: to_fund
              in: body
              type: string
              description: "Destination fund code."
            - name: amount
              in: body
              type: string
              description: "Transfer amount."
          call: "annuity-admin.transfer-funds"
          with:
            contract: "{{contract_number}}"
            from: "{{from_fund}}"
            to: "{{to_fund}}"
            amount: "{{amount}}"
          outputParameters:
            - name: confirmation_id
              type: string
              mapping: "$.data.transferId"
            - name: new_balance_from
              type: string
              mapping: "$.data.fromFundBalance"
            - name: new_balance_to
              type: string
              mapping: "$.data.toFundBalance"
  consumes:
    - type: http
      namespace: annuity-admin
      baseUri: "https://api.prudential.com/internal/annuity/v2"
      authentication:
        type: bearer
        token: "$secrets.annuity_admin_token"
      resources:
        - name: transfers
          path: "/contracts/{{contract}}/transfers"
          inputParameters:
            - name: contract
              in: path
          operations:
            - name: transfer-funds
              method: POST

Processes voluntary benefits enrollment (accident, critical illness, hospital indemnity) by validating employee eligibility, creating the enrollment, calculating premium, and sending the enrollment confirmation.

naftiko: "0.5"
info:
  label: "Voluntary Benefits Enrollment Orchestrator"
  description: "Processes voluntary benefits enrollment (accident, critical illness, hospital indemnity) by validating employee eligibility, creating the enrollment, calculating premium, and sending the enrollment confirmation."
  tags:
    - insurance
    - group-benefits
    - voluntary
    - salesforce-marketing-cloud
capability:
  exposes:
    - type: mcp
      namespace: voluntary-benefits
      port: 8080
      tools:
        - name: enroll-voluntary-benefits
          description: "Given employee and benefit selections, validate eligibility, enroll, calculate premium, and confirm."
          inputParameters:
            - name: employer_id
              in: body
              type: string
              description: "The employer group identifier."
            - name: employee_id
              in: body
              type: string
              description: "The employee identifier."
            - name: benefit_selections
              in: body
              type: string
              description: "JSON of selected voluntary benefits."
          steps:
            - name: validate-eligibility
              type: call
              call: "group-admin.check-voluntary-eligibility"
              with:
                employer_id: "{{employer_id}}"
                employee_id: "{{employee_id}}"
            - name: create-enrollment
              type: call
              call: "group-admin.enroll-voluntary"
              with:
                employer_id: "{{employer_id}}"
                employee_id: "{{employee_id}}"
                selections: "{{benefit_selections}}"
            - name: send-confirmation
              type: call
              call: "sfmc.send-email"
              with:
                template: "voluntary_enrollment_confirmation"
                to: "{{validate-eligibility.email}}"
                merge_benefits: "{{benefit_selections}}"
                merge_premium: "{{create-enrollment.monthly_premium}}"
  consumes:
    - type: http
      namespace: group-admin
      baseUri: "https://api.prudential.com/internal/group-admin/v2"
      authentication:
        type: bearer
        token: "$secrets.group_admin_token"
      resources:
        - name: voluntary-eligibility
          path: "/employers/{{employer_id}}/employees/{{employee_id}}/voluntary-eligibility"
          inputParameters:
            - name: employer_id
              in: path
            - name: employee_id
              in: path
          operations:
            - name: check-voluntary-eligibility
              method: GET
        - name: voluntary-enrollment
          path: "/employers/{{employer_id}}/employees/{{employee_id}}/voluntary-enrollment"
          inputParameters:
            - name: employer_id
              in: path
            - name: employee_id
              in: path
          operations:
            - name: enroll-voluntary
              method: POST
    - type: http
      namespace: sfmc
      baseUri: "https://mc.prudential.com/rest"
      authentication:
        type: bearer
        token: "$secrets.sfmc_token"
      resources:
        - name: emails
          path: "/messaging/v1/email/messages"
          operations:
            - name: send-email
              method: POST

Compiles a client wealth review by pulling investment positions from Charles River IMS, account balances from the custodian API, and client profile from Salesforce Financial Services Cloud, then shares the consolidated view via Box.

naftiko: "0.5"
info:
  label: "Wealth Management Account Review Orchestrator"
  description: "Compiles a client wealth review by pulling investment positions from Charles River IMS, account balances from the custodian API, and client profile from Salesforce Financial Services Cloud, then shares the consolidated view via Box."
  tags:
    - wealth
    - investment
    - charles-river
    - salesforce
    - box
capability:
  exposes:
    - type: mcp
      namespace: wealth-review
      port: 8080
      tools:
        - name: generate-wealth-review
          description: "Given a client ID, compile investment positions, balances, and profile data, then upload the review to Box."
          inputParameters:
            - name: client_id
              in: body
              type: string
              description: "The Salesforce client account ID."
            - name: as_of_date
              in: body
              type: string
              description: "Review date in YYYY-MM-DD format."
          steps:
            - name: get-positions
              type: call
              call: "charles-river.get-positions"
              with:
                account_id: "{{client_id}}"
                as_of: "{{as_of_date}}"
            - name: get-balances
              type: call
              call: "custodian.get-account-balance"
              with:
                account_id: "{{client_id}}"
            - name: get-client-profile
              type: call
              call: "salesforce.get-account"
              with:
                account_id: "{{client_id}}"
            - name: upload-review
              type: call
              call: "box.upload-file"
              with:
                folder_id: "client_reviews"
                file_name: "WealthReview_{{client_id}}_{{as_of_date}}.pdf"
                content: "Client: {{get-client-profile.Name}}, Total AUM: ${{get-balances.total_value}}, Positions: {{get-positions.count}}"
  consumes:
    - type: http
      namespace: charles-river
      baseUri: "https://crd.prudential.com/api/v2"
      authentication:
        type: bearer
        token: "$secrets.charles_river_token"
      resources:
        - name: positions
          path: "/accounts/{{account_id}}/positions"
          inputParameters:
            - name: account_id
              in: path
            - name: as_of
              in: query
          operations:
            - name: get-positions
              method: GET
    - type: http
      namespace: custodian
      baseUri: "https://api.prudential.com/internal/custody/v1"
      authentication:
        type: bearer
        token: "$secrets.custodian_token"
      resources:
        - name: balances
          path: "/accounts/{{account_id}}/balance"
          inputParameters:
            - name: account_id
              in: path
          operations:
            - name: get-account-balance
              method: GET
    - type: http
      namespace: salesforce
      baseUri: "https://prudential.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token"
      resources:
        - name: accounts
          path: "/sobjects/Account/{{account_id}}"
          inputParameters:
            - name: account_id
              in: path
          operations:
            - name: get-account
              method: GET
    - type: http
      namespace: box
      baseUri: "https://upload.box.com/api/2.0"
      authentication:
        type: bearer
        token: "$secrets.box_token"
      resources:
        - name: files
          path: "/files/content"
          operations:
            - name: upload-file
              method: POST

Launches a workplace wellness program by creating the program in the wellness platform, enrolling eligible employees from the group admin system, and sending program invitations via Salesforce Marketing Cloud.

naftiko: "0.5"
info:
  label: "Workplace Benefits Wellness Program Orchestrator"
  description: "Launches a workplace wellness program by creating the program in the wellness platform, enrolling eligible employees from the group admin system, and sending program invitations via Salesforce Marketing Cloud."
  tags:
    - group-benefits
    - wellness
    - salesforce-marketing-cloud
capability:
  exposes:
    - type: mcp
      namespace: wellness
      port: 8080
      tools:
        - name: launch-wellness-program
          description: "Given an employer ID and program details, create the program, enroll employees, and send invitations."
          inputParameters:
            - name: employer_id
              in: body
              type: string
              description: "The employer group identifier."
            - name: program_type
              in: body
              type: string
              description: "Program type (biometric_screening, fitness_challenge, mental_health)."
          steps:
            - name: create-program
              type: call
              call: "wellness-platform.create-program"
              with:
                employer_id: "{{employer_id}}"
                type: "{{program_type}}"
            - name: get-eligible
              type: call
              call: "group-admin.get-active-census"
              with:
                employer_id: "{{employer_id}}"
            - name: send-invitations
              type: call
              call: "sfmc.send-batch-email"
              with:
                template: "wellness_invitation"
                recipients: "{{get-eligible.emails}}"
                merge_program: "{{program_type}}"
  consumes:
    - type: http
      namespace: wellness-platform
      baseUri: "https://api.prudential.com/internal/wellness/v1"
      authentication:
        type: bearer
        token: "$secrets.wellness_token"
      resources:
        - name: programs
          path: "/programs"
          operations:
            - name: create-program
              method: POST
    - type: http
      namespace: group-admin
      baseUri: "https://api.prudential.com/internal/group-admin/v2"
      authentication:
        type: bearer
        token: "$secrets.group_admin_token"
      resources:
        - name: census
          path: "/employers/{{employer_id}}/active-census"
          inputParameters:
            - name: employer_id
              in: path
          operations:
            - name: get-active-census
              method: GET
    - type: http
      namespace: sfmc
      baseUri: "https://mc.prudential.com/rest"
      authentication:
        type: bearer
        token: "$secrets.sfmc_token"
      resources:
        - name: batch-emails
          path: "/messaging/v1/email/messages/batch"
          operations:
            - name: send-batch-email
              method: POST

Orchestrates worksite benefits enrollment pipeline across financial services and insurance systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Worksite Benefits Enrollment Pipeline"
  description: "Orchestrates worksite benefits enrollment pipeline across financial services and insurance systems, coordinating multiple services and notifying stakeholders."
  tags:
    - worksite
    - prudential-financial
    - bloomberg
    - tableau
    - prudential
capability:
  exposes:
    - type: mcp
      namespace: worksite
      port: 8080
      tools:
        - name: worksite-benefits-enrollment-pipeline
          description: "Orchestrates worksite benefits enrollment pipeline across financial services and insurance systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "bloomberg.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "tableau.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "prudential.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: bloomberg
      baseUri: "https://api.bloomberg.com/v1"
      authentication:
        type: bearer
        token: "$secrets.bloomberg_token"
      resources:
        - name: bloomberg-resource
          path: "/api/worksite"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: tableau
      baseUri: "https://tableau.prudential.com/api/3.19"
      authentication:
        type: bearer
        token: "$secrets.tableau_token"
      resources:
        - name: tableau-resource
          path: "/api/worksite"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: prudential
      baseUri: "https://api.prudential.com/v2"
      authentication:
        type: bearer
        token: "$secrets.prudential_api_token"
      resources:
        - name: prudential-resource
          path: "/api/worksite"
          operations:
            - name: execute-3
              method: POST