molecular-properties-calculation
Calculate basic molecular properties from SMILES including molecular weight, formula, atom counts, and exact mass.
Best use case
molecular-properties-calculation is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Calculate basic molecular properties from SMILES including molecular weight, formula, atom counts, and exact mass.
Teams using molecular-properties-calculation should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/molecular-properties-calculation/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How molecular-properties-calculation Compares
| Feature / Agent | molecular-properties-calculation | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Calculate basic molecular properties from SMILES including molecular weight, formula, atom counts, and exact mass.
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# Molecular Properties Calculation
## Usage
### 1. MCP Server Definition
```python
import asyncio
import json
from contextlib import AsyncExitStack
from fastmcp import Client
from fastmcp.client.transports import StreamableHttpTransport
class ChemicalToolsClient:
"""Chemical Tools MCP Client using FastMCP"""
def __init__(self, server_url: str, headers: dict = None):
self.server_url = server_url
self.headers = headers or {}
self.client = None
async def connect(self):
"""Establish connection and initialize session"""
print(f"Connecting to: {self.server_url}")
try:
transport = StreamableHttpTransport(
url=self.server_url,
headers=self.headers
)
self._stack = AsyncExitStack()
await self._stack.__aenter__()
self.client = Client(transport)
await self._stack.enter_async_context(self.client)
print(f"✓ connect success")
return True
except Exception as e:
print(f"✗ connect failure: {e}")
import traceback
traceback.print_exc()
return False
async def disconnect(self):
"""Disconnect from server"""
try:
if hasattr(self, '_stack'):
await self._stack.aclose()
print("✓ already disconnect")
except Exception as e:
print(f"✗ disconnect error: {e}")
def parse_result(self, result):
"""Parse MCP tool call result"""
try:
if hasattr(result, 'content') and result.content:
content = result.content[0]
if hasattr(content, 'text'):
try:
return json.loads(content.text)
except:
return content.text
return str(result)
except Exception as e:
return {"error": f"parse error: {e}", "raw": str(result)}
```
### 2. Molecular Properties Calculation Workflow
This workflow calculates fundamental molecular properties from SMILES strings, useful for drug discovery, chemical analysis, and computational chemistry.
**Workflow Steps:**
1. **Calculate Molecular Weight** - Compute average molecular weight
2. **Calculate Molecular Formula** - Determine elemental composition
3. **Calculate Exact Molecular Weight** - Compute monoisotopic mass
4. **Count Atoms** - Determine total and heavy atom counts
**Implementation:**
```python
## Initialize client
HEADERS = {"SCP-HUB-API-KEY": "<your-api-key>"}
client = ChemicalToolsClient(
"https://scp.intern-ai.org.cn/api/v1/mcp/31/SciToolAgent-Chem",
HEADERS
)
if not await client.connect():
print("connection failed")
exit()
## Input: SMILES string to analyze
smiles = "CCO" # Ethanol
print(f"=== Molecular Properties for {smiles} ===\n")
## Step 1: Calculate molecular weight
print("Step 1: Molecular Weight")
result = await client.client.call_tool(
"SMILESToWeight",
arguments={"smiles": smiles}
)
result_data = client.parse_result(result)
print(f"{result_data}\n")
## Step 2: Calculate molecular formula
print("Step 2: Molecular Formula")
result = await client.client.call_tool(
"GetMolFormula",
arguments={"smiles": smiles}
)
result_data = client.parse_result(result)
print(f"{result_data}\n")
## Step 3: Calculate exact molecular weight
print("Step 3: Exact Molecular Weight")
result = await client.client.call_tool(
"GetExactMolceularWeight",
arguments={"smiles": smiles}
)
result_data = client.parse_result(result)
print(f"{result_data}\n")
## Step 4: Count atoms
print("Step 4: Atom Count")
result = await client.client.call_tool(
"GetAtomsNum",
arguments={"smiles": smiles}
)
result_data = client.parse_result(result)
print(f"{result_data}\n")
## Step 5: Count heavy atoms
print("Step 5: Heavy Atom Count")
result = await client.client.call_tool(
"GetHeavyAtomsNum",
arguments={"smiles": smiles}
)
result_data = client.parse_result(result)
print(f"{result_data}\n")
await client.disconnect()
```
### Tool Descriptions
**SciToolAgent-Chem Server:**
- `SMILESToWeight`: Calculate average molecular weight
- Args: `smiles` (str) - SMILES string
- Returns: Molecular weight in g/mol
- `GetMolFormula`: Calculate molecular formula
- Args: `smiles` (str) - SMILES string
- Returns: Molecular formula (e.g., C₂H₆O)
- `GetExactMolceularWeight`: Calculate exact (monoisotopic) molecular weight
- Args: `smiles` (str) - SMILES string
- Returns: Exact mass (most abundant isotope composition)
- `GetAtomsNum`: Count total number of atoms
- Args: `smiles` (str) - SMILES string
- Returns: Total atom count (excluding hydrogens in implicit SMILES)
- `GetHeavyAtomsNum`: Count heavy atoms (non-hydrogen)
- Args: `smiles` (str) - SMILES string
- Returns: Heavy atom count
### Input/Output
**Input:**
- `smiles`: Molecule in SMILES format (e.g., "CCO", "c1ccccc1", "CC(=O)O")
**Output:**
- **Molecular Weight**: Average mass based on natural isotope abundances (g/mol or Da)
- **Molecular Formula**: Elemental composition (CₓHᵧNᵢOⱼ...)
- **Exact Molecular Weight**: Monoisotopic mass (most abundant isotope for each element)
- **Atom Count**: Total number of atoms in the molecule
- **Heavy Atom Count**: Number of non-hydrogen atoms
### Use Cases
- Drug-likeness assessment (molecular weight screening)
- Mass spectrometry data interpretation
- Stoichiometry calculations
- Chemical database queries
- Lipinski's Rule of Five evaluation
- Compound library characterization
- Quality control for chemical synthesis
### Molecular Weight Types
- **Average MW**: Used for general calculations, based on natural isotope distribution
- **Exact MW**: Used for mass spectrometry, based on most abundant isotopes
- **Difference**: Minimal for small molecules, can be significant for large biomolecules
Example:
- Ethanol (C₂H₆O): Average MW = 46.07 Da, Exact MW = 46.0418 Da
### Additional Molecular Property Tools
The SciToolAgent-Chem server provides 160+ additional tools including:
- `GetRotatableBondsNum`: Count rotatable bonds
- `GetHBDNum`/`GetHBANum`: Hydrogen bond donors/acceptors
- `GetRingsNum`: Count ring systems
- `GetTPSA`: Calculate topological polar surface area (TPSA)
- `GetCrippenDescriptors`: Calculate logP and molar refractivity
- `GetLipinskiHBDNum`/`GetLipinskiHBANum`: Lipinski rule parameters
- `GetAromaticRingsNum`: Count aromatic rings
- `GetFractionCSP3`: Calculate fraction of sp³ carbons
### Lipinski's Rule of Five
For drug-likeness, molecules should satisfy:
1. Molecular weight ≤ 500 Da
2. LogP ≤ 5
3. Hydrogen bond donors ≤ 5
4. Hydrogen bond acceptors ≤ 10
Use the property calculation tools to assess these criteria.Related Skills
seawater-sound-speed-calculation
Calculate sound speed in seawater from practical salinity, temperature, and pressure using the Gibbs Seawater Oceanographic Toolbox.
protein-properties-calculation
Calculate comprehensive protein sequence properties including isoelectric point, molecular weight, hydrophobicity, and physicochemical parameters.
peptide-properties-calculation
Calculate peptide sequence properties including molecular weight, isoelectric point, extinction coefficient, and chemical formula.
optical-frequency-calculation
Calculate optical frequency and wavelength relationships for photonics and electromagnetic analysis.
oceanographic-seawater-properties
Calculate seawater thermodynamic properties using TEOS-10 standard including density, salinity, sound speed, and freezing temperature for oceanography.
molecular_visualization_suite
Molecular Visualization Suite - Visualize molecules: convert SMILES to formats, visualize molecule, visualize protein, visualize complex. Use this skill for chemical visualization tasks involving convert smiles to format visualize molecule visualize protein visualize complex. Combines 4 tools from 1 SCP server(s).
molecular_fingerprint_analysis
Molecular Fingerprint Analysis - Fingerprint analysis: topology descriptors, structure complexity, similarity calculation, and AromaticityAnalysis. Use this skill for cheminformatics tasks involving calculate mol topology calculate mol structure complexity calculate smiles similarity AromaticityAnalyzer. Combines 4 tools from 2 SCP server(s).
molecular_docking_pipeline
Molecular Docking Pipeline - Complete docking workflow: retrieve protein structure, predict binding pockets, prepare receptor, and dock ligand. Use this skill for structural biology tasks involving retrieve protein data by pdbcode run fpocket convert pdb to pdbqt dock quick molecule docking. Combines 4 tools from 2 SCP server(s).
molecular-similarity-search
Search for similar molecules using Tanimoto similarity with Morgan fingerprints to identify structurally related compounds.
molecular-property-profiling
Comprehensive molecular property analysis covering basic info, hydrophobicity, H-bonding, structural complexity, topology, drug-likeness, charge distribution, and complexity metrics.
molecular-format-conversion
Convert between molecular formats including SMILES, InChI, InChIKey, and SELFIES for cheminformatics applications.
molecular-descriptors-calculation
Calculate advanced molecular descriptors including shape indices, connectivity indices, and structural features for QSAR and drug discovery.