Rabobank Capabilities

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

Sort
Expand

Generates a bank account statement for a specified period from the core banking system, returning the statement as a downloadable PDF link.

naftiko: "0.5"
info:
  label: "Account Statement Generation"
  description: "Generates a bank account statement for a specified period from the core banking system, returning the statement as a downloadable PDF link."
  tags:
    - banking
    - accounts
    - statements
capability:
  exposes:
    - type: mcp
      namespace: statements
      port: 8080
      tools:
        - name: generate-statement
          description: "Generate a bank account statement for a date range."
          inputParameters:
            - name: account_iban
              in: body
              type: string
              description: "The customer's IBAN."
            - name: start_date
              in: body
              type: string
              description: "Start date in YYYY-MM-DD format."
            - name: end_date
              in: body
              type: string
              description: "End date in YYYY-MM-DD format."
          call: "core-banking.generate-statement"
          with:
            iban: "{{account_iban}}"
            from: "{{start_date}}"
            to: "{{end_date}}"
          outputParameters:
            - name: download_url
              type: string
              mapping: "$.data.statementUrl"
            - name: transaction_count
              type: string
              mapping: "$.data.transactionCount"
  consumes:
    - type: http
      namespace: core-banking
      baseUri: "https://api.rabobank.nl/internal/cbs/v2"
      authentication:
        type: bearer
        token: "$secrets.core_banking_token"
      resources:
        - name: statements
          path: "/accounts/{{iban}}/statements"
          inputParameters:
            - name: iban
              in: path
          operations:
            - name: generate-statement
              method: POST

Retrieves agri commodity futures lookup data from the Rabobank agricultural banking systems.

naftiko: "0.5"
info:
  label: "Agri Commodity Futures Lookup"
  description: "Retrieves agri commodity futures lookup data from the Rabobank agricultural banking systems."
  tags:
    - agri
    - rabobank
    - lookup
capability:
  exposes:
    - type: mcp
      namespace: agri
      port: 8080
      tools:
        - name: agri-commodity-futures-lookup
          description: "Retrieves agri commodity futures lookup data from the Rabobank agricultural banking systems."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The input id."
          call: "rabobank.agri-commodity-futures-lookup"
          with:
            input_id: "{{input_id}}"
          outputParameters:
            - name: result
              type: string
              mapping: "$.data"
            - name: status
              type: string
              mapping: "$.status"
  consumes:
    - type: http
      namespace: rabobank
      baseUri: "https://api.rabobank.nl/v2"
      authentication:
        type: bearer
        token: "$secrets.rabobank_api_token"
      resources:
        - name: resource
          path: "/agri/commodity/futures/lookup/{{input_id}}"
          inputParameters:
            - name: input_id
              in: path
          operations:
            - name: agri-commodity-futures-lookup
              method: GET

Orchestrates agricultural data marketplace pipeline across agricultural banking systems, coordinating multiple services and notifying stakeholders.

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

Orchestrates agricultural innovation funding pipeline across agricultural banking systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Agricultural Innovation Funding Pipeline"
  description: "Orchestrates agricultural innovation funding pipeline across agricultural banking systems, coordinating multiple services and notifying stakeholders."
  tags:
    - agricultural
    - rabobank
    - sap
    - confluence
    - bloomberg
capability:
  exposes:
    - type: mcp
      namespace: agricultural
      port: 8080
      tools:
        - name: agricultural-innovation-funding-pipeline
          description: "Orchestrates agricultural innovation funding pipeline across agricultural banking systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "sap.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "confluence.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "bloomberg.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: sap
      baseUri: "https://rabobank-erp.s4hana.ondemand.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.sap_token"
      resources:
        - name: sap-resource
          path: "/api/agricultural"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: confluence
      baseUri: "https://rabobank.atlassian.net/wiki/rest/api"
      authentication:
        type: bearer
        token: "$secrets.confluence_token"
      resources:
        - name: confluence-resource
          path: "/api/agricultural"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: bloomberg
      baseUri: "https://api.bloomberg.com/v1"
      authentication:
        type: bearer
        token: "$secrets.bloomberg_token"
      resources:
        - name: bloomberg-resource
          path: "/api/agricultural"
          operations:
            - name: execute-3
              method: POST

Orchestrates agricultural lending risk pipeline across agricultural banking systems, coordinating multiple services and notifying stakeholders.

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

Retrieves the status of an agricultural loan application from the loan origination system, returning application stage, requested amount, collateral type, and assigned loan officer.

naftiko: "0.5"
info:
  label: "Agricultural Loan Application Status"
  description: "Retrieves the status of an agricultural loan application from the loan origination system, returning application stage, requested amount, collateral type, and assigned loan officer."
  tags:
    - agricultural-lending
    - loans
    - origination
capability:
  exposes:
    - type: mcp
      namespace: agri-lending
      port: 8080
      tools:
        - name: get-loan-application
          description: "Look up an agricultural loan application by application ID."
          inputParameters:
            - name: application_id
              in: body
              type: string
              description: "The loan application identifier."
          call: "loan-origination.get-application"
          with:
            application_id: "{{application_id}}"
          outputParameters:
            - name: stage
              type: string
              mapping: "$.data.applicationStage"
            - name: requested_amount
              type: string
              mapping: "$.data.requestedAmount"
            - name: collateral_type
              type: string
              mapping: "$.data.collateralType"
            - name: loan_officer
              type: string
              mapping: "$.data.assignedOfficer"
  consumes:
    - type: http
      namespace: loan-origination
      baseUri: "https://api.rabobank.nl/internal/lending/v2"
      authentication:
        type: bearer
        token: "$secrets.loan_origination_token"
      resources:
        - name: applications
          path: "/applications/{{application_id}}"
          inputParameters:
            - name: application_id
              in: path
          operations:
            - name: get-application
              method: GET

Retrieves agricultural market outlook report data from the Rabobank agricultural banking systems.

naftiko: "0.5"
info:
  label: "Agricultural Market Outlook Report"
  description: "Retrieves agricultural market outlook report data from the Rabobank agricultural banking systems."
  tags:
    - agricultural
    - rabobank
    - report
capability:
  exposes:
    - type: mcp
      namespace: agricultural
      port: 8080
      tools:
        - name: agricultural-market-outlook-report
          description: "Retrieves agricultural market outlook report data from the Rabobank agricultural banking systems."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The input id."
          call: "rabobank.agricultural-market-outlook-report"
          with:
            input_id: "{{input_id}}"
          outputParameters:
            - name: result
              type: string
              mapping: "$.data"
            - name: status
              type: string
              mapping: "$.status"
  consumes:
    - type: http
      namespace: rabobank
      baseUri: "https://api.rabobank.nl/v2"
      authentication:
        type: bearer
        token: "$secrets.rabobank_api_token"
      resources:
        - name: resource
          path: "/agricultural/market/outlook/report/{{input_id}}"
          inputParameters:
            - name: input_id
              in: path
          operations:
            - name: agricultural-market-outlook-report
              method: GET

Generates a quarterly agricultural lending portfolio risk report by aggregating loan exposures from the lending system, commodity price risks from Refinitiv, and weather risks from KNMI, then distributes the report via SharePoint and Slack.

naftiko: "0.5"
info:
  label: "Agricultural Portfolio Risk Report Orchestrator"
  description: "Generates a quarterly agricultural lending portfolio risk report by aggregating loan exposures from the lending system, commodity price risks from Refinitiv, and weather risks from KNMI, then distributes the report via SharePoint and Slack."
  tags:
    - agricultural-lending
    - risk
    - reporting
    - refinitiv
    - knmi
    - sharepoint
    - slack
capability:
  exposes:
    - type: mcp
      namespace: agri-portfolio-risk
      port: 8080
      tools:
        - name: generate-portfolio-risk-report
          description: "Given a quarter, aggregate agricultural lending risks across multiple dimensions and distribute the report."
          inputParameters:
            - name: quarter
              in: body
              type: string
              description: "Reporting quarter in YYYY-Q# format."
          steps:
            - name: get-loan-exposures
              type: call
              call: "loan-system.get-agri-portfolio"
              with:
                period: "{{quarter}}"
            - name: get-commodity-risks
              type: call
              call: "refinitiv.get-agri-volatility"
              with:
                period: "{{quarter}}"
            - name: get-weather-risks
              type: call
              call: "knmi.get-seasonal-outlook"
              with:
                period: "{{quarter}}"
            - name: upload-report
              type: call
              call: "sharepoint.upload-file"
              with:
                site_id: "risk_reporting"
                file_path: "AgriPortfolio/{{quarter}}_risk_report.pdf"
                content: "Total exposure: EUR {{get-loan-exposures.total_exposure}}M, Commodity VaR: EUR {{get-commodity-risks.portfolio_var}}M, Weather risk index: {{get-weather-risks.risk_index}}"
            - name: notify-team
              type: call
              call: "slack.post-message"
              with:
                channel: "#agri-risk"
                text: "Q{{quarter}} Agri Portfolio Risk Report published. Exposure: EUR {{get-loan-exposures.total_exposure}}M. Commodity VaR: EUR {{get-commodity-risks.portfolio_var}}M. Weather risk: {{get-weather-risks.risk_index}}."
  consumes:
    - type: http
      namespace: loan-system
      baseUri: "https://api.rabobank.nl/internal/lending/v2"
      authentication:
        type: bearer
        token: "$secrets.loan_origination_token"
      resources:
        - name: portfolio
          path: "/portfolio/agricultural"
          inputParameters:
            - name: period
              in: query
          operations:
            - name: get-agri-portfolio
              method: GET
    - type: http
      namespace: refinitiv
      baseUri: "https://api.refinitiv.com/data/analytics/v1"
      authentication:
        type: bearer
        token: "$secrets.refinitiv_token"
      resources:
        - name: volatility
          path: "/agricultural/volatility"
          inputParameters:
            - name: period
              in: query
          operations:
            - name: get-agri-volatility
              method: GET
    - type: http
      namespace: knmi
      baseUri: "https://api.knmi.nl/open-data/v1"
      authentication:
        type: bearer
        token: "$secrets.knmi_token"
      resources:
        - name: seasonal
          path: "/seasonal-outlook"
          inputParameters:
            - name: period
              in: query
          operations:
            - name: get-seasonal-outlook
              method: GET
    - type: http
      namespace: sharepoint
      baseUri: "https://graph.microsoft.com/v1.0/sites"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: files
          path: "/{{site_id}}/drive/root:/{{file_path}}:/content"
          inputParameters:
            - name: site_id
              in: path
            - name: file_path
              in: path
          operations:
            - name: upload-file
              method: PUT
    - type: http
      namespace: slack
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token"
      resources:
        - name: messages
          path: "/chat.postMessage"
          operations:
            - name: post-message
              method: POST

Orchestrates agricultural portfolio stress test pipeline across agricultural banking systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Agricultural Portfolio Stress Test Pipeline"
  description: "Orchestrates agricultural portfolio stress test pipeline across agricultural banking systems, coordinating multiple services and notifying stakeholders."
  tags:
    - agricultural
    - rabobank
    - confluence
    - bloomberg
    - rabobank
capability:
  exposes:
    - type: mcp
      namespace: agricultural
      port: 8080
      tools:
        - name: agricultural-portfolio-stress-test-pipeline
          description: "Orchestrates agricultural portfolio stress test pipeline across agricultural banking systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "confluence.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "bloomberg.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "rabobank.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: confluence
      baseUri: "https://rabobank.atlassian.net/wiki/rest/api"
      authentication:
        type: bearer
        token: "$secrets.confluence_token"
      resources:
        - name: confluence-resource
          path: "/api/agricultural"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: bloomberg
      baseUri: "https://api.bloomberg.com/v1"
      authentication:
        type: bearer
        token: "$secrets.bloomberg_token"
      resources:
        - name: bloomberg-resource
          path: "/api/agricultural"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: rabobank
      baseUri: "https://api.rabobank.nl/v2"
      authentication:
        type: bearer
        token: "$secrets.rabobank_api_token"
      resources:
        - name: rabobank-resource
          path: "/api/agricultural"
          operations:
            - name: execute-3
              method: POST

Assists a farmer in applying for EU agricultural subsidies by pulling farm registration data from RVO, verifying land use from the Kadaster, compiling the application, and submitting it through the RVO portal.

naftiko: "0.5"
info:
  label: "Agricultural Subsidy Application Orchestrator"
  description: "Assists a farmer in applying for EU agricultural subsidies by pulling farm registration data from RVO, verifying land use from the Kadaster, compiling the application, and submitting it through the RVO portal."
  tags:
    - agricultural-lending
    - subsidies
    - rvo
    - kadaster
capability:
  exposes:
    - type: mcp
      namespace: agri-subsidies
      port: 8080
      tools:
        - name: submit-subsidy-application
          description: "Given a farmer's RVO registration and land parcels, compile and submit an EU subsidy application."
          inputParameters:
            - name: rvo_number
              in: body
              type: string
              description: "The RVO (Netherlands Enterprise Agency) registration number."
            - name: subsidy_type
              in: body
              type: string
              description: "Type of subsidy (basic_payment, greening, agri_environment)."
            - name: land_parcels
              in: body
              type: string
              description: "Comma-separated Kadaster parcel IDs."
          steps:
            - name: get-farm-registration
              type: call
              call: "rvo.get-registration"
              with:
                rvo_number: "{{rvo_number}}"
            - name: verify-parcels
              type: call
              call: "kadaster.get-parcels-batch"
              with:
                parcel_ids: "{{land_parcels}}"
            - name: submit-application
              type: call
              call: "rvo.submit-subsidy"
              with:
                rvo_number: "{{rvo_number}}"
                subsidy_type: "{{subsidy_type}}"
                total_hectares: "{{verify-parcels.total_hectares}}"
                eligible_land: "{{verify-parcels.eligible_hectares}}"
  consumes:
    - type: http
      namespace: rvo
      baseUri: "https://api.rvo.nl/v1"
      authentication:
        type: bearer
        token: "$secrets.rvo_token"
      resources:
        - name: registrations
          path: "/farm-registrations/{{rvo_number}}"
          inputParameters:
            - name: rvo_number
              in: path
          operations:
            - name: get-registration
              method: GET
        - name: subsidies
          path: "/subsidy-applications"
          operations:
            - name: submit-subsidy
              method: POST
    - type: http
      namespace: kadaster
      baseUri: "https://api.kadaster.nl/v2"
      authentication:
        type: bearer
        token: "$secrets.kadaster_token"
      resources:
        - name: parcels-batch
          path: "/parcels/batch"
          operations:
            - name: get-parcels-batch
              method: POST

Facilitates supply chain finance for agricultural buyers and sellers by verifying the trade invoice, discounting the receivable, paying the seller early, and scheduling the buyer's payment.

naftiko: "0.5"
info:
  label: "Agricultural Supply Chain Finance Orchestrator"
  description: "Facilitates supply chain finance for agricultural buyers and sellers by verifying the trade invoice, discounting the receivable, paying the seller early, and scheduling the buyer's payment."
  tags:
    - agricultural-lending
    - trade-finance
    - payments
capability:
  exposes:
    - type: mcp
      namespace: supply-chain-finance
      port: 8080
      tools:
        - name: process-scf-transaction
          description: "Given an invoice between buyer and seller, discount the receivable, pay seller, and schedule buyer payment."
          inputParameters:
            - name: invoice_id
              in: body
              type: string
              description: "The trade invoice identifier."
            - name: seller_iban
              in: body
              type: string
              description: "Seller's IBAN for early payment."
            - name: buyer_id
              in: body
              type: string
              description: "The buyer customer identifier."
          steps:
            - name: verify-invoice
              type: call
              call: "trade-finance-system.verify-invoice"
              with:
                invoice_id: "{{invoice_id}}"
            - name: discount-receivable
              type: call
              call: "trade-finance-system.discount-invoice"
              with:
                invoice_id: "{{invoice_id}}"
                amount: "{{verify-invoice.amount}}"
            - name: pay-seller
              type: call
              call: "payment-engine.create-sepa-payment"
              with:
                creditor_iban: "{{seller_iban}}"
                amount: "{{discount-receivable.discounted_amount}}"
                reference: "SCF-{{invoice_id}}"
            - name: schedule-buyer-payment
              type: call
              call: "core-banking.schedule-debit"
              with:
                customer_id: "{{buyer_id}}"
                amount: "{{verify-invoice.amount}}"
                date: "{{verify-invoice.due_date}}"
  consumes:
    - type: http
      namespace: trade-finance-system
      baseUri: "https://api.rabobank.nl/internal/trade-finance/v2"
      authentication:
        type: bearer
        token: "$secrets.trade_finance_token"
      resources:
        - name: invoices
          path: "/invoices/{{invoice_id}}"
          inputParameters:
            - name: invoice_id
              in: path
          operations:
            - name: verify-invoice
              method: GET
        - name: discounting
          path: "/invoices/{{invoice_id}}/discount"
          inputParameters:
            - name: invoice_id
              in: path
          operations:
            - name: discount-invoice
              method: POST
    - type: http
      namespace: payment-engine
      baseUri: "https://api.rabobank.nl/internal/payments/v3"
      authentication:
        type: bearer
        token: "$secrets.payment_engine_token"
      resources:
        - name: sepa
          path: "/sepa-credit-transfers"
          operations:
            - name: create-sepa-payment
              method: POST
    - type: http
      namespace: core-banking
      baseUri: "https://api.rabobank.nl/internal/cbs/v2"
      authentication:
        type: bearer
        token: "$secrets.core_banking_token"
      resources:
        - name: scheduled-debits
          path: "/scheduled-debits"
          operations:
            - name: schedule-debit
              method: POST

Orchestrates agricultural supply chain tracking pipeline across agricultural banking systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Agricultural Supply Chain Tracking Pipeline"
  description: "Orchestrates agricultural supply chain tracking pipeline across agricultural banking systems, coordinating multiple services and notifying stakeholders."
  tags:
    - agricultural
    - rabobank
    - sap
    - confluence
    - bloomberg
capability:
  exposes:
    - type: mcp
      namespace: agricultural
      port: 8080
      tools:
        - name: agricultural-supply-chain-tracking-pipeline
          description: "Orchestrates agricultural supply chain tracking pipeline across agricultural banking systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "sap.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "confluence.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "bloomberg.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: sap
      baseUri: "https://rabobank-erp.s4hana.ondemand.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.sap_token"
      resources:
        - name: sap-resource
          path: "/api/agricultural"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: confluence
      baseUri: "https://rabobank.atlassian.net/wiki/rest/api"
      authentication:
        type: bearer
        token: "$secrets.confluence_token"
      resources:
        - name: confluence-resource
          path: "/api/agricultural"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: bloomberg
      baseUri: "https://api.bloomberg.com/v1"
      authentication:
        type: bearer
        token: "$secrets.bloomberg_token"
      resources:
        - name: bloomberg-resource
          path: "/api/agricultural"
          operations:
            - name: execute-3
              method: POST

