Scispot · Capability

Scispot Lab Data Management

Unified capability for managing laboratory data across Scispot's LIMS, ELN, sample tracking, sequence management, and container manifests. Enables computational biologists, lab automation engineers, and data scientists to programmatically access and manipulate all lab data in one unified workflow interface with REST and MCP adapters.

Run with Naftiko LaboratoryLIMSELNLife ScienceBiotechSamplesSequencesAutomation

What You Can Do

GET
List labsheets — List all LIMS labsheets in the workspace
/v1/labsheets
GET
Get labsheet rows — Retrieve all data rows from a labsheet
/v1/labsheets/{labsheetId}/rows
POST
Add labsheet row — Add a new row to a labsheet
/v1/labsheets/{labsheetId}/rows
GET
Get labsheet row — Get a specific row by ID
/v1/labsheets/{labsheetId}/rows/{rowId}
PUT
Update labsheet row — Update an existing labsheet row
/v1/labsheets/{labsheetId}/rows/{rowId}
DELETE
Delete labsheet row — Delete a labsheet row
/v1/labsheets/{labsheetId}/rows/{rowId}
GET
Search by barcode — Find all records associated with a sample barcode
/v1/samples/search/{barcode}
GET
List notebooks — List all Electronic Lab Notebooks
/v1/notebooks
GET
List notebook entries — List entries in a notebook
/v1/notebooks/{notebookId}/entries
POST
Create notebook entry — Create a new notebook entry
/v1/notebooks/{notebookId}/entries
GET
List manifests — List all physical container manifests
/v1/manifests
POST
Create manifest — Create a new physical container manifest
/v1/manifests
GET
Get manifest — Get a specific manifest with its contents
/v1/manifests/{manifestId}
GET
List sequences — List all biological sequences
/v1/sequences
POST
Create sequence — Add a new biological sequence
/v1/sequences
GET
Get sequence — Get a specific sequence with annotations
/v1/sequences/{sequenceId}
PUT
Update sequence — Update a biological sequence
/v1/sequences/{sequenceId}

MCP Tools

list-labsheets

List all LIMS labsheets (data tables) in the Scispot workspace. Labsheets are used for sample registries, assay results, inventory tracking, and any structured lab data.

read-only idempotent
get-labsheet-rows

Retrieve all data rows from a specific Scispot labsheet. Returns the full dataset with all column values for each row in the specified LIMS table.

read-only idempotent
add-labsheet-row

Add a new data row to a Scispot labsheet. Supports barcode assignment and custom column values. Use for sample registration, assay result entry, and inventory updates.

update-labsheet-row

Update an existing row in a Scispot labsheet with new column values. Used for updating sample status, adding results, or correcting data.

idempotent
delete-labsheet-row

Delete a row from a Scispot labsheet. Use with caution as this permanently removes the record from the LIMS.

idempotent
search-by-barcode

Search all Scispot data by sample barcode. Returns all records across labsheets and experiments associated with the specified barcode.

read-only idempotent
list-notebooks

List all Electronic Lab Notebook (ELN) notebooks in the Scispot workspace. Notebooks contain experimental protocols, observations, and research notes.

read-only idempotent
create-notebook-entry

Create a new entry in a Scispot ELN notebook. Entries can be experiments, protocol executions, observations, or research notes.

list-manifests

List all physical container manifests (plates, boxes, racks) in the Scispot workspace. Manifests track sample storage organization.

read-only idempotent
create-manifest

Create a new physical container manifest (plate, box, or rack) in Scispot for organizing and tracking sample storage.

list-sequences

List all biological sequences (DNA, RNA, protein, chemical) stored in the Scispot workspace with their metadata and annotations.

read-only idempotent
create-sequence

Add a new biological sequence to the Scispot database. Supports DNA, RNA, protein, and chemical structure sequences with full annotation support.

get-sequence

Retrieve a specific biological sequence by ID including its full sequence string, annotations, features, and associated metadata.

read-only idempotent

APIs Used

scispot

Capability Spec

Raw ↑
naftiko: "1.0.0-alpha1"

info:
  label: "Scispot Lab Data Management"
  description: >-
    Unified capability for managing laboratory data across Scispot's LIMS,
    ELN, sample tracking, sequence management, and container manifests.
    Enables computational biologists, lab automation engineers, and data
    scientists to programmatically access and manipulate all lab data
    in one unified workflow interface with REST and MCP adapters.
  tags:
    - Laboratory
    - LIMS
    - ELN
    - Life Science
    - Biotech
    - Samples
    - Sequences
    - Automation
  created: "2026-05-02"
  modified: "2026-05-02"

binds:
  - namespace: env
    keys:
      SCISPOT_API_KEY: SCISPOT_API_KEY

