Verbex Lab Tools

Deterministic wet-lab calculators and lab document templates, with checked notebook entries.

Sollte ich dies verwenden

Qualität und Sicherheit

A
Qualität der Beschreibung
97%
Vollständigkeit des Schemas
88%
Qualität der Benennung
86%
Risiko der Vergiftung
100%
Übereinstimmung der Berechtigungen
90%
Einhaltung des Protokolls
100%

Befunde (2)

  • LOWTool 'serial_dilution' description lacks action verbin serial_dilution
  • LOWTool 'fetch' suggests web access but openWorldHint=falsein fetch

Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.

Kontextkosten

~5,624Tokens (Tool-Definitionen)
~5.4 KBTypische Antwortgröße
Erhebliche Auswirkung auf die Aufmerksamkeit (4.39% von 128k Kontext)

Dies ist die ungefähre Anzahl der Tokens, die jedes Mal verbraucht werden, wenn die Tools des Servers in den Kontext eines Modells geladen werden. Höhere Werte verringern die Aufmerksamkeit, die für andere Aufgaben verfügbar ist.

Installieren

Installation mit einem Klick

Fügen Sie dies Ihrer Datei `claude_desktop_config.json` hinzu:

{
  "mcpServers": {
    "lab-tools": {
      "url": "https://www.verbalexperiment.com/mcp"
    }
  }
}

Remote-Endpunkte

https://www.verbalexperiment.com/mcpstreamable-http

Was es kann

Tool-Inventar

Tools (10)

🟢 Nur lesen🟡 Schreiben🔴 Löschen⚪ Unbekannt
🟢search(query, type, limit)

Search Verbex guides and templates: practical guides (protocols and SOPs, lab notebooks, inventory, data integrity and GLP, equipment records, bench calculations) and the 16 lab documentation templates. Returns ids to pass to fetch, with titles and urls to cite. Not for calculations: to compute a mass, volume, dilution, master mix, LNP formulation or plate map, call that calculator directly.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "What the scientist needs, in plain words, e.g. \"freezer sample inventory\" or \"write an SOP\"."
    },
    "type": {
      "type": "string",
      "enum": [
        "guide",
        "template",
        "tool"
      ],
      "description": "Optional: only guides or only templates. \"tool\" lists the calculators, which you can call without searching."
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 20,
      "default": 8
    }
  },
  "required": [
    "query"
  ],
  "additionalProperties": false
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "results": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "url": {
            "type": "string"
          },
          "type": {
            "type": "string",
            "enum": [
              "guide",
              "template",
              "tool"
            ]
          },
          "snippet": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "title",
          "url"
        ]
      }
    }
  },
  "required": [
    "results"
  ]
}
🟢fetch(id)

Get the full text of a search result by id, as Markdown. Guides come with a short summary; templates include the blank template, a worked example where there is one, and a link to the editable Word or Excel file. Calculators return the method, the input fields and a worked example computed by the calculator.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "An id from search, e.g. \"template:experiment-plan\" or \"guide:lab-sop-template\"."
    }
  },
  "required": [
    "id"
  ],
  "additionalProperties": false
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string"
    },
    "title": {
      "type": "string"
    },
    "text": {
      "type": "string"
    },
    "url": {
      "type": "string"
    },
    "metadata": {
      "type": "object"
    }
  },
  "required": [
    "id",
    "title",
    "text",
    "url"
  ]
}
🟢solution_prep(mode, solutionName, solvent, molecularWeight, targetConcentration, ...)

