naftiko: 1.0.0-alpha2 info: label: State Street Portfolio Management description: Workflow capability combining State Street Alpha Data Platform and Fund Connect APIs for institutional investment portfolio management. Enables portfolio managers, analysts, and risk officers to access portfolio positions, transaction history, performance measurement, risk analytics, and ETF order management through a unified interface. Designed for asset managers, pension funds, insurance companies, and endowments using the State Street Alpha platform. tags: - Financial Services - Investment Management - Portfolio - Institutional - ETF - Risk Analytics created: '2026-05-02' modified: '2026-05-06' binds: - namespace: env keys: STATE_STREET_CLIENT_ID: STATE_STREET_CLIENT_ID STATE_STREET_CLIENT_SECRET: STATE_STREET_CLIENT_SECRET capability: consumes: - type: http namespace: state-street-alpha baseUri: https://api.statestreet.com/v1 description: State Street Alpha Data Platform API authentication: type: bearer token: '{{STATE_STREET_ACCESS_TOKEN}}' resources: - name: portfolios path: /portfolios description: Portfolio listing and management operations: - name: list-portfolios method: GET description: List all accessible portfolios inputParameters: - name: pageSize in: query type: integer required: false description: Portfolios per page - name: pageToken in: query type: string required: false description: Pagination token - name: portfolioType in: query type: string required: false description: Filter by portfolio type outputRawFormat: json outputParameters: - name: result type: object value: $. - name: portfolio-detail path: /portfolios/{portfolioId} description: Individual portfolio operations operations: - name: get-portfolio method: GET description: Get portfolio details by ID inputParameters: - name: portfolioId in: path type: string required: true description: Portfolio identifier outputRawFormat: json outputParameters: - name: result type: object value: $. - name: portfolio-positions path: /portfolios/{portfolioId}/positions description: Portfolio position operations operations: - name: list-portfolio-positions method: GET description: List portfolio positions as of a given date inputParameters: - name: portfolioId in: path type: string required: true description: Portfolio identifier - name: asOfDate in: query type: string required: false description: As-of date for positions - name: assetClass in: query type: string required: false description: Filter by asset class - name: pageSize in: query type: integer required: false description: Positions per page outputRawFormat: json outputParameters: - name: result type: object value: $. - name: portfolio-transactions path: /portfolios/{portfolioId}/transactions description: Portfolio transaction history operations: - name: list-portfolio-transactions method: GET description: List transactions for a portfolio over a date range inputParameters: - name: portfolioId in: path type: string required: true description: Portfolio identifier - name: startDate in: query type: string required: true description: Start date - name: endDate in: query type: string required: true description: End date - name: transactionType in: query type: string required: false description: Filter by transaction type outputRawFormat: json outputParameters: - name: result type: object value: $. - name: portfolio-performance path: /portfolios/{portfolioId}/performance description: Portfolio performance measurement operations: - name: get-portfolio-performance method: GET description: Get performance measurement for a portfolio inputParameters: - name: portfolioId in: path type: string required: true description: Portfolio identifier - name: startDate in: query type: string required: true description: Measurement start date - name: endDate in: query type: string required: true description: Measurement end date - name: frequency in: query type: string required: false description: Calculation frequency outputRawFormat: json outputParameters: - name: result type: object value: $. - name: portfolio-risk path: /portfolios/{portfolioId}/risk description: Portfolio risk analytics operations: - name: get-portfolio-risk method: GET description: Get risk analytics for a portfolio inputParameters: - name: portfolioId in: path type: string required: true description: Portfolio identifier - name: asOfDate in: query type: string required: false description: As-of date outputRawFormat: json outputParameters: - name: result type: object value: $. - type: http namespace: state-street-fund-connect baseUri: https://api.statestreet.com/v1/fund-connect description: State Street Fund Connect ETF Order Management API authentication: type: bearer token: '{{STATE_STREET_ACCESS_TOKEN}}' resources: - name: funds path: /funds description: ETF fund listing operations: - name: list-funds method: GET description: List ETF funds available on Fund Connect inputParameters: - name: market in: query type: string required: false description: Filter by market outputRawFormat: json outputParameters: - name: result type: object value: $. - name: fund-detail path: /funds/{fundId} description: Individual fund operations operations: - name: get-fund method: GET description: Get ETF fund details inputParameters: - name: fundId in: path type: string required: true description: Fund identifier outputRawFormat: json outputParameters: - name: result type: object value: $. - name: fund-baskets path: /funds/{fundId}/baskets description: ETF portfolio basket operations: - name: get-fund-basket method: GET description: Get ETF portfolio composition basket inputParameters: - name: fundId in: path type: string required: true description: Fund identifier - name: date in: query type: string required: false description: Basket date outputRawFormat: json outputParameters: - name: result type: object value: $. - name: orders path: /orders description: ETF order management operations: - name: create-order method: POST description: Submit ETF creation or redemption order outputRawFormat: json outputParameters: - name: result type: object value: $. body: type: json data: fundId: '{{tools.fundId}}' orderType: '{{tools.orderType}}' units: '{{tools.units}}' settlementType: '{{tools.settlementType}}' - name: list-orders method: GET description: List ETF orders inputParameters: - name: fundId in: query type: string required: false description: Filter by fund - name: status in: query type: string required: false description: Filter by status outputRawFormat: json outputParameters: - name: result type: object value: $. - name: order-detail path: /orders/{orderId} description: Individual order operations operations: - name: get-order method: GET description: Get ETF order status and details inputParameters: - name: orderId in: path type: string required: true description: Order identifier outputRawFormat: json outputParameters: - name: result type: object value: $. - name: order-cancel path: /orders/{orderId}/cancel description: Order cancellation operations: - name: cancel-order method: POST description: Cancel a pending ETF order inputParameters: - name: orderId in: path type: string required: true description: Order identifier outputRawFormat: json outputParameters: - name: result type: object value: $. exposes: - type: rest port: 8080 namespace: state-street-portfolio-management-api description: Unified REST API for State Street institutional portfolio management workflows. resources: - path: /v1/portfolios name: portfolios description: Portfolio listing and management operations: - method: GET name: list-portfolios description: List all accessible institutional portfolios call: state-street-alpha.list-portfolios with: portfolioType: rest.portfolioType outputParameters: - type: object mapping: $. - path: /v1/portfolios/{portfolioId} name: portfolio-detail description: Portfolio detail operations: - method: GET name: get-portfolio description: Get portfolio details call: state-street-alpha.get-portfolio with: portfolioId: rest.portfolioId outputParameters: - type: object mapping: $. - path: /v1/portfolios/{portfolioId}/positions name: positions description: Portfolio positions and holdings operations: - method: GET name: list-positions description: Get current portfolio positions call: state-street-alpha.list-portfolio-positions with: portfolioId: rest.portfolioId asOfDate: rest.asOfDate assetClass: rest.assetClass outputParameters: - type: object mapping: $. - path: /v1/portfolios/{portfolioId}/transactions name: transactions description: Portfolio transaction history operations: - method: GET name: list-transactions description: Get portfolio transaction history call: state-street-alpha.list-portfolio-transactions with: portfolioId: rest.portfolioId startDate: rest.startDate endDate: rest.endDate outputParameters: - type: object mapping: $. - path: /v1/portfolios/{portfolioId}/performance name: performance description: Portfolio performance measurement operations: - method: GET name: get-performance description: Get portfolio performance and attribution call: state-street-alpha.get-portfolio-performance with: portfolioId: rest.portfolioId startDate: rest.startDate endDate: rest.endDate frequency: rest.frequency outputParameters: - type: object mapping: $. - path: /v1/portfolios/{portfolioId}/risk name: risk description: Portfolio risk analytics operations: - method: GET name: get-risk description: Get portfolio risk analytics call: state-street-alpha.get-portfolio-risk with: portfolioId: rest.portfolioId asOfDate: rest.asOfDate outputParameters: - type: object mapping: $. - path: /v1/etf/funds name: etf-funds description: ETF fund information operations: - method: GET name: list-etf-funds description: List ETF funds on Fund Connect call: state-street-fund-connect.list-funds outputParameters: - type: object mapping: $. - path: /v1/etf/funds/{fundId}/baskets name: etf-baskets description: ETF portfolio baskets operations: - method: GET name: get-etf-basket description: Get ETF portfolio composition basket call: state-street-fund-connect.get-fund-basket with: fundId: rest.fundId date: rest.date outputParameters: - type: object mapping: $. - path: /v1/etf/orders name: etf-orders description: ETF creation and redemption orders operations: - method: GET name: list-etf-orders description: List ETF orders call: state-street-fund-connect.list-orders outputParameters: - type: object mapping: $. - method: POST name: submit-etf-order description: Submit ETF creation or redemption order call: state-street-fund-connect.create-order outputParameters: - type: object mapping: $. - type: mcp port: 9090 namespace: state-street-portfolio-management-mcp transport: http description: MCP server for AI-assisted State Street institutional investment portfolio management. tools: - name: list-portfolios description: List all institutional investment portfolios accessible via State Street Alpha. Returns portfolio names, types, base currencies, and current market values. hints: readOnly: true openWorld: false call: state-street-alpha.list-portfolios with: portfolioType: tools.portfolioType outputParameters: - type: object mapping: $. - name: get-portfolio description: Get comprehensive details for a specific State Street Alpha portfolio including total market value, benchmark, and custodian information. hints: readOnly: true openWorld: false call: state-street-alpha.get-portfolio with: portfolioId: tools.portfolioId outputParameters: - type: object mapping: $. - name: list-portfolio-positions description: List current positions in a portfolio as of a given date. Returns securities, quantities, market values, cost basis, and unrealized P&L. Filter by asset class (EQUITY, FIXED_INCOME, CASH, DERIVATIVES, etc.). hints: readOnly: true openWorld: false call: state-street-alpha.list-portfolio-positions with: portfolioId: tools.portfolioId asOfDate: tools.asOfDate assetClass: tools.assetClass outputParameters: - type: object mapping: $. - name: list-portfolio-transactions description: List transaction history for a portfolio including trades, corporate actions, cash movements, and income events over a specified date range. hints: readOnly: true openWorld: false call: state-street-alpha.list-portfolio-transactions with: portfolioId: tools.portfolioId startDate: tools.startDate endDate: tools.endDate transactionType: tools.transactionType outputParameters: - type: object mapping: $. - name: get-portfolio-performance description: Get performance measurement data for a portfolio including time-weighted returns, benchmark returns, and active returns over a specified period. hints: readOnly: true openWorld: false call: state-street-alpha.get-portfolio-performance with: portfolioId: tools.portfolioId startDate: tools.startDate endDate: tools.endDate frequency: tools.frequency outputParameters: - type: object mapping: $. - name: get-portfolio-risk description: Get risk analytics for a portfolio including Value at Risk (VaR), tracking error, beta, duration, and factor exposures. hints: readOnly: true openWorld: false call: state-street-alpha.get-portfolio-risk with: portfolioId: tools.portfolioId asOfDate: tools.asOfDate outputParameters: - type: object mapping: $. - name: list-etf-funds description: List ETF funds available for creation and redemption on State Street Fund Connect. hints: readOnly: true openWorld: false call: state-street-fund-connect.list-funds with: market: tools.market outputParameters: - type: object mapping: $. - name: get-etf-basket description: Get the current portfolio composition basket for an ETF fund showing the in-kind securities and quantities required per creation unit. hints: readOnly: true openWorld: false call: state-street-fund-connect.get-fund-basket with: fundId: tools.fundId date: tools.date outputParameters: - type: object mapping: $. - name: submit-etf-order description: Submit an ETF creation or redemption order through State Street Fund Connect. Specify the fund, order type (CREATION or REDEMPTION), and number of units. hints: readOnly: false openWorld: false call: state-street-fund-connect.create-order outputParameters: - type: object mapping: $. - name: list-etf-orders description: List ETF creation and redemption orders submitted through Fund Connect, filterable by fund, status, and date range. hints: readOnly: true openWorld: false call: state-street-fund-connect.list-orders with: fundId: tools.fundId status: tools.status outputParameters: - type: object mapping: $. - name: get-etf-order-status description: Get the current status of a specific ETF creation or redemption order on State Street Fund Connect. hints: readOnly: true openWorld: false call: state-street-fund-connect.get-order with: orderId: tools.orderId outputParameters: - type: object mapping: $. - name: cancel-etf-order description: Cancel a pending ETF creation or redemption order on State Street Fund Connect. Only available for orders in PENDING status. hints: readOnly: false destructive: true idempotent: true call: state-street-fund-connect.cancel-order with: orderId: tools.orderId outputParameters: - type: object mapping: $.