naftiko: 1.0.0-alpha2 info: title: Aim Portfolio Tradeweb Cross Source Composer description: A composite capability that joins AIM + Valuation Service (BVAL) + Tradeweb into one shaped portfolio-context object. tags: [Naftiko, Bloomberg, Tradeweb, Portfolio] created: '2026-05-01' modified: '2026-05-04' binds: - namespace: bloomberg-env description: Bloomberg AIM and BVAL API credentials. keys: {BLOOMBERG_TOKEN: BLOOMBERG_TOKEN} - namespace: tradeweb-env description: Tradeweb Connect API credentials. keys: {TRADEWEB_TOKEN: TRADEWEB_TOKEN} capability: consumes: - namespace: aim type: http baseUri: https://api.bloomberg.com authentication: {type: bearer, token: '{{BLOOMBERG_TOKEN}}'} resources: - name: portfolio path: /eap/aim/v1/portfolios/{{portfolio_id}} operations: - {name: get-aim-portfolio, method: GET, inputParameters: [{name: portfolio_id, in: path}]} - namespace: bval type: http baseUri: https://api.bloomberg.com authentication: {type: bearer, token: '{{BLOOMBERG_TOKEN}}'} resources: - name: valuations path: /eap/bval/v1/valuations operations: - {name: get-bval-valuations, method: POST, description: Get valuations for a list of identifiers.} - namespace: tradeweb type: http baseUri: https://api.tradeweb.com authentication: {type: bearer, token: '{{TRADEWEB_TOKEN}}'} resources: - name: liquidity path: /v1/liquidity/{{security_id}} operations: - {name: get-tradeweb-liquidity, method: GET, inputParameters: [{name: security_id, in: path}]} exposes: - type: rest address: 0.0.0.0 port: 8080 namespace: aim-portfolio-tradeweb-cross-source-composer-rest description: Composed portfolio context spanning AIM positions, BVAL valuations, and Tradeweb liquidity. resources: - name: portfolio-context path: /portfolios/{{portfolio_id}}/context operations: - method: GET name: get-portfolio-context description: Return a single shaped object joining AIM positions, BVAL valuations, and Tradeweb liquidity. inputParameters: [{name: portfolio_id, in: path, type: string}] call: aim.get-aim-portfolio - type: mcp address: 0.0.0.0 port: 3010 namespace: aim-portfolio-tradeweb-cross-source-composer-mcp description: MCP server exposing the composed portfolio context as one tool. tools: - name: get-portfolio-context description: One-call composed portfolio context across AIM, BVAL, and Tradeweb. hints: {readOnly: true} inputParameters: [{name: portfolio_id, type: string, required: true}] call: aim.get-aim-portfolio - type: skill address: 0.0.0.0 port: 3011 namespace: aim-portfolio-tradeweb-cross-source-composer-skills description: Skill bundle for composed portfolio context. skills: - name: aim-portfolio-tradeweb-cross-source-composer description: Composed portfolio context across AIM + BVAL + Tradeweb. location: file:///opt/naftiko/skills/aim-portfolio-tradeweb-cross-source-composer allowed-tools: get-portfolio-context tools: - {name: get-portfolio-context, from: {sourceNamespace: aim-portfolio-tradeweb-cross-source-composer-mcp, action: get-portfolio-context}}