Naftiko · Capability

Aim Portfolio Tradeweb Cross Source Composer

A composite capability that joins AIM + Valuation Service (BVAL) + Tradeweb into one shaped portfolio-context object.

Run with Naftiko NaftikoBloombergTradewebPortfolio

What You Can Do

GET
Get portfolio context — Return a single shaped object joining AIM positions, BVAL valuations, and Tradeweb liquidity.
/portfolios/{{portfolio_id}}/context

MCP Tools

get-portfolio-context

One-call composed portfolio context across AIM, BVAL, and Tradeweb.

read-only

Capability Spec

aim-portfolio-tradeweb-cross-source-composer.yaml Raw ↑
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}}