mcp server
workbench
Hosted DNA/RNA/protein tools: primers, oligos, PCR, cloning, CRISPR, alignment, batch & pipelines.
Description as published by the maintainer. Source
- version 1.0.0
- active
active — Registry entry last updated 2026-07-06.
What this server can do
86 functions, named and described by the server itself. Parameter names are shown because they say more about what a function does than its name usually does.
alphafold_lookup(accession)- Look up a UniProt accession in the AlphaFold Protein Structure Database (CC-BY 4.0). Returns confidence, model version and structure file URLs, or {found:false} when no prediction exists for that accession. Required: accession.
aso_design(wing, length, target)- Design antisense-oligonucleotide (ASO) gapmers against an mRNA target: scans candidate sites, builds the antisense oligo in the standard 5-10-5 architecture (chemically-modified wings, central DNA gap for RNase H1, phosphorothioate backbone), and screens each for known liabilities (G-quadruplex motifs, CpG immunostimulation, self-complementarity, GC extremes). No transcriptome-wide off-target search. Required: target.
base_editing_design(editor, target, frameStart, targetPosition)- Design cytosine (CBE, C→T) or adenine (ABE, A→G) base-editing gRNAs for an SpCas9 target: for each NGG gRNA it reports every editable base inside the editor's activity window, flags bystander edits (more than one editable base in the window), and — with a CDS reading frame — classifies each edit's amino-acid consequence (silent / missense / nonsense / stop-loss). Bystander-free guides are ranked first. Handles both strands (a C→T on the protospacer of a reverse-strand guide is reported as the forward-strand G→A). Required: target.
batch(args, tool, input)- Run one SeqBench tool over many records at once. `input` is multi-FASTA or one sequence per line; `tool` is any batchable tool name; `args` are shared arguments. Returns a table of per-record results. Required: tool, input.
characterize_sequence(maxOrfs, minOrfAa, sequence, endPrimerLength)- One-paste 'tell me everything': auto-detects DNA/RNA/protein, then reports composition, ORFs, single-cutter enzymes, end primers or protein properties, plus a BLAST link. Required: sequence.
cloning_simulate(names, enzyme, insert, method, vector, enzyme3, enzyme5, circular, topoMode, fragments, overlapLen, armTmTarget, vectorEnzyme3, vectorEnzyme5, dephosphorylateVector)- Assemble fragments by Gibson/overlap, Golden Gate (Type IIS) or restriction–ligation, returning the product and junction primers. Required: method.
codon_adaptation_index(organism, sequence, frameStart, rareThreshold)- Codon Adaptation Index (CAI) and per-codon relative adaptiveness of a CDS against an expression host, with rare-codon and GC3 analysis. Required: sequence.
codon_optimize(protein, organism, inputType)- Codon-optimise a protein (or coding DNA) for an expression host by picking the most-frequent codon per residue. Required: protein.
construct_autofix(gcLow, gcHigh, gcWindow, organism, sequence, maxPasses, frameStart, avoidEnzymes, homopolymerMin, crypticOrfMinAa)- Iteratively substitutes synonymous codons to resolve unwanted restriction sites (domestication for Golden Gate), homopolymers, tandem repeats, predicted secondary structure, cryptic RBS/polyA motifs and hidden alternate-frame ORFs that construct_qc flags — without changing the encoded protein (verified). Does NOT touch premature stops or GC extremes; re-run construct_qc afterward to confirm. A native TypeScript alternative to a constraint-solver sidecar. Required: sequence.
construct_qc(gcLow, gcHigh, gcWindow, sequence, frameStart, avoidEnzymes, homopolymerMin, crypticOrfMinAa)- Lint a coding DNA sequence for premature stops, internal RBS/polyA motifs, unwanted restriction sites, GC extremes and repeats. Required: sequence.
crispr_grna_design(minScore, nuclease, sequence, searchReverseStrand)- Find and score candidate guide RNAs (protospacer + PAM) in a target DNA for common nucleases (SpCas9, SpCas9-NG, SaCas9, Cas12a). Required: sequence.
crispr_hdr_donor(editEnd, blockPam, guideEnd, nuclease, armLength, editStart, frameStart, guideStart, guideStrand, replacement, targetSequence, designGenotypingPrimers)- Build an HDR donor (homology arms flanking an edit) from a target sequence and either an explicit edit window (editStart/editEnd) or a guide's cut site (guideStart/guideEnd/guideStrand/nuclease — SpCas9-family only; Cas12a's staggered cut needs an explicit editStart/editEnd). Also designs genotyping primers spanning the edit site on the original sequence (a real size-shift or sequencing target to confirm the edit), reusing the same primer-design engine as primer_design. Required: targetSequence, replacement.
crispr_offtarget_check(nuclease, protospacer, maxMismatches)- Screen a guide's protospacer for off-target sites (protospacer match + valid PAM, both strands) against a small curated set of common lab reference genomes (see genomesChecked) — NOT a whole human/mouse genome search. Use this the same way primer_specificity is used: a useful sanity check within the covered organisms, not a clearance guarantee for a mammalian expression host. Required: protospacer.
cross_dimer(sequenceA, sequenceB)- Screen two oligos for the most stable heterodimer (cross-dimer) between them. Required: sequenceA, sequenceB.
dna_molarity(type, length, massNg, sequence, volumeUl)- Nucleic-acid quantity conversions: molar mass, amount (pmol/nmol), molar and mass concentration, and copy number, from mass ± volume and either a length or a sequence.
double_digest(enzymeA, enzymeB)- Recommend a single NEB buffer (and flag caveats) for digesting with two enzymes in one tube. Required: enzymeA, enzymeB.
export_echo_picklist(reactions)- Generate a downloadable Beckman/Labcyte Echo acoustic-liquid-handler picklist CSV (columns: Source Plate Name, Source Plate Type, Source Well, Destination Plate Name, Destination Well, Transfer Volume, Name — the header row reproduced from PyEcho, a real open-source Echo-picklist generator) for the given PCR reactions, at the same well positions export_plate_layout assigns. Assumes a 5 uL Echo-scale PCR reaction (master mix 2500 nL, each primer 250 nL, template 250 nL, water 1750 nL) — a commonly used acoustic-dispensing miniaturization scale, not a universal standard; rescale the volumes for your own protocol. Source/Destination Plate Type uses a placeholder Echo plate-type code (384PP_AQ_BP) — replace with the exact type from your own Echo Plate Type Library. Each distinct template label gets its own well on the TemplateSource plate, row-major (A1, A2, … A24, then B1, …) across that 384-well source plate. Required: reactions.
export_opentrons_protocol(reactions, protocolName)- Generate a downloadable Opentrons Python Protocol API (v2, OT-2) script that sets up the given PCR reactions on a 96-well PCR plate, at the same well positions export_plate_layout assigns. Uses real Opentrons labware/pipette API names confirmed against docs.opentrons.com and the Opentrons shared-data labware-definitions repository (opentrons_96_wellplate_200ul_pcr_full_skirt, opentrons_96_tiprack_20ul, opentrons_24_tuberack_nest_1.5ml_snapcap, nest_12_reservoir_15ml, p20_single_gen2) and the confirmed load_labware/load_instrument/transfer method signatures. Master-mix/primer/template/water volumes are clearly-labeled placeholder constants at the top of the script — this is a starting point to review and adapt for your own enzyme and instrument, not a certified ready-to-run protocol. Required: reactions.
export_plate_layout(reactions)- Assign a set of PCR reactions (name + forward/reverse primer + optional template label) to wells on a 96-well plate, row-major (A1, A2, … A12, then B1, B2, … up to H12). Returns the well-assignment data for rendering a plate diagram; export_opentrons_protocol and export_echo_picklist build their downloadable files from this exact same layout, so all three always agree. Required: reactions.
expression_heatmap_cluster(genes, values, linkage, samples, zScoreRows, clusterCols, clusterRows, distanceMetric)- Hierarchically cluster a genes x samples expression matrix (UPGMA/average, complete, or single linkage; Euclidean or correlation distance) and return the row/column leaf order, dendrogram merge trees, and row-z-scored values for the Clustered Expression Heatmap visualization. Required: genes, samples, values.
fastq_qc_report(input, qualityOffset)- FastQC-style deep quality-control report for a FASTQ file: per-base quality and content, GC and length distributions, sequence duplication levels, overrepresented sequences, and adapter content — each with a warn/fail verdict against FastQC's own published thresholds. Required: input.
fastq_trim(input, minLength, qualityOffset, qualityThreshold)- Trim FASTQ reads: an ungapped sliding-suffix adapter match (against the same named Illumina adapters as the QC report) followed by a BWA-style 3' quality trim (the same algorithm Cutadapt's own -q option reuses), then drops reads below a minimum length. Returns the trimmed FASTQ plus before/after read-count, mean-length and mean-quality stats. Required: input.
find_orfs(sequence, minAaLength, requireStop)- Find open reading frames (ATG…stop) across all six frames. Required: sequence.
format_sequence(width, convert, reverse, caseMode, sequence, stripNonLetters)- Clean, case-fold, DNA↔RNA convert, reverse and line-wrap a sequence. Required: sequence.
functional_enrichment(genes, background, collections, maxTermSize, minTermSize)- Over-representation analysis: test which GO terms (biological process / molecular function / cellular component) and Reactome pathways are statistically enriched in a query gene list versus a background, using the hypergeometric test with Benjamini-Hochberg FDR correction across all tested terms. Uses bundled GO Consortium + Reactome reference data (human only). KEGG is not included (its license does not permit bundling gene sets). Required: genes.
gc_content(sequence)- GC content, AT content and per-base composition of a sequence. Required: sequence.
gene_dossier(gene)- A gene/drug-target dossier fanned out to five independent sources in one call: Open Targets (function, tractability, top associated diseases), an NCBI/UniProt plain-English function summary, ChEMBL (known drugs and their mechanism/clinical phase, cross-referenced with indications), ClinicalTrials.gov (trials by gene/condition term), and Europe PMC (top cited papers). Each source fails independently — a down source returns null/empty for its own section rather than failing the whole call, and every failure is listed in "sourceErrors" rather than silently omitted. Required: gene.
gene_expression(gene)- A gene's tissue-expression fingerprint: per-tissue median TPM from GTEx (v8) and subcellular localization / RNA tissue-specificity / protein class from the Human Protein Atlas, in one call. Required: gene.
gene_model(gene)- The real exon/UTR/CDS structure of a human gene's canonical transcript, fetched live from Ensembl (the same exon/CDS map the HGVS Converter tool uses) — for rendering an exon diagram. Required: gene.
golden_gate_fidelity(dataset, overhangs, riskThreshold, compareToNamedSet)- Score a candidate set of 4-base Golden Gate/MoClo junction overhangs against real published T4-ligase ligation-count data: per-overhang specificity, the weakest link in the set, and any risky cross-reacting pairs. Optionally compare against a named published overhang set. This is SeqBench's own transparent scoring methodology — it does not reproduce NEB's/Potapov's own published aggregate fidelity percentages for named sets (their exact formula isn't disclosed anywhere accessible). Required: overhangs.
hgvs_convert(variant)- Parse an HGVS "c." variant description (by gene symbol, RefSeq NM_, or Ensembl ENST accession), convert it to genomic (g.) coordinates via a real, live-fetched Ensembl exon/CDS map (transcripts resolved through the bundled MANE RefSeq<->Ensembl crosswalk), apply 3'-rule normalization to any del/dup/ins, and predict the protein (p.) effect where that is safely computable. Refuses cleanly — rather than guessing — for circular/mitochondrial genomes, RNA-level or protein-level input, uncertain/mosaic syntax, splice-junction-adjacent or inversion protein effects, and non-MANE/non-Ensembl transcripts. Required: variant.
id_map_poll(jobId)- Check a UniProt id-mapping job submitted via id_map_submit. Returns {status, ready:false} while still running; once FINISHED, also returns the mapped ids (normalized regardless of which target database was requested) and any ids that failed to map. Required: jobId.
id_map_submit(to, ids, from, taxId)- Submit up to 1000 ids to UniProt's ID mapping service for a single confirmed-safe hop (e.g. Gene_Name -> UniProtKB-Swiss-Prot, or UniProtKB_AC-ID -> Ensembl/GeneID/RefSeq_Protein/Gene_Name). Returns a jobId immediately — poll it with id_map_poll. Required: ids, from, to.
in_silico_pcr(circular, template, forwardPrimer, maxMismatches, reversePrimer)- Predict PCR products for a template and a pair of primers (IUPAC-aware, allows mismatches, handles circular templates). Required: template, forwardPrimer, reversePrimer.
kasp_primer_design(target, alleleA, alleleB, maxAmplicon, minAmplicon, snpPosition, targetCoreTm, addSecondaryMismatch)- Design KASP/ARMS allele-specific genotyping primers for a SNP: two allele-specific forward primers differing only at the 3' terminal base (one per allele), each with the standard KASP universal tail (FAM for allele A, HEX for allele B), a deliberate internal ARMS secondary mismatch near the 3' end whose strength complements that primer's own natural allele mismatch (strong↔weak), and one common downstream reverse primer sized to a chosen amplicon range. Because a forward primer reads the antisense strand, each primer's 3' base sits opposite the complement of the other allele, so the two primers get different mismatch classes and are reported separately (graded from the measured PCR yields in Kwok et al. 1990). Reuses the site's nearest-neighbor Tm engine. Required: target, snpPosition, alleleA, alleleB.
melting_temperature(mgMM, naMM, dntpMM, oligoNM, sequence, targetTm, tmTolerance)- Primer/oligo melting temperature: nearest-neighbour (SantaLucia 1998) at the supplied reaction conditions, recommended from 14 nt up, with the Wallace rule for shorter oligos, a fixed-100 mM-Na+ Schildkraut-Lifson reference estimate, and molecular weights. Required: sequence.
motif_finder(motif, sequence, maxMismatches, searchReverseStrand)- Find (overlapping) occurrences of an IUPAC motif on either strand, allowing mismatches. Required: sequence, motif.
multiple_sequence_alignment(input)- Center-star multiple sequence alignment of a multi-FASTA input, with consensus and per-column conservation. Required: input.
oligo_analysis(mgMM, naMM, dntpMM, oligoNM, sequence)- Full oligo analysis: nearest-neighbour Tm/ΔG/ΔH/ΔS plus hairpin and self-dimer screening with base-pair diagrams and warnings. Required: sequence.
ortholog_map(type, symbols, sourceSpecies, targetSpecies)- Look up the orthologous (or paralogous) gene for up to 50 gene symbols in a target species, via Ensembl's homology-by-symbol REST endpoint. Symbols with no homology record are reported in `unmapped`, never silently dropped. Required: symbols, targetSpecies.
pairwise_alignment(gap, mode, seqA, seqB, match, gapOpen, mismatch)- Global (Needleman-Wunsch), local (Smith-Waterman) or semi-global/fitting pairwise alignment of two sequences, with match/mismatch scoring and affine gap costs (Gotoh). Required: seqA, seqB.
parse_genbank(text)- Parse a GenBank flat file into its locus, definition, features and sequence. Required: text.
parse_sanger_trace(fileName, fileBase64)- Decode a Sanger ABIF (.ab1 / .abi) chromatogram: base calls, per-base quality, the four dye-channel traces and peak locations. Required: fileBase64.
plasmid_annotate(sequence)- Auto-detect common cloning features (promoters, tags, origins, resistance markers, MCS, primers) on both strands. Signatures under 20 bp must match exactly; longer ones tolerate up to ~10% mismatches so point mutants still annotate — each feature reports its own `mismatches` count and an `exact` flag. Required: sequence.
plasmid_deep_annotate(circular, sequence)- Annotate a plasmid against pLannotate's open-source feature library — a much larger signature set (GenoLIB parts + Swiss-Prot + FPbase + Rfam, cross-referenced against ~195k Addgene-deposited plasmids) than plasmid_annotate's built-in curated list, and it reports partial and low-identity hits as graded alignments rather than the pass/fail signature match plasmid_annotate does (that one is not exact-only either — signatures of 20 bp or more tolerate up to ~10% mismatches — but it reports a hit or nothing, with a `mismatches` count and an `exact` flag). Each feature here carries its percent identity, reference coverage and a fragment flag so you can judge a weak hit. Runs a multi-second search on a shared service and is therefore rate limited (see 429/503); use plasmid_annotate for an instant, unmetered first pass. Required: sequence.
plasmid_full_report(topN, circular, sequence)- One combined view of 'what is this plasmid': recognized common features (from plasmid_annotate), backbone identity / possible chimera (from plasmid_identify), and — the two crossed together — any region that neither a curated backbone nor a recognized common feature explains. That last list is a triage signal (an unusual insert, an unannotated part, or worth a closer look), not a defect finding: a real gene-of-interest legitimately has no curated-feature match. Required: sequence.
plasmid_identify(topN, circular, sequence)- Screen a query plasmid against a small curated set of common backbones (cloning vectors, expression vectors, BACs — see referencesChecked for the exact list) to identify which one(s) it resembles, separate an unmatched region (normal — your own insert) from a POSSIBLE CHIMERA (a region matching a different known backbone than its neighbor), and report per-match %identity/%coverage. NOT a search against Addgene's ~100k-plasmid catalog or PlasmidScope's 850k+ — a curated-set screen only. Required: sequence.
prime_editing_design(target, editEnd, editStart, pbsLength, frameStart, insertedSeq, rttHomology)- Design SpCas9 prime-editing pegRNAs for a substitution, insertion, deletion, or small replacement: for each usable NGG PAM it builds the spacer, a primer-binding-site (PBS) length sweep targeting a ~30 C melting temperature, the reverse-transcriptase template (RTT) that encodes the edit, and the full 3' extension, plus PE3 nicking-sgRNA suggestions 40-90 bp away on the opposite strand. Designs where the edit destroys the pegRNA's own PAM (preventing re-nicking of the edited allele) are ranked first. Coordinates: every pegRNA coordinate (protospacer span, nick position, editStart/editEnd) is 1-based inclusive in the submitted PRE-EDIT target's frame — the protospacer+PAM search runs on the unedited sequence, because Cas9 has to bind the allele you actually have. The one exception is edit-dependent PE3b nicking guides, which exist only once the edit is installed; each nickingGuides entry therefore carries a `coordinateFrame` field of "target" or "editedSequence" naming the frame its own start/end/nickToNickDistance are measured in, and for a length-changing edit the two frames differ downstream of the edit. Off-target activity is not evaluated (no in-browser reference genome). Required: target, editStart, editEnd.
prime_editing_twin_design(target, pbsLength, replaceEnd, newSequence, replaceStart, overlapLength)- Design a twinPE pegRNA pair (Anzalone et al. 2022) for a replacement too large for a single pegRNA's RTT: a left pegRNA nicks the + strand at/before the replacement window and a right pegRNA nicks the - strand at/after it, each synthesizing a new 3' flap; both flaps are truncated at a shared overlap in the middle of the new sequence so they anneal and resolve the edit without an HDR donor. Coordinates: both pegRNAs' protospacerStart/protospacerEnd/nickPosition are 1-based inclusive in the submitted PRE-EDIT target's frame (the PAM search runs on the unedited sequence, on both sides), while replaceSpan is the span of the new content in the returned editedSequence. Off-target activity is not evaluated (no in-browser reference genome). Required: target, replaceStart, replaceEnd, newSequence.
primer_design(mgMM, naMM, gcMax, gcMin, tmMax, tmMin, tmOpt, dntpMM, lenMax, lenMin, lenOpt, oligoNM, template, maxReturn, targetEnd, tmMaxDiff, ampliconMax, ampliconMin, targetStart)- De-novo PCR primer design (Primer3-style penalty picker): enumerate and score candidate primer pairs against length/Tm/GC/3'-clamp/structure constraints. Required: template.
primer_specificity(forwardPrimer, maxMismatches, reversePrimer, maxProductLength)- Self-hosted e-PCR-style screen for off-target amplicons predicted by a primer pair against a small set of curated reference genomes (currently: E. coli K-12 MG1655, B. subtilis 168, human mitochondrion rCRS, Mycoplasma hyorhinis SK76 — see genomesChecked in the response for the exact list, and note that the nuclear human and mouse genomes are NOT covered). Amplicons are 1-based inclusive on the plus strand; a product across a circular genome's origin reports an end lower than its start and sets wraps: true. This checks background/host-genome specificity, NOT whether the primers hit your intended target — pair it with in_silico_pcr against your own template for that. Batchable over candidate REVERSE primers against one fixed forward primer (screen many candidates against a shared partner) — not independent primer-pair batching, which this tool doesn't support. Required: forwardPrimer, reversePrimer.
protease_digestion(maxMass, minMass, protease, sequence, maxPeptides, missedCleavages)- In-silico protease/chemical digestion: cleave a protein and report each peptide's position, length and neutral mass. Required: sequence.
protein_annotate_poll(jobId)- Check an InterProScan job submitted via protein_annotate_submit. Returns {status, ready:false} while still running; once FINISHED, also returns the parsed domain architecture, per-match details and deduplicated GO terms. Required: jobId.
protein_annotate_submit(appl, goterms, sequence)- Submit a protein sequence to EBI InterProScan for domain architecture, family and GO-term annotation. Returns a jobId immediately — the job itself takes minutes; poll it with protein_annotate_poll. Required: sequence.
protein_hydrophobicity(scale, window, sequence)- Sliding-window hydropathy/hydrophobicity profile (ProtScale-style) over a published amino-acid scale. Required: sequence.
protein_properties(sequence, chargeStep)- Protein properties: molecular weight, isoelectric point, GRAVY, extinction coefficient and composition. Required: sequence.
random_sequence(kind, length, gcContent)- Generate a random DNA, RNA or protein sequence, optionally with a target GC content. Required: length.
rbs_design(cds, limit, leader, currentUtr, targetExpression, antiShineDalgarno)- Design a 5' UTR / ribosome binding site for a given CDS. Generates a spread of Shine-Dalgarno cores and SD-to-start spacings, scores every one with OSTIR in the context of your own CDS (which matters — the rate depends on how the RBS interacts with that CDS's 5' folding), and returns them ranked. Supply targetExpression to rank by closeness to a target rate instead of by maximum strength, and supply your existing 5' UTR to get a measured baseline and fold-change for each candidate. Runs ViennaRNA on a shared service and is therefore rate limited (see 429/503). Required: cds.
rbs_predict(end, start, sequence, antiShineDalgarno)- Predict the translation initiation rate at each start codon in a bacterial mRNA using OSTIR, the open-source continuation of the Salis lab RBS Calculator, with ViennaRNA free energies. Returns the predicted rate plus the full thermodynamic breakdown (16S rRNA:mRNA hybridisation, mRNA unfolding, spacing, standby site, start-codon binding) for every start codon found. Rates are on an arbitrary scale — compare them as ratios, not as absolute expression levels. Runs ViennaRNA on a shared service and is therefore rate limited (see 429/503). Required: sequence.
restriction_sites(enzymes, circular, sequence)- Find restriction enzyme recognition sites in a DNA sequence. Required: sequence.
reverse_complement(type, sequence)- Reverse, complement and reverse complement of a DNA or RNA sequence. Required: sequence.
reverse_translate(mode, protein, organism)- Back-translate a protein to DNA (most-frequent codon per organism, or degenerate IUPAC consensus). Required: protein.
rna_fold(sequence)- Predict an RNA secondary structure by minimum free energy (MFE) using a Zuker dynamic program with Turner 1999 nearest-neighbor stacking energies (no pseudoknots). Returns the dot-bracket structure, the estimated MFE (kcal/mol), and the list of base pairs. A from-scratch, in-browser implementation (there is no usable browser ViennaRNA); the simplified loop energy model makes the MFE a good comparative estimate, not a lab-grade absolute. Required: sequence.
sanger_vs_reference(read, fileName, reference, fileBase64, minCoverage)- Align a Sanger ABIF read to a reference and report identity plus every mismatch, insertion and deletion. Required: reference.
save_permalink(args, tool)- Run a registered tool and save its (arguments, result) pair under a short permanent code that anyone with the link can view read-only (/permalink/{code}). Use this to cite or share a specific result (e.g. a verify_construct or verify_assembly check) rather than re-pasting it. Required: tool, args.
seqfile_stats(input, qualityOffset)- Statistics for a FASTA or FASTQ file: count, length distribution, N50, GC content and (FASTQ) mean quality. Required: input.
sequence_fetch(db, format, accession)- Fetch a public DNA/protein record by accession from NCBI Nucleotide, NCBI Protein, UniProt, or Ensembl (e.g. NM_000546, NP_000537, P04637, ENSG00000141510). Only the accession is sent upstream. Use sequence_search first if you only know a gene/organism name, not an accession. For an Ensembl transcript ID this returns spliced cDNA; for a gene ID it returns the full genomic locus (introns included) — Ensembl's own default for each ID type. Required: accession.
sequence_format_convert(to, from, input)- Convert between FASTA and GenBank (whole sequence, CDS or protein), or export to TSV. Required: input.
sequence_report(maxOrfs, minOrfAa, sequence, endPrimerLength)- One-click DNA analysis: composition, ORFs, restriction-enzyme scan (single cutters) and end-primer Tm composed into a single report with a copyable text block. Required: sequence.
sequence_search(db, gene, term, organism, maxResults)- Resolve a gene/organism name — or a raw NCBI search term — to candidate accessions, instead of guessing one. Returns up to maxResults hits (accession, title, organism); pass the accession you want to sequence_fetch.
sequencing_readback_verify(reads, circular, reference, minSupportingReads)- Align raw Sanger or NGS reads (FASTA or FASTQ) back onto a claimed reference sequence using minimap2, and report per-read mapping identity plus exact variant positions (substitutions/insertions/deletions), with a consensus view across reads and a corrected consensus sequence (the reference with every consensus-supported edit applied). Each alignment also reports how much of the READ was used (queryCoveragePct/clippedBases), since identity is measured over the aligned portion only and a partially-used read would otherwise score perfectly. Set circular: true for a plasmid so reads crossing the reference's arbitrary linear start are aligned through the join rather than cut short at it. Complements verify_construct/verify_assembly: those re-derive what a design SHOULD produce from its own stated inputs; this checks what a real sequencer actually read back. Required: reference, reads.
session_create(entries)- Start a scratch session that holds several named sequences/values (e.g. vector, insert, forward/reverse primer) for use across multiple tool calls via session_run, instead of re-pasting them into every call. Sessions expire after 24 hours.
session_get(names, sessionId)- Fetch named entries from a session. Prefer session_run for actually USING the values — it keeps raw sequences out of your context. Use this mainly to inspect or debug what a session currently holds. Required: sessionId.
session_run(args, tool, sessionId, writeBack, fromSession)- Run any SeqBench tool, resolving selected arguments from a session's named entries instead of pasting them inline, and optionally store selected result fields back into the session by name. This is the main way to chain a multi-part design (vector + insert + primers) across calls without shuttling raw sequences through your own context. Required: sessionId, tool.
session_set(entries, sessionId)- Add or overwrite named entries in an existing session. Required: sessionId, entries.
sirna_design(target, shRnaLoop, minReynolds)- Design siRNA duplexes against an mRNA target using the established Reynolds (2004) 8-criteria score and the Ui-Tei (2004) rules, plus the siDirect seed-duplex Tm off-target flag (≥21.5 °C, computed on siDirect's own RNA/RNA scale: Freier 1986 nearest-neighbour parameters, helix initiation A = −10.8, CT = 100 µM, 100 mM Na⁺). Returns ranked candidates with sense/guide oligos (with UU 3' overhangs) and, per candidate, a ready shRNA cassette (sense–loop–antisense–Pol III terminator). Heuristic sequence rules only — no RNA-folding accessibility model and no transcriptome-wide off-target search. Required: target.
site_directed_mutagenesis(mgMM, naMM, style, dntpMM, newBase, oligoNM, residue, editKind, organism, position, targetAa, template, frameStart, armTmTarget)- Design site-directed mutagenesis primers (QuikChange overlapping or Q5 back-to-back) for a nucleotide substitution or an amino-acid codon swap. Required: template.
translate(frame, toStop, sequence)- Translate a nucleotide sequence to protein (single frame or all six frames; standard code). Required: sequence.
variant_annotate(variant, assembly)- One-box variant lookup against MyVariant.info: accepts an rsID, chrom:pos:ref:alt, genomic HGVS ("chr17:g.7676154G>C"), or transcript HGVS c. ("NM_000546.6:c.215C>G" / "TP53:c.215C>G", bridged via the hgvs_convert tool). Returns a ClinVar significance summary, gnomAD exome/genome allele frequencies, and CADD/SIFT/PolyPhen2/REVEL pathogenicity predictor scores — each section explicitly null when that source has no data, never silently omitted. See the result's own "caveats" for real data-freshness limits (frozen gnomAD/CADD snapshots, periodic ClinVar snapshot). Required: variant.
variant_comparator(query, coding, reference, frameStart)- Align a query to a reference and call variants (substitutions, insertions, deletions) in HGVS g. notation, with optional coding effects. Required: reference, query.
verify_assembly(names, coding, enzyme, insert, method, vector, enzyme3, enzyme5, circular, fragments, insertPcr, vectorPcr, frameStart, overlapLen, armTmTarget, fragmentPcrs, claimedConstruct)- Deterministic self-check: given the same method/parts cloning_simulate would use (restriction-ligation, Gibson, or Golden Gate — optionally deriving a part by in-silico PCR first), re-derive the expected WHOLE product and diff it against a claimed final sequence. Returns pass/fail plus the exact position and nature of any discrepancy — not an opinion, the same deterministic simulation SeqBench already runs, run a second time as a check. See verify_construct for a narrower, insert-only check that doesn't require declaring the vector/enzymes/method. Required: method, claimedConstruct.
verify_construct(insertTemplate, claimedConstruct, templateCircular, expectedFrameStart, insertForwardPrimer, insertReversePrimer, maxPrimerMismatches)- Re-derive a construct's insert from the PCR (template + primers) claimed to have produced it, then check — independently of that claim — whether the expected insert actually appears (either orientation) in the claimed final construct, at what identity, and with exact mismatch positions if not. Optionally also checks for a premature stop in a declared reading frame. This re-derives from the claim's own stated inputs; it does not review the claim's prose. Required: claimedConstruct, insertTemplate, insertForwardPrimer, insertReversePrimer.
virtual_gel(ladder, enzymes, circular, sequence)- Predict restriction-digest fragment sizes and their gel migration positions against a chosen DNA ladder. Required: sequence.
volcano_plot_data(rows)- Validate a differential-expression table (gene, log2 fold-change, p-value/FDR) and compute -log10(p) plus up/down/non-significant counts at conventional default thresholds (|log2FC|>=1, p<=0.05), for the Volcano Plot visualization. Invalid rows (non-finite log2FC, or p-value outside (0,1]) are dropped and reported rather than failing the whole batch. Required: rows.
web_search(query, max_results)- Search the live web (via Tavily) for information not covered by SeqBench's own tools — recent literature, protocols, vendor/reagent info, general facts. Returns a short synthesized answer (if available) plus ranked source snippets with URLs. This does not run any bioinformatics calculation itself; use the dedicated tools for that. Required: query.
workflow(input, steps)- Run a multi-tool pipeline over many records. `steps` is an ordered list of { tool, args?, from? }; each step's chained sequence feeds the next by default. `input` is multi-FASTA or one sequence per line. Required: steps, input.
Last successful function declaration observed on . Source: https://seqbench.com/api/mcp. We list what the server declared; we do not call any of these functions.
Endpoint status observed on . Source: https://seqbench.com/api/mcp.
Signals
These are separate measurements of different things. They are deliberately not combined into one score, because a popularity number that mixes website traffic with saves and stars cannot be checked or acted on.
| Signal | Value | What it measures | Window | Observed | Source |
|---|---|---|---|---|---|
| Latest published version | 1.0.0 | Latest version string the maintainer published to the registry. | as of fetch | Model Context Protocol | |
| Registry record last updated | 2026-07-06 | When the registry record was last updated by its maintainer. | point in time | Model Context Protocol | |
| First listed in the MCP Registry | 2026-07-06 | Date this server was first published to the official MCP Registry. Not a usage or quality measure. | point in time | Model Context Protocol | |
| mcp tools declared | 86 tools | Number of functions the server itself declared when asked to list them. This is what the server offers an agent, not a measure of how well any of them work. | as of probe | seqbench.com | |
| mcp endpoint status | ok | The server listed 86 functions when asked. | as of probe | seqbench.com |
Where to get it
This record as data
Every field on this page, with its source and observation date, is in the catalog JSON. Fetch the whole kind at once instead of parsing this HTML.
GET /api/v1/entries/mcp_server.json