Factset · Capability

FactSet Northfield Portfolio Optimizer — Engines

FactSet Northfield Portfolio Optimizer — Engines. 7 operations. Lead operation: Factset Create and Run Npo Optimization. Self-contained Naftiko capability covering one Factset business surface.

Run with Naftiko FactsetEngines

What You Can Do

POST
Postandoptimize — Factset Create and Run Npo Optimization
/v1/analytics/engines/npo/v3/optimizations
PUT
Putandoptimize — Factset Create or Update Npo Optimization and Run It.
/v1/analytics/engines/npo/v3/optimizations/{id}
GET
Getoptimizationparameters — Factset Get Npo Optimization Parameters by Id
/v1/analytics/engines/npo/v3/optimizations/{id}
DELETE
Canceloptimizationbyid — Factset Cancel Npo Optimization by Id
/v1/analytics/engines/npo/v3/optimizations/{id}
GET
Getoptimizationresult — Factset Get Npo Optimization Result by Id
/v1/analytics/engines/npo/v3/optimizations/{id}/result
GET
Getoptimizationstatusbyid — Factset Get Npo Optimization Status by Id
/v1/analytics/engines/npo/v3/optimizations/{id}/status
GET
Getnorthfieldstrategydocuments — Factset Get Northfield Strategy Documents and Sub-directories in a Directory
/v1/analytics/engines/npo/v3/strategies/{path}

MCP Tools

factset-create-and-run-npo

Factset Create and Run Npo Optimization

factset-create-update-npo-optimization

Factset Create or Update Npo Optimization and Run It.

idempotent
factset-get-npo-optimization-parameters

Factset Get Npo Optimization Parameters by Id

read-only idempotent
factset-cancel-npo-optimization-id

Factset Cancel Npo Optimization by Id

idempotent
factset-get-npo-optimization-result

Factset Get Npo Optimization Result by Id

read-only idempotent
factset-get-npo-optimization-status

Factset Get Npo Optimization Status by Id

read-only idempotent
factset-get-northfield-strategy-documents

Factset Get Northfield Strategy Documents and Sub-directories in a Directory

read-only idempotent

Capability Spec