Use when someone asks how much solid to weigh for a molar solution (how many grams for X mM in Y mL, making up a buffer or salt solution), or how much stock to dilute to a target concentration (C1V1). mode "solid": mass of solid to weigh from molecular weight, target concentration and final volume. mode "stock": C1V1 = C2V2 dilution from a stock, solving for stockVolume, stockConcentration, targetConcentration or finalVolume. Returns the primary result, a step summary, warnings and safety notes.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "mode": {
      "type": "string",
      "enum": [
        "solid",
        "stock"
      ],
      "description": "Use solid to calculate mass from molecular weight, or stock for C1V1 dilution."
    },
    "solutionName": {
      "type": "string",
      "description": "Name for the solution being prepared."
    },
    "solvent": {
      "type": "string",
      "description": "Solvent or diluent to include in the preparation note."
    },
    "molecularWeight": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Molecular weight in g/mol. Required when mode is solid."
    },
    "targetConcentration": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "C2 final or desired target concentration."
    },
    "targetConcentrationUnit": {
      "type": "string",
      "enum": [
        "M",
        "mM",
        "uM",
        "nM"
      ]
    },
    "finalVolume": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "V2 final preparation volume."
    },
    "finalVolumeUnit": {
      "type": "string",
      "enum": [
        "L",
        "mL",
        "uL"
      ]
    },
    "solveFor": {
      "type": "string",
      "enum": [
        "stockVolume",
        "stockConcentration",
        "targetConcentration",
        "finalVolume"
      ],
      "description": "For stock mode, choose which C1V1 variable to solve."
    },
    "stockConcentration": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "C1 starting stock concentration."
    },
    "stockConcentrationUnit": {
      "type": "string",
      "enum": [
        "M",
        "mM",
        "uM",
        "nM"
      ]
    },
    "stockVolume": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "V1 stock volume."
    },
    "stockVolumeUnit": {
      "type": "string",
      "enum": [
        "L",
        "mL",
        "uL"
      ]
    }
  },
  "description": "Input contract for the Verbex molarity and solution preparation endpoint.",
  "additionalProperties": true,
  "allOf": [
    {
      "if": {
        "properties": {
          "mode": {
            "const": "solid"
          }
        },
        "required": [
          "mode"
        ]
      },
      "then": {
        "required": [
          "targetConcentration",
          "targetConcentrationUnit",
          "finalVolume",
          "finalVolumeUnit",
          "molecularWeight"
        ]
      }
    },
    {
      "if": {
        "properties": {
          "mode": {
            "const": "stock"
          }
        },
        "required": [
          "mode"
        ]
      },
      "then": {
        "required": [
          "solveFor",
          "stockConcentrationUnit",
          "stockVolumeUnit",
          "targetConcentrationUnit",
          "finalVolumeUnit"
        ],
        "oneOf": [
          {
            "properties": {
              "solveFor": {
                "const": "stockConcentration"
              }
            },
            "required": [
              "stockVolume",
              "targetConcentration",
              "finalVolume"
            ]
          },
          {
            "properties": {
              "solveFor": {
                "const": "stockVolume"
              }
            },
            "required": [
              "stockConcentration",
              "targetConcentration",
              "finalVolume"
            ]
          },
          {
            "properties": {
              "solveFor": {
                "const": "targetConcentration"
              }
            },
            "required": [
              "stockConcentration",
              "stockVolume",
              "finalVolume"
            ]
          },
          {
            "properties": {
              "solveFor": {
                "const": "finalVolume"
              }
            },
            "required": [
              "stockConcentration",
              "stockVolume",
              "targetConcentration"
            ]
          }
        ]
      }
    }
  ]
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "tool": {
      "type": "string"
    },
    "toolVersion": {
      "type": "string"
    },
    "notebookEntry": {
      "type": [
        "string",
        "null"
      ],
      "description": "Markdown entry to paste into a lab notebook."
    },
    "result": {
      "type": [
        "object",
        "null"
      ]
    },
    "validationErrors": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "warnings": {
      "type": "array"
    },
    "safetyNotes": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "humanUrl": {
      "type": "string"
    },
    "card": {
      "type": [
        "object",
        "null"
      ],
      "description": "What the Verbex card draws; same values as the notebook entry."
    }
  },
  "required": [
    "tool"
  ]
}
🟢serial_dilution(seriesName, stockConcentration, concentrationUnit, dilutionFactor, steps, ...)