Orchestrates agricultural weather risk pipeline across agricultural banking systems, coordinating multiple services and notifying stakeholders.

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

Orchestrates aml suspicious activity pipeline across agricultural banking systems, coordinating multiple services and notifying stakeholders.

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

Processes a batch payment file by validating the SEPA XML format, screening all beneficiaries for sanctions, and submitting the batch to the payment engine for execution.

naftiko: "0.5"
info:
  label: "Batch Payment File Processing"
  description: "Processes a batch payment file by validating the SEPA XML format, screening all beneficiaries for sanctions, and submitting the batch to the payment engine for execution."
  tags:
    - payments
    - sepa
    - compliance
capability:
  exposes:
    - type: mcp
      namespace: batch-payments
      port: 8080
      tools:
        - name: process-batch-payment
          description: "Given a batch payment file, validate format, screen beneficiaries, and submit for execution."
          inputParameters:
            - name: file_reference
              in: body
              type: string
              description: "The batch file reference identifier."
            - name: total_amount
              in: body
              type: string
              description: "Total batch amount in EUR."
            - name: payment_count
              in: body
              type: string
              description: "Number of payments in the batch."
          steps:
            - name: validate-file
              type: call
              call: "payment-engine.validate-batch"
              with:
                file_reference: "{{file_reference}}"
            - name: screen-beneficiaries
              type: call
              call: "sanctions-api.screen-batch"
              with:
                file_reference: "{{file_reference}}"
                count: "{{payment_count}}"
            - name: submit-batch
              type: call
              call: "payment-engine.execute-batch"
              with:
                file_reference: "{{file_reference}}"
                screening_result: "{{screen-beneficiaries.result}}"
  consumes:
    - type: http
      namespace: payment-engine
      baseUri: "https://api.rabobank.nl/internal/payments/v3"
      authentication:
        type: bearer
        token: "$secrets.payment_engine_token"
      resources:
        - name: batch-validation
          path: "/batches/{{file_reference}}/validate"
          inputParameters:
            - name: file_reference
              in: path
          operations:
            - name: validate-batch
              method: POST
        - name: batch-execution
          path: "/batches/{{file_reference}}/execute"
          inputParameters:
            - name: file_reference
              in: path
          operations:
            - name: execute-batch
              method: POST
    - type: http
      namespace: sanctions-api
      baseUri: "https://api.rabobank.nl/internal/sanctions/v1"
      authentication:
        type: bearer
        token: "$secrets.sanctions_token"
      resources:
        - name: batch-screening
          path: "/screen-batch"
          operations:
            - name: screen-batch
              method: POST

Retrieves business account overdraft status data from the Rabobank agricultural banking systems.

naftiko: "0.5"
info:
  label: "Business Account Overdraft Status"
  description: "Retrieves business account overdraft status data from the Rabobank agricultural banking systems."
  tags:
    - business
    - rabobank
    - status
capability:
  exposes:
    - type: mcp
      namespace: business
      port: 8080
      tools:
        - name: business-account-overdraft-status
          description: "Retrieves business account overdraft status data from the Rabobank agricultural banking systems."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The input id."
          call: "rabobank.business-account-overdraft-status"
          with:
            input_id: "{{input_id}}"
          outputParameters:
            - name: result
              type: string
              mapping: "$.data"
            - name: status
              type: string
              mapping: "$.status"
  consumes:
    - type: http
      namespace: rabobank
      baseUri: "https://api.rabobank.nl/v2"
      authentication:
        type: bearer
        token: "$secrets.rabobank_api_token"
      resources:
        - name: resource
          path: "/business/account/overdraft/status/{{input_id}}"
          inputParameters:
            - name: input_id
              in: path
          operations:
            - name: business-account-overdraft-status
              method: GET

Orchestrates business loan covenant monitoring pipeline across agricultural banking systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Business Loan Covenant Monitoring Pipeline"
  description: "Orchestrates business loan covenant monitoring pipeline across agricultural banking systems, coordinating multiple services and notifying stakeholders."
  tags:
    - business
    - rabobank
    - teams
    - sap
    - confluence
capability:
  exposes:
    - type: mcp
      namespace: business
      port: 8080
      tools:
        - name: business-loan-covenant-monitoring-pipeline
          description: "Orchestrates business loan covenant monitoring pipeline across agricultural banking systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "teams.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "sap.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "confluence.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: teams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.teams_token"
      resources:
        - name: teams-resource
          path: "/api/business"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: sap
      baseUri: "https://rabobank-erp.s4hana.ondemand.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.sap_token"
      resources:
        - name: sap-resource
          path: "/api/business"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: confluence
      baseUri: "https://rabobank.atlassian.net/wiki/rest/api"
      authentication:
        type: bearer
        token: "$secrets.confluence_token"
      resources:
        - name: confluence-resource
          path: "/api/business"
          operations:
            - name: execute-3
              method: POST

Retrieves the current interest rate for a business loan from the pricing engine, returning the base rate, spread, all-in rate, and applicable risk premium.

naftiko: "0.5"
info:
  label: "Business Loan Interest Rate Check"
  description: "Retrieves the current interest rate for a business loan from the pricing engine, returning the base rate, spread, all-in rate, and applicable risk premium."
  tags:
    - banking
    - lending
    - pricing
capability:
  exposes:
    - type: mcp
      namespace: lending-rates
      port: 8080
      tools:
        - name: get-business-loan-rate
          description: "Look up the current interest rate for a business loan."
          inputParameters:
            - name: loan_type
              in: body
              type: string
              description: "Type of business loan (working_capital, term_loan, revolving_credit)."
            - name: risk_rating
              in: body
              type: string
              description: "The internal risk rating (1-10)."
            - name: term_months
              in: body
              type: string
              description: "Loan term in months."
          call: "pricing-engine.get-rate"
          with:
            product_type: "{{loan_type}}"
            risk_rating: "{{risk_rating}}"
            term: "{{term_months}}"
          outputParameters:
            - name: base_rate
              type: string
              mapping: "$.data.baseRate"
            - name: spread
              type: string
              mapping: "$.data.spread"
            - name: all_in_rate
              type: string
              mapping: "$.data.allInRate"
            - name: risk_premium
              type: string
              mapping: "$.data.riskPremium"
  consumes:
    - type: http
      namespace: pricing-engine
      baseUri: "https://api.rabobank.nl/internal/pricing/v2"
      authentication:
        type: bearer
        token: "$secrets.pricing_engine_token"
      resources:
        - name: rates
          path: "/business-loan-rates"
          operations:
            - name: get-rate
              method: POST

Tracks carbon credits for farmers participating in Rabobank's sustainability programs by pulling farm emission data, verifying credits on the carbon registry, and updating the farmer's sustainability dashboard in the customer portal.

naftiko: "0.5"
info:
  label: "Carbon Credit Tracking Orchestrator"
  description: "Tracks carbon credits for farmers participating in Rabobank's sustainability programs by pulling farm emission data, verifying credits on the carbon registry, and updating the farmer's sustainability dashboard in the customer portal."
  tags:
    - agricultural-lending
    - sustainability
    - carbon
capability:
  exposes:
    - type: mcp
      namespace: sustainability
      port: 8080
      tools:
        - name: update-carbon-credits
          description: "Given a farmer ID, pull emission data, verify credits, and update the sustainability dashboard."
          inputParameters:
            - name: farmer_id
              in: body
              type: string
              description: "The farmer/customer identifier."
            - name: reporting_period
              in: body
              type: string
              description: "Reporting period in YYYY format."
          steps:
            - name: get-emission-data
              type: call
              call: "sustainability-platform.get-emissions"
              with:
                farmer_id: "{{farmer_id}}"
                year: "{{reporting_period}}"
            - name: verify-credits
              type: call
              call: "carbon-registry.verify-credits"
              with:
                farmer_id: "{{farmer_id}}"
                emissions_reduced: "{{get-emission-data.co2_reduced_tons}}"
            - name: update-dashboard
              type: call
              call: "customer-portal.update-sustainability"
              with:
                customer_id: "{{farmer_id}}"
                carbon_credits: "{{verify-credits.verified_credits}}"
                total_reduction: "{{get-emission-data.co2_reduced_tons}}"
  consumes:
    - type: http
      namespace: sustainability-platform
      baseUri: "https://api.rabobank.nl/internal/sustainability/v1"
      authentication:
        type: bearer
        token: "$secrets.sustainability_token"
      resources:
        - name: emissions
          path: "/farmers/{{farmer_id}}/emissions"
          inputParameters:
            - name: farmer_id
              in: path
            - name: year
              in: query
          operations:
            - name: get-emissions
              method: GET
    - type: http
      namespace: carbon-registry
      baseUri: "https://api.rabobank.nl/internal/carbon-registry/v1"
      authentication:
        type: bearer
        token: "$secrets.carbon_registry_token"
      resources:
        - name: credits
          path: "/verifications"
          operations:
            - name: verify-credits
              method: POST
    - type: http
      namespace: customer-portal
      baseUri: "https://api.rabobank.nl/internal/portal/v1"
      authentication:
        type: bearer
        token: "$secrets.portal_token"
      resources:
        - name: sustainability
          path: "/customers/{{customer_id}}/sustainability"
          inputParameters:
            - name: customer_id
              in: path
          operations:
            - name: update-sustainability
              method: PUT

Orchestrates carbon credit verification pipeline across agricultural banking systems, coordinating multiple services and notifying stakeholders.

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

Prepares a client relationship review for an agricultural client by pulling their loan portfolio from the lending system, deposit balances from core banking, and recent interactions from Salesforce, then compiling into a review document in SharePoint.

naftiko: "0.5"
info:
  label: "Client Relationship Review Orchestrator"
  description: "Prepares a client relationship review for an agricultural client by pulling their loan portfolio from the lending system, deposit balances from core banking, and recent interactions from Salesforce, then compiling into a review document in SharePoint."
  tags:
    - agricultural-lending
    - banking
    - salesforce
    - sharepoint
capability:
  exposes:
    - type: mcp
      namespace: client-reviews
      port: 8080
      tools:
        - name: prepare-client-review
          description: "Given a customer ID, compile loan, deposit, and interaction data into a relationship review."
          inputParameters:
            - name: customer_id
              in: body
              type: string
              description: "The customer identifier."
            - name: review_date
              in: body
              type: string
              description: "Review date in YYYY-MM-DD format."
          steps:
            - name: get-loans
              type: call
              call: "loan-system.get-customer-loans"
              with:
                customer_id: "{{customer_id}}"
            - name: get-deposits
              type: call
              call: "core-banking.get-customer-balances"
              with:
                customer_id: "{{customer_id}}"
            - name: get-interactions
              type: call
              call: "salesforce.get-recent-activities"
              with:
                account_id: "{{customer_id}}"
            - name: upload-review
              type: call
              call: "sharepoint.upload-file"
              with:
                site_id: "relationship_reviews"
                file_path: "Reviews/{{customer_id}}/{{review_date}}_review.pdf"
                content: "Loans: {{get-loans.count}}, Total exposure: EUR {{get-loans.total_exposure}}, Deposits: EUR {{get-deposits.total_balance}}, Interactions: {{get-interactions.count}}"
  consumes:
    - type: http
      namespace: loan-system
      baseUri: "https://api.rabobank.nl/internal/lending/v2"
      authentication:
        type: bearer
        token: "$secrets.loan_origination_token"
      resources:
        - name: customer-loans
          path: "/customers/{{customer_id}}/loans"
          inputParameters:
            - name: customer_id
              in: path
          operations:
            - name: get-customer-loans
              method: GET
    - type: http
      namespace: core-banking
      baseUri: "https://api.rabobank.nl/internal/cbs/v2"
      authentication:
        type: bearer
        token: "$secrets.core_banking_token"
      resources:
        - name: balances
          path: "/customers/{{customer_id}}/balances"
          inputParameters:
            - name: customer_id
              in: path
          operations:
            - name: get-customer-balances
              method: GET
    - type: http
      namespace: salesforce
      baseUri: "https://rabobank.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_token"
      resources:
        - name: activities
          path: "/sobjects/Task"
          inputParameters:
            - name: account_id
              in: query
          operations:
            - name: get-recent-activities
              method: GET
    - type: http
      namespace: sharepoint
      baseUri: "https://graph.microsoft.com/v1.0/sites"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: files
          path: "/{{site_id}}/drive/root:/{{file_path}}:/content"
          inputParameters:
            - name: site_id
              in: path
            - name: file_path
              in: path
          operations:
            - name: upload-file
              method: PUT

Retrieves current commodity prices from the Refinitiv market data platform for agricultural commodities, returning spot price, 30-day change, and forward curve for wheat, corn, soy, and dairy.

naftiko: "0.5"
info:
  label: "Commodity Price Lookup"
  description: "Retrieves current commodity prices from the Refinitiv market data platform for agricultural commodities, returning spot price, 30-day change, and forward curve for wheat, corn, soy, and dairy."
  tags:
    - agricultural-lending
    - market-data
    - refinitiv
capability:
  exposes:
    - type: mcp
      namespace: market-data
      port: 8080
      tools:
        - name: get-commodity-price
          description: "Look up current commodity market price from Refinitiv."
          inputParameters:
            - name: commodity_ric
              in: body
              type: string
              description: "The Refinitiv instrument code (RIC) for the commodity."
          call: "refinitiv.get-price"
          with:
            ric: "{{commodity_ric}}"
          outputParameters:
            - name: spot_price
              type: string
              mapping: "$.data.spotPrice"
            - name: change_30d
              type: string
              mapping: "$.data.change30Day"
            - name: forward_curve
              type: string
              mapping: "$.data.forwardCurve"
  consumes:
    - type: http
      namespace: refinitiv
      baseUri: "https://api.refinitiv.com/data/pricing/v1"
      authentication:
        type: bearer
        token: "$secrets.refinitiv_token"
      resources:
        - name: pricing
          path: "/instruments/{{ric}}/pricing"
          inputParameters:
            - name: ric
              in: path
          operations:
            - name: get-price
              method: GET

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

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

Creates a credit card transaction dispute in the card management system, documenting the disputed transaction, reason, and amount.

naftiko: "0.5"
info:
  label: "Credit Card Transaction Dispute"
  description: "Creates a credit card transaction dispute in the card management system, documenting the disputed transaction, reason, and amount."
  tags:
    - banking
    - payments
    - disputes
capability:
  exposes:
    - type: mcp
      namespace: card-disputes
      port: 8080
      tools:
        - name: create-dispute
          description: "File a credit card transaction dispute."
          inputParameters:
            - name: card_number_last4
              in: body
              type: string
              description: "Last 4 digits of the card."
            - name: transaction_id
              in: body
              type: string
              description: "The transaction identifier."
            - name: dispute_reason
              in: body
              type: string
              description: "Reason (unauthorized, duplicate, not_received, defective)."
            - name: amount
              in: body
              type: string
              description: "Disputed amount."
          call: "card-system.create-dispute"
          with:
            card_last4: "{{card_number_last4}}"
            transaction: "{{transaction_id}}"
            reason: "{{dispute_reason}}"
            amount: "{{amount}}"
          outputParameters:
            - name: dispute_id
              type: string
              mapping: "$.data.disputeId"
            - name: status
              type: string
              mapping: "$.data.status"
  consumes:
    - type: http
      namespace: card-system
      baseUri: "https://api.rabobank.nl/internal/cards/v2"
      authentication:
        type: bearer
        token: "$secrets.card_system_token"
      resources:
        - name: disputes
          path: "/disputes"
          operations:
            - name: create-dispute
              method: POST

Processes an agricultural crop insurance claim by verifying the policy, pulling weather data from KNMI to confirm adverse conditions, obtaining satellite imagery from the European Space Agency, and creating the claim in the insurance system.

naftiko: "0.5"
info:
  label: "Crop Insurance Claim Processing Orchestrator"
  description: "Processes an agricultural crop insurance claim by verifying the policy, pulling weather data from KNMI to confirm adverse conditions, obtaining satellite imagery from the European Space Agency, and creating the claim in the insurance system."
  tags:
    - agricultural-lending
    - insurance
    - knmi
    - claims
capability:
  exposes:
    - type: mcp
      namespace: crop-insurance
      port: 8080
      tools:
        - name: process-crop-claim
          description: "Given a farmer ID and crop loss details, verify policy, check weather, pull satellite data, and create claim."
          inputParameters:
            - name: farmer_id
              in: body
              type: string
              description: "The farmer/customer identifier."
            - name: policy_number
              in: body
              type: string
              description: "The crop insurance policy number."
            - name: loss_type
              in: body
              type: string
              description: "Type of loss (drought, flood, hail, frost, disease)."
            - name: loss_date
              in: body
              type: string
              description: "Date of loss in YYYY-MM-DD format."
            - name: affected_hectares
              in: body
              type: string
              description: "Number of hectares affected."
          steps:
            - name: verify-policy
              type: call
              call: "insurance-system.get-policy"
              with:
                policy_number: "{{policy_number}}"
            - name: get-weather-data
              type: call
              call: "knmi.get-historical-data"
              with:
                region: "{{verify-policy.farm_region}}"
                date: "{{loss_date}}"
            - name: get-satellite-imagery
              type: call
              call: "esa.get-ndvi-data"
              with:
                coordinates: "{{verify-policy.farm_coordinates}}"
                date: "{{loss_date}}"
            - name: create-claim
              type: call
              call: "insurance-system.create-claim"
              with:
                policy_number: "{{policy_number}}"
                loss_type: "{{loss_type}}"
                loss_date: "{{loss_date}}"
                hectares: "{{affected_hectares}}"
                weather_confirmation: "{{get-weather-data.event_confirmed}}"
                ndvi_score: "{{get-satellite-imagery.ndvi}}"
  consumes:
    - type: http
      namespace: insurance-system
      baseUri: "https://api.rabobank.nl/internal/crop-insurance/v1"
      authentication:
        type: bearer
        token: "$secrets.crop_insurance_token"
      resources:
        - name: policies
          path: "/policies/{{policy_number}}"
          inputParameters:
            - name: policy_number
              in: path
          operations:
            - name: get-policy
              method: GET
        - name: claims
          path: "/claims"
          operations:
            - name: create-claim
              method: POST
    - type: http
      namespace: knmi
      baseUri: "https://api.knmi.nl/open-data/v1"
      authentication:
        type: bearer
        token: "$secrets.knmi_token"
      resources:
        - name: historical
          path: "/historical-data"
          inputParameters:
            - name: region
              in: query
            - name: date
              in: query
          operations:
            - name: get-historical-data
              method: GET
    - type: http
      namespace: esa
      baseUri: "https://scihub.copernicus.eu/dhus/api/v1"
      authentication:
        type: basic
        username: "$secrets.esa_user"
        password: "$secrets.esa_password"
      resources:
        - name: imagery
          path: "/ndvi"
          operations:
            - name: get-ndvi-data
              method: POST