northfield-portfolio-optimizer-engines.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: FactSet Northfield Portfolio Optimizer — Engines
  description: 'FactSet Northfield Portfolio Optimizer — Engines. 7 operations. Lead operation: Factset Create and Run Npo
    Optimization. Self-contained Naftiko capability covering one Factset business surface.'
  tags:
  - Factset
  - Engines
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    FACTSET_API_KEY: FACTSET_API_KEY
capability:
  consumes:
  - type: http
    namespace: northfield-portfolio-optimizer-engines
    baseUri: https://api.factset.com
    description: FactSet Northfield Portfolio Optimizer — Engines business capability. Self-contained, no shared references.
    resources:
    - name: analytics-engines-npo-v3-optimizations
      path: /analytics/engines/npo/v3/optimizations
      operations:
      - name: postandoptimize
        method: POST
        description: Factset Create and Run Npo Optimization
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: X-FactSet-Api-Long-Running-Deadline
          in: header
          type: integer
          description: Long running deadline in seconds.
        - name: Cache-Control
          in: header
          type: string
          description: Standard HTTP header.  Accepts no-store, max-age, max-stale.
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
    - name: analytics-engines-npo-v3-optimizations-id
      path: /analytics/engines/npo/v3/optimizations/{id}
      operations:
      - name: putandoptimize
        method: PUT
        description: Factset Create or Update Npo Optimization and Run It.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: from url, provided from the location header in the Create and Run NPO optimization endpoint
          required: true
        - name: X-FactSet-Api-Long-Running-Deadline
          in: header
          type: integer
          description: Long running deadline in seconds.
        - name: Cache-Control
          in: header
          type: string
          description: Standard HTTP header.  Accepts no-store, max-age, max-stale.
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
      - name: getoptimizationparameters
        method: GET
        description: Factset Get Npo Optimization Parameters by Id
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: from url, provided from the location header in the Create and Run NPO optimization endpoint
          required: true
      - name: canceloptimizationbyid
        method: DELETE
        description: Factset Cancel Npo Optimization by Id
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: from url, provided from the location header in the Create and Run NPO optimization endpoint
          required: true
    - name: analytics-engines-npo-v3-optimizations-id-result
      path: /analytics/engines/npo/v3/optimizations/{id}/result
      operations:
      - name: getoptimizationresult
        method: GET
        description: Factset Get Npo Optimization Result by Id
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: from url, provided from the location header in the Get NPO optimization status by id endpoint
          required: true
    - name: analytics-engines-npo-v3-optimizations-id-status
      path: /analytics/engines/npo/v3/optimizations/{id}/status
      operations:
      - name: getoptimizationstatusbyid
        method: GET
        description: Factset Get Npo Optimization Status by Id
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: from url, provided from the location header in the Create and Run NPO optimization endpoint
          required: true
    - name: analytics-engines-npo-v3-strategies-path
      path: /analytics/engines/npo/v3/strategies/{path}
      operations:
      - name: getnorthfieldstrategydocuments
        method: GET
        description: Factset Get Northfield Strategy Documents and Sub-directories in a Directory
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: path
          in: path
          type: string
          description: The directory to get the strategy documents and sub-directories in
          required: true
    authentication:
      type: basic
      username: '{{env.FACTSET_USER}}'
      password: '{{env.FACTSET_PASS}}'
  exposes:
  - type: rest
    namespace: northfield-portfolio-optimizer-engines-rest
    port: 8080
    description: REST adapter for FactSet Northfield Portfolio Optimizer — Engines. One Spectral-compliant resource per consumed
      operation, prefixed with /v1.
    resources:
    - path: /v1/analytics/engines/npo/v3/optimizations
      name: analytics-engines-npo-v3-optimizations
      description: REST surface for analytics-engines-npo-v3-optimizations.
      operations:
      - method: POST
        name: postandoptimize
        description: Factset Create and Run Npo Optimization
        call: northfield-portfolio-optimizer-engines.postandoptimize
        with:
          X-FactSet-Api-Long-Running-Deadline: rest.X-FactSet-Api-Long-Running-Deadline
          Cache-Control: rest.Cache-Control
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/analytics/engines/npo/v3/optimizations/{id}
      name: analytics-engines-npo-v3-optimizations-id
      description: REST surface for analytics-engines-npo-v3-optimizations-id.
      operations:
      - method: PUT
        name: putandoptimize
        description: Factset Create or Update Npo Optimization and Run It.
        call: northfield-portfolio-optimizer-engines.putandoptimize
        with:
          id: rest.id
          X-FactSet-Api-Long-Running-Deadline: rest.X-FactSet-Api-Long-Running-Deadline
          Cache-Control: rest.Cache-Control
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
      - method: GET
        name: getoptimizationparameters
        description: Factset Get Npo Optimization Parameters by Id
        call: northfield-portfolio-optimizer-engines.getoptimizationparameters
        with:
          id: rest.id
        outputParameters:
        - type: object
          mapping: $.
      - method: DELETE
        name: canceloptimizationbyid
        description: Factset Cancel Npo Optimization by Id
        call: northfield-portfolio-optimizer-engines.canceloptimizationbyid
        with:
          id: rest.id
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/analytics/engines/npo/v3/optimizations/{id}/result
      name: analytics-engines-npo-v3-optimizations-id-result
      description: REST surface for analytics-engines-npo-v3-optimizations-id-result.
      operations:
      - method: GET
        name: getoptimizationresult
        description: Factset Get Npo Optimization Result by Id
        call: northfield-portfolio-optimizer-engines.getoptimizationresult
        with:
          id: rest.id
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/analytics/engines/npo/v3/optimizations/{id}/status
      name: analytics-engines-npo-v3-optimizations-id-status
      description: REST surface for analytics-engines-npo-v3-optimizations-id-status.
      operations:
      - method: GET
        name: getoptimizationstatusbyid
        description: Factset Get Npo Optimization Status by Id
        call: northfield-portfolio-optimizer-engines.getoptimizationstatusbyid
        with:
          id: rest.id
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/analytics/engines/npo/v3/strategies/{path}
      name: analytics-engines-npo-v3-strategies-path
      description: REST surface for analytics-engines-npo-v3-strategies-path.
      operations:
      - method: GET
        name: getnorthfieldstrategydocuments
        description: Factset Get Northfield Strategy Documents and Sub-directories in a Directory
        call: northfield-portfolio-optimizer-engines.getnorthfieldstrategydocuments
        with:
          path: rest.path
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: northfield-portfolio-optimizer-engines-mcp
    port: 9090
    transport: http
    description: MCP adapter for FactSet Northfield Portfolio Optimizer — Engines. One tool per consumed operation, routed
      inline through this capability's consumes block.
    tools:
    - name: factset-create-and-run-npo
      description: Factset Create and Run Npo Optimization
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: northfield-portfolio-optimizer-engines.postandoptimize
      with:
        X-FactSet-Api-Long-Running-Deadline: tools.X-FactSet-Api-Long-Running-Deadline
        Cache-Control: tools.Cache-Control
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: factset-create-update-npo-optimization
      description: Factset Create or Update Npo Optimization and Run It.
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: northfield-portfolio-optimizer-engines.putandoptimize
      with:
        id: tools.id
        X-FactSet-Api-Long-Running-Deadline: tools.X-FactSet-Api-Long-Running-Deadline
        Cache-Control: tools.Cache-Control
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: factset-get-npo-optimization-parameters
      description: Factset Get Npo Optimization Parameters by Id
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: northfield-portfolio-optimizer-engines.getoptimizationparameters
      with:
        id: tools.id
      outputParameters:
      - type: object
        mapping: $.
    - name: factset-cancel-npo-optimization-id
      description: Factset Cancel Npo Optimization by Id
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: northfield-portfolio-optimizer-engines.canceloptimizationbyid
      with:
        id: tools.id
      outputParameters:
      - type: object
        mapping: $.
    - name: factset-get-npo-optimization-result
      description: Factset Get Npo Optimization Result by Id
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: northfield-portfolio-optimizer-engines.getoptimizationresult
      with:
        id: tools.id
      outputParameters:
      - type: object
        mapping: $.
    - name: factset-get-npo-optimization-status
      description: Factset Get Npo Optimization Status by Id
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: northfield-portfolio-optimizer-engines.getoptimizationstatusbyid
      with:
        id: tools.id
      outputParameters:
      - type: object
        mapping: $.
    - name: factset-get-northfield-strategy-documents
      description: Factset Get Northfield Strategy Documents and Sub-directories in a Directory
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: northfield-portfolio-optimizer-engines.getnorthfieldstrategydocuments
      with:
        path: tools.path
      outputParameters:
      - type: object
        mapping: $.