naftiko: 1.0.0-alpha2 info: label: FactSet Watchlist API for Digital Portals — Watchlist description: 'FactSet Watchlist API for Digital Portals — Watchlist. 10 operations. Lead operation: Factset Create a Watchlist.. Self-contained Naftiko capability covering one Factset business surface.' tags: - Factset - Watchlist created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: FACTSET_API_KEY: FACTSET_API_KEY capability: consumes: - type: http namespace: watchlist-api-for-digital-portals-watchlist baseUri: https://api.factset.com/wealth/v1 description: FactSet Watchlist API for Digital Portals — Watchlist business capability. Self-contained, no shared references. resources: - name: watchlist-create path: /watchlist/create operations: - name: postwatchlistcreate method: POST description: Factset Create a Watchlist. outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: false - name: watchlist-delete path: /watchlist/delete operations: - name: postwatchlistdelete method: POST description: Factset Delete a Watchlist. outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: false - name: watchlist-get path: /watchlist/get operations: - name: getwatchlistget method: GET description: Factset Details of a Watchlist. outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: query type: string required: true - name: _attributes in: query type: array description: Limit the attributes returned in the response to the specified set. - name: watchlist-list path: /watchlist/list operations: - name: getwatchlistlist method: GET description: Factset List of Watchlists. outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: _attributes in: query type: array description: Limit the attributes returned in the response to the specified set. - name: _sort in: query type: array description: Sortable attributes. The sort order is ascending unless it is prefixed with a minus sign, in which case it is descending. A list of at most 4 (possibly prefixed - name: watchlist-modify path: /watchlist/modify operations: - name: postwatchlistmodify method: POST description: Factset Modify a Watchlist. outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: false - name: watchlist-position-create path: /watchlist/position/create operations: - name: postwatchlistpositioncreate method: POST description: Factset Add a Position to a Watchlist. outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: false - name: watchlist-position-delete path: /watchlist/position/delete operations: - name: postwatchlistpositiondelete method: POST description: Factset Delete a Position of a Watchlist. outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: false - name: watchlist-position-get path: /watchlist/position/get operations: - name: postwatchlistpositionget method: POST description: Factset Details of the Position of a Watchlist. outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: false - name: watchlist-position-list path: /watchlist/position/list operations: - name: getwatchlistpositionlist method: GET description: Factset List of Positions of a Watchlist. outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: query type: string required: true - name: _attributes in: query type: array description: Limit the attributes returned in the response to the specified set. - name: _sort in: query type: array description: Sortable attributes. The sort order is ascending unless it is prefixed with a minus sign, in which case it is descending. A list of at most 2 (possibly prefixed - name: watchlist-position-modify path: /watchlist/position/modify operations: - name: postwatchlistpositionmodify method: POST description: Factset Modify a Position in a Watchlist. outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: false authentication: type: basic username: '{{env.FACTSET_USER}}' password: '{{env.FACTSET_PASS}}' exposes: - type: rest namespace: watchlist-api-for-digital-portals-watchlist-rest port: 8080 description: REST adapter for FactSet Watchlist API for Digital Portals — Watchlist. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/watchlist/create name: watchlist-create description: REST surface for watchlist-create. operations: - method: POST name: postwatchlistcreate description: Factset Create a Watchlist. call: watchlist-api-for-digital-portals-watchlist.postwatchlistcreate with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/watchlist/delete name: watchlist-delete description: REST surface for watchlist-delete. operations: - method: POST name: postwatchlistdelete description: Factset Delete a Watchlist. call: watchlist-api-for-digital-portals-watchlist.postwatchlistdelete with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/watchlist/get name: watchlist-get description: REST surface for watchlist-get. operations: - method: GET name: getwatchlistget description: Factset Details of a Watchlist. call: watchlist-api-for-digital-portals-watchlist.getwatchlistget with: id: rest.id _attributes: rest._attributes outputParameters: - type: object mapping: $. - path: /v1/watchlist/list name: watchlist-list description: REST surface for watchlist-list. operations: - method: GET name: getwatchlistlist description: Factset List of Watchlists. call: watchlist-api-for-digital-portals-watchlist.getwatchlistlist with: _attributes: rest._attributes _sort: rest._sort outputParameters: - type: object mapping: $. - path: /v1/watchlist/modify name: watchlist-modify description: REST surface for watchlist-modify. operations: - method: POST name: postwatchlistmodify description: Factset Modify a Watchlist. call: watchlist-api-for-digital-portals-watchlist.postwatchlistmodify with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/watchlist/position/create name: watchlist-position-create description: REST surface for watchlist-position-create. operations: - method: POST name: postwatchlistpositioncreate description: Factset Add a Position to a Watchlist. call: watchlist-api-for-digital-portals-watchlist.postwatchlistpositioncreate with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/watchlist/position/delete name: watchlist-position-delete description: REST surface for watchlist-position-delete. operations: - method: POST name: postwatchlistpositiondelete description: Factset Delete a Position of a Watchlist. call: watchlist-api-for-digital-portals-watchlist.postwatchlistpositiondelete with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/watchlist/position/get name: watchlist-position-get description: REST surface for watchlist-position-get. operations: - method: POST name: postwatchlistpositionget description: Factset Details of the Position of a Watchlist. call: watchlist-api-for-digital-portals-watchlist.postwatchlistpositionget with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/watchlist/position/list name: watchlist-position-list description: REST surface for watchlist-position-list. operations: - method: GET name: getwatchlistpositionlist description: Factset List of Positions of a Watchlist. call: watchlist-api-for-digital-portals-watchlist.getwatchlistpositionlist with: id: rest.id _attributes: rest._attributes _sort: rest._sort outputParameters: - type: object mapping: $. - path: /v1/watchlist/position/modify name: watchlist-position-modify description: REST surface for watchlist-position-modify. operations: - method: POST name: postwatchlistpositionmodify description: Factset Modify a Position in a Watchlist. call: watchlist-api-for-digital-portals-watchlist.postwatchlistpositionmodify with: body: rest.body outputParameters: - type: object mapping: $. - type: mcp namespace: watchlist-api-for-digital-portals-watchlist-mcp port: 9090 transport: http description: MCP adapter for FactSet Watchlist API for Digital Portals — Watchlist. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: factset-create-watchlist description: Factset Create a Watchlist. hints: readOnly: false destructive: false idempotent: false call: watchlist-api-for-digital-portals-watchlist.postwatchlistcreate with: body: tools.body outputParameters: - type: object mapping: $. - name: factset-delete-watchlist description: Factset Delete a Watchlist. hints: readOnly: false destructive: false idempotent: false call: watchlist-api-for-digital-portals-watchlist.postwatchlistdelete with: body: tools.body outputParameters: - type: object mapping: $. - name: factset-details-watchlist description: Factset Details of a Watchlist. hints: readOnly: true destructive: false idempotent: true call: watchlist-api-for-digital-portals-watchlist.getwatchlistget with: id: tools.id _attributes: tools._attributes outputParameters: - type: object mapping: $. - name: factset-list-watchlists description: Factset List of Watchlists. hints: readOnly: true destructive: false idempotent: true call: watchlist-api-for-digital-portals-watchlist.getwatchlistlist with: _attributes: tools._attributes _sort: tools._sort outputParameters: - type: object mapping: $. - name: factset-modify-watchlist description: Factset Modify a Watchlist. hints: readOnly: false destructive: false idempotent: false call: watchlist-api-for-digital-portals-watchlist.postwatchlistmodify with: body: tools.body outputParameters: - type: object mapping: $. - name: factset-add-position-watchlist description: Factset Add a Position to a Watchlist. hints: readOnly: false destructive: false idempotent: false call: watchlist-api-for-digital-portals-watchlist.postwatchlistpositioncreate with: body: tools.body outputParameters: - type: object mapping: $. - name: factset-delete-position-watchlist description: Factset Delete a Position of a Watchlist. hints: readOnly: false destructive: false idempotent: false call: watchlist-api-for-digital-portals-watchlist.postwatchlistpositiondelete with: body: tools.body outputParameters: - type: object mapping: $. - name: factset-details-position-watchlist description: Factset Details of the Position of a Watchlist. hints: readOnly: false destructive: false idempotent: false call: watchlist-api-for-digital-portals-watchlist.postwatchlistpositionget with: body: tools.body outputParameters: - type: object mapping: $. - name: factset-list-positions-watchlist description: Factset List of Positions of a Watchlist. hints: readOnly: true destructive: false idempotent: true call: watchlist-api-for-digital-portals-watchlist.getwatchlistpositionlist with: id: tools.id _attributes: tools._attributes _sort: tools._sort outputParameters: - type: object mapping: $. - name: factset-modify-position-watchlist description: Factset Modify a Position in a Watchlist. hints: readOnly: false destructive: false idempotent: false call: watchlist-api-for-digital-portals-watchlist.postwatchlistpositionmodify with: body: tools.body outputParameters: - type: object mapping: $.