CovaSyn Chemistry Tools
Server Details
Chemistry, pharma and biotech tools for AI assistants: NMR, MS, IR and UV analysis, ADMET and ICH M7, stability (ICH Q1), HPLC methods, DoE, docking, retrosynthesis, biologics. Deterministic results you can check. Built in Leipzig, Germany.
- Status
- Healthy
- Uptime
- 5.3% over 56 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- oliverkraft93-ops/covasyn-mcp-examples
- GitHub Stars
- 0
TDQS
Score is being calculated.
Available Tools
144 toolscovabasic_analyzeInspect
Compute molecular descriptors from SMILES.
scope options:
"basic" — 40+ RDKit descriptors (atoms, bonds, rings, scaffolds, HBD/HBA, MW, complexity)
"extended" — basic + Chi indices, Kier-Hall, Gasteiger charges, flexibility ratio
"lipophilicity" — LogP, MR, TPSA, LabuteASA surface descriptors
"mordred" — 100 Mordred 2D descriptors (autocorrelation, topology, information content)
"all" — everything combined
| Name | Required | Description | Default |
|---|---|---|---|
| scope | No | basic | |
| smiles | Yes | ||
| api_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covabasic_atom_indicesInspect
Return atom indices for a named structural query — replaces hand-written SMARTS.
Use this when you need atom positions for a structural feature
(e.g. "which atoms are in the aromatic ring?", "where are the stereocenters?",
"which carbon has the highest oxidation state?").
Returns: `{indices: [...], groups: [[...]], smarts_used: "..."}`. Plus:
- `named_groups: [{name, atoms, smarts}]` for `functional_group_atoms`
- `oxidation_states: [{atom, state}]` for `oxidation_state`
Supported query names (22):
ring/topology : aromatic_ring, aliphatic_ring, saturated_ring,
heterocycle, fused_ring, bridgehead
atom-class : halogen_atom, carbon_atom, heavy_atom, csp3_carbon
stereo : stereocenter, r_s_stereocenter, unspecified_stereocenter
bonds & chains : rotatable_bond, branch_point, chain_termini,
longest_carbon_chain
derived : murcko_scaffold_atoms, brics_break_atoms,
functional_group_atoms
H-bonding / oxidation:
hba (Lipinski-style hydrogen-bond acceptors),
oxidation_state (per-carbon Pauling-EN ox-state,
with parallel `oxidation_states` field)
Examples:
query="aromatic_ring" + smiles="c1ccccc1" → indices [0..5], one group
query="r_s_stereocenter" + smiles="C[C@H](O)C(=O)O" → stereo carbon indices
query="hba" + smiles="CC(=O)O" → carbonyl + hydroxyl O indices
query="oxidation_state" + smiles="CC(=O)O" → carbon indices PLUS
oxidation_states=[{atom:0, state:-3}, {atom:1, state:+3}]
query="functional_group_atoms" + any SMILES → also returns named_groups list
Cost: 2 credits, available on Free tier.| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| smiles | Yes | ||
| api_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covabasic_bricsInspect
BRICS retrosynthetic fragmentation into purchasable building blocks. Returns fragment SMILES and bond-break locations.
| Name | Required | Description | Default |
|---|---|---|---|
| smiles | Yes | ||
| api_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covabasic_canonicalizeInspect
Return the RDKit canonical SMILES. Useful to normalize SMILES before comparison or database lookup.
| Name | Required | Description | Default |
|---|---|---|---|
| smiles | Yes | ||
| api_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covabasic_convertInspect
Unit conversion for chemistry (30+ conversions). Examples: "mol_to_g", "g_to_mol", "ug_to_mg", "celsius_to_kelvin", "ppm_to_molarity", "atm_to_pa". Pass mw for mass-mole conversions.
| Name | Required | Description | Default |
|---|---|---|---|
| mw | No | ||
| value | Yes | ||
| api_key | No | ||
| conversion | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covabasic_convert_formatInspect
Convert between chemical structure formats. Auto-detects input format.
Supported input: SMILES, InChI, MOL block, SDF block
to_format options: "smiles", "inchi", "inchikey", "molblock", "sdf"
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | ||
| to_format | No | smiles | |
| input_string | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covabasic_depictInspect
Generate 2D molecule depiction(s). Returns SVG string or base64-encoded PNG.
Single molecule: provide smiles. Add highlight_smarts to highlight a substructure.
Grid of molecules: provide smiles_list (list of SMILES) + optional legends.
img_format: "svg" (default, scalable) or "png" (base64-encoded).
| Name | Required | Description | Default |
|---|---|---|---|
| width | No | ||
| height | No | ||
| smiles | No | ||
| api_key | No | ||
| legends | No | ||
| img_format | No | svg | |
| smiles_list | No | ||
| mols_per_row | No | ||
| highlight_smarts | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covabasic_describe_structureInspect
Explain what a structure IS, in prose — parent framework, ring system, functional groups, substituents.
Turns a SMILES into a readable chemical description rather than a table of
numbers. Useful for reports, for captioning a drawn structure, and for
checking that a structure is what you meant to draw.
style="human" — compact, chemistry-facing narrative: the parent skeleton,
heteroatom positions, unsaturation, the principal
characteristic group, then substituents with their locants.
style="technical" — the full naming walkthrough, including how the name was
assembled token by token.
Returns: `{name, paragraphs: [...], text, rules_hit, smiles, style, engine}`,
or `{error, smiles}`. `text` is the paragraphs joined for direct display.| Name | Required | Description | Default |
|---|---|---|---|
| style | No | human | |
| smiles | Yes | ||
| verify | No | ||
| api_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covabasic_druglikenessInspect
Evaluate drug-likeness: Lipinski Ro5, Veber, Ghose, Egan, Muegge, Ro3 (fragments), QED score, synthetic accessibility (SA) score.
| Name | Required | Description | Default |
|---|---|---|---|
| smiles | Yes | ||
| api_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covabasic_equationInspect
Solve a physicochemical equation. Pass equation name + parameter dict.
Equations and their params:
"arrhenius" — {k1, t1_k, k2?, t2_k?, ea_kj?} compute Ea or predict k at new T
"vant_hoff" — {k1, t1_k, k2, t2_k} compute reaction enthalpy delta-H
"henderson_hasselbalch" — {pka, ph, acid (bool)} compute ionization fractions
"ideal_gas" — {n?, p_atm?, v_l?, t_k?} PV=nRT, solve for missing variable
"beer_lambert" — {absorbance?, epsilon?, concentration?, path_length?} A=ecl
"dilution" — {c1, v1, c2?, v2?} C1V1=C2V2, solve for missing variable
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes | ||
| api_key | No | ||
| equation | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covabasic_filter_checkInspect
Screen for problematic substructures: PAINS (pan-assay interference), BRENK (unwanted groups), NIH MLPCN filters, ZINC druglike filters. Returns alert count + details per filter set.
| Name | Required | Description | Default |
|---|---|---|---|
| smiles | Yes | ||
| api_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covabasic_fingerprintInspect
Generate molecular fingerprints: Morgan (ECFP4), MACCS keys, RDKit topological. Returns bit vectors as hex strings.
| Name | Required | Description | Default |
|---|---|---|---|
| smiles | Yes | ||
| api_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covabasic_functional_groupsInspect
Count ~65 functional groups: alcohols, phenols, amines, amides, esters, ethers, ketones, aldehydes, carboxylic acids, sulfonamides, nitro, halogens, heterocycles, etc.
| Name | Required | Description | Default |
|---|---|---|---|
| smiles | Yes | ||
| api_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covabasic_green_chemistryInspect
Calculate green chemistry metrics: E-factor (kg waste / kg product) and/or PMI (Process Mass Intensity = total input / product).
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | ||
| mass_waste_kg | No | ||
| mass_product_kg | Yes | ||
| mass_all_inputs_kg | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covabasic_image_to_smilesInspect
Convert a chemical structure image to SMILES via Mathpix OCR. Input: base64-encoded PNG/JPG of a drawn molecule. Returns SMILES, confidence, and all detected structures. Requires Mathpix API credentials on server.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | ||
| image_base64 | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covabasic_iupac_nameInspect
Get the IUPAC name of a structure — generating one when it is unknown to any database.
Two sources, tried in order, and the response always says which one answered:
- `source="pubchem"` — the curated, human-checked IUPAC name. Authoritative,
but only exists for compounds PubChem indexes.
- `source="openclatura"` — a name constructed from the molecular graph by a
deterministic IUPAC Blue Book (2013) rule engine. Works on any valid
structure, including novel compounds, intermediates and analogues.
Parameters:
prefer_pubchem — check PubChem first (default true). Set false to force
generation, or to keep the call purely offline and ~100x faster: the
rule engine takes ~5 ms, the PubChem round-trip 0.6-1 s.
explain — also return `rules_hit`, the Blue Book rules that fired
(e.g. P-44, P-61). Costs ~5x the naming time; off by default.
verify — round-trip the generated name through OPSIN and report whether it
parses back to the same structure. Needs a Java runtime; without one the
result reports `verification="skipped_no_java"` instead of failing.
Returns: `{name, smiles, source, generated, engine}` (+ `rules_hit`,
`verification` when requested), or `{error, smiles}`.
A generated name is a systematic construction, not a database record —
treat `generated=true` accordingly.| Name | Required | Description | Default |
|---|---|---|---|
| smiles | Yes | ||
| verify | No | ||
| api_key | No | ||
| explain | No | ||
| prefer_pubchem | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covabasic_pubchemInspect
Query PubChem database. NETWORK REQUIRED.
action options:
"lookup" — find compound by name, CAS, SMILES, or InChIKey. Returns CID, IUPAC name, InChI, MW, XLogP, TPSA.
"smiles" — resolve a compound name or CAS to canonical SMILES.
"properties" — fetch computed properties for a PubChem CID (pass CID as query).
"similarity" — find similar compounds by Tanimoto (pass SMILES as query, set threshold 0-1).
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| action | No | lookup | |
| api_key | No | ||
| threshold | No | ||
| query_type | No | name | |
| max_results | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covabasic_reynoldsInspect
Reynolds number calculation with flow regime classification (laminar / transitional / turbulent). For pipe flow and mixing design.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | ||
| diameter_m | Yes | ||
| velocity_m_s | Yes | ||
| density_kg_m3 | Yes | ||
| viscosity_pa_s | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covabasic_scaffold_analysisInspect
Murcko scaffold decomposition: core ring framework, side chains, generic scaffold, ring systems, linkers. Useful for series analysis and SAR.
| Name | Required | Description | Default |
|---|---|---|---|
| smiles | Yes | ||
| api_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covabasic_similarityInspect
Compare two molecules by structural similarity.
method="all" — Tanimoto, Dice, Cosine, MCS (Maximum Common Substructure) method="tversky" — asymmetric Tversky index (alpha/beta control substructure vs superstructure bias)
| Name | Required | Description | Default |
|---|---|---|---|
| beta | No | ||
| alpha | No | ||
| method | No | all | |
| api_key | No | ||
| smiles_a | Yes | ||
| smiles_b | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covabasic_standardizeInspect
Standardize a SMILES string.
mode="basic" — salt stripping, neutralization, canonical tautomer mode="enhanced" — + charge-parent extraction, metal disconnection, stereo normalization
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | basic | |
| smiles | Yes | ||
| api_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covabasic_stoichiometryInspect
Calculate reactant masses needed for a target product mass. Input: MW of product, list of reactant MWs, stoichiometric equivalents, and target mass in grams.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | ||
| mw_product | Yes | ||
| equivalents | Yes | ||
| mw_reactants | Yes | ||
| target_mass_g | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covabasic_substructureInspect
Search for a SMARTS substructure pattern in a molecule. Returns match count, atom indices of each hit, and highlighted atoms.
| Name | Required | Description | Default |
|---|---|---|---|
| smiles | Yes | ||
| api_key | No | ||
| pattern_smarts | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covabasic_tautomersInspect
Enumerate tautomers of a molecule (keto-enol, amide-imidol, etc.). Returns canonical tautomer + all alternatives.
| Name | Required | Description | Default |
|---|---|---|---|
| smiles | Yes | ||
| api_key | No | ||
| max_tautomers | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covabasic_validateInspect
Validate SMILES with 15+ checks: parsability, valence, stereo, aromaticity, charge, size limits, isotopes, radicals.
| Name | Required | Description | Default |
|---|---|---|---|
| smiles | Yes | ||
| api_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covabio_adcInspect
Design an antibody-drug conjugate (ADC): estimate DAR (drug-to-antibody ratio), total molecular weight, conjugatable cysteine/lysine sites, aggregation risk, and payload hydrophobicity impact.
Parameters:
antibody_sequence: Antibody amino acid sequence.
payload_smiles: Drug payload SMILES (e.g. MMAE, DM1).
target_dar: Target drug-to-antibody ratio (default 4.0).
Returns: {total_mw, dar, conjugation_sites, aggregation_risk, payload_properties}| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | ||
| target_dar | No | ||
| payload_smiles | Yes | ||
| antibody_sequence | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covabio_alignInspect
Pairwise sequence alignment using BioPython. Supports BLOSUM62, BLOSUM45, BLOSUM80 substitution matrices. Returns alignment score, identity percentage, aligned sequences, and gap statistics.
Parameters:
seq1: First amino acid sequence.
seq2: Second amino acid sequence.
matrix: Scoring matrix — "BLOSUM62" (default), "BLOSUM45", "BLOSUM80".
Returns: {score, identity_pct, aligned_seq1, aligned_seq2, n_gaps}| Name | Required | Description | Default |
|---|---|---|---|
| seq1 | Yes | ||
| seq2 | Yes | ||
| matrix | No | BLOSUM62 | |
| api_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covabio_antibodyInspect
Identify CDR regions (complementarity-determining regions) and framework regions in an antibody sequence. Supports Kabat, Chothia, and IMGT numbering schemes. Returns CDR boundaries, chain type (heavy/light), framework sequences, and CDR developability flags.
Parameters:
sequence: Antibody heavy or light chain amino acid sequence.
scheme: Numbering scheme — "kabat" (default), "chothia", or "imgt".
Returns: {chain_type, CDR1/2/3 sequences and positions, framework_regions, cdr_developability}| Name | Required | Description | Default |
|---|---|---|---|
| scheme | No | kabat | |
| api_key | No | ||
| sequence | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covabio_batch_profileInspect
Profile up to 100 protein sequences in one call — the same 30+ biophysical properties as covabio_protein_profile, per sequence. Charged once per call, not per sequence. Use for candidate panels, variant series, or a whole FASTA out of covabio_parse_fasta.
A sequence that fails does not abort the batch: its slot carries {error: true, message, sequence} and the rest still return. Over 100 sequences the call is rejected rather than truncated, so a silently short result is not possible — split the batch.
Parameters:
sequences: List of amino acid sequences (max 100).
Returns: {results: [profile | {error, message, sequence}]} in input order| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | ||
| sequences | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covabio_charge_profileInspect
Compute net charge versus pH over a chosen window, plus the isoelectric point. Use for buffer and formulation-pH selection, for predicting IEX binding and elution behaviour, and for reading a pI shift between a reference and a comparability lot.
Parameters:
sequence: Protein amino acid sequence.
ph_start: Lower bound of the pH window (default 2.0).
ph_end: Upper bound of the pH window (default 12.0).
Returns: {charge_profile: [{ph, charge}], isoelectric_point}| Name | Required | Description | Default |
|---|---|---|---|
| ph_end | No | ||
| api_key | No | ||
| ph_start | No | ||
| sequence | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covabio_cleavage_sitesInspect
Map protease cleavage sites and score proteolytic stability. Covers trypsin (after K/R, not before P), chymotrypsin (after F/W/Y, not before P), pepsin (after F/L) and elastase (after A/G/S/V). Returns per-protease position lists, a total site count, a 0-100 stability score and a classification (highly_stable / moderate / proteolytically_labile).
Two uses: predicting in-vivo half-life and serum stability for a peptide therapeutic, and planning the digest for a peptide-mapping or MAM method — the trypsin list is the peptide map you will get.
Returns the same protease analysis that covabio_peptide embeds, on its own and for any protein length.
Parameters:
sequence: Amino acid sequence.
Returns: {sites: {trypsin, chymotrypsin, pepsin, elastase}, total_cleavage_sites, stability_score, classification}| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | ||
| sequence | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covabio_codon_adaptationInspect
Compute the Codon Adaptation Index (CAI) of a DNA coding sequence against host codon usage. Returns the score, how many codons were scored, how many hit the host's optimal codon, and a classification (highly_optimized >0.8 / well_optimized >0.6 / moderately_optimized >0.4 / poorly_optimized). Use to judge an expression construct before ordering synthesis, or to compare two vendor optimizations.
Scored against the optimal codon per amino acid, so it measures optimal-codon fraction rather than the geometric-mean CAI of Sharp & Li 1987. Stop codons are excluded. For mRNA therapeutics use covabio_mrna, which adds GC, CpG and uridine content.
Parameters:
dna_sequence: Coding DNA sequence (ATG...stop).
organism: Host codon table — "ecoli" (default) or "human".
Returns: {cai_score, total_codons, optimal_codons, scored_codons, organism, classification}| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | ||
| organism | No | ecoli | |
| dna_sequence | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covabio_deamidationInspect
Locate asparagine deamidation hotspots in a protein sequence — the single most cited chemical-degradation CQA for antibodies and fusion proteins. Scans for the six Asn-Xaa motifs ordered by known lability: NG (critical), NS (high), NH and ND (medium), NA and NT (low). Use to justify a deamidation-monitoring strategy, to compare candidate sequences before lead selection, or to explain a charge-variant shift observed on IEX/icIEF.
This is a sequence-motif rule set, not a structural or kinetic prediction: solvent exposure, local flexibility, pH and temperature all modulate the real rate, and a buried NG can be stable while an exposed ND is not. Treat the output as a site list to test, not a rate.
Parameters:
sequence: Protein amino acid sequence (1-letter code).
Returns: {deamidation_sites: [{position, motif, risk, context}]} sorted by position| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | ||
| sequence | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covabio_developabilityInspect
Assess biopharmaceutical developability across 8 risk dimensions: aggregation propensity, deamidation hotspots, oxidation sites, glycosylation risk, charge heterogeneity, hydrophobic patches, sequence liabilities, and post-translational modification risk. Returns composite score (0-100) with per-dimension breakdown and flagged positions.
Parameters:
sequence: Protein/antibody amino acid sequence.
metal_binding_context: Set True for chelators/metal-binding constructs so functional
Cys/His/carboxylate residues aren't penalized as liabilities (default False).
Returns: {composite_score, risk_dimensions: {aggregation, deamidation, ...}, flagged_positions}| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | ||
| sequence | Yes | ||
| metal_binding_context | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covabio_immunogenicityInspect
Screen protein sequence for potential T-cell epitopes (MHC-II binding). Scans 9-mer windows against 8 common HLA-DRB1 alleles using positional scoring matrices. A window counts as an epitope when it clears an absolute, background-calibrated score threshold (each allele flags at most 5% of random 9-mers of natural composition), so epitope_density is comparable between sequences: a sequence of random natural composition scores ~0.09 against this panel. Deimmunization suggestions target the P1/P4/P6/P9 anchor positions that drive binding. This is an in-silico binding prediction from hand-curated matrices, NOT an ADA rate and not calibrated against measured affinities.
Parameters:
sequence: Protein amino acid sequence.
alleles: Optional HLA allele list (default: 8 common DRB1 alleles).
Returns: {n_epitopes, epitopes: [{position, peptide, allele, score, binding_alleles}], epitope_density, risk_classification (low <0.18, moderate <0.27, high), hotspots, per_allele_scores, deimmunization_suggestions: [{position, original_aa, suggested_aa, position_class, predicted_reduction}], binder_thresholds, threshold_basis}| Name | Required | Description | Default |
|---|---|---|---|
| alleles | No | ||
| api_key | No | ||
| sequence | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covabio_mam_reportInspect
Consolidated Multi-Attribute Method hotspot report: every sequence-liable modification site in one ranked list, across seven modification types — deamidation, oxidation, isomerization, N-glycosylation sequons, acid-labile cleavage, N-terminal pyroglutamate, and C-terminal lysine clipping. This is the site list a MAM peptide-mapping method has to cover, and the starting point for an attribute-criticality assessment.
Sequence-derived only: it tells you which residues CAN carry an attribute, not which ones DO in a given lot. It replaces neither the LC-MS measurement nor the criticality ranking.
Parameters:
sequence: Protein/antibody amino acid sequence.
Returns: {hotspots: [{position, modification_type, motif, risk, context}]}| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | ||
| sequence | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covabio_mrnaInspect
Evaluate mRNA therapeutic sequence: codon adaptation index (CAI), GC content optimization, CpG dinucleotide analysis, uridine content, and overall optimization score for translational efficiency.
Parameters:
coding_sequence: mRNA coding DNA sequence (ATG...stop).
organism: Target organism — "human" (default) or "ecoli".
Returns: {cai_score, gc_content, cpg_count, uridine_fraction, optimization_score}| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | ||
| organism | No | human | |
| coding_sequence | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covabio_oligoInspect
Compute oligonucleotide properties: melting temperature (Tm via SantaLucia 1998 nearest-neighbor), GC content, molecular weight, extinction coefficient, hairpin detection, and self-complementarity check.
Parameters:
sequence: Nucleotide sequence (e.g. "ATCGATCG").
oligo_type: "DNA" (default) or "RNA".
Returns: {tm_celsius, gc_content, molecular_weight, hairpin_detected, self_complementary}| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | ||
| sequence | Yes | ||
| oligo_type | No | DNA |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covabio_parse_fastaInspect
Parse FASTA text into named sequence entries. Handles multi-line sequences, multiple records, and raw sequence without a header (auto-named seq_1, seq_2, ...). Use to turn a pasted or downloaded FASTA into the input for covabio_batch_profile or any single-sequence tool.
Parameters:
fasta_text: FASTA-formatted text (one or more records).
Returns: {entries: [{name, sequence}]}| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | ||
| fasta_text | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covabio_peptideInspect
Profile a peptide sequence: biophysical properties plus peptide-specific analyses including cell-penetrating peptide (CPP) score, antimicrobial peptide (AMP) prediction, proteolytic stability (trypsin/chymotrypsin/pepsin cleavage sites), and N-end rule half-life.
Parameters:
sequence: Peptide amino acid sequence (typically 5-50 residues).
Returns: {properties, cpp_score, amp_score, protease_sites, half_life}| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | ||
| sequence | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covabio_protein_profileInspect
Compute 30+ biophysical properties of a protein from its amino acid sequence. Returns molecular weight, isoelectric point, extinction coefficient, GRAVY (hydrophobicity), instability index, aromaticity, charge profile across pH range, amino acid composition, and secondary structure fractions.
Parameters:
sequence: Amino acid sequence (1-letter code, e.g. "MKWVTFISLLLLFSSAYS...").
Returns: {molecular_weight, isoelectric_point, gravy, instability_index, charge_profile, ...}| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | ||
| sequence | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covabio_sequence_utilsInspect
Sequence toolbox for construct design: 1-letter to 3-letter code conversion, codon table, reverse translation optimized for E. coli and for human codon usage, signal-peptide check, simple domain search, and restriction-enzyme sites found in the reverse-translated DNA. Use when going from a protein sequence to an expression construct.
Parameters:
sequence: Protein amino acid sequence.
Returns: {length, one_to_three, codon_table, reverse_translate_ecoli, reverse_translate_human, signal_peptide_check, domain_search, restriction_sites_in_dna}| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | ||
| sequence | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covabio_sirnaInspect
Design siRNA candidates against a target mRNA sequence using Reynolds 2004 rules. Scores 19-mer windows for efficacy, GC content, thermodynamic asymmetry, and off-target risk. Returns ranked candidate list.
Parameters:
target_sequence: Target mRNA sequence (DNA, minimum 21 nt).
Returns: {n_candidates, candidates: [{position, sense, antisense, score, gc_content}]}| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | ||
| target_sequence | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covabio_viscosityInspect
Estimate viscosity of a protein solution at high concentration. Uses sequence-based heuristic model (Sharma 2014) considering charge, hydrophobicity, and molecular weight. Critical for antibody formulation development.
Parameters:
sequence: Protein amino acid sequence.
concentration_mg_ml: Protein concentration (default 150 mg/mL for subcutaneous).
ph: Formulation pH (default 6.0).
Returns: {viscosity_cP, risk_level, contributing_factors}| Name | Required | Description | Default |
|---|---|---|---|
| ph | No | ||
| api_key | No | ||
| sequence | Yes | ||
| concentration_mg_ml | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covachem_compareInspect
Compare 2-5 molecules side by side.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | ||
| smiles_list | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covachem_druglikenessInspect
Evaluate drug-likeness filters (Lipinski, Ghose, Veber, PAINS, etc.).
| Name | Required | Description | Default |
|---|---|---|---|
| smiles | Yes | ||
| api_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covachem_profileInspect
Broad physicochemical scan — 80+ properties in one call (logP, TPSA, H-bond donors/acceptors, rotatable bonds, druglikeness flags, heuristic logS, etc).
Use this when the user wants a general overview of a molecule.
Do NOT use this if the user asks specifically about:
• SOLUBILITY in a solvent → use `covasolve_predict` (ML model with
confidence intervals, ~10× more accurate than this tool's heuristic
logS, and cheaper at 5 credits vs 6).
• DRUGLIKENESS only → `covachem_druglikeness` (1 cr).
• pKa values → `covachem_pka` (5 cr).
• ADME parameters only → `covachem_adme` (15 cr).
Cost: 6 credits (broad-scan premium). The targeted tools above are 1-5 cr
each and produce better results within their domain.| Name | Required | Description | Default |
|---|---|---|---|
| smiles | Yes | ||
| api_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covadoe_alias_structureInspect
Compute alias/confounding structure and design resolution.
| Name | Required | Description | Default |
|---|---|---|---|
| data | Yes | ||
| api_key | No | ||
| max_order | No | ||
| factor_columns | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covadoe_analyzeInspect
Run ANOVA analysis on experimental results.
Returns OLS coefficients (coded + uncoded, with a plain-language model_equation_uncoded),
Type III ANOVA (+ Type I sequential SS under anova_type1), and significance. Blocking and
split-plot terms are picked up automatically from "Block"/"WholePlot" columns. Optional:
`factor_info` (list of {name, type:"categorical", levels:[...]}) enables multi-df categorical
F-tests; `response_family` ("gaussian"|"binomial"|"poisson") fits a GLM for non-normal responses.| Name | Required | Description | Default |
|---|---|---|---|
| data | Yes | ||
| api_key | No | ||
| response | Yes | ||
| factor_info | No | ||
| model_terms | No | linear | |
| factor_columns | No | ||
| response_family | No | gaussian |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covadoe_augment_designInspect
Augment a screening design with RSM runs (axial, fold-over, BBD).
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | ||
| target_type | No | central_composite | |
| existing_design | Yes | ||
| n_center_points | No | ||
| selected_factors | Yes | ||
| reuse_center_points | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covadoe_canonical_analysisInspect
Canonical analysis: eigenvalues, stationary point, surface nature.
| Name | Required | Description | Default |
|---|---|---|---|
| model | Yes | ||
| api_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covadoe_compare_designsInspect
Compare and rank candidate designs for given factors.
| Name | Required | Description | Default |
|---|---|---|---|
| goal | No | screening | |
| api_key | No | ||
| factors | Yes | ||
| max_runs | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covadoe_create_designInspect
Create an experimental design (factorial, fractional, CCD, BBD, D/I-optimal, Taguchi, LHS, simplex mixture, etc.).
Optional: `constraints` — list of {terms:{factor:coef}, op:"<="|">="|"==", rhs} in REAL units —
filters the D/I-optimal candidate set. `mixture=True` with a simplex `design_type`
("simplex_lattice"/"simplex_centroid") builds a bounded-mixture design (L-pseudocomponent,
components sum to 1, each ≥ its `low`); `degree` sets the simplex-lattice degree; `n_levels` sets
the D/I-optimal candidate-grid density.
Model-aware optimal designs: `model_terms` ("linear"|"interaction"|"quadratic") sets the model
matrix the D/I-optimal criterion optimizes for. `n_blocks` (>1) adds a "Block" column, confounding
the highest-order interaction(s) for factorial designs. `n_runs` / `resolution` / `generators`
control the `fractional_factorial` fraction, in that precedence order: `n_runs` (a power of 2,
counting base runs before center points) pins the fraction exactly — e.g. n_runs=16 on 5 factors
gives 2^(5-1), resolution V; `resolution` (3/4/5...) picks the smallest fraction reaching it;
`generators` gives the defining generators verbatim as pyDOE2 tokens, one per factor
(e.g. ["a","b","c","ab","ac"] for 2^(5-2)).
`design_type="taguchi"` builds an orthogonal-array design (`taguchi_levels` 2 or 3). `hard_to_change`
(list of factor names) produces a split-plot layout with a "WholePlot" column. `process_factors`
(with `mixture=True`) builds a mixture-process crossed design (`process_design_type`,
`process_center_points`). `n_runs` also sets the run count for D/I-optimal designs (default
len(factors)*3+1) and the sample count for latin_hypercube / sobol_sequence.
CCD variant: `face` — "circumscribed" (default), "faced" (star points on the faces, α = 1, for
factors that cannot physically exceed their range) or "inscribed" (the CCC scaled so the star
points land on the stated range). `axial_alpha` sets the axial distance; the default is
ROTATABLE, (2**k)**0.25, and "orthogonal" gives the α where Σx² = n_runs. The choice is worth
several points of power — check it with `covadoe_design_power` before running the design.
Common `design_type` aliases resolve ("full_factorial", "ccd", "dsd", "bbd"); the response
reports the canonical name actually built.| Name | Required | Description | Default |
|---|---|---|---|
| face | No | ||
| degree | No | ||
| n_runs | No | ||
| api_key | No | ||
| factors | Yes | ||
| mixture | No | ||
| n_blocks | No | ||
| n_levels | No | ||
| generators | No | ||
| resolution | No | ||
| axial_alpha | No | ||
| constraints | No | ||
| design_type | Yes | ||
| model_terms | No | linear | |
| n_replicates | No | ||
| hard_to_change | No | ||
| taguchi_levels | No | ||
| n_center_points | No | ||
| process_factors | No | ||
| process_design_type | No | full_factorial_2k | |
| process_center_points | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covadoe_design_powerInspect
Planning-time statistical power from a design's REAL model matrix — no data needed.
Builds the design and takes `ncp = effect_size² / (X'X)⁻¹_jj`, so it is correct for centre
points, axial points and unbalanced designs — unlike `covadoe_power_analysis`, which assumes
orthogonality and overstates power on a CCD, Box-Behnken or DSD. Use this when planning an
experiment; use `covadoe_post_hoc_power` only once you have measured responses.
`design_type` + `n_factors` builds the design (same generator as `covadoe_create_design`, so the
answer describes the design you would actually get). Common aliases resolve ("full_factorial",
"ccd", "dsd"). Alternatively pass `design`, an explicit coded run matrix, to score a design you
already hold — D/I-optimal, mixture, split-plot or hand-built. `n_runs` / `model_terms` are
forwarded to the generator for the optimal designs.
`model`: "linear" | "interaction" | "quadratic" | "quadratic_no_interaction" (a DSD supports only
the last). `term` names the coefficient — "x1", "x1^2", "x1*x2"; omit it to get power for every
term and group, which differ sharply on the same design. `alpha` is the significance level;
the CCD axial distance is `axial_alpha`, and the two are easy to confuse.
CCD variant: `axial_alpha` defaults to ROTATABLE, (2**n_factors)**0.25 — the design JMP,
Design-Expert and Minitab hand you. Pass a number, or "orthogonal" for the α where Σx² = n_runs
(at 3 factors: main-effect power 0.9400 against the rotatable 0.8846 on the same 17 runs; the
orthogonal α is also the premise of `covadoe_power_analysis`, so on that design the two agree
for a main effect and disagree for every other term). `face` — "circumscribed" (default),
"faced" (star points on the faces, α = 1) or "inscribed"; a bool works, and an unknown value is
rejected rather than quietly treated as circumscribed.
Returns power, power_by_term, power_by_group, df_error, relative_variance ((X'X)⁻¹_jj), the
resolved design_summary (the α and factorial level actually built — read both, an inscribed CCD
always reports α = 1), and `orthogonal_shortcut_power` — what `covadoe_power_analysis` would
have claimed — with its signed error (signed: the shortcut does not always overstate). Returns
`estimable: false` plus a reason when the model cannot be fitted on the design.| Name | Required | Description | Default |
|---|---|---|---|
| face | No | ||
| term | No | ||
| alpha | No | ||
| model | No | quadratic | |
| design | No | ||
| n_runs | No | ||
| api_key | No | ||
| n_factors | No | ||
| axial_alpha | No | ||
| design_type | No | ||
| effect_size | No | ||
| model_terms | No | ||
| factor_names | No | ||
| n_center_points | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covadoe_design_spaceInspect
Compute ICH Q8 design space (NOR, PAR, probability of meeting specs).
| Name | Required | Description | Default |
|---|---|---|---|
| data | Yes | ||
| api_key | No | ||
| n_samples | No | ||
| confidence | No | ||
| factor_columns | No | ||
| response_specs | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covadoe_find_optimumInspect
Find optimal factor settings for a single response.
| Name | Required | Description | Default |
|---|---|---|---|
| goal | No | maximize | |
| model | Yes | ||
| api_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covadoe_fit_rsmInspect
Fit a response surface model (quadratic RSM).
| Name | Required | Description | Default |
|---|---|---|---|
| data | Yes | ||
| api_key | No | ||
| response | Yes | ||
| model_terms | No | quadratic | |
| factor_columns | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covadoe_model_selectionInspect
Select best model terms via stepwise, all-subsets, or hierarchical selection.
| Name | Required | Description | Default |
|---|---|---|---|
| data | Yes | ||
| method | No | stepwise | |
| api_key | No | ||
| response | Yes | ||
| factor_columns | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covadoe_optimizeInspect
Multi-response optimization (desirability, Pareto, weighted sum).
| Name | Required | Description | Default |
|---|---|---|---|
| data | Yes | ||
| method | No | desirability | |
| api_key | No | ||
| factor_columns | No | ||
| response_specs | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covadoe_plot_dataInspect
Generate plot data for DoE visualizations (14 plot types).
Analysis plots (need analysis_result, or design_data+response_col to auto-fit): main_effects,
interaction, pareto_effects, half_normal, normal_effects (signed Daniel plot; `alpha` sets the
reference threshold). Model plots (need model_result, or design_data+response_col): contour_2d,
surface_3d, residuals_4plot, prediction_profiler, cube_plot, ternary_mixture. Optimization plots:
desirability, pareto_front. `overlaid_contour` (sweet-spot / green-zone) takes `response_specs`
(list of {name, lower/upper}) + `factor_x`/`factor_y`; it fits one RSM per response from
design_data and returns the combined in-spec mask (`fixed_factors` pins the other factors).| Name | Required | Description | Default |
|---|---|---|---|
| alpha | No | ||
| api_key | No | ||
| factors | No | ||
| factor_x | No | ||
| factor_y | No | ||
| grid_size | No | ||
| plot_type | Yes | ||
| components | No | ||
| response_x | No | ||
| response_y | No | ||
| design_data | No | ||
| model_result | No | ||
| response_col | No | ||
| fixed_factors | No | ||
| response_specs | No | ||
| analysis_result | No | ||
| optimization_result | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covadoe_post_hoc_powerInspect
Post-hoc power analysis from existing experiment.
| Name | Required | Description | Default |
|---|---|---|---|
| data | Yes | ||
| api_key | No | ||
| response | Yes | ||
| model_terms | No | linear | |
| factor_columns | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covadoe_power_analysisInspect
Statistical power ASSUMING AN ORTHOGONAL ±1 DESIGN — prefer covadoe_design_power.
Takes only scalars, so it never sees the design and cannot check its own premise. It uses
`ncp = n_runs · effect_size²`, which requires `(X'X)⁻¹_jj = 1/n_runs` — true for two-level
factorial and Plackett-Burman designs, and FALSE for a central composite, a Box-Behnken, a
definitive screening design, or a plain factorial WITH CENTRE POINTS.
On those it is wrong by a lot, and confidently: 0.8677 against a true 0.6228 on a Box-Behnken,
0.3874 against 0.2909 on a DSD, 0.3874 against 0.2491 on a 14-run factorial with centre points
(each Monte Carlo confirmed, 2026-08-07).
Use `covadoe_design_power` for ANY design carrying centre or axial points — it builds the design
and takes the non-centrality from `(X'X)⁻¹`, needs no data, and also reports what this tool would
have claimed. Use this one only when the design really is an orthogonal two-level design.
Every response carries `assumes_orthogonal_design: true` and a `validity` note.| Name | Required | Description | Default |
|---|---|---|---|
| alpha | No | ||
| n_runs | Yes | ||
| api_key | No | ||
| n_terms | Yes | ||
| effect_size | Yes | ||
| residual_variance | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covadoe_predictInspect
Predict response at given factor settings with CI and PI.
| Name | Required | Description | Default |
|---|---|---|---|
| alpha | No | ||
| model | Yes | ||
| api_key | No | ||
| settings | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covadoe_residual_diagnosticsInspect
Residual diagnostics: normality (Shapiro-Wilk), Cook's distance, leverage.
| Name | Required | Description | Default |
|---|---|---|---|
| data | Yes | ||
| api_key | No | ||
| response | Yes | ||
| model_terms | No | linear | |
| factor_columns | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covadoe_ridge_analysisInspect
Ridge / steepest-ascent path of a quadratic RSM (Draper; Myers & Montgomery).
When the unconstrained optimum is a saddle or sits outside the studied region, this traces the
locus of best predicted response on spheres of increasing radius around the design center — the
direction to run the next experiments. Pass a fitted `model` (from fit_rsm) OR raw `data` +
`response` to auto-fit one. Returns the eigenvalue nature, stationary point, and the ridge `path`
(radius, real-unit settings, predicted response ± CI) ending at `recommended_settings`.| Name | Required | Description | Default |
|---|---|---|---|
| data | No | ||
| goal | No | maximize | |
| model | No | ||
| api_key | No | ||
| n_steps | No | ||
| response | No | ||
| include_ci | No | ||
| max_radius | No | ||
| factor_columns | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covadoe_suggest_designInspect
Recommend a design type based on number of factors and goal.
| Name | Required | Description | Default |
|---|---|---|---|
| goal | No | screening | |
| api_key | No | ||
| n_factors | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covadoe_taguchiInspect
Taguchi robust-design analysis: signal-to-noise ratios + main effects on the S/N.
Computes the S/N ratio per run and the factor-level S/N means to find the most robust setting.
`sn_type` selects the ratio ("larger_better"|"smaller_better"|"nominal_better"); if omitted it is
inferred from `response_goal` ("maximize"|"minimize"|"target"). Returns per-factor S/N tables,
the recommended robust level per factor, and a delta/rank contribution ordering.| Name | Required | Description | Default |
|---|---|---|---|
| data | Yes | ||
| api_key | No | ||
| sn_type | No | ||
| response | Yes | ||
| response_goal | No | ||
| factor_columns | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covair_annotateInspect
Annotate IR spectrum with known molecular structure (SMILES).
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| smiles | Yes | ||
| api_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covair_auto_analyzeInspect
Full IR analysis in one call: load, optimize processing, detect peaks, report.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| smiles | No | ||
| api_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covair_batchInspect
Batch-process all IR spectra in a folder with auto-optimized parameters.
| Name | Required | Description | Default |
|---|---|---|---|
| folder | Yes | ||
| api_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covair_compareInspect
Compare two IR spectra: correlation, distance, verdict.
| Name | Required | Description | Default |
|---|---|---|---|
| path_a | Yes | ||
| path_b | Yes | ||
| api_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covair_identifyInspect
Identify unknown IR spectrum: functional groups, substance class, contaminants.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| api_key | No | ||
| library_path | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covair_predict_irInspect
Predict expected IR absorption bands from SMILES string.
| Name | Required | Description | Default |
|---|---|---|---|
| smiles | Yes | ||
| api_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covair_processInspect
IR analysis with explicit processing parameters (baseline + normalization).
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| api_key | No | ||
| baseline | No | airpls | |
| normalize_method | No | minmax |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covair_quality_checkInspect
Assess IR spectrum quality: S/N, water vapor, CO2, saturation, grade.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| api_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covair_verifyInspect
Verify a structure against a measured IR spectrum: verdict, band recall, and what is left unexplained.
Pass `path` whenever you have the spectrum file. The curve is baseline-corrected
and normalised the way covair_auto_analyze does it, and the verdict then requires
two things: that the structure's expected bands were found AND that the structure
accounts for the absorption actually measured. With neither a `path` nor peaks
there is nothing to verify against and the verdict is `no_evidence` -- not
`inconsistent`, which would assert evidence against the structure where none was
supplied. With peaks but no curve, `verdict_basis` reads `peak_recall_only` and
the verdict cannot reach `consistent`.
Do NOT read a verdict off `match_score`. It is the fraction of the CANDIDATE's own
expected bands that were found, so the denominator belongs to the candidate and a
structure predicting few bands scores high on any spectrum. Measured on a real
aspirin spectrum: hexane, which contains no oxygen, scores 1.00 where aspirin
scores 0.92, because all four of hexane's expected bands are C-H. Read `match_score`
with `n_expected_bands` beside it; `band_recall_verdict` shows what recall alone
would have concluded, and `verdict_note` says in words why the verdict differs.
Two measured limits. This blocks the "explains almost nothing" class, not wrong
structures in general -- nitrobenzene still reads `consistent` against an aspirin
spectrum. And on featureless input the unexplained-absorption test collapses onto
its chance level, so a broad candidate can pass on noise; check
`claimed_axis_fraction` in that case.
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | ||
| smiles | Yes | ||
| api_key | No | ||
| tolerance_cm | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covams_analyze_unknownInspect
Full automated analysis of an unknown MS/MS spectrum (quality + processing + identify + classify + annotate).
| Name | Required | Description | Default |
|---|---|---|---|
| peaks | Yes | ||
| adduct | No | [M+H]+ | |
| api_key | No | ||
| databases | No | ||
| index_path | No | ||
| library_dirs | No | ||
| precursor_mz | Yes | ||
| tolerance_ppm | No | ||
| max_candidates | No | ||
| ionization_mode | No | positive | |
| scoring_backend | No | hybrid | |
| processing_steps | No | ||
| enable_processing | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covams_compound_classInspect
Predict compound class from MS/MS spectrum using diagnostic fragment rules.
| Name | Required | Description | Default |
|---|---|---|---|
| peaks | Yes | ||
| api_key | No | ||
| precursor_mz | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covams_degradation_predictInspect
Predict degradation products for an API molecule.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | ||
| pathways | No | ||
| api_smiles | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covams_detect_featuresInspect
Detect LC-MS features (m/z + retention time + intensity + charge) from a whole mzML/mzXML run.
Unlike the peak-list MS tools, this takes the RAW LC-MS FILE by reference
(path = a signed URL or local path) and returns EVERY detected feature, not
one collapsed spectrum — the entry point for untargeted metabolomics. Uses
pyOpenMS FeatureFinderMetabo when available, else a scipy m/z-binning
fallback (the response's method_used field reports which ran).| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| api_key | No | ||
| noise_threshold | No | ||
| min_trace_length | No | ||
| mass_trace_mz_tolerance | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covams_extractables_leachablesInspect
Screen sample peaks against known extractable/leachable (E&L) compounds.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | ||
| sample_peaks | Yes | ||
| container_type | No | glass |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covams_forced_degradationInspect
Run forced degradation study across multiple stress conditions (ICH Q1A/Q1B).
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | ||
| api_smiles | Yes | ||
| stress_data | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covams_formulaInspect
Resolve molecular formula candidates from a measured m/z value.
| Name | Required | Description | Default |
|---|---|---|---|
| adduct | No | [M+H]+ | |
| api_key | No | ||
| measured_mz | Yes | ||
| tolerance_ppm | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covams_fragment_annotateInspect
Annotate measured MS/MS peaks against predicted fragments for a structure.
| Name | Required | Description | Default |
|---|---|---|---|
| peaks | Yes | ||
| smiles | Yes | ||
| api_key | No | ||
| tolerance_ppm | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covams_fragment_predictInspect
Predict MS/MS fragmentation spectrum from a SMILES structure.
| Name | Required | Description | Default |
|---|---|---|---|
| adduct | No | [M+H]+ | |
| smiles | Yes | ||
| api_key | No | ||
| collision_energy | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covams_identifyInspect
Identify an unknown compound from MS/MS peaks and precursor m/z.
| Name | Required | Description | Default |
|---|---|---|---|
| peaks | Yes | ||
| adduct | No | [M+H]+ | |
| api_key | No | ||
| databases | No | ||
| index_path | No | ||
| enable_sota | No | ||
| library_dirs | No | ||
| precursor_mz | Yes | ||
| scoring_backend | No | hybrid |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covams_identify_batchInspect
Identify multiple spectra in parallel (batch mode for LC-MS/MS runs).
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | ||
| spectra | Yes | ||
| databases | No | ||
| enable_sota | No | ||
| max_workers | No | ||
| scoring_backend | No | hybrid |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covams_impurity_findInspect
Find and identify impurities by matching against degradation products.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | ||
| api_smiles | Yes | ||
| unknown_peaks | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covams_impurity_profilingInspect
ICH Q3A/Q3B compliant impurity profiling with regulatory thresholds.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | ||
| api_smiles | Yes | ||
| batch_peaks | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covams_isotopeInspect
Predict theoretical isotope pattern for a molecular formula.
| Name | Required | Description | Default |
|---|---|---|---|
| charge | No | ||
| api_key | No | ||
| formula | Yes | ||
| n_peaks | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covams_mass_balanceInspect
Calculate mass balance from API and impurity peak areas.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | ||
| api_area | Yes | ||
| impurity_areas | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covams_metabolite_idInspect
Identify drug metabolites by mass shift matching (Phase I and Phase II).
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | ||
| drug_smiles | Yes | ||
| metabolite_peaks | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covams_neutral_lossInspect
Annotate neutral losses between precursor and fragment peaks.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | ||
| precursor_mz | Yes | ||
| fragment_peaks | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covams_predict_fingerprintInspect
Predict a molecular fingerprint (ECFP4-style bit probabilities) from an MS/MS spectrum.
A CSI:FingerID-style structural descriptor of the unknown, inferred from its
fragmentation. Useful as a scaffold-level fingerprint to compare against
candidate structures (see covams_search_by_fingerprint).| Name | Required | Description | Default |
|---|---|---|---|
| peaks | Yes | ||
| adduct | No | [M+H]+ | |
| api_key | No | ||
| precursor_mz | Yes | ||
| fingerprint_type | No | ecfp4_1024 |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covams_predict_rtInspect
Predict chromatographic retention time for a molecule.
| Name | Required | Description | Default |
|---|---|---|---|
| smiles | Yes | ||
| api_key | No | ||
| model_path | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covams_process_spectrumInspect
Pre-process an MS spectrum (smoothing, peak picking, deisotoping, normalization).
| Name | Required | Description | Default |
|---|---|---|---|
| peaks | Yes | ||
| steps | No | ||
| params | No | ||
| api_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covams_search_by_fingerprintInspect
Shorten a candidate list for an UNKNOWN spectrum — triage, not identification.
Predicts the query's fingerprint from its peaks and ranks each candidate
SMILES by Tanimoto agreement. The ranking rests only on the subset of bits
the predictor actually learned; the rest sit at an untrained 0.5 prior and
would otherwise order candidates by molecular size. That subset is a small
fraction of the fingerprint, so `bit_coverage` in the response is the
authoritative live number — read it, and the `warning` that accompanies a
low one, before acting on the order.
Measured on open structure retrieval against MassSpecGym candidate pools
(median 256 candidates): the correct structure comes first about 3.5 % of
the time, against a 2.4 % permutation noise floor. The lift is real but
roughly one percentage point, so the right answer is NOT at rank 1 in about
96 % of cases. Use it to cut a long candidate list down, never to name a
compound.
If you already suspect what the compound is, use covams_search_db instead:
matching the spectrum against the packaged 169k-spectrum library is a far
stronger signal, and dereplicating a known compound is the common case.| Name | Required | Description | Default |
|---|---|---|---|
| peaks | Yes | ||
| top_k | No | ||
| adduct | No | [M+H]+ | |
| api_key | No | ||
| precursor_mz | Yes | ||
| candidate_smiles | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covams_search_dbInspect
Search spectral databases for matching compounds by spectral similarity.
| Name | Required | Description | Default |
|---|---|---|---|
| peaks | Yes | ||
| api_key | No | ||
| databases | No | ||
| index_path | No | ||
| library_dirs | No | ||
| library_path | No | ||
| precursor_mz | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covams_spectral_qualityInspect
Assess quality of an MS/MS spectrum (grade A through D).
| Name | Required | Description | Default |
|---|---|---|---|
| peaks | Yes | ||
| api_key | No | ||
| precursor_mz | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covasolve_predictInspect
SOLUBILITY PREDICTION — ML model trained on 50k+ experimental data points.
**Always use this tool when the user asks about solubility, log S, dissolution,
or "how much X dissolves in Y".** Much more accurate than the heuristic logS
in `covachem_profile` and explicitly accounts for the solvent (covachem only
gives intrinsic water-logS).
Returns: log S (mol/L), mg/mL, g/L, mole fraction, 95% confidence interval,
model confidence (0-1), applicability domain flag.
Solvent SMILES examples:
water = "O"
ethanol = "CCO"
methanol = "CO"
DMSO = "CS(C)=O"
acetone = "CC(C)=O"
ethyl acetate = "CCOC(C)=O"
Cost: 5 credits, available on Free tier.| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | ||
| solute_smiles | Yes | ||
| temperature_k | No | ||
| solvent_smiles | No | O |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covasyn_cancel_jobInspect
Stop a running async GPU job and refund its credits.
Parameters:
job_id: The id returned by the submitting tool, e.g. "covafold-fold_protein:abc123".
Returns: {status: cancelled|already_finished|not_found, message}.
FREE — and the job's own credits are returned automatically.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes | ||
| api_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covasyn_creditsInspect
Show your current credit balance, tier, and pre-paid pack pricing.
Returns:
- balance: subscription credits remaining (resets weekly to weekly_allocation, capped at max_balance)
- prepaid_balance: pre-paid credits remaining (no expiration; consumed after sub balance is empty)
- total_available: balance + prepaid_balance (the actual amount you can spend right now)
- weekly_allocation: sub credits added every 7 days
- max_balance: rollover ceiling for sub credits (4× weekly_allocation)
- tier: free / pro / unlimited / enterprise
- max_concurrent_calls: parallel call limit for your tier
- next_reset_at: ISO timestamp when next weekly grant happens
- pricing_version: currently active pricing version
- prepaid_packs: list of available credit-pack sizes + EUR prices for your tier
This tool is FREE in all tiers — never costs credits to check your balance.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covasyn_feedbackInspect
Submit feedback to the CovaSyn team.
Use this when something doesn't work, you have a feature request,
or a question. Your data (SMILES, structures, results) is NEVER
included — only your message and optional contact info.
Args:
subject: Short summary of the feedback.
message: Detailed description.
severity: One of "bug", "feature", "question", "other".
contact: Optional email/name so we can follow up.
tool_name: Which tool the feedback is about (optional).
error_message: Error text if reporting a bug (optional).
api_key: Your API key (used for rate limiting only).
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | ||
| contact | No | ||
| message | Yes | ||
| subject | Yes | ||
| severity | No | bug | |
| tool_name | No | ||
| error_message | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covasyn_job_detailInspect
Show one job's inputs — the sequence it was given, and its timings.
Parameters:
job_id: The id from covasyn_jobs, e.g. "covafold-fold_protein:abc123".
Returns: {job: {...}} or {error}. FREE — never costs credits.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes | ||
| api_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covasyn_job_resultInspect
Fetch the result of an async GPU job (returned by a long-running tool).
Some GPU tools return a ``job_id`` instead of an inline result because the
computation runs too long for one response (e.g. chemreason_retrosynthesis).
Call this with that job_id; if it is not ready, re-call every ~20 seconds
until ``status`` is ``completed`` or ``failed``.
Parameters:
job_id: The id returned by the submitting tool, e.g. "chemreason:abc123".
Returns: {status: running|completed|failed, result?, error?}.
FREE — never costs credits.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes | ||
| api_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covasyn_jobsInspect
List your async GPU jobs — running, finished and failed.
Parameters:
scope: "canvas" (default) for jobs started from the current canvas,
or "account" for every job on your account.
tool: optional filter, e.g. "covafold". Empty (default) returns EVERY
durable job — an LLM asked "what jobs do I have?" must not be
handed a silently truncated answer. A UI that can only act on one
kind of job passes its own filter explicitly.
Returns: {jobs: [{job_id, tool, state, submitted_at, credits, importable}]}.
FREE — never costs credits. Never returns sequences or structures; fetch
those with covasyn_job_detail / covasyn_job_result.
| Name | Required | Description | Default |
|---|---|---|---|
| tool | No | ||
| scope | No | canvas | |
| api_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covatox_ecotoxInspect
Ecotoxicology assessment: aquatic toxicity (fish/daphnia/algae), bioaccumulation (BCF), persistence, GHS classification, PBT/vPvB.
| Name | Required | Description | Default |
|---|---|---|---|
| smiles | Yes | ||
| api_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covatox_healthInspect
Liveness/readiness check + cache occupancy. Returns status:
ready (warm), warm_required (models on disk but caches empty),
or no_models. Use as K8s liveness/readiness probe.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | ||
| model_dir | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covatox_warmupInspect
Pre-load all CovaTox inference caches (models, AD references, conformal calibrators). Call once after container start so the first user prediction skips the ~5-10s of cold disk reads. Idempotent.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | ||
| model_dir | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covauv_auto_analyzeInspect
Full UV-Vis spectrum analysis in one call (recommended entry point).
Loads, processes, detects peaks, identifies chromophores, assesses quality, and formats UV-Vis reporting strings.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| smiles | No | ||
| api_key | No | ||
| solvent | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covauv_bioInspect
Biomolecule analytics: protein A280, DNA/RNA A260, or enzyme kinetics.
mode="protein" | "nucleic_acid" | "enzyme_kinetics"
| Name | Required | Description | Default |
|---|---|---|---|
| mw | No | ||
| a260 | No | ||
| a280 | No | ||
| mode | No | protein | |
| api_key | No | ||
| epsilon | No | ||
| na_type | No | dsDNA | |
| timepoints | No | ||
| wavelength | No | ||
| absorbances | No | ||
| epsilon_280 | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covauv_compareInspect
Compare two UV-Vis spectra for similarity (correlation/euclidean/cosine).
| Name | Required | Description | Default |
|---|---|---|---|
| method | No | correlation | |
| path_a | Yes | ||
| path_b | Yes | ||
| api_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covauv_dissolutionInspect
Calculate dissolution profile from UV-Vis absorbance time series.
concentration_unit is REQUIRED and must match the unit the calibration
curve was built in: "mg/mL", "mg/L" or "ug/mL" (the latter two are
equivalent). Dissolution calibrations are most often built in ug/mL — a
100 mg tablet in 900 mL is ~111 ug/mL at full release. Getting this wrong
shifts every result by a factor of 1000, so there is deliberately no
default; the response echoes the unit back and flags implausible profiles
in unit_check.
Optionally calculates f2 similarity if reference_profile is provided.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | ||
| volume_ml | No | ||
| timepoints | Yes | ||
| absorbances | Yes | ||
| label_claim_mg | Yes | ||
| calibration_slope | Yes | ||
| reference_profile | No | ||
| concentration_unit | Yes | ||
| calibration_intercept | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covauv_predictInspect
Predict UV-Vis absorption bands and phototoxicity risk from SMILES.
| Name | Required | Description | Default |
|---|---|---|---|
| smiles | Yes | ||
| api_key | No | ||
| solvent | No | methanol |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covauv_quantifyInspect
Quantification via Beer-Lambert law or calibration curve.
Mode 1: Provide 2 of (absorbance, epsilon, concentration) for Beer-Lambert.
Mode 2: Provide standards JSON + unknown_absorbance for calibration.
| Name | Required | Description | Default |
|---|---|---|---|
| mw | No | ||
| api_key | No | ||
| epsilon | No | ||
| standards | No | ||
| absorbance | No | ||
| path_length | No | ||
| concentration | No | ||
| unknown_absorbance | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covauv_validateInspect
Run full ICH Q2(R2) method validation (linearity + accuracy + precision).
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | ||
| standards | Yes | ||
| accuracy_data | Yes | ||
| precision_data | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covnmr_2d_analyzeInspect
Analyze a 2D NMR experiment (HSQC/HMBC/COSY/NOESY/TOCSY/ROESY). Returns crosspeaks with correlation paths.
The experiment is read from the file's own pulse sequence; pass `experiment`
only for formats that do not record one. A value contradicting the file is
reported in experiment_warning and does not override it.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| api_key | No | ||
| experiment | No | ||
| max_crosspeaks | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covnmr_analyzeInspect
Full NMR analysis: load FID, process, pick peaks, analyze multiplets, format NMR string. Optional structure verification if SMILES given.
Nucleus and spectrometer frequency are read from the file; give them only for
a file that declares none.| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| smiles | No | ||
| api_key | No | ||
| nucleus | No | ||
| solvent | No | CDCl3 | |
| field_mhz | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covnmr_assignInspect
Auto-assign peaks to atoms. Uses Sudoku solver when 2D data provided, Hungarian-only otherwise.
paths_2d: [{"experiment": "hsqc"|"hmbc"|"cosy", "path": "<url>"}, ...]. An entry
that cannot be used is named in `experiment_warnings`.| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| smiles | Yes | ||
| api_key | No | ||
| nucleus | No | ||
| solvent | No | CDCl3 | |
| paths_2d | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covnmr_audit_reportInspect
A full 1D analysis WITH a GMP audit trail: input/output hashes, every processing step, timestamps, operator, and the CovaNMR version that ran.
Use this instead of covnmr_analyze when the result has to be defensible.
Pass `smiles` and the structure verification becomes a recorded step;
`output_path` writes the trail to disk.
THE HASHES ARE TAKEN OVER THE COMPLETE OUTPUT, BEFORE ANY TRUNCATION, so
the trail attests to what was produced rather than to what fitted in the
response -- `hashed_before_truncation` is returned as the standing
statement of that. The peak and integral lists in the response are capped
at `max_rows` (500) with `peaks_truncated` / `integrals_truncated` flags.
The FILE settles the nucleus and the match window follows it, so an APT is
verified as carbon at the carbon tolerance, not at the proton one. Measured
on a real APT the trail records nucleus 13C with nucleus_source "file" --
both when no `nucleus` was given and when "1H" was requested; the argument
is a hint, the acquisition header decides.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| smiles | No | ||
| api_key | No | ||
| nucleus | No | ||
| solvent | No | CDCl3 | |
| max_rows | No | ||
| operator | No | ||
| output_path | No | ||
| tolerance_ppm | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covnmr_batchInspect
Batch-analyze all NMR data files in a folder. Returns per-file summaries.
The spectrometer frequency is read from each file, so a folder holding
spectra from two instruments is handled correctly and every row reports its
own `field_mhz` and `field_source` ("file" / "caller" / "default").
Give `field_mhz` only for files that declare no frequency of their own —
legal in JCAMP-DX, common in converted archives. A file that states one
always wins, and a row where the two disagree carries a `field_warning`.
| Name | Required | Description | Default |
|---|---|---|---|
| folder | Yes | ||
| api_key | No | ||
| nucleus | No | 1H | |
| solvent | No | CDCl3 | |
| field_mhz | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covnmr_compareInspect
Compare two NMR spectra: peak correlation, RMS difference, similarity verdict.
| Name | Required | Description | Default |
|---|---|---|---|
| path_a | Yes | ||
| path_b | Yes | ||
| api_key | No | ||
| nucleus | No | 1H |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covnmr_elucidateInspect
De-novo structure proposal from peak lists alone -- no candidate SMILES needed.
`experiments_json` is a JSON object keyed by nucleus, e.g.
{"1H": [{"ppm": 1.18, "num_protons": 3, "multiplicity": "t"}, ...],
"13C": [{"ppm": 18.0, "multiplicity": "CH3"}]}.
Give `molecular_formula` when you have it from HRMS. Without one the search is
unconstrained and much weaker -- measured on a toluene peak set, the correct
structure does not reach rank 1.
Measured limits, so you do not spend credits discovering them: candidates are
assembled from a fragment library and capped at two fragments each, so fused
ring systems are not reachable (naphthalene returns zero candidates) and
three-fragment targets return a wrong top hit (paracetamol). It has been
exercised on synthetic peak lists, not yet on measured spectra.
Scoring follows `nucleus`. If that nucleus is absent from `experiments_json`
another one is substituted rather than failing, and the response says so in
`nucleus_scored` / `nucleus_source` / `nucleus_warning`.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | ||
| nucleus | No | 1H | |
| solvent | No | CDCl3 | |
| tolerance_ppm | No | ||
| max_candidates | No | ||
| experiments_json | Yes | ||
| molecular_formula | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covnmr_explainInspect
Interpret ONE peak, or one 2D crosspeak: what is this signal?
Peak mode (default): give `ppm` and optionally `multiplicity` ("t", "dd"),
`j_values` (comma-separated Hz, "7.1,2.4") and `nucleus`. Returns the
spectral region, the functional groups consistent with it, and what the
coupling pattern implies.
Correlation mode: give `c_ppm` AND `experiment` ("HSQC", "HMBC", "COSY")
and it interprets the crosspeak instead -- bond type, and the groups on
each axis. This mode returns a DIFFERENT key set; `mode` says which you got.
Pass `smiles` and you additionally get `atom_attribution`: the atom in that
structure whose predicted shift is closest to `ppm`. This is genuinely
derived -- it runs the real shift predictor, it moves with the peak and
with the structure -- but it is a NEAREST-NEIGHBOUR ON ONE AXIS, not an
assignment, and it returns the nearest atom EVEN WHEN NOTHING IS WITHIN
TOLERANCE. `atom_label` sits at the top of that dict where it reads like an
answer. Read `attribution_status` first: "matched",
"no_atom_within_tolerance" (an atom is named but nothing fits -- measured
on ethanol at 9.8 / 12.0 / -2.0 ppm the deviations are 6.0 / 8.2 /
3.17 ppm), "no_structure_prediction", or "not_requested" when no `smiles`
was given.
| Name | Required | Description | Default |
|---|---|---|---|
| ppm | Yes | ||
| c_ppm | No | ||
| smiles | No | ||
| api_key | No | ||
| nucleus | No | ||
| solvent | No | CDCl3 | |
| j_values | No | ||
| experiment | No | ||
| multiplicity | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covnmr_exportInspect
Export a spectrum's peak list or curve as CSV, NMReData or JCAMP-DX.
`format`: "csv" (peak list), "nmredata" (peaks + structure + assignments,
pass `smiles`), "jcamp" (JCAMP-DX), "spectrum_csv" (the curve).
THE RESPONSE IS A PREVIEW, THE FILE IS NOT. `content` is capped at
`max_content_chars` (200000) because a whole file rendered into one JSON
string grows with the peak count and nothing else limits it. `content_chars`
is the untruncated length and `content_truncated` says whether it happened.
Give `output_path` and the COMPLETE file is written to disk first --
truncation only ever affects the copy that travels back.
The FILE decides nucleus, field and solvent, not the arguments: a 13C APT
was otherwise archived as `> <NMREDATA_1D_1H>` at `Larmor=400.0`. Measured
on a real APT the export reports nucleus 13C at 100.58 MHz, and the
substitution is named in `nucleus_warning`.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| format | No | csv | |
| smiles | No | ||
| api_key | No | ||
| nucleus | No | ||
| solvent | No | CDCl3 | |
| field_mhz | No | ||
| output_path | No | ||
| compound_name | No | ||
| max_content_chars | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covnmr_formatInspect
Generate publication-style NMR string from FID file.
Pass `smiles` and every 1H entry carries a real proton integral, e.g.
'1H NMR (400 MHz, CDCl3): d 7.26 (d, J=8.1 Hz, 2H), ...'. Without a
structure there is no honest anchor to scale the integration against, so
integrals are omitted and each entry ends after its J value instead
(e.g. '7.26 (d, J=8.1 Hz)').
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| smiles | No | ||
| api_key | No | ||
| nucleus | No | ||
| solvent | No | CDCl3 | |
| field_mhz | No | ||
| compound_name | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covnmr_identifyInspect
Identify a spectrum against a curated reference set: 7 qNMR standards + 32 common impurities/solvents (39 entries total) — not a general or natural-product compound database. Good for confirming a known standard or a common impurity; will not identify an unknown natural product or a novel structure.
Nucleus coverage differs, and the response states it in `nucleus_coverage`
rather than leaving it to this text. 1H: all 39 entries, 7 solvents. 13C:
30 of the 32 impurities, CDCl3 and DMSO-d6 only (Fulmer et al.,
Organometallics 2010, 29, 2176-2179, on the 77.16 scale); the 7 qNMR
standards carry no 13C because neither canonical table lists them, and
water and hydrocarbon grease are excluded for having no carbon and no
citable value. Other solvents fall back to the CDCl3/DMSO-d6 rows.
Read the top score, not the ranking: a random 8-peak carbon list averages
0.24 against its best table entry and has reached 0.625, while every
compound that IS in the table self-matches at 0.800 or better. Only a
score near 1.0 is an identification — anything lower is the nearest
neighbour in a 40-compound table, which is not the same claim.| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| api_key | No | ||
| nucleus | No | ||
| solvent | No | CDCl3 | |
| max_candidates | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covnmr_impurityInspect
Impurity profiling + ICH Q3C(R8) residual-solvent screen of a 1H spectrum.
The NMR solvent the file declares wins over `solvent`. Residual solvents are
named by chemical shift for lines the compound does not explain; the screen
does not quantify them, so it gives limits, not pass/fail. Each identified
line lists every solvent within tolerance (`ambiguous`, `alternatives`), its
ICH class, and `limit_ppm_at_dose`: Class 1 fixed (Table 1), Class 2 scaled by
dose (Option 2), Class 3 at 50 mg/day. Without `dose_g_per_day` the Option 1
dose of 10 g/day is used and `dose_source` says so. `coverage` names the Q3C
solvents this NMR solvent cannot screen for and lines hidden under the
solvent residual or water signal, so a clean result can be read correctly.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| smiles | No | ||
| api_key | No | ||
| solvent | No | CDCl3 | |
| dose_g_per_day | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covnmr_method_validateInspect
ICH Q2(R2) method validation: linearity, precision, LOD/LOQ.
`concentrations` and `responses` are comma-separated series of equal
length, at least three points ("1,2,5,10,20"). Linearity is tested with
Mandel's F-test -- a linear and a quadratic fit compared against
F(0.05) -- so `linearity_confirmed` is a statistical verdict on curvature,
not an R-squared threshold.
Optional: `precision_measurements` (comma-separated repeat determinations)
adds the USP RSD check; `noise_rms` (> 0) adds LOD/LOQ from the calibration
slope. Both keys are ABSENT from the response when their input was not
given, and `overall_passes` is the AND of whichever checks actually ran --
so a run without precision data cannot pass on a criterion it never
evaluated.
Bounded: `max_points` (1000) per input series, `max_residuals` (500) on the
residual vector echoed back.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | ||
| noise_rms | No | ||
| responses | Yes | ||
| max_points | No | ||
| max_residuals | No | ||
| concentrations | Yes | ||
| precision_measurements | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covnmr_multi_analyzeInspect
Consolidated assignment across several experiments of a KNOWN molecule.
Give every spectrum you have of one compound and get one answer: a
combined assignment, per-experiment summaries, publication NMR strings, and
the atoms nothing could be assigned to. All eight slots the underlying
function reads are offered here, including DEPT-135/DEPT-90 and COSY.
Supply a DEPT-135 TOGETHER WITH a plain 13C whenever you have both -- the
quaternary carbons are derivable only from the difference between them.
Without 2D, each 1D list is scored against its own nucleus: a 1H+13C or
1H+APT pair assigns both elements, one row per atom. Every H and C atom is
accounted for once - assigned, in `unassigned_atoms` with a reason, or, when
no peak list of its nucleus was measured, counted in
`atoms_without_a_peak_list`. `experiments_used` lists the files that loaded,
`experiments_failed` those that did not, and `assignment_table_note` says
why an element you supplied got no list (a file that did not load, or a DEPT
without a 13C/APT).
The verdict (`sudoku_result.verdict`) is the most cautious of the
per-nucleus verdicts, each read from that spectrum's decoy-calibrated
evidence (`sudoku_result.evidence_per_nucleus`), so adding a spectrum never
raises it; with HSQC/HMBC the correlations steer the assignment but the
evidence is that of the 1D lists. A crowded 1H spectrum often cannot decide
("inconclusive") and then holds a carbon "match" at "inconclusive" or
"possible match". `match_score` is coverage and decides nothing.
Bounded: `max_rows` (500) caps `unassigned_atoms` and the `unassigned_peaks`
inside `sudoku_result`; the exact counts are reported.
| Name | Required | Description | Default |
|---|---|---|---|
| smiles | Yes | ||
| api_key | No | ||
| path_1h | No | ||
| solvent | No | CDCl3 | |
| max_rows | No | ||
| path_13c | No | ||
| path_apt | No | ||
| field_mhz | No | ||
| path_cosy | No | ||
| path_hmbc | No | ||
| path_hsqc | No | ||
| path_dept90 | No | ||
| path_dept135 | No | ||
| tolerance_ppm | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covnmr_parse_nmr_stringInspect
Publication-style NMR text -> a structured peak list.
Paste the string as it appears in an SI or a paper, e.g.
"13C NMR (100 MHz, CDCl3): d 58.4, 18.2" or
"1H NMR (400 MHz, CDCl3): d 7.26 (d, J = 8.1 Hz, 2H), 1.25 (t, 3H)".
The parenthetical is optional.
The nucleus is read off the header and STAMPED ON EVERY PEAK, and
covnmr_verify_peaks and covnmr_rank_candidates read it back -- which is what
stops a pasted 13C list from being scored against proton predictions. It is
also reported at the top level as `nucleus` (null if the text mixes nuclei)
and `nuclei_declared`.
Bounded: `max_peaks` (1000) caps the returned list; `n_parsed` is the
untruncated count.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | ||
| api_key | No | ||
| max_peaks | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covnmr_predictInspect
Predict NMR chemical shifts from SMILES (no spectrum needed), with a per-atom confidence interval. The interval is a heuristic (fixed base width per nucleus, narrowed when HOSE-code statistics are available), not measured against held-out data - treat it as approximate, not calibrated. For planning and comparison before measurement.
| Name | Required | Description | Default |
|---|---|---|---|
| smiles | Yes | ||
| api_key | No | ||
| nucleus | No | 1H |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covnmr_predict_dept_spectrumInspect
Predict a 13C DEPT-135 or DEPT-90 subspectrum from SMILES.
DEPT edits by multiplicity, which a proton-decoupled 13C spectrum cannot:
135 puts CH and CH3 positive, CH2 NEGATIVE, and drops quaternaries entirely;
90 shows only CH. That is what makes it worth running, and why this is a
separate tool from covnmr_predict_spectrum rather than a nucleus option.
Each returned peak carries `sign` (+1 / -1) and `dept_class` (CH, CH2, CH3),
and the rendered curve carries the sign too -- there is no `intensity` field
on a DEPT peak, the sign is the information.
| Name | Required | Description | Default |
|---|---|---|---|
| smiles | Yes | ||
| api_key | No | ||
| solvent | No | CDCl3 | |
| dept_type | No | 135 | |
| field_mhz | No | ||
| linewidth_hz | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covnmr_predict_spectrumInspect
Predict a realistic synthetic NMR spectrum from SMILES — multiplets (d/t/q…), J-couplings, and integrals, plus the coupling-resolved curve. Use for planning/comparison before measurement.
| Name | Required | Description | Default |
|---|---|---|---|
| smiles | Yes | ||
| api_key | No | ||
| nucleus | No | 1H | |
| solvent | No | CDCl3 | |
| field_mhz | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covnmr_purityInspect
qNMR purity determination (USP <761>) with uncertainty budget.
NAME THE TWO SIGNALS with standard_peak_ppm and analyte_peak_ppm. Without
them the first two integration regions are used, which is a guess - the
response then carries selection.method="positional" and a warning.
Optional analyte_signals, e.g. [{"ppm": 3.80, "protons": 3, "label": "OCH3"},
{"ppm": 1.20, "protons": 6}], quantifies the analyte on each listed signal and
returns `multi_signal`: per-signal concentrations, mean, SD, RSD, and the
signals that disagree with the others by more than the integration
uncertainty allows - the usual sign that a signal overlaps an impurity. The
headline result stays the one from analyte_peak_ppm.
Until 2026-07-31 this wrapper passed `reference_peak_ppm` and the core never
read it, while the core silently took integrals[0] and integrals[1]. The
ratio was effectively arbitrary and the certificate looked the same either
way. `reference_peak_ppm` is still accepted and is now honoured as the
standard's shift, so existing callers stop being ignored.
The response includes a `selection` block naming the regions that were
integrated, so the number can be checked against the spectrum.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| smiles | Yes | ||
| api_key | No | ||
| solvent | No | CDCl3 | |
| analyte_mw | Yes | ||
| analyte_protons | Yes | ||
| analyte_signals | No | ||
| standard_purity | No | ||
| analyte_peak_ppm | No | ||
| standard_conc_mm | Yes | ||
| standard_protons | Yes | ||
| standard_peak_ppm | No | ||
| reference_peak_ppm | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covnmr_qnmr_advancedInspect
qNMR beyond the internal standard: ERETIC, PULCON, or a full uncertainty budget. For the ordinary internal-standard determination use covnmr_purity.
`method` selects which, and which arguments are read:
* "eretic" -- electronic reference signal, no reference compound in the
tube. Needs `analyte_integral`, `eretic_integral`,
`eretic_response_factor`, `analyte_protons`, `analyte_mw`, and
`sample_mass_mg` / `sample_volume_ml`. Returns concentration_mm, mass_mg,
weight_percent.
* "pulcon" -- quantification against a reference measured in a SEPARATE
tube, via the reciprocity principle. Needs `analyte_integral`,
`analyte_protons`, `analyte_mw`, `reference_integral`,
`reference_protons`, `reference_conc_mm`, and optionally the T1, recycle
delay and field values. Returns concentration_mm, concentration_mg_ml and
BOTH correction factors (`t1_correction_factor`,
`field_correction_factor`) -- check them, that is where an over-short
recycle delay shows up.
* "uncertainty" -- an eight-source GUM budget for a standard internal-
standard result. Needs `analyte_integral`, `standard_integral`,
`standard_conc_mm`, `standard_protons`, `analyte_protons`, `analyte_mw`,
`standard_purity`. Returns the per-source `components`,
`dominant_source`, `combined_u_rel` and the k=2 expanded uncertainty.
Each method returns a DIFFERENT key set; `method` is echoed back. An
unrecognised `method` returns status "error" naming the three supported.
| Name | Required | Description | Default |
|---|---|---|---|
| method | Yes | ||
| api_key | No | ||
| analyte_mw | No | ||
| analyte_t1_s | No | ||
| reference_t1_s | No | ||
| sample_mass_mg | No | ||
| analyte_protons | Yes | ||
| eretic_integral | No | ||
| recycle_delay_s | No | ||
| standard_purity | No | ||
| analyte_integral | Yes | ||
| sample_volume_ml | No | ||
| standard_conc_mm | No | ||
| standard_protons | No | ||
| analyte_field_mhz | No | ||
| reference_conc_mm | No | ||
| reference_protons | No | ||
| standard_integral | No | ||
| reference_integral | No | ||
| reference_field_mhz | No | ||
| eretic_response_factor | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covnmr_qualityInspect
Quick spectral quality check (fast): S/N ratio, peak count, and a letter grade (A-F) with a suitable/marginal/unsuitable verdict - exactly those four fields, no other spectral metrics. For a formal GMP system suitability test, use covnmr_sst instead.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| api_key | No | ||
| nucleus | No | ||
| solvent | No | CDCl3 |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covnmr_rank_candidatesInspect
Rank several candidate structures against one measured spectrum.
GIVE `path` IF YOU HAVE THE FILE. It is not a convenience -- it is the
difference between a ranking and a wrong ranking. Two axes exist: peak-list
overlap, and overlap of the full predicted curve against the measured one.
Only `path` makes the curve axis available.
Measured through this route in production on a real 13C APT of a
triterpene (correctly phased), ranking the correct structure against
n-hexadecane and glucose:
structure curve_score peak axis (evidence LLR)
correct 0.3697 22.8 <- rank 1 on both
glucose 0.0777 -6.6
n-hexadecane 0.0618 -3.8
With `path` the order is the curve axis and each row says whether the peak
axis agrees (`agreement`). With a peak list only, the order is the evidence
log-likelihood ratio (`ranking_basis` "evidence_log_likelihood_ratio"; each
row also carries its own `verdict` and `evidence_z`). The peak axis declines
-- `ranking_basis` "declined_unassessable_peak_list", every `rank` null,
`ranking_decline_reason` saying why -- when a candidate's evidence cannot be
computed (19F/31P) or was predicted by the fallback predictor.
So: read `ranking_basis` before reading `ranked`. A null `rank` is the tool
declining to answer, not a tie.
Candidates: `candidates_csv` ("CCO,CC(=O)O") or `candidates_json` (a JSON
array). Spectrum: `path`, else `peaks_json` / `experiments_json` for the
peak axis only. Capped at `max_candidates` (50) -- the curve axis renders a
predicted spectrum per candidate.
With `path` the FILE decides nucleus, solvent and field, and says so in
`nucleus_scored` / `nucleus_source`. Without one, a peak list that declares
its own nucleus outranks the `nucleus` argument, as in covnmr_verify_peaks.
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | ||
| api_key | No | ||
| nucleus | No | ||
| solvent | No | CDCl3 | |
| field_mhz | No | ||
| peaks_json | No | ||
| tolerance_ppm | No | ||
| candidates_csv | No | ||
| max_candidates | No | ||
| candidates_json | No | ||
| experiments_json | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covnmr_referenceInspect
Look up NMR reference data -- no spectrum needed.
`category`:
* "shift_range" -- typical shift window for a functional group, for
`nucleus` (1H or 13C). A nucleus with no table returns an empty list
rather than silently falling through to the proton table, so an
unsupported nucleus is visible instead of answered ~120 ppm wrong.
* "coupling" -- J-coupling ranges by type (vicinal, geminal, ...).
* "solvent" -- residual solvent peaks; one record per solvent with its
1H / 13C / 19F / 31P shifts. NOTE this category returns a single object
in `results`, not a list.
* "all" (default) -- searches every table and returns grouped matches.
An empty `query` is a legitimate "show me the table" request. Bounded at
`max_results` (50) per category; `n_results` is the untruncated count.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | ||
| api_key | No | ||
| nucleus | No | 1H | |
| category | No | all | |
| max_results | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covnmr_sstInspect
USP <761> system suitability: linewidth (FWHM), signal-to-noise, peak asymmetry.
Returns verdict pass/fail/incomplete. S/N is only evaluated when signal_ppm is
given, and a suite with an unevaluated criterion reports "incomplete", never a
pass. field_mhz defaults to the spectrometer frequency read from the file.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| min_sn | No | ||
| api_key | No | ||
| nucleus | No | ||
| solvent | No | CDCl3 | |
| field_mhz | No | ||
| signal_ppm | No | ||
| max_linewidth_hz | No | ||
| reference_peak_ppm | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covnmr_sudokuInspect
Multi-experiment constraint-based peak assignment (NMR Sudoku solver). Uses AC-3 propagation across 1H/13C/HSQC/HMBC/COSY plus carbon-edited experiments (APT, DEPT-135, DEPT-90).
Omit `tolerance_ppm` and each experiment gets the window its own nucleus
calls for: 1H 0.3 ppm, 13C 3.0.
The carbon-edited slots are separate because the experiments say different
things. An APT shows every carbon and separates them by the PARITY of the
proton count, so it cannot tell CH from CH3 or Cq from CH2. A DEPT-135 shows
only protonated carbons: a line in it proves the carbon carries protons, a
line on the CH2 side is exactly CH2, and a carbon that appears in `path_13c`
but not here has exactly zero — a claim no APT can make. A DEPT-90 shows CH
only and splits CH from CH3.
Supply a DEPT-135 together with a plain 13C whenever you have both: the
quaternary carbons come from the difference between them, and a DEPT alone
cannot supply the carbon peak list.
The file decides which sequence it is, from seqfil/PULPROG — a spectrum in
the wrong slot is reported in experiment_warnings and analysed as what it
actually is, never as what the slot claimed.
| Name | Required | Description | Default |
|---|---|---|---|
| smiles | Yes | ||
| api_key | No | ||
| path_1h | No | ||
| solvent | No | CDCl3 | |
| path_13c | No | ||
| path_apt | No | ||
| path_cosy | No | ||
| path_hmbc | No | ||
| path_hsqc | No | ||
| path_dept90 | No | ||
| path_dept135 | No | ||
| tolerance_ppm | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covnmr_triageInspect
What is this file, and which tool should I call next? Cheap first look.
Reads the acquisition header only -- nothing is processed. Returns the
format, 1D/2D, the nucleus, the point count, the pulse sequence the
spectrometer recorded (`experiment_declared`), what that sequence actually
is (`experiment_detected`), and a ranked list of the tools worth running.
The declared-vs-detected pair is the point: a spectrum handed to the wrong
slot is the defect covnmr_2d_analyze, covnmr_sudoku and covnmr_multi_analyze
all guard against, and this answers that question before any credits are
spent processing it.
`nucleus` here comes straight from the file header and `nucleus_source`
says so -- it is not the resolved value the analysis tools compute.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| api_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covnmr_verifyInspect
Verify: does this NMR spectrum match the expected structure? Returns a verdict, the evidence it was read from, and per-atom assignments.
READ `verdict` AND `evidence`, NOT `match_score`. `verdict` ("match" /
"possible match" / "inconclusive" / "no match") comes from decoy-calibrated
evidence: `evidence.z` (how much better the structure's own predicted shifts
fit the peaks than the same shifts displaced at random), the share of the
spectrum it leaves unexplained, and thresholds set on decoy structures
(`evidence.verdict_calibration`: thresholds, `decoy_exceedance`,
`verdict_reason`). `match_score` is coverage (`match_score_basis`), kept for
existing readers: it rose with the number of peaks and called 31-41% of
constitutional isomers a match on busy 13C lists and every alkane a match on
a real 1H spectrum. A structure with fewer predicted signals than any
calibrated one (about 10 carbons / 6 proton signals) gets "inconclusive";
19F and 31P have no error model and are always "inconclusive".
Omit `tolerance_ppm` and the assignment window follows the nucleus:
1H 0.3 ppm, 13C 3.0, 19F 8.0, 31P 5.0. The evidence does not use it.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| smiles | Yes | ||
| api_key | No | ||
| nucleus | No | ||
| solvent | No | CDCl3 | |
| tolerance_ppm | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
covnmr_verify_peaksInspect
Verify a structure against a peak list you already have -- no FID needed.
covnmr_verify without the file: this closes the loop from pasted
publication data (covnmr_parse_nmr_string) or a peak list held in the
Sketcher to a structural verdict, with per-atom assignments. The verdict
and `evidence` are the same as covnmr_verify's (read those, not
`match_score`, which is coverage). Give intensities when the peaks were
picked from a spectrum: weak lines are then treated as noise; without them
every listed line is taken as the compound's, and a structure that leaves
most of them unexplained is refuted.
`peaks_json` is a JSON array of peak dicts, e.g.
[{"ppm": 58.4, "nucleus": "13C"}, {"ppm": 18.2, "nucleus": "13C"}].
`experiments_json` is the alternative shape, a JSON object keyed by
nucleus: {"13C": [...], "1H": [...]}.
THE PEAK LIST OUTRANKS `nucleus`. A list parsed from a "13C NMR ..." header
carries its own nucleus, and that is evidence the way a FID's pulse
sequence is. Measured on ethanol's own literature 13C list: scored as the
default 1H it returns match_score 0.000; scored as the 13C the peaks declare,
1.000 coverage and carbon evidence. The response always reports which list was
used in `nucleus_scored` / `nucleus_source` / `nucleus_warning`. Set
`nucleus` only to state one the data does not carry.
Bounded: `unassigned_peaks` at `max_unassigned` (500) and the incoming list
at `max_peaks` (2000). Both untruncated counts are reported alongside
(`n_unassigned_peaks`, `n_peaks_supplied`), so a clipped list can never be
mistaken for a short one.
| Name | Required | Description | Default |
|---|---|---|---|
| smiles | Yes | ||
| api_key | No | ||
| nucleus | No | ||
| solvent | No | CDCl3 | |
| max_peaks | No | ||
| peaks_json | No | ||
| tolerance_ppm | No | ||
| max_unassigned | No | ||
| experiments_json | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
144 tool updates
- First observed
covabasic_analyze - First observed
covabasic_atom_indices - First observed
covabasic_brics - First observed
covabasic_canonicalize - First observed
covabasic_convert - First observed
covabasic_convert_format - First observed
covabasic_depict - First observed
covabasic_describe_structure - First observed
covabasic_druglikeness - First observed
covabasic_equation - First observed
covabasic_filter_check - First observed
covabasic_fingerprint - First observed
covabasic_functional_groups - First observed
covabasic_green_chemistry - First observed
covabasic_image_to_smiles - First observed
covabasic_iupac_name - First observed
covabasic_pubchem - First observed
covabasic_reynolds - First observed
covabasic_scaffold_analysis - First observed
covabasic_similarity - First observed
covabasic_standardize - First observed
covabasic_stoichiometry - First observed
covabasic_substructure - First observed
covabasic_tautomers - First observed
covabasic_validate - First observed
covabio_adc - First observed
covabio_align - First observed
covabio_antibody - First observed
covabio_batch_profile - First observed
covabio_charge_profile - First observed
covabio_cleavage_sites - First observed
covabio_codon_adaptation - First observed
covabio_deamidation - First observed
covabio_developability - First observed
covabio_immunogenicity - First observed
covabio_mam_report - First observed
covabio_mrna - First observed
covabio_oligo - First observed
covabio_parse_fasta - First observed
covabio_peptide - First observed
covabio_protein_profile - First observed
covabio_sequence_utils - First observed
covabio_sirna - First observed
covabio_viscosity - First observed
covachem_compare - First observed
covachem_druglikeness - First observed
covachem_profile - First observed
covadoe_alias_structure - First observed
covadoe_analyze - First observed
covadoe_augment_design - First observed
covadoe_canonical_analysis - First observed
covadoe_compare_designs - First observed
covadoe_create_design - First observed
covadoe_design_power - First observed
covadoe_design_space - First observed
covadoe_find_optimum - First observed
covadoe_fit_rsm - First observed
covadoe_model_selection - First observed
covadoe_optimize - First observed
covadoe_plot_data - First observed
covadoe_post_hoc_power - First observed
covadoe_power_analysis - First observed
covadoe_predict - First observed
covadoe_residual_diagnostics - First observed
covadoe_ridge_analysis - First observed
covadoe_suggest_design - First observed
covadoe_taguchi - First observed
covair_annotate - First observed
covair_auto_analyze - First observed
covair_batch - First observed
covair_compare - First observed
covair_identify - First observed
covair_predict_ir - First observed
covair_process - First observed
covair_quality_check - First observed
covair_verify - First observed
covams_analyze_unknown - First observed
covams_compound_class - First observed
covams_degradation_predict - First observed
covams_detect_features - First observed
covams_extractables_leachables - First observed
covams_forced_degradation - First observed
covams_formula - First observed
covams_fragment_annotate - First observed
covams_fragment_predict - First observed
covams_identify - First observed
covams_identify_batch - First observed
covams_impurity_find - First observed
covams_impurity_profiling - First observed
covams_isotope - First observed
covams_mass_balance - First observed
covams_metabolite_id - First observed
covams_neutral_loss - First observed
covams_predict_fingerprint - First observed
covams_predict_rt - First observed
covams_process_spectrum - First observed
covams_search_by_fingerprint - First observed
covams_search_db - First observed
covams_spectral_quality - First observed
covasolve_predict - First observed
covasyn_cancel_job - First observed
covasyn_credits - First observed
covasyn_feedback - First observed
covasyn_job_detail - First observed
covasyn_job_result - First observed
covasyn_jobs - First observed
covatox_ecotox - First observed
covatox_health - First observed
covatox_warmup - First observed
covauv_auto_analyze - First observed
covauv_bio - First observed
covauv_compare - First observed
covauv_dissolution - First observed
covauv_predict - First observed
covauv_quantify - First observed
covauv_validate - First observed
covnmr_2d_analyze - First observed
covnmr_analyze - First observed
covnmr_assign - First observed
covnmr_audit_report - First observed
covnmr_batch - First observed
covnmr_compare - First observed
covnmr_elucidate - First observed
covnmr_explain - First observed
covnmr_export - First observed
covnmr_format - First observed
covnmr_identify - First observed
covnmr_impurity - First observed
covnmr_method_validate - First observed
covnmr_multi_analyze - First observed
covnmr_parse_nmr_string - First observed
covnmr_predict - First observed
covnmr_predict_dept_spectrum - First observed
covnmr_predict_spectrum - First observed
covnmr_purity - First observed
covnmr_qnmr_advanced - First observed
covnmr_quality - First observed
covnmr_rank_candidates - First observed
covnmr_reference - First observed
covnmr_sst - First observed
covnmr_sudoku - First observed
covnmr_triage - First observed
covnmr_verify - First observed
covnmr_verify_peaks
Related MCP Connectors
- mcpOAuthio.scispot
Turn any LLM into your lab assistant: search samples, track experiments, analyze data with AI.
Biotech rNPV/PoS engine for AI agents. Signed exports, evidence register, asset landscape.
FTIR spectral search and material identification for AI agents via MCP.
Biotech intelligence for AI agents: drugs, targets, diagnostics, PoS estimates, and writeups.
Related MCP Servers
- AlicenseBqualityFmaintenanceEnables molecular design and simulation through 45 chemistry tools including pKa calculations, geometry optimization, conformer searches, docking, protein cofolding, and ADMET predictions powered by Rowan's computational chemistry platform.4124MIT
- AlicenseCqualityBmaintenanceEnables LLM agents to draw and edit ChemDraw reaction schemes, parse ELN exports and LCMS/NMR data, and generate publication-ready CDXML files through grounded chemistry tools.352MIT
- AlicenseNot gradedqualityAmaintenanceChemical safety intelligence for AI-assisted experiment design. 18 MCP tools for compatibility checks, hazard analysis, PPE, storage, waste disposal, mixing order, exposure limits, transport classification, regulatory compliance (8 jurisdictions), and signed audit reports. Supports 4,200+ chemicals in 5 languages.MIT
- AlicenseNot gradedqualityBmaintenanceProvides a local-first chemistry workbench for AI agents, enabling SMILES validation with human-readable diagnostics, molecule drawing, property calculation, format conversion, standardization, and batch cleaning via MCP.199 PyPI2MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.