Orchestrates crop yield forecasting pipeline across agricultural banking systems, coordinating multiple services and notifying stakeholders.

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

Processes a cross-border SWIFT payment by validating the beneficiary through sanctions screening, initiating the payment via the SWIFT gateway, and sending a payment confirmation to the customer via Salesforce Marketing Cloud.

naftiko: "0.5"
info:
  label: "Cross-Border Payment Orchestrator"
  description: "Processes a cross-border SWIFT payment by validating the beneficiary through sanctions screening, initiating the payment via the SWIFT gateway, and sending a payment confirmation to the customer via Salesforce Marketing Cloud."
  tags:
    - payments
    - swift
    - compliance
    - salesforce-marketing-cloud
capability:
  exposes:
    - type: mcp
      namespace: cross-border-payments
      port: 8080
      tools:
        - name: process-swift-payment
          description: "Given payment details, screen beneficiary, initiate SWIFT payment, and send confirmation."
          inputParameters:
            - name: debtor_iban
              in: body
              type: string
              description: "Debtor IBAN."
            - name: beneficiary_name
              in: body
              type: string
              description: "Beneficiary name."
            - name: beneficiary_account
              in: body
              type: string
              description: "Beneficiary account number."
            - name: beneficiary_bic
              in: body
              type: string
              description: "Beneficiary bank BIC/SWIFT code."
            - name: amount
              in: body
              type: string
              description: "Payment amount."
            - name: currency
              in: body
              type: string
              description: "Payment currency (e.g., USD, GBP)."
          steps:
            - name: screen-beneficiary
              type: call
              call: "sanctions-api.screen"
              with:
                name: "{{beneficiary_name}}"
                country: "{{beneficiary_bic}}"
            - name: initiate-payment
              type: call
              call: "swift-gateway.create-payment"
              with:
                debtor_iban: "{{debtor_iban}}"
                beneficiary_name: "{{beneficiary_name}}"
                beneficiary_account: "{{beneficiary_account}}"
                beneficiary_bic: "{{beneficiary_bic}}"
                amount: "{{amount}}"
                currency: "{{currency}}"
            - name: send-confirmation
              type: call
              call: "sfmc.send-email"
              with:
                template: "swift_payment_confirmation"
                to: "{{initiate-payment.debtor_email}}"
                merge_amount: "{{amount}} {{currency}}"
                merge_beneficiary: "{{beneficiary_name}}"
                merge_reference: "{{initiate-payment.uetr}}"
  consumes:
    - type: http
      namespace: sanctions-api
      baseUri: "https://api.rabobank.nl/internal/sanctions/v1"
      authentication:
        type: bearer
        token: "$secrets.sanctions_token"
      resources:
        - name: screening
          path: "/screen"
          operations:
            - name: screen
              method: POST
    - type: http
      namespace: swift-gateway
      baseUri: "https://api.rabobank.nl/internal/swift/v2"
      authentication:
        type: bearer
        token: "$secrets.swift_gateway_token"
      resources:
        - name: payments
          path: "/mt103"
          operations:
            - name: create-payment
              method: POST
    - type: http
      namespace: sfmc
      baseUri: "https://mc.rabobank.nl/rest"
      authentication:
        type: bearer
        token: "$secrets.sfmc_token"
      resources:
        - name: emails
          path: "/messaging/v1/email/messages"
          operations:
            - name: send-email
              method: POST

Orchestrates cross border trade finance pipeline across agricultural banking systems, coordinating multiple services and notifying stakeholders.

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

Retrieves a customer's bank account balance and recent transaction summary from the core banking system, returning available balance, ledger balance, and last 5 transactions.

naftiko: "0.5"
info:
  label: "Customer Account Balance Lookup"
  description: "Retrieves a customer's bank account balance and recent transaction summary from the core banking system, returning available balance, ledger balance, and last 5 transactions."
  tags:
    - banking
    - accounts
    - core-banking
capability:
  exposes:
    - type: mcp
      namespace: banking
      port: 8080
      tools:
        - name: get-account-balance
          description: "Look up a customer's bank account balance and recent transactions."
          inputParameters:
            - name: account_iban
              in: body
              type: string
              description: "The customer's IBAN."
          call: "core-banking.get-balance"
          with:
            iban: "{{account_iban}}"
          outputParameters:
            - name: available_balance
              type: string
              mapping: "$.data.availableBalance"
            - name: ledger_balance
              type: string
              mapping: "$.data.ledgerBalance"
            - name: currency
              type: string
              mapping: "$.data.currency"
            - name: recent_transactions
              type: string
              mapping: "$.data.recentTransactions"
  consumes:
    - type: http
      namespace: core-banking
      baseUri: "https://api.rabobank.nl/internal/cbs/v2"
      authentication:
        type: bearer
        token: "$secrets.core_banking_token"
      resources:
        - name: balances
          path: "/accounts/{{iban}}/balance"
          inputParameters:
            - name: iban
              in: path
          operations:
            - name: get-balance
              method: GET

When a customer complaint is received, creates a case in Salesforce Service Cloud, pulls the customer's account and recent transactions from core banking, and sends an acknowledgment email via Salesforce Marketing Cloud.

naftiko: "0.5"
info:
  label: "Customer Complaint Handling Orchestrator"
  description: "When a customer complaint is received, creates a case in Salesforce Service Cloud, pulls the customer's account and recent transactions from core banking, and sends an acknowledgment email via Salesforce Marketing Cloud."
  tags:
    - customer-service
    - salesforce
    - core-banking
    - salesforce-marketing-cloud
capability:
  exposes:
    - type: mcp
      namespace: customer-complaints
      port: 8080
      tools:
        - name: handle-complaint
          description: "Given customer and complaint details, create case, pull account context, and send acknowledgment."
          inputParameters:
            - name: customer_id
              in: body
              type: string
              description: "The customer identifier."
            - name: complaint_type
              in: body
              type: string
              description: "Type of complaint (service, product, fees, fraud)."
            - name: description
              in: body
              type: string
              description: "Complaint description."
          steps:
            - name: get-customer-account
              type: call
              call: "core-banking.get-customer"
              with:
                customer_id: "{{customer_id}}"
            - name: create-case
              type: call
              call: "salesforce.create-case"
              with:
                contact_name: "{{get-customer-account.name}}"
                type: "{{complaint_type}}"
                description: "{{description}}"
                priority: "High"
            - name: send-acknowledgment
              type: call
              call: "sfmc.send-email"
              with:
                template: "complaint_acknowledgment"
                to: "{{get-customer-account.email}}"
                merge_name: "{{get-customer-account.name}}"
                merge_case: "{{create-case.case_number}}"
  consumes:
    - type: http
      namespace: core-banking
      baseUri: "https://api.rabobank.nl/internal/cbs/v2"
      authentication:
        type: bearer
        token: "$secrets.core_banking_token"
      resources:
        - name: customers
          path: "/customers/{{customer_id}}"
          inputParameters:
            - name: customer_id
              in: path
          operations:
            - name: get-customer
              method: GET
    - type: http
      namespace: salesforce
      baseUri: "https://rabobank.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: sfmc
      baseUri: "https://mc.rabobank.nl/rest"
      authentication:
        type: bearer
        token: "$secrets.sfmc_token"
      resources:
        - name: emails
          path: "/messaging/v1/email/messages"
          operations:
            - name: send-email
              method: POST

Orchestrates customer complaint handling pipeline across agricultural banking systems, coordinating multiple services and notifying stakeholders.

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

Retrieves customer complaint history lookup data from the Rabobank agricultural banking systems.

naftiko: "0.5"
info:
  label: "Customer Complaint History Lookup"
  description: "Retrieves customer complaint history lookup data from the Rabobank agricultural banking systems."
  tags:
    - customer
    - rabobank
    - lookup
capability:
  exposes:
    - type: mcp
      namespace: customer
      port: 8080
      tools:
        - name: customer-complaint-history-lookup
          description: "Retrieves customer complaint history lookup data from the Rabobank agricultural banking systems."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The input id."
          call: "rabobank.customer-complaint-history-lookup"
          with:
            input_id: "{{input_id}}"
          outputParameters:
            - name: result
              type: string
              mapping: "$.data"
            - name: status
              type: string
              mapping: "$.status"
  consumes:
    - type: http
      namespace: rabobank
      baseUri: "https://api.rabobank.nl/v2"
      authentication:
        type: bearer
        token: "$secrets.rabobank_api_token"
      resources:
        - name: resource
          path: "/customer/complaint/history/lookup/{{input_id}}"
          inputParameters:
            - name: input_id
              in: path
          operations:
            - name: customer-complaint-history-lookup
              method: GET

Retrieves customer credit rating lookup data from the Rabobank agricultural banking systems.

naftiko: "0.5"
info:
  label: "Customer Credit Rating Lookup"
  description: "Retrieves customer credit rating lookup data from the Rabobank agricultural banking systems."
  tags:
    - customer
    - rabobank
    - lookup
capability:
  exposes:
    - type: mcp
      namespace: customer
      port: 8080
      tools:
        - name: customer-credit-rating-lookup
          description: "Retrieves customer credit rating lookup data from the Rabobank agricultural banking systems."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The input id."
          call: "rabobank.customer-credit-rating-lookup"
          with:
            input_id: "{{input_id}}"
          outputParameters:
            - name: result
              type: string
              mapping: "$.data"
            - name: status
              type: string
              mapping: "$.status"
  consumes:
    - type: http
      namespace: rabobank
      baseUri: "https://api.rabobank.nl/v2"
      authentication:
        type: bearer
        token: "$secrets.rabobank_api_token"
      resources:
        - name: resource
          path: "/customer/credit/rating/lookup/{{input_id}}"
          inputParameters:
            - name: input_id
              in: path
          operations:
            - name: customer-credit-rating-lookup
              method: GET

Orchestrates customer credit review pipeline across agricultural banking systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Customer Credit Review Pipeline"
  description: "Orchestrates customer credit review pipeline across agricultural banking systems, coordinating multiple services and notifying stakeholders."
  tags:
    - customer
    - rabobank
    - bloomberg
    - rabobank
    - salesforce
capability:
  exposes:
    - type: mcp
      namespace: customer
      port: 8080
      tools:
        - name: customer-credit-review-pipeline
          description: "Orchestrates customer credit review pipeline across agricultural banking systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "bloomberg.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "rabobank.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "salesforce.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: bloomberg
      baseUri: "https://api.bloomberg.com/v1"
      authentication:
        type: bearer
        token: "$secrets.bloomberg_token"
      resources:
        - name: bloomberg-resource
          path: "/api/customer"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: rabobank
      baseUri: "https://api.rabobank.nl/v2"
      authentication:
        type: bearer
        token: "$secrets.rabobank_api_token"
      resources:
        - name: rabobank-resource
          path: "/api/customer"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: salesforce
      baseUri: "https://rabobank.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_access_token"
      resources:
        - name: salesforce-resource
          path: "/api/customer"
          operations:
            - name: execute-3
              method: POST

Orchestrates customer digital channel migration pipeline across agricultural banking systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Customer Digital Channel Migration Pipeline"
  description: "Orchestrates customer digital channel migration pipeline across agricultural banking systems, coordinating multiple services and notifying stakeholders."
  tags:
    - customer
    - rabobank
    - confluence
    - bloomberg
    - rabobank
capability:
  exposes:
    - type: mcp
      namespace: customer
      port: 8080
      tools:
        - name: customer-digital-channel-migration-pipeline
          description: "Orchestrates customer digital channel migration pipeline across agricultural banking systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "confluence.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "bloomberg.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "rabobank.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: confluence
      baseUri: "https://rabobank.atlassian.net/wiki/rest/api"
      authentication:
        type: bearer
        token: "$secrets.confluence_token"
      resources:
        - name: confluence-resource
          path: "/api/customer"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: bloomberg
      baseUri: "https://api.bloomberg.com/v1"
      authentication:
        type: bearer
        token: "$secrets.bloomberg_token"
      resources:
        - name: bloomberg-resource
          path: "/api/customer"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: rabobank
      baseUri: "https://api.rabobank.nl/v2"
      authentication:
        type: bearer
        token: "$secrets.rabobank_api_token"
      resources:
        - name: rabobank-resource
          path: "/api/customer"
          operations:
            - name: execute-3
              method: POST

Orchestrates customer digital onboarding pipeline across agricultural banking systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Customer Digital Onboarding Pipeline"
  description: "Orchestrates customer digital onboarding pipeline across agricultural banking systems, coordinating multiple services and notifying stakeholders."
  tags:
    - customer
    - rabobank
    - sap
    - confluence
    - bloomberg
capability:
  exposes:
    - type: mcp
      namespace: customer
      port: 8080
      tools:
        - name: customer-digital-onboarding-pipeline
          description: "Orchestrates customer digital onboarding pipeline across agricultural banking systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "sap.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "confluence.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "bloomberg.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: sap
      baseUri: "https://rabobank-erp.s4hana.ondemand.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.sap_token"
      resources:
        - name: sap-resource
          path: "/api/customer"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: confluence
      baseUri: "https://rabobank.atlassian.net/wiki/rest/api"
      authentication:
        type: bearer
        token: "$secrets.confluence_token"
      resources:
        - name: confluence-resource
          path: "/api/customer"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: bloomberg
      baseUri: "https://api.bloomberg.com/v1"
      authentication:
        type: bearer
        token: "$secrets.bloomberg_token"
      resources:
        - name: bloomberg-resource
          path: "/api/customer"
          operations:
            - name: execute-3
              method: POST

Orchestrates customer financial review pipeline across agricultural banking systems, coordinating multiple services and notifying stakeholders.

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

Orchestrates customer kyc refresh pipeline across agricultural banking systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Customer Kyc Refresh Pipeline"
  description: "Orchestrates customer kyc refresh pipeline across agricultural banking systems, coordinating multiple services and notifying stakeholders."
  tags:
    - customer
    - rabobank
    - teams
    - sap
    - confluence
capability:
  exposes:
    - type: mcp
      namespace: customer
      port: 8080
      tools:
        - name: customer-kyc-refresh-pipeline
          description: "Orchestrates customer kyc refresh pipeline across agricultural banking systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "teams.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "sap.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "confluence.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: teams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.teams_token"
      resources:
        - name: teams-resource
          path: "/api/customer"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: sap
      baseUri: "https://rabobank-erp.s4hana.ondemand.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.sap_token"
      resources:
        - name: sap-resource
          path: "/api/customer"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: confluence
      baseUri: "https://rabobank.atlassian.net/wiki/rest/api"
      authentication:
        type: bearer
        token: "$secrets.confluence_token"
      resources:
        - name: confluence-resource
          path: "/api/customer"
          operations:
            - name: execute-3
              method: POST

Orchestrates customer mortgage origination pipeline across agricultural banking systems, coordinating multiple services and notifying stakeholders.

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

Orchestrates customer offboarding pipeline across agricultural banking systems, coordinating multiple services and notifying stakeholders.

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

Orchestrates customer pricing review pipeline across agricultural banking systems, coordinating multiple services and notifying stakeholders.

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

Orchestrates customer relationship review pipeline across agricultural banking systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Customer Relationship Review Pipeline"
  description: "Orchestrates customer relationship review pipeline across agricultural banking systems, coordinating multiple services and notifying stakeholders."
  tags:
    - customer
    - rabobank
    - rabobank
    - salesforce
    - servicenow
capability:
  exposes:
    - type: mcp
      namespace: customer
      port: 8080
      tools:
        - name: customer-relationship-review-pipeline
          description: "Orchestrates customer relationship review pipeline across agricultural banking systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "rabobank.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "salesforce.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "servicenow.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: rabobank
      baseUri: "https://api.rabobank.nl/v2"
      authentication:
        type: bearer
        token: "$secrets.rabobank_api_token"
      resources:
        - name: rabobank-resource
          path: "/api/customer"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: salesforce
      baseUri: "https://rabobank.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_access_token"
      resources:
        - name: salesforce-resource
          path: "/api/customer"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: servicenow
      baseUri: "https://rabobank.service-now.com/api/now"
      authentication:
        type: bearer
        token: "$secrets.servicenow_token"
      resources:
        - name: servicenow-resource
          path: "/api/customer"
          operations:
            - name: execute-3
              method: POST

Retrieves customer risk classification lookup data from the Rabobank agricultural banking systems.

naftiko: "0.5"
info:
  label: "Customer Risk Classification Lookup"
  description: "Retrieves customer risk classification lookup data from the Rabobank agricultural banking systems."
  tags:
    - customer
    - rabobank
    - lookup
capability:
  exposes:
    - type: mcp
      namespace: customer
      port: 8080
      tools:
        - name: customer-risk-classification-lookup
          description: "Retrieves customer risk classification lookup data from the Rabobank agricultural banking systems."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The input id."
          call: "rabobank.customer-risk-classification-lookup"
          with:
            input_id: "{{input_id}}"
          outputParameters:
            - name: result
              type: string
              mapping: "$.data"
            - name: status
              type: string
              mapping: "$.status"
  consumes:
    - type: http
      namespace: rabobank
      baseUri: "https://api.rabobank.nl/v2"
      authentication:
        type: bearer
        token: "$secrets.rabobank_api_token"
      resources:
        - name: resource
          path: "/customer/risk/classification/lookup/{{input_id}}"
          inputParameters:
            - name: input_id
              in: path
          operations:
            - name: customer-risk-classification-lookup
              method: GET

Retrieves customer transaction pattern lookup data from the Rabobank agricultural banking systems.

naftiko: "0.5"
info:
  label: "Customer Transaction Pattern Lookup"
  description: "Retrieves customer transaction pattern lookup data from the Rabobank agricultural banking systems."
  tags:
    - customer
    - rabobank
    - lookup
capability:
  exposes:
    - type: mcp
      namespace: customer
      port: 8080
      tools:
        - name: customer-transaction-pattern-lookup
          description: "Retrieves customer transaction pattern lookup data from the Rabobank agricultural banking systems."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The input id."
          call: "rabobank.customer-transaction-pattern-lookup"
          with:
            input_id: "{{input_id}}"
          outputParameters:
            - name: result
              type: string
              mapping: "$.data"
            - name: status
              type: string
              mapping: "$.status"
  consumes:
    - type: http
      namespace: rabobank
      baseUri: "https://api.rabobank.nl/v2"
      authentication:
        type: bearer
        token: "$secrets.rabobank_api_token"
      resources:
        - name: resource
          path: "/customer/transaction/pattern/lookup/{{input_id}}"
          inputParameters:
            - name: input_id
              in: path
          operations:
            - name: customer-transaction-pattern-lookup
              method: GET

Orchestrates customer vulnerability assessment pipeline across agricultural banking systems, coordinating multiple services and notifying stakeholders.

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

