Skip to main content
Glama

mnova-mcp

Tests License: MIT

一个面向 MestReNova 15 的本地 STDIO MCP 服务,附带可直接安装的 Codex NMR Skill。它可以处理一维 NMR、导入 ChemDraw 结构、运行 Mnova Verify、将审核过的原子—多重峰指认写回 Mnova,并生成带来源记录的仿真一维 NMR FID。

本项目不包含 MestReNova 本体或许可证。Mnova Verify 功能取决于本地安装与授权。

主要功能

  • 检查本地 MestReNova 及 MCP 桥接状态。

  • 处理 Bruker、Varian/Agilent 或 Mnova 可读的一维 NMR 数据。

  • 导入 .cdx / .cdxml 等机器可读结构,建立可审计的两阶段指认流程。

  • 在结构上使用小写字母编号,并把对应字母水平放在目标峰正上方。

  • 重叠指认使用 k,l 格式;同一原子的非等价氢可使用 a,d 格式。

  • 默认拒绝低置信度写回,并保留未解决信号的审计记录。

  • 生成可复现、明确标记为 synthetic 的复数 FID 和 Varian/Agilent .fid 数据集。

Related MCP server: scifinder-route-mcp

仓库结构

mnova-mcp/
├─ mnova/bridge.qs                  # Mnova 15 桥接脚本
├─ src/mnova_mcp/                  # Python MCP 服务
├─ tests/                          # 单元测试和 STDIO 探针
├─ examples/cases/                 # 实测数据、结构和可审计产出
└─ skill/nmr-analyze-simulate/     # 可安装的 Codex Skill

环境要求

  • Windows 10/11

  • MestReNova 15.x

  • Python 3.11 或 3.12

  • uv

  • 如需 Verify:本地可用的 Mnova Verify/ASV 许可

快速开始

git clone https://github.com/cyx1874cyx/mnova-mcp.git
cd mnova-mcp
uv sync --extra dev
uv run pytest
uv run mnova-mcp

MCP 默认通过 STDIO 运行。可用下面的探针检查握手和工具调用:

uv run python tests/stdio_probe.py

环境变量

变量

用途

MNOVA_EXE

MestReNova.exe 路径;未设置时会检测常见安装位置

MNOVA_MCP_WORKSPACE

允许 MCP 读写的项目根目录

MNOVA_MCP_OUTPUT_ROOT

任务输出根目录

MNOVA_MCP_RUNTIME_ROOT

传递给 Mnova 的 ASCII 临时桥接目录

MNOVA_MCP_BRIDGE_SCRIPT

自定义 bridge.qs 路径

MNOVA_MCP_TIMEOUT_SEC

Mnova 任务超时秒数,默认 300

MCP 工具

  • mnova_status

  • mnova_process_1d

  • mnova_prepare_structure_1d

  • mnova_apply_assignments_1d

结构指认采用两阶段流程:

  1. mnova_prepare_structure_1d 读取实测 NMR 和 ChemDraw 结构,输出原子索引、氢位点、multiplet UUID、Verify 信息和 prepared.mnova

  2. 调用方审核 analysis.json,构建 assignment-plan JSON,再调用 mnova_apply_assignments_1d 生成新的 assigned.mnova

每个要写回的指认都需要独立的小写字母 label

{
  "schema_version": "1.1",
  "assignments": [
    {
      "label": "a",
      "atom_index": 4,
      "h_index": 1,
      "multiplet_uuid": "{uuid-from-analysis}",
      "ppm": 3.651,
      "range_min_ppm": 3.620,
      "range_max_ppm": 3.681,
      "confidence": "high",
      "evidence": "2H integral, expected OCH2 shift, and consistent splitting"
    }
  ],
  "unresolved": []
}

安装 Codex Skill

skill/nmr-analyze-simulate 复制到你的 $CODEX_HOME/skills/ 目录,然后重新加载 Codex。Skill 中的解读、Mnova 指认和仿真规则位于:

  • skill/nmr-analyze-simulate/SKILL.md

  • skill/nmr-analyze-simulate/references/

  • skill/nmr-analyze-simulate/scripts/

实测案例

  • DEGMA / CDCl3 / 400 MHz 1H NMR:包含未修改的 Varian/Agilent FID 压缩包、目标结构、独立处理结果、Mnova 两阶段指认文档、最终标峰 PDF、归属表和 Verify 记录。

