naftiko: 1.0.0-alpha2 info: label: Trioptima Portfolio Compression description: Workflow capability for automating OTC derivatives portfolio compression cycles via the triReduce API. Designed for derivatives operations teams, risk managers, and treasury systems that need to participate in multilateral compression cycles to reduce gross notional outstanding, lower counterparty risk, and optimize capital requirements under Basel III / CRR2. tags: - Capital Optimization - Compression - Derivatives - Financial Services - Post-Trade Services - Risk Management created: '2026-05-03' modified: '2026-05-06' binds: - namespace: env keys: TRIREDUCE_OAUTH_TOKEN: TRIREDUCE_OAUTH_TOKEN capability: consumes: - type: http namespace: trireduce baseUri: https://rates.trireduce.com/api/v1 description: triReduce portfolio compression API for OTC derivatives authentication: type: bearer token: '{{env.TRIREDUCE_OAUTH_TOKEN}}' resources: - name: cycles path: /cycles description: Compression cycle discovery and management operations: - name: list-cycles method: GET description: List available compression cycles filtered by status and type inputParameters: - name: status in: query type: string required: false description: Filter by cycle status (open, submission, optimization, completed) - name: type in: query type: string required: false description: Filter by cycle type (cleared, bilateral) outputRawFormat: json outputParameters: - name: result type: object value: $. - name: get-cycle method: GET description: Get detailed information about a specific compression cycle inputParameters: - name: cycleId in: path type: string required: true description: Unique cycle identifier outputRawFormat: json outputParameters: - name: result type: object value: $. - name: cycle-trades path: /cycles/{cycleId}/trades description: Trade submission and retrieval for compression cycles operations: - name: list-cycle-trades method: GET description: List trades submitted for a compression cycle inputParameters: - name: cycleId in: path type: string required: true description: Compression cycle identifier outputRawFormat: json outputParameters: - name: result type: object value: $. - name: submit-cycle-trades method: POST description: Submit trade population for a compression cycle inputParameters: - name: cycleId in: path type: string required: true description: Compression cycle identifier outputRawFormat: json outputParameters: - name: result type: object value: $. body: type: json data: trades: '{{tools.trades}}' - name: cycle-risk path: /cycles/{cycleId}/risk description: Risk data management for compression cycles operations: - name: get-cycle-risk method: GET description: Get risk data submitted for a compression cycle inputParameters: - name: cycleId in: path type: string required: true description: Compression cycle identifier outputRawFormat: json outputParameters: - name: result type: object value: $. - name: submit-cycle-risk method: POST description: Submit delta ladder risk constraints for compression inputParameters: - name: cycleId in: path type: string required: true description: Compression cycle identifier outputRawFormat: json outputParameters: - name: result type: object value: $. body: type: json data: currency: '{{tools.currency}}' deltaLadder: '{{tools.delta_ladder}}' - name: cycle-results path: /cycles/{cycleId}/results description: Compression results and confirmation operations: - name: get-cycle-results method: GET description: Get compression results including terminations and new trades inputParameters: - name: cycleId in: path type: string required: true description: Compression cycle identifier outputRawFormat: json outputParameters: - name: result type: object value: $. - name: confirm-cycle-results method: POST description: Confirm or reject compression results inputParameters: - name: cycleId in: path type: string required: true description: Compression cycle identifier outputRawFormat: json outputParameters: - name: result type: object value: $. body: type: json data: confirmed: '{{tools.confirmed}}' comment: '{{tools.comment}}' exposes: - type: rest port: 8080 namespace: portfolio-compression-api description: Unified REST API for automating OTC derivatives portfolio compression with triReduce. resources: - path: /v1/cycles name: cycles description: Discover and monitor compression cycles operations: - method: GET name: list-cycles description: List available compression cycles, optionally filtered by status call: trireduce.list-cycles with: status: rest.status type: rest.type outputParameters: - type: object mapping: $. - path: /v1/cycles/{cycleId} name: cycle description: Get details for a specific compression cycle operations: - method: GET name: get-cycle description: Get schedule, status, and participant count for a cycle call: trireduce.get-cycle with: cycleId: rest.cycleId outputParameters: - type: object mapping: $. - path: /v1/cycles/{cycleId}/trades name: trades description: Trade submission and review operations: - method: GET name: list-trades description: List trades submitted for a compression cycle call: trireduce.list-cycle-trades with: cycleId: rest.cycleId outputParameters: - type: object mapping: $. - method: POST name: submit-trades description: Submit trade population for compression call: trireduce.submit-cycle-trades with: cycleId: rest.cycleId trades: rest.body.trades outputParameters: - type: object mapping: $. - path: /v1/cycles/{cycleId}/risk name: risk description: Risk constraint management operations: - method: GET name: get-risk description: Get submitted delta ladder risk constraints call: trireduce.get-cycle-risk with: cycleId: rest.cycleId outputParameters: - type: object mapping: $. - method: POST name: submit-risk description: Submit delta ladder risk constraints call: trireduce.submit-cycle-risk with: cycleId: rest.cycleId currency: rest.body.currency delta_ladder: rest.body.deltaLadder outputParameters: - type: object mapping: $. - path: /v1/cycles/{cycleId}/results name: results description: Compression results and settlement confirmation operations: - method: GET name: get-results description: Get compression results including notional reduction and new trades call: trireduce.get-cycle-results with: cycleId: rest.cycleId outputParameters: - type: object mapping: $. - method: POST name: confirm-results description: Confirm or reject compression results for settlement call: trireduce.confirm-cycle-results with: cycleId: rest.cycleId confirmed: rest.body.confirmed comment: rest.body.comment outputParameters: - type: object mapping: $. - type: mcp port: 9090 namespace: portfolio-compression-mcp transport: http description: MCP server for AI-assisted OTC derivatives portfolio compression automation. tools: - name: list-compression-cycles description: List available triReduce compression cycles. Filter by status (open, submission, optimization, completed) or type (cleared, bilateral) to find cycles relevant to the participant. hints: readOnly: true openWorld: false call: trireduce.list-cycles with: status: tools.status type: tools.type outputParameters: - type: object mapping: $. - name: get-cycle-details description: Get full details for a specific compression cycle including submission deadline, optimization date, settlement date, and participant count. hints: readOnly: true openWorld: false call: trireduce.get-cycle with: cycleId: tools.cycleId outputParameters: - type: object mapping: $. - name: list-submitted-trades description: List trades submitted by the participant for a given compression cycle. hints: readOnly: true openWorld: false call: trireduce.list-cycle-trades with: cycleId: tools.cycleId outputParameters: - type: object mapping: $. - name: submit-trades-for-compression description: Submit or replace the participant's trade population for a compression cycle. Provide an array of trades with UTI, notional, currency, maturity, fixed rate, pay/receive direction, and clearing house. hints: readOnly: false destructive: false idempotent: false call: trireduce.submit-cycle-trades with: cycleId: tools.cycleId trades: tools.trades outputParameters: - type: object mapping: $. - name: get-risk-constraints description: Get the delta ladder risk constraints submitted for a compression cycle. hints: readOnly: true openWorld: false call: trireduce.get-cycle-risk with: cycleId: tools.cycleId outputParameters: - type: object mapping: $. - name: submit-risk-constraints description: Submit delta ladder (DV01 by tenor bucket) risk constraints for a compression cycle. The optimization algorithm will preserve the aggregate risk profile within the specified tolerances. hints: readOnly: false destructive: false idempotent: false call: trireduce.submit-cycle-risk with: cycleId: tools.cycleId currency: tools.currency delta_ladder: tools.delta_ladder outputParameters: - type: object mapping: $. - name: get-compression-results description: Get compression results for a completed cycle including notional reduction percentage, list of terminated trades, and replacement trades created by the optimization algorithm. hints: readOnly: true openWorld: false call: trireduce.get-cycle-results with: cycleId: tools.cycleId outputParameters: - type: object mapping: $. - name: confirm-compression-results description: Confirm acceptance of compression results to proceed to settlement. All cycle participants must confirm before terminations and new trades are processed. Set confirmed=false to reject with an optional comment. hints: readOnly: false destructive: false idempotent: true call: trireduce.confirm-cycle-results with: cycleId: tools.cycleId confirmed: tools.confirmed comment: tools.comment outputParameters: - type: object mapping: $.