Generates a dairy sector analysis for lending decisions by pulling milk price data from Refinitiv, farm production statistics from CBS (Statistics Netherlands), and Rabobank's internal sector research, then publishes to the advisor portal.

naftiko: "0.5"
info:
  label: "Dairy Sector Analysis Orchestrator"
  description: "Generates a dairy sector analysis for lending decisions by pulling milk price data from Refinitiv, farm production statistics from CBS (Statistics Netherlands), and Rabobank's internal sector research, then publishes to the advisor portal."
  tags:
    - agricultural-lending
    - analytics
    - refinitiv
    - cbs
capability:
  exposes:
    - type: mcp
      namespace: sector-analysis
      port: 8080
      tools:
        - name: generate-dairy-analysis
          description: "Given a reporting period, compile dairy market data, farm stats, and internal research into a sector analysis."
          inputParameters:
            - name: period
              in: body
              type: string
              description: "Analysis period in YYYY-Q# format."
          steps:
            - name: get-milk-prices
              type: call
              call: "refinitiv.get-dairy-prices"
              with:
                period: "{{period}}"
            - name: get-production-stats
              type: call
              call: "cbs.get-dairy-production"
              with:
                period: "{{period}}"
            - name: get-research
              type: call
              call: "research-platform.get-sector-note"
              with:
                sector: "dairy"
                period: "{{period}}"
            - name: publish-analysis
              type: call
              call: "advisor-portal.publish-analysis"
              with:
                sector: "dairy"
                period: "{{period}}"
                milk_price: "{{get-milk-prices.avg_price}}"
                production_volume: "{{get-production-stats.total_volume}}"
                outlook: "{{get-research.outlook}}"
  consumes:
    - type: http
      namespace: refinitiv
      baseUri: "https://api.refinitiv.com/data/pricing/v1"
      authentication:
        type: bearer
        token: "$secrets.refinitiv_token"
      resources:
        - name: dairy
          path: "/dairy/prices"
          inputParameters:
            - name: period
              in: query
          operations:
            - name: get-dairy-prices
              method: GET
    - type: http
      namespace: cbs
      baseUri: "https://opendata.cbs.nl/ODataApi/odata/v4"
      authentication:
        type: none
      resources:
        - name: dairy-production
          path: "/83781NED/TypedDataSet"
          inputParameters:
            - name: period
              in: query
          operations:
            - name: get-dairy-production
              method: GET
    - type: http
      namespace: research-platform
      baseUri: "https://api.rabobank.nl/internal/research/v1"
      authentication:
        type: bearer
        token: "$secrets.research_token"
      resources:
        - name: sector-notes
          path: "/sectors/{{sector}}/notes"
          inputParameters:
            - name: sector
              in: path
            - name: period
              in: query
          operations:
            - name: get-sector-note
              method: GET
    - type: http
      namespace: advisor-portal
      baseUri: "https://api.rabobank.nl/internal/portal/v1"
      authentication:
        type: bearer
        token: "$secrets.portal_token"
      resources:
        - name: analyses
          path: "/sector-analyses"
          operations:
            - name: publish-analysis
              method: POST

Orchestrates dairy sector risk pipeline across agricultural banking systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Dairy Sector Risk Pipeline"
  description: "Orchestrates dairy sector risk pipeline across agricultural banking systems, coordinating multiple services and notifying stakeholders."
  tags:
    - dairy
    - rabobank
    - jira
    - teams
    - sap
capability:
  exposes:
    - type: mcp
      namespace: dairy
      port: 8080
      tools:
        - name: dairy-sector-risk-pipeline
          description: "Orchestrates dairy sector risk pipeline across agricultural banking systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "jira.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "teams.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "sap.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: jira
      baseUri: "https://rabobank.atlassian.net/rest/api/3"
      authentication:
        type: bearer
        token: "$secrets.jira_token"
      resources:
        - name: jira-resource
          path: "/api/dairy"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: teams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.teams_token"
      resources:
        - name: teams-resource
          path: "/api/dairy"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: sap
      baseUri: "https://rabobank-erp.s4hana.ondemand.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.sap_token"
      resources:
        - name: sap-resource
          path: "/api/dairy"
          operations:
            - name: execute-3
              method: POST

Compares available deposit products for a customer based on their balance and term preference, returning product options with rates, minimum balances, and features.

naftiko: "0.5"
info:
  label: "Deposit Product Comparison"
  description: "Compares available deposit products for a customer based on their balance and term preference, returning product options with rates, minimum balances, and features."
  tags:
    - banking
    - savings
    - product
capability:
  exposes:
    - type: mcp
      namespace: product-comparison
      port: 8080
      tools:
        - name: compare-deposit-products
          description: "Compare deposit product options based on customer needs."
          inputParameters:
            - name: deposit_amount
              in: body
              type: string
              description: "Amount to deposit in EUR."
            - name: term_months
              in: body
              type: string
              description: "Desired term in months (0 for demand deposit)."
          call: "product-catalog.compare-deposits"
          with:
            amount: "{{deposit_amount}}"
            term: "{{term_months}}"
          outputParameters:
            - name: products
              type: string
              mapping: "$.data.products"
  consumes:
    - type: http
      namespace: product-catalog
      baseUri: "https://api.rabobank.nl/internal/products/v1"
      authentication:
        type: bearer
        token: "$secrets.product_catalog_token"
      resources:
        - name: comparisons
          path: "/deposits/compare"
          operations:
            - name: compare-deposits
              method: POST

Retrieves a SEPA direct debit mandate from the mandate management system, returning mandate status, creditor name, maximum amount, and mandate reference.

naftiko: "0.5"
info:
  label: "Direct Debit Mandate Lookup"
  description: "Retrieves a SEPA direct debit mandate from the mandate management system, returning mandate status, creditor name, maximum amount, and mandate reference."
  tags:
    - payments
    - sepa
    - mandates
capability:
  exposes:
    - type: mcp
      namespace: mandates
      port: 8080
      tools:
        - name: get-mandate
          description: "Look up a SEPA direct debit mandate by mandate reference."
          inputParameters:
            - name: mandate_reference
              in: body
              type: string
              description: "The SEPA mandate reference."
          call: "mandate-system.get-mandate"
          with:
            reference: "{{mandate_reference}}"
          outputParameters:
            - name: status
              type: string
              mapping: "$.data.mandateStatus"
            - name: creditor_name
              type: string
              mapping: "$.data.creditorName"
            - name: max_amount
              type: string
              mapping: "$.data.maximumAmount"
            - name: scheme
              type: string
              mapping: "$.data.scheme"
  consumes:
    - type: http
      namespace: mandate-system
      baseUri: "https://api.rabobank.nl/internal/mandates/v2"
      authentication:
        type: bearer
        token: "$secrets.mandate_token"
      resources:
        - name: mandates
          path: "/mandates/{{reference}}"
          inputParameters:
            - name: reference
              in: path
          operations:
            - name: get-mandate
              method: GET

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

naftiko: "0.5"
info:
  label: "Employee Onboarding Orchestrator"
  description: "On new hire creation in Workday, opens a ServiceNow onboarding ticket, provisions a SharePoint folder, and sends a Microsoft Teams welcome message."
  tags:
    - hr
    - onboarding
    - workday
    - servicenow
    - sharepoint
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: hr-onboarding
      port: 8080
      tools:
        - name: trigger-onboarding
          description: "Given a Workday employee ID and start date, orchestrate the full onboarding sequence."
          inputParameters:
            - name: employee_id
              in: body
              type: string
              description: "The Workday worker ID."
            - name: start_date
              in: body
              type: string
              description: "Employee start date in YYYY-MM-DD format."
            - name: department
              in: body
              type: string
              description: "Department the new hire is joining."
          steps:
            - name: get-employee
              type: call
              call: "workday.get-worker"
              with:
                worker_id: "{{employee_id}}"
            - name: open-ticket
              type: call
              call: "servicenow.create-incident"
              with:
                short_description: "New hire onboarding: {{get-employee.full_name}}"
                category: "hr_onboarding"
                assigned_group: "IT_Onboarding"
            - name: provision-folder
              type: call
              call: "sharepoint.create-folder"
              with:
                site_id: "hr_onboarding_site"
                folder_path: "OnboardingDocs/{{get-employee.full_name}}_{{start_date}}"
            - name: send-welcome
              type: call
              call: "msteams.send-message"
              with:
                recipient_upn: "{{get-employee.work_email}}"
                text: "Welcome to Rabobank, {{get-employee.first_name}}! Your onboarding ticket is {{open-ticket.number}}. Documents folder: {{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://rabobank.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

Orchestrates farm biodiversity monitoring pipeline across agricultural banking systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Farm Biodiversity Monitoring Pipeline"
  description: "Orchestrates farm biodiversity monitoring pipeline across agricultural banking systems, coordinating multiple services and notifying stakeholders."
  tags:
    - farm
    - rabobank
    - rabobank
    - salesforce
    - servicenow
capability:
  exposes:
    - type: mcp
      namespace: farm
      port: 8080
      tools:
        - name: farm-biodiversity-monitoring-pipeline
          description: "Orchestrates farm biodiversity monitoring pipeline across agricultural banking systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "rabobank.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "salesforce.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "servicenow.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: rabobank
      baseUri: "https://api.rabobank.nl/v2"
      authentication:
        type: bearer
        token: "$secrets.rabobank_api_token"
      resources:
        - name: rabobank-resource
          path: "/api/farm"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: salesforce
      baseUri: "https://rabobank.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_access_token"
      resources:
        - name: salesforce-resource
          path: "/api/farm"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: servicenow
      baseUri: "https://rabobank.service-now.com/api/now"
      authentication:
        type: bearer
        token: "$secrets.servicenow_token"
      resources:
        - name: servicenow-resource
          path: "/api/farm"
          operations:
            - name: execute-3
              method: POST

Retrieves farm collateral valuation lookup data from the Rabobank agricultural banking systems.

naftiko: "0.5"
info:
  label: "Farm Collateral Valuation Lookup"
  description: "Retrieves farm collateral valuation lookup data from the Rabobank agricultural banking systems."
  tags:
    - farm
    - rabobank
    - lookup
capability:
  exposes:
    - type: mcp
      namespace: farm
      port: 8080
      tools:
        - name: farm-collateral-valuation-lookup
          description: "Retrieves farm collateral valuation lookup data from the Rabobank agricultural banking systems."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The input id."
          call: "rabobank.farm-collateral-valuation-lookup"
          with:
            input_id: "{{input_id}}"
          outputParameters:
            - name: result
              type: string
              mapping: "$.data"
            - name: status
              type: string
              mapping: "$.status"
  consumes:
    - type: http
      namespace: rabobank
      baseUri: "https://api.rabobank.nl/v2"
      authentication:
        type: bearer
        token: "$secrets.rabobank_api_token"
      resources:
        - name: resource
          path: "/farm/collateral/valuation/lookup/{{input_id}}"
          inputParameters:
            - name: input_id
              in: path
          operations:
            - name: farm-collateral-valuation-lookup
              method: GET

Generates a farm equipment financing quote by looking up the equipment specifications and calculating monthly payments based on the equipment value, down payment, and term.

naftiko: "0.5"
info:
  label: "Farm Equipment Financing Quote"
  description: "Generates a farm equipment financing quote by looking up the equipment specifications and calculating monthly payments based on the equipment value, down payment, and term."
  tags:
    - agricultural-lending
    - equipment
    - financing
capability:
  exposes:
    - type: mcp
      namespace: equipment-financing
      port: 8080
      tools:
        - name: get-equipment-quote
          description: "Generate a financing quote for farm equipment purchase."
          inputParameters:
            - name: equipment_value
              in: body
              type: string
              description: "Equipment purchase value in EUR."
            - name: down_payment
              in: body
              type: string
              description: "Down payment amount in EUR."
            - name: term_months
              in: body
              type: string
              description: "Financing term in months."
          call: "pricing-engine.calculate-equipment-financing"
          with:
            value: "{{equipment_value}}"
            down_payment: "{{down_payment}}"
            term: "{{term_months}}"
          outputParameters:
            - name: monthly_payment
              type: string
              mapping: "$.data.monthlyPayment"
            - name: interest_rate
              type: string
              mapping: "$.data.interestRate"
            - name: total_cost
              type: string
              mapping: "$.data.totalCost"
  consumes:
    - type: http
      namespace: pricing-engine
      baseUri: "https://api.rabobank.nl/internal/pricing/v2"
      authentication:
        type: bearer
        token: "$secrets.pricing_engine_token"
      resources:
        - name: equipment
          path: "/equipment-financing-quotes"
          operations:
            - name: calculate-equipment-financing
              method: POST

Orchestrates farm equipment leasing pipeline across agricultural banking systems, coordinating multiple services and notifying stakeholders.

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

Orchestrates farm income verification pipeline across agricultural banking systems, coordinating multiple services and notifying stakeholders.

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

Retrieves farm insurance policy lookup data from the Rabobank agricultural banking systems.

naftiko: "0.5"
info:
  label: "Farm Insurance Policy Lookup"
  description: "Retrieves farm insurance policy lookup data from the Rabobank agricultural banking systems."
  tags:
    - farm
    - rabobank
    - lookup
capability:
  exposes:
    - type: mcp
      namespace: farm
      port: 8080
      tools:
        - name: farm-insurance-policy-lookup
          description: "Retrieves farm insurance policy lookup data from the Rabobank agricultural banking systems."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The input id."
          call: "rabobank.farm-insurance-policy-lookup"
          with:
            input_id: "{{input_id}}"
          outputParameters:
            - name: result
              type: string
              mapping: "$.data"
            - name: status
              type: string
              mapping: "$.status"
  consumes:
    - type: http
      namespace: rabobank
      baseUri: "https://api.rabobank.nl/v2"
      authentication:
        type: bearer
        token: "$secrets.rabobank_api_token"
      resources:
        - name: resource
          path: "/farm/insurance/policy/lookup/{{input_id}}"
          inputParameters:
            - name: input_id
              in: path
          operations:
            - name: farm-insurance-policy-lookup
              method: GET

Calculates crop insurance premiums based on farm size, crop type, coverage level, and historical yield data from the pricing engine.

naftiko: "0.5"
info:
  label: "Farm Insurance Premium Calculation"
  description: "Calculates crop insurance premiums based on farm size, crop type, coverage level, and historical yield data from the pricing engine."
  tags:
    - agricultural-lending
    - insurance
    - pricing
capability:
  exposes:
    - type: mcp
      namespace: crop-insurance-pricing
      port: 8080
      tools:
        - name: calculate-crop-premium
          description: "Calculate crop insurance premium based on farm and coverage details."
          inputParameters:
            - name: farmer_id
              in: body
              type: string
              description: "The farmer identifier."
            - name: crop_type
              in: body
              type: string
              description: "Crop type."
            - name: hectares
              in: body
              type: string
              description: "Number of hectares insured."
            - name: coverage_level
              in: body
              type: string
              description: "Coverage level percentage (50-90)."
          call: "pricing-engine.calculate-crop-premium"
          with:
            farmer_id: "{{farmer_id}}"
            crop: "{{crop_type}}"
            hectares: "{{hectares}}"
            coverage: "{{coverage_level}}"
          outputParameters:
            - name: annual_premium
              type: string
              mapping: "$.data.annualPremium"
            - name: deductible
              type: string
              mapping: "$.data.deductible"
  consumes:
    - type: http
      namespace: pricing-engine
      baseUri: "https://api.rabobank.nl/internal/pricing/v2"
      authentication:
        type: bearer
        token: "$secrets.pricing_engine_token"
      resources:
        - name: crop-premium
          path: "/crop-insurance-premiums"
          operations:
            - name: calculate-crop-premium
              method: POST

Processes a new farm loan application by pulling the farmer's credit profile from Experian, verifying land collateral via the Kadaster land registry, creating the loan in the origination system, and notifying the loan officer in Microsoft Teams.

naftiko: "0.5"
info:
  label: "Farm Loan Origination Orchestrator"
  description: "Processes a new farm loan application by pulling the farmer's credit profile from Experian, verifying land collateral via the Kadaster land registry, creating the loan in the origination system, and notifying the loan officer in Microsoft Teams."
  tags:
    - agricultural-lending
    - origination
    - experian
    - kadaster
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: agri-lending
      port: 8080
      tools:
        - name: originate-farm-loan
          description: "Given farmer details and land parcel, pull credit, verify collateral, create loan, and notify officer."
          inputParameters:
            - name: farmer_id
              in: body
              type: string
              description: "The customer/farmer identifier."
            - name: requested_amount
              in: body
              type: string
              description: "Loan amount requested in EUR."
            - name: land_parcel_id
              in: body
              type: string
              description: "The Kadaster land parcel identifier."
            - name: loan_purpose
              in: body
              type: string
              description: "Purpose of the loan (equipment, land_acquisition, working_capital, expansion)."
          steps:
            - name: pull-credit
              type: call
              call: "experian.get-business-credit"
              with:
                customer_id: "{{farmer_id}}"
            - name: verify-land
              type: call
              call: "kadaster.get-parcel"
              with:
                parcel_id: "{{land_parcel_id}}"
            - name: create-application
              type: call
              call: "loan-origination.create-application"
              with:
                customer_id: "{{farmer_id}}"
                amount: "{{requested_amount}}"
                purpose: "{{loan_purpose}}"
                credit_score: "{{pull-credit.score}}"
                collateral_value: "{{verify-land.estimated_value}}"
                collateral_type: "farmland"
            - name: notify-officer
              type: call
              call: "msteams.send-message"
              with:
                channel_id: "agri-lending-queue"
                text: "New farm loan application: {{create-application.application_id}}. Customer: {{farmer_id}}, Amount: EUR {{requested_amount}}, Purpose: {{loan_purpose}}, Credit: {{pull-credit.score}}, Land value: EUR {{verify-land.estimated_value}}."
  consumes:
    - type: http
      namespace: experian
      baseUri: "https://api.experian.nl/business/v2"
      authentication:
        type: bearer
        token: "$secrets.experian_token"
      resources:
        - name: credit
          path: "/reports"
          operations:
            - name: get-business-credit
              method: POST
    - type: http
      namespace: kadaster
      baseUri: "https://api.kadaster.nl/v2"
      authentication:
        type: bearer
        token: "$secrets.kadaster_token"
      resources:
        - name: parcels
          path: "/parcels/{{parcel_id}}"
          inputParameters:
            - name: parcel_id
              in: path
          operations:
            - name: get-parcel
              method: GET
    - type: http
      namespace: loan-origination
      baseUri: "https://api.rabobank.nl/internal/lending/v2"
      authentication:
        type: bearer
        token: "$secrets.loan_origination_token"
      resources:
        - name: applications
          path: "/applications"
          operations:
            - name: create-application
              method: POST
    - type: http
      namespace: msteams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: messages
          path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
          inputParameters:
            - name: team_id
              in: path
            - name: channel_id
              in: path
          operations:
            - name: send-message
              method: POST