安全与科学边界

  • 原始数据、ChemDraw 结构和已准备 Mnova 文档不会被覆盖。

  • 每次运行写入新输出目录。

  • 自动拾峰、自动积分和 Verify 分数只是决策支持,不是结构身份的独立证明。

  • 仿真输出始终保留 synthetic: true、模型哈希、参数和随机种子。

  • 当一维证据不唯一时,应保留 unresolved,并优先建议 COSY、HSQC 或 HMBC。

开发

uv sync --extra dev
uv run pytest
uv run python tests/stdio_probe.py

License

MIT © 2026 cyx1874cyx

Available Tools

4 tools
mnova_apply_assignments_1dA

Validate and write an assignment plan into a prepared Mnova document.

Links molecule atoms/protons to real Mnova multiplet UUIDs, writes matching
lowercase letter labels onto the structure and directly above the assigned
peaks, optionally reruns Mnova Verify, and saves a new assigned .mnova file.
Each plan entry requires a lowercase ``label``. Low-confidence assignments
are rejected unless explicitly allowed.
ParametersJSON Schema
NameRequiredDescriptionDefault
output_dirNo
run_verificationNo
prepared_mnova_pathYes
allow_low_confidenceNo
assignment_plan_pathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.4/5.0
Behavior4/5

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

No annotations are provided, so the description carries the full burden. It transparently discloses multiple behaviors: writing labels onto structure and peaks, optional verification, saving a new .mnova file, and rejecting low-confidence assignments unless allowed. This gives a strong sense of side effects and constraints.

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?

Three sentences, front-loaded with the main action, followed by detailed behaviors and requirements. Every sentence adds value, with no redundancy or unnecessary filler.

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

Completeness4/5

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

The description covers the full operation, prerequisites, parameter implications, and output behavior. It could more explicitly tie into the workflow of sibling tools (e.g., that the document must come from mnova_prepare_structure_1d), but it is complete for the tool's complexity.

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?

With 0% schema description coverage, the description compensates by associating prepared_mnova_path, assignment_plan_path, run_verification, and allow_low_confidence with their roles. It implies output_dir via 'saves a new assigned .mnova file', though it does not explicitly name it.

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 clearly states the tool validates and writes an assignment plan into a prepared Mnova document, with specific actions like linking atoms to multiplet UUIDs and writing labels. This distinguishes it from siblings like mnova_prepare_structure_1d and mnova_status.

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

Usage Guidelines4/5

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

The description implies prerequisites: a prepared Mnova document and an assignment plan, and provides requirements like lowercase labels and low-confidence handling. It does not explicitly name alternative tools or state when not to use it, but the context is clear.

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

mnova_prepare_structure_1dA

Open 1D NMR plus CDX/CDXML (or another supported structure) in Mnova.

Processes the spectrum, extracts atom metadata and stable peak/multiplet IDs, optionally runs Mnova Verify, and saves a prepared .mnova document. The result is the evidence package used to create a separate assignment-plan JSON.

ParametersJSON Schema
NameRequiredDescriptionDefault
input_pathYes
output_dirNo
structure_pathYes
run_verificationNo
processing_template_pathNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations, the description carries the burden. It discloses key steps (processing, extracting metadata, optional Verify, saving a .mnova) but does not mention side effects, file overwrites, required external dependencies, or failure modes. Moderate transparency.

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?

The description is two sentences, front-loaded with the core action, and each sentence adds needed detail without fluff. It is concise and well-structured.

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

Completeness3/5

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

The description gives a good high-level overview and mentions the output's purpose (assignment-plan JSON), but lacks parameter-level details (especially processing_template_path) and does not describe the return format beyond 'evidence package'. Adequate but with clear gaps.

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

Parameters2/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. It implies input_path and structure_path ('Open 1D NMR plus CDX/CDXML') and run_verification ('optionally runs Mnova Verify'), and output_dir implied by 'saves a prepared .mnova document', but it completely omits processing_template_path. Significant gap for a key parameter.

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 clearly states it opens 1D NMR plus a structure file, processes the spectrum, extracts atom metadata and peak IDs, optionally runs Verify, and saves a prepared .mnova document. This specific verb+resource set distinguishes it from siblings like mnova_process_1d (likely processing-only) and mnova_apply_assignments_1d (applying assignments).

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

Usage Guidelines4/5

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

The description gives clear context: it is used to create an 'evidence package' for a separate assignment-plan JSON, indicating when to use it. However, it does not explicitly state alternatives or exclusions (e.g., 'for simple processing use mnova_process_1d').

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

