Skip to main content
  1. ChemMCP Tools/

ReactionSmilesCheck (check_reaction_smiles)

Molecule Reaction SMILES SMARTS RDKit Molecular Information Reaction Information
Table of Contents
Version: 0.1.0 Last Update: 2025/06/05 MCP Support Python Calling Support
Check the syntactical validity of a reaction SMILES string ([reactant SMILES]>[reagent SMILES]>[product SMILES]).

Example

Input:

smiles: 'B.C1=CCCCC1.C1=CCCCC1>>B(C1CCCCC1)C1CCCCC1'

Text Input (used for the run_text function in the Python calling mode):

smiles: 'B.C1=CCCCC1.C1=CCCCC1>>B(C1CCCCC1)C1CCCCC1'

Output:

'The reaction SMILES string is valid.'

Usage

The tool supports both MCP mode and Python calling mode.

MCP Mode

Configure your MCP client following its instructions with something like:

{
    "command": "/ABSTRACT/PATH/TO/uv",  // Use `which uv` to get its path
    "args": ["--directory", "/ABSTRACT/PATH/TO/ChemMCP", "run", "--tools", "ReactionSmilesCheck"],
    "toolCallTimeoutMillis": 300000,
    "env": {}
}

Python Calling Mode

import os
from chemmcp.tools import ReactionSmilesCheck

# Initialize the tool
tool = ReactionSmilesCheck()

# The tool has two alternative ways to run:
# 1. Run with separate input domains (recommended)
output = tool.run_code(
    smiles='B.C1=CCCCC1.C1=CCCCC1>>B(C1CCCCC1)C1CCCCC1'
)
# 2. Run with text-only input
output = tool.run_text(
    smiles='B.C1=CCCCC1.C1=CCCCC1>>B(C1CCCCC1)C1CCCCC1'
)

Each tool in ChemMCP has two ways to run:

  • run_code (recommended): The inputs contain one or more domains, each of which can be a str, an int, a float, etc.
  • run_text: The inputs are a single string in a specific format. The tool will parse the string to extract the input domains. This is useful in scenarios where an agent framework calls tools only with text input. The output is the same in both cases.

For the input and output domains, please refer to the tool’s signature.

Tool Signature

Input

Used in the MCP mode, as well as the run_code function in the Python calling mode.

NameTypeDefaultDescription
smilesstrN/AThe SMILES string of a chemical reaction to check.

Text Input

Used in the run_text function in the Python calling mode.

NameTypeDefaultDescription
smilesstrN/AThe SMILES string of a chemical reaction to check.

Output

The output is the same in both input cases.

NameTypeDescription
resultstrDescription of the validity of the SMILES string.

Envs

No required environment variables for this tool.

Implementation Details

  • Implementation Description: Validates a reaction SMILES string by checking its format (reactants > reagents > products) and verifying that each component is a valid SMILES string. Provides detailed feedback about which parts of the reaction are invalid if any.
  • Open-source dependencies (code source or required libraries): None
  • Hosted services and software (required for running the tool): None