Assesses agricultural credit risk by pulling farm financial data from the customer file, retrieving crop yield forecasts from the KNMI weather service, checking commodity futures from Refinitiv, and generating a risk score in the credit risk engine.

naftiko: "0.5"
info:
  label: "Farm Risk Assessment Orchestrator"
  description: "Assesses agricultural credit risk by pulling farm financial data from the customer file, retrieving crop yield forecasts from the KNMI weather service, checking commodity futures from Refinitiv, and generating a risk score in the credit risk engine."
  tags:
    - agricultural-lending
    - risk
    - knmi
    - refinitiv
capability:
  exposes:
    - type: mcp
      namespace: agri-risk
      port: 8080
      tools:
        - name: assess-farm-risk
          description: "Given a farmer ID and primary crop, pull financials, weather outlook, commodity futures, and compute risk score."
          inputParameters:
            - name: farmer_id
              in: body
              type: string
              description: "The farmer/customer identifier."
            - name: primary_crop
              in: body
              type: string
              description: "Primary crop type (wheat, corn, potatoes, dairy, sugar_beet)."
            - name: region
              in: body
              type: string
              description: "Dutch province or region."
          steps:
            - name: get-farm-financials
              type: call
              call: "customer-file.get-financials"
              with:
                customer_id: "{{farmer_id}}"
            - name: get-weather-outlook
              type: call
              call: "knmi.get-forecast"
              with:
                region: "{{region}}"
                period: "next_90_days"
            - name: get-commodity-outlook
              type: call
              call: "refinitiv.get-futures"
              with:
                commodity: "{{primary_crop}}"
            - name: compute-risk
              type: call
              call: "credit-risk-engine.assess-agri-risk"
              with:
                customer_id: "{{farmer_id}}"
                revenue: "{{get-farm-financials.annual_revenue}}"
                debt_ratio: "{{get-farm-financials.debt_to_equity}}"
                weather_risk: "{{get-weather-outlook.risk_index}}"
                commodity_outlook: "{{get-commodity-outlook.forward_price}}"
  consumes:
    - type: http
      namespace: customer-file
      baseUri: "https://api.rabobank.nl/internal/customer/v2"
      authentication:
        type: bearer
        token: "$secrets.customer_file_token"
      resources:
        - name: financials
          path: "/customers/{{customer_id}}/financials"
          inputParameters:
            - name: customer_id
              in: path
          operations:
            - name: get-financials
              method: GET
    - type: http
      namespace: knmi
      baseUri: "https://api.knmi.nl/open-data/v1"
      authentication:
        type: bearer
        token: "$secrets.knmi_token"
      resources:
        - name: forecasts
          path: "/forecasts"
          inputParameters:
            - name: region
              in: query
            - name: period
              in: query
          operations:
            - name: get-forecast
              method: GET
    - type: http
      namespace: refinitiv
      baseUri: "https://api.refinitiv.com/data/pricing/v1"
      authentication:
        type: bearer
        token: "$secrets.refinitiv_token"
      resources:
        - name: futures
          path: "/instruments/{{commodity}}/futures"
          inputParameters:
            - name: commodity
              in: path
          operations:
            - name: get-futures
              method: GET
    - type: http
      namespace: credit-risk-engine
      baseUri: "https://api.rabobank.nl/internal/risk/v2"
      authentication:
        type: bearer
        token: "$secrets.risk_engine_token"
      resources:
        - name: assessments
          path: "/agri-risk-assessments"
          operations:
            - name: assess-agri-risk
              method: POST

Retrieves farm subsidy eligibility check data from the Rabobank agricultural banking systems.

naftiko: "0.5"
info:
  label: "Farm Subsidy Eligibility Check"
  description: "Retrieves farm subsidy eligibility check data from the Rabobank agricultural banking systems."
  tags:
    - farm
    - rabobank
    - check
capability:
  exposes:
    - type: mcp
      namespace: farm
      port: 8080
      tools:
        - name: farm-subsidy-eligibility-check
          description: "Retrieves farm subsidy eligibility check data from the Rabobank agricultural banking systems."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The input id."
          call: "rabobank.farm-subsidy-eligibility-check"
          with:
            input_id: "{{input_id}}"
          outputParameters:
            - name: result
              type: string
              mapping: "$.data"
            - name: status
              type: string
              mapping: "$.status"
  consumes:
    - type: http
      namespace: rabobank
      baseUri: "https://api.rabobank.nl/v2"
      authentication:
        type: bearer
        token: "$secrets.rabobank_api_token"
      resources:
        - name: resource
          path: "/farm/subsidy/eligibility/check/{{input_id}}"
          inputParameters:
            - name: input_id
              in: path
          operations:
            - name: farm-subsidy-eligibility-check
              method: GET

Orchestrates farm succession planning pipeline across agricultural banking systems, coordinating multiple services and notifying stakeholders.

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

Orchestrates farm sustainability assessment pipeline across agricultural banking systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Farm Sustainability Assessment Pipeline"
  description: "Orchestrates farm sustainability assessment pipeline across agricultural banking systems, coordinating multiple services and notifying stakeholders."
  tags:
    - farm
    - rabobank
    - jira
    - teams
    - sap
capability:
  exposes:
    - type: mcp
      namespace: farm
      port: 8080
      tools:
        - name: farm-sustainability-assessment-pipeline
          description: "Orchestrates farm sustainability assessment pipeline across agricultural banking systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "jira.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "teams.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "sap.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: jira
      baseUri: "https://rabobank.atlassian.net/rest/api/3"
      authentication:
        type: bearer
        token: "$secrets.jira_token"
      resources:
        - name: jira-resource
          path: "/api/farm"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: teams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.teams_token"
      resources:
        - name: teams-resource
          path: "/api/farm"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: sap
      baseUri: "https://rabobank-erp.s4hana.ondemand.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.sap_token"
      resources:
        - name: sap-resource
          path: "/api/farm"
          operations:
            - name: execute-3
              method: POST

Retrieves the current foreign exchange spot rate from the FX desk for a given currency pair, returning bid, ask, and mid rates.

naftiko: "0.5"
info:
  label: "FX Spot Rate Lookup"
  description: "Retrieves the current foreign exchange spot rate from the FX desk for a given currency pair, returning bid, ask, and mid rates."
  tags:
    - banking
    - fx
    - treasury
capability:
  exposes:
    - type: mcp
      namespace: fx-rates
      port: 8080
      tools:
        - name: get-fx-spot-rate
          description: "Get the current FX spot rate for a currency pair."
          inputParameters:
            - name: base_currency
              in: body
              type: string
              description: "Base currency (e.g., EUR)."
            - name: quote_currency
              in: body
              type: string
              description: "Quote currency (e.g., USD)."
          call: "fx-desk.get-spot-rate"
          with:
            base: "{{base_currency}}"
            quote: "{{quote_currency}}"
          outputParameters:
            - name: bid
              type: string
              mapping: "$.data.bid"
            - name: ask
              type: string
              mapping: "$.data.ask"
            - name: mid
              type: string
              mapping: "$.data.mid"
  consumes:
    - type: http
      namespace: fx-desk
      baseUri: "https://api.rabobank.nl/internal/fx/v2"
      authentication:
        type: bearer
        token: "$secrets.fx_token"
      resources:
        - name: spot-rates
          path: "/spot-rates"
          inputParameters:
            - name: base
              in: query
            - name: quote
              in: query
          operations:
            - name: get-spot-rate
              method: GET

Processes grain storage financing by verifying the grain quantity with the warehouse receipt system, calculating the loan amount based on current commodity prices from Refinitiv, and creating the financing arrangement.

naftiko: "0.5"
info:
  label: "Grain Storage Financing Orchestrator"
  description: "Processes grain storage financing by verifying the grain quantity with the warehouse receipt system, calculating the loan amount based on current commodity prices from Refinitiv, and creating the financing arrangement."
  tags:
    - agricultural-lending
    - commodity
    - refinitiv
capability:
  exposes:
    - type: mcp
      namespace: commodity-financing
      port: 8080
      tools:
        - name: finance-grain-storage
          description: "Given warehouse receipt and grain details, verify stock, price, and create financing."
          inputParameters:
            - name: warehouse_receipt_id
              in: body
              type: string
              description: "The warehouse receipt identifier."
            - name: commodity
              in: body
              type: string
              description: "Commodity type (wheat, corn, barley)."
            - name: quantity_tons
              in: body
              type: string
              description: "Quantity in metric tons."
          steps:
            - name: verify-receipt
              type: call
              call: "warehouse-system.verify-receipt"
              with:
                receipt_id: "{{warehouse_receipt_id}}"
            - name: get-price
              type: call
              call: "refinitiv.get-commodity-price"
              with:
                ric: "{{commodity}}"
            - name: create-financing
              type: call
              call: "loan-origination.create-commodity-facility"
              with:
                receipt_id: "{{warehouse_receipt_id}}"
                commodity: "{{commodity}}"
                quantity: "{{quantity_tons}}"
                market_value: "{{get-price.spotPrice}}"
  consumes:
    - type: http
      namespace: warehouse-system
      baseUri: "https://api.rabobank.nl/internal/warehouse/v1"
      authentication:
        type: bearer
        token: "$secrets.warehouse_token"
      resources:
        - name: receipts
          path: "/receipts/{{receipt_id}}/verify"
          inputParameters:
            - name: receipt_id
              in: path
          operations:
            - name: verify-receipt
              method: GET
    - type: http
      namespace: refinitiv
      baseUri: "https://api.refinitiv.com/data/pricing/v1"
      authentication:
        type: bearer
        token: "$secrets.refinitiv_token"
      resources:
        - name: pricing
          path: "/instruments/{{ric}}/pricing"
          inputParameters:
            - name: ric
              in: path
          operations:
            - name: get-commodity-price
              method: GET
    - type: http
      namespace: loan-origination
      baseUri: "https://api.rabobank.nl/internal/lending/v2"
      authentication:
        type: bearer
        token: "$secrets.loan_origination_token"
      resources:
        - name: commodity-facilities
          path: "/commodity-facilities"
          operations:
            - name: create-commodity-facility
              method: POST

Orchestrates grain trade settlement pipeline across agricultural banking systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Grain Trade Settlement Pipeline"
  description: "Orchestrates grain trade settlement pipeline across agricultural banking systems, coordinating multiple services and notifying stakeholders."
  tags:
    - grain
    - rabobank
    - jira
    - teams
    - sap
capability:
  exposes:
    - type: mcp
      namespace: grain
      port: 8080
      tools:
        - name: grain-trade-settlement-pipeline
          description: "Orchestrates grain trade settlement pipeline across agricultural banking systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "jira.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "teams.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "sap.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: jira
      baseUri: "https://rabobank.atlassian.net/rest/api/3"
      authentication:
        type: bearer
        token: "$secrets.jira_token"
      resources:
        - name: jira-resource
          path: "/api/grain"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: teams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.teams_token"
      resources:
        - name: teams-resource
          path: "/api/grain"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: sap
      baseUri: "https://rabobank-erp.s4hana.ondemand.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.sap_token"
      resources:
        - name: sap-resource
          path: "/api/grain"
          operations:
            - name: execute-3
              method: POST

Checks the status of an iDEAL online payment transaction, returning payment status, amount, debtor bank, and timestamp.

naftiko: "0.5"
info:
  label: "iDEAL Payment Status Check"
  description: "Checks the status of an iDEAL online payment transaction, returning payment status, amount, debtor bank, and timestamp."
  tags:
    - payments
    - ideal
    - banking
capability:
  exposes:
    - type: mcp
      namespace: payments
      port: 8080
      tools:
        - name: get-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."
          call: "payment-engine.get-ideal-status"
          with:
            transaction_id: "{{transaction_id}}"
          outputParameters:
            - name: status
              type: string
              mapping: "$.data.status"
            - name: amount
              type: string
              mapping: "$.data.amount"
            - name: debtor_bank
              type: string
              mapping: "$.data.debtorBank"
            - name: timestamp
              type: string
              mapping: "$.data.completionTimestamp"
  consumes:
    - type: http
      namespace: payment-engine
      baseUri: "https://api.rabobank.nl/internal/payments/v3"
      authentication:
        type: bearer
        token: "$secrets.payment_engine_token"
      resources:
        - name: ideal
          path: "/ideal/transactions/{{transaction_id}}"
          inputParameters:
            - name: transaction_id
              in: path
          operations:
            - name: get-ideal-status
              method: GET

Compiles an interest rate risk report by pulling the bank's rate-sensitive positions from the ALM system, running NII and EVE simulations, and pushing results to Power BI.

naftiko: "0.5"
info:
  label: "Interest Rate Risk Report Orchestrator"
  description: "Compiles an interest rate risk report by pulling the bank's rate-sensitive positions from the ALM system, running NII and EVE simulations, and pushing results to Power BI."
  tags:
    - risk
    - treasury
    - alm
    - power-bi
capability:
  exposes:
    - type: mcp
      namespace: irr-reporting
      port: 8080
      tools:
        - name: generate-irr-report
          description: "Given a reporting date, pull rate positions, run simulations, and update dashboard."
          inputParameters:
            - name: reporting_date
              in: body
              type: string
              description: "Reporting date in YYYY-MM-DD format."
          steps:
            - name: get-positions
              type: call
              call: "alm-system.get-rate-positions"
              with:
                date: "{{reporting_date}}"
            - name: run-simulations
              type: call
              call: "alm-system.run-nii-eve"
              with:
                date: "{{reporting_date}}"
                positions: "{{get-positions.positions}}"
            - name: push-dashboard
              type: call
              call: "powerbi.push-rows"
              with:
                dataset_id: "irr_dashboard"
                rows_date: "{{reporting_date}}"
                rows_nii_impact: "{{run-simulations.nii_impact}}"
                rows_eve_impact: "{{run-simulations.eve_impact}}"
  consumes:
    - type: http
      namespace: alm-system
      baseUri: "https://api.rabobank.nl/internal/alm/v1"
      authentication:
        type: bearer
        token: "$secrets.alm_token"
      resources:
        - name: positions
          path: "/rate-sensitive-positions"
          inputParameters:
            - name: date
              in: query
          operations:
            - name: get-rate-positions
              method: GET
        - name: simulations
          path: "/nii-eve-simulations"
          operations:
            - name: run-nii-eve
              method: POST
    - type: http
      namespace: powerbi
      baseUri: "https://api.powerbi.com/v1.0/myorg"
      authentication:
        type: bearer
        token: "$secrets.powerbi_token"
      resources:
        - name: datasets
          path: "/datasets/{{dataset_id}}/tables/IRR/rows"
          inputParameters:
            - name: dataset_id
              in: path
          operations:
            - name: push-rows
              method: POST

Processes an international wire transfer by screening the beneficiary for sanctions, converting currency via the FX desk, initiating the SWIFT payment, and sending confirmation to the customer.

naftiko: "0.5"
info:
  label: "International Wire Transfer Orchestrator"
  description: "Processes an international wire transfer by screening the beneficiary for sanctions, converting currency via the FX desk, initiating the SWIFT payment, and sending confirmation to the customer."
  tags:
    - payments
    - swift
    - compliance
    - fx
capability:
  exposes:
    - type: mcp
      namespace: intl-wire
      port: 8080
      tools:
        - name: process-international-wire
          description: "Given wire details, screen beneficiary, convert currency, initiate SWIFT, and confirm."
          inputParameters:
            - name: debtor_iban
              in: body
              type: string
              description: "Debtor IBAN."
            - name: beneficiary_name
              in: body
              type: string
              description: "Beneficiary name."
            - name: beneficiary_bic
              in: body
              type: string
              description: "Beneficiary bank BIC."
            - name: amount_eur
              in: body
              type: string
              description: "Amount in EUR."
            - name: target_currency
              in: body
              type: string
              description: "Target currency code."
          steps:
            - name: screen-beneficiary
              type: call
              call: "sanctions-api.screen"
              with:
                name: "{{beneficiary_name}}"
            - name: convert-currency
              type: call
              call: "fx-desk.get-rate"
              with:
                from: "EUR"
                to: "{{target_currency}}"
                amount: "{{amount_eur}}"
            - name: initiate-wire
              type: call
              call: "swift-gateway.create-payment"
              with:
                debtor_iban: "{{debtor_iban}}"
                beneficiary_name: "{{beneficiary_name}}"
                beneficiary_bic: "{{beneficiary_bic}}"
                amount: "{{convert-currency.converted_amount}}"
                currency: "{{target_currency}}"
  consumes:
    - type: http
      namespace: sanctions-api
      baseUri: "https://api.rabobank.nl/internal/sanctions/v1"
      authentication:
        type: bearer
        token: "$secrets.sanctions_token"
      resources:
        - name: screening
          path: "/screen"
          operations:
            - name: screen
              method: POST
    - type: http
      namespace: fx-desk
      baseUri: "https://api.rabobank.nl/internal/fx/v2"
      authentication:
        type: bearer
        token: "$secrets.fx_token"
      resources:
        - name: rates
          path: "/rates"
          operations:
            - name: get-rate
              method: POST
    - type: http
      namespace: swift-gateway
      baseUri: "https://api.rabobank.nl/internal/swift/v2"
      authentication:
        type: bearer
        token: "$secrets.swift_gateway_token"
      resources:
        - name: payments
          path: "/mt103"
          operations:
            - name: create-payment
              method: POST

Creates an IT service request in ServiceNow for Rabobank employees, covering system access, software installation, and hardware requests.

naftiko: "0.5"
info:
  label: "IT Service Request"
  description: "Creates an IT service request in ServiceNow for Rabobank employees, covering system access, software installation, and hardware requests."
  tags:
    - it-support
    - servicenow
capability:
  exposes:
    - type: mcp
      namespace: it-support
      port: 8080
      tools:
        - name: create-service-request
          description: "Submit an IT service request to ServiceNow."
          inputParameters:
            - name: category
              in: body
              type: string
              description: "Request category (access, software, hardware, network)."
            - name: description
              in: body
              type: string
              description: "Description of the request."
            - name: priority
              in: body
              type: string
              description: "Priority (low, medium, high)."
          call: "servicenow.create-request"
          with:
            category: "{{category}}"
            short_description: "IT Service: {{category}}"
            description: "{{description}}"
            priority: "{{priority}}"
          outputParameters:
            - name: request_number
              type: string
              mapping: "$.result.number"
  consumes:
    - type: http
      namespace: servicenow
      baseUri: "https://rabobank.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

Runs KYC screening on a new business customer by verifying identity through the Dutch Chamber of Commerce (KvK), screening sanctions lists, checking PEP status, and logging results in the compliance system.

naftiko: "0.5"
info:
  label: "KYC Customer Screening Orchestrator"
  description: "Runs KYC screening on a new business customer by verifying identity through the Dutch Chamber of Commerce (KvK), screening sanctions lists, checking PEP status, and logging results in the compliance system."
  tags:
    - risk
    - kyc
    - compliance
    - kvk
