LabVantage Solutions · Capability

LabVantage LIMS API — Samples

LabVantage LIMS API — Samples. 4 operations. Lead operation: List samples. Self-contained Naftiko capability covering one Labvantage business surface.

Run with Naftiko LabvantageSamples

What You Can Do

GET
Listsamples — List samples
/v1/samples
POST
Loginsample — Login (register) a sample
/v1/samples
GET
Getsample — Get sample details
/v1/samples/{sampleid}
PATCH
Updatesample — Update sample
/v1/samples/{sampleid}

MCP Tools

list-samples

List samples

read-only idempotent
login-register-sample

Login (register) a sample

get-sample-details

Get sample details

read-only idempotent
update-sample

Update sample

idempotent

Capability Spec

lims-samples.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: LabVantage LIMS API — Samples
  description: 'LabVantage LIMS API — Samples. 4 operations. Lead operation: List samples. Self-contained Naftiko capability
    covering one Labvantage business surface.'
  tags:
  - Labvantage
  - Samples
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    LABVANTAGE_API_KEY: LABVANTAGE_API_KEY
capability:
  consumes:
  - type: http
    namespace: lims-samples
    baseUri: https://{instance}.labvantage.example.com/labvantage/rest/v1
    description: LabVantage LIMS API — Samples business capability. Self-contained, no shared references.
    resources:
    - name: samples
      path: /samples
      operations:
      - name: listsamples
        method: GET
        description: List samples
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: status
          in: query
          type: string
        - name: sampleType
          in: query
          type: string
          description: Sample type code (e.g., "BLOOD", "PLASMA", "TABLET")
        - name: projectId
          in: query
          type: string
        - name: lotNumber
          in: query
          type: string
        - name: dateFrom
          in: query
          type: string
        - name: dateTo
          in: query
          type: string
        - name: pageSize
          in: query
          type: integer
        - name: page
          in: query
          type: integer
      - name: loginsample
        method: POST
        description: Login (register) a sample
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: samples-sampleId
      path: /samples/{sampleId}
      operations:
      - name: getsample
        method: GET
        description: Get sample details
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: sampleId
          in: path
          type: string
          description: LabVantage sample identifier (SDID)
          required: true
      - name: updatesample
        method: PATCH
        description: Update sample
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: sampleId
          in: path
          type: string
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    authentication:
      type: bearer
      token: '{{env.LABVANTAGE_API_KEY}}'
  exposes:
  - type: rest
    namespace: lims-samples-rest
    port: 8080
    description: REST adapter for LabVantage LIMS API — Samples. One Spectral-compliant resource per consumed operation, prefixed
      with /v1.
    resources:
    - path: /v1/samples
      name: samples
      description: REST surface for samples.
      operations:
      - method: GET
        name: listsamples
        description: List samples
        call: lims-samples.listsamples
        with:
          status: rest.status
          sampleType: rest.sampleType
          projectId: rest.projectId
          lotNumber: rest.lotNumber
          dateFrom: rest.dateFrom
          dateTo: rest.dateTo
          pageSize: rest.pageSize
          page: rest.page
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: loginsample
        description: Login (register) a sample
        call: lims-samples.loginsample
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/samples/{sampleid}
      name: samples-sampleid
      description: REST surface for samples-sampleId.
      operations:
      - method: GET
        name: getsample
        description: Get sample details
        call: lims-samples.getsample
        with:
          sampleId: rest.sampleId
        outputParameters:
        - type: object
          mapping: $.
      - method: PATCH
        name: updatesample
        description: Update sample
        call: lims-samples.updatesample
        with:
          sampleId: rest.sampleId
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: lims-samples-mcp
    port: 9090
    transport: http
    description: MCP adapter for LabVantage LIMS API — Samples. One tool per consumed operation, routed inline through this
      capability's consumes block.
    tools:
    - name: list-samples
      description: List samples
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: lims-samples.listsamples
      with:
        status: tools.status
        sampleType: tools.sampleType
        projectId: tools.projectId
        lotNumber: tools.lotNumber
        dateFrom: tools.dateFrom
        dateTo: tools.dateTo
        pageSize: tools.pageSize
        page: tools.page
      outputParameters:
      - type: object
        mapping: $.
    - name: login-register-sample
      description: Login (register) a sample
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: lims-samples.loginsample
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: get-sample-details
      description: Get sample details
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: lims-samples.getsample
      with:
        sampleId: tools.sampleId
      outputParameters:
      - type: object
        mapping: $.
    - name: update-sample
      description: Update sample
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: lims-samples.updatesample
      with:
        sampleId: tools.sampleId
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.