Skip to main content
Glama

CovaSyn Chemistry Tools

covnmr_analyze

Full 1D NMR analysis of one spectrum file: processing, peaks, integrals, multiplets, the publication NMR string, and, with smiles, structure verification in the same call.

With `smiles`, pass `hrms` too (e.g. {"formula": "C9H8O4", "mz": 181.0495,
"adduct": "[M+H]+"}) and `verification` checks the HRMS formula and mass
(within `hrms_ppm_tolerance` ppm, default 10), the proton count from the
spectrum's integrals (1H) or the carbon line count (13C), and gives one
answer in `verification.verdict_combined` (see covnmr_verify).

Absorbs three retired tools:
* covnmr_format -> `output_format="nmr_string"` (or "acs").
* covnmr_export -> `output_format` "peaks_csv" (alias "csv"), "spectrum_csv",
  "jcamp" or "nmredata" (pass `smiles` and `compound_name` for NMReData).
  The file comes back INLINE as `content` with `filename` and `mime`;
  nothing is written on the server. `content_truncated` says whether it was
  capped at `max_content_chars` (2,000,000); curve formats are decimated to
  fit rather than cut (`curve_reduced_to_fit`).
* covnmr_audit_report -> `audit=true` (and `operator`): adds `audit_record`
  with input and output hashes taken over the complete output. The record
  names your file: `display_name` if you give one, else the file name in
  the URL you sent.

`output_format="asm"` returns an Allotrope-style ASM JSON document inline.
It is EXPERIMENTAL and UNVALIDATED: no NMR ASM schema was available to
check it against, and the response says so (`maturity: "experimental"`,
`maturity_note`, `asm_validation`). Do not hand it to a system that
expects a validated ASM file.

Nucleus and spectrometer frequency are read from the file; give them only
for a file that declares none. Without `smiles` the 1H entries of the NMR
string carry no integrals (there is no honest anchor to scale them
against); with it they do. With `smiles` the response also adds
`verification` and `impurities` -- read `verification.verdict` and its
`evidence`, not `match_score`. For a structure check alone, or one from a
peak list without a file, use covnmr_verify.

Input Schema

NameRequiredDescriptionDefault
hrmsNo
pathYes
auditNo
smilesNo
api_keyNo
nucleusNo
solventNoCDCl3
operatorNo
field_mhzNo
display_nameNo
compound_nameNo
export_pointsNo
output_formatNo
max_content_charsNo
hrms_ppm_toleranceNo

Output Schema

NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed9 schema fields changed
    • addedInput schema / properties / audit
      Added value: +{
      +  "default": false,
      +  "title": "Audit",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / compound_name
      Added value: +{
      +  "default": "",
      +  "title": "Compound Name",
      +  "type": "string"
      +}
    • addedInput schema / properties / display_name
      Added value: +{
      +  "default": "",
      +  "title": "Display Name",
      +  "type": "string"
      +}
    • addedInput schema / properties / export_points
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "integer"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Export Points"
      +}
    • addedInput schema / properties / hrms
      Added value: +{
      +  "anyOf": [
      +    {
      +      "additionalProperties": true,
      +      "type": "object"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Hrms"
      +}
    • addedInput schema / properties / hrms_ppm_tolerance
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "number"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Hrms Ppm Tolerance"
      +}
    • addedInput schema / properties / max_content_chars
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "integer"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Max Content Chars"
      +}
    • addedInput schema / properties / operator
      Added value: +{
      +  "default": "",
      +  "title": "Operator",
      +  "type": "string"
      +}
    • addedInput schema / properties / output_format
      Added value: +{
      +  "default": "",
      +  "title": "Output Format",
      +  "type": "string"
      +}
  2. First observed

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden and does so well: it states export content is returned inline with no server-side file, explains truncation and curve decimation behavior, discloses that ASM output is experimental and unvalidated, and clarifies that integrals depend on `smiles`. These are exactly the behavioral traits an agent needs beyond the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Despite its length, the description is front-loaded with the core purpose and then organized by mode and parameter group. The bullets and warnings about retired-tool absorptions and ASM maturity all earn their place for a 15-parameter multimodal tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex tool with 15 parameters and no annotations, the description is complete enough to invoke correctly: it covers the main modes, prerequisites for structure verification, output-format behavior, truncation semantics, and routing to covnmr_verify. Even with an output schema present, it helpfully names key return fields such as `verification.verdict_combined`, `content_truncated`, and `maturity`.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate, and it explains many important parameters: `smiles`, `hrms`, `hrms_ppm_tolerance`, `output_format` aliases, `max_content_chars`, `audit`, `operator`, `nucleus`, and `field_mhz`. It leaves some parameters such as `api_key`, `solvent`, and `export_points` unexplained, so it is strong but not fully comprehensive.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: full 1D NMR analysis of one spectrum file, enumerating processing, peaks, integrals, multiplets, NMR string, and optional structure verification. It distinguishes the tool from siblings such as covnmr_verify and makes the 1D scope explicit, so an agent can select it without opening other schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives explicit conditions for using optional modes: with `smiles` pass `hrms`, and for a structure check alone use covnmr_verify. It also maps output_format values to the retired tools they replace and warns not to treat ASM output as validated ASM, which is unusually actionable guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.