capability:
  exposes:
    - type: mcp
      namespace: kyc-screening
      port: 8080
      tools:
        - name: screen-business-customer
          description: "Given a business customer and KvK number, verify identity, screen sanctions and PEP, and log compliance results."
          inputParameters:
            - name: kvk_number
              in: body
              type: string
              description: "The Dutch Chamber of Commerce (KvK) number."
            - name: company_name
              in: body
              type: string
              description: "The company name."
            - name: beneficial_owner
              in: body
              type: string
              description: "Name of the ultimate beneficial owner."
          steps:
            - name: verify-kvk
              type: call
              call: "kvk.get-company"
              with:
                kvk_number: "{{kvk_number}}"
            - name: screen-sanctions
              type: call
              call: "sanctions-api.screen"
              with:
                name: "{{company_name}}"
                ubo_name: "{{beneficial_owner}}"
            - name: check-pep
              type: call
              call: "sanctions-api.check-pep"
              with:
                name: "{{beneficial_owner}}"
            - name: log-results
              type: call
              call: "compliance-system.create-screening"
              with:
                kvk_number: "{{kvk_number}}"
                company_name: "{{company_name}}"
                kvk_verified: "{{verify-kvk.active}}"
                sanctions_hit: "{{screen-sanctions.hit}}"
                pep_status: "{{check-pep.is_pep}}"
  consumes:
    - type: http
      namespace: kvk
      baseUri: "https://api.kvk.nl/api/v1"
      authentication:
        type: bearer
        token: "$secrets.kvk_token"
      resources:
        - name: companies
          path: "/basisprofielen/{{kvk_number}}"
          inputParameters:
            - name: kvk_number
              in: path
          operations:
            - name: get-company
              method: GET
    - type: http
      namespace: sanctions-api
      baseUri: "https://api.rabobank.nl/internal/sanctions/v1"
      authentication:
        type: bearer
        token: "$secrets.sanctions_token"
      resources:
        - name: screening
          path: "/screen"
          operations:
            - name: screen
              method: POST
        - name: pep
          path: "/pep-check"
          operations:
            - name: check-pep
              method: POST
    - type: http
      namespace: compliance-system
      baseUri: "https://api.rabobank.nl/internal/compliance/v1"
      authentication:
        type: bearer
        token: "$secrets.compliance_token"
      resources:
        - name: screenings
          path: "/screening-records"
          operations:
            - name: create-screening
              method: POST

Retrieves leasing contract status lookup data from the Rabobank agricultural banking systems.

naftiko: "0.5"
info:
  label: "Leasing Contract Status Lookup"
  description: "Retrieves leasing contract status lookup data from the Rabobank agricultural banking systems."
  tags:
    - leasing
    - rabobank
    - lookup
capability:
  exposes:
    - type: mcp
      namespace: leasing
      port: 8080
      tools:
        - name: leasing-contract-status-lookup
          description: "Retrieves leasing contract status lookup data from the Rabobank agricultural banking systems."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The input id."
          call: "rabobank.leasing-contract-status-lookup"
          with:
            input_id: "{{input_id}}"
          outputParameters:
            - name: result
              type: string
              mapping: "$.data"
            - name: status
              type: string
              mapping: "$.status"
  consumes:
    - type: http
      namespace: rabobank
      baseUri: "https://api.rabobank.nl/v2"
      authentication:
        type: bearer
        token: "$secrets.rabobank_api_token"
      resources:
        - name: resource
          path: "/leasing/contract/status/lookup/{{input_id}}"
          inputParameters:
            - name: input_id
              in: path
          operations:
            - name: leasing-contract-status-lookup
              method: GET

Orchestrates liquidity management pipeline across agricultural banking systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Liquidity Management Pipeline"
  description: "Orchestrates liquidity management pipeline across agricultural banking systems, coordinating multiple services and notifying stakeholders."
  tags:
    - liquidity
    - rabobank
    - confluence
    - bloomberg
    - rabobank
capability:
  exposes:
    - type: mcp
      namespace: liquidity
      port: 8080
      tools:
        - name: liquidity-management-pipeline
          description: "Orchestrates liquidity management pipeline across agricultural banking systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "confluence.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "bloomberg.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "rabobank.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: confluence
      baseUri: "https://rabobank.atlassian.net/wiki/rest/api"
      authentication:
        type: bearer
        token: "$secrets.confluence_token"
      resources:
        - name: confluence-resource
          path: "/api/liquidity"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: bloomberg
      baseUri: "https://api.bloomberg.com/v1"
      authentication:
        type: bearer
        token: "$secrets.bloomberg_token"
      resources:
        - name: bloomberg-resource
          path: "/api/liquidity"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: rabobank
      baseUri: "https://api.rabobank.nl/v2"
      authentication:
        type: bearer
        token: "$secrets.rabobank_api_token"
      resources:
        - name: rabobank-resource
          path: "/api/liquidity"
          operations:
            - name: execute-3
              method: POST

Compiles daily liquidity risk metrics by pulling cash flows from the treasury system, interbank exposure from the ALM system, and regulatory LCR data from the risk engine, then pushes to the Power BI dashboard and alerts Treasury in Microsoft Teams.

naftiko: "0.5"
info:
  label: "Liquidity Risk Dashboard Orchestrator"
  description: "Compiles daily liquidity risk metrics by pulling cash flows from the treasury system, interbank exposure from the ALM system, and regulatory LCR data from the risk engine, then pushes to the Power BI dashboard and alerts Treasury in Microsoft Teams."
  tags:
    - risk
    - treasury
    - power-bi
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: liquidity-risk
      port: 8080
      tools:
        - name: update-liquidity-dashboard
          description: "Given a reporting date, aggregate cash flows, interbank exposure, and LCR, then update dashboard and notify Treasury."
          inputParameters:
            - name: reporting_date
              in: body
              type: string
              description: "Reporting date in YYYY-MM-DD format."
          steps:
            - name: get-cash-flows
              type: call
              call: "treasury-system.get-cash-flows"
              with:
                date: "{{reporting_date}}"
            - name: get-interbank-exposure
              type: call
              call: "alm-system.get-exposure"
              with:
                date: "{{reporting_date}}"
            - name: get-lcr
              type: call
              call: "risk-reporting.get-lcr"
              with:
                date: "{{reporting_date}}"
            - name: push-to-powerbi
              type: call
              call: "powerbi.push-rows"
              with:
                dataset_id: "liquidity_dashboard"
                rows_date: "{{reporting_date}}"
                rows_net_cash: "{{get-cash-flows.net_position}}"
                rows_interbank: "{{get-interbank-exposure.total}}"
                rows_lcr: "{{get-lcr.ratio}}"
            - name: notify-treasury
              type: call
              call: "msteams.send-message"
              with:
                channel_id: "treasury-risk"
                text: "Liquidity update ({{reporting_date}}): Net cash: EUR {{get-cash-flows.net_position}}M, Interbank: EUR {{get-interbank-exposure.total}}M, LCR: {{get-lcr.ratio}}%. Dashboard updated."
  consumes:
    - type: http
      namespace: treasury-system
      baseUri: "https://api.rabobank.nl/internal/treasury/v2"
      authentication:
        type: bearer
        token: "$secrets.treasury_token"
      resources:
        - name: cash-flows
          path: "/cash-flows"
          inputParameters:
            - name: date
              in: query
          operations:
            - name: get-cash-flows
              method: GET
    - type: http
      namespace: alm-system
      baseUri: "https://api.rabobank.nl/internal/alm/v1"
      authentication:
        type: bearer
        token: "$secrets.alm_token"
      resources:
        - name: exposure
          path: "/interbank-exposure"
          inputParameters:
            - name: date
              in: query
          operations:
            - name: get-exposure
              method: GET
    - type: http
      namespace: risk-reporting
      baseUri: "https://api.rabobank.nl/internal/risk-reporting/v2"
      authentication:
        type: bearer
        token: "$secrets.risk_reporting_token"
      resources:
        - name: lcr
          path: "/lcr"
          inputParameters:
            - name: date
              in: query
          operations:
            - name: get-lcr
              method: GET
    - type: http
      namespace: powerbi
      baseUri: "https://api.powerbi.com/v1.0/myorg"
      authentication:
        type: bearer
        token: "$secrets.powerbi_token"
      resources:
        - name: datasets
          path: "/datasets/{{dataset_id}}/tables/Liquidity/rows"
          inputParameters:
            - name: dataset_id
              in: path
          operations:
            - name: push-rows
              method: POST
    - type: http
      namespace: msteams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: messages
          path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
          inputParameters:
            - name: team_id
              in: path
            - name: channel_id
              in: path
          operations:
            - name: send-message
              method: POST

Monitors agricultural loan covenants by pulling quarterly financial statements from the customer file, checking covenant thresholds in the loan system, and alerting the relationship manager in Microsoft Teams if a breach is detected.

naftiko: "0.5"
info:
  label: "Loan Covenant Monitoring Orchestrator"
  description: "Monitors agricultural loan covenants by pulling quarterly financial statements from the customer file, checking covenant thresholds in the loan system, and alerting the relationship manager in Microsoft Teams if a breach is detected."
  tags:
    - agricultural-lending
    - risk
    - monitoring
    - microsoft-teams
capability:
  exposes:
    - type: mcp
      namespace: covenant-monitoring
      port: 8080
      tools:
        - name: check-loan-covenants
          description: "Given a loan ID, pull customer financials, check covenant compliance, and alert if breached."
          inputParameters:
            - name: loan_id
              in: body
              type: string
              description: "The agricultural loan identifier."
          steps:
            - name: get-loan-details
              type: call
              call: "loan-system.get-loan"
              with:
                loan_id: "{{loan_id}}"
            - name: get-financials
              type: call
              call: "customer-file.get-financials"
              with:
                customer_id: "{{get-loan-details.customer_id}}"
            - name: check-covenants
              type: call
              call: "loan-system.evaluate-covenants"
              with:
                loan_id: "{{loan_id}}"
                current_ratio: "{{get-financials.current_ratio}}"
                debt_service_coverage: "{{get-financials.dscr}}"
                debt_to_equity: "{{get-financials.debt_to_equity}}"
            - name: alert-rm
              type: call
              call: "msteams.send-message"
              with:
                channel_id: "agri-risk-alerts"
                text: "Covenant check for loan {{loan_id}} (Customer: {{get-loan-details.customer_id}}). Status: {{check-covenants.overall_status}}. DSCR: {{get-financials.dscr}}, D/E: {{get-financials.debt_to_equity}}."
  consumes:
    - type: http
      namespace: loan-system
      baseUri: "https://api.rabobank.nl/internal/lending/v2"
      authentication:
        type: bearer
        token: "$secrets.loan_origination_token"
      resources:
        - name: loans
          path: "/loans/{{loan_id}}"
          inputParameters:
            - name: loan_id
              in: path
          operations:
            - name: get-loan
              method: GET
        - name: covenants
          path: "/loans/{{loan_id}}/covenant-evaluation"
          inputParameters:
            - name: loan_id
              in: path
          operations:
            - name: evaluate-covenants
              method: POST
    - type: http
      namespace: customer-file
      baseUri: "https://api.rabobank.nl/internal/customer/v2"
      authentication:
        type: bearer
        token: "$secrets.customer_file_token"
      resources:
        - name: financials
          path: "/customers/{{customer_id}}/financials"
          inputParameters:
            - name: customer_id
              in: path
          operations:
            - name: get-financials
              method: GET
    - type: http
      namespace: msteams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.msgraph_token"
      resources:
        - name: messages
          path: "/teams/{{team_id}}/channels/{{channel_id}}/messages"
          inputParameters:
            - name: team_id
              in: path
            - name: channel_id
              in: path
          operations:
            - name: send-message
              method: POST

Disburses an approved agricultural loan by creating the loan account in the core banking system, transferring funds via SEPA, updating the loan origination status, and sending a disbursement confirmation to the farmer.

naftiko: "0.5"
info:
  label: "Loan Disbursement Orchestrator"
  description: "Disburses an approved agricultural loan by creating the loan account in the core banking system, transferring funds via SEPA, updating the loan origination status, and sending a disbursement confirmation to the farmer."
  tags:
    - agricultural-lending
    - payments
    - core-banking
    - salesforce-marketing-cloud
capability:
  exposes:
    - type: mcp
      namespace: loan-disbursement
      port: 8080
      tools:
        - name: disburse-loan
          description: "Given an approved loan ID, create account, transfer funds, update status, and send confirmation."
          inputParameters:
            - name: loan_id
              in: body
              type: string
              description: "The approved loan identifier."
          steps:
            - name: get-loan
              type: call
              call: "loan-origination.get-loan"
              with:
                loan_id: "{{loan_id}}"
            - name: create-loan-account
              type: call
              call: "core-banking.create-loan-account"
              with:
                customer_id: "{{get-loan.customer_id}}"
                amount: "{{get-loan.approved_amount}}"
                rate: "{{get-loan.interest_rate}}"
                term: "{{get-loan.term_months}}"
            - name: transfer-funds
              type: call
              call: "payment-engine.create-sepa-transfer"
              with:
                debtor_iban: "{{create-loan-account.loan_iban}}"
                creditor_iban: "{{get-loan.customer_iban}}"
                amount: "{{get-loan.approved_amount}}"
                reference: "Loan disbursement {{loan_id}}"
            - name: send-confirmation
              type: call
              call: "sfmc.send-email"
              with:
                template: "loan_disbursement"
                to: "{{get-loan.customer_email}}"
                merge_amount: "{{get-loan.approved_amount}}"
                merge_loan_id: "{{loan_id}}"
  consumes:
    - type: http
      namespace: loan-origination
      baseUri: "https://api.rabobank.nl/internal/lending/v2"
      authentication:
        type: bearer
        token: "$secrets.loan_origination_token"
      resources:
        - name: loans
          path: "/loans/{{loan_id}}"
          inputParameters:
            - name: loan_id
              in: path
          operations:
            - name: get-loan
              method: GET
    - type: http
      namespace: core-banking
      baseUri: "https://api.rabobank.nl/internal/cbs/v2"
      authentication:
        type: bearer
        token: "$secrets.core_banking_token"
      resources:
        - name: loan-accounts
          path: "/loan-accounts"
          operations:
            - name: create-loan-account
              method: POST
    - type: http
      namespace: payment-engine
      baseUri: "https://api.rabobank.nl/internal/payments/v3"
      authentication:
        type: bearer
        token: "$secrets.payment_engine_token"
      resources:
        - name: transfers
          path: "/sepa-credit-transfers"
          operations:
            - name: create-sepa-transfer
              method: POST
    - type: http
      namespace: sfmc
      baseUri: "https://mc.rabobank.nl/rest"
      authentication:
        type: bearer
        token: "$secrets.sfmc_token"
      resources:
        - name: emails
          path: "/messaging/v1/email/messages"
          operations:
            - name: send-email
              method: POST

Retrieves the loan repayment schedule from the lending system, returning upcoming payment dates, amounts, principal/interest split, and remaining balance.

naftiko: "0.5"
info:
  label: "Loan Repayment Schedule Lookup"
  description: "Retrieves the loan repayment schedule from the lending system, returning upcoming payment dates, amounts, principal/interest split, and remaining balance."
  tags:
    - banking
    - lending
capability:
  exposes:
    - type: mcp
      namespace: loan-servicing
      port: 8080
      tools:
        - name: get-repayment-schedule
          description: "Look up the repayment schedule for a loan."
          inputParameters:
            - name: loan_id
              in: body
              type: string
              description: "The loan identifier."
          call: "loan-system.get-schedule"
          with:
            loan_id: "{{loan_id}}"
          outputParameters:
            - name: schedule
              type: string
              mapping: "$.data.payments"
            - name: remaining_balance
              type: string
              mapping: "$.data.remainingBalance"
            - name: next_payment_date
              type: string
              mapping: "$.data.nextPaymentDate"
  consumes:
    - type: http
      namespace: loan-system
      baseUri: "https://api.rabobank.nl/internal/lending/v2"
      authentication:
        type: bearer
        token: "$secrets.loan_origination_token"
      resources:
        - name: schedules
          path: "/loans/{{loan_id}}/schedule"
          inputParameters:
            - name: loan_id
              in: path
          operations:
            - name: get-schedule
              method: GET

Processes a loan restructuring request by pulling the current loan terms, running a restructuring analysis in the credit engine, creating the restructured terms, and notifying the borrower via Salesforce Marketing Cloud.

naftiko: "0.5"
info:
  label: "Loan Restructuring Orchestrator"
  description: "Processes a loan restructuring request by pulling the current loan terms, running a restructuring analysis in the credit engine, creating the restructured terms, and notifying the borrower via Salesforce Marketing Cloud."
  tags:
    - agricultural-lending
    - risk
    - banking
    - salesforce-marketing-cloud
capability:
  exposes:
    - type: mcp
      namespace: loan-restructuring
      port: 8080
      tools:
        - name: restructure-loan
          description: "Given a loan ID and restructuring request, analyze, create new terms, and notify borrower."
          inputParameters:
            - name: loan_id
              in: body
              type: string
              description: "The loan identifier."
            - name: restructuring_type
              in: body
              type: string
              description: "Type (term_extension, rate_reduction, payment_holiday, principal_reduction)."
          steps:
            - name: get-current-terms
              type: call
              call: "loan-system.get-loan"
              with:
                loan_id: "{{loan_id}}"
            - name: run-analysis
              type: call
              call: "credit-risk-engine.analyze-restructuring"
              with:
                loan_id: "{{loan_id}}"
                type: "{{restructuring_type}}"
                current_balance: "{{get-current-terms.outstanding_balance}}"
            - name: apply-restructuring
              type: call
              call: "loan-system.apply-restructuring"
              with:
                loan_id: "{{loan_id}}"
                new_terms: "{{run-analysis.proposed_terms}}"
            - name: notify-borrower
              type: call
              call: "sfmc.send-email"
              with:
                template: "loan_restructuring"
                to: "{{get-current-terms.customer_email}}"
                merge_loan_id: "{{loan_id}}"
                merge_new_terms: "{{run-analysis.proposed_terms}}"
  consumes:
    - type: http
      namespace: loan-system
      baseUri: "https://api.rabobank.nl/internal/lending/v2"
      authentication:
        type: bearer
        token: "$secrets.loan_origination_token"
      resources:
        - name: loans
          path: "/loans/{{loan_id}}"
          inputParameters:
            - name: loan_id
              in: path
          operations:
            - name: get-loan
              method: GET
        - name: restructuring
          path: "/loans/{{loan_id}}/restructure"
          inputParameters:
            - name: loan_id
              in: path
          operations:
            - name: apply-restructuring
              method: POST
    - type: http
      namespace: credit-risk-engine
      baseUri: "https://api.rabobank.nl/internal/risk/v2"
      authentication:
        type: bearer
        token: "$secrets.risk_engine_token"
      resources:
        - name: restructuring-analysis
          path: "/restructuring-analyses"
          operations:
            - name: analyze-restructuring
              method: POST
    - type: http
      namespace: sfmc
      baseUri: "https://mc.rabobank.nl/rest"
      authentication:
        type: bearer
        token: "$secrets.sfmc_token"
      resources:
        - name: emails
          path: "/messaging/v1/email/messages"
          operations:
            - name: send-email
              method: POST

