LittleHorse · Capability

LittleHorse REST API

The LittleHorse REST API provides HTTP endpoints for managing workflow specifications (WfSpec), workflow runs (WfRun), task definitions (TaskDef), external event definitions, user tasks, and other resources in the LittleHorse workflow engine.

Run with Naftiko LittlehorseAPI

What You Can Do

GET
Listwfspecs — List workflow specifications
/wfSpec
POST
Putwfspec — Create or update a workflow specification
/wfSpec
GET
Getwfspec — Get a workflow specification
/wfSpec/{name}
DELETE
Deletewfspec — Delete a workflow specification
/wfSpec/{name}
POST
Runwf — Run a workflow
/wfRun
GET
Getwfrun — Get a workflow run
/wfRun/{wfRunId}
DELETE
Deletewfrun — Delete a workflow run
/wfRun/{wfRunId}
POST
Stopwfrun — Stop a workflow run
/wfRun/{wfRunId}/stop
POST
Resumewfrun — Resume a workflow run
/wfRun/{wfRunId}/resume
GET
Searchwfruns — Search workflow runs
/wfRun/search
GET
Listtaskdefs — List task definitions
/taskDef
POST
Puttaskdef — Create or update a task definition
/taskDef
GET
Gettaskdef — Get a task definition
/taskDef/{name}
DELETE
Deletetaskdef — Delete a task definition
/taskDef/{name}
GET
Listexternaleventdefs — List external event definitions
/externalEventDef
POST
Putexternaleventdef — Create an external event definition
/externalEventDef
GET
Getexternaleventdef — Get an external event definition
/externalEventDef/{name}
POST
Postexternalevent — Post an external event
/wfRun/{wfRunId}/externalEvent/{externalEventDefName}
GET
Getusertaskrun — Get a user task run
/wfRun/{wfRunId}/userTaskRun/{userTaskRunId}
POST
Assignusertask — Assign a user task
/wfRun/{wfRunId}/userTaskRun/{userTaskRunId}/assign
POST
Completeusertask — Complete a user task
/wfRun/{wfRunId}/userTaskRun/{userTaskRunId}/complete
GET
Getnoderun — Get a node run
/nodeRun/{wfRunId}/{threadRunNumber}/{position}

MCP Tools

listwfspecs

List workflow specifications

read-only idempotent
putwfspec

Create or update a workflow specification

getwfspec

Get a workflow specification

read-only idempotent
deletewfspec

Delete a workflow specification

idempotent
runwf

Run a workflow

getwfrun

Get a workflow run

read-only idempotent
deletewfrun

Delete a workflow run

idempotent
stopwfrun

Stop a workflow run

resumewfrun

Resume a workflow run

searchwfruns

Search workflow runs

read-only idempotent
listtaskdefs

List task definitions

read-only idempotent
puttaskdef

Create or update a task definition

gettaskdef

Get a task definition

read-only idempotent
deletetaskdef

Delete a task definition

idempotent
listexternaleventdefs

List external event definitions

read-only idempotent
putexternaleventdef

Create an external event definition

getexternaleventdef

Get an external event definition

read-only idempotent
postexternalevent

Post an external event

getusertaskrun

Get a user task run

read-only idempotent
assignusertask

Assign a user task

completeusertask

Complete a user task

getnoderun

Get a node run

read-only idempotent

Capability Spec

littlehorse-capability.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: LittleHorse REST API
  description: The LittleHorse REST API provides HTTP endpoints for managing workflow specifications (WfSpec), workflow runs
    (WfRun), task definitions (TaskDef), external event definitions, user tasks, and other resources in the LittleHorse workflow
    engine.
  tags:
  - Littlehorse
  - API
  created: '2026-05-06'
  modified: '2026-05-06'
