Skills DirectorySkills Directory
SkillsLearnSecurityCategoriesDocsBlogPro
Sign InSubmit Skill
Skills Directory

Security-tested agent skills for Claude, coding agents, and AI workflows.

Directory

  • Browse Skills
  • All Skills A–Z
  • Claude Skills
  • Claude Code Skills
  • Agent Skills
  • Categories
  • Authors
  • Submit a Skill

Learn

  • Learn Hub
  • Install Claude Skills
  • Write SKILL.md
  • Skills vs MCP
  • Directories Compared

Security

  • Security
  • Methodology
  • Secure Claude Skills
  • Security Badges
  • Chrome Extension
  • Skill Manager

Company

  • About
  • Community
  • Blog
  • API Docs
  • Advertise

2026 Skills Directory. All rights reserved.

ProTermsPrivacyRefunds
Back to skills

Molecular Properties Calculation

ASecurity

Calculate basic molecular properties from SMILES including molecular weight, formula, atom counts, and exact mass.

170 stars
0 votes
0 copies
1 views
Added 9/11/2026
toolspythonapidatabase

Works with

cliapimcp

Security Analysis

A100/100

Scanned 9/11/2026

$npx -y skills add InternScience/DrClaw --skill molecular-properties-calculation --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Molecular Properties Calculation?

Add the live security badge to your README — it updates automatically with every re-scan.

Security grade badge for Molecular Properties Calculation
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/internscience-molecular-properties-calculation-drclaw/badge)](https://www.skillsdirectory.com/skills/internscience-molecular-properties-calculation-drclaw)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
Files
SKILL.md
---
name: molecular-properties-calculation
description: Calculate basic molecular properties from SMILES including molecular weight, formula, atom counts, and exact mass.
license: MIT license
metadata:
    skill-author: PJLab
---

# Molecular Properties Calculation

## Usage

### 1. MCP Server Definition

```python
import asyncio
import json
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.client = Client(transport)
            await self.client.__aenter__()

            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 self.client:
                await self.client.__aexit__(None, None, None)
            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.

Attribution

InternScienceInternScience
View sourceSee grades on GitHubMore from InternScience →
SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments (0)

No comments yet. Be the first to comment!

SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Related Skills

ucoz-landing-skill

Create and edit uCoz homepage landing pages via MCP: custom templates, hero sections, lead forms, navigation menus, SEO, and responsive layout. Includes a visual design system (style selection, layout/grid, section recipes, typography/spacing, color tokens, component states, icons, modern CSS/JS, motion, imagery, social proof, copy/voice, accessibility). Uses ucoz-mcp tools for templates, site file uploads, and site modules.

107 votes

Paperclip

Interact with the Paperclip control plane API for task coordination and governance. Use when checking assignments, updating issue status, posting comments, delegating work, managing routines, or calling Paperclip API endpoints.

953191 votes

Pptx

Presentation toolkit (.pptx). Create/edit slides, layouts, content, speaker notes, comments, for programmatic presentation creation and modification.

471861 votes

Daw Music

Digital Audio Workstation usage, music composition, interactive music systems, and game audio implementation for immersive soundscapes.

761 votes

Instantly Rdsthomas Mission Control

Instantly.ai cold email outreach API - manage campaigns, leads, accounts, and analytics. Use for cold email automation, lead management, campaign creation/monitoring, and email account warmup.

761 votes
View all in tools →