Use for any serial dilution (standard curves, titrations, dose series). Plans transfer and diluent volume per tube and the resulting concentration at each step, from a stock concentration, a constant dilution factor, the number of tubes and the final volume per tube.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "seriesName": {
      "type": "string",
      "description": "Name for the dilution series."
    },
    "stockConcentration": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Starting stock concentration before the first dilution."
    },
    "concentrationUnit": {
      "type": "string",
      "enum": [
        "M",
        "mM",
        "uM",
        "nM",
        "pM",
        "mg/mL",
        "ug/mL",
        "ng/uL",
        "ng/mL",
        "x"
      ],
      "description": "Unit for stock and calculated final concentrations."
    },
    "dilutionFactor": {
      "type": "number",
      "exclusiveMinimum": 1,
      "description": "Constant dilution factor applied at each dilution step."
    },
    "steps": {
      "type": "integer",
      "minimum": 1,
      "maximum": 12,
      "description": "Number of dilution tubes to generate."
    },
    "finalVolume": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Final volume in each tube."
    },
    "volumeUnit": {
      "type": "string",
      "enum": [
        "uL",
        "mL"
      ],
      "description": "Volume unit for transfer, diluent, and final tube volumes."
    }
  },
  "description": "Input contract for the Verbex serial dilution calculator endpoint.",
  "additionalProperties": true
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "tool": {
      "type": "string"
    },
    "toolVersion": {
      "type": "string"
    },
    "notebookEntry": {
      "type": [
        "string",
        "null"
      ],
      "description": "Markdown entry to paste into a lab notebook."
    },
    "result": {
      "type": [
        "object",
        "null"
      ]
    },
    "validationErrors": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "warnings": {
      "type": "array"
    },
    "safetyNotes": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "humanUrl": {
      "type": "string"
    },
    "card": {
      "type": [
        "object",
        "null"
      ],
      "description": "What the Verbex card draws; same values as the notebook entry."
    }
  },
  "required": [
    "tool"
  ]
}
🟢pcr_master_mix(reactionName, reactions, reactionVolume, reactionVolumeUnit, excessPercent, ...)

