MCP (Model Context Protocol) server for Ketcher chemical structure editor integration with Claude.
- 🧪 Open Ketcher Editor: Launch Ketcher web interface in browser
- 🔄 Format Conversion: Convert between SMILES, MOL, InChI formats
- 🖼️ Image Generation: Generate PNG/SVG images from SMILES
- 📊 Molecular Properties: Calculate molecular weight, LogP, TPSA, etc.
- ✅ Validation: Validate SMILES strings
- Python 3.10 or higher (tested with Python 3.11)
- pip
Note: If you're using macOS with system Python 3.9, you'll need to install Python 3.10+ separately:
# Using Homebrew
brew install python@3.11
# Verify installation
/opt/homebrew/bin/python3.11 --versioncd ketcher-mcp-server
# If using Python 3.11 from Homebrew
/opt/homebrew/bin/python3.11 -m pip install -e .
# Or if python3 is already 3.10+
pip install -e .pip install -e ".[dev]"python -m ketcher_mcp.serverOr use with mcp CLI:
mcp run ketcher_mcp.serverAdd to your claude_desktop_config.json:
{
"mcpServers": {
"ketcher": {
"command": "/opt/homebrew/bin/python3.11",
"args": ["-m", "ketcher_mcp.server"]
}
}
}Note: Adjust the Python path based on your installation:
- Homebrew Python 3.11:
/opt/homebrew/bin/python3.11 - System Python 3.10+:
python3orpython3.10 - Check your path with:
which python3.11
On macOS, the config file is located at:
~/Library/Application Support/Claude/claude_desktop_config.json
Opens Ketcher chemical structure editor in your default web browser.
Example:
Open Ketcher editor
Converts SMILES notation to molecular structure image.
Parameters:
smiles(str): SMILES notationwidth(int, optional): Image width (default: 400)height(int, optional): Image height (default: 300)format(str, optional): 'png' or 'svg' (default: 'png')
Example:
Generate image for aspirin: CC(=O)Oc1ccccc1C(=O)O
Converts SMILES to MOL file format.
Parameters:
smiles(str): SMILES notation
Example:
Convert CC(=O)Oc1ccccc1C(=O)O to MOL format
Converts MOL file format to SMILES.
Parameters:
mol_block(str): MOL file content
Calculates molecular properties from SMILES.
Parameters:
smiles(str): SMILES notation
Returns:
- Molecular formula
- Molecular weight
- Number of atoms, bonds, rings
- LogP, TPSA
- Hydrogen bond donors/acceptors
- Rotatable bonds
Example:
Get properties of caffeine: CN1C=NC2=C1C(=O)N(C(=O)N2C)C
Validates a SMILES string.
Parameters:
smiles(str): SMILES notation to validate
Example:
Validate SMILES: CCO
Converts SMILES to InChI identifier.
Parameters:
smiles(str): SMILES notation
Converts SMILES to InChIKey identifier.
Parameters:
smiles(str): SMILES notation
- "Open Ketcher editor"
- Draw your molecule in Ketcher
- Copy the SMILES from Ketcher
- "Get properties of [SMILES]"
- "Generate image for [SMILES]"
- "Convert aspirin SMILES to MOL format: CC(=O)Oc1ccccc1C(=O)O"
- "Convert this MOL to InChI"
- "Generate InChIKey"
- "Validate SMILES: CCO"
- "Generate SVG image for CCO"
- "Get molecular properties"
- FastMCP: MCP server framework
- RDKit: Chemical informatics library for molecule processing
- Ketcher: Web-based chemical structure editor (via CDN)
- SMILES: Simplified Molecular Input Line Entry System
- MOL: MDL Molfile format
- InChI: IUPAC International Chemical Identifier
- InChIKey: Hashed InChI for database lookups
- PNG/SVG: Image formats for visualization
If you encounter issues installing RDKit:
# Using conda (recommended)
conda install -c conda-forge rdkit
# Or using pip
pip install rdkit-pypiMake sure you have a default web browser configured. The server uses Python's webbrowser module.
pytestketcher-mcp-server/
├── ketcher_mcp/
│ ├── __init__.py
│ └── server.py
├── pyproject.toml
└── README.md
Contributions are welcome! Please feel free to submit issues or pull requests.
MIT License
- Ketcher - EPAM's open-source chemical structure editor
- RDKit - Open-source cheminformatics toolkit
- FastMCP - Fast MCP server framework
- 0.1.0 (2026-03-09): Initial release
- Basic SMILES/MOL conversion
- Image generation
- Molecular property calculation
- Ketcher integration