mnova_process_1dB

Process 1D NMR data with Mnova and export auditable spectrum artifacts.

ParametersJSON Schema
NameRequiredDescriptionDefault
input_pathYes
output_dirNo
processing_template_pathNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It does disclose the output behavior ('export auditable spectrum artifacts'), which adds some transparency. However, it omits details about side effects, prerequisites, or whether the input file is modified, so it is only partially transparent.

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?

The description is a single sentence that is front-loaded with the core action and provides no filler or redundant information. It is appropriately concise.

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

Completeness2/5

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

Given the presence of an output schema and multiple parameters, the description is too sparse. It does not explain the processing workflow, what 'auditable spectrum artifacts' are, or how the optional parameters affect execution. The output schema covers return values, but the overall context is incomplete.

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

Parameters2/5

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

Schema description coverage is 0%, so the description needed to compensate by explaining parameters. It mentions no details about input_path, output_dir, or processing_template_path beyond what the schema field names imply. The term 'processing_template_path' in particular remains unexplained.

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

Purpose4/5

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

The description clearly states the tool processes 1D NMR data with Mnova and exports auditable spectrum artifacts, giving a specific verb and resource. However, it does not explicitly distinguish itself from sibling tools like mnova_prepare_structure_1d or mnova_apply_assignments_1d, so it falls just short of a 5.

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

Usage Guidelines2/5

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

The description gives no guidance on when to use this tool versus its siblings, nor does it mention any prerequisites or exclusions. Sibling tools exist but there is no comparative context, leaving the agent without direction for alternative selection.

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

mnova_statusA

Check MestReNova, bridge readiness, supported formats, and workflow.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior2/5

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

With no annotations, the description carries full responsibility for behavioral disclosure. It lists what is checked but does not state whether the tool is read-only, whether it performs diagnostics, or what 'bridge readiness' entails. No side effects or error conditions are disclosed.

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?

The description is a single, terse sentence with no filler. It front-loads the action ('Check') and lists key target areas compactly.

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

Completeness4/5

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

Given the tool has no parameters and an output schema exists to document return values, the description's coverage of the status domains is sufficient. The only minor gap is the undefined term 'workflow,' but the output schema likely resolves this.

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?

The tool has zero parameters, so the schema fully covers parameter semantics. The description adds no parameter details, but none are needed.

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 uses a specific verb 'Check' and names distinct resources: MestReNova, bridge readiness, supported formats, and workflow. This clearly differentiates the status tool from its siblings (mnova_process_1d, mnova_prepare_structure_1d, mnova_apply_assignments_1d), which are action-oriented.

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

Usage Guidelines2/5

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

The description provides no explicit guidance on when to use this tool versus the sibling tools, nor does it mention prerequisites or exclusions. The context of a status check is implied but never stated as a prerequisite for processing or preparation.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 4 tool updatesv0.3.0
    • First observedmnova_apply_assignments_1d
    • First observedmnova_prepare_structure_1d
    • First observedmnova_process_1d
    • First observedmnova_status

TDQS

A3.7/5.0

Scored across 4 tools

Disambiguation4/5

Each tool targets a distinct stage of the workflow, but mnova_process_1d and mnova_prepare_structure_1d overlap in that both process 1D NMR data; the descriptions help clarify that one is for standalone processing and the other for preparing a structure-linked document.

Naming Consistency5/5

All tools follow a consistent mnova_<verb>_<object> pattern with clear action-oriented verbs (status, process, prepare, apply), making the naming predictable and easy to scan.

Tool Count5/5

Four tools is well-scoped for the dedicated NMR processing and assignment workflow. Each tool covers a necessary step without redundancy or bloat.

Completeness4/5

The tool set covers the core lifecycle from status check through processing, preparation, and assignment application. Minor gaps like explicit retrieval of assignment results or undo functionality could exist, but the pipeline appears functionally complete for its purpose.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    A
    maintenance
    Provides a collection of MCP servers for computational chemistry tasks including molecular generation and retrosynthesis. Also offers property prediction and molecule pricing capabilities.
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    An MCP server that gives LLMs native access to cheminformatics and molecular ML tools, enabling molecular structure manipulation, descriptor calculation, ML model training, and analysis report generation through natural conversation.
    32
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    MCP server for Ketcher chemical structure editor integration, enabling SMILES/MOL/InChI conversion, image generation, molecular property calculation, and validation.
    MIT