Use when someone sets up a PCR or qPCR reaction mix for several wells. Calculates volume of each component per reaction and for the whole mix with excess, with water filling the remaining volume. Give each component a stock and final concentration (molar, ng/µL, x buffer, %), an amount per reaction (e.g. 1.25 U polymerase from 5 U/µL, 10 ng template from ng/µL), or a fixed volume. Template can be added per well separately. Do not list water; it is calculated.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "reactionName": {
      "type": "string",
      "description": "Name for the master mix, e.g. 'IL-6 qPCR plate 2'."
    },
    "reactions": {
      "type": "integer",
      "minimum": 1,
      "maximum": 10000,
      "description": "Number of reactions (wells), including controls."
    },
    "reactionVolume": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Total volume of one reaction, including template."
    },
    "reactionVolumeUnit": {
      "type": "string",
      "enum": [
        "uL",
        "mL",
        "nL"
      ],
      "default": "uL"
    },
    "excessPercent": {
      "type": "number",
      "minimum": 0,
      "maximum": 100,
      "default": 10,
      "description": "Extra master mix to cover pipetting loss, as a percent of the reactions."
    },
    "templateVolume": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Template volume added to each well separately (not in the master mix)."
    },
    "templateVolumeUnit": {
      "type": "string",
      "enum": [
        "uL",
        "mL",
        "nL"
      ],
      "description": "Defaults to the reaction volume unit."
    },
    "components": {
      "type": "array",
      "minItems": 1,
      "description": "Master mix components except water (water fills the remaining volume). Give each either a stock and final concentration (or amount per reaction), or a fixed volume per reaction.",
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "name"
        ],
        "properties": {
          "name": {
            "type": "string",
            "description": "Component name, e.g. '2x SYBR Green mix', 'Forward primer', 'Taq polymerase'."
          },
          "stockConcentration": {
            "type": "number",
            "exclusiveMinimum": 0,
            "description": "Concentration of the stock tube."
          },
          "stockUnit": {
            "type": "string",
            "enum": [
              "M",
              "mM",
              "uM",
              "nM",
              "pM",
              "g/L",
              "mg/mL",
              "ug/uL",
              "ug/mL",
              "ng/uL",
              "ng/mL",
              "U/uL",
              "U/mL",
              "x",
              "%"
            ],
            "description": "Stock unit: molar, mass per volume, U/µL for enzymes, x for fold buffers, % for percent."
          },
          "finalConcentration": {
            "type": "number",
            "exclusiveMinimum": 0,
            "description": "Final concentration in the reaction (same kind of unit as the stock), or an amount per reaction (U, ng, pmol) when the stock is a concentration."
          },
          "finalUnit": {
            "type": "string",
            "enum": [
              "M",
              "mM",
              "uM",
              "nM",
              "pM",
              "g/L",
              "mg/mL",
              "ug/uL",
              "ug/mL",
              "ng/uL",
              "ng/mL",
              "U/uL",
              "U/mL",
              "x",
              "%",
              "mol",
              "mmol",
              "umol",
              "nmol",
              "pmol",
              "g",
              "mg",
              "ug",
              "ng",
              "pg",
              "U"
            ]
          },
          "volumePerReaction": {
            "type": "number",
            "minimum": 0,
            "description": "Use instead of stock/final to add a fixed volume per reaction."
          },
          "volumeUnit": {
            "type": "string",
            "enum": [
              "uL",
              "mL",
              "nL"
            ],
            "default": "uL"
          }
        }
      }
    }
  },
  "description": "Input contract for the Verbex PCR and qPCR master mix calculator. Water is calculated automatically to fill each reaction.",
  "additionalProperties": true
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "tool": {
      "type": "string"
    },
    "toolVersion": {
      "type": "string"
    },
    "notebookEntry": {
      "type": [
        "string",
        "null"
      ],
      "description": "Markdown entry to paste into a lab notebook."
    },
    "result": {
      "type": [
        "object",
        "null"
      ]
    },
    "validationErrors": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "warnings": {
      "type": "array"
    },
    "safetyNotes": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "humanUrl": {
      "type": "string"
    },
    "card": {
      "type": [
        "object",
        "null"
      ],
      "description": "What the Verbex card draws; same values as the notebook entry."
    }
  },
  "required": [
    "tool"
  ]
}
🟢lnp_formulation(formulationName, rnaMass, rnaMassUnit, rnaStockConcentration, rnaStockUnit, ...)

