{"apiVersion":"v1","directorySlug":"seqbench-mcp-3825dd4af3","title":"SeqBench","description":"Edit plasmids and SnapGene .dna files, design primers, simulate cloning (Gibson, Golden Gate, restriction, LIC and SLIC), find CRISPR guides, and verify sequencing results — all in one browser workbench.","pageUrl":"https://www.mcpbundles.com/skills/seqbench-mcp-3825dd4af3","connectPath":"importable","connectAction":"import_server","catalogListing":false,"bundleSlug":null,"listingKind":"remote_mcp","kind":"provider","transportUrl":"https://seqbench.com/api/mcp","hostedMcpUrl":null,"toolCount":144,"toolInventoryStatus":"observed","refreshedAt":"2026-11-03T13:26:00.516172+00:00","registryName":"com.seqbench/seqbench-mcp-3825dd4af3","registryVersion":"2026.11.3","registryEligible":true,"tools":[{"name":"reverse_complement","description":"Reverse, complement and reverse complement of a DNA or RNA sequence.","inputSchema":{"type":"object","required":["sequence"],"properties":{"type":{"enum":["dna","rna"],"type":"string","default":"dna"},"sequence":{"type":"string","residues":"nt"}},"additionalProperties":false},"title":"Reverse Complement","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"reverse_complement","displayName":"Reverse Complement"},{"name":"gc_content","description":"GC content, AT content and per-base composition of a sequence.","inputSchema":{"type":"object","required":["sequence"],"properties":{"sequence":{"type":"string","residues":"nt"}},"additionalProperties":false},"title":"GC Content","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"gc_content","displayName":"GC Content"},{"name":"translate","description":"Translate a nucleotide sequence to protein (single frame or all six frames; standard code).","inputSchema":{"type":"object","required":["sequence"],"properties":{"frame":{"enum":[1,2,3],"type":"integer","default":1},"toStop":{"type":"boolean","default":false},"sequence":{"type":"string","residues":"nt"}},"additionalProperties":false},"title":"Translate","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"translate","displayName":"Translate"},{"name":"find_orfs","description":"Find open reading frames (ATG…stop) across all six frames.","inputSchema":{"type":"object","required":["sequence"],"properties":{"limit":{"type":"integer","default":100,"maximum":5000,"minimum":1},"sequence":{"type":"string","residues":"nt"},"minAaLength":{"type":"integer","default":30},"requireStop":{"type":"boolean","default":false}},"additionalProperties":false},"title":"ORF Finder","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"find_orfs","displayName":"ORF Finder"},{"name":"format_sequence","description":"Clean, case-fold, DNA↔RNA convert, reverse and line-wrap a sequence.","inputSchema":{"type":"object","required":["sequence"],"properties":{"width":{"type":"integer","default":60},"convert":{"enum":["none","toRna","toDna"],"type":"string","default":"none"},"reverse":{"type":"boolean","default":false},"caseMode":{"enum":["keep","upper","lower"],"type":"string","default":"keep"},"sequence":{"type":"string","residues":"nt"},"stripNonLetters":{"type":"boolean","default":true}},"additionalProperties":false},"title":"Format Sequence","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"format_sequence","displayName":"Format Sequence"},{"name":"motif_finder","description":"Find (overlapping) occurrences of an IUPAC motif on either strand, allowing mismatches.","inputSchema":{"type":"object","required":["sequence","motif"],"properties":{"limit":{"type":"integer","default":500,"maximum":20000,"minimum":1},"motif":{"type":"string","residues":"nt"},"sequence":{"type":"string","residues":"nt"},"maxMismatches":{"type":"integer","default":0},"searchReverseStrand":{"type":"boolean","default":true}},"additionalProperties":false},"title":"Motif Finder","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"motif_finder","displayName":"Motif Finder"},{"name":"reverse_translate","description":"Back-translate a protein to DNA (most-frequent codon per organism, or degenerate IUPAC consensus).","inputSchema":{"type":"object","required":["protein"],"properties":{"mode":{"enum":["frequent","degenerate"],"type":"string","default":"frequent"},"protein":{"type":"string","residues":"aa"},"organism":{"enum":["ecoli","human","yeast","cho","pichia","insect","arabidopsis","zebrafish"],"type":"string","default":"ecoli"}},"additionalProperties":false},"title":"Reverse Translate","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"reverse_translate","displayName":"Reverse Translate"},{"name":"random_sequence","description":"Generate a random DNA, RNA or protein sequence, optionally with a target GC content.","inputSchema":{"type":"object","required":["length"],"properties":{"kind":{"enum":["dna","rna","protein"],"type":"string","default":"dna"},"length":{"type":"integer","default":100},"gcContent":{"type":"number"}},"additionalProperties":false},"title":"Random Sequence","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"random_sequence","displayName":"Random Sequence"},{"name":"melting_temperature","description":"Primer/oligo melting temperature: nearest-neighbor (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.","inputSchema":{"type":"object","required":["sequence"],"properties":{"mgMM":{"type":"number","default":1.5},"naMM":{"type":"number","default":50},"dntpMM":{"type":"number","default":0.2},"oligoNM":{"type":"number","default":250},"sequence":{"type":"string","residues":"nt"},"targetTm":{"type":"number"},"tmTolerance":{"type":"number","default":2}},"additionalProperties":false},"title":"Primer Tm calculator","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"melting_temperature","displayName":"Primer Tm calculator"},{"name":"oligo_analysis","description":"Full oligo analysis: nearest-neighbor Tm/ΔG/ΔH/ΔS plus hairpin and self-dimer screening with base-pair diagrams and warnings.","inputSchema":{"type":"object","required":["sequence"],"properties":{"mgMM":{"type":"number","default":1.5},"naMM":{"type":"number","default":50},"dntpMM":{"type":"number","default":0.2},"oligoNM":{"type":"number","default":250},"sequence":{"type":"string","residues":"nt"}},"additionalProperties":false},"title":"Oligo analyzer","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"oligo_analysis","displayName":"Oligo analyzer"},{"name":"dna_molarity","description":"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.","inputSchema":{"type":"object","required":[],"properties":{"type":{"enum":["dsDNA","ssDNA","ssRNA"],"type":"string","default":"dsDNA"},"length":{"type":"integer","default":1000},"massNg":{"type":"number","default":100},"sequence":{"type":"string","residues":"nt"},"volumeUl":{"type":"number","default":0},"targetUnit":{"enum":["nM","uM","ngPerUl"],"type":"string","default":"nM"},"targetVolumeUl":{"type":"number","default":20},"targetConcentration":{"type":"number"}},"additionalProperties":false},"title":"DNA molarity calculator","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"dna_molarity","displayName":"DNA molarity calculator"},{"name":"cross_dimer","description":"Screen two oligos for the most stable heterodimer (cross-dimer) between them.","inputSchema":{"type":"object","required":["sequenceA","sequenceB"],"properties":{"sequenceA":{"type":"string","residues":"nt"},"sequenceB":{"type":"string","residues":"nt"}},"additionalProperties":false},"title":"Cross-Dimer","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"cross_dimer","displayName":"Cross-Dimer"},{"name":"barcode_audit","description":"Take a set of barcodes and report the minimum edit distance in it, which pairs sit at that distance, any duplicates, the GC range and the longest homopolymer. The pairs are the point: 'minimum distance 2' is a number, and 'these two barcodes are one substitution apart' is something to fix. Use before committing a pool you inherited or assembled by hand — a single close pair makes two constructs indistinguishable in the data and nothing downstream can detect it.","inputSchema":{"type":"object","required":["barcodes"],"properties":{"metric":{"enum":["levenshtein","hamming"],"type":"string","default":"levenshtein"},"barcodes":{"type":"string"}},"additionalProperties":false},"title":"Measure a set of barcodes you already have","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"barcode_audit","displayName":"Measure a set of barcodes you already have"},{"name":"restriction_sites","description":"Find restriction enzyme recognition sites in a DNA sequence.","inputSchema":{"type":"object","required":["sequence"],"properties":{"enzymes":{"type":"array","items":{"type":"string"}},"circular":{"type":"boolean","default":false},"sequence":{"type":"string","residues":"nt"}},"additionalProperties":false},"title":"Restriction sites","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"restriction_sites","displayName":"Restriction sites"},{"name":"double_digest","description":"Recommend a single NEB buffer (and flag caveats) for digesting with two enzymes in one tube.","inputSchema":{"type":"object","required":["enzymeA","enzymeB"],"properties":{"enzymeA":{"type":"string"},"enzymeB":{"type":"string"}},"additionalProperties":false},"title":"Double digest buffer","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"double_digest","displayName":"Double digest buffer"},{"name":"plasmid_annotate","description":"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.","inputSchema":{"type":"object","required":["sequence"],"properties":{"sequence":{"type":"string","residues":"nt"}},"additionalProperties":false},"title":"Plasmid annotator","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"plasmid_annotate","displayName":"Plasmid annotator"},{"name":"construct_qc","description":"Lint a coding DNA sequence for premature stops, internal RBS/polyA motifs, unwanted restriction sites, GC extremes and repeats.","inputSchema":{"type":"object","required":["sequence"],"properties":{"gcLow":{"type":"number","default":30},"gcHigh":{"type":"number","default":70},"gcWindow":{"type":"integer","default":50},"sequence":{"type":"string","residues":"nt"},"frameStart":{"type":"integer","default":1},"avoidEnzymes":{"type":"array","items":{"type":"string"}},"homopolymerMin":{"type":"integer","default":8},"crypticOrfMinAa":{"type":"integer","default":20}},"additionalProperties":false},"title":"Construct QC linter","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"construct_qc","displayName":"Construct QC linter"},{"name":"virtual_gel","description":"Predict restriction-digest fragment sizes and their gel migration positions against a chosen DNA ladder.","inputSchema":{"type":"object","required":["sequence"],"properties":{"ladder":{"enum":["1 kb","1 kb Plus","100 bp"],"type":"string","default":"1 kb"},"enzymes":{"type":"array","items":{"type":"string"}},"circular":{"type":"boolean","default":false},"sequence":{"type":"string","residues":"nt"}},"additionalProperties":false},"title":"Virtual gel","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"virtual_gel","displayName":"Virtual gel"},{"name":"gel_band_size","description":"Calibrate a gel lane against a marked DNA ladder and read the size of any other band from how far it ran. Migration distance is approximately linear in log(size) over a gel's resolving range, so a least-squares line through the marked rungs interpolates between them — and NOT outside them, which is why a band beyond the marked span comes back flagged `extrapolated` rather than quietly clamped to the nearest rung. Reports R² and the per-rung residual, because one mis-marked rung (a doublet marked","inputSchema":{"type":"object","required":["ladder","ladderDistances"],"properties":{"ladder":{"type":"string"},"bandDistances":{"type":"array","items":{"type":"number"}},"ladderDistances":{"type":"array","items":{"type":"number"}}},"additionalProperties":false},"title":"Band size from a gel, against a marked ladder","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"gel_band_size","displayName":"Band size from a gel, against a marked ladder"},{"name":"golden_gate_from_parts","description":"Golden Gate as the reaction runs: digest pre-domesticated part plasmids with a Type IIS enzyme and assemble them in the order their OVERHANGS dictate. The fragment released from each part is the one carrying no recognition site (the site goes out with the backbone, which is why a mis-ordered assembly is not re-cut), and the assembly order is an OUTPUT — a set whose overhangs do not close into a single cycle has no product, and the reason is the answer. Distinct from cloning_simulate's `goldengat","inputSchema":{"type":"object","required":["parts"],"properties":{"parts":{"type":"array","items":{"type":"object"},"maxItems":24,"minItems":2},"enzyme":{"enum":["BsaI","BsmBI","BbsI","SapI"],"type":"string","default":"BsaI"}},"additionalProperties":false},"title":"Golden Gate from part plasmids","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"golden_gate_from_parts","displayName":"Golden Gate from part plasmids"},{"name":"promoter_predict","description":"Scan DNA for E. coli sigma-70 promoters and estimate each one's transcription initiation rate, with the free-energy terms it is built from: the -35 and -10 boxes, the spacer, the discriminator, the extended -10 and the initial transcribed region. Pairs with rbs_predict — together they separate 'nothing is transcribed' from 'it is transcribed and not translated', which no single measurement on the sequence does. Both strands by default, because a promoter reading into your insert from the other s","inputSchema":{"type":"object","required":["sequence"],"properties":{"limit":{"type":"number","default":10,"maximum":100,"minimum":1},"sequence":{"type":"string"},"bothStrands":{"type":"boolean","default":true}},"additionalProperties":false},"title":"Sigma-70 promoter strength","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"promoter_predict","displayName":"Sigma-70 promoter strength"},{"name":"protein_properties","description":"Protein properties: molecular weight, isoelectric point, GRAVY, extinction coefficient and composition.","inputSchema":{"type":"object","required":["sequence"],"properties":{"sequence":{"type":"string","residues":"aa"},"chargeStep":{"type":"number","default":0.25,"maximum":14,"minimum":0.001}},"additionalProperties":false},"title":"Protein Properties","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"protein_properties","displayName":"Protein Properties"},{"name":"protein_hydrophobicity","description":"Sliding-window hydropathy/hydrophobicity profile (ProtScale-style) over a published amino-acid scale.","inputSchema":{"type":"object","required":["sequence"],"properties":{"scale":{"enum":["Kyte-Doolittle","Hopp-Woods","Eisenberg"],"type":"string","default":"Kyte-Doolittle"},"window":{"type":"integer","default":9},"sequence":{"type":"string","residues":"aa"}},"additionalProperties":false},"title":"Hydrophobicity Profile","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"protein_hydrophobicity","displayName":"Hydrophobicity Profile"},{"name":"protease_digestion","description":"In-silico protease/chemical digestion: cleave a protein and report each peptide's position, length and neutral mass. CNBr masses assume terminal Met becomes homoserine lactone; the sequence retains M and the response labels the modification.","inputSchema":{"type":"object","required":["sequence"],"properties":{"maxMass":{"type":"number"},"minMass":{"type":"number"},"protease":{"enum":["trypsin","lysc","argc","chymotrypsin","gluc","aspn","cnbr"],"type":"string","default":"trypsin"},"sequence":{"type":"string","residues":"aa"},"maxPeptides":{"type":"integer","default":2000},"missedCleavages":{"enum":[0,1,2],"type":"integer","default":0}},"additionalProperties":false},"title":"Protease Digestion","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"protease_digestion","displayName":"Protease Digestion"},{"name":"codon_optimize","description":"Codon-optimize a protein (or coding DNA) for an expression host by picking the most-frequent codon per residue.","inputSchema":{"type":"object","required":["protein"],"properties":{"protein":{"type":"string","residues":"any"},"organism":{"enum":["ecoli","human","yeast","cho","pichia","insect","arabidopsis","zebrafish"],"type":"string","default":"ecoli"},"inputType":{"enum":["auto","protein","dna"],"type":"string","default":"auto"}},"additionalProperties":false},"title":"Codon optimizer","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"codon_optimize","displayName":"Codon optimizer"},{"name":"codon_adaptation_index","description":"Codon Adaptation Index (CAI) and per-codon relative adaptiveness of a CDS against an expression host, with rare-codon and GC3 analysis.","inputSchema":{"type":"object","required":["sequence"],"properties":{"organism":{"enum":["ecoli","human","yeast","cho","pichia","insect","arabidopsis","zebrafish"],"type":"string","default":"ecoli"},"sequence":{"type":"string","residues":"nt"},"frameStart":{"type":"integer","default":1},"minRareRun":{"type":"integer","default":3},"rareThreshold":{"type":"number","default":0.1}},"additionalProperties":false},"title":"CAI analyzer","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"codon_adaptation_index","displayName":"CAI analyzer"},{"name":"pairwise_alignment","description":"Global (Needleman-Wunsch), local (Smith-Waterman) or semi-global/fitting pairwise alignment of two sequences, with match/mismatch scoring and affine gap costs (Gotoh).","inputSchema":{"type":"object","required":["seqA","seqB"],"properties":{"gap":{"type":"number","default":-2},"mode":{"enum":["global","local","semiglobal"],"type":"string","default":"global"},"seqA":{"type":"string","residues":"any"},"seqB":{"type":"string","residues":"any"},"match":{"type":"number","default":1},"gapOpen":{"type":"number"},"mismatch":{"type":"number","default":-1}},"additionalProperties":false},"title":"Pairwise Alignment","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"pairwise_alignment","displayName":"Pairwise Alignment"},{"name":"multiple_sequence_alignment","description":"Center-star multiple sequence alignment of a multi-FASTA input — nucleotide or protein, detected from the records and reported as `type` — with consensus and per-column conservation.","inputSchema":{"type":"object","required":["input"],"properties":{"input":{"type":"string","residues":"any"}},"additionalProperties":false},"title":"Multiple Sequence Alignment","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"multiple_sequence_alignment","displayName":"Multiple Sequence Alignment"},{"name":"variant_comparator","description":"Align a query to a reference and call variants (substitutions, insertions, deletions) in HGVS g. notation, with optional coding effects.","inputSchema":{"type":"object","required":["reference","query"],"properties":{"query":{"type":"string","residues":"nt"},"coding":{"type":"boolean","default":false},"reference":{"type":"string","residues":"nt"},"frameStart":{"type":"integer","default":1}},"additionalProperties":false},"title":"Variant Comparator","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"variant_comparator","displayName":"Variant Comparator"},{"name":"identity_matrix","description":"Percent identity between every pair in a multiple alignment. Takes ALIGNED sequences — the output of multiple_sequence_alignment — because inferring an alignment here would bury the aligner's parameters inside a number that reads as a property of the sequences. Two percentages come back per pair: over columns where both have a residue (the usual figure), and over all columns including gaps. The gap between them is the warning — two sequences overlapping in 50 of 2,000 columns read 100% by the fi","inputSchema":{"type":"object","required":["sequences"],"properties":{"sequences":{"type":"string"},"caseSensitive":{"type":"boolean","default":false}},"additionalProperties":false},"title":"Pairwise identity matrix","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"identity_matrix","displayName":"Pairwise identity matrix"},{"name":"crispr_ontarget","description":"Score SpCas9 guides for on-target activity with Rule Set 3 (DeWeirdt et al., Nat Commun 2022) — the current successor to the Doench 2014 and CRISPRscan scores crispr_grna_design reports. Give a target sequence to find and score every NGG guide in it, or give 30-mer contexts directly. The tracrRNA MATTERS and is not cosmetic: Rule Set 3 models it as a feature, and the paper measures its accuracy dropping when the wrong one is specified. Returns a z-scored activity, which ranks guides against each","inputSchema":{"type":"object","properties":{"tracr":{"enum":["Hsu2013","Chen2013"],"type":"string","default":"Hsu2013"},"contexts":{"type":"array","items":{"type":"string"}},"sequence":{"type":"string","residues":"nt"}},"additionalProperties":false},"title":"CRISPR on-target activity (Rule Set 3)","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"crispr_ontarget","displayName":"CRISPR on-target activity (Rule Set 3)"},{"name":"elsa_capacity","description":"Report how many promoters, sgRNA handles and neutral spacers are available at each maximum-shared-length threshold, and therefore the longest extra-long sgRNA array that can be built without reusing a part. Ask this before designing: the answer is a property of the measured parts collection, not of your guides, and it is the constraint that decides the design. Deterministic — it is a selection over a fixed table.","inputSchema":{"type":"object","required":[],"properties":{"lmax":{"type":"integer","maximum":40,"minimum":8}},"additionalProperties":false},"title":"How many sgRNAs fit in one non-repetitive array","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"elsa_capacity","displayName":"How many sgRNAs fit in one non-repetitive array"},{"name":"parse_genbank","description":"Parse a GenBank flat file into its locus, definition, features and sequence. An EMBL / ENA flat file is accepted too — the same INSDC record in a different layout — and reported with sourceFormat \"embl\".","inputSchema":{"type":"object","required":["text"],"properties":{"text":{"type":"string"}},"additionalProperties":false},"title":"GenBank Parser","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"parse_genbank","displayName":"GenBank Parser"},{"name":"sequence_format_convert","description":"Convert between FASTA and GenBank (whole sequence, CDS or protein), or export to TSV.","inputSchema":{"type":"object","required":["input"],"properties":{"to":{"enum":["fasta","fasta-cds","fasta-protein","genbank","tsv","snapgene"],"type":"string","default":"fasta"},"from":{"enum":["auto","fasta","genbank"],"type":"string","default":"auto"},"input":{"type":"string"}},"additionalProperties":false},"title":"Sequence Format Converter","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"sequence_format_convert","displayName":"Sequence Format Converter"},{"name":"seqfile_stats","description":"Statistics for a FASTA or FASTQ file: count, length distribution, N50, GC content and (FASTQ) mean quality.","inputSchema":{"type":"object","required":["input"],"properties":{"input":{"type":"string"},"qualityOffset":{"enum":[33,64],"type":"integer","default":33}},"additionalProperties":false},"title":"FASTA/FASTQ Stats","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"seqfile_stats","displayName":"FASTA/FASTQ Stats"},{"name":"parse_sanger_trace","description":"Decode a Sanger ABIF (.ab1 / .abi) chromatogram: base calls, per-base quality, the four dye-channel traces, peak locations, and the run's own labels (sample name, well, plate, instrument, run start).","inputSchema":{"type":"object","required":["fileBase64"],"properties":{"fileName":{"type":"string"},"fileBase64":{"type":"string"},"includeTraces":{"type":"boolean","default":false}},"additionalProperties":false},"title":"Sanger Trace Parser","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"parse_sanger_trace","displayName":"Sanger Trace Parser"},{"name":"sanger_vs_reference","description":"Align a Sanger ABIF read to a reference and report identity plus every mismatch, insertion and deletion.","inputSchema":{"type":"object","required":["reference"],"properties":{"read":{"type":"string","residues":"nt"},"fileName":{"type":"string"},"reference":{"type":"string","residues":"nt"},"fileBase64":{"type":"string"},"minCoverage":{"type":"number","default":0.9}},"additionalProperties":false},"title":"Sanger vs Reference","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"sanger_vs_reference","displayName":"Sanger vs Reference"},{"name":"parse_snapgene","description":"Read a SnapGene .dna file: sequence, topology, every feature with its span, strand, display color and qualifiers (spliced and origin-spanning features kept as such), and the saved primer list.","inputSchema":{"type":"object","required":["fileBase64"],"properties":{"fileName":{"type":"string"},"fileBase64":{"type":"string","maxLength":43000000},"featureLimit":{"type":"integer","default":2000,"maximum":2000,"minimum":1},"includeSequence":{"type":"boolean","default":true}},"additionalProperties":false},"title":"SnapGene .dna Parser","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"parse_snapgene","displayName":"SnapGene .dna Parser"},{"name":"characterize_sequence","description":"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.","inputSchema":{"type":"object","required":["sequence"],"properties":{"maxOrfs":{"type":"integer","default":8},"minOrfAa":{"type":"integer","default":40},"sequence":{"type":"string","residues":"any"},"endPrimerLength":{"type":"integer","default":20}},"additionalProperties":false},"title":"Characterize sequence","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"characterize_sequence","displayName":"Characterize sequence"},{"name":"sequence_report","description":"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.","inputSchema":{"type":"object","required":["sequence"],"properties":{"maxOrfs":{"type":"integer","default":10},"minOrfAa":{"type":"integer","default":50},"sequence":{"type":"string","residues":"nt"},"endPrimerLength":{"type":"integer","default":20}},"additionalProperties":false},"title":"Sequence report","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"sequence_report","displayName":"Sequence report"},{"name":"parse_gff3","description":"Read a GFF3 annotation file: every feature with its 1-based inclusive coordinates, strand, phase, score and decoded attributes, plus any sequences from an embedded ##FASTA section. GFF3 usually carries NO sequence — it annotates a separate FASTA, joined on the first column — so the result says which of the two it was handed. Give `sequence` (or let an embedded ##FASTA supply it) to also get the record as GenBank, readable by every other tool here. Percent-escapes are decoded, `.` is read as abse","inputSchema":{"type":"object","required":["text"],"properties":{"text":{"type":"string"},"limit":{"type":"integer","default":500},"seqid":{"type":"string"},"sequence":{"type":"string","residues":"nt"},"asGenbank":{"type":"boolean","default":true}},"additionalProperties":false},"title":"GFF3 annotation parser","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"parse_gff3","displayName":"GFF3 annotation parser"},{"name":"blast_poll","description":"Check a BLAST search submitted with blast_submit. Returns {ready:false} while it is still running; once ready, returns each hit's accession, title, organism, best HSP (bit score, expect, percent identity, span on both query and subject) and the percentage of the QUERY it covers, with overlapping HSPs merged so coverage cannot exceed 100%. A request id NCBI no longer recognises is reported as either a typo or an expired search, which is the same answer it gives for both.","inputSchema":{"type":"object","required":["rid"],"properties":{"rid":{"type":"string"}},"additionalProperties":false},"title":"Collect a BLAST search","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"blast_poll","displayName":"Collect a BLAST search"},{"name":"centrifuge_conversion","description":"Convert between rotor speed (RPM) and relative centrifugal force (×g) for a given rotor radius, in either direction. The conversion is exact physics — RCF = ω²r/g — and the only judgement in it is which radius: a protocol's ×g conventionally means the rotor's MAXIMUM radius, and using the wrong one scales the force by the ratio of the two.","inputSchema":{"type":"object","required":["radiusCm"],"properties":{"rcf":{"type":"number"},"rpm":{"type":"number"},"radiusCm":{"type":"number"}},"additionalProperties":false},"title":"RPM ↔ RCF converter","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"centrifuge_conversion","displayName":"RPM ↔ RCF converter"},{"name":"session_create","description":"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.","inputSchema":{"type":"object","required":[],"properties":{"entries":{"type":"object","additionalProperties":{"type":"string"}}},"additionalProperties":false},"title":"Create a design session","logicalName":"session_create","displayName":"Create a design session","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"session_get","description":"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.","inputSchema":{"type":"object","required":["sessionId"],"properties":{"names":{"type":"array","items":{"type":"string"}},"sessionId":{"type":"string"}},"additionalProperties":false},"title":"Read a design session","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"session_get","displayName":"Read a design session"},{"name":"session_set","description":"Add or overwrite named entries in an existing session.","inputSchema":{"type":"object","required":["sessionId","entries"],"properties":{"entries":{"type":"object","additionalProperties":{"type":"string"}},"sessionId":{"type":"string"}},"additionalProperties":false},"title":"Write to a design session","logicalName":"session_set","displayName":"Write to a design session","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"session_run","description":"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.","inputSchema":{"type":"object","required":["sessionId","tool"],"properties":{"args":{"type":"object","additionalProperties":true},"tool":{"type":"string"},"sessionId":{"type":"string"},"writeBack":{"type":"object","additionalProperties":{"type":"string"}},"fromSession":{"type":"object","additionalProperties":{"type":"string"}}},"additionalProperties":false},"title":"Run a tool using session entries","logicalName":"session_run","displayName":"Run a tool using session entries","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"sequence_fetch","description":"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.","inputSchema":{"type":"object","required":["accession"],"properties":{"db":{"enum":["auto","nucleotide","protein","uniprot","ensembl"],"type":"string","default":"auto"},"format":{"enum":["fasta","genbank"],"type":"string","default":"fasta"},"accession":{"type":"string"}},"additionalProperties":false},"title":"Fetch sequence by accession","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"sequence_fetch","displayName":"Fetch sequence by accession"},{"name":"sequence_search","description":"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.","inputSchema":{"type":"object","required":[],"properties":{"db":{"enum":["nucleotide","protein"],"type":"string","default":"nucleotide"},"gene":{"type":"string"},"term":{"type":"string"},"organism":{"type":"string"},"maxResults":{"type":"integer","default":5,"maximum":20,"minimum":1}},"additionalProperties":false},"title":"Search sequence databases by name","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"sequence_search","displayName":"Search sequence databases by name"},{"name":"protein_annotate_submit","description":"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.","inputSchema":{"type":"object","required":["sequence"],"properties":{"appl":{"type":"string"},"goterms":{"type":"boolean","default":true},"sequence":{"type":"string"}},"additionalProperties":false},"title":"Submit a protein for domain/GO annotation","logicalName":"protein_annotate_submit","displayName":"Submit a protein for domain/GO annotation","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"protein_annotate_poll","description":"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.","inputSchema":{"type":"object","required":["jobId"],"properties":{"jobId":{"type":"string"}},"additionalProperties":false},"title":"Poll a protein annotation job","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"protein_annotate_poll","displayName":"Poll a protein annotation job"},{"name":"plasmid_identify","description":"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.","inputSchema":{"type":"object","required":["sequence"],"properties":{"topN":{"type":"integer","default":5},"circular":{"type":"boolean","default":true},"sequence":{"type":"string","residues":"nt"}},"additionalProperties":false},"title":"Identify an unknown plasmid","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"plasmid_identify","displayName":"Identify an unknown plasmid"},{"name":"plasmid_full_report","description":"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.","inputSchema":{"type":"object","required":["sequence"],"properties":{"topN":{"type":"integer","default":5},"circular":{"type":"boolean","default":true},"sequence":{"type":"string","residues":"nt"}},"additionalProperties":false},"title":"Plasmid full report (identity + features + unexplained regions)","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"plasmid_full_report","displayName":"Plasmid full report (identity + features + unexplained regions)"},{"name":"plasmid_deep_annotate","description":"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","inputSchema":{"type":"object","required":["sequence"],"properties":{"circular":{"type":"boolean","default":true},"sequence":{"type":"string"}},"additionalProperties":false},"title":"Deep plasmid annotation (pLannotate)","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"plasmid_deep_annotate","displayName":"Deep plasmid annotation (pLannotate)"},{"name":"save_permalink","description":"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.","inputSchema":{"type":"object","required":["tool","args"],"properties":{"args":{"type":"object"},"tool":{"type":"string"}},"additionalProperties":false},"title":"Save a permanent shareable link","logicalName":"save_permalink","displayName":"Save a permanent shareable link","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"whole_plasmid_verify","description":"Compare a whole-plasmid sequencing CONSENSUS (the single circular FASTA a nanopore plasmid service returns) against the design it was supposed to be, and say whether they are the same molecule. Finds the rotation and strand itself — an assembler starts the circle wherever it landed and half the time returns the reverse complement, so the two almost never line up as written — then reports every difference in the DESIGN's own coordinates. Each difference carries the length of the identical-base ru","inputSchema":{"type":"object","required":["design","consensus"],"properties":{"design":{"type":"string"},"circular":{"type":"boolean","default":true},"consensus":{"type":"string","residues":"nt"}},"additionalProperties":false},"title":"Whole-plasmid sequencing: consensus vs design","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"whole_plasmid_verify","displayName":"Whole-plasmid sequencing: consensus vs design"},{"name":"web_search","description":"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.","inputSchema":{"type":"object","required":["query"],"properties":{"query":{"type":"string"},"max_results":{"type":"number"}},"additionalProperties":false},"title":"Search the web","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"web_search","displayName":"Search the web"},{"name":"id_map_submit","description":"Submit up to 100,000 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.","inputSchema":{"type":"object","required":["ids","from","to"],"properties":{"to":{"type":"string"},"ids":{"type":"array","items":{"type":"string"}},"from":{"type":"string"},"taxId":{"type":"string"}},"additionalProperties":false},"title":"Submit a batch gene/protein ID mapping job","logicalName":"id_map_submit","displayName":"Submit a batch gene/protein ID mapping job","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"id_map_poll","description":"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.","inputSchema":{"type":"object","required":["jobId"],"properties":{"jobId":{"type":"string"}},"additionalProperties":false},"title":"Poll a batch ID mapping job","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"id_map_poll","displayName":"Poll a batch ID mapping job"},{"name":"ortholog_map","description":"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.","inputSchema":{"type":"object","required":["symbols","targetSpecies"],"properties":{"type":{"enum":["orthologues","paralogues","all"],"type":"string","default":"orthologues"},"symbols":{"type":"array","items":{"type":"string"}},"sourceSpecies":{"type":"string","default":"human"},"targetSpecies":{"type":"string"}},"additionalProperties":false},"title":"Find orthologs/paralogs for gene symbols across species","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"ortholog_map","displayName":"Find orthologs/paralogs for gene symbols across species"},{"name":"volcano_plot_data","description":"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.","inputSchema":{"type":"object","required":["rows"],"properties":{"rows":{"type":"array","items":{"type":"object","required":["gene","log2fc","pvalue"],"properties":{"gene":{"type":"string"},"log2fc":{"type":"number"},"pvalue":{"type":"number"}}}}},"additionalProperties":false},"title":"Volcano plot data","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"volcano_plot_data","displayName":"Volcano plot data"},{"name":"hgvs_convert","description":"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. Also accepts a genomic \"g.\" position on a chromosome or RefSeqGene (NC_/NG_, GRCh38 or GRCh37): it is validated and placed on","inputSchema":{"type":"object","required":["variant"],"properties":{"variant":{"type":"string"}},"additionalProperties":false},"title":"HGVS Variant Converter (c. <-> g. <-> p.)","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"hgvs_convert","displayName":"HGVS Variant Converter (c. <-> g. <-> p.)"},{"name":"fastq_qc_report","description":"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.","inputSchema":{"type":"object","required":["input"],"properties":{"input":{"type":"string"},"qualityOffset":{"enum":[33,64],"type":"integer","default":33}},"additionalProperties":false},"title":"FASTQ Deep QC Report","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"fastq_qc_report","displayName":"FASTQ Deep QC Report"},{"name":"fastq_trim","description":"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.","inputSchema":{"type":"object","required":["input"],"properties":{"input":{"type":"string"},"minLength":{"type":"integer","default":20},"qualityOffset":{"enum":[33,64],"type":"integer","default":33},"qualityThreshold":{"type":"integer","default":20}},"additionalProperties":false},"title":"FASTQ Adapter & Quality Trimmer","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"fastq_trim","displayName":"FASTQ Adapter & Quality Trimmer"},{"name":"alphafold_lookup","description":"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.","inputSchema":{"type":"object","required":["accession"],"properties":{"accession":{"type":"string"}},"additionalProperties":false},"title":"Look up an AlphaFold structure prediction","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"alphafold_lookup","displayName":"Look up an AlphaFold structure prediction"},{"name":"export_plate_layout","description":"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.","inputSchema":{"type":"object","required":["reactions"],"properties":{"reactions":{"type":"array","items":{"type":"object","required":["forward","reverse"],"properties":{"name":{"type":"string"},"forward":{"type":"string"},"reverse":{"type":"string"},"template":{"type":"string"}}}}},"additionalProperties":false},"title":"PCR plate layout","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"export_plate_layout","displayName":"PCR plate layout"},{"name":"variant_annotate","description":"One-box variant lookup against MyVariant.info: accepts an rsID, chrom:pos:ref:alt (colon- or hyphen-separated), 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 \"ca","inputSchema":{"type":"object","required":["variant"],"properties":{"variant":{"type":"string"},"assembly":{"enum":["hg19","hg38"],"type":"string","default":"hg19"}},"additionalProperties":false},"title":"Variant Annotator","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"variant_annotate","displayName":"Variant Annotator"},{"name":"gene_model","description":"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.","inputSchema":{"type":"object","required":["gene"],"properties":{"gene":{"type":"string"}},"additionalProperties":false},"title":"Gene Model (Exon/CDS Structure)","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"gene_model","displayName":"Gene Model (Exon/CDS Structure)"},{"name":"gene_dossier","description":"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 eve","inputSchema":{"type":"object","required":["gene"],"properties":{"gene":{"type":"string"}},"additionalProperties":false},"title":"Gene/Target Dossier","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"gene_dossier","displayName":"Gene/Target Dossier"},{"name":"gene_expression","description":"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.","inputSchema":{"type":"object","required":["gene"],"properties":{"gene":{"type":"string"}},"additionalProperties":false},"title":"Gene Expression Fingerprint","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"gene_expression","displayName":"Gene Expression Fingerprint"},{"name":"sirna_design","description":"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-neighbor 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 seque","inputSchema":{"type":"object","required":["target"],"properties":{"target":{"type":"string","residues":"nt"},"shRnaLoop":{"type":"string","default":"TTCAAGAGA","residues":"nt"},"minReynolds":{"type":"integer","default":6}},"additionalProperties":false},"title":"siRNA / shRNA Designer","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"sirna_design","displayName":"siRNA / shRNA Designer"},{"name":"aso_design","description":"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.","inputSchema":{"type":"object","required":["target"],"properties":{"wing":{"type":"integer","default":5,"minimum":0},"length":{"type":"integer","default":20,"maximum":50,"minimum":8},"target":{"type":"string","residues":"nt"}},"additionalProperties":false},"title":"ASO Gapmer Designer","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"aso_design","displayName":"ASO Gapmer Designer"},{"name":"rna_fold","description":"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. PREDICTED, NOT MEASURED. No held-out skill statistic is cla","inputSchema":{"type":"object","required":["sequence"],"properties":{"sequence":{"type":"string","residues":"nt"}},"additionalProperties":false},"title":"RNA Secondary Structure (MFE)","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"rna_fold","displayName":"RNA Secondary Structure (MFE)"},{"name":"rbs_predict","description":"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 hybridization, 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","inputSchema":{"type":"object","required":["sequence"],"properties":{"end":{"type":"number"},"start":{"type":"number"},"sequence":{"type":"string"},"antiShineDalgarno":{"type":"string"}},"additionalProperties":false},"title":"Predict translation initiation rate (OSTIR)","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"rbs_predict","displayName":"Predict translation initiation rate (OSTIR)"},{"name":"vector_library_get","description":"Return one vector from the library: its GenBank accession and version, length, topology, organism/definition, complete sequence, and the full annotated feature table (type, label, 1-based inclusive start/end, strand, spliced length, and the location descriptor as the record wrote it). Accepts the library id, the vector name, or the accession. An unrecognized id is an error carrying the closest names — never an empty result.","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"string"},"includeSequence":{"type":"boolean","default":true}},"additionalProperties":false},"title":"Get a vector with its annotation","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"vector_library_get","displayName":"Get a vector with its annotation"},{"name":"batch","description":"Run one batchable SeqBench tool over many records. Returns a table of per-record results and typed failures.","inputSchema":{"type":"object","required":["tool","input"],"properties":{"args":{"type":"object","additionalProperties":true},"tool":{"type":"string"},"input":{"type":"string"}},"additionalProperties":false},"title":"Batch (one tool over many records)","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"batch","displayName":"Batch (one tool over many records)"},{"name":"workflow","description":"Run an ordered multi-tool pipeline over many records. One sequence value can be chained between steps.","inputSchema":{"type":"object","required":["steps","input"],"properties":{"input":{"type":"string"},"steps":{"type":"array","items":{"type":"object","required":["tool"],"properties":{"args":{"type":"object","additionalProperties":true},"from":{},"tool":{"type":"string"}},"additionalProperties":false},"maxItems":8,"minItems":1}},"additionalProperties":false},"title":"Batch workflow (multi-tool pipeline)","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"workflow","displayName":"Batch workflow (multi-tool pipeline)"}],"toolSource":"directory_preview","agentAction":"both","installLinks":[{"id":"cursor","label":"Cursor","href":"cursor://anysphere.cursor-deeplink/mcp/install?name=SeqBench&config=eyJ1cmwiOiAiaHR0cHM6Ly9zZXFiZW5jaC5jb20vYXBpL21jcCJ9"},{"id":"vscode","label":"VS Code","href":"vscode:mcp/install?%7B%22name%22%3A%22SeqBench%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fseqbench.com%2Fapi%2Fmcp%22%7D"},{"id":"vscode-insiders","label":"VS Code Insiders","href":"vscode-insiders:mcp/install?%7B%22name%22%3A%22SeqBench%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fseqbench.com%2Fapi%2Fmcp%22%7D"},{"id":"claude-web","label":"Claude.ai","href":"https://claude.ai/customize/connectors?modal=add-custom-connector&connectorName=SeqBench&connectorUrl=https%3A%2F%2Fseqbench.com%2Fapi%2Fmcp"},{"id":"codex","label":"Codex","copyText":"codex mcp add \"SeqBench\" --url \"https://seqbench.com/api/mcp\""},{"id":"chatgpt","label":"ChatGPT","href":"https://www.mcpbundles.com/docs/integrations/chatgpt"}],"catalogUrl":"https://www.mcpbundles.com/api/directory/v1/servers/seqbench-mcp-3825dd4af3","callUrl":"https://www.mcpbundles.com/api/directory/v1/servers/seqbench-mcp-3825dd4af3/tools/{tool}","mcpServerUrl":"https://seqbench.com/api/mcp","liveCatalogUrl":"https://www.mcpbundles.com/api/directory/v1/servers/seqbench-mcp-3825dd4af3?live=1"}