Manulife Capabilities
Naftiko 0.5 capability definitions for Manulife - 100 capabilities showing integration workflows and service orchestrations.
Onboards a new financial advisor by creating their Workday profile, provisioning Salesforce access, opening a ServiceNow setup ticket, and sending welcome materials via Microsoft Teams.
naftiko: "0.5"
info:
label: "Advisor Onboarding Orchestrator"
description: "Onboards a new financial advisor by creating their Workday profile, provisioning Salesforce access, opening a ServiceNow setup ticket, and sending welcome materials via Microsoft Teams."
tags:
- onboarding
- advisor-management
- workday
- salesforce
- servicenow
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: advisor-onboarding
port: 8080
tools:
- name: onboard-advisor
description: "Orchestrate the full onboarding sequence for a new financial advisor."
inputParameters:
- name: advisor_name
in: body
type: string
description: "Full name of the new advisor."
- name: email
in: body
type: string
description: "Advisor email address."
- name: region
in: body
type: string
description: "Operating region."
- name: license_number
in: body
type: string
description: "Financial advisor license number."
steps:
- name: create-worker
type: call
call: "workday.create-worker"
with:
full_name: "{{advisor_name}}"
email: "{{email}}"
department: "Wealth Advisory"
region: "{{region}}"
- name: create-sfdc-user
type: call
call: "salesforce.create-user"
with:
name: "{{advisor_name}}"
email: "{{email}}"
profile: "Financial_Advisor"
license: "{{license_number}}"
- name: open-setup-ticket
type: call
call: "servicenow.create-incident"
with:
short_description: "New advisor setup: {{advisor_name}}"
category: "onboarding"
description: "Provision systems access for {{advisor_name}} ({{email}}). License: {{license_number}}. Region: {{region}}."
- name: send-welcome
type: call
call: "msteams.send-message"
with:
recipient_upn: "{{email}}"
text: "Welcome to Manulife, {{advisor_name}}! Your Salesforce access is ready and your setup ticket {{open-setup-ticket.number}} is in progress."
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"
operations:
- name: create-worker
method: POST
- type: http
namespace: salesforce
baseUri: "https://manulife.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: users
path: "/sobjects/User"
operations:
- name: create-user
method: POST
- type: http
namespace: servicenow
baseUri: "https://manulife.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
Screens new client applications against sanctions lists and PEP databases, logging results in ServiceNow and updating the Salesforce compliance flag.
naftiko: "0.5"
info:
label: "Anti-Money Laundering Screening"
description: "Screens new client applications against sanctions lists and PEP databases, logging results in ServiceNow and updating the Salesforce compliance flag."
tags:
- aml
- compliance
- sanctions
- servicenow
- salesforce
capability:
exposes:
- type: mcp
namespace: aml-screening
port: 8080
tools:
- name: screen-client
description: "Screen a client against AML/sanctions databases and update compliance records."
inputParameters:
- name: client_name
in: body
type: string
description: "Client full name."
- name: client_id
in: body
type: string
description: "Salesforce client ID."
- name: country
in: body
type: string
description: "Client country of residence."
steps:
- name: run-screening
type: call
call: "aml-service.screen"
with:
name: "{{client_name}}"
country: "{{country}}"
- name: log-result
type: call
call: "servicenow.create-incident"
with:
short_description: "AML screening: {{client_name}}"
category: "compliance"
description: "Screening result: {{run-screening.result}}. Match count: {{run-screening.match_count}}. Risk level: {{run-screening.risk_level}}."
- name: update-salesforce
type: call
call: "salesforce.update-account"
with:
account_id: "{{client_id}}"
aml_status: "{{run-screening.result}}"
aml_risk_level: "{{run-screening.risk_level}}"
consumes:
- type: http
namespace: aml-service
baseUri: "https://api.manulife.com/compliance/v1"
authentication:
type: bearer
token: "$secrets.manulife_api_token"
resources:
- name: screening
path: "/aml/screen"
operations:
- name: screen
method: POST
- type: http
namespace: servicenow
baseUri: "https://manulife.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: salesforce
baseUri: "https://manulife.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: update-account
method: PATCH
Reviews Azure Active Directory access assignments for Manulife applications to ensure least-privilege compliance.
naftiko: "0.5"
info:
label: "Azure Active Directory Access Review"
description: "Reviews Azure Active Directory access assignments for Manulife applications to ensure least-privilege compliance."
tags:
- security
- azure-active-directory
- access-management
capability:
exposes:
- type: mcp
namespace: access-review
port: 8080
tools:
- name: review-access
description: "Review Azure AD access assignments for an application."
inputParameters:
- name: app_id
in: body
type: string
description: "Azure AD application ID."
call: "azuread.get-app-assignments"
with:
app_id: "{{app_id}}"
consumes:
- type: http
namespace: azuread
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: app-assignments
path: "/servicePrincipals/{{app_id}}/appRoleAssignedTo"
inputParameters:
- name: app_id
in: path
operations:
- name: get-app-assignments
method: GET
Reviews Azure Active Directory access assignments for Manulife applications, identifying over-provisioned accounts for security remediation.
naftiko: "0.5"
info:
label: "Azure Active Directory Access Reviewer"
description: "Reviews Azure Active Directory access assignments for Manulife applications, identifying over-provisioned accounts for security remediation."
tags:
- security
- azure-active-directory
- access-management
capability:
exposes:
- type: mcp
namespace: access-review
port: 8080
tools:
- name: review-access
description: "Review Azure AD access assignments for an application."
inputParameters:
- name: app_id
in: body
type: string
description: "Azure AD application ID."
call: "azuread.get-app-assignments"
with:
app_id: "{{app_id}}"
consumes:
- type: http
namespace: azuread
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: app-assignments
path: "/servicePrincipals/{{app_id}}/appRoleAssignedTo"
inputParameters:
- name: app_id
in: path
operations:
- name: get-app-assignments
method: GET
Monitors Azure Data Factory pipeline runs for data warehouse ETL processes, alerting on failures via Slack.
naftiko: "0.5"
info:
label: "Azure Data Factory ETL Monitor"
description: "Monitors Azure Data Factory pipeline runs for data warehouse ETL processes, alerting on failures via Slack."
tags:
- data-engineering
- azure-data-factory
- slack
- monitoring
capability:
exposes:
- type: mcp
namespace: etl-monitor
port: 8080
tools:
- name: check-etl-status
description: "Check Azure Data Factory pipeline run status and alert on failures."
inputParameters:
- name: pipeline_name
in: body
type: string
description: "ADF pipeline name."
- name: run_id
in: body
type: string
description: "Pipeline run ID."
steps:
- name: get-run-status
type: call
call: "adf.get-pipeline-run"
with:
pipeline: "{{pipeline_name}}"
run_id: "{{run_id}}"
- name: alert-failure
type: call
call: "slack.post-message"
with:
channel: "data-engineering-alerts"
text: "ADF pipeline {{pipeline_name}} run {{run_id}}: {{get-run-status.status}}. Duration: {{get-run-status.duration}}. Message: {{get-run-status.message}}."
consumes:
- type: http
namespace: adf
baseUri: "https://management.azure.com/subscriptions/{{subscription_id}}/resourceGroups/{{rg}}/providers/Microsoft.DataFactory/factories/{{factory}}"
authentication:
type: bearer
token: "$secrets.azure_mgmt_token"
resources:
- name: pipeline-runs
path: "/pipelineruns/{{run_id}}"
inputParameters:
- name: run_id
in: path
operations:
- name: get-pipeline-run
method: GET
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: messages
path: "/chat.postMessage"
operations:
- name: post-message
method: POST
Triggers risk model execution in Azure Databricks for portfolio risk assessment and Value-at-Risk calculations.
naftiko: "0.5"
info:
label: "Azure Databricks Risk Model Runner"
description: "Triggers risk model execution in Azure Databricks for portfolio risk assessment and Value-at-Risk calculations."
tags:
- risk-management
- azure-databricks
- portfolio
capability:
exposes:
- type: mcp
namespace: risk-modeling
port: 8080
tools:
- name: run-risk-model
description: "Execute a risk model in Azure Databricks for portfolio analysis."
inputParameters:
- name: model_name
in: body
type: string
description: "Risk model name (VaR, CVaR, stress-test)."
- name: portfolio_id
in: body
type: string
description: "Portfolio identifier."
call: "databricks.run-job"
with:
job_name: "{{model_name}}"
parameters: "portfolio_id={{portfolio_id}}"
consumes:
- type: http
namespace: databricks
baseUri: "https://adb-manulife.azuredatabricks.net/api/2.1"
authentication:
type: bearer
token: "$secrets.databricks_token"
resources:
- name: jobs
path: "/jobs/run-now"
operations:
- name: run-job
method: POST
Monitors Azure DevOps build pipelines for Manulife digital insurance applications, checking build health and deployment status.
naftiko: "0.5"
info:
label: "Azure DevOps Deployment Pipeline"
description: "Monitors Azure DevOps build pipelines for Manulife digital insurance applications, checking build health and deployment status."
tags:
- devops
- azure-devops
- deployments
capability:
exposes:
- type: mcp
namespace: deployment-monitor
port: 8080
tools:
- name: get-build-status
description: "Check latest build status for an Azure DevOps pipeline."
inputParameters:
- name: project
in: body
type: string
description: "Azure DevOps project name."
- name: pipeline_id
in: body
type: string
description: "Pipeline definition ID."
call: "azuredevops.get-latest-build"
with:
project: "{{project}}"
definition_id: "{{pipeline_id}}"
consumes:
- type: http
namespace: azuredevops
baseUri: "https://dev.azure.com/manulife"
authentication:
type: basic
username: ""
password: "$secrets.azuredevops_pat"
resources:
- name: builds
path: "/{{project}}/_apis/build/builds?definitions={{definition_id}}&$top=1&api-version=7.0"
inputParameters:
- name: project
in: path
- name: definition_id
in: query
operations:
- name: get-latest-build
method: GET
Retrieves real-time market data from Bloomberg Enterprise Data for investment portfolio valuation and risk assessment.
naftiko: "0.5"
info:
label: "Bloomberg Market Data Feed"
description: "Retrieves real-time market data from Bloomberg Enterprise Data for investment portfolio valuation and risk assessment."
tags:
- market-data
- bloomberg-enterprise-data
- investments
capability:
exposes:
- type: mcp
namespace: market-data
port: 8080
tools:
- name: get-market-data
description: "Retrieve market data for a security from Bloomberg."
inputParameters:
- name: security_id
in: body
type: string
description: "Bloomberg security identifier."
- name: fields
in: body
type: string
description: "Comma-separated list of data fields (e.g., PX_LAST,PX_BID,PX_ASK)."
call: "bloomberg.get-data"
with:
security: "{{security_id}}"
fields: "{{fields}}"
consumes:
- type: http
namespace: bloomberg
baseUri: "https://api.bloomberg.com/eap/v1"
authentication:
type: bearer
token: "$secrets.bloomberg_token"
resources:
- name: market-data
path: "/data/{{security}}"
inputParameters:
- name: security
in: path
- name: fields
in: query
operations:
- name: get-data
method: GET
Archives completed client onboarding and policy documents from SharePoint to Box with retention policies for regulatory compliance.
naftiko: "0.5"
info:
label: "Box Client Document Archive"
description: "Archives completed client onboarding and policy documents from SharePoint to Box with retention policies for regulatory compliance."
tags:
- document-management
- box
- sharepoint
- archiving
capability:
exposes:
- type: mcp
namespace: doc-archive
port: 8080
tools:
- name: archive-client-docs
description: "Move client documents from SharePoint to Box long-term archive."
inputParameters:
- name: client_id
in: body
type: string
description: "Client identifier."
- name: document_category
in: body
type: string
description: "Category (onboarding, policy, claims, kyc)."
steps:
- name: get-docs
type: call
call: "sharepoint.list-files"
with:
site_id: "client_docs"
folder_path: "{{document_category}}/{{client_id}}"
- name: upload-to-box
type: call
call: "box.upload-file"
with:
folder_id: "client_archive"
file_name: "{{client_id}}_{{document_category}}_archive.zip"
metadata: "client:{{client_id}},category:{{document_category}},retention:7years"
consumes:
- type: http
namespace: sharepoint
baseUri: "https://graph.microsoft.com/v1.0/sites"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: drive-items
path: "/{{site_id}}/drive/root:/{{folder_path}}:/children"
inputParameters:
- name: site_id
in: path
- name: folder_path
in: path
operations:
- name: list-files
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
Retrieves the current status of an insurance claim by claim number, including adjuster assignment, payout amount, and timeline.
naftiko: "0.5"
info:
label: "Claims Status Lookup"
description: "Retrieves the current status of an insurance claim by claim number, including adjuster assignment, payout amount, and timeline."
tags:
- claims
- insurance
- claims-management
capability:
exposes:
- type: mcp
namespace: claims-status
port: 8080
tools:
- name: get-claim-status
description: "Look up a claim by claim number and return status, adjuster, and payout details."
inputParameters:
- name: claim_number
in: body
type: string
description: "The insurance claim number."
call: "claims-system.get-claim"
with:
claim_number: "{{claim_number}}"
consumes:
- type: http
namespace: claims-system
baseUri: "https://api.manulife.com/claims/v1"
authentication:
type: bearer
token: "$secrets.manulife_api_token"
resources:
- name: claims
path: "/claims/{{claim_number}}"
inputParameters:
- name: claim_number
in: path
operations:
- name: get-claim
method: GET
Monitors Cloudflare WAF events for Manulife web properties, detecting and reporting blocked threats.
naftiko: "0.5"
info:
label: "Cloudflare Web Application Firewall Monitor"
description: "Monitors Cloudflare WAF events for Manulife web properties, detecting and reporting blocked threats."
tags:
- security
- cloudflare
- web-application-firewall
capability:
exposes:
- type: mcp
namespace: waf-monitor
port: 8080
tools:
- name: get-waf-events
description: "Retrieve WAF blocked events from Cloudflare."
inputParameters:
- name: zone_id
in: body
type: string
description: "Cloudflare zone ID."
call: "cloudflare.get-waf-events"
with:
zone_id: "{{zone_id}}"
consumes:
- type: http
namespace: cloudflare
baseUri: "https://api.cloudflare.com/client/v4"
authentication:
type: bearer
token: "$secrets.cloudflare_token"
resources:
- name: waf-events
path: "/zones/{{zone_id}}/firewall/events"
inputParameters:
- name: zone_id
in: path
operations:
- name: get-waf-events
method: GET
Creates and manages insurance policy knowledge articles in Confluence for advisors and customer service representatives.
naftiko: "0.5"
info:
label: "Confluence Policy Knowledge Base"
description: "Creates and manages insurance policy knowledge articles in Confluence for advisors and customer service representatives."
tags:
- knowledge-management
- confluence
- policy-documentation
capability:
exposes:
- type: mcp
namespace: policy-knowledge
port: 8080
tools:
- name: create-policy-article
description: "Create a policy knowledge article in Confluence."
inputParameters:
- name: title
in: body
type: string
description: "Article title."
- name: content
in: body
type: string
description: "Article content."
- name: space_key
in: body
type: string
description: "Confluence space key."
call: "confluence.create-page"
with:
space_key: "{{space_key}}"
title: "{{title}}"
content: "{{content}}"
consumes:
- type: http
namespace: confluence
baseUri: "https://manulife.atlassian.net/wiki/rest/api"
authentication:
type: basic
username: "$secrets.confluence_user"
password: "$secrets.confluence_token"
resources:
- name: pages
path: "/content"
operations:
- name: create-page
method: POST
Monitors Manulife digital application health via Dynatrace, tracking response times, error rates, and user sessions.
naftiko: "0.5"
info:
label: "Dynatrace Application Monitor"
description: "Monitors Manulife digital application health via Dynatrace, tracking response times, error rates, and user sessions."
tags:
- monitoring
- dynatrace
- application-health
capability:
exposes:
- type: mcp
namespace: app-monitoring
port: 8080
tools:
- name: get-app-health
description: "Retrieve application health metrics from Dynatrace."
inputParameters:
- name: application_id
in: body
type: string
description: "Dynatrace application entity ID."
call: "dynatrace.get-metrics"
with:
entity_id: "{{application_id}}"
consumes:
- type: http
namespace: dynatrace
baseUri: "https://manulife.live.dynatrace.com/api/v2"
authentication:
type: bearer
token: "$secrets.dynatrace_token"
resources:
- name: metrics
path: "/metrics/query"
inputParameters:
- name: entity_id
in: query
operations:
- name: get-metrics
method: GET
Checks F5 Networks load balancer health for Manulife web application and API gateway pools.
naftiko: "0.5"
info:
label: "F5 Load Balancer Health Check"
description: "Checks F5 Networks load balancer health for Manulife web application and API gateway pools."
tags:
- infrastructure
- f5-networks
- load-balancing
capability:
exposes:
- type: mcp
namespace: lb-health
port: 8080
tools:
- name: check-pool-health
description: "Check F5 load balancer pool health."
inputParameters:
- name: pool_name
in: body
type: string
description: "F5 pool name."
call: "f5.get-pool-status"
with:
pool: "{{pool_name}}"
consumes:
- type: http
namespace: f5
baseUri: "https://manulife-f5.com/mgmt/tm"
authentication:
type: basic
username: "$secrets.f5_user"
password: "$secrets.f5_password"
resources:
- name: pools
path: "/ltm/pool/{{pool}}/members"
inputParameters:
- name: pool
in: path
operations:
- name: get-pool-status
method: GET
When the fraud detection system flags a suspicious claim, creates a ServiceNow investigation ticket, freezes the claim in the claims system, and alerts the fraud team via Microsoft Teams.
naftiko: "0.5"
info:
label: "Fraud Detection Alert Pipeline"
description: "When the fraud detection system flags a suspicious claim, creates a ServiceNow investigation ticket, freezes the claim in the claims system, and alerts the fraud team via Microsoft Teams."
tags:
- fraud-detection
- claims
- servicenow
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: fraud-alerts
port: 8080
tools:
- name: process-fraud-alert
description: "Process a fraud detection alert across investigation and notification systems."
inputParameters:
- name: claim_number
in: body
type: string
description: "The flagged claim number."
- name: fraud_score
in: body
type: number
description: "Fraud probability score (0-100)."
- name: indicators
in: body
type: string
description: "Comma-separated fraud indicators."
steps:
- name: freeze-claim
type: call
call: "claims-system.update-status"
with:
claim_number: "{{claim_number}}"
status: "under_investigation"
- name: create-investigation
type: call
call: "servicenow.create-incident"
with:
short_description: "Fraud investigation: Claim {{claim_number}}"
category: "fraud"
priority: "1"
description: "Fraud score: {{fraud_score}}. Indicators: {{indicators}}."
- name: alert-fraud-team
type: call
call: "msteams.send-message"
with:
channel_id: "fraud-investigations"
text: "Fraud alert: Claim {{claim_number}} flagged (score: {{fraud_score}}). Investigation ticket: {{create-investigation.number}}. Indicators: {{indicators}}."
consumes:
- type: http
namespace: claims-system
baseUri: "https://api.manulife.com/claims/v1"
authentication:
type: bearer
token: "$secrets.manulife_api_token"
resources:
- name: claims
path: "/claims/{{claim_number}}/status"
inputParameters:
- name: claim_number
in: path
operations:
- name: update-status
method: PATCH
- type: http
namespace: servicenow
baseUri: "https://manulife.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: channel-messages
path: "/teams/{{channel_id}}/channels/General/messages"
inputParameters:
- name: channel_id
in: path
operations:
- name: send-message
method: POST
Monitors GitHub Actions CI workflows for Manulife digital applications, notifying developers via Slack on build failures.
naftiko: "0.5"
info:
label: "GitHub Actions CI Pipeline Monitor"
description: "Monitors GitHub Actions CI workflows for Manulife digital applications, notifying developers via Slack on build failures."
tags:
- devops
- github-actions
- slack
- ci-cd
capability:
exposes:
- type: mcp
namespace: ci-monitor
port: 8080
tools:
- name: monitor-ci
description: "Check GitHub Actions workflow status and alert on failures."
inputParameters:
- name: repo_name
in: body
type: string
description: "GitHub repository (org/repo)."
- name: workflow_name
in: body
type: string
description: "Workflow file name."
steps:
- name: get-runs
type: call
call: "github.get-workflow-runs"
with:
repo: "{{repo_name}}"
workflow: "{{workflow_name}}"
- name: notify-failure
type: call
call: "slack.post-message"
with:
channel: "ci-alerts"
text: "CI {{get-runs.latest_run.conclusion}} for {{repo_name}}/{{workflow_name}}. Commit: {{get-runs.latest_run.head_sha}}."
consumes:
- type: http
namespace: github
baseUri: "https://api.github.com"
authentication:
type: bearer
token: "$secrets.github_token"
resources:
- name: workflow-runs
path: "/repos/{{repo}}/actions/workflows/{{workflow}}/runs"
inputParameters:
- name: repo
in: path
- name: workflow
in: path
operations:
- name: get-workflow-runs
method: GET
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: messages
path: "/chat.postMessage"
operations:
- name: post-message
method: POST
Retrieves digital channel performance from Google Analytics for Manulife.com, tracking customer acquisition and conversion metrics.
naftiko: "0.5"
info:
label: "Google Analytics Digital Channel Tracker"
description: "Retrieves digital channel performance from Google Analytics for Manulife.com, tracking customer acquisition and conversion metrics."
tags:
- marketing
- google-analytics
- digital-channels
capability:
exposes:
- type: mcp
namespace: digital-analytics
port: 8080
tools:
- name: get-channel-performance
description: "Retrieve digital channel performance from Google Analytics."
inputParameters:
- name: start_date
in: body
type: string
description: "Start date in YYYY-MM-DD format."
- name: end_date
in: body
type: string
description: "End date in YYYY-MM-DD format."
call: "ga.get-report"
with:
start_date: "{{start_date}}"
end_date: "{{end_date}}"
consumes:
- type: http
namespace: ga
baseUri: "https://analyticsdata.googleapis.com/v1beta"
authentication:
type: bearer
token: "$secrets.google_analytics_token"
resources:
- name: reports
path: "/properties/{{property_id}}:runReport"
operations:
- name: get-report
method: POST
Manages shared documents in Google Drive for financial advisor collaboration on client portfolios and financial plans.
naftiko: "0.5"
info:
label: "Google Drive Advisor Document Sharing"
description: "Manages shared documents in Google Drive for financial advisor collaboration on client portfolios and financial plans."
tags:
- collaboration
- google-drive
- advisor-tools
capability:
exposes:
- type: mcp
namespace: advisor-docs
port: 8080
tools:
- name: share-advisor-doc
description: "Create and share a document in Google Drive for advisor collaboration."
inputParameters:
- name: title
in: body
type: string
description: "Document title."
- name: folder_id
in: body
type: string
description: "Google Drive folder ID."
call: "googledrive.create-file"
with:
title: "{{title}}"
folder_id: "{{folder_id}}"
consumes:
- type: http
namespace: googledrive
baseUri: "https://www.googleapis.com/drive/v3"
authentication:
type: bearer
token: "$secrets.google_drive_token"
resources:
- name: files
path: "/files"
operations:
- name: create-file
method: POST
Processes group benefits enrollment by creating employee records in the benefits system, updating Salesforce group account, and sending confirmation via Microsoft Outlook.
naftiko: "0.5"
info:
label: "Group Benefits Enrollment Processor"
description: "Processes group benefits enrollment by creating employee records in the benefits system, updating Salesforce group account, and sending confirmation via Microsoft Outlook."
tags:
- group-benefits
- enrollment
- salesforce
- microsoft-outlook
capability:
exposes:
- type: mcp
namespace: benefits-enrollment
port: 8080
tools:
- name: process-enrollment
description: "Process a group benefits enrollment for an employee."
inputParameters:
- name: group_policy_number
in: body
type: string
description: "The group policy number."
- name: employee_name
in: body
type: string
description: "Employee name."
- name: employee_email
in: body
type: string
description: "Employee email."
- name: plan_selection
in: body
type: string
description: "Selected benefit plan."
steps:
- name: create-enrollment
type: call
call: "benefits-system.enroll"
with:
group_policy: "{{group_policy_number}}"
employee: "{{employee_name}}"
plan: "{{plan_selection}}"
- name: update-group-account
type: call
call: "salesforce.update-group-account"
with:
policy_number: "{{group_policy_number}}"
enrolled_count_delta: "1"
- name: send-confirmation
type: call
call: "outlook.send-email"
with:
to: "{{employee_email}}"
subject: "Benefits enrollment confirmation"
body: "Welcome {{employee_name}}! You have been enrolled in {{plan_selection}} under group policy {{group_policy_number}}. Your member ID: {{create-enrollment.member_id}}."
consumes:
- type: http
namespace: benefits-system
baseUri: "https://api.manulife.com/benefits/v1"
authentication:
type: bearer
token: "$secrets.manulife_api_token"
resources:
- name: enrollments
path: "/enrollments"
operations:
- name: enroll
method: POST
- type: http
namespace: salesforce
baseUri: "https://manulife.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: group-accounts
path: "/sobjects/Group_Policy__c"
operations:
- name: update-group-account
method: PATCH
- type: http
namespace: outlook
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: send-mail
path: "/me/sendMail"
operations:
- name: send-email
method: POST
Creates and tracks insurance product marketing campaigns in HubSpot, targeting segmented audiences for life, health, and wealth products.
naftiko: "0.5"
info:
label: "HubSpot Insurance Marketing Campaign"
description: "Creates and tracks insurance product marketing campaigns in HubSpot, targeting segmented audiences for life, health, and wealth products."
tags:
- marketing
- hubspot
- campaigns
capability:
exposes:
- type: mcp
namespace: marketing-campaigns
port: 8080
tools:
- name: get-campaign-metrics
description: "Retrieve campaign performance metrics from HubSpot."
inputParameters:
- name: campaign_id
in: body
type: string
description: "HubSpot campaign ID."
call: "hubspot.get-campaign"
with:
campaign_id: "{{campaign_id}}"
consumes:
- type: http
namespace: hubspot
baseUri: "https://api.hubapi.com"
authentication:
type: bearer
token: "$secrets.hubspot_token"
resources:
- name: campaigns
path: "/marketing/v3/campaigns/{{campaign_id}}"
inputParameters:
- name: campaign_id
in: path
operations:
- name: get-campaign
method: GET
Runs Informatica data quality jobs on client master data to cleanse and standardize records across insurance and wealth systems.
naftiko: "0.5"
info:
label: "Informatica Data Quality Pipeline"
description: "Runs Informatica data quality jobs on client master data to cleanse and standardize records across insurance and wealth systems."
tags:
- data-quality
- informatica
- master-data
capability:
exposes:
- type: mcp
namespace: data-quality
port: 8080
tools:
- name: run-dq-pipeline
description: "Execute an Informatica data quality pipeline on client data."
inputParameters:
- name: job_name
in: body
type: string
description: "Informatica DQ job name."
- name: data_domain
in: body
type: string
description: "Data domain (client, policy, claims)."
call: "informatica.run-job"
with:
job_name: "{{job_name}}"
domain: "{{data_domain}}"
consumes:
- type: http
namespace: informatica
baseUri: "https://manulife-iics.informatica.com/saas/api/v2"
authentication:
type: bearer
token: "$secrets.informatica_token"
resources:
- name: jobs
path: "/job"
operations:
- name: run-job
method: POST
Orchestrates insurance operations including data retrieval, processing, and automated notification for Manulife.
naftiko: "0.5"
info:
label: "Manulife Workflow 1"
description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for Manulife."
tags:
- insurance
- operations
- salesforce
capability:
exposes:
- type: mcp
namespace: insurance
port: 8080
tools:
- name: manulife-workflow-1
description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for Manulife."
inputParameters:
- name: identifier
in: body
type: string
description: "Primary identifier for this workflow"
steps:
- name: process
type: call
call: "manulife-ops.run-workflow-1"
with:
identifier: "{{identifier}}"
- name: create
type: call
call: "salesforce.create-account"
with:
data: "{{process.result}}"
consumes:
- type: http
namespace: manulife-ops
baseUri: "https://api.manulife.com/operations/v1"
authentication:
type: bearer
token: "$secrets.manulife_api_token"
resources:
- name: operations
path: "/operations"
operations:
- name: run-workflow-1
method: POST
- type: http
namespace: salesforce
baseUri: "https://manulife.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: accounts
path: "/accounts"
operations:
- name: create-account
method: POST
Orchestrates insurance operations including data retrieval, processing, and automated notification for Manulife.
naftiko: "0.5"
info:
label: "Manulife Workflow 10"
description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for Manulife."
tags:
- insurance
- operations
- sharepoint
capability:
exposes:
- type: mcp
namespace: insurance
port: 8080
tools:
- name: manulife-workflow-10
description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for Manulife."
inputParameters:
- name: identifier
in: body
type: string
description: "Primary identifier for this workflow"
steps:
- name: process
type: call
call: "manulife-ops.run-workflow-10"
with:
identifier: "{{identifier}}"
- name: upload
type: call
call: "sharepoint.upload-document"
with:
content: "{{process.document}}"
consumes:
- type: http
namespace: manulife-ops
baseUri: "https://api.manulife.com/operations/v1"
authentication:
type: bearer
token: "$secrets.manulife_api_token"
resources:
- name: operations
path: "/operations"
operations:
- name: run-workflow-10
method: POST
- type: http
namespace: sharepoint
baseUri: "https://manulife.sharepoint.com/_api/v2.0"
authentication:
type: bearer
token: "$secrets.sharepoint_token"
resources:
- name: documents
path: "/documents"
operations:
- name: upload-document
method: POST
Orchestrates insurance operations including data retrieval, processing, and automated notification for Manulife.
naftiko: "0.5"
info:
label: "Manulife Workflow 11"
description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for Manulife."
tags:
- insurance
- operations
- hubspot
capability:
exposes:
- type: mcp
namespace: insurance
port: 8080
tools:
- name: manulife-workflow-11
description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for Manulife."
inputParameters:
- name: identifier
in: body
type: string
description: "Primary identifier for this workflow"
steps:
- name: process
type: call
call: "manulife-ops.run-workflow-11"
with:
identifier: "{{identifier}}"
- name: notify
type: call
call: "hubspot.send-email"
with:
to: "{{process.email}}"
subject: "Workflow 11 Complete"
body: "{{process.summary}}"
consumes:
- type: http
namespace: manulife-ops
baseUri: "https://api.manulife.com/operations/v1"
authentication:
type: bearer
token: "$secrets.manulife_api_token"
resources:
- name: operations
path: "/operations"
operations:
- name: run-workflow-11
method: POST
- type: http
namespace: hubspot
baseUri: "https://api.hubapi.com/crm/v3"
authentication:
type: bearer
token: "$secrets.hubspot_token"
resources:
- name: contacts
path: "/contacts"
operations:
- name: send-email
method: POST
Orchestrates insurance operations including data retrieval, processing, and automated notification for Manulife.
naftiko: "0.5"
info:
label: "Manulife Workflow 12"
description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for Manulife."
tags:
- insurance
- operations
- datadog
capability:
exposes:
- type: mcp
namespace: insurance
port: 8080
tools:
- name: manulife-workflow-12
description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for Manulife."
inputParameters:
- name: identifier
in: body
type: string
description: "Primary identifier for this workflow"
steps:
- name: process
type: call
call: "manulife-ops.run-workflow-12"
with:
identifier: "{{identifier}}"
- name: push
type: call
call: "datadog.submit-metrics"
with:
metric_name: "insurance.workflow_12"
data: "{{process.metrics}}"
consumes:
- type: http
namespace: manulife-ops
baseUri: "https://api.manulife.com/operations/v1"
authentication:
type: bearer
token: "$secrets.manulife_api_token"
resources:
- name: operations
path: "/operations"
operations:
- name: run-workflow-12
method: POST
- type: http
namespace: datadog
baseUri: "https://api.datadoghq.com/api/v2"
authentication:
type: bearer
token: "$secrets.datadog_token"
resources:
- name: metrics
path: "/metrics"
operations:
- name: submit-metrics
method: POST
Orchestrates insurance operations including data retrieval, processing, and automated notification for Manulife.
naftiko: "0.5"
info:
label: "Manulife Workflow 13"
description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for Manulife."
tags:
- insurance
- operations
- salesforce
capability:
exposes:
- type: mcp
namespace: insurance
port: 8080
tools:
- name: manulife-workflow-13
description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for Manulife."
inputParameters:
- name: identifier
in: body
type: string
description: "Primary identifier for this workflow"
steps:
- name: process
type: call
call: "manulife-ops.run-workflow-13"
with:
identifier: "{{identifier}}"
- name: create
type: call
call: "salesforce.create-account"
with:
data: "{{process.result}}"
consumes:
- type: http
namespace: manulife-ops
baseUri: "https://api.manulife.com/operations/v1"
authentication:
type: bearer
token: "$secrets.manulife_api_token"
resources:
- name: operations
path: "/operations"
operations:
- name: run-workflow-13
method: POST
- type: http
namespace: salesforce
baseUri: "https://manulife.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: accounts
path: "/accounts"
operations:
- name: create-account
method: POST
Orchestrates insurance operations including data retrieval, processing, and automated notification for Manulife.
naftiko: "0.5"
info:
label: "Manulife Workflow 14"
description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for Manulife."
tags:
- insurance
- operations
- servicenow
capability:
exposes:
- type: mcp
namespace: insurance
port: 8080
tools:
- name: manulife-workflow-14
description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for Manulife."
inputParameters:
- name: identifier
in: body
type: string
description: "Primary identifier for this workflow"
steps:
- name: process
type: call
call: "manulife-ops.run-workflow-14"
with:
identifier: "{{identifier}}"
- name: create
type: call
call: "servicenow.create-incident"
with:
data: "{{process.result}}"
consumes:
- type: http
namespace: manulife-ops
baseUri: "https://api.manulife.com/operations/v1"
authentication:
type: bearer
token: "$secrets.manulife_api_token"
resources:
- name: operations
path: "/operations"
operations:
- name: run-workflow-14
method: POST
- type: http
namespace: servicenow
baseUri: "https://manulife.service-now.com/api/now/v1"
authentication:
type: bearer
token: "$secrets.servicenow_token"
resources:
- name: incidents
path: "/incidents"
operations:
- name: create-incident
method: POST
Orchestrates insurance operations including data retrieval, processing, and automated notification for Manulife.
naftiko: "0.5"
info:
label: "Manulife Workflow 15"
description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for Manulife."
tags:
- insurance
- operations
- slack
capability:
exposes:
- type: mcp
namespace: insurance
port: 8080
tools:
- name: manulife-workflow-15
description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for Manulife."
inputParameters:
- name: identifier
in: body
type: string
description: "Primary identifier for this workflow"
steps:
- name: process
type: call
call: "manulife-ops.run-workflow-15"
with:
identifier: "{{identifier}}"
- name: notify
type: call
call: "slack.post-message"
with:
channel: "#insurance"
text: "Completed workflow 15: {{process.summary}}"
consumes:
- type: http
namespace: manulife-ops
baseUri: "https://api.manulife.com/operations/v1"
authentication:
type: bearer
token: "$secrets.manulife_api_token"
resources:
- name: operations
path: "/operations"
operations:
- name: run-workflow-15
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_token"
resources:
- name: messages
path: "/messages"
operations:
- name: post-message
method: POST
Orchestrates insurance operations including data retrieval, processing, and automated notification for Manulife.
naftiko: "0.5"
info:
label: "Manulife Workflow 16"
description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for Manulife."
tags:
- insurance
- operations
- confluence
capability:
exposes:
- type: mcp
namespace: insurance
port: 8080
tools:
- name: manulife-workflow-16
description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for Manulife."
inputParameters:
- name: identifier
in: body
type: string
description: "Primary identifier for this workflow"
steps:
- name: process
type: call
call: "manulife-ops.run-workflow-16"
with:
identifier: "{{identifier}}"
- name: publish
type: call
call: "confluence.create-page"
with:
space: "INSURA"
title: "Report 16"
content: "{{process.report}}"
consumes:
- type: http
namespace: manulife-ops
baseUri: "https://api.manulife.com/operations/v1"
authentication:
type: bearer
token: "$secrets.manulife_api_token"
resources:
- name: operations
path: "/operations"
operations:
- name: run-workflow-16
method: POST
- type: http
namespace: confluence
baseUri: "https://manulife.atlassian.net/wiki/rest/api"
authentication:
type: bearer
token: "$secrets.confluence_token"
resources:
- name: pages
path: "/pages"
operations:
- name: create-page
method: POST
Orchestrates insurance operations including data retrieval, processing, and automated notification for Manulife.
naftiko: "0.5"
info:
label: "Manulife Workflow 17"
description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for Manulife."
tags:
- insurance
- operations
- powerbi
capability:
exposes:
- type: mcp
namespace: insurance
port: 8080
tools:
- name: manulife-workflow-17
description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for Manulife."
inputParameters:
- name: identifier
in: body
type: string
description: "Primary identifier for this workflow"
steps:
- name: process
type: call
call: "manulife-ops.run-workflow-17"
with:
identifier: "{{identifier}}"
- name: refresh
type: call
call: "powerbi.refresh-dataset"
with:
dataset_id: "workflow_17"
data: "{{process.metrics}}"
consumes:
- type: http
namespace: manulife-ops
baseUri: "https://api.manulife.com/operations/v1"
authentication:
type: bearer
token: "$secrets.manulife_api_token"
resources:
- name: operations
path: "/operations"
operations:
- name: run-workflow-17
method: POST
- type: http
namespace: powerbi
baseUri: "https://api.powerbi.com/v1.0"
authentication:
type: bearer
token: "$secrets.powerbi_token"
resources:
- name: datasets
path: "/datasets"
operations:
- name: refresh-dataset
method: POST
Orchestrates insurance operations including data retrieval, processing, and automated notification for Manulife.
naftiko: "0.5"
info:
label: "Manulife Workflow 18"
description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for Manulife."
tags:
- insurance
- operations
- jira
capability:
exposes:
- type: mcp
namespace: insurance
port: 8080
tools:
- name: manulife-workflow-18
description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for Manulife."
inputParameters:
- name: identifier
in: body
type: string
description: "Primary identifier for this workflow"
steps:
- name: process
type: call
call: "manulife-ops.run-workflow-18"
with:
identifier: "{{identifier}}"
- name: create-ticket
type: call
call: "jira.create-issue"
with:
project: "INSU"
summary: "Task from workflow 18"
description: "{{process.details}}"
consumes:
- type: http
namespace: manulife-ops
baseUri: "https://api.manulife.com/operations/v1"
authentication:
type: bearer
token: "$secrets.manulife_api_token"
resources:
- name: operations
path: "/operations"
operations:
- name: run-workflow-18
method: POST
- type: http
namespace: jira
baseUri: "https://manulife.atlassian.net/rest/api/3"
authentication:
type: bearer
token: "$secrets.jira_token"
resources:
- name: issues
path: "/issues"
operations:
- name: create-issue
method: POST
Orchestrates insurance operations including data retrieval, processing, and automated notification for Manulife.
naftiko: "0.5"
info:
label: "Manulife Workflow 19"
description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for Manulife."
tags:
- insurance
- operations
- teams
capability:
exposes:
- type: mcp
namespace: insurance
port: 8080
tools:
- name: manulife-workflow-19
description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for Manulife."
inputParameters:
- name: identifier
in: body
type: string
description: "Primary identifier for this workflow"
steps:
- name: process
type: call
call: "manulife-ops.run-workflow-19"
with:
identifier: "{{identifier}}"
- name: notify
type: call
call: "teams.send-message"
with:
channel_id: "insurance"
message: "Workflow 19 complete: {{process.summary}}"
consumes:
- type: http
namespace: manulife-ops
baseUri: "https://api.manulife.com/operations/v1"
authentication:
type: bearer
token: "$secrets.manulife_api_token"
resources:
- name: operations
path: "/operations"
operations:
- name: run-workflow-19
method: POST
- type: http
namespace: teams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.teams_token"
resources:
- name: messages
path: "/messages"
operations:
- name: send-message
method: POST
Orchestrates insurance operations including data retrieval, processing, and automated notification for Manulife.
naftiko: "0.5"
info:
label: "Manulife Workflow 2"
description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for Manulife."
tags:
- insurance
- operations
- servicenow
capability:
exposes:
- type: mcp
namespace: insurance
port: 8080
tools:
- name: manulife-workflow-2
description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for Manulife."
inputParameters:
- name: identifier
in: body
type: string
description: "Primary identifier for this workflow"
steps:
- name: process
type: call
call: "manulife-ops.run-workflow-2"
with:
identifier: "{{identifier}}"
- name: create
type: call
call: "servicenow.create-incident"
with:
data: "{{process.result}}"
consumes:
- type: http
namespace: manulife-ops
baseUri: "https://api.manulife.com/operations/v1"
authentication:
type: bearer
token: "$secrets.manulife_api_token"
resources:
- name: operations
path: "/operations"
operations:
- name: run-workflow-2
method: POST
- type: http
namespace: servicenow
baseUri: "https://manulife.service-now.com/api/now/v1"
authentication:
type: bearer
token: "$secrets.servicenow_token"
resources:
- name: incidents
path: "/incidents"
operations:
- name: create-incident
method: POST
Orchestrates insurance operations including data retrieval, processing, and automated notification for Manulife.
naftiko: "0.5"
info:
label: "Manulife Workflow 20"
description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for Manulife."
tags:
- insurance
- operations
- tableau
capability:
exposes:
- type: mcp
namespace: insurance
port: 8080
tools:
- name: manulife-workflow-20
description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for Manulife."
inputParameters:
- name: identifier
in: body
type: string
description: "Primary identifier for this workflow"
steps:
- name: process
type: call
call: "manulife-ops.run-workflow-20"
with:
identifier: "{{identifier}}"
- name: refresh
type: call
call: "tableau.publish-datasource"
with:
dataset_id: "workflow_20"
data: "{{process.metrics}}"
consumes:
- type: http
namespace: manulife-ops
baseUri: "https://api.manulife.com/operations/v1"
authentication:
type: bearer
token: "$secrets.manulife_api_token"
resources:
- name: operations
path: "/operations"
operations:
- name: run-workflow-20
method: POST
- type: http
namespace: tableau
baseUri: "https://manulife-tableau.online.tableau.com/api/3.19"
authentication:
type: bearer
token: "$secrets.tableau_token"
resources:
- name: datasources
path: "/datasources"
operations:
- name: publish-datasource
method: POST
Orchestrates insurance operations including data retrieval, processing, and automated notification for Manulife.
naftiko: "0.5"
info:
label: "Manulife Workflow 21"
description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for Manulife."
tags:
- insurance
- operations
- box
capability:
exposes:
- type: mcp
namespace: insurance
port: 8080
tools:
- name: manulife-workflow-21
description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for Manulife."
inputParameters:
- name: identifier
in: body
type: string
description: "Primary identifier for this workflow"
steps:
- name: process
type: call
call: "manulife-ops.run-workflow-21"
with:
identifier: "{{identifier}}"
- name: upload
type: call
call: "box.upload-file"
with:
content: "{{process.document}}"
consumes:
- type: http
namespace: manulife-ops
baseUri: "https://api.manulife.com/operations/v1"
authentication:
type: bearer
token: "$secrets.manulife_api_token"
resources:
- name: operations
path: "/operations"
operations:
- name: run-workflow-21
method: POST
- type: http
namespace: box
baseUri: "https://api.box.com/2.0"
authentication:
type: bearer
token: "$secrets.box_token"
resources:
- name: files
path: "/files"
operations:
- name: upload-file
method: POST
Orchestrates insurance operations including data retrieval, processing, and automated notification for Manulife.
naftiko: "0.5"
info:
label: "Manulife Workflow 22"
description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for Manulife."
tags:
- insurance
- operations
- sharepoint
capability:
exposes:
- type: mcp
namespace: insurance
port: 8080
tools:
- name: manulife-workflow-22
description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for Manulife."
inputParameters:
- name: identifier
in: body
type: string
description: "Primary identifier for this workflow"
steps:
- name: process
type: call
call: "manulife-ops.run-workflow-22"
with:
identifier: "{{identifier}}"
- name: upload
type: call
call: "sharepoint.upload-document"
with:
content: "{{process.document}}"
consumes:
- type: http
namespace: manulife-ops
baseUri: "https://api.manulife.com/operations/v1"
authentication:
type: bearer
token: "$secrets.manulife_api_token"
resources:
- name: operations
path: "/operations"
operations:
- name: run-workflow-22
method: POST
- type: http
namespace: sharepoint
baseUri: "https://manulife.sharepoint.com/_api/v2.0"
authentication:
type: bearer
token: "$secrets.sharepoint_token"
resources:
- name: documents
path: "/documents"
operations:
- name: upload-document
method: POST
Orchestrates insurance operations including data retrieval, processing, and automated notification for Manulife.
naftiko: "0.5"
info:
label: "Manulife Workflow 23"
description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for Manulife."
tags:
- insurance
- operations
- hubspot
capability:
exposes:
- type: mcp
namespace: insurance
port: 8080
tools:
- name: manulife-workflow-23
description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for Manulife."
inputParameters:
- name: identifier
in: body
type: string
description: "Primary identifier for this workflow"
steps:
- name: process
type: call
call: "manulife-ops.run-workflow-23"
with:
identifier: "{{identifier}}"
- name: notify
type: call
call: "hubspot.send-email"
with:
to: "{{process.email}}"
subject: "Workflow 23 Complete"
body: "{{process.summary}}"
consumes:
- type: http
namespace: manulife-ops
baseUri: "https://api.manulife.com/operations/v1"
authentication:
type: bearer
token: "$secrets.manulife_api_token"
resources:
- name: operations
path: "/operations"
operations:
- name: run-workflow-23
method: POST
- type: http
namespace: hubspot
baseUri: "https://api.hubapi.com/crm/v3"
authentication:
type: bearer
token: "$secrets.hubspot_token"
resources:
- name: contacts
path: "/contacts"
operations:
- name: send-email
method: POST
Orchestrates insurance operations including data retrieval, processing, and automated notification for Manulife.
naftiko: "0.5"
info:
label: "Manulife Workflow 24"
description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for Manulife."
tags:
- insurance
- operations
- datadog
capability:
exposes:
- type: mcp
namespace: insurance
port: 8080
tools:
- name: manulife-workflow-24
description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for Manulife."
inputParameters:
- name: identifier
in: body
type: string
description: "Primary identifier for this workflow"
steps:
- name: process
type: call
call: "manulife-ops.run-workflow-24"
with:
identifier: "{{identifier}}"
- name: push
type: call
call: "datadog.submit-metrics"
with:
metric_name: "insurance.workflow_24"
data: "{{process.metrics}}"
consumes:
- type: http
namespace: manulife-ops
baseUri: "https://api.manulife.com/operations/v1"
authentication:
type: bearer
token: "$secrets.manulife_api_token"
resources:
- name: operations
path: "/operations"
operations:
- name: run-workflow-24
method: POST
- type: http
namespace: datadog
baseUri: "https://api.datadoghq.com/api/v2"
authentication:
type: bearer
token: "$secrets.datadog_token"
resources:
- name: metrics
path: "/metrics"
operations:
- name: submit-metrics
method: POST
Orchestrates insurance operations including data retrieval, processing, and automated notification for Manulife.
naftiko: "0.5"
info:
label: "Manulife Workflow 25"
description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for Manulife."
tags:
- insurance
- operations
- salesforce
capability:
exposes:
- type: mcp
namespace: insurance
port: 8080
tools:
- name: manulife-workflow-25
description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for Manulife."
inputParameters:
- name: identifier
in: body
type: string
description: "Primary identifier for this workflow"
steps:
- name: process
type: call
call: "manulife-ops.run-workflow-25"
with:
identifier: "{{identifier}}"
- name: create
type: call
call: "salesforce.create-account"
with:
data: "{{process.result}}"
consumes:
- type: http
namespace: manulife-ops
baseUri: "https://api.manulife.com/operations/v1"
authentication:
type: bearer
token: "$secrets.manulife_api_token"
resources:
- name: operations
path: "/operations"
operations:
- name: run-workflow-25
method: POST
- type: http
namespace: salesforce
baseUri: "https://manulife.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: accounts
path: "/accounts"
operations:
- name: create-account
method: POST
Orchestrates insurance operations including data retrieval, processing, and automated notification for Manulife.
naftiko: "0.5"
info:
label: "Manulife Workflow 26"
description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for Manulife."
tags:
- insurance
- operations
- servicenow
capability:
exposes:
- type: mcp
namespace: insurance
port: 8080
tools:
- name: manulife-workflow-26
description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for Manulife."
inputParameters:
- name: identifier
in: body
type: string
description: "Primary identifier for this workflow"
steps:
- name: process
type: call
call: "manulife-ops.run-workflow-26"
with:
identifier: "{{identifier}}"
- name: create
type: call
call: "servicenow.create-incident"
with:
data: "{{process.result}}"
consumes:
- type: http
namespace: manulife-ops
baseUri: "https://api.manulife.com/operations/v1"
authentication:
type: bearer
token: "$secrets.manulife_api_token"
resources:
- name: operations
path: "/operations"
operations:
- name: run-workflow-26
method: POST
- type: http
namespace: servicenow
baseUri: "https://manulife.service-now.com/api/now/v1"
authentication:
type: bearer
token: "$secrets.servicenow_token"
resources:
- name: incidents
path: "/incidents"
operations:
- name: create-incident
method: POST
Orchestrates insurance operations including data retrieval, processing, and automated notification for Manulife.
naftiko: "0.5"
info:
label: "Manulife Workflow 27"
description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for Manulife."
tags:
- insurance
- operations
- slack
capability:
exposes:
- type: mcp
namespace: insurance
port: 8080
tools:
- name: manulife-workflow-27
description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for Manulife."
inputParameters:
- name: identifier
in: body
type: string
description: "Primary identifier for this workflow"
steps:
- name: process
type: call
call: "manulife-ops.run-workflow-27"
with:
identifier: "{{identifier}}"
- name: notify
type: call
call: "slack.post-message"
with:
channel: "#insurance"
text: "Completed workflow 27: {{process.summary}}"
consumes:
- type: http
namespace: manulife-ops
baseUri: "https://api.manulife.com/operations/v1"
authentication:
type: bearer
token: "$secrets.manulife_api_token"
resources:
- name: operations
path: "/operations"
operations:
- name: run-workflow-27
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_token"
resources:
- name: messages
path: "/messages"
operations:
- name: post-message
method: POST
Orchestrates insurance operations including data retrieval, processing, and automated notification for Manulife.
naftiko: "0.5"
info:
label: "Manulife Workflow 28"
description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for Manulife."
tags:
- insurance
- operations
- confluence
capability:
exposes:
- type: mcp
namespace: insurance
port: 8080
tools:
- name: manulife-workflow-28
description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for Manulife."
inputParameters:
- name: identifier
in: body
type: string
description: "Primary identifier for this workflow"
steps:
- name: process
type: call
call: "manulife-ops.run-workflow-28"
with:
identifier: "{{identifier}}"
- name: publish
type: call
call: "confluence.create-page"
with:
space: "INSURA"
title: "Report 28"
content: "{{process.report}}"
consumes:
- type: http
namespace: manulife-ops
baseUri: "https://api.manulife.com/operations/v1"
authentication:
type: bearer
token: "$secrets.manulife_api_token"
resources:
- name: operations
path: "/operations"
operations:
- name: run-workflow-28
method: POST
- type: http
namespace: confluence
baseUri: "https://manulife.atlassian.net/wiki/rest/api"
authentication:
type: bearer
token: "$secrets.confluence_token"
resources:
- name: pages
path: "/pages"
operations:
- name: create-page
method: POST
Orchestrates insurance operations including data retrieval, processing, and automated notification for Manulife.
naftiko: "0.5"
info:
label: "Manulife Workflow 29"
description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for Manulife."
tags:
- insurance
- operations
- powerbi
capability:
exposes:
- type: mcp
namespace: insurance
port: 8080
tools:
- name: manulife-workflow-29
description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for Manulife."
inputParameters:
- name: identifier
in: body
type: string
description: "Primary identifier for this workflow"
steps:
- name: process
type: call
call: "manulife-ops.run-workflow-29"
with:
identifier: "{{identifier}}"
- name: refresh
type: call
call: "powerbi.refresh-dataset"
with:
dataset_id: "workflow_29"
data: "{{process.metrics}}"
consumes:
- type: http
namespace: manulife-ops
baseUri: "https://api.manulife.com/operations/v1"
authentication:
type: bearer
token: "$secrets.manulife_api_token"
resources:
- name: operations
path: "/operations"
operations:
- name: run-workflow-29
method: POST
- type: http
namespace: powerbi
baseUri: "https://api.powerbi.com/v1.0"
authentication:
type: bearer
token: "$secrets.powerbi_token"
resources:
- name: datasets
path: "/datasets"
operations:
- name: refresh-dataset
method: POST
Orchestrates insurance operations including data retrieval, processing, and automated notification for Manulife.
naftiko: "0.5"
info:
label: "Manulife Workflow 3"
description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for Manulife."
tags:
- insurance
- operations
- slack
capability:
exposes:
- type: mcp
namespace: insurance
port: 8080
tools:
- name: manulife-workflow-3
description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for Manulife."
inputParameters:
- name: identifier
in: body
type: string
description: "Primary identifier for this workflow"
steps:
- name: process
type: call
call: "manulife-ops.run-workflow-3"
with:
identifier: "{{identifier}}"
- name: notify
type: call
call: "slack.post-message"
with:
channel: "#insurance"
text: "Completed workflow 3: {{process.summary}}"
consumes:
- type: http
namespace: manulife-ops
baseUri: "https://api.manulife.com/operations/v1"
authentication:
type: bearer
token: "$secrets.manulife_api_token"
resources:
- name: operations
path: "/operations"
operations:
- name: run-workflow-3
method: POST
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_token"
resources:
- name: messages
path: "/messages"
operations:
- name: post-message
method: POST
Orchestrates insurance operations including data retrieval, processing, and automated notification for Manulife.
naftiko: "0.5"
info:
label: "Manulife Workflow 30"
description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for Manulife."
tags:
- insurance
- operations
- jira
capability:
exposes:
- type: mcp
namespace: insurance
port: 8080
tools:
- name: manulife-workflow-30
description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for Manulife."
inputParameters:
- name: identifier
in: body
type: string
description: "Primary identifier for this workflow"
steps:
- name: process
type: call
call: "manulife-ops.run-workflow-30"
with:
identifier: "{{identifier}}"
- name: create-ticket
type: call
call: "jira.create-issue"
with:
project: "INSU"
summary: "Task from workflow 30"
description: "{{process.details}}"
consumes:
- type: http
namespace: manulife-ops
baseUri: "https://api.manulife.com/operations/v1"
authentication:
type: bearer
token: "$secrets.manulife_api_token"
resources:
- name: operations
path: "/operations"
operations:
- name: run-workflow-30
method: POST
- type: http
namespace: jira
baseUri: "https://manulife.atlassian.net/rest/api/3"
authentication:
type: bearer
token: "$secrets.jira_token"
resources:
- name: issues
path: "/issues"
operations:
- name: create-issue
method: POST
Orchestrates insurance operations including data retrieval, processing, and automated notification for Manulife.
naftiko: "0.5"
info:
label: "Manulife Workflow 31"
description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for Manulife."
tags:
- insurance
- operations
- teams
capability:
exposes:
- type: mcp
namespace: insurance
port: 8080
tools:
- name: manulife-workflow-31
description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for Manulife."
inputParameters:
- name: identifier
in: body
type: string
description: "Primary identifier for this workflow"
steps:
- name: process
type: call
call: "manulife-ops.run-workflow-31"
with:
identifier: "{{identifier}}"
- name: notify
type: call
call: "teams.send-message"
with:
channel_id: "insurance"
message: "Workflow 31 complete: {{process.summary}}"
consumes:
- type: http
namespace: manulife-ops
baseUri: "https://api.manulife.com/operations/v1"
authentication:
type: bearer
token: "$secrets.manulife_api_token"
resources:
- name: operations
path: "/operations"
operations:
- name: run-workflow-31
method: POST
- type: http
namespace: teams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.teams_token"
resources:
- name: messages
path: "/messages"
operations:
- name: send-message
method: POST
Orchestrates insurance operations including data retrieval, processing, and automated notification for Manulife.
naftiko: "0.5"
info:
label: "Manulife Workflow 32"
description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for Manulife."
tags:
- insurance
- operations
- tableau
capability:
exposes:
- type: mcp
namespace: insurance
port: 8080
tools:
- name: manulife-workflow-32
description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for Manulife."
inputParameters:
- name: identifier
in: body
type: string
description: "Primary identifier for this workflow"
steps:
- name: process
type: call
call: "manulife-ops.run-workflow-32"
with:
identifier: "{{identifier}}"
- name: refresh
type: call
call: "tableau.publish-datasource"
with:
dataset_id: "workflow_32"
data: "{{process.metrics}}"
consumes:
- type: http
namespace: manulife-ops
baseUri: "https://api.manulife.com/operations/v1"
authentication:
type: bearer
token: "$secrets.manulife_api_token"
resources:
- name: operations
path: "/operations"
operations:
- name: run-workflow-32
method: POST
- type: http
namespace: tableau
baseUri: "https://manulife-tableau.online.tableau.com/api/3.19"
authentication:
type: bearer
token: "$secrets.tableau_token"
resources:
- name: datasources
path: "/datasources"
operations:
- name: publish-datasource
method: POST
Orchestrates insurance operations including data retrieval, processing, and automated notification for Manulife.
naftiko: "0.5"
info:
label: "Manulife Workflow 33"
description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for Manulife."
tags:
- insurance
- operations
- box
capability:
exposes:
- type: mcp
namespace: insurance
port: 8080
tools:
- name: manulife-workflow-33
description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for Manulife."
inputParameters:
- name: identifier
in: body
type: string
description: "Primary identifier for this workflow"
steps:
- name: process
type: call
call: "manulife-ops.run-workflow-33"
with:
identifier: "{{identifier}}"
- name: upload
type: call
call: "box.upload-file"
with:
content: "{{process.document}}"
consumes:
- type: http
namespace: manulife-ops
baseUri: "https://api.manulife.com/operations/v1"
authentication:
type: bearer
token: "$secrets.manulife_api_token"
resources:
- name: operations
path: "/operations"
operations:
- name: run-workflow-33
method: POST
- type: http
namespace: box
baseUri: "https://api.box.com/2.0"
authentication:
type: bearer
token: "$secrets.box_token"
resources:
- name: files
path: "/files"
operations:
- name: upload-file
method: POST
Orchestrates insurance operations including data retrieval, processing, and automated notification for Manulife.
naftiko: "0.5"
info:
label: "Manulife Workflow 34"
description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for Manulife."
tags:
- insurance
- operations
- sharepoint
capability:
exposes:
- type: mcp
namespace: insurance
port: 8080
tools:
- name: manulife-workflow-34
description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for Manulife."
inputParameters:
- name: identifier
in: body
type: string
description: "Primary identifier for this workflow"
steps:
- name: process
type: call
call: "manulife-ops.run-workflow-34"
with:
identifier: "{{identifier}}"
- name: upload
type: call
call: "sharepoint.upload-document"
with:
content: "{{process.document}}"
consumes:
- type: http
namespace: manulife-ops
baseUri: "https://api.manulife.com/operations/v1"
authentication:
type: bearer
token: "$secrets.manulife_api_token"
resources:
- name: operations
path: "/operations"
operations:
- name: run-workflow-34
method: POST
- type: http
namespace: sharepoint
baseUri: "https://manulife.sharepoint.com/_api/v2.0"
authentication:
type: bearer
token: "$secrets.sharepoint_token"
resources:
- name: documents
path: "/documents"
operations:
- name: upload-document
method: POST
Orchestrates insurance operations including data retrieval, processing, and automated notification for Manulife.
naftiko: "0.5"
info:
label: "Manulife Workflow 35"
description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for Manulife."
tags:
- insurance
- operations
- hubspot
capability:
exposes:
- type: mcp
namespace: insurance
port: 8080
tools:
- name: manulife-workflow-35
description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for Manulife."
inputParameters:
- name: identifier
in: body
type: string
description: "Primary identifier for this workflow"
steps:
- name: process
type: call
call: "manulife-ops.run-workflow-35"
with:
identifier: "{{identifier}}"
- name: notify
type: call
call: "hubspot.send-email"
with:
to: "{{process.email}}"
subject: "Workflow 35 Complete"
body: "{{process.summary}}"
consumes:
- type: http
namespace: manulife-ops
baseUri: "https://api.manulife.com/operations/v1"
authentication:
type: bearer
token: "$secrets.manulife_api_token"
resources:
- name: operations
path: "/operations"
operations:
- name: run-workflow-35
method: POST
- type: http
namespace: hubspot
baseUri: "https://api.hubapi.com/crm/v3"
authentication:
type: bearer
token: "$secrets.hubspot_token"
resources:
- name: contacts
path: "/contacts"
operations:
- name: send-email
method: POST
Orchestrates insurance operations including data retrieval, processing, and automated notification for Manulife.
naftiko: "0.5"
info:
label: "Manulife Workflow 4"
description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for Manulife."
tags:
- insurance
- operations
- confluence
capability:
exposes:
- type: mcp
namespace: insurance
port: 8080
tools:
- name: manulife-workflow-4
description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for Manulife."
inputParameters:
- name: identifier
in: body
type: string
description: "Primary identifier for this workflow"
steps:
- name: process
type: call
call: "manulife-ops.run-workflow-4"
with:
identifier: "{{identifier}}"
- name: publish
type: call
call: "confluence.create-page"
with:
space: "INSURA"
title: "Report 4"
content: "{{process.report}}"
consumes:
- type: http
namespace: manulife-ops
baseUri: "https://api.manulife.com/operations/v1"
authentication:
type: bearer
token: "$secrets.manulife_api_token"
resources:
- name: operations
path: "/operations"
operations:
- name: run-workflow-4
method: POST
- type: http
namespace: confluence
baseUri: "https://manulife.atlassian.net/wiki/rest/api"
authentication:
type: bearer
token: "$secrets.confluence_token"
resources:
- name: pages
path: "/pages"
operations:
- name: create-page
method: POST
Orchestrates insurance operations including data retrieval, processing, and automated notification for Manulife.
naftiko: "0.5"
info:
label: "Manulife Workflow 5"
description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for Manulife."
tags:
- insurance
- operations
- powerbi
capability:
exposes:
- type: mcp
namespace: insurance
port: 8080
tools:
- name: manulife-workflow-5
description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for Manulife."
inputParameters:
- name: identifier
in: body
type: string
description: "Primary identifier for this workflow"
steps:
- name: process
type: call
call: "manulife-ops.run-workflow-5"
with:
identifier: "{{identifier}}"
- name: refresh
type: call
call: "powerbi.refresh-dataset"
with:
dataset_id: "workflow_5"
data: "{{process.metrics}}"
consumes:
- type: http
namespace: manulife-ops
baseUri: "https://api.manulife.com/operations/v1"
authentication:
type: bearer
token: "$secrets.manulife_api_token"
resources:
- name: operations
path: "/operations"
operations:
- name: run-workflow-5
method: POST
- type: http
namespace: powerbi
baseUri: "https://api.powerbi.com/v1.0"
authentication:
type: bearer
token: "$secrets.powerbi_token"
resources:
- name: datasets
path: "/datasets"
operations:
- name: refresh-dataset
method: POST
Orchestrates insurance operations including data retrieval, processing, and automated notification for Manulife.
naftiko: "0.5"
info:
label: "Manulife Workflow 6"
description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for Manulife."
tags:
- insurance
- operations
- jira
capability:
exposes:
- type: mcp
namespace: insurance
port: 8080
tools:
- name: manulife-workflow-6
description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for Manulife."
inputParameters:
- name: identifier
in: body
type: string
description: "Primary identifier for this workflow"
steps:
- name: process
type: call
call: "manulife-ops.run-workflow-6"
with:
identifier: "{{identifier}}"
- name: create-ticket
type: call
call: "jira.create-issue"
with:
project: "INSU"
summary: "Task from workflow 6"
description: "{{process.details}}"
consumes:
- type: http
namespace: manulife-ops
baseUri: "https://api.manulife.com/operations/v1"
authentication:
type: bearer
token: "$secrets.manulife_api_token"
resources:
- name: operations
path: "/operations"
operations:
- name: run-workflow-6
method: POST
- type: http
namespace: jira
baseUri: "https://manulife.atlassian.net/rest/api/3"
authentication:
type: bearer
token: "$secrets.jira_token"
resources:
- name: issues
path: "/issues"
operations:
- name: create-issue
method: POST
Orchestrates insurance operations including data retrieval, processing, and automated notification for Manulife.
naftiko: "0.5"
info:
label: "Manulife Workflow 7"
description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for Manulife."
tags:
- insurance
- operations
- teams
capability:
exposes:
- type: mcp
namespace: insurance
port: 8080
tools:
- name: manulife-workflow-7
description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for Manulife."
inputParameters:
- name: identifier
in: body
type: string
description: "Primary identifier for this workflow"
steps:
- name: process
type: call
call: "manulife-ops.run-workflow-7"
with:
identifier: "{{identifier}}"
- name: notify
type: call
call: "teams.send-message"
with:
channel_id: "insurance"
message: "Workflow 7 complete: {{process.summary}}"
consumes:
- type: http
namespace: manulife-ops
baseUri: "https://api.manulife.com/operations/v1"
authentication:
type: bearer
token: "$secrets.manulife_api_token"
resources:
- name: operations
path: "/operations"
operations:
- name: run-workflow-7
method: POST
- type: http
namespace: teams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.teams_token"
resources:
- name: messages
path: "/messages"
operations:
- name: send-message
method: POST
Orchestrates insurance operations including data retrieval, processing, and automated notification for Manulife.
naftiko: "0.5"
info:
label: "Manulife Workflow 8"
description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for Manulife."
tags:
- insurance
- operations
- tableau
capability:
exposes:
- type: mcp
namespace: insurance
port: 8080
tools:
- name: manulife-workflow-8
description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for Manulife."
inputParameters:
- name: identifier
in: body
type: string
description: "Primary identifier for this workflow"
steps:
- name: process
type: call
call: "manulife-ops.run-workflow-8"
with:
identifier: "{{identifier}}"
- name: refresh
type: call
call: "tableau.publish-datasource"
with:
dataset_id: "workflow_8"
data: "{{process.metrics}}"
consumes:
- type: http
namespace: manulife-ops
baseUri: "https://api.manulife.com/operations/v1"
authentication:
type: bearer
token: "$secrets.manulife_api_token"
resources:
- name: operations
path: "/operations"
operations:
- name: run-workflow-8
method: POST
- type: http
namespace: tableau
baseUri: "https://manulife-tableau.online.tableau.com/api/3.19"
authentication:
type: bearer
token: "$secrets.tableau_token"
resources:
- name: datasources
path: "/datasources"
operations:
- name: publish-datasource
method: POST
Orchestrates insurance operations including data retrieval, processing, and automated notification for Manulife.
naftiko: "0.5"
info:
label: "Manulife Workflow 9"
description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for Manulife."
tags:
- insurance
- operations
- box
capability:
exposes:
- type: mcp
namespace: insurance
port: 8080
tools:
- name: manulife-workflow-9
description: "Orchestrates insurance operations including data retrieval, processing, and automated notification for Manulife."
inputParameters:
- name: identifier
in: body
type: string
description: "Primary identifier for this workflow"
steps:
- name: process
type: call
call: "manulife-ops.run-workflow-9"
with:
identifier: "{{identifier}}"
- name: upload
type: call
call: "box.upload-file"
with:
content: "{{process.document}}"
consumes:
- type: http
namespace: manulife-ops
baseUri: "https://api.manulife.com/operations/v1"
authentication:
type: bearer
token: "$secrets.manulife_api_token"
resources:
- name: operations
path: "/operations"
operations:
- name: run-workflow-9
method: POST
- type: http
namespace: box
baseUri: "https://api.box.com/2.0"
authentication:
type: bearer
token: "$secrets.box_token"
resources:
- name: files
path: "/files"
operations:
- name: upload-file
method: POST
Retrieves operational data for Manulife insurance workflows.
naftiko: "0.5"
info:
label: "Manulife Data Lookup 1"
description: "Retrieves operational data for Manulife insurance workflows."
tags:
- insurance
- operations
capability:
exposes:
- type: mcp
namespace: manulife-data
port: 8080
tools:
- name: get-data-1
description: "Retrieves operational data for Manulife insurance workflows."
inputParameters:
- name: identifier
in: body
type: string
description: "Resource identifier"
call: "manulife-data.get-data-1"
with:
identifier: "{{identifier}}"
consumes:
- type: http
namespace: manulife-data
baseUri: "https://api.manulife.com/data/v1"
authentication:
type: bearer
token: "$secrets.manulife_api_token"
resources:
- name: data-1
path: "/data-1/{{identifier}}"
inputParameters:
- name: identifier
in: path
operations:
- name: get-data-1
method: GET
Retrieves operational data for Manulife insurance workflows.
naftiko: "0.5"
info:
label: "Manulife Data Lookup 10"
description: "Retrieves operational data for Manulife insurance workflows."
tags:
- insurance
- operations
capability:
exposes:
- type: mcp
namespace: manulife-data
port: 8080
tools:
- name: get-data-10
description: "Retrieves operational data for Manulife insurance workflows."
inputParameters:
- name: identifier
in: body
type: string
description: "Resource identifier"
call: "manulife-data.get-data-10"
with:
identifier: "{{identifier}}"
consumes:
- type: http
namespace: manulife-data
baseUri: "https://api.manulife.com/data/v1"
authentication:
type: bearer
token: "$secrets.manulife_api_token"
resources:
- name: data-10
path: "/data-10/{{identifier}}"
inputParameters:
- name: identifier
in: path
operations:
- name: get-data-10
method: GET
Retrieves operational data for Manulife insurance workflows.
naftiko: "0.5"
info:
label: "Manulife Data Lookup 11"
description: "Retrieves operational data for Manulife insurance workflows."
tags:
- insurance
- operations
capability:
exposes:
- type: mcp
namespace: manulife-data
port: 8080
tools:
- name: get-data-11
description: "Retrieves operational data for Manulife insurance workflows."
inputParameters:
- name: identifier
in: body
type: string
description: "Resource identifier"
call: "manulife-data.get-data-11"
with:
identifier: "{{identifier}}"
consumes:
- type: http
namespace: manulife-data
baseUri: "https://api.manulife.com/data/v1"
authentication:
type: bearer
token: "$secrets.manulife_api_token"
resources:
- name: data-11
path: "/data-11/{{identifier}}"
inputParameters:
- name: identifier
in: path
operations:
- name: get-data-11
method: GET
Retrieves operational data for Manulife insurance workflows.
naftiko: "0.5"
info:
label: "Manulife Data Lookup 12"
description: "Retrieves operational data for Manulife insurance workflows."
tags:
- insurance
- operations
capability:
exposes:
- type: mcp
namespace: manulife-data
port: 8080
tools:
- name: get-data-12
description: "Retrieves operational data for Manulife insurance workflows."
inputParameters:
- name: identifier
in: body
type: string
description: "Resource identifier"
call: "manulife-data.get-data-12"
with:
identifier: "{{identifier}}"
consumes:
- type: http
namespace: manulife-data
baseUri: "https://api.manulife.com/data/v1"
authentication:
type: bearer
token: "$secrets.manulife_api_token"
resources:
- name: data-12
path: "/data-12/{{identifier}}"
inputParameters:
- name: identifier
in: path
operations:
- name: get-data-12
method: GET
Retrieves operational data for Manulife insurance workflows.
naftiko: "0.5"
info:
label: "Manulife Data Lookup 13"
description: "Retrieves operational data for Manulife insurance workflows."
tags:
- insurance
- operations
capability:
exposes:
- type: mcp
namespace: manulife-data
port: 8080
tools:
- name: get-data-13
description: "Retrieves operational data for Manulife insurance workflows."
inputParameters:
- name: identifier
in: body
type: string
description: "Resource identifier"
call: "manulife-data.get-data-13"
with:
identifier: "{{identifier}}"
consumes:
- type: http
namespace: manulife-data
baseUri: "https://api.manulife.com/data/v1"
authentication:
type: bearer
token: "$secrets.manulife_api_token"
resources:
- name: data-13
path: "/data-13/{{identifier}}"
inputParameters:
- name: identifier
in: path
operations:
- name: get-data-13
method: GET
Retrieves operational data for Manulife insurance workflows.
naftiko: "0.5"
info:
label: "Manulife Data Lookup 14"
description: "Retrieves operational data for Manulife insurance workflows."
tags:
- insurance
- operations
capability:
exposes:
- type: mcp
namespace: manulife-data
port: 8080
tools:
- name: get-data-14
description: "Retrieves operational data for Manulife insurance workflows."
inputParameters:
- name: identifier
in: body
type: string
description: "Resource identifier"
call: "manulife-data.get-data-14"
with:
identifier: "{{identifier}}"
consumes:
- type: http
namespace: manulife-data
baseUri: "https://api.manulife.com/data/v1"
authentication:
type: bearer
token: "$secrets.manulife_api_token"
resources:
- name: data-14
path: "/data-14/{{identifier}}"
inputParameters:
- name: identifier
in: path
operations:
- name: get-data-14
method: GET
Retrieves operational data for Manulife insurance workflows.
naftiko: "0.5"
info:
label: "Manulife Data Lookup 15"
description: "Retrieves operational data for Manulife insurance workflows."
tags:
- insurance
- operations
capability:
exposes:
- type: mcp
namespace: manulife-data
port: 8080
tools:
- name: get-data-15
description: "Retrieves operational data for Manulife insurance workflows."
inputParameters:
- name: identifier
in: body
type: string
description: "Resource identifier"
call: "manulife-data.get-data-15"
with:
identifier: "{{identifier}}"
consumes:
- type: http
namespace: manulife-data
baseUri: "https://api.manulife.com/data/v1"
authentication:
type: bearer
token: "$secrets.manulife_api_token"
resources:
- name: data-15
path: "/data-15/{{identifier}}"
inputParameters:
- name: identifier
in: path
operations:
- name: get-data-15
method: GET
Retrieves operational data for Manulife insurance workflows.
naftiko: "0.5"
info:
label: "Manulife Data Lookup 2"
description: "Retrieves operational data for Manulife insurance workflows."
tags:
- insurance
- operations
capability:
exposes:
- type: mcp
namespace: manulife-data
port: 8080
tools:
- name: get-data-2
description: "Retrieves operational data for Manulife insurance workflows."
inputParameters:
- name: identifier
in: body
type: string
description: "Resource identifier"
call: "manulife-data.get-data-2"
with:
identifier: "{{identifier}}"
consumes:
- type: http
namespace: manulife-data
baseUri: "https://api.manulife.com/data/v1"
authentication:
type: bearer
token: "$secrets.manulife_api_token"
resources:
- name: data-2
path: "/data-2/{{identifier}}"
inputParameters:
- name: identifier
in: path
operations:
- name: get-data-2
method: GET
Retrieves operational data for Manulife insurance workflows.
naftiko: "0.5"
info:
label: "Manulife Data Lookup 3"
description: "Retrieves operational data for Manulife insurance workflows."
tags:
- insurance
- operations
capability:
exposes:
- type: mcp
namespace: manulife-data
port: 8080
tools:
- name: get-data-3
description: "Retrieves operational data for Manulife insurance workflows."
inputParameters:
- name: identifier
in: body
type: string
description: "Resource identifier"
call: "manulife-data.get-data-3"
with:
identifier: "{{identifier}}"
consumes:
- type: http
namespace: manulife-data
baseUri: "https://api.manulife.com/data/v1"
authentication:
type: bearer
token: "$secrets.manulife_api_token"
resources:
- name: data-3
path: "/data-3/{{identifier}}"
inputParameters:
- name: identifier
in: path
operations:
- name: get-data-3
method: GET
Retrieves operational data for Manulife insurance workflows.
naftiko: "0.5"
info:
label: "Manulife Data Lookup 4"
description: "Retrieves operational data for Manulife insurance workflows."
tags:
- insurance
- operations
capability:
exposes:
- type: mcp
namespace: manulife-data
port: 8080
tools:
- name: get-data-4
description: "Retrieves operational data for Manulife insurance workflows."
inputParameters:
- name: identifier
in: body
type: string
description: "Resource identifier"
call: "manulife-data.get-data-4"
with:
identifier: "{{identifier}}"
consumes:
- type: http
namespace: manulife-data
baseUri: "https://api.manulife.com/data/v1"
authentication:
type: bearer
token: "$secrets.manulife_api_token"
resources:
- name: data-4
path: "/data-4/{{identifier}}"
inputParameters:
- name: identifier
in: path
operations:
- name: get-data-4
method: GET
Retrieves operational data for Manulife insurance workflows.
naftiko: "0.5"
info:
label: "Manulife Data Lookup 5"
description: "Retrieves operational data for Manulife insurance workflows."
tags:
- insurance
- operations
capability:
exposes:
- type: mcp
namespace: manulife-data
port: 8080
tools:
- name: get-data-5
description: "Retrieves operational data for Manulife insurance workflows."
inputParameters:
- name: identifier
in: body
type: string
description: "Resource identifier"
call: "manulife-data.get-data-5"
with:
identifier: "{{identifier}}"
consumes:
- type: http
namespace: manulife-data
baseUri: "https://api.manulife.com/data/v1"
authentication:
type: bearer
token: "$secrets.manulife_api_token"
resources:
- name: data-5
path: "/data-5/{{identifier}}"
inputParameters:
- name: identifier
in: path
operations:
- name: get-data-5
method: GET
Retrieves operational data for Manulife insurance workflows.
naftiko: "0.5"
info:
label: "Manulife Data Lookup 6"
description: "Retrieves operational data for Manulife insurance workflows."
tags:
- insurance
- operations
capability:
exposes:
- type: mcp
namespace: manulife-data
port: 8080
tools:
- name: get-data-6
description: "Retrieves operational data for Manulife insurance workflows."
inputParameters:
- name: identifier
in: body
type: string
description: "Resource identifier"
call: "manulife-data.get-data-6"
with:
identifier: "{{identifier}}"
consumes:
- type: http
namespace: manulife-data
baseUri: "https://api.manulife.com/data/v1"
authentication:
type: bearer
token: "$secrets.manulife_api_token"
resources:
- name: data-6
path: "/data-6/{{identifier}}"
inputParameters:
- name: identifier
in: path
operations:
- name: get-data-6
method: GET
Retrieves operational data for Manulife insurance workflows.
naftiko: "0.5"
info:
label: "Manulife Data Lookup 7"
description: "Retrieves operational data for Manulife insurance workflows."
tags:
- insurance
- operations
capability:
exposes:
- type: mcp
namespace: manulife-data
port: 8080
tools:
- name: get-data-7
description: "Retrieves operational data for Manulife insurance workflows."
inputParameters:
- name: identifier
in: body
type: string
description: "Resource identifier"
call: "manulife-data.get-data-7"
with:
identifier: "{{identifier}}"
consumes:
- type: http
namespace: manulife-data
baseUri: "https://api.manulife.com/data/v1"
authentication:
type: bearer
token: "$secrets.manulife_api_token"
resources:
- name: data-7
path: "/data-7/{{identifier}}"
inputParameters:
- name: identifier
in: path
operations:
- name: get-data-7
method: GET
Retrieves operational data for Manulife insurance workflows.
naftiko: "0.5"
info:
label: "Manulife Data Lookup 8"
description: "Retrieves operational data for Manulife insurance workflows."
tags:
- insurance
- operations
capability:
exposes:
- type: mcp
namespace: manulife-data
port: 8080
tools:
- name: get-data-8
description: "Retrieves operational data for Manulife insurance workflows."
inputParameters:
- name: identifier
in: body
type: string
description: "Resource identifier"
call: "manulife-data.get-data-8"
with:
identifier: "{{identifier}}"
consumes:
- type: http
namespace: manulife-data
baseUri: "https://api.manulife.com/data/v1"
authentication:
type: bearer
token: "$secrets.manulife_api_token"
resources:
- name: data-8
path: "/data-8/{{identifier}}"
inputParameters:
- name: identifier
in: path
operations:
- name: get-data-8
method: GET
Retrieves operational data for Manulife insurance workflows.
naftiko: "0.5"
info:
label: "Manulife Data Lookup 9"
description: "Retrieves operational data for Manulife insurance workflows."
tags:
- insurance
- operations
capability:
exposes:
- type: mcp
namespace: manulife-data
port: 8080
tools:
- name: get-data-9
description: "Retrieves operational data for Manulife insurance workflows."
inputParameters:
- name: identifier
in: body
type: string
description: "Resource identifier"
call: "manulife-data.get-data-9"
with:
identifier: "{{identifier}}"
consumes:
- type: http
namespace: manulife-data
baseUri: "https://api.manulife.com/data/v1"
authentication:
type: bearer
token: "$secrets.manulife_api_token"
resources:
- name: data-9
path: "/data-9/{{identifier}}"
inputParameters:
- name: identifier
in: path
operations:
- name: get-data-9
method: GET
Pulls fund performance data from Bloomberg, aggregates returns, and publishes a performance report to SharePoint for wealth advisors.
naftiko: "0.5"
info:
label: "Investment Fund Performance Reporter"
description: "Pulls fund performance data from Bloomberg, aggregates returns, and publishes a performance report to SharePoint for wealth advisors."
tags:
- wealth-management
- bloomberg-enterprise-data
- sharepoint
- reporting
capability:
exposes:
- type: mcp
namespace: fund-performance
port: 8080
tools:
- name: generate-fund-report
description: "Generate a fund performance report from Bloomberg data and publish to SharePoint."
inputParameters:
- name: fund_id
in: body
type: string
description: "The fund Bloomberg identifier."
- name: period
in: body
type: string
description: "Reporting period (e.g., 2026-Q1)."
steps:
- name: get-performance
type: call
call: "bloomberg.get-fund-data"
with:
fund_id: "{{fund_id}}"
period: "{{period}}"
- name: publish-report
type: call
call: "sharepoint.upload-file"
with:
site_id: "wealth_reports"
folder_path: "FundPerformance/{{fund_id}}/{{period}}"
content: "Return: {{get-performance.total_return}}. Benchmark: {{get-performance.benchmark_return}}. Alpha: {{get-performance.alpha}}."
consumes:
- type: http
namespace: bloomberg
baseUri: "https://api.bloomberg.com/eap/v1"
authentication:
type: bearer
token: "$secrets.bloomberg_token"
resources:
- name: fund-data
path: "/catalogs/funds/{{fund_id}}/performance"
inputParameters:
- name: fund_id
in: path
- name: period
in: query
operations:
- name: get-fund-data
method: GET
- type: http
namespace: sharepoint
baseUri: "https://graph.microsoft.com/v1.0/sites"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: drive-items
path: "/{{site_id}}/drive/root:/{{folder_path}}"
inputParameters:
- name: site_id
in: path
- name: folder_path
in: path
operations:
- name: upload-file
method: PUT
Monitors Jira project boards for regulatory compliance initiatives, tracking audit findings, remediation tasks, and deadlines.
naftiko: "0.5"
info:
label: "Jira Compliance Project Tracker"
description: "Monitors Jira project boards for regulatory compliance initiatives, tracking audit findings, remediation tasks, and deadlines."
tags:
- compliance
- jira
- project-management
capability:
exposes:
- type: mcp
namespace: compliance-projects
port: 8080
tools:
- name: get-compliance-issues
description: "Retrieve open compliance issues from Jira."
inputParameters:
- name: project_key
in: body
type: string
description: "Jira project key."
call: "jira.search-issues"
with:
project: "{{project_key}}"
status: "open"
consumes:
- type: http
namespace: jira
baseUri: "https://manulife.atlassian.net/rest/api/3"
authentication:
type: basic
username: "$secrets.jira_user"
password: "$secrets.jira_token"
resources:
- name: search
path: "/search"
operations:
- name: search-issues
method: POST
Processes Know Your Customer documents by validating identity through the Manulife verification service, storing documents in SharePoint, and updating the Salesforce client record.
naftiko: "0.5"
info:
label: "KYC Document Verification Pipeline"
description: "Processes Know Your Customer documents by validating identity through the Manulife verification service, storing documents in SharePoint, and updating the Salesforce client record."
tags:
- kyc
- compliance
- sharepoint
- salesforce
capability:
exposes:
- type: mcp
namespace: kyc-verification
port: 8080
tools:
- name: verify-kyc
description: "Process KYC document verification for a client."
inputParameters:
- name: client_id
in: body
type: string
description: "The client identifier."
- name: document_type
in: body
type: string
description: "Document type (passport, drivers-license, utility-bill)."
- name: document_url
in: body
type: string
description: "URL to the uploaded document."
steps:
- name: verify-identity
type: call
call: "verification-service.verify"
with:
client_id: "{{client_id}}"
doc_type: "{{document_type}}"
doc_url: "{{document_url}}"
- name: store-document
type: call
call: "sharepoint.upload-file"
with:
site_id: "kyc_documents"
folder_path: "Clients/{{client_id}}/{{document_type}}"
content: "{{document_url}}"
- name: update-client
type: call
call: "salesforce.update-account"
with:
account_id: "{{client_id}}"
kyc_status: "{{verify-identity.status}}"
kyc_date: "{{verify-identity.verification_date}}"
consumes:
- type: http
namespace: verification-service
baseUri: "https://api.manulife.com/kyc/v1"
authentication:
type: bearer
token: "$secrets.manulife_api_token"
resources:
- name: verifications
path: "/verify"
operations:
- name: verify
method: POST
- type: http
namespace: sharepoint
baseUri: "https://graph.microsoft.com/v1.0/sites"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: drive-items
path: "/{{site_id}}/drive/root:/{{folder_path}}"
inputParameters:
- name: site_id
in: path
- name: folder_path
in: path
operations:
- name: upload-file
method: PUT
- type: http
namespace: salesforce
baseUri: "https://manulife.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: update-account
method: PATCH
Posts financial advisor positions to LinkedIn, sourcing candidates from Workday requisitions for the wealth management division.
naftiko: "0.5"
info:
label: "LinkedIn Financial Advisor Recruiting"
description: "Posts financial advisor positions to LinkedIn, sourcing candidates from Workday requisitions for the wealth management division."
tags:
- recruiting
- linkedin
- workday
capability:
exposes:
- type: mcp
namespace: advisor-recruiting
port: 8080
tools:
- name: publish-advisor-job
description: "Pull a Workday requisition and publish to LinkedIn."
inputParameters:
- name: requisition_id
in: body
type: string
description: "Workday job requisition ID."
steps:
- name: get-req
type: call
call: "workday.get-requisition"
with:
req_id: "{{requisition_id}}"
- name: post-job
type: call
call: "linkedin.create-job-post"
with:
title: "{{get-req.title}}"
description: "{{get-req.description}}"
location: "{{get-req.location}}"
consumes:
- type: http
namespace: workday
baseUri: "https://wd2-impl-services1.workday.com/ccx/api/v1"
authentication:
type: bearer
token: "$secrets.workday_token"
resources:
- name: requisitions
path: "/recruiting/requisitions/{{req_id}}"
inputParameters:
- name: req_id
in: path
operations:
- name: get-requisition
method: GET
- type: http
namespace: linkedin
baseUri: "https://api.linkedin.com/v2"
authentication:
type: bearer
token: "$secrets.linkedin_token"
resources:
- name: job-posts
path: "/jobPosts"
operations:
- name: create-job-post
method: POST
Sends targeted client newsletters via MailChimp for wealth management updates, market insights, and product announcements.
naftiko: "0.5"
info:
label: "MailChimp Client Newsletter Manager"
description: "Sends targeted client newsletters via MailChimp for wealth management updates, market insights, and product announcements."
tags:
- marketing
- mailchimp
- client-communications
capability:
exposes:
- type: mcp
namespace: client-newsletters
port: 8080
tools:
- name: send-client-newsletter
description: "Send a MailChimp newsletter to client segments."
inputParameters:
- name: segment_name
in: body
type: string
description: "Client segment name."
- name: subject_line
in: body
type: string
description: "Email subject."
steps:
- name: get-segment
type: call
call: "salesforce.get-segment"
with:
segment: "{{segment_name}}"
- name: send-campaign
type: call
call: "mailchimp.send-campaign"
with:
subject: "{{subject_line}}"
recipients: "{{get-segment.emails}}"
consumes:
- type: http
namespace: salesforce
baseUri: "https://manulife.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: contacts
path: "/sobjects/Contact"
operations:
- name: get-segment
method: GET
- type: http
namespace: mailchimp
baseUri: "https://us1.api.mailchimp.com/3.0"
authentication:
type: basic
username: "anystring"
password: "$secrets.mailchimp_api_key"
resources:
- name: campaigns
path: "/campaigns"
operations:
- name: send-campaign
method: POST
Generates Microsoft Excel actuarial reports with loss ratio, reserving, and experience data from SAP HANA for quarterly board presentations.
naftiko: "0.5"
info:
label: "Microsoft Excel Actuarial Report Builder"
description: "Generates Microsoft Excel actuarial reports with loss ratio, reserving, and experience data from SAP HANA for quarterly board presentations."
tags:
- actuarial
- microsoft-excel
- sap-hana
- reporting
capability:
exposes:
- type: mcp
namespace: actuarial-reports
port: 8080
tools:
- name: build-actuarial-report
description: "Generate an actuarial Excel report from SAP HANA data and email to stakeholders."
inputParameters:
- name: report_type
in: body
type: string
description: "Report type (loss-ratio, ibnr, experience-study)."
- name: period
in: body
type: string
description: "Reporting period."
- name: recipient_email
in: body
type: string
description: "Recipient email."
steps:
- name: get-data
type: call
call: "sap-hana.run-query"
with:
report_type: "{{report_type}}"
period: "{{period}}"
- name: send-report
type: call
call: "outlook.send-email"
with:
to: "{{recipient_email}}"
subject: "Actuarial Report: {{report_type}} - {{period}}"
body: "Attached actuarial {{report_type}} report for {{period}}. Summary: {{get-data.summary}}."
consumes:
- type: http
namespace: sap-hana
baseUri: "https://manulife-hana.sap.com/sap/opu/odata/sap"
authentication:
type: basic
username: "$secrets.sap_hana_user"
password: "$secrets.sap_hana_password"
resources:
- name: reports
path: "/ACTUARIAL_SRV/{{report_type}}"
inputParameters:
- name: report_type
in: path
operations:
- name: run-query
method: GET
- type: http
namespace: outlook
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: send-mail
path: "/me/sendMail"
operations:
- name: send-email
method: POST
Creates and tracks regulatory compliance tasks in Microsoft Planner for audit preparation, regulatory filings, and policy reviews.
naftiko: "0.5"
info:
label: "Microsoft Planner Compliance Task Tracker"
description: "Creates and tracks regulatory compliance tasks in Microsoft Planner for audit preparation, regulatory filings, and policy reviews."
tags:
- compliance
- microsoft-planner
- task-management
capability:
exposes:
- type: mcp
namespace: compliance-tasks
port: 8080
tools:
- name: create-compliance-task
description: "Create a compliance tracking task in Microsoft Planner."
inputParameters:
- name: task_title
in: body
type: string
description: "Task title."
- name: due_date
in: body
type: string
description: "Due date in YYYY-MM-DD format."
- name: plan_id
in: body
type: string
description: "Planner plan ID."
- name: priority
in: body
type: string
description: "Priority (urgent, important, medium, low)."
call: "planner.create-task"
with:
plan_id: "{{plan_id}}"
title: "{{task_title}}"
due_date: "{{due_date}}"
priority: "{{priority}}"
consumes:
- type: http
namespace: planner
baseUri: "https://graph.microsoft.com/v1.0/planner"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: tasks
path: "/tasks"
operations:
- name: create-task
method: POST
Triggers Microsoft Power Automate flows for automated claims processing, routing claims through approval chains based on value thresholds.
naftiko: "0.5"
info:
label: "Microsoft Power Automate Claims Workflow"
description: "Triggers Microsoft Power Automate flows for automated claims processing, routing claims through approval chains based on value thresholds."
tags:
- claims
- microsoft-power-automate
- automation
capability:
exposes:
- type: mcp
namespace: claims-automation
port: 8080
tools:
- name: trigger-claims-flow
description: "Trigger a Power Automate flow for claims processing."
inputParameters:
- name: claim_number
in: body
type: string
description: "The claim number."
- name: claim_value
in: body
type: number
description: "Claim value amount."
call: "powerautomate.trigger-flow"
with:
claim_number: "{{claim_number}}"
value: "{{claim_value}}"
consumes:
- type: http
namespace: powerautomate
baseUri: "https://prod-123.westus.logic.azure.com/workflows"
authentication:
type: apiKey
key: "$secrets.power_automate_key"
resources:
- name: flows
path: "/claims-approval/triggers/manual/paths/invoke"
operations:
- name: trigger-flow
method: POST
Posts a daily claims summary to Microsoft Teams with open claims count, average processing time, and pending approvals.
naftiko: "0.5"
info:
label: "Microsoft Teams Daily Claims Summary"
description: "Posts a daily claims summary to Microsoft Teams with open claims count, average processing time, and pending approvals."
tags:
- claims
- microsoft-teams
- daily-reporting
capability:
exposes:
- type: mcp
namespace: claims-summary
port: 8080
tools:
- name: post-daily-summary
description: "Generate and post daily claims summary to Microsoft Teams."
inputParameters:
- name: team_channel_id
in: body
type: string
description: "Microsoft Teams channel ID."
steps:
- name: get-claims-stats
type: call
call: "claims-system.get-daily-stats"
with:
date: "today"
- name: post-summary
type: call
call: "msteams.send-message"
with:
channel_id: "{{team_channel_id}}"
text: "Daily Claims Summary: {{get-claims-stats.open_claims}} open | {{get-claims-stats.avg_processing_days}} avg days | {{get-claims-stats.pending_approvals}} pending approvals | {{get-claims-stats.total_paid}} paid today"
consumes:
- type: http
namespace: claims-system
baseUri: "https://api.manulife.com/claims/v1"
authentication:
type: bearer
token: "$secrets.manulife_api_token"
resources:
- name: stats
path: "/stats/daily"
operations:
- name: get-daily-stats
method: GET
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{channel_id}}/channels/General/messages"
inputParameters:
- name: channel_id
in: path
operations:
- name: send-message
method: POST
When a new claim is submitted, creates the claim record, opens a ServiceNow tracking ticket, assigns an adjuster via Workday lookup, and notifies the claimant via Microsoft Outlook.
naftiko: "0.5"
info:
label: "New Claims Intake Orchestrator"
description: "When a new claim is submitted, creates the claim record, opens a ServiceNow tracking ticket, assigns an adjuster via Workday lookup, and notifies the claimant via Microsoft Outlook."
tags:
- claims
- intake
- servicenow
- workday
- microsoft-outlook
capability:
exposes:
- type: mcp
namespace: claims-intake
port: 8080
tools:
- name: process-new-claim
description: "Process a new insurance claim through intake, assignment, and notification."
inputParameters:
- name: policy_number
in: body
type: string
description: "The policy number associated with the claim."
- name: claim_type
in: body
type: string
description: "Type of claim (life, health, disability, dental)."
- name: description
in: body
type: string
description: "Description of the claim."
- name: claimant_email
in: body
type: string
description: "Claimant email address."
steps:
- name: create-claim
type: call
call: "claims-system.create-claim"
with:
policy_number: "{{policy_number}}"
claim_type: "{{claim_type}}"
description: "{{description}}"
- name: create-ticket
type: call
call: "servicenow.create-incident"
with:
short_description: "New claim: {{create-claim.claim_number}} - {{claim_type}}"
category: "claims"
description: "Policy: {{policy_number}}. Claim: {{create-claim.claim_number}}. Type: {{claim_type}}."
- name: get-adjuster
type: call
call: "workday.get-available-adjuster"
with:
claim_type: "{{claim_type}}"
- name: notify-claimant
type: call
call: "outlook.send-email"
with:
to: "{{claimant_email}}"
subject: "Claim received: {{create-claim.claim_number}}"
body: "Your {{claim_type}} claim has been received and assigned to {{get-adjuster.full_name}}. Reference: {{create-claim.claim_number}}."
consumes:
- type: http
namespace: claims-system
baseUri: "https://api.manulife.com/claims/v1"
authentication:
type: bearer
token: "$secrets.manulife_api_token"
resources:
- name: claims
path: "/claims"
operations:
- name: create-claim
method: POST
- type: http
namespace: servicenow
baseUri: "https://manulife.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: workday
baseUri: "https://wd2-impl-services1.workday.com/ccx/api/v1"
authentication:
type: bearer
token: "$secrets.workday_token"
resources:
- name: adjusters
path: "/workers"
operations:
- name: get-available-adjuster
method: GET
- type: http
namespace: outlook
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: send-mail
path: "/me/sendMail"
operations:
- name: send-email
method: POST
Monitors Manulife infrastructure health via New Relic, tracking server CPU, memory, and disk utilization.
naftiko: "0.5"
info:
label: "New Relic Infrastructure Monitor"
description: "Monitors Manulife infrastructure health via New Relic, tracking server CPU, memory, and disk utilization."
tags:
- monitoring
- new-relic
- infrastructure
capability:
exposes:
- type: mcp
namespace: infra-monitor
port: 8080
tools:
- name: get-infra-health
description: "Retrieve infrastructure health metrics from New Relic."
inputParameters:
- name: host_name
in: body
type: string
description: "The host name to monitor."
call: "newrelic.get-host-metrics"
with:
host: "{{host_name}}"
consumes:
- type: http
namespace: newrelic
baseUri: "https://api.newrelic.com/v2"
authentication:
type: apiKey
key: "$secrets.newrelic_api_key"
resources:
- name: hosts
path: "/servers.json"
inputParameters:
- name: host
in: query
operations:
- name: get-host-metrics
method: GET
Queries Oracle E-Business Suite for general ledger balances and journal entries for financial reconciliation and reporting.
naftiko: "0.5"
info:
label: "Oracle E-Business Suite General Ledger Query"
description: "Queries Oracle E-Business Suite for general ledger balances and journal entries for financial reconciliation and reporting."
tags:
- finance
- oracle-e-business-suite
- general-ledger
capability:
exposes:
- type: mcp
namespace: gl-query
port: 8080
tools:
- name: get-gl-balance
description: "Query Oracle EBS for general ledger balance by account and period."
inputParameters:
- name: account_code
in: body
type: string
description: "GL account code."
- name: period
in: body
type: string
description: "Accounting period."
call: "oracle-ebs.get-balance"
with:
account: "{{account_code}}"
period: "{{period}}"
consumes:
- type: http
namespace: oracle-ebs
baseUri: "https://manulife-ebs.oraclecloud.com/webservices/rest"
authentication:
type: basic
username: "$secrets.oracle_ebs_user"
password: "$secrets.oracle_ebs_password"
resources:
- name: gl-balances
path: "/gl/balances"
inputParameters:
- name: account
in: query
- name: period
in: query
operations:
- name: get-balance
method: GET
Audits Palo Alto Networks firewall rules for Manulife network security compliance, checking policy configurations against security standards.
naftiko: "0.5"
info:
label: "Palo Alto Security Audit"
description: "Audits Palo Alto Networks firewall rules for Manulife network security compliance, checking policy configurations against security standards."
tags:
- security
- palo-alto-networks
- compliance
capability:
exposes:
- type: mcp
namespace: security-audit
port: 8080
tools:
- name: audit-firewall-rules
description: "Retrieve and audit Palo Alto firewall rules for compliance."
inputParameters:
- name: device_group
in: body
type: string
description: "Palo Alto device group name."
call: "paloalto.get-security-rules"
with:
device_group: "{{device_group}}"
consumes:
- type: http
namespace: paloalto
baseUri: "https://manulife-panorama.paloaltonetworks.com/restapi/v10.2"
authentication:
type: apiKey
key: "$secrets.paloalto_api_key"
resources:
- name: security-rules
path: "/Policies/SecurityRules"
inputParameters:
- name: device_group
in: query
operations:
- name: get-security-rules
method: GET
Retrieves insurance policy details from the Manulife policy administration system by policy number, returning coverage type, premium, beneficiaries, and status.
naftiko: "0.5"
info:
label: "Policy Lookup"
description: "Retrieves insurance policy details from the Manulife policy administration system by policy number, returning coverage type, premium, beneficiaries, and status."
tags:
- insurance
- policy-management
- salesforce
capability:
exposes:
- type: mcp
namespace: policy-lookup
port: 8080
tools:
- name: get-policy
description: "Look up an insurance policy by policy number."
inputParameters:
- name: policy_number
in: body
type: string
description: "The Manulife policy number."
call: "policy-admin.get-policy"
with:
policy_number: "{{policy_number}}"
consumes:
- type: http
namespace: policy-admin
baseUri: "https://api.manulife.com/policy/v1"
authentication:
type: bearer
token: "$secrets.manulife_api_token"
resources:
- name: policies
path: "/policies/{{policy_number}}"
inputParameters:
- name: policy_number
in: path
operations:
- name: get-policy
method: GET
Automates policy renewal by checking expiring policies, generating renewal quotes, updating Salesforce records, and sending renewal notices via Microsoft Outlook.
naftiko: "0.5"
info:
label: "Policy Renewal Pipeline"
description: "Automates policy renewal by checking expiring policies, generating renewal quotes, updating Salesforce records, and sending renewal notices via Microsoft Outlook."
tags:
- insurance
- renewal
- salesforce
- microsoft-outlook
capability:
exposes:
- type: mcp
namespace: policy-renewal
port: 8080
tools:
- name: process-renewal
description: "Process a policy renewal: generate quote, update CRM, and send notice."
inputParameters:
- name: policy_number
in: body
type: string
description: "The expiring policy number."
- name: renewal_date
in: body
type: string
description: "Renewal effective date in YYYY-MM-DD format."
steps:
- name: get-policy
type: call
call: "policy-admin.get-policy"
with:
policy_number: "{{policy_number}}"
- name: generate-renewal-quote
type: call
call: "rating-engine.get-renewal-quote"
with:
policy_number: "{{policy_number}}"
renewal_date: "{{renewal_date}}"
- name: update-salesforce
type: call
call: "salesforce.update-opportunity"
with:
policy_number: "{{policy_number}}"
stage: "Renewal"
amount: "{{generate-renewal-quote.premium}}"
- name: send-notice
type: call
call: "outlook.send-email"
with:
to: "{{get-policy.policyholder_email}}"
subject: "Policy Renewal Notice: {{policy_number}}"
body: "Your policy {{policy_number}} is due for renewal on {{renewal_date}}. New premium: {{generate-renewal-quote.premium}}. Coverage: {{get-policy.coverage_amount}}."
consumes:
- type: http
namespace: policy-admin
baseUri: "https://api.manulife.com/policy/v1"
authentication:
type: bearer
token: "$secrets.manulife_api_token"
resources:
- name: policies
path: "/policies/{{policy_number}}"
inputParameters:
- name: policy_number
in: path
operations:
- name: get-policy
method: GET
- type: http
namespace: rating-engine
baseUri: "https://api.manulife.com/rating/v1"
authentication:
type: bearer
token: "$secrets.manulife_api_token"
resources:
- name: renewal-quotes
path: "/renewal-quotes"
operations:
- name: get-renewal-quote
method: POST
- type: http
namespace: salesforce
baseUri: "https://manulife.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: opportunities
path: "/sobjects/Opportunity"
operations:
- name: update-opportunity
method: PATCH
- type: http
namespace: outlook
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: send-mail
path: "/me/sendMail"
operations:
- name: send-email
method: POST
Refreshes the Power BI claims analytics dashboard with latest claims data for management reporting.
naftiko: "0.5"
info:
label: "Power BI Claims Analytics Dashboard"
description: "Refreshes the Power BI claims analytics dashboard with latest claims data for management reporting."
tags:
- reporting
- power-bi
- claims
- analytics
capability:
exposes:
- type: mcp
namespace: claims-bi
port: 8080
tools:
- name: refresh-claims-dashboard
description: "Trigger a Power BI dataset refresh for claims analytics."
inputParameters:
- name: dataset_id
in: body
type: string
description: "The Power BI dataset ID."
call: "powerbi.refresh-dataset"
with:
dataset_id: "{{dataset_id}}"
consumes:
- type: http
namespace: powerbi
baseUri: "https://api.powerbi.com/v1.0/myorg"
authentication:
type: bearer
token: "$secrets.powerbi_token"
resources:
- name: datasets
path: "/datasets/{{dataset_id}}/refreshes"
inputParameters:
- name: dataset_id
in: path
operations:
- name: refresh-dataset
method: POST
Generates an insurance premium quote based on coverage type, amount, term, and applicant profile.
naftiko: "0.5"
info:
label: "Premium Quote Generator"
description: "Generates an insurance premium quote based on coverage type, amount, term, and applicant profile."
tags:
- insurance
- pricing
- quotes
capability:
exposes:
- type: mcp
namespace: premium-quotes
port: 8080
tools:
- name: generate-quote
description: "Generate a premium quote for an insurance product."
inputParameters:
- name: product_type
in: body
type: string
description: "Insurance product type."
- name: coverage_amount
in: body
type: number
description: "Desired coverage amount."
- name: term_years
in: body
type: integer
description: "Policy term in years."
- name: applicant_age
in: body
type: integer
description: "Applicant age."
call: "rating-engine.get-quote"
with:
product: "{{product_type}}"
coverage: "{{coverage_amount}}"
term: "{{term_years}}"
age: "{{applicant_age}}"
consumes:
- type: http
namespace: rating-engine
baseUri: "https://api.manulife.com/rating/v1"
authentication:
type: bearer
token: "$secrets.manulife_api_token"
resources:
- name: quotes
path: "/quotes"
operations:
- name: get-quote
method: POST
Generates regulatory compliance documents, validates against compliance rules in Oracle E-Business Suite, and archives to Box with retention policies.
naftiko: "0.5"
info:
label: "Regulatory Compliance Document Filer"
description: "Generates regulatory compliance documents, validates against compliance rules in Oracle E-Business Suite, and archives to Box with retention policies."
tags:
- compliance
- regulatory
- oracle-e-business-suite
- box
capability:
exposes:
- type: mcp
namespace: compliance-filing
port: 8080
tools:
- name: file-compliance-document
description: "Validate and file a regulatory compliance document."
inputParameters:
- name: document_type
in: body
type: string
description: "Document type (annual-statement, risk-report, capital-adequacy)."
- name: jurisdiction
in: body
type: string
description: "Regulatory jurisdiction (OSFI, SEC, MAS)."
- name: filing_period
in: body
type: string
description: "Filing period."
steps:
- name: validate-document
type: call
call: "oracle-ebs.validate-compliance"
with:
doc_type: "{{document_type}}"
jurisdiction: "{{jurisdiction}}"
- name: archive-document
type: call
call: "box.upload-file"
with:
folder_id: "regulatory_filings"
file_name: "{{document_type}}_{{jurisdiction}}_{{filing_period}}"
metadata: "jurisdiction:{{jurisdiction}},type:{{document_type}},period:{{filing_period}},retention:10years"
consumes:
- type: http
namespace: oracle-ebs
baseUri: "https://manulife-ebs.oraclecloud.com/webservices/rest"
authentication:
type: basic
username: "$secrets.oracle_ebs_user"
password: "$secrets.oracle_ebs_password"
resources:
- name: compliance
path: "/compliance/validate"
operations:
- name: validate-compliance
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
Generates retirement plan statements by pulling portfolio data, calculating projected income, and emailing the statement via Microsoft Outlook.
naftiko: "0.5"
info:
label: "Retirement Plan Statement Generator"
description: "Generates retirement plan statements by pulling portfolio data, calculating projected income, and emailing the statement via Microsoft Outlook."
tags:
- retirement
- wealth-management
- microsoft-outlook
- financial-planning
capability:
exposes:
- type: mcp
namespace: retirement-statements
port: 8080
tools:
- name: generate-statement
description: "Generate and email a retirement plan statement."
inputParameters:
- name: client_id
in: body
type: string
description: "Client ID."
- name: plan_id
in: body
type: string
description: "Retirement plan ID."
- name: client_email
in: body
type: string
description: "Client email address."
steps:
- name: get-portfolio
type: call
call: "wealth-platform.get-retirement-plan"
with:
client_id: "{{client_id}}"
plan_id: "{{plan_id}}"
- name: send-statement
type: call
call: "outlook.send-email"
with:
to: "{{client_email}}"
subject: "Your Retirement Plan Statement"
body: "Plan ID: {{plan_id}}. Current balance: {{get-portfolio.balance}}. Projected retirement income: {{get-portfolio.projected_income}}/month. Contribution rate: {{get-portfolio.contribution_rate}}%."
consumes:
- type: http
namespace: wealth-platform
baseUri: "https://api.manulife.com/wealth/v1"
authentication:
type: bearer
token: "$secrets.manulife_api_token"
resources:
- name: retirement
path: "/clients/{{client_id}}/retirement-plans/{{plan_id}}"
inputParameters:
- name: client_id
in: path
- name: plan_id
in: path
operations:
- name: get-retirement-plan
method: GET
- type: http
namespace: outlook
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: send-mail
path: "/me/sendMail"
operations:
- name: send-email
method: POST
Retrieves client details from Salesforce including contact information, policy history, and relationship status for advisor use.
naftiko: "0.5"
info:
label: "Salesforce Client Record Lookup"
description: "Retrieves client details from Salesforce including contact information, policy history, and relationship status for advisor use."
tags:
- crm
- salesforce
- client-management
capability:
exposes:
- type: mcp
namespace: client-crm
port: 8080
tools:
- name: get-client-record
description: "Look up a client record in Salesforce by account ID."
inputParameters:
- name: account_id
in: body
type: string
description: "The Salesforce account ID."
call: "salesforce.get-account"
with:
account_id: "{{account_id}}"
consumes:
- type: http
namespace: salesforce
baseUri: "https://manulife.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
Queries SAP HANA for financial reporting data including general ledger balances, investment income, and reserve calculations.
naftiko: "0.5"
info:
label: "SAP HANA Financial Data Query"
description: "Queries SAP HANA for financial reporting data including general ledger balances, investment income, and reserve calculations."
tags:
- finance
- sap-hana
- reporting
capability:
exposes:
- type: mcp
namespace: financial-data
port: 8080
tools:
- name: query-financial-data
description: "Query SAP HANA for financial reporting data."
inputParameters:
- name: report_type
in: body
type: string
description: "Report type (gl-balances, investment-income, reserves)."
- name: period
in: body
type: string
description: "Reporting period (e.g., 2026-03)."
call: "sap-hana.run-query"
with:
report_type: "{{report_type}}"
period: "{{period}}"
consumes:
- type: http
namespace: sap-hana
baseUri: "https://manulife-hana.sap.com/sap/opu/odata/sap"
authentication:
type: basic
username: "$secrets.sap_hana_user"
password: "$secrets.sap_hana_password"
resources:
- name: reports
path: "/FIN_REPORTING_SRV/{{report_type}}"
inputParameters:
- name: report_type
in: path
- name: period
in: query
operations:
- name: run-query
method: GET
Creates ServiceNow incidents for IT issues at Manulife offices, including system outages, application errors, and access requests.
naftiko: "0.5"
info:
label: "ServiceNow IT Incident Creator"
description: "Creates ServiceNow incidents for IT issues at Manulife offices, including system outages, application errors, and access requests."
tags:
- it-support
- servicenow
- incident-management
capability:
exposes:
- type: mcp
namespace: it-incidents
port: 8080
tools:
- name: create-incident
description: "Create a new ServiceNow incident for IT support."
inputParameters:
- name: short_description
in: body
type: string
description: "Brief summary of the incident."
- name: category
in: body
type: string
description: "Incident category."
- name: priority
in: body
type: string
description: "Priority level."
call: "servicenow.create-incident"
with:
short_description: "{{short_description}}"
category: "{{category}}"
priority: "{{priority}}"
consumes:
- type: http
namespace: servicenow
baseUri: "https://manulife.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
Routes compliance alerts to the appropriate Slack channel based on alert type and jurisdiction for rapid response.
naftiko: "0.5"
info:
label: "Slack Compliance Alert Router"
description: "Routes compliance alerts to the appropriate Slack channel based on alert type and jurisdiction for rapid response."
tags:
- compliance
- slack
- alerting
capability:
exposes:
- type: mcp
namespace: compliance-alerts
port: 8080
tools:
- name: route-compliance-alert
description: "Route a compliance alert to the correct Slack channel."
inputParameters:
- name: alert_type
in: body
type: string
description: "Alert type (aml, privacy, suitability, regulatory-change)."
- name: jurisdiction
in: body
type: string
description: "Jurisdiction (canada, us, asia)."
- name: message
in: body
type: string
description: "Alert message."
call: "slack.post-message"
with:
channel: "compliance-{{alert_type}}-{{jurisdiction}}"
text: "[{{alert_type}}] {{message}}"
consumes:
- type: http
namespace: slack
baseUri: "https://slack.com/api"
authentication:
type: bearer
token: "$secrets.slack_bot_token"
resources:
- name: messages
path: "/chat.postMessage"
operations:
- name: post-message
method: POST
Monitors Manulife network infrastructure health via SolarWinds, tracking device uptime, bandwidth, and latency.
naftiko: "0.5"
info:
label: "SolarWinds Network Health Monitor"
description: "Monitors Manulife network infrastructure health via SolarWinds, tracking device uptime, bandwidth, and latency."
tags:
- network
- solarwinds
- infrastructure
capability:
exposes:
- type: mcp
namespace: network-health
port: 8080
tools:
- name: get-network-status
description: "Check SolarWinds for network health at a Manulife location."
inputParameters:
- name: location
in: body
type: string
description: "Office or data center location."
call: "solarwinds.get-nodes"
with:
location: "{{location}}"
consumes:
- type: http
namespace: solarwinds
baseUri: "https://manulife-solarwinds.com/SolarWinds/InformationService/v3/Json"
authentication:
type: basic
username: "$secrets.solarwinds_user"
password: "$secrets.solarwinds_password"
resources:
- name: nodes
path: "/Query"
operations:
- name: get-nodes
method: POST
Triggers a Tableau dashboard refresh for actuarial loss ratio and reserving analytics, pulling data from the data warehouse.
naftiko: "0.5"
info:
label: "Tableau Actuarial Dashboard Refresh"
description: "Triggers a Tableau dashboard refresh for actuarial loss ratio and reserving analytics, pulling data from the data warehouse."
tags:
- actuarial
- tableau
- reporting
- analytics
capability:
exposes:
- type: mcp
namespace: actuarial-dashboard
port: 8080
tools:
- name: refresh-actuarial-dashboard
description: "Trigger a Tableau dataset refresh for actuarial analytics."
inputParameters:
- name: dataset_id
in: body
type: string
description: "The Tableau dataset ID."
call: "tableau.refresh-datasource"
with:
dataset_id: "{{dataset_id}}"
consumes:
- type: http
namespace: tableau
baseUri: "https://manulife-tableau.online.tableau.com/api/3.19"
authentication:
type: bearer
token: "$secrets.tableau_token"
resources:
- name: datasources
path: "/sites/{{site_id}}/datasources/{{dataset_id}}/refresh"
inputParameters:
- name: dataset_id
in: path
operations:
- name: refresh-datasource
method: POST
Calculates an underwriting risk score for a new insurance application using the Manulife underwriting engine based on applicant demographics and health data.
naftiko: "0.5"
info:
label: "Underwriting Risk Score Calculator"
description: "Calculates an underwriting risk score for a new insurance application using the Manulife underwriting engine based on applicant demographics and health data."
tags:
- underwriting
- risk-assessment
- insurance
capability:
exposes:
- type: mcp
namespace: underwriting
port: 8080
tools:
- name: calculate-risk-score
description: "Calculate an underwriting risk score for an insurance application."
inputParameters:
- name: applicant_id
in: body
type: string
description: "The applicant identifier."
- name: product_type
in: body
type: string
description: "Insurance product type (life, health, disability)."
- name: age
in: body
type: integer
description: "Applicant age."
- name: health_class
in: body
type: string
description: "Health classification (preferred, standard, substandard)."
call: "underwriting-engine.calculate-score"
with:
applicant_id: "{{applicant_id}}"
product: "{{product_type}}"
age: "{{age}}"
health_class: "{{health_class}}"
consumes:
- type: http
namespace: underwriting-engine
baseUri: "https://api.manulife.com/underwriting/v1"
authentication:
type: bearer
token: "$secrets.manulife_api_token"
resources:
- name: risk-scores
path: "/risk-scores"
operations:
- name: calculate-score
method: POST
Retrieves a client's wealth management portfolio summary including asset allocation, performance, and market value from the Manulife investment platform.
naftiko: "0.5"
info:
label: "Wealth Portfolio Summary"
description: "Retrieves a client's wealth management portfolio summary including asset allocation, performance, and market value from the Manulife investment platform."
tags:
- wealth-management
- portfolio
- investments
capability:
exposes:
- type: mcp
namespace: wealth-portfolio
port: 8080
tools:
- name: get-portfolio-summary
description: "Retrieve a client's investment portfolio summary."
inputParameters:
- name: client_id
in: body
type: string
description: "The wealth management client ID."
call: "wealth-platform.get-portfolio"
with:
client_id: "{{client_id}}"
consumes:
- type: http
namespace: wealth-platform
baseUri: "https://api.manulife.com/wealth/v1"
authentication:
type: bearer
token: "$secrets.manulife_api_token"
resources:
- name: portfolios
path: "/clients/{{client_id}}/portfolio"
inputParameters:
- name: client_id
in: path
operations:
- name: get-portfolio
method: GET
Retrieves Manulife employee details from Workday including department, role, manager, and office location.
naftiko: "0.5"
info:
label: "Workday Employee Directory"
description: "Retrieves Manulife employee details from Workday including department, role, manager, and office location."
tags:
- hr
- workday
- employee-directory
capability:
exposes:
- type: mcp
namespace: hr-directory
port: 8080
tools:
- name: get-employee
description: "Look up an employee in Workday by worker ID."
inputParameters:
- name: worker_id
in: body
type: string
description: "The Workday worker ID."
call: "workday.get-worker"
with:
worker_id: "{{worker_id}}"
consumes:
- type: http
namespace: workday
baseUri: "https://wd2-impl-services1.workday.com/ccx/api/v1"
authentication:
type: bearer
token: "$secrets.workday_token"
resources:
- name: workers
path: "/workers/{{worker_id}}"
inputParameters:
- name: worker_id
in: path
operations:
- name: get-worker
method: GET
Creates Zendesk support tickets for policyholder inquiries, enriching with policy data from the admin system for faster resolution.
naftiko: "0.5"
info:
label: "Zendesk Customer Support Pipeline"
description: "Creates Zendesk support tickets for policyholder inquiries, enriching with policy data from the admin system for faster resolution."
tags:
- customer-support
- zendesk
- policy-management
capability:
exposes:
- type: mcp
namespace: customer-support
port: 8080
tools:
- name: create-support-ticket
description: "Create a Zendesk ticket enriched with policy details."
inputParameters:
- name: customer_email
in: body
type: string
description: "Customer email."
- name: policy_number
in: body
type: string
description: "Policy number for context."
- name: subject
in: body
type: string
description: "Support request subject."
steps:
- name: get-policy
type: call
call: "policy-admin.get-policy"
with:
policy_number: "{{policy_number}}"
- name: create-ticket
type: call
call: "zendesk.create-ticket"
with:
requester_email: "{{customer_email}}"
subject: "{{subject}}"
description: "Policy: {{policy_number}} | Product: {{get-policy.product_type}} | Status: {{get-policy.status}} | Premium: {{get-policy.premium}}"
consumes:
- type: http
namespace: policy-admin
baseUri: "https://api.manulife.com/policy/v1"
authentication:
type: bearer
token: "$secrets.manulife_api_token"
resources:
- name: policies
path: "/policies/{{policy_number}}"
inputParameters:
- name: policy_number
in: path
operations:
- name: get-policy
method: GET
- type: http
namespace: zendesk
baseUri: "https://manulife.zendesk.com/api/v2"
authentication:
type: bearer
token: "$secrets.zendesk_token"
resources:
- name: tickets
path: "/tickets"
operations:
- name: create-ticket
method: POST