Records a mobile banking app event for analytics purposes, logging the event type, user session, and feature used in the analytics platform.

naftiko: "0.5"
info:
  label: "Mobile Banking App Event Tracking"
  description: "Records a mobile banking app event for analytics purposes, logging the event type, user session, and feature used in the analytics platform."
  tags:
    - banking
    - mobile
    - analytics
capability:
  exposes:
    - type: mcp
      namespace: mobile-analytics
      port: 8080
      tools:
        - name: track-app-event
          description: "Record a mobile banking app event for analytics."
          inputParameters:
            - name: customer_id
              in: body
              type: string
              description: "The customer identifier."
            - name: event_type
              in: body
              type: string
              description: "Event type (login, transfer, balance_check, payment)."
            - name: feature
              in: body
              type: string
              description: "Feature used."
          call: "analytics-platform.track-event"
          with:
            user_id: "{{customer_id}}"
            event: "{{event_type}}"
            feature: "{{feature}}"
          outputParameters:
            - name: event_id
              type: string
              mapping: "$.data.eventId"
  consumes:
    - type: http
      namespace: analytics-platform
      baseUri: "https://api.rabobank.nl/internal/analytics/v1"
      authentication:
        type: bearer
        token: "$secrets.analytics_token"
      resources:
        - name: events
          path: "/events"
          operations:
            - name: track-event
              method: POST

Processes a mortgage application by pulling the customer's income verification from the UWV, checking the property valuation via the Kadaster, running credit scoring, and creating the mortgage offer in the origination system.

naftiko: "0.5"
info:
  label: "Mortgage Application Processing Orchestrator"
  description: "Processes a mortgage application by pulling the customer's income verification from the UWV, checking the property valuation via the Kadaster, running credit scoring, and creating the mortgage offer in the origination system."
  tags:
    - banking
    - mortgage
    - uwv
    - kadaster
capability:
  exposes:
    - type: mcp
      namespace: mortgage
      port: 8080
      tools:
        - name: process-mortgage-application
          description: "Given customer and property details, verify income, check property value, score credit, and create offer."
          inputParameters:
            - name: customer_id
              in: body
              type: string
              description: "The customer identifier."
            - name: property_address
              in: body
              type: string
              description: "The property address."
            - name: requested_amount
              in: body
              type: string
              description: "Requested mortgage amount in EUR."
          steps:
            - name: verify-income
              type: call
              call: "uwv.get-income-verification"
              with:
                bsn: "{{customer_id}}"
            - name: get-property-value
              type: call
              call: "kadaster.get-woz-value"
              with:
                address: "{{property_address}}"
            - name: run-credit-check
              type: call
              call: "credit-risk-engine.assess-mortgage-risk"
              with:
                customer_id: "{{customer_id}}"
                income: "{{verify-income.annual_income}}"
                property_value: "{{get-property-value.woz_value}}"
                loan_amount: "{{requested_amount}}"
            - name: create-offer
              type: call
              call: "mortgage-origination.create-offer"
              with:
                customer_id: "{{customer_id}}"
                amount: "{{requested_amount}}"
                ltv: "{{run-credit-check.ltv_ratio}}"
                rate: "{{run-credit-check.offered_rate}}"
  consumes:
    - type: http
      namespace: uwv
      baseUri: "https://api.uwv.nl/v1"
      authentication:
        type: bearer
        token: "$secrets.uwv_token"
      resources:
        - name: income
          path: "/income-verifications"
          operations:
            - name: get-income-verification
              method: POST
    - type: http
      namespace: kadaster
      baseUri: "https://api.kadaster.nl/v2"
      authentication:
        type: bearer
        token: "$secrets.kadaster_token"
      resources:
        - name: woz
          path: "/woz-values"
          inputParameters:
            - name: address
              in: query
          operations:
            - name: get-woz-value
              method: GET
    - type: http
      namespace: credit-risk-engine
      baseUri: "https://api.rabobank.nl/internal/risk/v2"
      authentication:
        type: bearer
        token: "$secrets.risk_engine_token"
      resources:
        - name: mortgage-risk
          path: "/mortgage-risk-assessments"
          operations:
            - name: assess-mortgage-risk
              method: POST
    - type: http
      namespace: mortgage-origination
      baseUri: "https://api.rabobank.nl/internal/mortgage/v2"
      authentication:
        type: bearer
        token: "$secrets.mortgage_token"
      resources:
        - name: offers
          path: "/offers"
          operations:
            - name: create-offer
              method: POST

Retrieves mortgage rate schedule lookup data from the Rabobank agricultural banking systems.

naftiko: "0.5"
info:
  label: "Mortgage Rate Schedule Lookup"
  description: "Retrieves mortgage rate schedule lookup data from the Rabobank agricultural banking systems."
  tags:
    - mortgage
    - rabobank
    - lookup
capability:
  exposes:
    - type: mcp
      namespace: mortgage
      port: 8080
      tools:
        - name: mortgage-rate-schedule-lookup
          description: "Retrieves mortgage rate schedule lookup data from the Rabobank agricultural banking systems."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The input id."
          call: "rabobank.mortgage-rate-schedule-lookup"
          with:
            input_id: "{{input_id}}"
          outputParameters:
            - name: result
              type: string
              mapping: "$.data"
            - name: status
              type: string
              mapping: "$.status"
  consumes:
    - type: http
      namespace: rabobank
      baseUri: "https://api.rabobank.nl/v2"
      authentication:
        type: bearer
        token: "$secrets.rabobank_api_token"
      resources:
        - name: resource
          path: "/mortgage/rate/schedule/lookup/{{input_id}}"
          inputParameters:
            - name: input_id
              in: path
          operations:
            - name: mortgage-rate-schedule-lookup
              method: GET

Opens a new business bank account by verifying the company through KvK, running KYC screening, creating the account in the core banking system, and sending the welcome pack via Salesforce Marketing Cloud.

naftiko: "0.5"
info:
  label: "New Business Account Opening Orchestrator"
  description: "Opens a new business bank account by verifying the company through KvK, running KYC screening, creating the account in the core banking system, and sending the welcome pack via Salesforce Marketing Cloud."
  tags:
    - banking
    - onboarding
    - kvk
    - core-banking
    - salesforce-marketing-cloud
capability:
  exposes:
    - type: mcp
      namespace: business-onboarding
      port: 8080
      tools:
        - name: open-business-account
          description: "Given a KvK number and authorized representative, verify company, run KYC, create account, and send welcome."
          inputParameters:
            - name: kvk_number
              in: body
              type: string
              description: "The Dutch Chamber of Commerce (KvK) number."
            - name: representative_name
              in: body
              type: string
              description: "Name of the authorized representative."
            - name: email
              in: body
              type: string
              description: "Business email address."
            - name: account_type
              in: body
              type: string
              description: "Account type (current, savings, combined)."
          steps:
            - name: verify-company
              type: call
              call: "kvk.get-company"
              with:
                kvk_number: "{{kvk_number}}"
            - name: run-kyc
              type: call
              call: "compliance-system.quick-kyc"
              with:
                company_name: "{{verify-company.company_name}}"
                kvk_number: "{{kvk_number}}"
                representative: "{{representative_name}}"
            - name: create-account
              type: call
              call: "core-banking.create-business-account"
              with:
                kvk_number: "{{kvk_number}}"
                company_name: "{{verify-company.company_name}}"
                account_type: "{{account_type}}"
                kyc_status: "{{run-kyc.status}}"
            - name: send-welcome
              type: call
              call: "sfmc.send-email"
              with:
                template: "business_welcome"
                to: "{{email}}"
                merge_company: "{{verify-company.company_name}}"
                merge_iban: "{{create-account.iban}}"
  consumes:
    - type: http
      namespace: kvk
      baseUri: "https://api.kvk.nl/api/v1"
      authentication:
        type: bearer
        token: "$secrets.kvk_token"
      resources:
        - name: companies
          path: "/basisprofielen/{{kvk_number}}"
          inputParameters:
            - name: kvk_number
              in: path
          operations:
            - name: get-company
              method: GET
    - type: http
      namespace: compliance-system
      baseUri: "https://api.rabobank.nl/internal/compliance/v1"
      authentication:
        type: bearer
        token: "$secrets.compliance_token"
      resources:
        - name: kyc
          path: "/quick-kyc"
          operations:
            - name: quick-kyc
              method: POST
    - type: http
      namespace: core-banking
      baseUri: "https://api.rabobank.nl/internal/cbs/v2"
      authentication:
        type: bearer
        token: "$secrets.core_banking_token"
      resources:
        - name: accounts
          path: "/business-accounts"
          operations:
            - name: create-business-account
              method: POST
    - type: http
      namespace: sfmc
      baseUri: "https://mc.rabobank.nl/rest"
      authentication:
        type: bearer
        token: "$secrets.sfmc_token"
      resources:
        - name: emails
          path: "/messaging/v1/email/messages"
          operations:
            - name: send-email
              method: POST

Orchestrates payment fraud detection pipeline across agricultural banking systems, coordinating multiple services and notifying stakeholders.

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

Integrates precision agriculture data by pulling soil sensor readings from the farm IoT platform, weather data from KNMI, and combining them with the farmer's financial profile to update the lending risk assessment.

naftiko: "0.5"
info:
  label: "Precision Agriculture Data Integration Orchestrator"
  description: "Integrates precision agriculture data by pulling soil sensor readings from the farm IoT platform, weather data from KNMI, and combining them with the farmer's financial profile to update the lending risk assessment."
  tags:
    - agricultural-lending
    - iot
    - knmi
    - risk
capability:
  exposes:
    - type: mcp
      namespace: precision-ag
      port: 8080
      tools:
        - name: integrate-precision-ag-data
          description: "Given a farmer ID, pull IoT sensor data, weather data, and update risk assessment."
          inputParameters:
            - name: farmer_id
              in: body
              type: string
              description: "The farmer identifier."
            - name: farm_id
              in: body
              type: string
              description: "The farm/field identifier."
          steps:
            - name: get-sensor-data
              type: call
              call: "iot-platform.get-soil-readings"
              with:
                farm_id: "{{farm_id}}"
            - name: get-weather
              type: call
              call: "knmi.get-forecast"
              with:
                region: "{{get-sensor-data.region}}"
                period: "next_30_days"
            - name: update-risk
              type: call
              call: "credit-risk-engine.update-agri-risk"
              with:
                farmer_id: "{{farmer_id}}"
                soil_moisture: "{{get-sensor-data.soil_moisture}}"
                soil_ph: "{{get-sensor-data.soil_ph}}"
                weather_risk: "{{get-weather.risk_index}}"
  consumes:
    - type: http
      namespace: iot-platform
      baseUri: "https://api.rabobank.nl/internal/agri-iot/v1"
      authentication:
        type: bearer
        token: "$secrets.iot_token"
      resources:
        - name: soil
          path: "/farms/{{farm_id}}/soil-readings"
          inputParameters:
            - name: farm_id
              in: path
          operations:
            - name: get-soil-readings
              method: GET
    - type: http
      namespace: knmi
      baseUri: "https://api.knmi.nl/open-data/v1"
      authentication:
        type: bearer
        token: "$secrets.knmi_token"
      resources:
        - name: forecasts
          path: "/forecasts"
          inputParameters:
            - name: region
              in: query
            - name: period
              in: query
          operations:
            - name: get-forecast
              method: GET
    - type: http
      namespace: credit-risk-engine
      baseUri: "https://api.rabobank.nl/internal/risk/v2"
      authentication:
        type: bearer
        token: "$secrets.risk_engine_token"
      resources:
        - name: agri-risk
          path: "/agri-risk-updates"
          operations:
            - name: update-agri-risk
              method: POST

Orchestrates precision farming data pipeline across agricultural banking systems, coordinating multiple services and notifying stakeholders.

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

Creates a PSD2 account access consent for third-party providers, returning the consent ID, allowed access scopes, and expiration date.

naftiko: "0.5"
info:
  label: "PSD2 Account Access Consent"
  description: "Creates a PSD2 account access consent for third-party providers, returning the consent ID, allowed access scopes, and expiration date."
  tags:
    - banking
    - psd2
    - open-banking
capability:
  exposes:
    - type: mcp
      namespace: open-banking
      port: 8080
      tools:
        - name: create-account-consent
          description: "Create a PSD2 account access consent for a TPP."
          inputParameters:
            - name: tpp_id
              in: body
              type: string
              description: "The third-party provider identifier."
            - name: account_iban
              in: body
              type: string
              description: "The customer's IBAN."
            - name: scopes
              in: body
              type: string
              description: "Access scopes (balances, transactions, details)."
          call: "psd2-gateway.create-consent"
          with:
            tpp_id: "{{tpp_id}}"
            iban: "{{account_iban}}"
            access_scopes: "{{scopes}}"
          outputParameters:
            - name: consent_id
              type: string
              mapping: "$.data.consentId"
            - name: expiration
              type: string
              mapping: "$.data.expirationDate"
  consumes:
    - type: http
      namespace: psd2-gateway
      baseUri: "https://api.rabobank.nl/openapi/psd2/v3"
      authentication:
        type: bearer
        token: "$secrets.psd2_gateway_token"
      resources:
        - name: consents
          path: "/consents"
          operations:
            - name: create-consent
              method: POST

Orchestrates psd2 consent management pipeline across agricultural banking systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Psd2 Consent Management Pipeline"
  description: "Orchestrates psd2 consent management pipeline across agricultural banking systems, coordinating multiple services and notifying stakeholders."
  tags:
    - psd2
    - rabobank
    - teams
    - sap
    - confluence
capability:
  exposes:
    - type: mcp
      namespace: psd2
      port: 8080
      tools:
        - name: psd2-consent-management-pipeline
          description: "Orchestrates psd2 consent management pipeline across agricultural banking systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "teams.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "sap.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "confluence.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: teams
      baseUri: "https://graph.microsoft.com/v1.0"
      authentication:
        type: bearer
        token: "$secrets.teams_token"
      resources:
        - name: teams-resource
          path: "/api/psd2"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: sap
      baseUri: "https://rabobank-erp.s4hana.ondemand.com/api/v1"
      authentication:
        type: bearer
        token: "$secrets.sap_token"
      resources:
        - name: sap-resource
          path: "/api/psd2"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: confluence
      baseUri: "https://rabobank.atlassian.net/wiki/rest/api"
      authentication:
        type: bearer
        token: "$secrets.confluence_token"
      resources:
        - name: confluence-resource
          path: "/api/psd2"
          operations:
            - name: execute-3
              method: POST

Retrieves the bank's regulatory capital metrics from the risk reporting system, returning CET1 ratio, total capital ratio, leverage ratio, and risk-weighted assets.

naftiko: "0.5"
info:
  label: "Regulatory Capital Report"
  description: "Retrieves the bank's regulatory capital metrics from the risk reporting system, returning CET1 ratio, total capital ratio, leverage ratio, and risk-weighted assets."
  tags:
    - risk
    - compliance
    - regulatory
capability:
  exposes:
    - type: mcp
      namespace: regulatory-capital
      port: 8080
      tools:
        - name: get-capital-metrics
          description: "Retrieve regulatory capital metrics from the risk reporting system."
          inputParameters:
            - name: reporting_date
              in: body
              type: string
              description: "Reporting date in YYYY-MM-DD format."
          call: "risk-reporting.get-capital"
          with:
            date: "{{reporting_date}}"
          outputParameters:
            - name: cet1_ratio
              type: string
              mapping: "$.data.cet1Ratio"
            - name: total_capital_ratio
              type: string
              mapping: "$.data.totalCapitalRatio"
            - name: leverage_ratio
              type: string
              mapping: "$.data.leverageRatio"
            - name: rwa
              type: string
              mapping: "$.data.riskWeightedAssets"
  consumes:
    - type: http
      namespace: risk-reporting
      baseUri: "https://api.rabobank.nl/internal/risk-reporting/v2"
      authentication:
        type: bearer
        token: "$secrets.risk_reporting_token"
      resources:
        - name: capital
          path: "/capital-metrics"
          inputParameters:
            - name: date
              in: query
          operations:
            - name: get-capital
              method: GET

Orchestrates regulatory capital reporting pipeline across agricultural banking systems, coordinating multiple services and notifying stakeholders.

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

Compiles and submits regulatory reports to the Dutch Central Bank (DNB) by pulling data from the risk reporting system, validating against the reporting taxonomy, and submitting via the DNB portal.

naftiko: "0.5"
info:
  label: "Regulatory Reporting Submission Orchestrator"
  description: "Compiles and submits regulatory reports to the Dutch Central Bank (DNB) by pulling data from the risk reporting system, validating against the reporting taxonomy, and submitting via the DNB portal."
  tags:
    - compliance
    - regulatory
    - risk
capability:
  exposes:
    - type: mcp
      namespace: regulatory-reporting
      port: 8080
      tools:
        - name: submit-dnb-report
          description: "Given a report type and period, compile data, validate, and submit to DNB."
          inputParameters:
            - name: report_type
              in: body
              type: string
              description: "Report type (corep, finrep, liquidity, large_exposures)."
            - name: reporting_period
              in: body
              type: string
              description: "Reporting period in YYYY-Q# format."
          steps:
            - name: compile-data
              type: call
              call: "risk-reporting.compile-report"
              with:
                type: "{{report_type}}"
                period: "{{reporting_period}}"
            - name: validate-taxonomy
              type: call
              call: "risk-reporting.validate-xbrl"
              with:
                report_id: "{{compile-data.report_id}}"
            - name: submit-to-dnb
              type: call
              call: "dnb-portal.submit-report"
              with:
                report_id: "{{compile-data.report_id}}"
                type: "{{report_type}}"
                validation_status: "{{validate-taxonomy.status}}"
  consumes:
    - type: http
      namespace: risk-reporting
      baseUri: "https://api.rabobank.nl/internal/risk-reporting/v2"
      authentication:
        type: bearer
        token: "$secrets.risk_reporting_token"
      resources:
        - name: reports
          path: "/reports"
          operations:
            - name: compile-report
              method: POST
        - name: validation
          path: "/reports/{{report_id}}/validate"
          inputParameters:
            - name: report_id
              in: path
          operations:
            - name: validate-xbrl
              method: POST
    - type: http
      namespace: dnb-portal
      baseUri: "https://api.dnb.nl/reporting/v1"
      authentication:
        type: bearer
        token: "$secrets.dnb_token"
      resources:
        - name: submissions
          path: "/submissions"
          operations:
            - name: submit-report
              method: POST