Plan a lipid nanoparticle (LNP) formulation for RNA: from RNA mass, N/P ratio and lipid mol% (e.g. ionizable lipid/DSPC/cholesterol/PEG-lipid 50/10/38.5/1.5), calculate moles, mass and stock volume of every lipid, the ethanol and aqueous phase volumes at the chosen mixing ratio (default 3:1), and final RNA concentration, ethanol fraction and lipid:RNA ratio. Molecular weights must come from the user or certificates of analysis.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "formulationName": {
      "type": "string"
    },
    "rnaMass": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Mass of RNA (mRNA, siRNA, sgRNA) to encapsulate."
    },
    "rnaMassUnit": {
      "type": "string",
      "enum": [
        "ug",
        "mg",
        "ng",
        "g"
      ],
      "default": "ug"
    },
    "rnaStockConcentration": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Concentration of the RNA stock."
    },
    "rnaStockUnit": {
      "type": "string",
      "enum": [
        "mg/mL",
        "ug/uL",
        "ug/mL",
        "ng/uL"
      ],
      "default": "mg/mL"
    },
    "npRatio": {
      "type": "number",
      "exclusiveMinimum": 0,
      "default": 6,
      "description": "Molar ratio of ionizable-lipid amines (N) to RNA phosphates (P)."
    },
    "nucleotideMolecularWeight": {
      "type": "number",
      "exclusiveMinimum": 0,
      "default": 330,
      "description": "Average mass per nucleotide used to estimate RNA phosphate (g/mol)."
    },
    "aqueousToEthanolRatio": {
      "type": "number",
      "exclusiveMinimum": 0,
      "default": 3,
      "description": "Volume ratio of aqueous (RNA) phase to ethanol (lipid) phase at mixing; 3 means 3:1."
    },
    "aqueousVolume": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Volume of the aqueous RNA phase."
    },
    "aqueousVolumeUnit": {
      "type": "string",
      "enum": [
        "uL",
        "mL",
        "L"
      ],
      "default": "uL"
    },
    "lipids": {
      "type": "array",
      "minItems": 2,
      "description": "Every lipid in the formulation; mol% must add up to 100 and exactly one is the ionizable lipid.",
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "name",
          "molPercent",
          "molecularWeight",
          "stockConcentration"
        ],
        "properties": {
          "name": {
            "type": "string",
            "description": "e.g. 'SM-102', 'DSPC', 'Cholesterol', 'DMG-PEG2000'."
          },
          "molPercent": {
            "type": "number",
            "exclusiveMinimum": 0,
            "maximum": 100
          },
          "molecularWeight": {
            "type": "number",
            "exclusiveMinimum": 0,
            "description": "g/mol, from the certificate of analysis (PEG-lipids are averages)."
          },
          "stockConcentration": {
            "type": "number",
            "exclusiveMinimum": 0,
            "description": "Concentration of the lipid stock in ethanol."
          },
          "stockUnit": {
            "type": "string",
            "enum": [
              "mg/mL",
              "mM"
            ],
            "default": "mg/mL"
          },
          "ionizable": {
            "type": "boolean",
            "default": false,
            "description": "True for the ionizable (cationic) lipid that sets the N/P ratio."
          },
          "aminesPerMolecule": {
            "type": "integer",
            "minimum": 1,
            "default": 1,
            "description": "Ionizable amines per molecule of the ionizable lipid."
          }
        }
      }
    }
  },
  "description": "Input contract for the Verbex lipid nanoparticle (LNP) formulation calculator: lipid amounts from RNA mass, N/P ratio and lipid mol%, and the ethanol and aqueous phase volumes for mixing.",
  "additionalProperties": true
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "tool": {
      "type": "string"
    },
    "toolVersion": {
      "type": "string"
    },
    "notebookEntry": {
      "type": [
        "string",
        "null"
      ],
      "description": "Markdown entry to paste into a lab notebook."
    },
    "result": {
      "type": [
        "object",
        "null"
      ]
    },
    "validationErrors": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "warnings": {
      "type": "array"
    },
    "safetyNotes": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "humanUrl": {
      "type": "string"
    },
    "card": {
      "type": [
        "object",
        "null"
      ],
      "description": "What the Verbex card draws; same values as the notebook entry."
    }
  },
  "required": [
    "tool"
  ]
}
🟢plate_map(plateName, format, samples, replicates, standards, ...)