capability:
  consumes:
    - import: scispot
      location: ./shared/scispot.yaml

  exposes:
    - type: rest
      port: 8080
      namespace: scispot-lab-management-api
      description: "Unified REST API for Scispot lab data management workflows."
      resources:
        - path: /v1/labsheets
          name: labsheets
          description: "LIMS labsheet management"
          operations:
            - method: GET
              name: list-labsheets
              description: "List all LIMS labsheets in the workspace"
              call: "scispot.list-labsheets"
              outputParameters:
                - type: object
                  mapping: "$."

        - path: /v1/labsheets/{labsheetId}/rows
          name: labsheet-rows
          description: "Labsheet row data management"
          operations:
            - method: GET
              name: get-labsheet-rows
              description: "Retrieve all data rows from a labsheet"
              call: "scispot.get-labsheet-rows"
              with:
                labsheetId: "rest.labsheetId"
              outputParameters:
                - type: object
                  mapping: "$."
            - method: POST
              name: add-labsheet-row
              description: "Add a new row to a labsheet"
              call: "scispot.add-labsheet-row"
              with:
                labsheetId: "rest.labsheetId"
              outputParameters:
                - type: object
                  mapping: "$."

        - path: /v1/labsheets/{labsheetId}/rows/{rowId}
          name: labsheet-row
          description: "Individual labsheet row operations"
          operations:
            - method: GET
              name: get-labsheet-row
              description: "Get a specific row by ID"
              call: "scispot.get-labsheet-row"
              with:
                labsheetId: "rest.labsheetId"
                rowId: "rest.rowId"
              outputParameters:
                - type: object
                  mapping: "$."
            - method: PUT
              name: update-labsheet-row
              description: "Update an existing labsheet row"
              call: "scispot.update-labsheet-row"
              with:
                labsheetId: "rest.labsheetId"
                rowId: "rest.rowId"
              outputParameters:
                - type: object
                  mapping: "$."
            - method: DELETE
              name: delete-labsheet-row
              description: "Delete a labsheet row"
              call: "scispot.delete-labsheet-row"
              with:
                labsheetId: "rest.labsheetId"
                rowId: "rest.rowId"
              outputParameters:
                - type: object
                  mapping: "$."

        - path: /v1/samples/search/{barcode}
          name: barcode-lookup
          description: "Sample lookup by barcode"
          operations:
            - method: GET
              name: search-by-barcode
              description: "Find all records associated with a sample barcode"
              call: "scispot.search-by-barcode"
              with:
                barcode: "rest.barcode"
              outputParameters:
                - type: object
                  mapping: "$."

        - path: /v1/notebooks
          name: notebooks
          description: "ELN notebook management"
          operations:
            - method: GET
              name: list-notebooks
              description: "List all Electronic Lab Notebooks"
              call: "scispot.list-notebooks"
              outputParameters:
                - type: object
                  mapping: "$."

        - path: /v1/notebooks/{notebookId}/entries
          name: notebook-entries
          description: "ELN notebook entry management"
          operations:
            - method: GET
              name: list-notebook-entries
              description: "List entries in a notebook"
              call: "scispot.list-notebook-entries"
              with:
                notebookId: "rest.notebookId"
              outputParameters:
                - type: object
                  mapping: "$."
            - method: POST
              name: create-notebook-entry
              description: "Create a new notebook entry"
              call: "scispot.create-notebook-entry"
              with:
                notebookId: "rest.notebookId"
              outputParameters:
                - type: object
                  mapping: "$."

        - path: /v1/manifests
          name: manifests
          description: "Container manifest management (plates, boxes, racks)"
          operations:
            - method: GET
              name: list-manifests
              description: "List all physical container manifests"
              call: "scispot.list-manifests"
              outputParameters:
                - type: object
                  mapping: "$."
            - method: POST
              name: create-manifest
              description: "Create a new physical container manifest"
              call: "scispot.create-manifest"
              outputParameters:
                - type: object
                  mapping: "$."

        - path: /v1/manifests/{manifestId}
          name: manifest-detail
          description: "Individual manifest operations"
          operations:
            - method: GET
              name: get-manifest
              description: "Get a specific manifest with its contents"
              call: "scispot.get-manifest"
              with:
                manifestId: "rest.manifestId"
              outputParameters:
                - type: object
                  mapping: "$."

        - path: /v1/sequences
          name: sequences
          description: "Biological sequence management"
          operations:
            - method: GET
              name: list-sequences
              description: "List all biological sequences"
              call: "scispot.list-sequences"
              outputParameters:
                - type: object
                  mapping: "$."
            - method: POST
              name: create-sequence
              description: "Add a new biological sequence"
              call: "scispot.create-sequence"
              outputParameters:
                - type: object
                  mapping: "$."

        - path: /v1/sequences/{sequenceId}
          name: sequence-detail
          description: "Individual sequence operations"
          operations:
            - method: GET
              name: get-sequence
              description: "Get a specific sequence with annotations"
              call: "scispot.get-sequence"
              with:
                sequenceId: "rest.sequenceId"
              outputParameters:
                - type: object
                  mapping: "$."
            - method: PUT
              name: update-sequence
              description: "Update a biological sequence"
              call: "scispot.update-sequence"
              with:
                sequenceId: "rest.sequenceId"
              outputParameters:
                - type: object
                  mapping: "$."

    - type: mcp
      port: 9090
      namespace: scispot-lab-management-mcp
      transport: http
      description: "MCP server for AI-assisted lab data management using Scispot."
      tools:
        - name: list-labsheets
          description: >-
            List all LIMS labsheets (data tables) in the Scispot workspace. Labsheets
            are used for sample registries, assay results, inventory tracking, and
            any structured lab data.
          hints:
            readOnly: true
            idempotent: true
          call: "scispot.list-labsheets"
          outputParameters:
            - type: object
              mapping: "$."

        - name: get-labsheet-rows
          description: >-
            Retrieve all data rows from a specific Scispot labsheet. Returns the full
            dataset with all column values for each row in the specified LIMS table.
          hints:
            readOnly: true
            idempotent: true
          call: "scispot.get-labsheet-rows"
          with:
            labsheetId: "tools.labsheetId"
          outputParameters:
            - type: object
              mapping: "$."

        - name: add-labsheet-row
          description: >-
            Add a new data row to a Scispot labsheet. Supports barcode assignment and
            custom column values. Use for sample registration, assay result entry,
            and inventory updates.
          hints:
            readOnly: false
            destructive: false
            idempotent: false
          call: "scispot.add-labsheet-row"
          with:
            labsheetId: "tools.labsheetId"
            barcode: "tools.barcode"
            data: "tools.data"
          outputParameters:
            - type: object
              mapping: "$."

        - name: update-labsheet-row
          description: >-
            Update an existing row in a Scispot labsheet with new column values.
            Used for updating sample status, adding results, or correcting data.
          hints:
            readOnly: false
            destructive: false
            idempotent: true
          call: "scispot.update-labsheet-row"
          with:
            labsheetId: "tools.labsheetId"
            rowId: "tools.rowId"
            data: "tools.data"
          outputParameters:
            - type: object
              mapping: "$."

        - name: delete-labsheet-row
          description: >-
            Delete a row from a Scispot labsheet. Use with caution as this
            permanently removes the record from the LIMS.
          hints:
            readOnly: false
            destructive: true
            idempotent: true
          call: "scispot.delete-labsheet-row"
          with:
            labsheetId: "tools.labsheetId"
            rowId: "tools.rowId"
          outputParameters:
            - type: object
              mapping: "$."

        - name: search-by-barcode
          description: >-
            Search all Scispot data by sample barcode. Returns all records across
            labsheets and experiments associated with the specified barcode.
          hints:
            readOnly: true
            idempotent: true
          call: "scispot.search-by-barcode"
          with:
            barcode: "tools.barcode"
          outputParameters:
            - type: object
              mapping: "$."

        - name: list-notebooks
          description: >-
            List all Electronic Lab Notebook (ELN) notebooks in the Scispot workspace.
            Notebooks contain experimental protocols, observations, and research notes.
          hints:
            readOnly: true
            idempotent: true
          call: "scispot.list-notebooks"
          outputParameters:
            - type: object
              mapping: "$."

        - name: create-notebook-entry
          description: >-
            Create a new entry in a Scispot ELN notebook. Entries can be experiments,
            protocol executions, observations, or research notes.
          hints:
            readOnly: false
            destructive: false
            idempotent: false
          call: "scispot.create-notebook-entry"
          with:
            notebookId: "tools.notebookId"
            title: "tools.title"
            entry_type: "tools.entry_type"
            content: "tools.content"
          outputParameters:
            - type: object
              mapping: "$."

        - name: list-manifests
          description: >-
            List all physical container manifests (plates, boxes, racks) in the
            Scispot workspace. Manifests track sample storage organization.
          hints:
            readOnly: true
            idempotent: true
          call: "scispot.list-manifests"
          outputParameters:
            - type: object
              mapping: "$."

        - name: create-manifest
          description: >-
            Create a new physical container manifest (plate, box, or rack) in Scispot
            for organizing and tracking sample storage.
          hints:
            readOnly: false
            destructive: false
            idempotent: false
          call: "scispot.create-manifest"
          with:
            name: "tools.name"
            container_type: "tools.container_type"
            barcode: "tools.barcode"
          outputParameters:
            - type: object
              mapping: "$."

        - name: list-sequences
          description: >-
            List all biological sequences (DNA, RNA, protein, chemical) stored
            in the Scispot workspace with their metadata and annotations.
          hints:
            readOnly: true
            idempotent: true
          call: "scispot.list-sequences"
          outputParameters:
            - type: object
              mapping: "$."

        - name: create-sequence
          description: >-
            Add a new biological sequence to the Scispot database. Supports DNA,
            RNA, protein, and chemical structure sequences with full annotation support.
          hints:
            readOnly: false
            destructive: false
            idempotent: false
          call: "scispot.create-sequence"
          with:
            name: "tools.name"
            sequence_type: "tools.sequence_type"
            sequence: "tools.sequence"
          outputParameters:
            - type: object
              mapping: "$."

        - name: get-sequence
          description: >-
            Retrieve a specific biological sequence by ID including its full sequence
            string, annotations, features, and associated metadata.
          hints:
            readOnly: true
            idempotent: true
          call: "scispot.get-sequence"
          with:
            sequenceId: "tools.sequenceId"
          outputParameters:
            - type: object
              mapping: "$."