capability:
  consumes:
  - type: http
    namespace: littlehorse
    baseUri: http://localhost:2023
    description: LittleHorse REST API HTTP API.
    resources:
    - name: wfspec
      path: /wfSpec
      operations:
      - name: listwfspecs
        method: GET
        description: List workflow specifications
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: putwfspec
        method: POST
        description: Create or update a workflow specification
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: wfspec-name
      path: /wfSpec/{name}
      operations:
      - name: getwfspec
        method: GET
        description: Get a workflow specification
        inputParameters:
        - name: name
          in: path
          type: string
          required: true
        - name: majorVersion
          in: query
          type: integer
        - name: revision
          in: query
          type: integer
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: deletewfspec
        method: DELETE
        description: Delete a workflow specification
        inputParameters:
        - name: name
          in: path
          type: string
          required: true
        - name: majorVersion
          in: query
          type: integer
          required: true
        - name: revision
          in: query
          type: integer
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: wfrun
      path: /wfRun
      operations:
      - name: runwf
        method: POST
        description: Run a workflow
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: wfrun-wfrunid
      path: /wfRun/{wfRunId}
      operations:
      - name: getwfrun
        method: GET
        description: Get a workflow run
        inputParameters:
        - name: wfRunId
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: deletewfrun
        method: DELETE
        description: Delete a workflow run
        inputParameters:
        - name: wfRunId
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: wfrun-wfrunid-stop
      path: /wfRun/{wfRunId}/stop
      operations:
      - name: stopwfrun
        method: POST
        description: Stop a workflow run
        inputParameters:
        - name: wfRunId
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: wfrun-wfrunid-resume
      path: /wfRun/{wfRunId}/resume
      operations:
      - name: resumewfrun
        method: POST
        description: Resume a workflow run
        inputParameters:
        - name: wfRunId
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: wfrun-search
      path: /wfRun/search
      operations:
      - name: searchwfruns
        method: GET
        description: Search workflow runs
        inputParameters:
        - name: wfSpecName
          in: query
          type: string
        - name: status
          in: query
          type: string
        - name: limit
          in: query
          type: integer
        - name: bookmark
          in: query
          type: string
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: taskdef
      path: /taskDef
      operations:
      - name: listtaskdefs
        method: GET
        description: List task definitions
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: puttaskdef
        method: POST
        description: Create or update a task definition
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: taskdef-name
      path: /taskDef/{name}
      operations:
      - name: gettaskdef
        method: GET
        description: Get a task definition
        inputParameters:
        - name: name
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: deletetaskdef
        method: DELETE
        description: Delete a task definition
        inputParameters:
        - name: name
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: externaleventdef
      path: /externalEventDef
      operations:
      - name: listexternaleventdefs
        method: GET
        description: List external event definitions
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: putexternaleventdef
        method: POST
        description: Create an external event definition
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: externaleventdef-name
      path: /externalEventDef/{name}
      operations:
      - name: getexternaleventdef
        method: GET
        description: Get an external event definition
        inputParameters:
        - name: name
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: wfrun-wfrunid-externalevent-externaleventdefname
      path: /wfRun/{wfRunId}/externalEvent/{externalEventDefName}
      operations:
      - name: postexternalevent
        method: POST
        description: Post an external event
        inputParameters:
        - name: wfRunId
          in: path
          type: string
          required: true
        - name: externalEventDefName
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: wfrun-wfrunid-usertaskrun-usertaskrunid
      path: /wfRun/{wfRunId}/userTaskRun/{userTaskRunId}
      operations:
      - name: getusertaskrun
        method: GET
        description: Get a user task run
        inputParameters:
        - name: wfRunId
          in: path
          type: string
          required: true
        - name: userTaskRunId
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: wfrun-wfrunid-usertaskrun-usertaskrunid-assign
      path: /wfRun/{wfRunId}/userTaskRun/{userTaskRunId}/assign
      operations:
      - name: assignusertask
        method: POST
        description: Assign a user task
        inputParameters:
        - name: wfRunId
          in: path
          type: string
          required: true
        - name: userTaskRunId
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: wfrun-wfrunid-usertaskrun-usertaskrunid-complete
      path: /wfRun/{wfRunId}/userTaskRun/{userTaskRunId}/complete
      operations:
      - name: completeusertask
        method: POST
        description: Complete a user task
        inputParameters:
        - name: wfRunId
          in: path
          type: string
          required: true
        - name: userTaskRunId
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: noderun-wfrunid-threadrunnumber-position
      path: /nodeRun/{wfRunId}/{threadRunNumber}/{position}
      operations:
      - name: getnoderun
        method: GET
        description: Get a node run
        inputParameters:
        - name: wfRunId
          in: path
          type: string
          required: true
        - name: threadRunNumber
          in: path
          type: integer
          required: true
        - name: position
          in: path
          type: integer
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
  exposes:
  - type: rest
    port: 8080
    namespace: littlehorse-rest
    description: REST adapter for LittleHorse REST API.
    resources:
    - path: /wfSpec
      name: listwfspecs
      operations:
      - method: GET
        name: listwfspecs
        description: List workflow specifications
        call: littlehorse.listwfspecs
        outputParameters:
        - type: object
          mapping: $.
    - path: /wfSpec
      name: putwfspec
      operations:
      - method: POST
        name: putwfspec
        description: Create or update a workflow specification
        call: littlehorse.putwfspec
        outputParameters:
        - type: object
          mapping: $.
    - path: /wfSpec/{name}
      name: getwfspec
      operations:
      - method: GET
        name: getwfspec
        description: Get a workflow specification
        call: littlehorse.getwfspec
        with:
          name: rest.name
        outputParameters:
        - type: object
          mapping: $.
    - path: /wfSpec/{name}
      name: deletewfspec
      operations:
      - method: DELETE
        name: deletewfspec
        description: Delete a workflow specification
        call: littlehorse.deletewfspec
        with:
          name: rest.name
        outputParameters:
        - type: object
          mapping: $.
    - path: /wfRun
      name: runwf
      operations:
      - method: POST
        name: runwf
        description: Run a workflow
        call: littlehorse.runwf
        outputParameters:
        - type: object
          mapping: $.
    - path: /wfRun/{wfRunId}
      name: getwfrun
      operations:
      - method: GET
        name: getwfrun
        description: Get a workflow run
        call: littlehorse.getwfrun
        with:
          wfRunId: rest.wfRunId
        outputParameters:
        - type: object
          mapping: $.
    - path: /wfRun/{wfRunId}
      name: deletewfrun
      operations:
      - method: DELETE
        name: deletewfrun
        description: Delete a workflow run
        call: littlehorse.deletewfrun
        with:
          wfRunId: rest.wfRunId
        outputParameters:
        - type: object
          mapping: $.
    - path: /wfRun/{wfRunId}/stop
      name: stopwfrun
      operations:
      - method: POST
        name: stopwfrun
        description: Stop a workflow run
        call: littlehorse.stopwfrun
        with:
          wfRunId: rest.wfRunId
        outputParameters:
        - type: object
          mapping: $.
    - path: /wfRun/{wfRunId}/resume
      name: resumewfrun
      operations:
      - method: POST
        name: resumewfrun
        description: Resume a workflow run
        call: littlehorse.resumewfrun
        with:
          wfRunId: rest.wfRunId
        outputParameters:
        - type: object
          mapping: $.
    - path: /wfRun/search
      name: searchwfruns
      operations:
      - method: GET
        name: searchwfruns
        description: Search workflow runs
        call: littlehorse.searchwfruns
        outputParameters:
        - type: object
          mapping: $.
    - path: /taskDef
      name: listtaskdefs
      operations:
      - method: GET
        name: listtaskdefs
        description: List task definitions
        call: littlehorse.listtaskdefs
        outputParameters:
        - type: object
          mapping: $.
    - path: /taskDef
      name: puttaskdef
      operations:
      - method: POST
        name: puttaskdef
        description: Create or update a task definition
        call: littlehorse.puttaskdef
        outputParameters:
        - type: object
          mapping: $.
    - path: /taskDef/{name}
      name: gettaskdef
      operations:
      - method: GET
        name: gettaskdef
        description: Get a task definition
        call: littlehorse.gettaskdef
        with:
          name: rest.name
        outputParameters:
        - type: object
          mapping: $.
    - path: /taskDef/{name}
      name: deletetaskdef
      operations:
      - method: DELETE
        name: deletetaskdef
        description: Delete a task definition
        call: littlehorse.deletetaskdef
        with:
          name: rest.name
        outputParameters:
        - type: object
          mapping: $.
    - path: /externalEventDef
      name: listexternaleventdefs
      operations:
      - method: GET
        name: listexternaleventdefs
        description: List external event definitions
        call: littlehorse.listexternaleventdefs
        outputParameters:
        - type: object
          mapping: $.
    - path: /externalEventDef
      name: putexternaleventdef
      operations:
      - method: POST
        name: putexternaleventdef
        description: Create an external event definition
        call: littlehorse.putexternaleventdef
        outputParameters:
        - type: object
          mapping: $.
    - path: /externalEventDef/{name}
      name: getexternaleventdef
      operations:
      - method: GET
        name: getexternaleventdef
        description: Get an external event definition
        call: littlehorse.getexternaleventdef
        with:
          name: rest.name
        outputParameters:
        - type: object
          mapping: $.
    - path: /wfRun/{wfRunId}/externalEvent/{externalEventDefName}
      name: postexternalevent
      operations:
      - method: POST
        name: postexternalevent
        description: Post an external event
        call: littlehorse.postexternalevent
        with:
          wfRunId: rest.wfRunId
          externalEventDefName: rest.externalEventDefName
        outputParameters:
        - type: object
          mapping: $.
    - path: /wfRun/{wfRunId}/userTaskRun/{userTaskRunId}
      name: getusertaskrun
      operations:
      - method: GET
        name: getusertaskrun
        description: Get a user task run
        call: littlehorse.getusertaskrun
        with:
          wfRunId: rest.wfRunId
          userTaskRunId: rest.userTaskRunId
        outputParameters:
        - type: object
          mapping: $.
    - path: /wfRun/{wfRunId}/userTaskRun/{userTaskRunId}/assign
      name: assignusertask
      operations:
      - method: POST
        name: assignusertask
        description: Assign a user task
        call: littlehorse.assignusertask
        with:
          wfRunId: rest.wfRunId
          userTaskRunId: rest.userTaskRunId
        outputParameters:
        - type: object
          mapping: $.
    - path: /wfRun/{wfRunId}/userTaskRun/{userTaskRunId}/complete
      name: completeusertask
      operations:
      - method: POST
        name: completeusertask
        description: Complete a user task
        call: littlehorse.completeusertask
        with:
          wfRunId: rest.wfRunId
          userTaskRunId: rest.userTaskRunId
        outputParameters:
        - type: object
          mapping: $.
    - path: /nodeRun/{wfRunId}/{threadRunNumber}/{position}
      name: getnoderun
      operations:
      - method: GET
        name: getnoderun
        description: Get a node run
        call: littlehorse.getnoderun
        with:
          wfRunId: rest.wfRunId
          threadRunNumber: rest.threadRunNumber
          position: rest.position
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    port: 9090
    namespace: littlehorse-mcp
    transport: http
    description: MCP adapter for LittleHorse REST API for AI agent use.
    tools:
    - name: listwfspecs
      description: List workflow specifications
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: littlehorse.listwfspecs
      outputParameters:
      - type: object
        mapping: $.
    - name: putwfspec
      description: Create or update a workflow specification
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: littlehorse.putwfspec
      outputParameters:
      - type: object
        mapping: $.
    - name: getwfspec
      description: Get a workflow specification
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: littlehorse.getwfspec
      with:
        name: tools.name
        majorVersion: tools.majorVersion
        revision: tools.revision
      inputParameters:
      - name: name
        type: string
        description: name
        required: true
      - name: majorVersion
        type: integer
        description: majorVersion
      - name: revision
        type: integer
        description: revision
      outputParameters:
      - type: object
        mapping: $.
    - name: deletewfspec
      description: Delete a workflow specification
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: littlehorse.deletewfspec
      with:
        name: tools.name
        majorVersion: tools.majorVersion
        revision: tools.revision
      inputParameters:
      - name: name
        type: string
        description: name
        required: true
      - name: majorVersion
        type: integer
        description: majorVersion
        required: true
      - name: revision
        type: integer
        description: revision
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: runwf
      description: Run a workflow
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: littlehorse.runwf
      outputParameters:
      - type: object
        mapping: $.
    - name: getwfrun
      description: Get a workflow run
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: littlehorse.getwfrun
      with:
        wfRunId: tools.wfRunId
      inputParameters:
      - name: wfRunId
        type: string
        description: wfRunId
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: deletewfrun
      description: Delete a workflow run
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: littlehorse.deletewfrun
      with:
        wfRunId: tools.wfRunId
      inputParameters:
      - name: wfRunId
        type: string
        description: wfRunId
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: stopwfrun
      description: Stop a workflow run
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: littlehorse.stopwfrun
      with:
        wfRunId: tools.wfRunId
      inputParameters:
      - name: wfRunId
        type: string
        description: wfRunId
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: resumewfrun
      description: Resume a workflow run
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: littlehorse.resumewfrun
      with:
        wfRunId: tools.wfRunId
      inputParameters:
      - name: wfRunId
        type: string
        description: wfRunId
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: searchwfruns
      description: Search workflow runs
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: littlehorse.searchwfruns
      with:
        wfSpecName: tools.wfSpecName
        status: tools.status
        limit: tools.limit
        bookmark: tools.bookmark
      inputParameters:
      - name: wfSpecName
        type: string
        description: wfSpecName
      - name: status
        type: string
        description: status
      - name: limit
        type: integer
        description: limit
      - name: bookmark
        type: string
        description: bookmark
      outputParameters:
      - type: object
        mapping: $.
    - name: listtaskdefs
      description: List task definitions
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: littlehorse.listtaskdefs
      outputParameters:
      - type: object
        mapping: $.
    - name: puttaskdef
      description: Create or update a task definition
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: littlehorse.puttaskdef
      outputParameters:
      - type: object
        mapping: $.
    - name: gettaskdef
      description: Get a task definition
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: littlehorse.gettaskdef
      with:
        name: tools.name
      inputParameters:
      - name: name
        type: string
        description: name
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: deletetaskdef
      description: Delete a task definition
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: littlehorse.deletetaskdef
      with:
        name: tools.name
      inputParameters:
      - name: name
        type: string
        description: name
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: listexternaleventdefs
      description: List external event definitions
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: littlehorse.listexternaleventdefs
      outputParameters:
      - type: object
        mapping: $.
    - name: putexternaleventdef
      description: Create an external event definition
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: littlehorse.putexternaleventdef
      outputParameters:
      - type: object
        mapping: $.
    - name: getexternaleventdef
      description: Get an external event definition
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: littlehorse.getexternaleventdef
      with:
        name: tools.name
      inputParameters:
      - name: name
        type: string
        description: name
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: postexternalevent
      description: Post an external event
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: littlehorse.postexternalevent
      with:
        wfRunId: tools.wfRunId
        externalEventDefName: tools.externalEventDefName
      inputParameters:
      - name: wfRunId
        type: string
        description: wfRunId
        required: true
      - name: externalEventDefName
        type: string
        description: externalEventDefName
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: getusertaskrun
      description: Get a user task run
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: littlehorse.getusertaskrun
      with:
        wfRunId: tools.wfRunId
        userTaskRunId: tools.userTaskRunId
      inputParameters:
      - name: wfRunId
        type: string
        description: wfRunId
        required: true
      - name: userTaskRunId
        type: string
        description: userTaskRunId
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: assignusertask
      description: Assign a user task
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: littlehorse.assignusertask
      with:
        wfRunId: tools.wfRunId
        userTaskRunId: tools.userTaskRunId
      inputParameters:
      - name: wfRunId
        type: string
        description: wfRunId
        required: true
      - name: userTaskRunId
        type: string
        description: userTaskRunId
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: completeusertask
      description: Complete a user task
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: littlehorse.completeusertask
      with:
        wfRunId: tools.wfRunId
        userTaskRunId: tools.userTaskRunId
      inputParameters:
      - name: wfRunId
        type: string
        description: wfRunId
        required: true
      - name: userTaskRunId
        type: string
        description: userTaskRunId
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: getnoderun
      description: Get a node run
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: littlehorse.getnoderun
      with:
        wfRunId: tools.wfRunId
        threadRunNumber: tools.threadRunNumber
        position: tools.position
      inputParameters:
      - name: wfRunId
        type: string
        description: wfRunId
        required: true
      - name: threadRunNumber
        type: integer
        description: threadRunNumber
        required: true
      - name: position
        type: integer
        description: position
        required: true
      outputParameters:
      - type: object
        mapping: $.