Use when someone lays out a multiwell plate (ELISA, qPCR, cell or compound assays). Lays out a 6, 12, 24, 48, 96 or 384-well plate: standards, samples, controls and blanks with replicates, filled by row or column, optionally leaving edge wells empty and keeping replicate sets together. Returns a grid with a key and a well-by-well list.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "plateName": {
      "type": "string"
    },
    "format": {
      "type": "integer",
      "enum": [
        6,
        12,
        24,
        48,
        96,
        384
      ],
      "default": 96
    },
    "samples": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Unique sample names, in placement order."
    },
    "replicates": {
      "type": "integer",
      "minimum": 1,
      "maximum": 24,
      "default": 3,
      "description": "Replicates per sample."
    },
    "standards": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "points"
      ],
      "description": "Optional standard curve, placed first.",
      "properties": {
        "name": {
          "type": "string",
          "default": "Std",
          "description": "Short prefix, e.g. 'Std'."
        },
        "points": {
          "type": "integer",
          "minimum": 1,
          "maximum": 24
        },
        "replicates": {
          "type": "integer",
          "minimum": 1,
          "maximum": 24
        }
      }
    },
    "controls": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Control names (e.g. 'NTC', 'Positive control'), placed after samples."
    },
    "controlReplicates": {
      "type": "integer",
      "minimum": 1,
      "maximum": 24,
      "description": "Defaults to the sample replicates."
    },
    "blanks": {
      "type": "integer",
      "minimum": 0,
      "default": 0,
      "description": "Number of blank wells, placed last."
    },
    "fillDirection": {
      "type": "string",
      "enum": [
        "row",
        "column"
      ],
      "default": "row",
      "description": "Fill across rows (A1, A2, …) or down columns (A1, B1, …)."
    },
    "avoidEdges": {
      "type": "boolean",
      "default": false,
      "description": "Leave the outer wells empty to reduce edge effects."
    },
    "keepReplicatesTogether": {
      "type": "boolean",
      "default": true,
      "description": "Start a new row or column instead of splitting a replicate set."
    }
  },
  "description": "Input contract for the Verbex plate map builder: lays out samples, standards, controls and blanks with replicates on 6- to 384-well plates.",
  "additionalProperties": true
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "tool": {
      "type": "string"
    },
    "toolVersion": {
      "type": "string"
    },
    "notebookEntry": {
      "type": [
        "string",
        "null"
      ],
      "description": "Markdown entry to paste into a lab notebook."
    },
    "result": {
      "type": [
        "object",
        "null"
      ]
    },
    "validationErrors": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "warnings": {
      "type": "array"
    },
    "safetyNotes": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "humanUrl": {
      "type": "string"
    },
    "card": {
      "type": [
        "object",
        "null"
      ],
      "description": "What the Verbex card draws; same values as the notebook entry."
    }
  },
  "required": [
    "tool"
  ]
}
🟢protocol_template(protocolTitle, presetId, preset, includeExecutionNotes, includeVersionHistory, ...)

Build a structured lab protocol (purpose, materials, procedure, critical steps, acceptance criteria and more) for a protocol title, using a preset or custom sections. Returns Markdown and HTML ready to fill in or print.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "protocolTitle": {
      "type": "string",
      "description": "Title for the protocol scaffold."
    },
    "presetId": {
      "type": "string",
      "enum": [
        "general",
        "elisa",
        "westernBlot",
        "qpcr",
        "cellCulture"
      ],
      "description": "Protocol scaffold preset to use."
    },
    "preset": {
      "type": "string",
      "enum": [
        "general",
        "elisa",
        "westernBlot",
        "qpcr",
        "cellCulture"
      ],
      "description": "Alias for presetId."
    },
    "includeExecutionNotes": {
      "type": "boolean",
      "description": "Whether to include ELN execution notes for running the protocol."
    },
    "includeVersionHistory": {
      "type": "boolean",
      "description": "Whether to include protocol version history when present in sectionItems."
    },
    "sectionItems": {
      "$ref": "#/$defs/sectionItems"
    },
    "sections": {
      "$ref": "#/$defs/sectionItems",
      "description": "Alias for sectionItems."
    }
  },
  "description": "Input contract for the Verbex lab protocol template builder endpoint.",
  "additionalProperties": true,
  "$defs": {
    "sectionItems": {
      "type": "array",
      "description": "Ordered protocol sections to include. Library sections use source=library and an existing id. Custom sections use source=custom with a title.",
      "items": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string"
          },
          "source": {
            "type": "string",
            "enum": [
              "library",
              "custom"
            ]
          },
          "title": {
            "type": "string"
          },
          "description": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "source"
        ]
      }
    }
  }
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "tool": {
      "type": "string"
    },
    "toolVersion": {
      "type": "string"
    },
    "notebookEntry": {
      "type": [
        "string",
        "null"
      ],
      "description": "Markdown entry to paste into a lab notebook."
    },
    "result": {
      "type": [
        "object",
        "null"
      ]
    },
    "validationErrors": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "warnings": {
      "type": "array"
    },
    "safetyNotes": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "humanUrl": {
      "type": "string"
    },
    "card": {
      "type": [
        "object",
        "null"
      ],
      "description": "What the Verbex card draws; same values as the notebook entry."
    }
  },
  "required": [
    "tool"
  ]
}
🟢eln_template(experimentTitle, presetId, preset, includeTimestamps, includeVoicePrompts, ...)

