Skip to content
Back to skills

Smiles To Cas Conversion

ASecurity

Convert SMILES strings to CAS registry numbers using material informatics

  • 170 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added September 11, 2026
businesspythonapi

Works with

  • cli
  • api
  • mcp

Security analysis

A100/100

Scanned September 11, 2026

npx -y skills add InternScience/DrClaw --skill smiles-to-cas-conversion --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Smiles To Cas Conversion?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Smiles To Cas Conversion
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/internscience-smiles-to-cas-conversion-9243b9b2/badge)](https://www.skillsdirectory.com/skills/internscience-smiles-to-cas-conversion-9243b9b2)

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

Download with Pro
SKILL.md
---
name: smiles-to-cas-conversion
description: Convert SMILES strings to CAS registry numbers using material informatics
  tools to identify chemical substances.
license: MIT license
metadata:
  skill-author: PJLab
i18n:
  zh:
    description: 将SMILES转换为CAS号。
---

# SMILES to CAS Conversion

## Usage

### 1. MCP Server Definition

```python
import asyncio
import json
from mcp.client.streamable_http import streamablehttp_client
from mcp import ClientSession

class MaterialToolsClient:
    """SciToolAgent-Mat MCP Client"""

    def __init__(self, server_url: str, api_key: str):
        self.server_url = server_url
        self.api_key = api_key
        self.session = None

    async def connect(self):
        try:
            self.transport = streamablehttp_client(
                url=self.server_url,
                headers={"SCP-HUB-API-KEY": self.api_key}
            )
            self.read, self.write, self.get_session_id = await self.transport.__aenter__()
            self.session_ctx = ClientSession(self.read, self.write)
            self.session = await self.session_ctx.__aenter__()
            await self.session.initialize()
            return True
        except Exception as e:
            print(f"✗ connect failure: {e}")
            return False

    async def disconnect(self):
        try:
            if self.session:
                await self.session_ctx.__aexit__(None, None, None)
            if hasattr(self, 'transport'):
                await self.transport.__aexit__(None, None, None)
        except Exception as e:
            print(f"✗ disconnect error: {e}")

    def parse_result(self, 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. SMILES to CAS Conversion Workflow

Convert SMILES notation to CAS registry numbers.

**Implementation:**

```python
## Initialize client
client = MaterialToolsClient(
    "https://scp.intern-ai.org.cn/api/v1/mcp/30/SciToolAgent-Mat",
    "<your-api-key>"
)

if not await client.connect():
    print("connection failed")
    exit()

## Input: SMILES strings
smiles_list = [
    "CCO",           # Ethanol
    "CC(=O)O",       # Acetic acid
    "c1ccccc1"       # Benzene
]

print("SMILES to CAS Conversion:")
for smiles in smiles_list:
    result = await client.session.call_tool(
        "SMILESToCAS",
        arguments={"smiles": smiles}
    )
    result_data = client.parse_result(result)
    print(f"SMILES: {smiles}")
    print(f"Result: {result_data}\n")

await client.disconnect()
```

### Tool Descriptions

**SciToolAgent-Mat Server:**
- `SMILESToCAS`: Convert SMILES to CAS registry number
  - Args:
    - `smiles` (str): SMILES notation
  - Returns: CAS registry number

### Use Cases

- Chemical substance identification
- Regulatory compliance checking
- Material safety data sheet lookup
- Chemical inventory management

Attribution

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

Loading comments…