drugsda-compound-retrieve
Retrieve SMILES strings from PubChem using compound names.
Best use case
drugsda-compound-retrieve is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Retrieve SMILES strings from PubChem using compound names.
Teams using drugsda-compound-retrieve 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/drugsda-compound-retrieve/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How drugsda-compound-retrieve Compares
| Feature / Agent | drugsda-compound-retrieve | 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?
Retrieve SMILES strings from PubChem using compound names.
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
# SMILES Retriever
## Usage
### 1. MCP Server Definition
```python
import json
from mcp.client.streamable_http import streamablehttp_client
from mcp import ClientSession
class DrugSDAClient:
def __init__(self, server_url: str):
self.server_url = server_url
self.session = None
async def connect(self):
print(f"server url: {self.server_url}")
try:
self.transport = streamablehttp_client(
url=self.server_url,
headers={"SCP-HUB-API-KEY": "sk-a0033dde-b3cd-413b-adbe-980bc78d6126"}
)
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()
session_id = self.get_session_id()
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):
try:
if self.session:
await self.session_ctx.__aexit__(None, None, None)
if hasattr(self, 'transport'):
await self.transport.__aexit__(None, None, None)
print("✓ already disconnect")
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'):
return json.loads(content.text)
return str(result)
except Exception as e:
return {"error": f"parse error: {e}", "raw": str(result)}
```
### 2. Tool Usage
The description of tool *retrieve_smiles_by_compoundname*.
```tex
Retrieve SMILES strings from PubChem using compound names.
Args:
compound_names (List[str]): List of input compound names (e.g., ["aspirin", "caffeine"])
Return:
status (str): success/partial_success/error
msg (str): message
retrieve_smiles (List[dict]): List of dict, each containing the keys 'compound_name' and 'smiles'.
--compound_name (str): A compound name of compound_names
--smiles (str): The retrieved SMILES string, if it exists; otherwise, None.
```
How to use tool *retrieve_smiles_by_compoundname* :
```python
client = DrugSDAClient("https://scp.intern-ai.org.cn/api/v1/mcp/2/DrugSDA-Tool")
if not await client.connect():
print("connection failed")
return
response = await client.session.call_tool(
"retrieve_smiles_by_compoundname",
arguments={
"compound_names": compound_names
}
)
result = client.parse_result(response)
retrieve_smiles = result["retrieve_smiles"]
await client.disconnect()
```Related Skills
lead_compound_optimization
Lead Compound Optimization - Optimize a lead compound: validate SMILES, compute drug-likeness, predict ADMET properties, and check ChEMBL bioactivity. Use this skill for medicinal chemistry tasks involving is valid smiles calculate mol drug chemistry pred molecule admet search activity. Combines 4 tools from 3 SCP server(s).
disease_compound_pipeline
Disease-Specific Compound Screening - Screen compounds for disease: get DLEPS score for disease relevance, predict ADMET, and check drug-likeness. Use this skill for drug discovery tasks involving calculate dleps score pred molecule admet calculate mol drug chemistry get compound by name. Combines 4 tools from 3 SCP server(s).
compound_to_drug_pipeline
Compound-to-Drug Analysis Pipeline - Full compound-to-drug pipeline: name-to-SMILES conversion, structure analysis, drug-likeness, and FDA drug lookup. Use this skill for drug development tasks involving NameToSMILES ChemicalStructureAnalyzer calculate mol drug chemistry get drug by name. Combines 4 tools from 4 SCP server(s).
compound_database_crossref
Cross-Database Compound Lookup - Cross-reference compound across databases: PubChem, ChEMBL, KEGG, and CAS number lookup. Use this skill for chemical information tasks involving get compound by name get molecule by name kegg find CASToPrice. Combines 4 tools from 4 SCP server(s).
cas_compound_lookup
CAS Number Compound Lookup - Look up compounds by CAS: convert CAS to price/availability, get PubChem data, get ChEMBL info, and structure analysis. Use this skill for chemical information tasks involving CASToPrice get compound by name get molecule by name ChemicalStructureAnalyzer. Combines 4 tools from 4 SCP server(s).
drugsda-target-retrieve
Search the protein information from the input gene name and downloads the optimal PDB or AlphaFold structures.
drugsda-rgroup-sampling
Generate new molecules sampling from the input scaffold.
drugsda-prosst
Given a protein sequence and its structure, employ ProSST model to predict mutation effects and obtain the top-k mutated sequences.
drugsda-peptide-sampling
Generate new peptide molecules sampling from the input peptide sequence.
drugsda-p2rank
No description provided.
drugsda-mol2mol-sampling
Generate new molecules sampling from the input molecule.
drugsda-mol-similarity
Compute the Tanimoto similarities between a target molecule and a list of candidate molecules using Morgan fingerprints.