ING Capabilities
Naftiko 0.5 capability definitions for ING - 100 capabilities showing integration workflows and service orchestrations.
Retrieves usage analytics from Adobe Analytics for ING's digital banking platform.
naftiko: "0.5"
info:
label: "Adobe Analytics Digital Banking Reporter"
description: "Retrieves usage analytics from Adobe Analytics for ING's digital banking platform."
tags:
- analytics
- digital-banking
- adobe-analytics
capability:
exposes:
- type: mcp
namespace: digital-analytics
port: 8080
tools:
- name: get-banking-analytics
description: "Retrieve digital banking analytics from Adobe Analytics."
inputParameters:
- name: report_suite_id
in: body
type: string
description: "Adobe Analytics report suite ID."
- name: date_range
in: body
type: string
description: "Date range."
call: "adobe-analytics.get-report"
with:
rsid: "{{report_suite_id}}"
date_range: "{{date_range}}"
outputParameters:
- name: active_users
type: string
mapping: "$.report.data.rows[0].value"
- name: login_count
type: string
mapping: "$.report.data.rows[1].value"
consumes:
- type: http
namespace: adobe-analytics
baseUri: "https://analytics.adobe.io/api"
authentication:
type: bearer
token: "$secrets.adobe_analytics_token"
resources:
- name: reports
path: "/{{rsid}}/reports"
inputParameters:
- name: rsid
in: path
operations:
- name: get-report
method: POST
Syncs Workday time entries to ADP for payroll processing and confirms via Teams.
naftiko: "0.5"
info:
label: "ADP Payroll Sync"
description: "Syncs Workday time entries to ADP for payroll processing and confirms via Teams."
tags:
- hr
- payroll
- workday
- adp
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: payroll-sync
port: 8080
tools:
- name: sync-payroll
description: "Sync time entries to ADP payroll."
inputParameters:
- name: pay_period
in: body
type: string
description: "Pay period."
steps:
- name: get-entries
type: call
call: "workday.get-time-entries"
with:
pay_period: "{{pay_period}}"
- name: submit
type: call
call: "adp.submit-payroll"
with:
entries: "{{get-entries.entries}}"
- name: confirm
type: call
call: "msteams.send-message"
with:
channel_id: "hr_payroll"
text: "Payroll sync for {{pay_period}}: {{submit.employee_count}} processed."
consumes:
- type: http
namespace: workday
baseUri: "https://wd2-impl-services1.workday.com/ccx/api/v1"
authentication:
type: bearer
token: "$secrets.workday_token"
resources:
- name: time-entries
path: "/time/entries"
operations:
- name: get-time-entries
method: GET
- type: http
namespace: adp
baseUri: "https://api.adp.com/hr/v2"
authentication:
type: bearer
token: "$secrets.adp_token"
resources:
- name: payroll
path: "/payroll/payroll-processing"
operations:
- name: submit-payroll
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel_id
in: path
operations:
- name: send-message
method: POST
Investigates a suspicious activity alert by retrieving transaction history from Temenos, running enhanced due diligence via the compliance platform, creating a case in Salesforce, and notifying the compliance team via Microsoft Teams.
naftiko: "0.5"
info:
label: "AML Suspicious Activity Investigation Pipeline"
description: "Investigates a suspicious activity alert by retrieving transaction history from Temenos, running enhanced due diligence via the compliance platform, creating a case in Salesforce, and notifying the compliance team via Microsoft Teams."
tags:
- compliance
- aml
- temenos-transact
- salesforce
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: aml-investigation
port: 8080
tools:
- name: investigate-alert
description: "Investigate an AML suspicious activity alert."
inputParameters:
- name: alert_id
in: body
type: string
description: "The AML alert ID."
- name: customer_id
in: body
type: string
description: "The customer ID."
steps:
- name: get-transactions
type: call
call: "temenos.get-transaction-history"
with:
customer_id: "{{customer_id}}"
days: "90"
- name: run-edd
type: call
call: "compliance.enhanced-due-diligence"
with:
customer_id: "{{customer_id}}"
alert_id: "{{alert_id}}"
- name: create-case
type: call
call: "salesforce.create-case"
with:
subject: "AML Investigation: Alert {{alert_id}} - Customer {{customer_id}}"
description: "Transaction count (90d): {{get-transactions.count}}. EDD risk score: {{run-edd.risk_score}}. EDD findings: {{run-edd.findings}}."
type: "AML_Investigation"
priority: "High"
- name: notify-compliance
type: call
call: "teams.send-message"
with:
channel: "AML_Investigations"
message: "New AML case created: {{create-case.case_number}}. Alert: {{alert_id}}. Customer: {{customer_id}}. EDD Risk: {{run-edd.risk_score}}."
consumes:
- type: http
namespace: temenos
baseUri: "https://core-banking.ing.com/api/v1"
authentication:
type: bearer
token: "$secrets.temenos_token"
resources:
- name: transactions
path: "/customers/{{customer_id}}/transactions"
inputParameters:
- name: customer_id
in: path
operations:
- name: get-transaction-history
method: GET
- type: http
namespace: compliance
baseUri: "https://compliance-screening.ing.com/api/v1"
authentication:
type: bearer
token: "$secrets.compliance_token"
resources:
- name: edd
path: "/edd/assess"
operations:
- name: enhanced-due-diligence
method: POST
- type: http
namespace: salesforce
baseUri: "https://ing.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: cases
path: "/sobjects/Case"
operations:
- name: create-case
method: POST
- type: http
namespace: teams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.teams_token"
resources:
- name: messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel_id
in: path
operations:
- name: send-message
method: POST
Checks the provisioning status of an ING card on Apple Pay.
naftiko: "0.5"
info:
label: "Apple Pay Provisioning Status"
description: "Checks the provisioning status of an ING card on Apple Pay."
tags:
- payments
- mobile-banking
- apple-pay
capability:
exposes:
- type: mcp
namespace: mobile-payments
port: 8080
tools:
- name: get-apple-pay-status
description: "Check Apple Pay provisioning status for a card."
inputParameters:
- name: card_id
in: body
type: string
description: "Card identifier."
call: "apple-pay.get-provisioning"
with:
card_id: "{{card_id}}"
outputParameters:
- name: status
type: string
mapping: "$.provisioningStatus"
- name: device_count
type: string
mapping: "$.activeDevices"
consumes:
- type: http
namespace: apple-pay
baseUri: "https://mobile-payments.ing.com/api/v1"
authentication:
type: bearer
token: "$secrets.apple_pay_token"
resources:
- name: provisioning
path: "/cards/{{card_id}}/apple-pay"
inputParameters:
- name: card_id
in: path
operations:
- name: get-provisioning
method: GET
Retrieves an ING employee's Azure AD profile.
naftiko: "0.5"
info:
label: "Azure Active Directory User Lookup"
description: "Retrieves an ING employee's Azure AD profile."
tags:
- it-operations
- identity
- azure-active-directory
capability:
exposes:
- type: mcp
namespace: identity
port: 8080
tools:
- name: get-ad-user
description: "Look up an employee in Azure AD by UPN."
inputParameters:
- name: user_upn
in: body
type: string
description: "User principal name."
call: "azuread.get-user"
with:
user_upn: "{{user_upn}}"
outputParameters:
- name: display_name
type: string
mapping: "$.displayName"
- name: job_title
type: string
mapping: "$.jobTitle"
- name: department
type: string
mapping: "$.department"
consumes:
- type: http
namespace: azuread
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: users
path: "/users/{{user_upn}}"
inputParameters:
- name: user_upn
in: path
operations:
- name: get-user
method: GET
Triggers a credit risk model run in Azure Databricks for ING lending, returning model output, probability of default, and risk category.
naftiko: "0.5"
info:
label: "Azure Databricks Credit Model Runner"
description: "Triggers a credit risk model run in Azure Databricks for ING lending, returning model output, probability of default, and risk category."
tags:
- machine-learning
- azure-databricks
- risk
capability:
exposes:
- type: mcp
namespace: credit-models
port: 8080
tools:
- name: run-credit-model
description: "Trigger a credit risk model run in Azure Databricks."
inputParameters:
- name: model_name
in: body
type: string
description: "The ML model name."
- name: customer_segment
in: body
type: string
description: "The customer segment."
call: "databricks.run-job"
with:
model_name: "{{model_name}}"
customer_segment: "{{customer_segment}}"
outputParameters:
- name: run_id
type: string
mapping: "$.run_id"
- name: pd_output
type: string
mapping: "$.output.pd"
- name: risk_category
type: string
mapping: "$.output.risk_category"
consumes:
- type: http
namespace: databricks
baseUri: "https://adb-ing.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
Retrieves latest build status from Azure DevOps for ING applications.
naftiko: "0.5"
info:
label: "Azure DevOps Build Status Checker"
description: "Retrieves latest build status from Azure DevOps for ING applications."
tags:
- it-operations
- cicd
- azure-devops
capability:
exposes:
- type: mcp
namespace: build-status
port: 8080
tools:
- name: get-build-status
description: "Check latest Azure DevOps build status."
inputParameters:
- name: project
in: body
type: string
description: "Azure DevOps project."
- name: pipeline_id
in: body
type: string
description: "Pipeline ID."
call: "azdevops.get-build"
with:
project: "{{project}}"
pipeline_id: "{{pipeline_id}}"
outputParameters:
- name: result
type: string
mapping: "$.value[0].result"
consumes:
- type: http
namespace: azdevops
baseUri: "https://dev.azure.com/ing"
authentication:
type: basic
username: ""
password: "$secrets.azdevops_pat"
resources:
- name: builds
path: "/{{project}}/_apis/build/builds"
inputParameters:
- name: project
in: path
- name: definitions
in: query
value: "{{pipeline_id}}"
- name: $top
in: query
value: "1"
- name: api-version
in: query
value: "7.0"
operations:
- name: get-build
method: GET
Retrieves a secret value from Azure Key Vault for secure configuration management.
naftiko: "0.5"
info:
label: "Azure Key Vault Secret Retriever"
description: "Retrieves a secret value from Azure Key Vault for secure configuration management."
tags:
- security
- it-operations
- azure-key-vault
capability:
exposes:
- type: mcp
namespace: secret-management
port: 8080
tools:
- name: get-secret
description: "Retrieve a secret from Azure Key Vault."
inputParameters:
- name: vault_name
in: body
type: string
description: "Key Vault name."
- name: secret_name
in: body
type: string
description: "Secret name."
call: "keyvault.get-secret"
with:
vault_name: "{{vault_name}}"
secret_name: "{{secret_name}}"
outputParameters:
- name: value
type: string
mapping: "$.value"
- name: created
type: string
mapping: "$.attributes.created"
consumes:
- type: http
namespace: keyvault
baseUri: "https://{{vault_name}}.vault.azure.net"
authentication:
type: bearer
token: "$secrets.azure_keyvault_token"
resources:
- name: secrets
path: "/secrets/{{secret_name}}"
inputParameters:
- name: secret_name
in: path
- name: api-version
in: query
value: "7.4"
operations:
- name: get-secret
method: GET
Retrieves bond pricing data from Bloomberg Enterprise Data for ING fixed income trading, returning clean price, dirty price, yield to maturity, and spread.
naftiko: "0.5"
info:
label: "Bloomberg Terminal Bond Pricing"
description: "Retrieves bond pricing data from Bloomberg Enterprise Data for ING fixed income trading, returning clean price, dirty price, yield to maturity, and spread."
tags:
- trading
- fixed-income
- bloomberg-enterprise-data
capability:
exposes:
- type: mcp
namespace: bond-pricing
port: 8080
tools:
- name: get-bond-price
description: "Retrieve bond pricing from Bloomberg."
inputParameters:
- name: isin
in: body
type: string
description: "The bond ISIN."
call: "bloomberg.get-pricing"
with:
isin: "{{isin}}"
outputParameters:
- name: clean_price
type: string
mapping: "$.data[0].cleanPrice"
- name: dirty_price
type: string
mapping: "$.data[0].dirtyPrice"
- name: ytm
type: string
mapping: "$.data[0].yieldToMaturity"
- name: spread
type: string
mapping: "$.data[0].zSpread"
consumes:
- type: http
namespace: bloomberg
baseUri: "https://api.bloomberg.com/eap/catalogs/bbg/v1"
authentication:
type: bearer
token: "$secrets.bloomberg_token"
resources:
- name: pricing
path: "/securities/{{isin}}/pricing"
inputParameters:
- name: isin
in: path
operations:
- name: get-pricing
method: GET
Uploads an audit or compliance document to Box and returns a shared link.
naftiko: "0.5"
info:
label: "Box Audit Document Uploader"
description: "Uploads an audit or compliance document to Box and returns a shared link."
tags:
- compliance
- documents
- box
capability:
exposes:
- type: mcp
namespace: audit-docs
port: 8080
tools:
- name: upload-audit-doc
description: "Upload an audit document to Box."
inputParameters:
- name: folder_id
in: body
type: string
description: "Box folder ID."
- name: file_name
in: body
type: string
description: "File name."
- name: file_content
in: body
type: string
description: "Base64-encoded content."
call: "box.upload-file"
with:
folder_id: "{{folder_id}}"
file_name: "{{file_name}}"
content: "{{file_content}}"
outputParameters:
- name: shared_link
type: string
mapping: "$.entries[0].shared_link.url"
consumes:
- 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 network device status from Cisco Control Hub for ING branch and data center infrastructure, returning device state, uptime, firmware version, and interface count.
naftiko: "0.5"
info:
label: "Cisco Network Device Status"
description: "Retrieves network device status from Cisco Control Hub for ING branch and data center infrastructure, returning device state, uptime, firmware version, and interface count."
tags:
- infrastructure
- cisco
- networking
capability:
exposes:
- type: mcp
namespace: network-devices
port: 8080
tools:
- name: get-device-status
description: "Retrieve Cisco network device status."
inputParameters:
- name: device_id
in: body
type: string
description: "The Cisco device serial number."
call: "cisco.get-device"
with:
device_id: "{{device_id}}"
outputParameters:
- name: state
type: string
mapping: "$.response.managementState"
- name: uptime
type: string
mapping: "$.response.upTime"
- name: firmware
type: string
mapping: "$.response.softwareVersion"
consumes:
- type: http
namespace: cisco
baseUri: "https://webexapis.com/v1"
authentication:
type: bearer
token: "$secrets.cisco_token"
resources:
- name: devices
path: "/devices/{{device_id}}"
inputParameters:
- name: device_id
in: path
operations:
- name: get-device
method: GET
Queries Cloudflare for WAF events targeting ING web properties.
naftiko: "0.5"
info:
label: "Cloudflare WAF Event Monitor"
description: "Queries Cloudflare for WAF events targeting ING web properties."
tags:
- security
- it-operations
- cloudflare
capability:
exposes:
- type: mcp
namespace: waf-monitoring
port: 8080
tools:
- name: get-waf-events
description: "Retrieve Cloudflare WAF events."
inputParameters:
- name: zone_id
in: body
type: string
description: "Cloudflare zone ID."
call: "cloudflare.get-events"
with:
zone_id: "{{zone_id}}"
outputParameters:
- name: events
type: string
mapping: "$.result"
- name: total_blocked
type: string
mapping: "$.result_info.total_count"
consumes:
- type: http
namespace: cloudflare
baseUri: "https://api.cloudflare.com/client/v4"
authentication:
type: bearer
token: "$secrets.cloudflare_token"
resources:
- name: events
path: "/zones/{{zone_id}}/security/events"
inputParameters:
- name: zone_id
in: path
operations:
- name: get-events
method: GET
When a Concur expense is submitted, retrieves details and notifies approver via Teams.
naftiko: "0.5"
info:
label: "Concur Expense Report Notifier"
description: "When a Concur expense is submitted, retrieves details and notifies approver via Teams."
tags:
- finance
- expenses
- sap-concur
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: expense-approval
port: 8080
tools:
- name: notify-expense
description: "Fetch Concur expense and notify approver."
inputParameters:
- name: report_id
in: body
type: string
description: "Concur report ID."
steps:
- name: get-report
type: call
call: "concur.get-expense-report"
with:
report_id: "{{report_id}}"
- name: notify
type: call
call: "msteams.send-message"
with:
recipient_upn: "{{get-report.approver_email}}"
text: "Expense pending: {{get-report.employee_name}} - EUR {{get-report.total_amount}}. Review: {{get-report.approval_url}}"
consumes:
- type: http
namespace: concur
baseUri: "https://eu.api.concursolutions.com/api/v3.0"
authentication:
type: bearer
token: "$secrets.concur_token"
resources:
- name: expense-reports
path: "/expense/reports/{{report_id}}"
inputParameters:
- name: report_id
in: path
operations:
- name: get-expense-report
method: GET
- 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
Creates a knowledge base article in Confluence for ING procedures.
naftiko: "0.5"
info:
label: "Confluence Knowledge Base Article Creator"
description: "Creates a knowledge base article in Confluence for ING procedures."
tags:
- knowledge-management
- confluence
capability:
exposes:
- type: mcp
namespace: knowledge-base
port: 8080
tools:
- name: create-article
description: "Create a Confluence knowledge base article."
inputParameters:
- name: space_key
in: body
type: string
description: "Confluence space key."
- name: title
in: body
type: string
description: "Title."
- name: body
in: body
type: string
description: "Body in HTML."
call: "confluence.create-page"
with:
space_key: "{{space_key}}"
title: "{{title}}"
body: "{{body}}"
outputParameters:
- name: page_url
type: string
mapping: "$._links.webui"
consumes:
- type: http
namespace: confluence
baseUri: "https://ing.atlassian.net/wiki/rest/api"
authentication:
type: basic
username: "$secrets.confluence_user"
password: "$secrets.confluence_api_token"
resources:
- name: pages
path: "/content"
operations:
- name: create-page
method: POST
Processes corporate loan renewal by pulling current facility data from Temenos, running updated credit analysis, generating renewal terms, and creating the approval workflow in ServiceNow.
naftiko: "0.5"
info:
label: "Corporate Lending Renewal Pipeline"
description: "Processes corporate loan renewal by pulling current facility data from Temenos, running updated credit analysis, generating renewal terms, and creating the approval workflow in ServiceNow."
tags:
- lending
- corporate-banking
- temenos-transact
- servicenow
capability:
exposes:
- type: mcp
namespace: corporate-lending
port: 8080
tools:
- name: process-renewal
description: "Process a corporate lending facility renewal."
inputParameters:
- name: facility_id
in: body
type: string
description: "The lending facility ID."
- name: corporate_id
in: body
type: string
description: "The corporate client ID."
steps:
- name: get-facility
type: call
call: "temenos.get-facility"
with:
facility_id: "{{facility_id}}"
- name: run-credit-analysis
type: call
call: "credit-engine.analyze-corporate"
with:
corporate_id: "{{corporate_id}}"
current_exposure: "{{get-facility.outstanding_amount}}"
- name: generate-terms
type: call
call: "pricing-engine.calculate-corporate-rate"
with:
facility_id: "{{facility_id}}"
credit_grade: "{{run-credit-analysis.credit_grade}}"
- name: create-approval
type: call
call: "servicenow.create-request"
with:
short_description: "Lending renewal: Facility {{facility_id}} - {{get-facility.client_name}}"
description: "Current amount: {{get-facility.outstanding_amount}}. Credit grade: {{run-credit-analysis.credit_grade}}. Proposed rate: {{generate-terms.offered_rate}}."
assignment_group: "Credit_Committee"
priority: "2"
consumes:
- type: http
namespace: temenos
baseUri: "https://core-banking.ing.com/api/v1"
authentication:
type: bearer
token: "$secrets.temenos_token"
resources:
- name: facilities
path: "/facilities/{{facility_id}}"
inputParameters:
- name: facility_id
in: path
operations:
- name: get-facility
method: GET
- type: http
namespace: credit-engine
baseUri: "https://credit-scoring.ing.com/api/v1"
authentication:
type: bearer
token: "$secrets.credit_engine_token"
resources:
- name: corporate-analysis
path: "/analyze/corporate"
operations:
- name: analyze-corporate
method: POST
- type: http
namespace: pricing-engine
baseUri: "https://pricing.ing.com/api/v1"
authentication:
type: bearer
token: "$secrets.pricing_engine_token"
resources:
- name: corporate-rates
path: "/corporate/calculate"
operations:
- name: calculate-corporate-rate
method: POST
- type: http
namespace: servicenow
baseUri: "https://ing.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: requests
path: "/table/sc_request"
operations:
- name: create-request
method: POST
Processes a credit card application by running credit scoring, verifying income via the payroll system, creating the card account in Temenos, and notifying the customer via WhatsApp.
naftiko: "0.5"
info:
label: "Credit Card Application Orchestrator"
description: "Processes a credit card application by running credit scoring, verifying income via the payroll system, creating the card account in Temenos, and notifying the customer via WhatsApp."
tags:
- banking
- credit
- temenos-transact
- whatsapp
capability:
exposes:
- type: mcp
namespace: credit-card-applications
port: 8080
tools:
- name: process-application
description: "Process a credit card application."
inputParameters:
- name: customer_id
in: body
type: string
description: "The customer ID."
- name: requested_limit
in: body
type: string
description: "Requested credit limit."
steps:
- name: run-credit-score
type: call
call: "credit-engine.score-customer"
with:
customer_id: "{{customer_id}}"
- name: verify-income
type: call
call: "income-verification.check"
with:
customer_id: "{{customer_id}}"
- name: create-card-account
type: call
call: "temenos.create-card-account"
with:
customer_id: "{{customer_id}}"
credit_limit: "{{requested_limit}}"
credit_score: "{{run-credit-score.score}}"
- name: notify-customer
type: call
call: "whatsapp.send-message"
with:
phone: "{{run-credit-score.customer_phone}}"
template: "card_approved"
parameters: "{{create-card-account.card_number_masked}},{{create-card-account.credit_limit}}"
consumes:
- type: http
namespace: credit-engine
baseUri: "https://credit-scoring.ing.com/api/v1"
authentication:
type: bearer
token: "$secrets.credit_engine_token"
resources:
- name: scoring
path: "/score"
operations:
- name: score-customer
method: POST
- type: http
namespace: income-verification
baseUri: "https://income-verify.ing.com/api/v1"
authentication:
type: bearer
token: "$secrets.income_verify_token"
resources:
- name: verification
path: "/verify"
operations:
- name: check
method: POST
- type: http
namespace: temenos
baseUri: "https://core-banking.ing.com/api/v1"
authentication:
type: bearer
token: "$secrets.temenos_token"
resources:
- name: card-accounts
path: "/cards/accounts"
operations:
- name: create-card-account
method: POST
- type: http
namespace: whatsapp
baseUri: "https://graph.facebook.com/v17.0"
authentication:
type: bearer
token: "$secrets.whatsapp_token"
resources:
- name: messages
path: "/{{phone_number_id}}/messages"
inputParameters:
- name: phone_number_id
in: path
operations:
- name: send-message
method: POST
Retrieves the credit risk score for a customer from the internal risk engine, returning risk rating, probability of default, and exposure at default.
naftiko: "0.5"
info:
label: "Credit Risk Score Retriever"
description: "Retrieves the credit risk score for a customer from the internal risk engine, returning risk rating, probability of default, and exposure at default."
tags:
- risk
- lending
- banking
capability:
exposes:
- type: mcp
namespace: credit-risk
port: 8080
tools:
- name: get-credit-risk
description: "Retrieve credit risk score for a customer."
inputParameters:
- name: customer_id
in: body
type: string
description: "The customer ID."
call: "risk-engine.get-score"
with:
customer_id: "{{customer_id}}"
outputParameters:
- name: risk_rating
type: string
mapping: "$.riskRating"
- name: probability_of_default
type: string
mapping: "$.probabilityOfDefault"
- name: exposure_at_default
type: string
mapping: "$.exposureAtDefault"
- name: last_assessed
type: string
mapping: "$.lastAssessmentDate"
consumes:
- type: http
namespace: risk-engine
baseUri: "https://risk-engine.ing.com/api/v1"
authentication:
type: bearer
token: "$secrets.risk_engine_token"
resources:
- name: scores
path: "/credit/scores/{{customer_id}}"
inputParameters:
- name: customer_id
in: path
operations:
- name: get-score
method: GET
Screens cross-border payment transactions against international sanctions lists including EU, OFAC, and UN, flagging potential matches for compliance review.
naftiko: "0.5"
info:
label: "Cross-Border Payment Sanctions Screener"
description: "Screens cross-border payment transactions against international sanctions lists including EU, OFAC, and UN, flagging potential matches for compliance review."
tags:
- compliance
- sanctions-screening
- cross-border-payments
capability:
exposes:
- type: mcp
namespace: sanctions-screening
port: 8080
tools:
- name: screen-payment-sanctions
description: "Screen a cross-border payment against sanctions lists."
inputParameters:
- name: payment_id
in: body
type: string
description: "The payment transaction identifier."
- name: beneficiary_name
in: body
type: string
description: "Name of the payment beneficiary."
- name: destination_country
in: body
type: string
description: "ISO country code of the destination."
call: "compliance-api.screen-sanctions"
with:
payment: "{{payment_id}}"
beneficiary: "{{beneficiary_name}}"
country: "{{destination_country}}"
outputParameters:
- name: screening_result
type: string
mapping: "$.screening.result"
- name: matches_found
type: integer
mapping: "$.screening.matchesFound"
- name: risk_level
type: string
mapping: "$.screening.riskLevel"
consumes:
- type: http
namespace: compliance-api
baseUri: "https://api.ing.com/compliance/v1"
authentication:
type: bearer
token: "$secrets.ing_compliance_api_token"
resources:
- name: sanctions-checks
path: "/sanctions-screening"
operations:
- name: screen-sanctions
method: POST
Retrieves a customer's account balance and details from the core banking system, returning current balance, available balance, account type, and currency.
naftiko: "0.5"
info:
label: "Customer Account Balance Lookup"
description: "Retrieves a customer's account balance and details from the core banking system, returning current balance, available balance, account type, and currency."
tags:
- banking
- accounts
- temenos-transact
capability:
exposes:
- type: mcp
namespace: account-banking
port: 8080
tools:
- name: get-account-balance
description: "Look up a customer account balance by account number."
inputParameters:
- name: account_id
in: body
type: string
description: "The ING account number."
call: "temenos.get-account"
with:
account_id: "{{account_id}}"
outputParameters:
- name: current_balance
type: string
mapping: "$.body.currentBalance"
- name: available_balance
type: string
mapping: "$.body.availableBalance"
- name: currency
type: string
mapping: "$.body.currency"
- name: account_type
type: string
mapping: "$.body.accountType"
consumes:
- type: http
namespace: temenos
baseUri: "https://core-banking.ing.com/api/v1"
authentication:
type: bearer
token: "$secrets.temenos_token"
resources:
- name: accounts
path: "/accounts/{{account_id}}"
inputParameters:
- name: account_id
in: path
operations:
- name: get-account
method: GET
Orchestrates new customer account opening by running KYC verification, creating the account in Temenos, provisioning digital banking access, and sending welcome notification via WhatsApp.
naftiko: "0.5"
info:
label: "Customer Account Opening Orchestrator"
description: "Orchestrates new customer account opening by running KYC verification, creating the account in Temenos, provisioning digital banking access, and sending welcome notification via WhatsApp."
tags:
- banking
- onboarding
- temenos-transact
- whatsapp
- compliance
capability:
exposes:
- type: mcp
namespace: account-opening
port: 8080
tools:
- name: open-account
description: "Orchestrate new customer account opening."
inputParameters:
- name: customer_name
in: body
type: string
description: "The customer full name."
- name: id_number
in: body
type: string
description: "The national ID number."
- name: phone
in: body
type: string
description: "Customer phone number."
steps:
- name: verify-kyc
type: call
call: "compliance.kyc-check"
with:
name: "{{customer_name}}"
id_number: "{{id_number}}"
- name: create-account
type: call
call: "temenos.create-account"
with:
customer_name: "{{customer_name}}"
kyc_reference: "{{verify-kyc.kyc_reference}}"
- name: provision-digital
type: call
call: "digital-banking.provision-access"
with:
account_id: "{{create-account.account_id}}"
phone: "{{phone}}"
- name: send-welcome
type: call
call: "whatsapp.send-message"
with:
phone: "{{phone}}"
template: "welcome_new_customer"
parameters: "{{customer_name}},{{create-account.account_id}},{{create-account.iban}}"
consumes:
- type: http
namespace: compliance
baseUri: "https://compliance-screening.ing.com/api/v1"
authentication:
type: bearer
token: "$secrets.compliance_token"
resources:
- name: kyc
path: "/kyc/verify"
operations:
- name: kyc-check
method: POST
- type: http
namespace: temenos
baseUri: "https://core-banking.ing.com/api/v1"
authentication:
type: bearer
token: "$secrets.temenos_token"
resources:
- name: accounts
path: "/accounts"
operations:
- name: create-account
method: POST
- type: http
namespace: digital-banking
baseUri: "https://digital-banking.ing.com/api/v1"
authentication:
type: bearer
token: "$secrets.digital_banking_token"
resources:
- name: provisioning
path: "/access/provision"
operations:
- name: provision-access
method: POST
- type: http
namespace: whatsapp
baseUri: "https://graph.facebook.com/v17.0"
authentication:
type: bearer
token: "$secrets.whatsapp_token"
resources:
- name: messages
path: "/{{phone_number_id}}/messages"
inputParameters:
- name: phone_number_id
in: path
operations:
- name: send-message
method: POST
When a customer complaint is logged in Salesforce, creates a ServiceNow escalation ticket, assigns a resolution owner, and notifies the customer via WhatsApp with a case number.
naftiko: "0.5"
info:
label: "Customer Complaint Resolution Pipeline"
description: "When a customer complaint is logged in Salesforce, creates a ServiceNow escalation ticket, assigns a resolution owner, and notifies the customer via WhatsApp with a case number."
tags:
- customer-service
- banking
- salesforce
- servicenow
- whatsapp
capability:
exposes:
- type: mcp
namespace: complaint-resolution
port: 8080
tools:
- name: process-complaint
description: "Process a customer complaint through Salesforce, ServiceNow, and WhatsApp notification."
inputParameters:
- name: case_id
in: body
type: string
description: "Salesforce case ID."
steps:
- name: get-case
type: call
call: "salesforce.get-case"
with:
case_id: "{{case_id}}"
- name: escalate
type: call
call: "servicenow.create-incident"
with:
short_description: "Customer complaint: {{get-case.Subject}}"
priority: "{{get-case.Priority}}"
category: "customer_complaint"
description: "{{get-case.Description}}"
- name: notify-customer
type: call
call: "whatsapp.send-message"
with:
phone: "{{get-case.customer_phone}}"
template: "complaint_received"
parameters: "{{escalate.number}}"
consumes:
- type: http
namespace: salesforce
baseUri: "https://ing.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: cases
path: "/sobjects/Case/{{case_id}}"
inputParameters:
- name: case_id
in: path
operations:
- name: get-case
method: GET
- type: http
namespace: servicenow
baseUri: "https://ing.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: whatsapp
baseUri: "https://graph.facebook.com/v17.0"
authentication:
type: bearer
token: "$secrets.whatsapp_token"
resources:
- name: messages
path: "/{{phone_number_id}}/messages"
inputParameters:
- name: phone_number_id
in: path
operations:
- name: send-message
method: POST
Queries Datadog for infrastructure health metrics of ING's banking platform.
naftiko: "0.5"
info:
label: "Datadog Platform Health Monitor"
description: "Queries Datadog for infrastructure health metrics of ING's banking platform."
tags:
- it-operations
- monitoring
- datadog
capability:
exposes:
- type: mcp
namespace: infra-monitoring
port: 8080
tools:
- name: get-platform-health
description: "Retrieve infrastructure health from Datadog."
inputParameters:
- name: service
in: body
type: string
description: "Service name."
call: "datadog.query-metrics"
with:
query: "avg:system.cpu.user{service:{{service}}}"
outputParameters:
- name: cpu_utilization
type: string
mapping: "$.series[0].pointlist[-1][1]"
consumes:
- type: http
namespace: datadog
baseUri: "https://api.datadoghq.com/api/v1"
authentication:
type: apiKey
name: "DD-API-KEY"
in: header
value: "$secrets.datadog_api_key"
resources:
- name: metrics
path: "/query"
inputParameters:
- name: query
in: query
operations:
- name: query-metrics
method: GET
Compares ING mortgage rate offerings against market rates for Dutch residential properties, factoring in NHG guarantees, fixed-rate periods, and customer loyalty discounts.
naftiko: "0.5"
info:
label: "Dutch Mortgage Rate Comparison Tool"
description: "Compares ING mortgage rate offerings against market rates for Dutch residential properties, factoring in NHG guarantees, fixed-rate periods, and customer loyalty discounts."
tags:
- mortgages
- retail-banking
- rate-comparison
capability:
exposes:
- type: mcp
namespace: mortgage-rates
port: 8080
tools:
- name: compare-mortgage-rates
description: "Compare current ING mortgage rates with market averages."
inputParameters:
- name: property_value
in: body
type: number
description: "Property value in EUR."
- name: loan_amount
in: body
type: number
description: "Requested mortgage amount in EUR."
- name: fixed_rate_period
in: body
type: integer
description: "Fixed rate period in years such as 5, 10, 20, or 30."
- name: nhg_eligible
in: body
type: boolean
description: "Whether the mortgage qualifies for NHG guarantee."
call: "mortgage-api.compare-rates"
with:
property_value: "{{property_value}}"
loan: "{{loan_amount}}"
period: "{{fixed_rate_period}}"
nhg: "{{nhg_eligible}}"
outputParameters:
- name: ing_rate
type: number
mapping: "$.comparison.ingRate"
- name: market_average
type: number
mapping: "$.comparison.marketAverage"
- name: monthly_payment
type: number
mapping: "$.comparison.monthlyPayment"
consumes:
- type: http
namespace: mortgage-api
baseUri: "https://api.ing.com/mortgages/v1"
authentication:
type: bearer
token: "$secrets.ing_mortgage_api_token"
resources:
- name: rate-comparisons
path: "/rate-comparisons"
operations:
- name: compare-rates
method: POST
Retrieves mobile banking application performance from Dynatrace, returning crash rate, session duration, API response time, and user satisfaction score.
naftiko: "0.5"
info:
label: "Dynatrace Banking App Performance"
description: "Retrieves mobile banking application performance from Dynatrace, returning crash rate, session duration, API response time, and user satisfaction score."
tags:
- monitoring
- dynatrace
- mobile-banking
capability:
exposes:
- type: mcp
namespace: mobile-app-performance
port: 8080
tools:
- name: get-app-performance
description: "Retrieve mobile banking app performance from Dynatrace."
inputParameters:
- name: app_id
in: body
type: string
description: "The Dynatrace mobile app ID."
call: "dynatrace.get-app-metrics"
with:
app_id: "{{app_id}}"
outputParameters:
- name: crash_rate
type: string
mapping: "$.result[0].data[0].values.crashRate"
- name: avg_session_duration
type: string
mapping: "$.result[0].data[0].values.sessionDuration"
- name: api_response_time
type: string
mapping: "$.result[0].data[0].values.apiResponseTime"
consumes:
- type: http
namespace: dynatrace
baseUri: "https://ing.live.dynatrace.com/api/v2"
authentication:
type: bearer
token: "$secrets.dynatrace_token"
resources:
- name: metrics
path: "/metrics/query?entitySelector=type(MOBILE_APPLICATION),entityId({{app_id}})"
inputParameters:
- name: app_id
in: query
operations:
- name: get-app-metrics
method: GET
Queries Elasticsearch for audit log entries across ING systems, returning event count, top actions, user activity summary, and time range coverage.
naftiko: "0.5"
info:
label: "Elasticsearch Audit Log Query"
description: "Queries Elasticsearch for audit log entries across ING systems, returning event count, top actions, user activity summary, and time range coverage."
tags:
- security
- audit
- elasticsearch
capability:
exposes:
- type: mcp
namespace: audit-logs
port: 8080
tools:
- name: query-audit-logs
description: "Query audit log entries from Elasticsearch."
inputParameters:
- name: index
in: body
type: string
description: "The Elasticsearch audit log index."
- name: time_range
in: body
type: string
description: "The time range (e.g. 24h, 7d)."
call: "elasticsearch.search"
with:
index: "{{index}}"
time_range: "{{time_range}}"
outputParameters:
- name: total_events
type: number
mapping: "$.hits.total.value"
- name: top_actions
type: string
mapping: "$.aggregations.actions.buckets"
- name: unique_users
type: number
mapping: "$.aggregations.users.value"
consumes:
- type: http
namespace: elasticsearch
baseUri: "https://elasticsearch.ing.com"
authentication:
type: basic
username: "$secrets.es_user"
password: "$secrets.es_password"
resources:
- name: search
path: "/{{index}}/_search"
inputParameters:
- name: index
in: path
operations:
- name: search
method: POST
On new hire creation in Workday, opens a ServiceNow onboarding ticket, provisions SharePoint folder, and sends Teams welcome.
naftiko: "0.5"
info:
label: "Employee Onboarding Orchestrator"
description: "On new hire creation in Workday, opens a ServiceNow onboarding ticket, provisions SharePoint folder, and sends Teams welcome."
tags:
- hr
- onboarding
- workday
- servicenow
- sharepoint
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: hr-onboarding
port: 8080
tools:
- name: trigger-onboarding
description: "Orchestrate onboarding for a new ING employee."
inputParameters:
- name: worker_id
in: body
type: string
description: "Workday worker ID."
- name: start_date
in: body
type: string
description: "Start date YYYY-MM-DD."
- name: department
in: body
type: string
description: "Department name."
steps:
- name: get-employee
type: call
call: "workday.get-worker"
with:
worker_id: "{{worker_id}}"
- name: open-ticket
type: call
call: "servicenow.create-incident"
with:
short_description: "Onboarding: {{get-employee.full_name}} - {{department}}"
category: "hr_onboarding"
assigned_group: "IT_Onboarding"
- name: provision-folder
type: call
call: "sharepoint.create-folder"
with:
site_id: "hr_onboarding"
folder_path: "NewHires/{{get-employee.full_name}}_{{start_date}}"
- name: send-welcome
type: call
call: "msteams.send-message"
with:
recipient_upn: "{{get-employee.work_email}}"
text: "Welcome to ING, {{get-employee.first_name}}! Ticket: {{open-ticket.number}}. Docs: {{provision-folder.url}}"
consumes:
- type: http
namespace: workday
baseUri: "https://wd2-impl-services1.workday.com/ccx/api/v1"
authentication:
type: bearer
token: "$secrets.workday_token"
resources:
- name: workers
path: "/workers/{{worker_id}}"
inputParameters:
- name: worker_id
in: path
operations:
- name: get-worker
method: GET
- type: http
namespace: servicenow
baseUri: "https://ing.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: incidents
path: "/table/incident"
operations:
- name: create-incident
method: POST
- type: http
namespace: sharepoint
baseUri: "https://graph.microsoft.com/v1.0/sites"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: drive-items
path: "/{{site_id}}/drive/root:/{{folder_path}}"
inputParameters:
- name: site_id
in: path
- name: folder_path
in: path
operations:
- name: create-folder
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/users/{{recipient_upn}}/sendMail"
inputParameters:
- name: recipient_upn
in: path
operations:
- name: send-message
method: POST
Screens investment portfolios for ESG compliance by querying positions from Murex, running ESG scoring via the sustainability platform, generating the report in Google Sheets, and notifying stakeholders via Microsoft Teams.
naftiko: "0.5"
info:
label: "ESG Screening and Reporting Pipeline"
description: "Screens investment portfolios for ESG compliance by querying positions from Murex, running ESG scoring via the sustainability platform, generating the report in Google Sheets, and notifying stakeholders via Microsoft Teams."
tags:
- sustainability
- esg
- murex
- google-sheets
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: esg-screening
port: 8080
tools:
- name: screen-portfolio-esg
description: "Screen a portfolio for ESG compliance and generate report."
inputParameters:
- name: portfolio_id
in: body
type: string
description: "The portfolio ID."
- name: reporting_date
in: body
type: string
description: "The reporting date."
steps:
- name: get-positions
type: call
call: "murex.get-portfolio-positions"
with:
portfolio_id: "{{portfolio_id}}"
- name: run-esg-scoring
type: call
call: "sustainability-platform.score-portfolio"
with:
portfolio_id: "{{portfolio_id}}"
position_count: "{{get-positions.position_count}}"
- name: generate-report
type: call
call: "gsheets.append-data"
with:
spreadsheet_id: "ESG_Reports"
data: "{{portfolio_id}},{{reporting_date}},{{run-esg-scoring.overall_score}},{{run-esg-scoring.exclusion_count}}"
- name: notify-stakeholders
type: call
call: "teams.send-message"
with:
channel: "ESG_Compliance"
message: "ESG screening complete for portfolio {{portfolio_id}}. Score: {{run-esg-scoring.overall_score}}. Exclusions: {{run-esg-scoring.exclusion_count}}."
consumes:
- type: http
namespace: murex
baseUri: "https://murex.ing.com/api/v2"
authentication:
type: bearer
token: "$secrets.murex_token"
resources:
- name: portfolios
path: "/portfolios/{{portfolio_id}}/positions"
inputParameters:
- name: portfolio_id
in: path
operations:
- name: get-portfolio-positions
method: GET
- type: http
namespace: sustainability-platform
baseUri: "https://sustainability.ing.com/api/v1"
authentication:
type: bearer
token: "$secrets.sustainability_token"
resources:
- name: scoring
path: "/esg/score"
operations:
- name: score-portfolio
method: POST
- type: http
namespace: gsheets
baseUri: "https://sheets.googleapis.com/v4"
authentication:
type: bearer
token: "$secrets.google_api_token"
resources:
- name: values
path: "/spreadsheets/{{spreadsheet_id}}/values/Sheet1:append"
inputParameters:
- name: spreadsheet_id
in: path
operations:
- name: append-data
method: POST
- type: http
namespace: teams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.teams_token"
resources:
- name: messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel_id
in: path
operations:
- name: send-message
method: POST
Retrieves market data from FactSet for ING investment analysis, returning current price, daily change, volume, and 52-week range for a given security.
naftiko: "0.5"
info:
label: "FactSet Market Data Retriever"
description: "Retrieves market data from FactSet for ING investment analysis, returning current price, daily change, volume, and 52-week range for a given security."
tags:
- market-data
- factset
- trading
capability:
exposes:
- type: mcp
namespace: market-data
port: 8080
tools:
- name: get-market-data
description: "Retrieve market data from FactSet for a security."
inputParameters:
- name: ticker
in: body
type: string
description: "The security ticker symbol."
call: "factset.get-quote"
with:
ticker: "{{ticker}}"
outputParameters:
- name: price
type: string
mapping: "$.data[0].price"
- name: daily_change
type: string
mapping: "$.data[0].change"
- name: volume
type: number
mapping: "$.data[0].volume"
- name: range_52w
type: string
mapping: "$.data[0].range52Week"
consumes:
- type: http
namespace: factset
baseUri: "https://api.factset.com/content/factset-prices/v1"
authentication:
type: basic
username: "$secrets.factset_user"
password: "$secrets.factset_password"
resources:
- name: quotes
path: "/prices?ids={{ticker}}"
inputParameters:
- name: ticker
in: query
operations:
- name: get-quote
method: GET
Retrieves current FX rates from the treasury system, returning bid, ask, and mid rates for a currency pair.
naftiko: "0.5"
info:
label: "Foreign Exchange Rate Lookup"
description: "Retrieves current FX rates from the treasury system, returning bid, ask, and mid rates for a currency pair."
tags:
- banking
- treasury
- foreign-exchange
capability:
exposes:
- type: mcp
namespace: fx-rates
port: 8080
tools:
- name: get-fx-rate
description: "Look up FX rate for a currency pair."
inputParameters:
- name: base_currency
in: body
type: string
description: "Base currency code."
- name: quote_currency
in: body
type: string
description: "Quote currency code."
call: "treasury.get-rate"
with:
base: "{{base_currency}}"
quote: "{{quote_currency}}"
outputParameters:
- name: bid
type: string
mapping: "$.bid"
- name: ask
type: string
mapping: "$.ask"
- name: mid
type: string
mapping: "$.mid"
consumes:
- type: http
namespace: treasury
baseUri: "https://treasury.ing.com/api/v1"
authentication:
type: bearer
token: "$secrets.treasury_token"
resources:
- name: fx-rates
path: "/rates/{{base}}/{{quote}}"
inputParameters:
- name: base
in: path
- name: quote
in: path
operations:
- name: get-rate
method: GET
When a fraud alert is triggered, retrieves card transaction details, blocks the card via the banking platform, creates a case in ServiceNow, and notifies the customer via WhatsApp.
naftiko: "0.5"
info:
label: "Fraud Detection Alert Processor"
description: "When a fraud alert is triggered, retrieves card transaction details, blocks the card via the banking platform, creates a case in ServiceNow, and notifies the customer via WhatsApp."
tags:
- risk
- banking
- compliance
- servicenow
- whatsapp
capability:
exposes:
- type: mcp
namespace: fraud-detection
port: 8080
tools:
- name: process-fraud-alert
description: "Handle a fraud detection alert across card blocking, case creation, and notification."
inputParameters:
- name: alert_id
in: body
type: string
description: "Fraud alert ID."
- name: card_number_masked
in: body
type: string
description: "Masked card number."
steps:
- name: get-alert
type: call
call: "fraud-system.get-alert"
with:
alert_id: "{{alert_id}}"
- name: block-card
type: call
call: "temenos.block-card"
with:
card_id: "{{get-alert.card_id}}"
reason: "fraud_suspected"
- name: create-case
type: call
call: "servicenow.create-incident"
with:
short_description: "Fraud alert: Card {{card_number_masked}} - {{get-alert.alert_type}}"
priority: "1"
category: "fraud_investigation"
- name: notify-customer
type: call
call: "whatsapp.send-message"
with:
phone: "{{get-alert.customer_phone}}"
template: "fraud_alert"
parameters: "{{card_number_masked}},{{get-alert.transaction_amount}}"
consumes:
- type: http
namespace: fraud-system
baseUri: "https://fraud-detection.ing.com/api/v1"
authentication:
type: bearer
token: "$secrets.fraud_system_token"
resources:
- name: alerts
path: "/alerts/{{alert_id}}"
inputParameters:
- name: alert_id
in: path
operations:
- name: get-alert
method: GET
- type: http
namespace: temenos
baseUri: "https://core-banking.ing.com/api/v1"
authentication:
type: bearer
token: "$secrets.temenos_token"
resources:
- name: cards
path: "/cards/{{card_id}}/block"
inputParameters:
- name: card_id
in: path
operations:
- name: block-card
method: POST
- type: http
namespace: servicenow
baseUri: "https://ing.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: whatsapp
baseUri: "https://graph.facebook.com/v17.0"
authentication:
type: bearer
token: "$secrets.whatsapp_token"
resources:
- name: messages
path: "/{{phone_number_id}}/messages"
inputParameters:
- name: phone_number_id
in: path
operations:
- name: send-message
method: POST
Triggers a GitHub Actions deployment workflow for ING banking applications.
naftiko: "0.5"
info:
label: "GitHub Actions Deployment Trigger"
description: "Triggers a GitHub Actions deployment workflow for ING banking applications."
tags:
- it-operations
- cicd
- github-actions
capability:
exposes:
- type: mcp
namespace: deployments
port: 8080
tools:
- name: trigger-deployment
description: "Trigger a GitHub Actions deployment."
inputParameters:
- name: repo
in: body
type: string
description: "GitHub repository."
- name: workflow_id
in: body
type: string
description: "Workflow ID."
- name: ref
in: body
type: string
description: "Git ref."
call: "github.trigger-workflow"
with:
repo: "{{repo}}"
workflow_id: "{{workflow_id}}"
ref: "{{ref}}"
consumes:
- type: http
namespace: github
baseUri: "https://api.github.com"
authentication:
type: bearer
token: "$secrets.github_token"
resources:
- name: workflows
path: "/repos/{{repo}}/actions/workflows/{{workflow_id}}/dispatches"
inputParameters:
- name: repo
in: path
- name: workflow_id
in: path
operations:
- name: trigger-workflow
method: POST
Retrieves GitHub Copilot usage analytics for ING engineering teams, returning active users, suggestion acceptance rate, and lines of code generated.
naftiko: "0.5"
info:
label: "GitHub Copilot Usage Analytics"
description: "Retrieves GitHub Copilot usage analytics for ING engineering teams, returning active users, suggestion acceptance rate, and lines of code generated."
tags:
- development
- github-copilot
- analytics
capability:
exposes:
- type: mcp
namespace: copilot-analytics
port: 8080
tools:
- name: get-copilot-usage
description: "Retrieve GitHub Copilot usage analytics."
inputParameters:
- name: org_name
in: body
type: string
description: "The GitHub organization name."
call: "github.get-copilot-usage"
with:
org_name: "{{org_name}}"
outputParameters:
- name: active_users
type: number
mapping: "$.totalActiveUsers"
- name: acceptance_rate
type: string
mapping: "$.acceptanceRate"
- name: lines_generated
type: number
mapping: "$.totalLinesGenerated"
consumes:
- type: http
namespace: github
baseUri: "https://api.github.com"
authentication:
type: bearer
token: "$secrets.github_token"
resources:
- name: copilot
path: "/orgs/{{org_name}}/copilot/usage"
inputParameters:
- name: org_name
in: path
operations:
- name: get-copilot-usage
method: GET
Queries Google BigQuery for ING data analytics, returning query results, rows processed, and bytes billed for business intelligence reporting.
naftiko: "0.5"
info:
label: "Google Cloud BigQuery Analytics"
description: "Queries Google BigQuery for ING data analytics, returning query results, rows processed, and bytes billed for business intelligence reporting."
tags:
- analytics
- google-cloud-platform
- data
capability:
exposes:
- type: mcp
namespace: bigquery-analytics
port: 8080
tools:
- name: run-query
description: "Execute a BigQuery analytics query."
inputParameters:
- name: query
in: body
type: string
description: "The SQL query to execute."
call: "bigquery.execute-query"
with:
query: "{{query}}"
outputParameters:
- name: total_rows
type: number
mapping: "$.totalRows"
- name: bytes_billed
type: string
mapping: "$.totalBytesProcessed"
- name: results
type: string
mapping: "$.rows"
consumes:
- type: http
namespace: bigquery
baseUri: "https://bigquery.googleapis.com/bigquery/v2"
authentication:
type: bearer
token: "$secrets.gcp_token"
resources:
- name: queries
path: "/projects/{{project_id}}/queries"
inputParameters:
- name: project_id
in: path
operations:
- name: execute-query
method: POST
Searches for documents in ING's shared Google Drive.
naftiko: "0.5"
info:
label: "Google Drive Document Finder"
description: "Searches for documents in ING's shared Google Drive."
tags:
- documents
- google-drive
capability:
exposes:
- type: mcp
namespace: gdrive-search
port: 8080
tools:
- name: search-docs
description: "Search for documents in Google Drive."
inputParameters:
- name: search_query
in: body
type: string
description: "Search query."
call: "gdrive.search-files"
with:
query: "{{search_query}}"
outputParameters:
- name: files
type: string
mapping: "$.files"
consumes:
- type: http
namespace: gdrive
baseUri: "https://www.googleapis.com/drive/v3"
authentication:
type: bearer
token: "$secrets.google_drive_token"
resources:
- name: files
path: "/files"
inputParameters:
- name: q
in: query
value: "name contains '{{query}}'"
operations:
- name: search-files
method: GET
Checks Google Pay token status for an ING card.
naftiko: "0.5"
info:
label: "Google Pay Integration Status"
description: "Checks Google Pay token status for an ING card."
tags:
- payments
- mobile-banking
- google-pay
capability:
exposes:
- type: mcp
namespace: gpay-status
port: 8080
tools:
- name: get-gpay-status
description: "Check Google Pay status for a card."
inputParameters:
- name: card_id
in: body
type: string
description: "Card identifier."
call: "google-pay.get-token-status"
with:
card_id: "{{card_id}}"
outputParameters:
- name: status
type: string
mapping: "$.tokenStatus"
- name: active_tokens
type: string
mapping: "$.activeTokenCount"
consumes:
- type: http
namespace: google-pay
baseUri: "https://mobile-payments.ing.com/api/v1"
authentication:
type: bearer
token: "$secrets.google_pay_token"
resources:
- name: tokens
path: "/cards/{{card_id}}/google-pay"
inputParameters:
- name: card_id
in: path
operations:
- name: get-token-status
method: GET
Logs environmental, social, and governance metrics to a Google Sheet for ING's sustainability reporting.
naftiko: "0.5"
info:
label: "Google Sheets ESG Metrics Logger"
description: "Logs environmental, social, and governance metrics to a Google Sheet for ING's sustainability reporting."
tags:
- sustainability
- compliance
- google-sheets
capability:
exposes:
- type: mcp
namespace: esg-tracking
port: 8080
tools:
- name: log-esg-metrics
description: "Log ESG metrics to Google Sheets."
inputParameters:
- name: quarter
in: body
type: string
description: "Quarter (YYYY-QN)."
- name: co2_emissions
in: body
type: string
description: "CO2 emissions in tonnes."
- name: green_financing
in: body
type: string
description: "Green financing volume in EUR."
call: "gsheets.append-row"
with:
spreadsheet_id: "esg_reporting"
range: "Metrics!A:C"
values: "{{quarter}},{{co2_emissions}},{{green_financing}}"
consumes:
- type: http
namespace: gsheets
baseUri: "https://sheets.googleapis.com/v4"
authentication:
type: bearer
token: "$secrets.google_sheets_token"
resources:
- name: spreadsheets
path: "/spreadsheets/{{spreadsheet_id}}/values/{{range}}:append"
inputParameters:
- name: spreadsheet_id
in: path
- name: range
in: path
operations:
- name: append-row
method: POST
Retrieves and rotates secrets from HashiCorp Vault for ING application credential management, returning current secret version, rotation timestamp, and lease duration.
naftiko: "0.5"
info:
label: "HashiCorp Vault Secret Rotation"
description: "Retrieves and rotates secrets from HashiCorp Vault for ING application credential management, returning current secret version, rotation timestamp, and lease duration."
tags:
- security
- hashicorp-vault
capability:
exposes:
- type: mcp
namespace: secret-rotation
port: 8080
tools:
- name: rotate-secret
description: "Rotate a secret in HashiCorp Vault."
inputParameters:
- name: secret_path
in: body
type: string
description: "The Vault secret path."
call: "vault.rotate-secret"
with:
secret_path: "{{secret_path}}"
outputParameters:
- name: version
type: number
mapping: "$.data.metadata.version"
- name: rotated_at
type: string
mapping: "$.data.metadata.created_time"
- name: lease_duration
type: number
mapping: "$.lease_duration"
consumes:
- type: http
namespace: vault
baseUri: "https://vault.ing.com/v1"
authentication:
type: bearer
token: "$secrets.vault_token"
resources:
- name: secrets
path: "/secret/data/{{secret_path}}"
inputParameters:
- name: secret_path
in: path
operations:
- name: rotate-secret
method: POST
Retrieves a prospect lead from HubSpot for ING corporate banking outreach.
naftiko: "0.5"
info:
label: "HubSpot Lead Enrichment"
description: "Retrieves a prospect lead from HubSpot for ING corporate banking outreach."
tags:
- sales
- marketing
- hubspot
capability:
exposes:
- type: mcp
namespace: lead-management
port: 8080
tools:
- name: get-lead
description: "Retrieve a HubSpot lead."
inputParameters:
- name: contact_id
in: body
type: string
description: "HubSpot contact ID."
call: "hubspot.get-contact"
with:
contact_id: "{{contact_id}}"
outputParameters:
- name: company
type: string
mapping: "$.properties.company"
- name: email
type: string
mapping: "$.properties.email"
consumes:
- type: http
namespace: hubspot
baseUri: "https://api.hubapi.com"
authentication:
type: bearer
token: "$secrets.hubspot_token"
resources:
- name: contacts
path: "/crm/v3/objects/contacts/{{contact_id}}"
inputParameters:
- name: contact_id
in: path
operations:
- name: get-contact
method: GET
Checks the status of iDEAL payment transactions processed through ING, providing real-time settlement confirmation and reconciliation data for merchants.
naftiko: "0.5"
info:
label: "iDEAL Payment Gateway Status Checker"
description: "Checks the status of iDEAL payment transactions processed through ING, providing real-time settlement confirmation and reconciliation data for merchants."
tags:
- payments
- ideal
- merchant-services
capability:
exposes:
- type: mcp
namespace: ideal-payments
port: 8080
tools:
- name: check-ideal-payment-status
description: "Check the status of an iDEAL payment transaction."
inputParameters:
- name: transaction_id
in: body
type: string
description: "The iDEAL transaction identifier."
- name: merchant_id
in: body
type: string
description: "The ING merchant account identifier."
call: "payments-api.get-ideal-status"
with:
transaction: "{{transaction_id}}"
merchant: "{{merchant_id}}"
outputParameters:
- name: payment_status
type: string
mapping: "$.payment.status"
- name: amount
type: number
mapping: "$.payment.amount"
- name: settlement_date
type: string
mapping: "$.payment.settlementDate"
consumes:
- type: http
namespace: payments-api
baseUri: "https://api.ing.com/payments/v1"
authentication:
type: bearer
token: "$secrets.ing_payments_api_token"
resources:
- name: ideal-transactions
path: "/ideal/transactions/{{transaction}}"
inputParameters:
- name: transaction
in: path
operations:
- name: get-ideal-status
method: GET
Calculates instant loan pre-approval amounts for ING retail customers based on income verification, credit scoring, and existing debt obligations.
naftiko: "0.5"
info:
label: "Instant Loan Pre-Approval Calculator"
description: "Calculates instant loan pre-approval amounts for ING retail customers based on income verification, credit scoring, and existing debt obligations."
tags:
- lending
- credit-scoring
- retail-banking
capability:
exposes:
- type: mcp
namespace: loan-preapproval
port: 8080
tools:
- name: calculate-preapproval
description: "Calculate instant loan pre-approval for a customer."
inputParameters:
- name: customer_id
in: body
type: string
description: "The ING customer identifier."
- name: loan_type
in: body
type: string
description: "Loan type such as personal, auto, or home-improvement."
- name: requested_amount
in: body
type: number
description: "Requested loan amount in EUR."
call: "lending-api.calculate-preapproval"
with:
customer: "{{customer_id}}"
type: "{{loan_type}}"
amount: "{{requested_amount}}"
outputParameters:
- name: approved_amount
type: number
mapping: "$.preapproval.approvedAmount"
- name: interest_rate
type: number
mapping: "$.preapproval.interestRate"
- name: monthly_payment
type: number
mapping: "$.preapproval.monthlyPayment"
consumes:
- type: http
namespace: lending-api
baseUri: "https://api.ing.com/lending/v1"
authentication:
type: bearer
token: "$secrets.ing_lending_api_token"
resources:
- name: preapprovals
path: "/preapprovals"
operations:
- name: calculate-preapproval
method: POST
Processes an instant payment by validating the sender account in Temenos, running fraud detection, executing the payment, and sending a push notification to the customer via the mobile banking API.
naftiko: "0.5"
info:
label: "Instant Payment with Fraud Screening Orchestrator"
description: "Processes an instant payment by validating the sender account in Temenos, running fraud detection, executing the payment, and sending a push notification to the customer via the mobile banking API."
tags:
- payments
- fraud-detection
- temenos-transact
- banking
capability:
exposes:
- type: mcp
namespace: instant-payments
port: 8080
tools:
- name: process-instant-payment
description: "Process an instant payment with fraud screening."
inputParameters:
- name: sender_account
in: body
type: string
description: "Sender account number."
- name: recipient_iban
in: body
type: string
description: "Recipient IBAN."
- name: amount
in: body
type: string
description: "Payment amount."
steps:
- name: validate-account
type: call
call: "temenos.get-account"
with:
account_id: "{{sender_account}}"
- name: screen-fraud
type: call
call: "fraud-engine.screen-payment"
with:
sender: "{{sender_account}}"
recipient: "{{recipient_iban}}"
amount: "{{amount}}"
- name: execute-payment
type: call
call: "temenos.create-instant-payment"
with:
debit_account: "{{sender_account}}"
credit_iban: "{{recipient_iban}}"
amount: "{{amount}}"
- name: notify-customer
type: call
call: "mobile-api.send-push"
with:
account_id: "{{sender_account}}"
message: "Payment of {{amount}} EUR to {{recipient_iban}} completed. Ref: {{execute-payment.reference}}."
consumes:
- type: http
namespace: temenos
baseUri: "https://core-banking.ing.com/api/v1"
authentication:
type: bearer
token: "$secrets.temenos_token"
resources:
- name: accounts
path: "/accounts/{{account_id}}"
inputParameters:
- name: account_id
in: path
operations:
- name: get-account
method: GET
- name: instant-payments
path: "/payments/instant"
operations:
- name: create-instant-payment
method: POST
- type: http
namespace: fraud-engine
baseUri: "https://fraud-detection.ing.com/api/v2"
authentication:
type: bearer
token: "$secrets.fraud_engine_token"
resources:
- name: screening
path: "/screen"
operations:
- name: screen-payment
method: POST
- type: http
namespace: mobile-api
baseUri: "https://mobile-banking.ing.com/api/v1"
authentication:
type: bearer
token: "$secrets.mobile_api_token"
resources:
- name: notifications
path: "/push/send"
operations:
- name: send-push
method: POST
Orchestrates portfolio rebalancing for ING wealth clients by analyzing current allocations in Murex, generating trade orders, executing via the trading platform, and reporting results to the relationship manager via Salesforce.
naftiko: "0.5"
info:
label: "Investment Portfolio Rebalancing Orchestrator"
description: "Orchestrates portfolio rebalancing for ING wealth clients by analyzing current allocations in Murex, generating trade orders, executing via the trading platform, and reporting results to the relationship manager via Salesforce."
tags:
- wealth-management
- trading
- murex
- salesforce
capability:
exposes:
- type: mcp
namespace: portfolio-rebalancing
port: 8080
tools:
- name: rebalance-portfolio
description: "Orchestrate portfolio rebalancing for a wealth client."
inputParameters:
- name: portfolio_id
in: body
type: string
description: "The portfolio ID."
- name: target_model
in: body
type: string
description: "The target allocation model."
steps:
- name: analyze-allocation
type: call
call: "murex.get-portfolio-positions"
with:
portfolio_id: "{{portfolio_id}}"
- name: generate-orders
type: call
call: "rebalancing-engine.calculate-trades"
with:
portfolio_id: "{{portfolio_id}}"
target_model: "{{target_model}}"
current_positions: "{{analyze-allocation.positions}}"
- name: execute-trades
type: call
call: "trading-platform.execute-orders"
with:
order_list: "{{generate-orders.trade_list}}"
- name: update-rm
type: call
call: "salesforce.create-activity"
with:
subject: "Portfolio {{portfolio_id}} rebalanced to {{target_model}}"
description: "Trades executed: {{execute-trades.trade_count}}. Net turnover: {{execute-trades.net_turnover}}."
consumes:
- type: http
namespace: murex
baseUri: "https://murex.ing.com/api/v2"
authentication:
type: bearer
token: "$secrets.murex_token"
resources:
- name: portfolios
path: "/portfolios/{{portfolio_id}}/positions"
inputParameters:
- name: portfolio_id
in: path
operations:
- name: get-portfolio-positions
method: GET
- type: http
namespace: rebalancing-engine
baseUri: "https://rebalancing.ing.com/api/v1"
authentication:
type: bearer
token: "$secrets.rebalancing_token"
resources:
- name: calculations
path: "/calculate"
operations:
- name: calculate-trades
method: POST
- type: http
namespace: trading-platform
baseUri: "https://trading.ing.com/api/v1"
authentication:
type: bearer
token: "$secrets.trading_token"
resources:
- name: orders
path: "/orders/execute"
operations:
- name: execute-orders
method: POST
- type: http
namespace: salesforce
baseUri: "https://ing.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: activities
path: "/sobjects/Task"
operations:
- name: create-activity
method: POST
Retrieves current sprint status from Jira for ING engineering teams, returning sprint name, story points completed, remaining work, and burndown velocity.
naftiko: "0.5"
info:
label: "Jira Project Sprint Status"
description: "Retrieves current sprint status from Jira for ING engineering teams, returning sprint name, story points completed, remaining work, and burndown velocity."
tags:
- development
- jira
capability:
exposes:
- type: mcp
namespace: sprint-tracking
port: 8080
tools:
- name: get-sprint-status
description: "Look up current sprint status in Jira."
inputParameters:
- name: board_id
in: body
type: string
description: "The Jira board ID."
call: "jira.get-sprint"
with:
board_id: "{{board_id}}"
outputParameters:
- name: sprint_name
type: string
mapping: "$.values[0].name"
- name: completed_points
type: number
mapping: "$.values[0].completedPoints"
- name: remaining_points
type: number
mapping: "$.values[0].remainingPoints"
consumes:
- type: http
namespace: jira
baseUri: "https://ing.atlassian.net/rest/agile/1.0"
authentication:
type: basic
username: "$secrets.jira_user"
password: "$secrets.jira_token"
resources:
- name: sprints
path: "/board/{{board_id}}/sprint?state=active"
inputParameters:
- name: board_id
in: path
operations:
- name: get-sprint
method: GET
Retrieves treasury position details from the Kondor system for fixed income and derivatives portfolios.
naftiko: "0.5"
info:
label: "Kondor Treasury Position Lookup"
description: "Retrieves treasury position details from the Kondor system for fixed income and derivatives portfolios."
tags:
- banking
- treasury
- kondor
capability:
exposes:
- type: mcp
namespace: treasury-positions
port: 8080
tools:
- name: get-position
description: "Look up a treasury position in Kondor."
inputParameters:
- name: position_id
in: body
type: string
description: "Kondor position ID."
call: "kondor.get-position"
with:
position_id: "{{position_id}}"
outputParameters:
- name: instrument
type: string
mapping: "$.instrumentName"
- name: notional
type: string
mapping: "$.notionalAmount"
- name: market_value
type: string
mapping: "$.marketValue"
consumes:
- type: http
namespace: kondor
baseUri: "https://kondor.ing.com/api/v1"
authentication:
type: bearer
token: "$secrets.kondor_token"
resources:
- name: positions
path: "/positions/{{position_id}}"
inputParameters:
- name: position_id
in: path
operations:
- name: get-position
method: GET
When a new customer account is opened, runs KYC verification checks, updates the customer profile in the CRM, and logs the verification outcome in ServiceNow.
naftiko: "0.5"
info:
label: "KYC Customer Verification Orchestrator"
description: "When a new customer account is opened, runs KYC verification checks, updates the customer profile in the CRM, and logs the verification outcome in ServiceNow."
tags:
- compliance
- banking
- know-your-customer
- salesforce
- servicenow
capability:
exposes:
- type: mcp
namespace: kyc-verification
port: 8080
tools:
- name: run-kyc-check
description: "Orchestrate KYC verification for a new customer."
inputParameters:
- name: customer_id
in: body
type: string
description: "The customer ID."
- name: full_name
in: body
type: string
description: "Customer full name."
- name: date_of_birth
in: body
type: string
description: "Date of birth YYYY-MM-DD."
- name: nationality
in: body
type: string
description: "Customer nationality."
steps:
- name: verify-identity
type: call
call: "kyc.verify-customer"
with:
name: "{{full_name}}"
dob: "{{date_of_birth}}"
nationality: "{{nationality}}"
- name: update-crm
type: call
call: "salesforce.update-contact"
with:
customer_id: "{{customer_id}}"
kyc_status: "{{verify-identity.result}}"
kyc_date: "{{verify-identity.verification_date}}"
- name: log-outcome
type: call
call: "servicenow.create-incident"
with:
short_description: "KYC verification: {{full_name}} - {{verify-identity.result}}"
category: "kyc_compliance"
description: "Customer: {{customer_id}}. Result: {{verify-identity.result}}. Risk score: {{verify-identity.risk_score}}"
consumes:
- type: http
namespace: kyc
baseUri: "https://kyc-platform.ing.com/api/v1"
authentication:
type: bearer
token: "$secrets.kyc_token"
resources:
- name: verifications
path: "/verify"
operations:
- name: verify-customer
method: POST
- type: http
namespace: salesforce
baseUri: "https://ing.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: contacts
path: "/sobjects/Contact/{{customer_id}}"
inputParameters:
- name: customer_id
in: path
operations:
- name: update-contact
method: PATCH
- type: http
namespace: servicenow
baseUri: "https://ing.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
Creates a job posting on LinkedIn from Workday requisition data and notifies recruiters.
naftiko: "0.5"
info:
label: "LinkedIn Job Posting Publisher"
description: "Creates a job posting on LinkedIn from Workday requisition data and notifies recruiters."
tags:
- hr
- recruiting
- linkedin
- workday
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: job-posting
port: 8080
tools:
- name: publish-job
description: "Publish a Workday requisition to LinkedIn."
inputParameters:
- name: requisition_id
in: body
type: string
description: "Workday requisition ID."
steps:
- name: get-req
type: call
call: "workday.get-requisition"
with:
requisition_id: "{{requisition_id}}"
- name: post-job
type: call
call: "linkedin.create-job"
with:
title: "{{get-req.job_title}}"
description: "{{get-req.job_description}}"
location: "{{get-req.location}}"
- name: notify
type: call
call: "msteams.send-message"
with:
channel_id: "recruiting"
text: "Job posted: {{get-req.job_title}} in {{get-req.location}}. LinkedIn: {{post-job.job_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: requisitions
path: "/recruiting/v1/jobRequisitions/{{requisition_id}}"
inputParameters:
- name: requisition_id
in: path
operations:
- name: get-requisition
method: GET
- type: http
namespace: linkedin
baseUri: "https://api.linkedin.com/v2"
authentication:
type: bearer
token: "$secrets.linkedin_token"
resources:
- name: jobs
path: "/simpleJobPostings"
operations:
- name: create-job
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel_id
in: path
operations:
- name: send-message
method: POST
Retrieves the status of a loan application from the lending platform, returning approval status, requested amount, interest rate, and decision date.
naftiko: "0.5"
info:
label: "Loan Application Status Lookup"
description: "Retrieves the status of a loan application from the lending platform, returning approval status, requested amount, interest rate, and decision date."
tags:
- lending
- banking
- temenos-transact
capability:
exposes:
- type: mcp
namespace: lending
port: 8080
tools:
- name: get-loan-status
description: "Look up a loan application status by application ID."
inputParameters:
- name: application_id
in: body
type: string
description: "The loan application ID."
call: "temenos.get-loan-application"
with:
application_id: "{{application_id}}"
outputParameters:
- name: status
type: string
mapping: "$.body.applicationStatus"
- name: requested_amount
type: string
mapping: "$.body.requestedAmount"
- name: interest_rate
type: string
mapping: "$.body.interestRate"
- name: decision_date
type: string
mapping: "$.body.decisionDate"
consumes:
- type: http
namespace: temenos
baseUri: "https://core-banking.ing.com/api/v1"
authentication:
type: bearer
token: "$secrets.temenos_token"
resources:
- name: loan-applications
path: "/lending/applications/{{application_id}}"
inputParameters:
- name: application_id
in: path
operations:
- name: get-loan-application
method: GET
Retrieves transaction data from Mastercard's network for ING-issued cards.
naftiko: "0.5"
info:
label: "Mastercard Transaction Data Retriever"
description: "Retrieves transaction data from Mastercard's network for ING-issued cards."
tags:
- payments
- banking
- mastercard
capability:
exposes:
- type: mcp
namespace: card-transactions
port: 8080
tools:
- name: get-card-transactions
description: "Retrieve recent transactions for an ING Mastercard."
inputParameters:
- name: card_id
in: body
type: string
description: "Card identifier."
- name: date_range
in: body
type: string
description: "Date range."
call: "mastercard.get-transactions"
with:
card_id: "{{card_id}}"
date_range: "{{date_range}}"
outputParameters:
- name: transactions
type: string
mapping: "$.transactions"
- name: total_count
type: string
mapping: "$.totalCount"
consumes:
- type: http
namespace: mastercard
baseUri: "https://api.mastercard.com/atms/v1"
authentication:
type: bearer
token: "$secrets.mastercard_token"
resources:
- name: transactions
path: "/cards/{{card_id}}/transactions"
inputParameters:
- name: card_id
in: path
- name: date_range
in: query
operations:
- name: get-transactions
method: GET
Retrieves user identity details from Microsoft Entra ID for ING access management, returning user principal name, group memberships, and last sign-in date.
naftiko: "0.5"
info:
label: "Microsoft Entra Identity Lookup"
description: "Retrieves user identity details from Microsoft Entra ID for ING access management, returning user principal name, group memberships, and last sign-in date."
tags:
- security
- identity
- microsoft-entra
capability:
exposes:
- type: mcp
namespace: identity-management
port: 8080
tools:
- name: get-user-identity
description: "Look up a user identity in Microsoft Entra ID."
inputParameters:
- name: user_id
in: body
type: string
description: "The Entra user principal name or ID."
call: "entra.get-user"
with:
user_id: "{{user_id}}"
outputParameters:
- name: display_name
type: string
mapping: "$.displayName"
- name: upn
type: string
mapping: "$.userPrincipalName"
- name: groups
type: string
mapping: "$.memberOf"
- name: last_sign_in
type: string
mapping: "$.signInActivity.lastSignInDateTime"
consumes:
- type: http
namespace: entra
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.entra_token"
resources:
- name: users
path: "/users/{{user_id}}"
inputParameters:
- name: user_id
in: path
operations:
- name: get-user
method: GET
Generates a regulatory Excel report with data from SAP financial systems.
naftiko: "0.5"
info:
label: "Microsoft Excel Regulatory Report Builder"
description: "Generates a regulatory Excel report with data from SAP financial systems."
tags:
- compliance
- reporting
- microsoft-excel
- sap
capability:
exposes:
- type: mcp
namespace: reg-reporting
port: 8080
tools:
- name: build-report
description: "Build a regulatory Excel report from SAP data."
inputParameters:
- name: report_type
in: body
type: string
description: "Report type."
- name: period
in: body
type: string
description: "Reporting period."
steps:
- name: get-data
type: call
call: "sap.get-financial-data"
with:
report_type: "{{report_type}}"
period: "{{period}}"
- name: update-workbook
type: call
call: "excel.update-range"
with:
workbook_id: "reg_{{report_type}}"
sheet_name: "Data"
range: "A2:Z100"
values: "{{get-data.results}}"
consumes:
- type: http
namespace: sap
baseUri: "https://ing-s4.sap.com/sap/opu/odata/sap/API_FINANCIAL_REPORTING_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: reports
path: "/A_FinancialReport"
operations:
- name: get-financial-data
method: GET
- type: http
namespace: excel
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: workbooks
path: "/me/drive/items/{{workbook_id}}/workbook/worksheets/{{sheet_name}}/range(address='{{range}}')"
inputParameters:
- name: workbook_id
in: path
- name: sheet_name
in: path
- name: range
in: path
operations:
- name: update-range
method: PATCH
Creates a meeting on an ING employee's Outlook calendar.
naftiko: "0.5"
info:
label: "Microsoft Outlook Meeting Scheduler"
description: "Creates a meeting on an ING employee's Outlook calendar."
tags:
- communications
- scheduling
- microsoft-outlook
capability:
exposes:
- type: mcp
namespace: meeting-scheduler
port: 8080
tools:
- name: schedule-meeting
description: "Create a meeting on Outlook calendar."
inputParameters:
- name: organizer_upn
in: body
type: string
description: "Organizer UPN."
- name: subject
in: body
type: string
description: "Subject."
- name: start_time
in: body
type: string
description: "Start time ISO 8601."
- name: end_time
in: body
type: string
description: "End time ISO 8601."
call: "outlook.create-event"
with:
organizer_upn: "{{organizer_upn}}"
subject: "{{subject}}"
start_time: "{{start_time}}"
end_time: "{{end_time}}"
outputParameters:
- name: meeting_link
type: string
mapping: "$.onlineMeeting.joinUrl"
consumes:
- type: http
namespace: outlook
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: events
path: "/users/{{organizer_upn}}/events"
inputParameters:
- name: organizer_upn
in: path
operations:
- name: create-event
method: POST
Retrieves project plan status from Microsoft Planner for ING business initiatives, returning task count, completion percentage, and overdue task count.
naftiko: "0.5"
info:
label: "Microsoft Planner Project Tracker"
description: "Retrieves project plan status from Microsoft Planner for ING business initiatives, returning task count, completion percentage, and overdue task count."
tags:
- project-management
- microsoft-planner
capability:
exposes:
- type: mcp
namespace: project-tracking
port: 8080
tools:
- name: get-plan-status
description: "Retrieve project plan status from Microsoft Planner."
inputParameters:
- name: plan_id
in: body
type: string
description: "The Microsoft Planner plan ID."
call: "planner.get-plan"
with:
plan_id: "{{plan_id}}"
outputParameters:
- name: task_count
type: number
mapping: "$.tasks.length"
- name: completion_pct
type: string
mapping: "$.percentComplete"
- name: overdue_count
type: number
mapping: "$.overdueTasks"
consumes:
- type: http
namespace: planner
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.microsoft_graph_token"
resources:
- name: plans
path: "/planner/plans/{{plan_id}}/tasks"
inputParameters:
- name: plan_id
in: path
operations:
- name: get-plan
method: GET
Triggers a Power Automate flow for custom ING automations.
naftiko: "0.5"
info:
label: "Microsoft Power Automate Flow Trigger"
description: "Triggers a Power Automate flow for custom ING automations."
tags:
- automation
- microsoft-power-automate
capability:
exposes:
- type: mcp
namespace: flow-trigger
port: 8080
tools:
- name: trigger-flow
description: "Trigger a Power Automate flow."
inputParameters:
- name: flow_id
in: body
type: string
description: "Flow ID."
- name: payload
in: body
type: string
description: "JSON payload."
call: "power-automate.invoke-flow"
with:
flow_id: "{{flow_id}}"
payload: "{{payload}}"
consumes:
- type: http
namespace: power-automate
baseUri: "https://prod-00.westus.logic.azure.com/workflows"
authentication:
type: bearer
token: "$secrets.power_automate_token"
resources:
- name: flows
path: "/{{flow_id}}/triggers/manual/paths/invoke"
inputParameters:
- name: flow_id
in: path
operations:
- name: invoke-flow
method: POST
Sends an announcement to an ING department's Teams channel.
naftiko: "0.5"
info:
label: "Microsoft Teams Departmental Announcement"
description: "Sends an announcement to an ING department's Teams channel."
tags:
- communications
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: dept-comms
port: 8080
tools:
- name: send-announcement
description: "Post an announcement to a department Teams channel."
inputParameters:
- name: department
in: body
type: string
description: "Department name."
- name: message
in: body
type: string
description: "Message text."
call: "msteams.post-message"
with:
channel_id: "announcements_{{department}}"
text: "{{message}}"
consumes:
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel_id
in: path
operations:
- name: post-message
method: POST
Orchestrates biometric enrollment for ING mobile banking customers, coordinating fingerprint and facial recognition setup with device binding and security validation.
naftiko: "0.5"
info:
label: "Mobile Banking Biometric Enrollment Orchestrator"
description: "Orchestrates biometric enrollment for ING mobile banking customers, coordinating fingerprint and facial recognition setup with device binding and security validation."
tags:
- mobile-banking
- biometric-security
- authentication
capability:
exposes:
- type: mcp
namespace: biometric-enrollment
port: 8080
tools:
- name: enroll-biometric
description: "Enroll a customer biometric authentication method for mobile banking."
inputParameters:
- name: customer_id
in: body
type: string
description: "The ING customer identifier."
- name: device_id
in: body
type: string
description: "The registered mobile device identifier."
- name: biometric_type
in: body
type: string
description: "Biometric type such as fingerprint or face-recognition."
call: "identity-api.enroll-biometric"
with:
customer: "{{customer_id}}"
device: "{{device_id}}"
type: "{{biometric_type}}"
outputParameters:
- name: enrollment_id
type: string
mapping: "$.enrollment.id"
- name: status
type: string
mapping: "$.enrollment.status"
- name: device_bound
type: boolean
mapping: "$.enrollment.deviceBound"
consumes:
- type: http
namespace: identity-api
baseUri: "https://api.ing.com/identity/v1"
authentication:
type: bearer
token: "$secrets.ing_identity_api_token"
resources:
- name: biometrics
path: "/customers/{{customer}}/biometrics"
inputParameters:
- name: customer
in: path
operations:
- name: enroll-biometric
method: POST
Retrieves credit ratings from Moody's for counterparty risk assessment.
naftiko: "0.5"
info:
label: "Moody's Credit Rating Lookup"
description: "Retrieves credit ratings from Moody's for counterparty risk assessment."
tags:
- risk
- compliance
- moodys
capability:
exposes:
- type: mcp
namespace: credit-ratings
port: 8080
tools:
- name: get-credit-rating
description: "Look up a counterparty credit rating from Moody's."
inputParameters:
- name: entity_id
in: body
type: string
description: "Moody's entity ID."
call: "moodys.get-rating"
with:
entity_id: "{{entity_id}}"
outputParameters:
- name: rating
type: string
mapping: "$.rating"
- name: outlook
type: string
mapping: "$.outlook"
consumes:
- type: http
namespace: moodys
baseUri: "https://api.moodys.com/v1"
authentication:
type: bearer
token: "$secrets.moodys_token"
resources:
- name: ratings
path: "/entities/{{entity_id}}/ratings"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-rating
method: GET
Retrieves credit rating information from Moody's for a counterparty, returning the current rating, outlook, and last review date.
naftiko: "0.5"
info:
label: "Moody's Credit Rating Lookup"
description: "Retrieves credit rating information from Moody's for a counterparty, returning the current rating, outlook, and last review date."
tags:
- risk
- credit
- moodys
capability:
exposes:
- type: mcp
namespace: credit-ratings
port: 8080
tools:
- name: get-rating
description: "Look up a Moody's credit rating for a counterparty."
inputParameters:
- name: entity_id
in: body
type: string
description: "The Moody's entity identifier."
call: "moodys.get-rating"
with:
entity_id: "{{entity_id}}"
outputParameters:
- name: rating
type: string
mapping: "$.rating.currentRating"
- name: outlook
type: string
mapping: "$.rating.outlook"
- name: last_review
type: string
mapping: "$.rating.lastReviewDate"
consumes:
- type: http
namespace: moodys
baseUri: "https://api.moodys.com/v1"
authentication:
type: bearer
token: "$secrets.moodys_api_key"
resources:
- name: ratings
path: "/entities/{{entity_id}}/ratings"
inputParameters:
- name: entity_id
in: path
operations:
- name: get-rating
method: GET
When a mortgage application is submitted, runs credit checks, creates a case in the lending system, and notifies the mortgage advisor via Teams.
naftiko: "0.5"
info:
label: "Mortgage Application Pipeline"
description: "When a mortgage application is submitted, runs credit checks, creates a case in the lending system, and notifies the mortgage advisor via Teams."
tags:
- lending
- banking
- temenos-transact
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: mortgage-applications
port: 8080
tools:
- name: process-mortgage
description: "Orchestrate a mortgage application through credit check and advisor notification."
inputParameters:
- name: customer_id
in: body
type: string
description: "Customer ID."
- name: property_value
in: body
type: string
description: "Property value in EUR."
- name: loan_amount
in: body
type: string
description: "Requested mortgage amount in EUR."
- name: term_years
in: body
type: string
description: "Mortgage term in years."
steps:
- name: run-credit-check
type: call
call: "risk-engine.get-score"
with:
customer_id: "{{customer_id}}"
- name: create-application
type: call
call: "temenos.create-mortgage-app"
with:
customer_id: "{{customer_id}}"
property_value: "{{property_value}}"
loan_amount: "{{loan_amount}}"
term_years: "{{term_years}}"
risk_rating: "{{run-credit-check.risk_rating}}"
- name: notify-advisor
type: call
call: "msteams.send-message"
with:
channel_id: "mortgage_advisors"
text: "New mortgage application: Customer {{customer_id}}. Amount: EUR {{loan_amount}}. Property: EUR {{property_value}}. Risk: {{run-credit-check.risk_rating}}. Ref: {{create-application.application_id}}"
consumes:
- type: http
namespace: risk-engine
baseUri: "https://risk-engine.ing.com/api/v1"
authentication:
type: bearer
token: "$secrets.risk_engine_token"
resources:
- name: scores
path: "/credit/scores/{{customer_id}}"
inputParameters:
- name: customer_id
in: path
operations:
- name: get-score
method: GET
- type: http
namespace: temenos
baseUri: "https://core-banking.ing.com/api/v1"
authentication:
type: bearer
token: "$secrets.temenos_token"
resources:
- name: mortgages
path: "/lending/mortgages/applications"
operations:
- name: create-mortgage-app
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel_id
in: path
operations:
- name: send-message
method: POST
Orchestrates mortgage renewal by retrieving the existing mortgage from Temenos, calculating new rates via the pricing engine, generating the renewal offer, and sending it via WhatsApp.
naftiko: "0.5"
info:
label: "Mortgage Renewal Orchestrator"
description: "Orchestrates mortgage renewal by retrieving the existing mortgage from Temenos, calculating new rates via the pricing engine, generating the renewal offer, and sending it via WhatsApp."
tags:
- lending
- mortgage
- temenos-transact
- whatsapp
capability:
exposes:
- type: mcp
namespace: mortgage-renewal
port: 8080
tools:
- name: process-renewal
description: "Process a mortgage renewal for an ING customer."
inputParameters:
- name: mortgage_id
in: body
type: string
description: "The mortgage account ID."
- name: customer_id
in: body
type: string
description: "The customer ID."
steps:
- name: get-mortgage
type: call
call: "temenos.get-mortgage"
with:
mortgage_id: "{{mortgage_id}}"
- name: calculate-rate
type: call
call: "pricing-engine.calculate-rate"
with:
loan_amount: "{{get-mortgage.outstanding_balance}}"
ltv: "{{get-mortgage.current_ltv}}"
term_remaining: "{{get-mortgage.remaining_term}}"
- name: generate-offer
type: call
call: "temenos.create-renewal-offer"
with:
mortgage_id: "{{mortgage_id}}"
new_rate: "{{calculate-rate.offered_rate}}"
term: "{{calculate-rate.recommended_term}}"
- name: notify-customer
type: call
call: "whatsapp.send-message"
with:
phone: "{{get-mortgage.customer_phone}}"
template: "mortgage_renewal_offer"
parameters: "{{calculate-rate.offered_rate}},{{generate-offer.monthly_payment}},{{generate-offer.offer_expiry}}"
consumes:
- type: http
namespace: temenos
baseUri: "https://core-banking.ing.com/api/v1"
authentication:
type: bearer
token: "$secrets.temenos_token"
resources:
- name: mortgages
path: "/mortgages/{{mortgage_id}}"
inputParameters:
- name: mortgage_id
in: path
operations:
- name: get-mortgage
method: GET
- name: renewal-offers
path: "/mortgages/{{mortgage_id}}/renewal"
inputParameters:
- name: mortgage_id
in: path
operations:
- name: create-renewal-offer
method: POST
- type: http
namespace: pricing-engine
baseUri: "https://pricing.ing.com/api/v1"
authentication:
type: bearer
token: "$secrets.pricing_engine_token"
resources:
- name: rates
path: "/mortgage/calculate"
operations:
- name: calculate-rate
method: POST
- type: http
namespace: whatsapp
baseUri: "https://graph.facebook.com/v17.0"
authentication:
type: bearer
token: "$secrets.whatsapp_token"
resources:
- name: messages
path: "/{{phone_number_id}}/messages"
inputParameters:
- name: phone_number_id
in: path
operations:
- name: send-message
method: POST
Checks API gateway health in MuleSoft Anypoint Platform, returning API status, response time, error rate, and active policy count.
naftiko: "0.5"
info:
label: "MuleSoft API Gateway Health Check"
description: "Checks API gateway health in MuleSoft Anypoint Platform, returning API status, response time, error rate, and active policy count."
tags:
- integration
- mulesoft
- monitoring
capability:
exposes:
- type: mcp
namespace: api-gateway
port: 8080
tools:
- name: check-api-health
description: "Check MuleSoft API gateway health."
inputParameters:
- name: api_id
in: body
type: string
description: "The MuleSoft API ID."
call: "mulesoft.get-api-status"
with:
api_id: "{{api_id}}"
outputParameters:
- name: status
type: string
mapping: "$.status"
- name: avg_response_time
type: string
mapping: "$.metrics.avgResponseTime"
- name: error_rate
type: string
mapping: "$.metrics.errorRate"
consumes:
- type: http
namespace: mulesoft
baseUri: "https://anypoint.mulesoft.com/apimanager/api/v1"
authentication:
type: bearer
token: "$secrets.mulesoft_token"
resources:
- name: apis
path: "/organizations/{{org_id}}/environments/{{env_id}}/apis/{{api_id}}"
inputParameters:
- name: api_id
in: path
operations:
- name: get-api-status
method: GET
Checks the status of a MuleSoft API integration for ING's middleware layer.
naftiko: "0.5"
info:
label: "MuleSoft API Integration Status"
description: "Checks the status of a MuleSoft API integration for ING's middleware layer."
tags:
- it-operations
- integrations
- mulesoft
capability:
exposes:
- type: mcp
namespace: integration-status
port: 8080
tools:
- name: get-api-status
description: "Check MuleSoft API integration status."
inputParameters:
- name: api_id
in: body
type: string
description: "MuleSoft API ID."
call: "mulesoft.get-api-status"
with:
api_id: "{{api_id}}"
outputParameters:
- name: status
type: string
mapping: "$.status"
- name: uptime
type: string
mapping: "$.uptime"
consumes:
- type: http
namespace: mulesoft
baseUri: "https://anypoint.mulesoft.com/apimanager/api/v1"
authentication:
type: bearer
token: "$secrets.mulesoft_token"
resources:
- name: apis
path: "/organizations/{{org_id}}/environments/{{env_id}}/apis/{{api_id}}"
inputParameters:
- name: api_id
in: path
operations:
- name: get-api-status
method: GET
Retrieves a derivatives trading position from Murex by trade ID, returning notional amount, mark-to-market value, counterparty, and maturity date.
naftiko: "0.5"
info:
label: "Murex Derivatives Position Lookup"
description: "Retrieves a derivatives trading position from Murex by trade ID, returning notional amount, mark-to-market value, counterparty, and maturity date."
tags:
- trading
- derivatives
- murex
capability:
exposes:
- type: mcp
namespace: derivatives-positions
port: 8080
tools:
- name: get-position
description: "Look up a derivatives position in Murex."
inputParameters:
- name: trade_id
in: body
type: string
description: "The Murex trade ID."
call: "murex.get-trade"
with:
trade_id: "{{trade_id}}"
outputParameters:
- name: notional
type: string
mapping: "$.trade.notionalAmount"
- name: mtm_value
type: string
mapping: "$.trade.markToMarket"
- name: counterparty
type: string
mapping: "$.trade.counterpartyName"
- name: maturity
type: string
mapping: "$.trade.maturityDate"
consumes:
- type: http
namespace: murex
baseUri: "https://murex.ing.com/api/v2"
authentication:
type: bearer
token: "$secrets.murex_token"
resources:
- name: trades
path: "/trades/{{trade_id}}"
inputParameters:
- name: trade_id
in: path
operations:
- name: get-trade
method: GET
Retrieves trade details from the Murex trading platform, returning trade type, notional, counterparty, and maturity date.
naftiko: "0.5"
info:
label: "Murex Trade Booking Lookup"
description: "Retrieves trade details from the Murex trading platform, returning trade type, notional, counterparty, and maturity date."
tags:
- banking
- trading
- murex
capability:
exposes:
- type: mcp
namespace: trade-management
port: 8080
tools:
- name: get-trade
description: "Look up a trade in Murex by trade ID."
inputParameters:
- name: trade_id
in: body
type: string
description: "Murex trade ID."
call: "murex.get-trade"
with:
trade_id: "{{trade_id}}"
outputParameters:
- name: trade_type
type: string
mapping: "$.tradeType"
- name: notional
type: string
mapping: "$.notionalAmount"
- name: counterparty
type: string
mapping: "$.counterpartyName"
- name: maturity_date
type: string
mapping: "$.maturityDate"
consumes:
- type: http
namespace: murex
baseUri: "https://murex.ing.com/api/v1"
authentication:
type: bearer
token: "$secrets.murex_token"
resources:
- name: trades
path: "/trades/{{trade_id}}"
inputParameters:
- name: trade_id
in: path
operations:
- name: get-trade
method: GET
Retrieves application performance from New Relic for ING's online banking platform.
naftiko: "0.5"
info:
label: "New Relic Banking Platform Monitor"
description: "Retrieves application performance from New Relic for ING's online banking platform."
tags:
- it-operations
- monitoring
- new-relic
capability:
exposes:
- type: mcp
namespace: app-performance
port: 8080
tools:
- name: get-app-metrics
description: "Get app performance from New Relic."
inputParameters:
- name: app_id
in: body
type: string
description: "New Relic app ID."
call: "newrelic.get-app"
with:
app_id: "{{app_id}}"
outputParameters:
- name: response_time
type: string
mapping: "$.application.application_summary.response_time"
- name: error_rate
type: string
mapping: "$.application.application_summary.error_rate"
consumes:
- type: http
namespace: newrelic
baseUri: "https://api.newrelic.com/v2"
authentication:
type: apiKey
name: "Api-Key"
in: header
value: "$secrets.newrelic_api_key"
resources:
- name: applications
path: "/applications/{{app_id}}.json"
inputParameters:
- name: app_id
in: path
operations:
- name: get-app
method: GET
Queries Oracle Enterprise Manager for database performance metrics, returning active sessions, wait events, tablespace utilization, and SQL execution statistics.
naftiko: "0.5"
info:
label: "Oracle Database Performance Monitor"
description: "Queries Oracle Enterprise Manager for database performance metrics, returning active sessions, wait events, tablespace utilization, and SQL execution statistics."
tags:
- infrastructure
- oracle-enterprise-manager
- monitoring
capability:
exposes:
- type: mcp
namespace: db-performance
port: 8080
tools:
- name: get-db-metrics
description: "Retrieve Oracle database performance metrics."
inputParameters:
- name: database_id
in: body
type: string
description: "The Oracle database identifier."
call: "oem.get-metrics"
with:
database_id: "{{database_id}}"
outputParameters:
- name: active_sessions
type: number
mapping: "$.metrics.activeSessions"
- name: top_wait_event
type: string
mapping: "$.metrics.topWaitEvent"
- name: tablespace_pct
type: string
mapping: "$.metrics.tablespaceUtilization"
consumes:
- type: http
namespace: oem
baseUri: "https://oem.ing.com/em/websvcs/restful/emws/db/v1"
authentication:
type: basic
username: "$secrets.oem_user"
password: "$secrets.oem_password"
resources:
- name: databases
path: "/databases/{{database_id}}/metrics"
inputParameters:
- name: database_id
in: path
operations:
- name: get-metrics
method: GET
Processes a payment transfer by validating the sender account, running compliance screening via the sanctions system, executing the payment in the core banking platform, and sending confirmation via WhatsApp.
naftiko: "0.5"
info:
label: "Payment Transfer Orchestrator"
description: "Processes a payment transfer by validating the sender account, running compliance screening via the sanctions system, executing the payment in the core banking platform, and sending confirmation via WhatsApp."
tags:
- payments
- banking
- compliance
- temenos-transact
- whatsapp
capability:
exposes:
- type: mcp
namespace: payment-transfers
port: 8080
tools:
- name: process-transfer
description: "Orchestrate a payment transfer with compliance checks and notification."
inputParameters:
- name: sender_account
in: body
type: string
description: "Sender account number."
- name: recipient_account
in: body
type: string
description: "Recipient account number."
- name: amount
in: body
type: string
description: "Transfer amount."
- name: currency
in: body
type: string
description: "Currency code (EUR, USD)."
steps:
- name: validate-sender
type: call
call: "temenos.get-account"
with:
account_id: "{{sender_account}}"
- name: screen-sanctions
type: call
call: "compliance.screen-payment"
with:
sender: "{{sender_account}}"
recipient: "{{recipient_account}}"
amount: "{{amount}}"
currency: "{{currency}}"
- name: execute-payment
type: call
call: "temenos.create-payment"
with:
debit_account: "{{sender_account}}"
credit_account: "{{recipient_account}}"
amount: "{{amount}}"
currency: "{{currency}}"
- name: send-confirmation
type: call
call: "whatsapp.send-message"
with:
phone: "{{validate-sender.phone_number}}"
template: "payment_confirmed"
parameters: "{{amount}} {{currency}},{{recipient_account}},{{execute-payment.reference}}"
consumes:
- type: http
namespace: temenos
baseUri: "https://core-banking.ing.com/api/v1"
authentication:
type: bearer
token: "$secrets.temenos_token"
resources:
- name: accounts
path: "/accounts/{{account_id}}"
inputParameters:
- name: account_id
in: path
operations:
- name: get-account
method: GET
- name: payments
path: "/payments/transfer"
operations:
- name: create-payment
method: POST
- type: http
namespace: compliance
baseUri: "https://compliance-screening.ing.com/api/v1"
authentication:
type: bearer
token: "$secrets.compliance_token"
resources:
- name: screening
path: "/sanctions/screen"
operations:
- name: screen-payment
method: POST
- type: http
namespace: whatsapp
baseUri: "https://graph.facebook.com/v17.0"
authentication:
type: bearer
token: "$secrets.whatsapp_token"
resources:
- name: messages
path: "/{{phone_number_id}}/messages"
inputParameters:
- name: phone_number_id
in: path
operations:
- name: send-message
method: POST
Assigns a Pluralsight learning path to an ING employee and notifies via Teams.
naftiko: "0.5"
info:
label: "Pluralsight Training Assigner"
description: "Assigns a Pluralsight learning path to an ING employee and notifies via Teams."
tags:
- hr
- training
- pluralsight
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: training
port: 8080
tools:
- name: assign-training
description: "Assign training and notify."
inputParameters:
- name: employee_email
in: body
type: string
description: "Employee email."
- name: channel_id
in: body
type: string
description: "Pluralsight channel ID."
steps:
- name: assign
type: call
call: "pluralsight.assign-channel"
with:
email: "{{employee_email}}"
channel_id: "{{channel_id}}"
- name: notify
type: call
call: "msteams.send-message"
with:
recipient_upn: "{{employee_email}}"
text: "New training assigned: {{assign.channel_url}}"
consumes:
- type: http
namespace: pluralsight
baseUri: "https://api.pluralsight.com/api/v1"
authentication:
type: bearer
token: "$secrets.pluralsight_token"
resources:
- name: channels
path: "/channels/{{channel_id}}/assignments"
inputParameters:
- name: channel_id
in: path
operations:
- name: assign-channel
method: POST
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: messages
path: "/users/{{recipient_upn}}/sendMail"
inputParameters:
- name: recipient_upn
in: path
operations:
- name: send-message
method: POST
Retrieves regulatory compliance dashboard data from Power BI, returning capital adequacy ratio, liquidity coverage ratio, and leverage ratio for ING Group reporting.
naftiko: "0.5"
info:
label: "Power BI Regulatory Dashboard"
description: "Retrieves regulatory compliance dashboard data from Power BI, returning capital adequacy ratio, liquidity coverage ratio, and leverage ratio for ING Group reporting."
tags:
- compliance
- analytics
- power-bi
capability:
exposes:
- type: mcp
namespace: regulatory-dashboard
port: 8080
tools:
- name: get-regulatory-metrics
description: "Retrieve regulatory compliance metrics from Power BI."
inputParameters:
- name: report_date
in: body
type: string
description: "The reporting date."
call: "powerbi.query-regulatory"
with:
report_date: "{{report_date}}"
outputParameters:
- name: car
type: string
mapping: "$.value[0].CapitalAdequacyRatio"
- name: lcr
type: string
mapping: "$.value[0].LiquidityCoverageRatio"
- name: leverage_ratio
type: string
mapping: "$.value[0].LeverageRatio"
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}}/executeQueries"
inputParameters:
- name: dataset_id
in: path
operations:
- name: query-regulatory
method: POST
Manages PSD2 open banking consent flows for third-party account access, handling consent creation, status tracking, and revocation across ING retail accounts.
naftiko: "0.5"
info:
label: "PSD2 Account Access Consent Manager"
description: "Manages PSD2 open banking consent flows for third-party account access, handling consent creation, status tracking, and revocation across ING retail accounts."
tags:
- open-banking
- psd2
- consent-management
capability:
exposes:
- type: mcp
namespace: psd2-consent
port: 8080
tools:
- name: manage-account-consent
description: "Create or revoke a PSD2 account access consent."
inputParameters:
- name: customer_id
in: body
type: string
description: "The ING customer identifier."
- name: tpp_id
in: body
type: string
description: "The third-party provider identifier."
- name: action
in: body
type: string
description: "Action to perform such as create or revoke."
call: "open-banking-api.manage-consent"
with:
customer: "{{customer_id}}"
tpp: "{{tpp_id}}"
action: "{{action}}"
outputParameters:
- name: consent_id
type: string
mapping: "$.consent.consentId"
- name: status
type: string
mapping: "$.consent.status"
- name: valid_until
type: string
mapping: "$.consent.validUntil"
consumes:
- type: http
namespace: open-banking-api
baseUri: "https://api.ing.com/open-banking/v1"
authentication:
type: bearer
token: "$secrets.ing_open_banking_token"
resources:
- name: consents
path: "/consents"
operations:
- name: manage-consent
method: POST
Retrieves interbank reference rates (EURIBOR, EONIA, SOFR) from the market data service, returning rate value, tenor, fixing date, and source.
naftiko: "0.5"
info:
label: "Interbank Reference Rate Lookup"
description: "Retrieves interbank reference rates (EURIBOR, EONIA, SOFR) from the market data service, returning rate value, tenor, fixing date, and source."
tags:
- treasury
- market-data
- rates
capability:
exposes:
- type: mcp
namespace: reference-rates
port: 8080
tools:
- name: get-reference-rate
description: "Look up an interbank reference rate."
inputParameters:
- name: rate_type
in: body
type: string
description: "The rate type (EURIBOR, SOFR, EONIA)."
- name: tenor
in: body
type: string
description: "The tenor (1M, 3M, 6M, 12M)."
call: "market-data.get-rate"
with:
rate_type: "{{rate_type}}"
tenor: "{{tenor}}"
outputParameters:
- name: rate_value
type: string
mapping: "$.data.rate"
- name: fixing_date
type: string
mapping: "$.data.fixingDate"
- name: source
type: string
mapping: "$.data.source"
consumes:
- type: http
namespace: market-data
baseUri: "https://market-data.ing.com/api/v1"
authentication:
type: bearer
token: "$secrets.market_data_token"
resources:
- name: rates
path: "/reference-rates?type={{rate_type}}&tenor={{tenor}}"
inputParameters:
- name: rate_type
in: query
- name: tenor
in: query
operations:
- name: get-rate
method: GET
Retrieves OpenShift cluster health for ING microservices platform, returning node readiness count, pod status summary, and cluster version.
naftiko: "0.5"
info:
label: "Red Hat OpenShift Cluster Status"
description: "Retrieves OpenShift cluster health for ING microservices platform, returning node readiness count, pod status summary, and cluster version."
tags:
- infrastructure
- openshift
- monitoring
capability:
exposes:
- type: mcp
namespace: openshift-health
port: 8080
tools:
- name: get-cluster-status
description: "Retrieve OpenShift cluster health status."
inputParameters:
- name: cluster_name
in: body
type: string
description: "The OpenShift cluster name."
call: "openshift.get-cluster"
with:
cluster_name: "{{cluster_name}}"
outputParameters:
- name: ready_nodes
type: number
mapping: "$.status.readyNodes"
- name: pod_summary
type: string
mapping: "$.status.podSummary"
- name: version
type: string
mapping: "$.status.version"
consumes:
- type: http
namespace: openshift
baseUri: "https://api.openshift.ing.com:6443"
authentication:
type: bearer
token: "$secrets.openshift_token"
resources:
- name: clusters
path: "/apis/config.openshift.io/v1/clusterversions"
operations:
- name: get-cluster
method: GET
Pulls financial data from SAP and generates a regulatory compliance report, storing it in SharePoint and notifying the compliance team.
naftiko: "0.5"
info:
label: "Regulatory Report Generator"
description: "Pulls financial data from SAP and generates a regulatory compliance report, storing it in SharePoint and notifying the compliance team."
tags:
- compliance
- reporting
- sap
- sharepoint
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: regulatory-reporting
port: 8080
tools:
- name: generate-report
description: "Generate a regulatory report from SAP data and store in SharePoint."
inputParameters:
- name: report_type
in: body
type: string
description: "Report type (e.g., COREP, FINREP, LCR)."
- name: reporting_period
in: body
type: string
description: "Reporting period YYYY-QN."
steps:
- name: get-financial-data
type: call
call: "sap.get-financial-report"
with:
report_type: "{{report_type}}"
period: "{{reporting_period}}"
- name: store-report
type: call
call: "sharepoint.upload-file"
with:
site_id: "regulatory_reports"
folder_path: "{{report_type}}/{{reporting_period}}"
content: "{{get-financial-data.report_data}}"
- name: notify-compliance
type: call
call: "msteams.send-message"
with:
channel_id: "regulatory_compliance"
text: "{{report_type}} report for {{reporting_period}} generated and stored. URL: {{store-report.download_url}}"
consumes:
- type: http
namespace: sap
baseUri: "https://ing-s4.sap.com/sap/opu/odata/sap/API_FINANCIAL_REPORTING_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: reports
path: "/A_FinancialReport"
inputParameters:
- name: $filter
in: query
value: "ReportType eq '{{report_type}}' and Period eq '{{period}}'"
operations:
- name: get-financial-report
method: GET
- type: http
namespace: sharepoint
baseUri: "https://graph.microsoft.com/v1.0/sites"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: uploads
path: "/{{site_id}}/drive/root:/{{folder_path}}:/content"
inputParameters:
- name: site_id
in: path
- name: folder_path
in: path
operations:
- name: upload-file
method: PUT
- type: http
namespace: msteams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: channel-messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel_id
in: path
operations:
- name: send-message
method: POST
Orchestrates regulatory report submission by extracting data from Snowflake, validating against rules in the compliance engine, generating the XBRL report, and filing with the regulator via the submission gateway.
naftiko: "0.5"
info:
label: "Regulatory Reporting Submission Orchestrator"
description: "Orchestrates regulatory report submission by extracting data from Snowflake, validating against rules in the compliance engine, generating the XBRL report, and filing with the regulator via the submission gateway."
tags:
- compliance
- regulatory
- snowflake
capability:
exposes:
- type: mcp
namespace: regulatory-reporting
port: 8080
tools:
- name: submit-regulatory-report
description: "Orchestrate regulatory report generation and submission."
inputParameters:
- name: report_type
in: body
type: string
description: "The report type (COREP, FINREP, LCR)."
- name: reporting_date
in: body
type: string
description: "The reporting reference date."
steps:
- name: extract-data
type: call
call: "snowflake.query-regulatory-data"
with:
report_type: "{{report_type}}"
date: "{{reporting_date}}"
- name: validate-report
type: call
call: "compliance-engine.validate-report"
with:
report_type: "{{report_type}}"
data_hash: "{{extract-data.data_hash}}"
- name: generate-xbrl
type: call
call: "reporting-engine.generate-xbrl"
with:
report_type: "{{report_type}}"
data_id: "{{extract-data.data_id}}"
validation_id: "{{validate-report.validation_id}}"
- name: file-with-regulator
type: call
call: "submission-gateway.submit"
with:
report_type: "{{report_type}}"
xbrl_id: "{{generate-xbrl.xbrl_document_id}}"
reporting_date: "{{reporting_date}}"
consumes:
- type: http
namespace: snowflake
baseUri: "https://ing.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: statements
path: "/statements"
operations:
- name: query-regulatory-data
method: POST
- type: http
namespace: compliance-engine
baseUri: "https://compliance-engine.ing.com/api/v1"
authentication:
type: bearer
token: "$secrets.compliance_engine_token"
resources:
- name: validation
path: "/reports/validate"
operations:
- name: validate-report
method: POST
- type: http
namespace: reporting-engine
baseUri: "https://regulatory-reporting.ing.com/api/v1"
authentication:
type: bearer
token: "$secrets.reporting_engine_token"
resources:
- name: xbrl
path: "/generate/xbrl"
operations:
- name: generate-xbrl
method: POST
- type: http
namespace: submission-gateway
baseUri: "https://submission-gateway.ing.com/api/v1"
authentication:
type: bearer
token: "$secrets.submission_gateway_token"
resources:
- name: submissions
path: "/submit"
operations:
- name: submit
method: POST
Retrieves a customer's 360 view from Salesforce, including account summary, recent interactions, and open cases.
naftiko: "0.5"
info:
label: "Salesforce Customer 360 Lookup"
description: "Retrieves a customer's 360 view from Salesforce, including account summary, recent interactions, and open cases."
tags:
- banking
- customer-service
- salesforce
capability:
exposes:
- type: mcp
namespace: customer-360
port: 8080
tools:
- name: get-customer-view
description: "Retrieve customer 360 view from Salesforce."
inputParameters:
- name: customer_id
in: body
type: string
description: "Customer ID."
call: "salesforce.get-contact"
with:
customer_id: "{{customer_id}}"
outputParameters:
- name: name
type: string
mapping: "$.Name"
- name: segment
type: string
mapping: "$.Customer_Segment__c"
- name: relationship_manager
type: string
mapping: "$.Relationship_Manager__c"
- name: open_cases
type: string
mapping: "$.Cases.totalSize"
consumes:
- type: http
namespace: salesforce
baseUri: "https://ing.my.salesforce.com/services/data/v58.0"
authentication:
type: bearer
token: "$secrets.salesforce_token"
resources:
- name: contacts
path: "/sobjects/Contact/{{customer_id}}"
inputParameters:
- name: customer_id
in: path
operations:
- name: get-contact
method: GET
Retrieves billing account details from SAP BRIM for ING fee management, returning account status, outstanding charges, billing cycle, and payment method.
naftiko: "0.5"
info:
label: "SAP BRIM Billing Account Lookup"
description: "Retrieves billing account details from SAP BRIM for ING fee management, returning account status, outstanding charges, billing cycle, and payment method."
tags:
- billing
- sap-brim
- banking
capability:
exposes:
- type: mcp
namespace: billing-management
port: 8080
tools:
- name: get-billing-account
description: "Look up a billing account in SAP BRIM."
inputParameters:
- name: billing_account_id
in: body
type: string
description: "The SAP BRIM billing account ID."
call: "sapbrim.get-account"
with:
billing_account_id: "{{billing_account_id}}"
outputParameters:
- name: status
type: string
mapping: "$.billingAccount.status"
- name: outstanding_charges
type: string
mapping: "$.billingAccount.outstandingAmount"
- name: billing_cycle
type: string
mapping: "$.billingAccount.billingCycle"
consumes:
- type: http
namespace: sapbrim
baseUri: "https://ing-brim.sap.com/api/v1"
authentication:
type: basic
username: "$secrets.sap_brim_user"
password: "$secrets.sap_brim_password"
resources:
- name: accounts
path: "/billing-accounts/{{billing_account_id}}"
inputParameters:
- name: billing_account_id
in: path
operations:
- name: get-account
method: GET
Retrieves general ledger account balances from SAP for ING financial reporting, returning debit total, credit total, and net balance for a given period.
naftiko: "0.5"
info:
label: "SAP General Ledger Balance Lookup"
description: "Retrieves general ledger account balances from SAP for ING financial reporting, returning debit total, credit total, and net balance for a given period."
tags:
- finance
- sap
- accounting
capability:
exposes:
- type: mcp
namespace: general-ledger
port: 8080
tools:
- name: get-gl-balance
description: "Look up a general ledger account balance in SAP."
inputParameters:
- name: gl_account
in: body
type: string
description: "The GL account number."
- name: fiscal_period
in: body
type: string
description: "The fiscal period."
call: "sap.get-gl-balance"
with:
gl_account: "{{gl_account}}"
fiscal_period: "{{fiscal_period}}"
outputParameters:
- name: debit_total
type: string
mapping: "$.d.DebitAmount"
- name: credit_total
type: string
mapping: "$.d.CreditAmount"
- name: net_balance
type: string
mapping: "$.d.NetBalance"
consumes:
- type: http
namespace: sap
baseUri: "https://ing-s4.sap.com/sap/opu/odata/sap/API_JOURNALENTRYITEMBASIC_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: gl-accounts
path: "/A_GLAccountBalance(GLAccount='{{gl_account}}',FiscalPeriod='{{fiscal_period}}')"
inputParameters:
- name: gl_account
in: path
- name: fiscal_period
in: path
operations:
- name: get-gl-balance
method: GET
Creates a general ledger journal entry in SAP for financial accounting.
naftiko: "0.5"
info:
label: "SAP General Ledger Entry Creator"
description: "Creates a general ledger journal entry in SAP for financial accounting."
tags:
- finance
- accounting
- sap
capability:
exposes:
- type: mcp
namespace: finance-gl
port: 8080
tools:
- name: create-journal-entry
description: "Create a GL journal entry in SAP."
inputParameters:
- name: company_code
in: body
type: string
description: "SAP company code."
- name: posting_date
in: body
type: string
description: "Posting date YYYY-MM-DD."
- name: line_items
in: body
type: string
description: "JSON array of line items."
call: "sap.create-journal"
with:
company_code: "{{company_code}}"
posting_date: "{{posting_date}}"
line_items: "{{line_items}}"
consumes:
- type: http
namespace: sap
baseUri: "https://ing-s4.sap.com/sap/opu/odata/sap/API_JOURNALENTRYITEMBASIC_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: journal-entries
path: "/A_JournalEntryHeader"
operations:
- name: create-journal
method: POST
Retrieves a SAP purchase order for ING procurement.
naftiko: "0.5"
info:
label: "SAP Purchase Order Lookup"
description: "Retrieves a SAP purchase order for ING procurement."
tags:
- procurement
- finance
- sap
capability:
exposes:
- type: mcp
namespace: procurement
port: 8080
tools:
- name: get-purchase-order
description: "Look up a SAP purchase order."
inputParameters:
- name: po_number
in: body
type: string
description: "SAP PO number."
call: "sap.get-po"
with:
po_number: "{{po_number}}"
outputParameters:
- name: vendor
type: string
mapping: "$.d.Supplier.CompanyName"
- name: total_amount
type: string
mapping: "$.d.TotalAmount"
- name: status
type: string
mapping: "$.d.OverallStatus"
consumes:
- type: http
namespace: sap
baseUri: "https://ing-s4.sap.com/sap/opu/odata/sap/MM_PUR_PO_MAINT_V2_SRV"
authentication:
type: basic
username: "$secrets.sap_user"
password: "$secrets.sap_password"
resources:
- name: purchase-orders
path: "/A_PurchaseOrder('{{po_number}}')"
inputParameters:
- name: po_number
in: path
operations:
- name: get-po
method: GET
Tracks savings goal progress for ING retail customers, calculating projected completion dates and suggesting automatic transfer adjustments to meet targets.
naftiko: "0.5"
info:
label: "Savings Goal Progress Tracker"
description: "Tracks savings goal progress for ING retail customers, calculating projected completion dates and suggesting automatic transfer adjustments to meet targets."
tags:
- retail-banking
- savings
- personal-finance
capability:
exposes:
- type: mcp
namespace: savings-goals
port: 8080
tools:
- name: get-savings-goal-progress
description: "Retrieve savings goal progress and projected completion date."
inputParameters:
- name: customer_id
in: body
type: string
description: "The ING customer identifier."
- name: goal_id
in: body
type: string
description: "The savings goal identifier."
call: "savings-api.get-goal-progress"
with:
customer: "{{customer_id}}"
goal: "{{goal_id}}"
outputParameters:
- name: current_balance
type: number
mapping: "$.goal.currentBalance"
- name: target_amount
type: number
mapping: "$.goal.targetAmount"
- name: projected_completion_date
type: string
mapping: "$.goal.projectedCompletionDate"
consumes:
- type: http
namespace: savings-api
baseUri: "https://api.ing.com/retail/v1"
authentication:
type: bearer
token: "$secrets.ing_retail_api_token"
resources:
- name: goals
path: "/customers/{{customer}}/savings-goals/{{goal}}"
inputParameters:
- name: customer
in: path
- name: goal
in: path
operations:
- name: get-goal-progress
method: GET
Processes a SEPA batch payment file by validating the file format, screening all payments against sanctions, executing the batch in Temenos, and sending settlement confirmation via the corporate portal.
naftiko: "0.5"
info:
label: "SEPA Batch Payment Processing Pipeline"
description: "Processes a SEPA batch payment file by validating the file format, screening all payments against sanctions, executing the batch in Temenos, and sending settlement confirmation via the corporate portal."
tags:
- payments
- sepa
- temenos-transact
- compliance
capability:
exposes:
- type: mcp
namespace: sepa-batch
port: 8080
tools:
- name: process-batch
description: "Process a SEPA batch payment file."
inputParameters:
- name: batch_id
in: body
type: string
description: "The batch file identifier."
- name: corporate_id
in: body
type: string
description: "The corporate client ID."
steps:
- name: validate-file
type: call
call: "payment-hub.validate-batch"
with:
batch_id: "{{batch_id}}"
- name: screen-sanctions
type: call
call: "compliance.screen-batch"
with:
batch_id: "{{batch_id}}"
payment_count: "{{validate-file.payment_count}}"
- name: execute-batch
type: call
call: "temenos.execute-batch-payment"
with:
batch_id: "{{batch_id}}"
corporate_id: "{{corporate_id}}"
- name: confirm-settlement
type: call
call: "corporate-portal.send-confirmation"
with:
corporate_id: "{{corporate_id}}"
batch_id: "{{batch_id}}"
total_amount: "{{execute-batch.total_amount}}"
payment_count: "{{validate-file.payment_count}}"
consumes:
- type: http
namespace: payment-hub
baseUri: "https://payment-hub.ing.com/api/v1"
authentication:
type: bearer
token: "$secrets.payment_hub_token"
resources:
- name: batches
path: "/batches/validate"
operations:
- name: validate-batch
method: POST
- type: http
namespace: compliance
baseUri: "https://compliance-screening.ing.com/api/v1"
authentication:
type: bearer
token: "$secrets.compliance_token"
resources:
- name: batch-screening
path: "/sanctions/screen-batch"
operations:
- name: screen-batch
method: POST
- type: http
namespace: temenos
baseUri: "https://core-banking.ing.com/api/v1"
authentication:
type: bearer
token: "$secrets.temenos_token"
resources:
- name: batch-payments
path: "/payments/batch/execute"
operations:
- name: execute-batch-payment
method: POST
- type: http
namespace: corporate-portal
baseUri: "https://corporate.ing.com/api/v1"
authentication:
type: bearer
token: "$secrets.corporate_portal_token"
resources:
- name: confirmations
path: "/confirmations/send"
operations:
- name: send-confirmation
method: POST
Retrieves SEPA direct debit mandate details for a customer account, returning mandate reference, creditor, status, and maximum amount.
naftiko: "0.5"
info:
label: "SEPA Direct Debit Mandate Lookup"
description: "Retrieves SEPA direct debit mandate details for a customer account, returning mandate reference, creditor, status, and maximum amount."
tags:
- payments
- banking
- temenos-transact
capability:
exposes:
- type: mcp
namespace: direct-debits
port: 8080
tools:
- name: get-mandate
description: "Look up SEPA direct debit mandate details."
inputParameters:
- name: mandate_ref
in: body
type: string
description: "The SEPA mandate reference."
call: "temenos.get-mandate"
with:
mandate_ref: "{{mandate_ref}}"
outputParameters:
- name: creditor_name
type: string
mapping: "$.body.creditorName"
- name: status
type: string
mapping: "$.body.mandateStatus"
- name: max_amount
type: string
mapping: "$.body.maximumAmount"
consumes:
- type: http
namespace: temenos
baseUri: "https://core-banking.ing.com/api/v1"
authentication:
type: bearer
token: "$secrets.temenos_token"
resources:
- name: mandates
path: "/payments/directDebits/mandates/{{mandate_ref}}"
inputParameters:
- name: mandate_ref
in: path
operations:
- name: get-mandate
method: GET
Retrieves IT change request details from ServiceNow for ING infrastructure changes, returning change type, approval status, risk assessment, and implementation window.
naftiko: "0.5"
info:
label: "ServiceNow Change Request Lookup"
description: "Retrieves IT change request details from ServiceNow for ING infrastructure changes, returning change type, approval status, risk assessment, and implementation window."
tags:
- it-service-management
- servicenow
capability:
exposes:
- type: mcp
namespace: change-management
port: 8080
tools:
- name: get-change-request
description: "Look up a change request in ServiceNow."
inputParameters:
- name: change_number
in: body
type: string
description: "The ServiceNow change request number."
call: "servicenow.get-change"
with:
change_number: "{{change_number}}"
outputParameters:
- name: type
type: string
mapping: "$.result.type"
- name: approval_status
type: string
mapping: "$.result.approval"
- name: risk
type: string
mapping: "$.result.risk"
- name: implementation_window
type: string
mapping: "$.result.start_date"
consumes:
- type: http
namespace: servicenow
baseUri: "https://ing.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: changes
path: "/table/change_request?sysparm_query=number={{change_number}}"
inputParameters:
- name: change_number
in: query
operations:
- name: get-change
method: GET
Retrieves a ServiceNow incident by number, returning state, assigned group, and priority.
naftiko: "0.5"
info:
label: "ServiceNow IT Incident Status Lookup"
description: "Retrieves a ServiceNow incident by number, returning state, assigned group, and priority."
tags:
- it-operations
- servicenow
capability:
exposes:
- type: mcp
namespace: incident-status
port: 8080
tools:
- name: get-incident
description: "Look up a ServiceNow incident by number."
inputParameters:
- name: incident_number
in: body
type: string
description: "Incident number."
call: "servicenow.get-incident"
with:
incident_number: "{{incident_number}}"
outputParameters:
- name: state
type: string
mapping: "$.result.state"
- name: assigned_to
type: string
mapping: "$.result.assigned_to.display_value"
- name: priority
type: string
mapping: "$.result.priority"
consumes:
- type: http
namespace: servicenow
baseUri: "https://ing.service-now.com/api/now"
authentication:
type: basic
username: "$secrets.servicenow_user"
password: "$secrets.servicenow_password"
resources:
- name: incidents
path: "/table/incident"
inputParameters:
- name: sysparm_query
in: query
value: "number={{incident_number}}"
operations:
- name: get-incident
method: GET
Retrieves a compliance or policy document from SharePoint.
naftiko: "0.5"
info:
label: "SharePoint Policy Document Retriever"
description: "Retrieves a compliance or policy document from SharePoint."
tags:
- compliance
- documents
- sharepoint
capability:
exposes:
- type: mcp
namespace: policy-docs
port: 8080
tools:
- name: get-policy-doc
description: "Retrieve a policy document from SharePoint."
inputParameters:
- name: site_id
in: body
type: string
description: "SharePoint site ID."
- name: file_path
in: body
type: string
description: "File path."
call: "sharepoint.get-file"
with:
site_id: "{{site_id}}"
file_path: "{{file_path}}"
outputParameters:
- name: download_url
type: string
mapping: "$.@microsoft.graph.downloadUrl"
- name: file_name
type: string
mapping: "$.name"
consumes:
- type: http
namespace: sharepoint
baseUri: "https://graph.microsoft.com/v1.0/sites"
authentication:
type: bearer
token: "$secrets.msgraph_token"
resources:
- name: files
path: "/{{site_id}}/drive/root:/{{file_path}}"
inputParameters:
- name: site_id
in: path
- name: file_path
in: path
operations:
- name: get-file
method: GET
Queries Snowflake for customer risk analytics, returning risk score, exposure amount, probability of default, and loss given default for a customer segment.
naftiko: "0.5"
info:
label: "Snowflake Customer Risk Analytics"
description: "Queries Snowflake for customer risk analytics, returning risk score, exposure amount, probability of default, and loss given default for a customer segment."
tags:
- risk
- analytics
- snowflake
capability:
exposes:
- type: mcp
namespace: customer-risk
port: 8080
tools:
- name: get-risk-analytics
description: "Query customer risk analytics from Snowflake."
inputParameters:
- name: customer_segment
in: body
type: string
description: "The customer risk segment."
call: "snowflake.query-risk"
with:
customer_segment: "{{customer_segment}}"
outputParameters:
- name: avg_risk_score
type: string
mapping: "$.data[0].avg_risk_score"
- name: total_exposure
type: string
mapping: "$.data[0].total_exposure"
- name: avg_pd
type: string
mapping: "$.data[0].avg_probability_of_default"
consumes:
- type: http
namespace: snowflake
baseUri: "https://ing.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: statements
path: "/statements"
operations:
- name: query-risk
method: POST
Runs a risk analytics query in Snowflake, returning portfolio-level risk metrics.
naftiko: "0.5"
info:
label: "Snowflake Risk Analytics Query"
description: "Runs a risk analytics query in Snowflake, returning portfolio-level risk metrics."
tags:
- risk
- analytics
- snowflake
capability:
exposes:
- type: mcp
namespace: risk-analytics
port: 8080
tools:
- name: query-risk-data
description: "Run a risk analytics query in Snowflake."
inputParameters:
- name: portfolio_id
in: body
type: string
description: "Portfolio identifier."
call: "snowflake.execute-query"
with:
statement: "SELECT total_exposure, var_95, expected_loss, risk_weighted_assets FROM PORTFOLIO_RISK WHERE portfolio_id = '{{portfolio_id}}'"
outputParameters:
- name: total_exposure
type: string
mapping: "$.data[0][0]"
- name: var_95
type: string
mapping: "$.data[0][1]"
- name: expected_loss
type: string
mapping: "$.data[0][2]"
consumes:
- type: http
namespace: snowflake
baseUri: "https://ing.snowflakecomputing.com/api/v2"
authentication:
type: bearer
token: "$secrets.snowflake_token"
resources:
- name: statements
path: "/statements"
operations:
- name: execute-query
method: POST
Retrieves a payment intent status from Stripe for ING's digital retail products.
naftiko: "0.5"
info:
label: "Stripe Payment Gateway Status"
description: "Retrieves a payment intent status from Stripe for ING's digital retail products."
tags:
- payments
- e-commerce
- stripe
capability:
exposes:
- type: mcp
namespace: payment-gateway
port: 8080
tools:
- name: get-payment-status
description: "Look up a Stripe payment intent status."
inputParameters:
- name: payment_intent_id
in: body
type: string
description: "Stripe payment intent ID."
call: "stripe.get-payment-intent"
with:
payment_intent_id: "{{payment_intent_id}}"
outputParameters:
- name: status
type: string
mapping: "$.status"
- name: amount
type: string
mapping: "$.amount"
- name: currency
type: string
mapping: "$.currency"
consumes:
- type: http
namespace: stripe
baseUri: "https://api.stripe.com/v1"
authentication:
type: bearer
token: "$secrets.stripe_secret_key"
resources:
- name: payment-intents
path: "/payment_intents/{{payment_intent_id}}"
inputParameters:
- name: payment_intent_id
in: path
operations:
- name: get-payment-intent
method: GET
Tracks ING's green and sustainability bond portfolio performance, monitoring ESG compliance metrics and carbon offset reporting for institutional investors.
naftiko: "0.5"
info:
label: "Sustainability Bond Portfolio Tracker"
description: "Tracks ING's green and sustainability bond portfolio performance, monitoring ESG compliance metrics and carbon offset reporting for institutional investors."
tags:
- sustainable-finance
- bonds
- esg-reporting
capability:
exposes:
- type: mcp
namespace: sustainability-bonds
port: 8080
tools:
- name: get-bond-portfolio-metrics
description: "Retrieve sustainability bond portfolio metrics and ESG scores."
inputParameters:
- name: portfolio_id
in: body
type: string
description: "The bond portfolio identifier."
- name: reporting_period
in: body
type: string
description: "Reporting period in YYYY-QN format."
call: "sustainable-finance-api.get-portfolio-metrics"
with:
portfolio: "{{portfolio_id}}"
period: "{{reporting_period}}"
outputParameters:
- name: total_green_assets
type: number
mapping: "$.portfolio.totalGreenAssets"
- name: carbon_offset_tonnes
type: number
mapping: "$.portfolio.carbonOffsetTonnes"
- name: esg_compliance_score
type: number
mapping: "$.portfolio.esgComplianceScore"
consumes:
- type: http
namespace: sustainable-finance-api
baseUri: "https://api.ing.com/sustainable-finance/v1"
authentication:
type: bearer
token: "$secrets.ing_sustainable_finance_token"
resources:
- name: portfolios
path: "/bond-portfolios/{{portfolio}}/metrics"
inputParameters:
- name: portfolio
in: path
operations:
- name: get-portfolio-metrics
method: GET
Tracks a SWIFT GPI payment by UETR, returning payment status, last update timestamp, and beneficiary confirmation from the SWIFT network.
naftiko: "0.5"
info:
label: "SWIFT GPI Payment Tracker"
description: "Tracks a SWIFT GPI payment by UETR, returning payment status, last update timestamp, and beneficiary confirmation from the SWIFT network."
tags:
- payments
- swift
- banking
capability:
exposes:
- type: mcp
namespace: swift-gpi
port: 8080
tools:
- name: track-payment
description: "Track a SWIFT GPI payment by UETR."
inputParameters:
- name: uetr
in: body
type: string
description: "The Unique End-to-End Transaction Reference."
call: "swift.get-payment-status"
with:
uetr: "{{uetr}}"
outputParameters:
- name: status
type: string
mapping: "$.transaction_status"
- name: last_update
type: string
mapping: "$.last_update_time"
- name: beneficiary_confirmed
type: string
mapping: "$.confirmed_amount"
consumes:
- type: http
namespace: swift
baseUri: "https://api.swift.com/swift-gpi/v4"
authentication:
type: bearer
token: "$secrets.swift_gpi_token"
resources:
- name: payments
path: "/payments/{{uetr}}"
inputParameters:
- name: uetr
in: path
operations:
- name: get-payment-status
method: GET
Retrieves fixed deposit account details from Temenos Transact, returning principal amount, interest rate, maturity date, and accrued interest.
naftiko: "0.5"
info:
label: "Temenos Fixed Deposit Lookup"
description: "Retrieves fixed deposit account details from Temenos Transact, returning principal amount, interest rate, maturity date, and accrued interest."
tags:
- banking
- deposits
- temenos-transact
capability:
exposes:
- type: mcp
namespace: fixed-deposits
port: 8080
tools:
- name: get-deposit
description: "Look up a fixed deposit in Temenos Transact."
inputParameters:
- name: deposit_id
in: body
type: string
description: "The fixed deposit account ID."
call: "temenos.get-deposit"
with:
deposit_id: "{{deposit_id}}"
outputParameters:
- name: principal
type: string
mapping: "$.body.principalAmount"
- name: interest_rate
type: string
mapping: "$.body.interestRate"
- name: maturity_date
type: string
mapping: "$.body.maturityDate"
- name: accrued_interest
type: string
mapping: "$.body.accruedInterest"
consumes:
- type: http
namespace: temenos
baseUri: "https://core-banking.ing.com/api/v1"
authentication:
type: bearer
token: "$secrets.temenos_token"
resources:
- name: deposits
path: "/deposits/{{deposit_id}}"
inputParameters:
- name: deposit_id
in: path
operations:
- name: get-deposit
method: GET
Retrieves loan account balance details from Temenos Transact, returning outstanding principal, accrued interest, next payment date, and payment amount.
naftiko: "0.5"
info:
label: "Temenos Loan Balance Lookup"
description: "Retrieves loan account balance details from Temenos Transact, returning outstanding principal, accrued interest, next payment date, and payment amount."
tags:
- banking
- lending
- temenos-transact
capability:
exposes:
- type: mcp
namespace: loan-accounts
port: 8080
tools:
- name: get-loan-balance
description: "Look up a loan account balance in Temenos Transact."
inputParameters:
- name: loan_id
in: body
type: string
description: "The Temenos loan account ID."
call: "temenos.get-loan"
with:
loan_id: "{{loan_id}}"
outputParameters:
- name: outstanding_principal
type: string
mapping: "$.body.outstandingPrincipal"
- name: accrued_interest
type: string
mapping: "$.body.accruedInterest"
- name: next_payment_date
type: string
mapping: "$.body.nextPaymentDate"
- name: payment_amount
type: string
mapping: "$.body.paymentAmount"
consumes:
- type: http
namespace: temenos
baseUri: "https://core-banking.ing.com/api/v1"
authentication:
type: bearer
token: "$secrets.temenos_token"
resources:
- name: loans
path: "/loans/{{loan_id}}"
inputParameters:
- name: loan_id
in: path
operations:
- name: get-loan
method: GET
Retrieves standing order details from Temenos Transact, returning beneficiary name, amount, frequency, and next execution date for an ING customer account.
naftiko: "0.5"
info:
label: "Temenos Standing Order Lookup"
description: "Retrieves standing order details from Temenos Transact, returning beneficiary name, amount, frequency, and next execution date for an ING customer account."
tags:
- banking
- payments
- temenos-transact
capability:
exposes:
- type: mcp
namespace: standing-orders
port: 8080
tools:
- name: get-standing-order
description: "Look up a standing order in Temenos Transact."
inputParameters:
- name: order_id
in: body
type: string
description: "The standing order ID."
call: "temenos.get-standing-order"
with:
order_id: "{{order_id}}"
outputParameters:
- name: beneficiary
type: string
mapping: "$.body.beneficiaryName"
- name: amount
type: string
mapping: "$.body.amount"
- name: frequency
type: string
mapping: "$.body.frequency"
- name: next_execution
type: string
mapping: "$.body.nextExecutionDate"
consumes:
- type: http
namespace: temenos
baseUri: "https://core-banking.ing.com/api/v1"
authentication:
type: bearer
token: "$secrets.temenos_token"
resources:
- name: standing-orders
path: "/standing-orders/{{order_id}}"
inputParameters:
- name: order_id
in: path
operations:
- name: get-standing-order
method: GET
Processes letter of credit applications for ING wholesale banking clients, managing document verification, beneficiary notifications, and settlement workflows.
naftiko: "0.5"
info:
label: "Trade Finance Letter of Credit Processor"
description: "Processes letter of credit applications for ING wholesale banking clients, managing document verification, beneficiary notifications, and settlement workflows."
tags:
- trade-finance
- wholesale-banking
- letter-of-credit
capability:
exposes:
- type: mcp
namespace: letter-of-credit
port: 8080
tools:
- name: process-letter-of-credit
description: "Process a letter of credit application through verification stages."
inputParameters:
- name: application_id
in: body
type: string
description: "The letter of credit application identifier."
- name: client_id
in: body
type: string
description: "The wholesale banking client identifier."
call: "trade-finance-api.process-lc"
with:
application: "{{application_id}}"
client: "{{client_id}}"
outputParameters:
- name: lc_number
type: string
mapping: "$.letterOfCredit.lcNumber"
- name: status
type: string
mapping: "$.letterOfCredit.status"
- name: expiry_date
type: string
mapping: "$.letterOfCredit.expiryDate"
consumes:
- type: http
namespace: trade-finance-api
baseUri: "https://api.ing.com/trade-finance/v1"
authentication:
type: bearer
token: "$secrets.ing_trade_finance_token"
resources:
- name: letters-of-credit
path: "/letters-of-credit"
operations:
- name: process-lc
method: POST
Retrieves bond trade execution details from Tradeweb, returning execution price, yield, settlement date, and counterparty for ING fixed income trading.
naftiko: "0.5"
info:
label: "Tradeweb Bond Execution Lookup"
description: "Retrieves bond trade execution details from Tradeweb, returning execution price, yield, settlement date, and counterparty for ING fixed income trading."
tags:
- trading
- fixed-income
- tradeweb
capability:
exposes:
- type: mcp
namespace: bond-execution
port: 8080
tools:
- name: get-execution
description: "Look up a bond trade execution on Tradeweb."
inputParameters:
- name: trade_id
in: body
type: string
description: "The Tradeweb trade ID."
call: "tradeweb.get-trade"
with:
trade_id: "{{trade_id}}"
outputParameters:
- name: price
type: string
mapping: "$.trade.executionPrice"
- name: yield
type: string
mapping: "$.trade.yield"
- name: settlement_date
type: string
mapping: "$.trade.settlementDate"
- name: counterparty
type: string
mapping: "$.trade.counterparty"
consumes:
- type: http
namespace: tradeweb
baseUri: "https://api.tradeweb.com/v1"
authentication:
type: bearer
token: "$secrets.tradeweb_token"
resources:
- name: trades
path: "/trades/{{trade_id}}"
inputParameters:
- name: trade_id
in: path
operations:
- name: get-trade
method: GET
When a suspicious transaction alert fires, retrieves transaction details, creates a compliance case in ServiceNow, and notifies the AML team via Microsoft Teams.
naftiko: "0.5"
info:
label: "Transaction Monitoring Alert Handler"
description: "When a suspicious transaction alert fires, retrieves transaction details, creates a compliance case in ServiceNow, and notifies the AML team via Microsoft Teams."
tags:
- compliance
- anti-money-laundering
- servicenow
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: transaction-monitoring
port: 8080
tools:
- name: handle-alert
description: "Process a transaction monitoring alert across ServiceNow and Teams."
inputParameters:
- name: alert_id
in: body
type: string
description: "The transaction monitoring alert ID."
steps:
- name: get-alert
type: call
call: "txn-monitoring.get-alert"
with:
alert_id: "{{alert_id}}"
- name: create-case
type: call
call: "servicenow.create-incident"
with:
short_description: "AML Alert: {{get-alert.customer_name}} - {{get-alert.alert_type}}"
priority: "1"
category: "aml_compliance"
description: "Transaction: {{get-alert.transaction_id}}. Amount: {{get-alert.amount}} {{get-alert.currency}}. Score: {{get-alert.risk_score}}"
- name: notify-aml
type: call
call: "msteams.send-message"
with:
channel_id: "aml_investigations"
text: "AML Alert {{alert_id}}: {{get-alert.customer_name}} - {{get-alert.alert_type}}. Amount: {{get-alert.amount}} {{get-alert.currency}}. Case: {{create-case.number}}"
consumes:
- type: http
namespace: txn-monitoring
baseUri: "https://txn-monitoring.ing.com/api/v1"
authentication:
type: bearer
token: "$secrets.txn_monitoring_token"
resources:
- name: alerts
path: "/alerts/{{alert_id}}"
inputParameters:
- name: alert_id
in: path
operations:
- name: get-alert
method: GET
- type: http
namespace: servicenow
baseUri: "https://ing.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/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel_id
in: path
operations:
- name: send-message
method: POST
Manages daily liquidity by retrieving cash positions from Kondor, checking regulatory limits, executing money market transactions, and reporting to treasury management via Microsoft Teams.
naftiko: "0.5"
info:
label: "Treasury Liquidity Management Orchestrator"
description: "Manages daily liquidity by retrieving cash positions from Kondor, checking regulatory limits, executing money market transactions, and reporting to treasury management via Microsoft Teams."
tags:
- treasury
- liquidity
- kondor
- microsoft-teams
capability:
exposes:
- type: mcp
namespace: liquidity-management
port: 8080
tools:
- name: manage-liquidity
description: "Execute daily liquidity management operations."
inputParameters:
- name: currency
in: body
type: string
description: "The currency code (EUR, USD, GBP)."
- name: business_date
in: body
type: string
description: "The business date."
steps:
- name: get-cash-position
type: call
call: "kondor.get-position"
with:
currency: "{{currency}}"
date: "{{business_date}}"
- name: check-limits
type: call
call: "risk-system.check-liquidity-limits"
with:
currency: "{{currency}}"
position: "{{get-cash-position.net_position}}"
- name: execute-placement
type: call
call: "kondor.create-money-market-deal"
with:
currency: "{{currency}}"
amount: "{{check-limits.recommended_action_amount}}"
direction: "{{check-limits.recommended_direction}}"
- name: notify-treasury
type: call
call: "teams.send-message"
with:
channel: "Treasury_Operations"
message: "Liquidity update for {{currency}} on {{business_date}}: Position {{get-cash-position.net_position}}. Action: {{check-limits.recommended_direction}} {{check-limits.recommended_action_amount}}. Deal ref: {{execute-placement.deal_id}}."
consumes:
- type: http
namespace: kondor
baseUri: "https://kondor.ing.com/api/v1"
authentication:
type: bearer
token: "$secrets.kondor_token"
resources:
- name: positions
path: "/positions/cash"
operations:
- name: get-position
method: GET
- name: deals
path: "/deals/money-market"
operations:
- name: create-money-market-deal
method: POST
- type: http
namespace: risk-system
baseUri: "https://risk-management.ing.com/api/v1"
authentication:
type: bearer
token: "$secrets.risk_system_token"
resources:
- name: limits
path: "/liquidity/check"
operations:
- name: check-liquidity-limits
method: POST
- type: http
namespace: teams
baseUri: "https://graph.microsoft.com/v1.0"
authentication:
type: bearer
token: "$secrets.teams_token"
resources:
- name: messages
path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
inputParameters:
- name: team_id
in: path
- name: channel_id
in: path
operations:
- name: send-message
method: POST
Reviews and recalculates credit limits for ING wholesale banking clients based on updated financial statements, market conditions, and counterparty risk assessments.
naftiko: "0.5"
info:
label: "Wholesale Client Credit Limit Reviewer"
description: "Reviews and recalculates credit limits for ING wholesale banking clients based on updated financial statements, market conditions, and counterparty risk assessments."
tags:
- wholesale-banking
- credit-risk
- client-management
capability:
exposes:
- type: mcp
namespace: credit-limit-review
port: 8080
tools:
- name: review-credit-limit
description: "Review and recalculate credit limit for a wholesale client."
inputParameters:
- name: client_id
in: body
type: string
description: "The wholesale banking client identifier."
- name: review_type
in: body
type: string
description: "Review type such as annual, triggered, or ad-hoc."
call: "credit-api.review-limit"
with:
client: "{{client_id}}"
type: "{{review_type}}"
outputParameters:
- name: current_limit
type: number
mapping: "$.review.currentLimit"
- name: proposed_limit
type: number
mapping: "$.review.proposedLimit"
- name: risk_rating
type: string
mapping: "$.review.riskRating"
consumes:
- type: http
namespace: credit-api
baseUri: "https://api.ing.com/wholesale/v1"
authentication:
type: bearer
token: "$secrets.ing_wholesale_credit_token"
resources:
- name: credit-limits
path: "/clients/{{client}}/credit-limits/review"
inputParameters:
- name: client
in: path
operations:
- name: review-limit
method: POST
Retrieves employee compensation review data from Workday, returning current salary, proposed adjustment, merit rating, and review status.
naftiko: "0.5"
info:
label: "Workday Compensation Review Lookup"
description: "Retrieves employee compensation review data from Workday, returning current salary, proposed adjustment, merit rating, and review status."
tags:
- hr
- workday
- compensation
capability:
exposes:
- type: mcp
namespace: compensation-reviews
port: 8080
tools:
- name: get-comp-review
description: "Look up a compensation review in Workday."
inputParameters:
- name: employee_id
in: body
type: string
description: "The Workday employee ID."
call: "workday.get-compensation"
with:
employee_id: "{{employee_id}}"
outputParameters:
- name: current_salary
type: string
mapping: "$.Worker.Compensation_Data.CurrentSalary"
- name: proposed_adjustment
type: string
mapping: "$.Worker.Compensation_Data.ProposedAdjustment"
- name: merit_rating
type: string
mapping: "$.Worker.Compensation_Data.MeritRating"
- name: review_status
type: string
mapping: "$.Worker.Compensation_Data.ReviewStatus"
consumes:
- type: http
namespace: workday
baseUri: "https://wd3-impl-services1.workday.com/ccx/api/v1/ing"
authentication:
type: bearer
token: "$secrets.workday_token"
resources:
- name: compensation
path: "/workers/{{employee_id}}/compensation"
inputParameters:
- name: employee_id
in: path
operations:
- name: get-compensation
method: GET
Retrieves an ING employee's schedule from Workday.
naftiko: "0.5"
info:
label: "Workday Employee Schedule Retriever"
description: "Retrieves an ING employee's schedule from Workday."
tags:
- hr
- scheduling
- workday
capability:
exposes:
- type: mcp
namespace: employee-scheduling
port: 8080
tools:
- name: get-schedule
description: "Retrieve employee schedule from Workday."
inputParameters:
- name: worker_id
in: body
type: string
description: "Workday worker ID."
call: "workday.get-schedule"
with:
worker_id: "{{worker_id}}"
outputParameters:
- name: shifts
type: string
mapping: "$.scheduleEntries"
consumes:
- type: http
namespace: workday
baseUri: "https://wd2-impl-services1.workday.com/ccx/api/v1"
authentication:
type: bearer
token: "$secrets.workday_token"
resources:
- name: schedules
path: "/workers/{{worker_id}}/schedule"
inputParameters:
- name: worker_id
in: path
operations:
- name: get-schedule
method: GET
Retrieves a payroll summary for an ING employee from Workday.
naftiko: "0.5"
info:
label: "Workday Payroll Summary Retriever"
description: "Retrieves a payroll summary for an ING employee from Workday."
tags:
- hr
- payroll
- workday
capability:
exposes:
- type: mcp
namespace: payroll
port: 8080
tools:
- name: get-payroll
description: "Retrieve the latest payroll summary."
inputParameters:
- name: worker_id
in: body
type: string
description: "Workday worker ID."
call: "workday.get-payslip"
with:
worker_id: "{{worker_id}}"
outputParameters:
- name: gross_pay
type: string
mapping: "$.payslip.grossPay"
- name: net_pay
type: string
mapping: "$.payslip.netPay"
consumes:
- type: http
namespace: workday
baseUri: "https://wd2-impl-services1.workday.com/ccx/api/v1"
authentication:
type: bearer
token: "$secrets.workday_token"
resources:
- name: payslips
path: "/workers/{{worker_id}}/paySlips"
inputParameters:
- name: worker_id
in: path
operations:
- name: get-payslip
method: GET