Orchestrates regulatory stress test pipeline across agricultural banking systems, coordinating multiple services and notifying stakeholders.

naftiko: "0.5"
info:
  label: "Regulatory Stress Test Pipeline"
  description: "Orchestrates regulatory stress test pipeline across agricultural banking systems, coordinating multiple services and notifying stakeholders."
  tags:
    - regulatory
    - rabobank
    - bloomberg
    - rabobank
    - salesforce
capability:
  exposes:
    - type: mcp
      namespace: regulatory
      port: 8080
      tools:
        - name: regulatory-stress-test-pipeline
          description: "Orchestrates regulatory stress test pipeline across agricultural banking systems, coordinating multiple services and notifying stakeholders."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The primary input identifier."
          steps:
            - name: step-1
              type: call
              call: "bloomberg.execute-1"
              with:
                input: "{{input_id}}"
            - name: step-2
              type: call
              call: "rabobank.execute-2"
              with:
                input: "{{input_id}}"
            - name: step-3
              type: call
              call: "salesforce.execute-3"
              with:
                input: "{{input_id}}"
  consumes:
    - type: http
      namespace: bloomberg
      baseUri: "https://api.bloomberg.com/v1"
      authentication:
        type: bearer
        token: "$secrets.bloomberg_token"
      resources:
        - name: bloomberg-resource
          path: "/api/regulatory"
          operations:
            - name: execute-1
              method: POST
    - type: http
      namespace: rabobank
      baseUri: "https://api.rabobank.nl/v2"
      authentication:
        type: bearer
        token: "$secrets.rabobank_api_token"
      resources:
        - name: rabobank-resource
          path: "/api/regulatory"
          operations:
            - name: execute-2
              method: POST
    - type: http
      namespace: salesforce
      baseUri: "https://rabobank.my.salesforce.com/services/data/v58.0"
      authentication:
        type: bearer
        token: "$secrets.salesforce_access_token"
      resources:
        - name: salesforce-resource
          path: "/api/regulatory"
          operations:
            - name: execute-3
              method: POST

Retrieves current interest rates for savings products from the product catalog, returning rate tier, applicable balance range, and annual percentage yield.

naftiko: "0.5"
info:
  label: "Savings Account Interest Rate Lookup"
  description: "Retrieves current interest rates for savings products from the product catalog, returning rate tier, applicable balance range, and annual percentage yield."
  tags:
    - banking
    - savings
    - rates
capability:
  exposes:
    - type: mcp
      namespace: product-rates
      port: 8080
      tools:
        - name: get-savings-rates
          description: "Look up current savings account interest rates by product type."
          inputParameters:
            - name: product_code
              in: body
              type: string
              description: "The savings product code."
          call: "product-catalog.get-rates"
          with:
            product_code: "{{product_code}}"
          outputParameters:
            - name: rate_tiers
              type: string
              mapping: "$.data.rateTiers"
            - name: base_rate
              type: string
              mapping: "$.data.baseRate"
  consumes:
    - type: http
      namespace: product-catalog
      baseUri: "https://api.rabobank.nl/internal/products/v1"
      authentication:
        type: bearer
        token: "$secrets.product_catalog_token"
      resources:
        - name: rates
          path: "/products/{{product_code}}/rates"
          inputParameters:
            - name: product_code
              in: path
          operations:
            - name: get-rates
              method: GET

Retrieves savings goal progress lookup data from the Rabobank agricultural banking systems.

naftiko: "0.5"
info:
  label: "Savings Goal Progress Lookup"
  description: "Retrieves savings goal progress lookup data from the Rabobank agricultural banking systems."
  tags:
    - savings
    - rabobank
    - lookup
capability:
  exposes:
    - type: mcp
      namespace: savings
      port: 8080
      tools:
        - name: savings-goal-progress-lookup
          description: "Retrieves savings goal progress lookup data from the Rabobank agricultural banking systems."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The input id."
          call: "rabobank.savings-goal-progress-lookup"
          with:
            input_id: "{{input_id}}"
          outputParameters:
            - name: result
              type: string
              mapping: "$.data"
            - name: status
              type: string
              mapping: "$.status"
  consumes:
    - type: http
      namespace: rabobank
      baseUri: "https://api.rabobank.nl/v2"
      authentication:
        type: bearer
        token: "$secrets.rabobank_api_token"
      resources:
        - name: resource
          path: "/savings/goal/progress/lookup/{{input_id}}"
          inputParameters:
            - name: input_id
              in: path
          operations:
            - name: savings-goal-progress-lookup
              method: GET

Initiates a SEPA credit transfer payment through the payment processing system, accepting debtor IBAN, creditor IBAN, amount, and reference, returning the payment status and end-to-end ID.

naftiko: "0.5"
info:
  label: "SEPA Payment Initiation"
  description: "Initiates a SEPA credit transfer payment through the payment processing system, accepting debtor IBAN, creditor IBAN, amount, and reference, returning the payment status and end-to-end ID."
  tags:
    - payments
    - sepa
    - banking
capability:
  exposes:
    - type: mcp
      namespace: payments
      port: 8080
      tools:
        - name: initiate-sepa-transfer
          description: "Initiate a SEPA credit transfer payment."
          inputParameters:
            - name: debtor_iban
              in: body
              type: string
              description: "The debtor's IBAN."
            - name: creditor_iban
              in: body
              type: string
              description: "The creditor's IBAN."
            - name: amount
              in: body
              type: string
              description: "Payment amount in EUR."
            - name: reference
              in: body
              type: string
              description: "Payment reference text."
          call: "payment-engine.create-sepa-transfer"
          with:
            debtor_iban: "{{debtor_iban}}"
            creditor_iban: "{{creditor_iban}}"
            amount: "{{amount}}"
            currency: "EUR"
            reference: "{{reference}}"
          outputParameters:
            - name: payment_status
              type: string
              mapping: "$.data.status"
            - name: end_to_end_id
              type: string
              mapping: "$.data.endToEndId"
  consumes:
    - type: http
      namespace: payment-engine
      baseUri: "https://api.rabobank.nl/internal/payments/v3"
      authentication:
        type: bearer
        token: "$secrets.payment_engine_token"
      resources:
        - name: transfers
          path: "/sepa-credit-transfers"
          operations:
            - name: create-sepa-transfer
              method: POST

Retrieves the status of an SME overdraft facility, returning the approved limit, current utilization, available headroom, and review date.

naftiko: "0.5"
info:
  label: "SME Overdraft Facility Lookup"
  description: "Retrieves the status of an SME overdraft facility, returning the approved limit, current utilization, available headroom, and review date."
  tags:
    - banking
    - lending
    - sme
capability:
  exposes:
    - type: mcp
      namespace: sme-lending
      port: 8080
      tools:
        - name: get-overdraft-status
          description: "Check the status of an SME overdraft facility."
          inputParameters:
            - name: facility_id
              in: body
              type: string
              description: "The overdraft facility identifier."
          call: "loan-system.get-facility"
          with:
            facility_id: "{{facility_id}}"
          outputParameters:
            - name: approved_limit
              type: string
              mapping: "$.data.approvedLimit"
            - name: current_utilization
              type: string
              mapping: "$.data.currentUtilization"
            - name: available_headroom
              type: string
              mapping: "$.data.availableHeadroom"
            - name: review_date
              type: string
              mapping: "$.data.nextReviewDate"
  consumes:
    - type: http
      namespace: loan-system
      baseUri: "https://api.rabobank.nl/internal/lending/v2"
      authentication:
        type: bearer
        token: "$secrets.loan_origination_token"
      resources:
        - name: facilities
          path: "/facilities/{{facility_id}}"
          inputParameters:
            - name: facility_id
              in: path
          operations:
            - name: get-facility
              method: GET

When the transaction monitoring system flags a suspicious transaction, pulls the transaction and customer details, files a report in the compliance system, creates an investigation case in ServiceNow, and alerts the AML team in Slack.

naftiko: "0.5"
info:
  label: "Suspicious Transaction Alert Orchestrator"
  description: "When the transaction monitoring system flags a suspicious transaction, pulls the transaction and customer details, files a report in the compliance system, creates an investigation case in ServiceNow, and alerts the AML team in Slack."
  tags:
    - risk
    - aml
    - compliance
    - servicenow
    - slack
capability:
  exposes:
    - type: mcp
      namespace: aml-monitoring
      port: 8080
      tools:
        - name: process-suspicious-alert
          description: "Given a transaction alert ID, pull details, file compliance report, create investigation, and notify AML team."
          inputParameters:
            - name: alert_id
              in: body
              type: string
              description: "The transaction monitoring alert identifier."
          steps:
            - name: get-alert
              type: call
              call: "txn-monitoring.get-alert"
              with:
                alert_id: "{{alert_id}}"
            - name: get-customer
              type: call
              call: "customer-file.get-customer"
              with:
                customer_id: "{{get-alert.customer_id}}"
            - name: file-report
              type: call
              call: "compliance-system.create-str"
              with:
                alert_id: "{{alert_id}}"
                customer_id: "{{get-alert.customer_id}}"
                transaction_amount: "{{get-alert.amount}}"
                risk_indicators: "{{get-alert.indicators}}"
            - name: create-investigation
              type: call
              call: "servicenow.create-case"
              with:
                short_description: "AML Investigation: Alert {{alert_id}}"
                description: "Customer: {{get-customer.name}}. Amount: EUR {{get-alert.amount}}. Indicators: {{get-alert.indicators}}. STR: {{file-report.str_id}}."
                assignment_group: "AML_Investigations"
            - name: alert-team
              type: call
              call: "slack.post-message"
              with:
                channel: "#aml-alerts"
                text: "Suspicious alert {{alert_id}}: Customer {{get-customer.name}}, EUR {{get-alert.amount}}. STR filed: {{file-report.str_id}}. Investigation: {{create-investigation.number}}."
  consumes:
    - type: http
      namespace: txn-monitoring
      baseUri: "https://api.rabobank.nl/internal/txn-monitoring/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: customer-file
      baseUri: "https://api.rabobank.nl/internal/customer/v2"
      authentication:
        type: bearer
        token: "$secrets.customer_file_token"
      resources:
        - name: customers
          path: "/customers/{{customer_id}}"
          inputParameters:
            - name: customer_id
              in: path
          operations:
            - name: get-customer
              method: GET
    - type: http
      namespace: compliance-system
      baseUri: "https://api.rabobank.nl/internal/compliance/v1"
      authentication:
        type: bearer
        token: "$secrets.compliance_token"
      resources:
        - name: strs
          path: "/suspicious-transaction-reports"
          operations:
            - name: create-str
              method: POST
    - type: http
      namespace: servicenow
      baseUri: "https://rabobank.service-now.com/api/now"
      authentication:
        type: basic
        username: "$secrets.servicenow_user"
        password: "$secrets.servicenow_password"
      resources:
        - name: cases
          path: "/table/sn_si_case"
          operations:
            - name: create-case
              method: POST
    - type: http
      namespace: slack
      baseUri: "https://slack.com/api"
      authentication:
        type: bearer
        token: "$secrets.slack_bot_token"
      resources:
        - name: messages
          path: "/chat.postMessage"
          operations:
            - name: post-message
              method: POST

Retrieves sustainability score lookup data from the Rabobank agricultural banking systems.

naftiko: "0.5"
info:
  label: "Sustainability Score Lookup"
  description: "Retrieves sustainability score lookup data from the Rabobank agricultural banking systems."
  tags:
    - sustainability
    - rabobank
    - lookup
capability:
  exposes:
    - type: mcp
      namespace: sustainability
      port: 8080
      tools:
        - name: sustainability-score-lookup
          description: "Retrieves sustainability score lookup data from the Rabobank agricultural banking systems."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The input id."
          call: "rabobank.sustainability-score-lookup"
          with:
            input_id: "{{input_id}}"
          outputParameters:
            - name: result
              type: string
              mapping: "$.data"
            - name: status
              type: string
              mapping: "$.status"
  consumes:
    - type: http
      namespace: rabobank
      baseUri: "https://api.rabobank.nl/v2"
      authentication:
        type: bearer
        token: "$secrets.rabobank_api_token"
      resources:
        - name: resource
          path: "/sustainability/score/lookup/{{input_id}}"
          inputParameters:
            - name: input_id
              in: path
          operations:
            - name: sustainability-score-lookup
              method: GET

Processes a sustainable farming loan with preferential rates by verifying the farm's sustainability certification, pulling the environmental score, calculating the green discount, and creating the loan application.

naftiko: "0.5"
info:
  label: "Sustainable Farming Loan Orchestrator"
  description: "Processes a sustainable farming loan with preferential rates by verifying the farm's sustainability certification, pulling the environmental score, calculating the green discount, and creating the loan application."
  tags:
    - agricultural-lending
    - sustainability
    - green-finance
capability:
  exposes:
    - type: mcp
      namespace: green-lending
      port: 8080
      tools:
        - name: originate-green-loan
          description: "Given a farmer ID and sustainability cert, verify certification, calculate green discount, and create loan."
          inputParameters:
            - name: farmer_id
              in: body
              type: string
              description: "The farmer identifier."
            - name: cert_id
              in: body
              type: string
              description: "Sustainability certification ID."
            - name: requested_amount
              in: body
              type: string
              description: "Loan amount requested."
          steps:
            - name: verify-cert
              type: call
              call: "sustainability-platform.verify-certification"
              with:
                farmer_id: "{{farmer_id}}"
                cert_id: "{{cert_id}}"
            - name: get-env-score
              type: call
              call: "sustainability-platform.get-environmental-score"
              with:
                farmer_id: "{{farmer_id}}"
            - name: create-application
              type: call
              call: "loan-origination.create-green-application"
              with:
                customer_id: "{{farmer_id}}"
                amount: "{{requested_amount}}"
                sustainability_score: "{{get-env-score.score}}"
                cert_verified: "{{verify-cert.valid}}"
  consumes:
    - type: http
      namespace: sustainability-platform
      baseUri: "https://api.rabobank.nl/internal/sustainability/v1"
      authentication:
        type: bearer
        token: "$secrets.sustainability_token"
      resources:
        - name: certifications
          path: "/certifications/verify"
          operations:
            - name: verify-certification
              method: POST
        - name: scores
          path: "/farmers/{{farmer_id}}/environmental-score"
          inputParameters:
            - name: farmer_id
              in: path
          operations:
            - name: get-environmental-score
              method: GET
    - type: http
      namespace: loan-origination
      baseUri: "https://api.rabobank.nl/internal/lending/v2"
      authentication:
        type: bearer
        token: "$secrets.loan_origination_token"
      resources:
        - name: green-applications
          path: "/green-applications"
          operations:
            - name: create-green-application
              method: POST

Retrieves trade finance document status data from the Rabobank agricultural banking systems.

naftiko: "0.5"
info:
  label: "Trade Finance Document Status"
  description: "Retrieves trade finance document status data from the Rabobank agricultural banking systems."
  tags:
    - trade
    - rabobank
    - status
capability:
  exposes:
    - type: mcp
      namespace: trade
      port: 8080
      tools:
        - name: trade-finance-document-status
          description: "Retrieves trade finance document status data from the Rabobank agricultural banking systems."
          inputParameters:
            - name: input_id
              in: body
              type: string
              description: "The input id."
          call: "rabobank.trade-finance-document-status"
          with:
            input_id: "{{input_id}}"
          outputParameters:
            - name: result
              type: string
              mapping: "$.data"
            - name: status
              type: string
              mapping: "$.status"
  consumes:
    - type: http
      namespace: rabobank
      baseUri: "https://api.rabobank.nl/v2"
      authentication:
        type: bearer
        token: "$secrets.rabobank_api_token"
      resources:
        - name: resource
          path: "/trade/finance/document/status/{{input_id}}"
          inputParameters:
            - name: input_id
              in: path
          operations:
            - name: trade-finance-document-status
              method: GET

Checks the status of a trade finance letter of credit from the trade finance system, returning LC status, beneficiary, amount, expiry date, and documents presented.

naftiko: "0.5"
info:
  label: "Trade Finance Letter of Credit Status"
  description: "Checks the status of a trade finance letter of credit from the trade finance system, returning LC status, beneficiary, amount, expiry date, and documents presented."
  tags:
    - banking
    - trade-finance
capability:
  exposes:
    - type: mcp
      namespace: trade-finance
      port: 8080
      tools:
        - name: get-lc-status
          description: "Look up a letter of credit by LC number."
          inputParameters:
            - name: lc_number
              in: body
              type: string
              description: "The letter of credit number."
          call: "trade-finance-system.get-lc"
          with:
            lc_number: "{{lc_number}}"
          outputParameters:
            - name: status
              type: string
              mapping: "$.data.lcStatus"
            - name: beneficiary
              type: string
              mapping: "$.data.beneficiaryName"
            - name: amount
              type: string
              mapping: "$.data.amount"
            - name: expiry_date
              type: string
              mapping: "$.data.expiryDate"
  consumes:
    - type: http
      namespace: trade-finance-system
      baseUri: "https://api.rabobank.nl/internal/trade-finance/v2"
      authentication:
        type: bearer
        token: "$secrets.trade_finance_token"
      resources:
        - name: lcs
          path: "/letters-of-credit/{{lc_number}}"
          inputParameters:
            - name: lc_number
              in: path
          operations:
            - name: get-lc
              method: GET

Retrieves the daily cash position across all treasury accounts from the treasury management system, returning total cash, currency breakdown, and net position.

naftiko: "0.5"
info:
  label: "Treasury Cash Position Report"
  description: "Retrieves the daily cash position across all treasury accounts from the treasury management system, returning total cash, currency breakdown, and net position."
  tags:
    - banking
    - treasury
capability:
  exposes:
    - type: mcp
      namespace: treasury
      port: 8080
      tools:
        - name: get-cash-position
          description: "Retrieve the daily treasury cash position across all accounts."
          inputParameters:
            - name: as_of_date
              in: body
              type: string
              description: "Position date in YYYY-MM-DD format."
          call: "treasury-system.get-cash-position"
          with:
            date: "{{as_of_date}}"
          outputParameters:
            - name: total_cash_eur
              type: string
              mapping: "$.data.totalCashEUR"
            - name: currency_breakdown
              type: string
              mapping: "$.data.currencyBreakdown"
            - name: net_position
              type: string
              mapping: "$.data.netPosition"
  consumes:
    - type: http
      namespace: treasury-system
      baseUri: "https://api.rabobank.nl/internal/treasury/v2"
      authentication:
        type: bearer
        token: "$secrets.treasury_token"
      resources:
        - name: positions
          path: "/cash-positions"
          inputParameters:
            - name: date
              in: query
          operations:
            - name: get-cash-position
              method: GET