Build an electronic lab notebook (ELN) entry template for an experiment: objective, materials, procedure, observations and conclusion sections from a preset or custom list, optionally with timestamp fields and voice-capture prompts. Returns Markdown and HTML.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "experimentTitle": {
      "type": "string",
      "description": "Title for the ELN entry template."
    },
    "presetId": {
      "type": "string",
      "enum": [
        "general",
        "cellCulture",
        "molecularBiology",
        "chemistry"
      ],
      "description": "ELN template preset to use."
    },
    "preset": {
      "type": "string",
      "enum": [
        "general",
        "cellCulture",
        "molecularBiology",
        "chemistry"
      ],
      "description": "Alias for presetId."
    },
    "includeTimestamps": {
      "type": "boolean",
      "description": "Whether to include record metadata fields."
    },
    "includeVoicePrompts": {
      "type": "boolean",
      "description": "Whether to include Verbex-style section voice prompts."
    },
    "sectionItems": {
      "$ref": "#/$defs/sectionItems"
    },
    "sections": {
      "$ref": "#/$defs/sectionItems",
      "description": "Alias for sectionItems."
    }
  },
  "description": "Input contract for the Verbex ELN template builder endpoint.",
  "additionalProperties": true,
  "$defs": {
    "sectionItems": {
      "type": "array",
      "description": "Ordered ELN sections to include. Library sections use source=library and an existing id. Custom sections use source=custom with a title.",
      "items": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string"
          },
          "source": {
            "type": "string",
            "enum": [
              "library",
              "custom"
            ]
          },
          "title": {
            "type": "string"
          },
          "description": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "source"
        ]
      }
    }
  }
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "tool": {
      "type": "string"
    },
    "toolVersion": {
      "type": "string"
    },
    "notebookEntry": {
      "type": [
        "string",
        "null"
      ],
      "description": "Markdown entry to paste into a lab notebook."
    },
    "result": {
      "type": [
        "object",
        "null"
      ]
    },
    "validationErrors": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "warnings": {
      "type": "array"
    },
    "safetyNotes": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "humanUrl": {
      "type": "string"
    },
    "card": {
      "type": [
        "object",
        "null"
      ],
      "description": "What the Verbex card draws; same values as the notebook entry."
    }
  },
  "required": [
    "tool"
  ]
}
🟢parse_reagent_label(ocrText, sourceImageName, ocrConfidence)

Turn text read from a reagent bottle or kit label (OCR or typed) into structured fields such as product name, catalog number, lot, expiry, concentration and storage. Parses the provided text only; send the label text, not an image.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "ocrText": {
      "type": "string",
      "description": "OCR text extracted from a reagent label image. The browser tool performs OCR locally; this endpoint parses provided text only."
    },
    "sourceImageName": {
      "type": "string",
      "description": "Optional source image file name or identifier for review context."
    },
    "ocrConfidence": {
      "type": [
        "number",
        "null"
      ],
      "minimum": 0,
      "maximum": 100,
      "description": "Optional OCR confidence percentage from the OCR engine."
    }
  },
  "additionalProperties": true
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "tool": {
      "type": "string"
    },
    "toolVersion": {
      "type": "string"
    },
    "notebookEntry": {
      "type": [
        "string",
        "null"
      ],
      "description": "Markdown entry to paste into a lab notebook."
    },
    "result": {
      "type": [
        "object",
        "null"
      ]
    },
    "validationErrors": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "warnings": {
      "type": "array"
    },
    "safetyNotes": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "humanUrl": {
      "type": "string"
    },
    "card": {
      "type": [
        "object",
        "null"
      ],
      "description": "What the Verbex card draws; same values as the notebook entry."
    }
  },
  "required": [
    "tool"
  ]
}

Community

Diesen Server bewerten

Nachweis

Aktuelle Beobachtungen

verifiziertVersion nicht aufgezeichnet10 Tools