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 contextlib import AsyncExitStack
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._stack = AsyncExitStack()
await self._stack.__aenter__()
self.read, self.write, self.get_session_id = await self._stack.enter_async_context(self.transport)
self.session_ctx = ClientSession(self.read, self.write)
self.session = await self._stack.enter_async_context(self.session_ctx)
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):
"""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):
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).
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.
drugsda-mol-properties
Calculate different types of molecular properties based on SMILES strings, covering basic physicochemical properties, hydrophobicity, hydrogen bonding capability, molecular complexity, topological structures, charge distribution, and custom complexity metrics, respectively.
drugsda-linker-sampling
Generate new molecules sampling from the input two warhead fragments.
drugsda-file-transfer
Implement data transmission between the local computer and the MCP Server using Base64 encoding
drugsda-esmfold
Use ESMFold model to predict 3D structure of the input protein sequence.