Tooluniverse Chemical Compound Retrieval
wu-yc/LabClaw
Retrieves chemical compound information from PubChem and ChEMBL with disambiguation, cross-referencing, and quality assessment.
ToolUniverse workflow — Chemical Compound Retrieval. An agent skill from lamm-mit/scienceclaw.
$ npx skills add lamm-mit/scienceclaw --skill chemical-compound-retrieval -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install lamm-mit/scienceclaw chemical-compound-retrieval --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/lamm-mit/scienceclaw.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/chemical-compound-retrieval .claude/skills/chemical-compound-retrieval && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "chemical-compound-retrieval" agent skill from https://github.com/lamm-mit/scienceclaw/tree/main/skills/chemical-compound-retrieval into .claude/skills/chemical-compound-retrieval/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "chemical-compound-retrieval", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/lamm-mit/scienceclaw/tree/main/skills/chemical-compound-retrievalType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add lamm-mit/scienceclaw --skill chemical-compound-retrieval -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install lamm-mit/scienceclaw chemical-compound-retrieval --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/lamm-mit/scienceclaw.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/chemical-compound-retrieval .agents/skills/chemical-compound-retrieval && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "chemical-compound-retrieval" agent skill from https://github.com/lamm-mit/scienceclaw/tree/main/skills/chemical-compound-retrieval into .agents/skills/chemical-compound-retrieval/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "chemical-compound-retrieval", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add lamm-mit/scienceclaw --skill chemical-compound-retrieval -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install lamm-mit/scienceclaw chemical-compound-retrieval --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/lamm-mit/scienceclaw.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/chemical-compound-retrieval .cursor/skills/chemical-compound-retrieval && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "chemical-compound-retrieval" agent skill from https://github.com/lamm-mit/scienceclaw/tree/main/skills/chemical-compound-retrieval into .cursor/skills/chemical-compound-retrieval/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "chemical-compound-retrieval", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/lamm-mit/scienceclaw.git --path skills/chemical-compound-retrieval--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add lamm-mit/scienceclaw --skill chemical-compound-retrieval -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install lamm-mit/scienceclaw chemical-compound-retrieval --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/lamm-mit/scienceclaw.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/chemical-compound-retrieval .gemini/skills/chemical-compound-retrieval && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "chemical-compound-retrieval" agent skill from https://github.com/lamm-mit/scienceclaw/tree/main/skills/chemical-compound-retrieval into .gemini/skills/chemical-compound-retrieval/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "chemical-compound-retrieval", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install lamm-mit/scienceclaw chemical-compound-retrievalInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add lamm-mit/scienceclaw --skill chemical-compound-retrieval -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/lamm-mit/scienceclaw.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/chemical-compound-retrieval .github/skills/chemical-compound-retrieval && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "chemical-compound-retrieval" agent skill from https://github.com/lamm-mit/scienceclaw/tree/main/skills/chemical-compound-retrieval into .github/skills/chemical-compound-retrieval/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "chemical-compound-retrieval", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add lamm-mit/scienceclaw --skill chemical-compound-retrieval -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install lamm-mit/scienceclaw chemical-compound-retrieval --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/lamm-mit/scienceclaw.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/chemical-compound-retrieval .opencode/skills/chemical-compound-retrieval && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "chemical-compound-retrieval" agent skill from https://github.com/lamm-mit/scienceclaw/tree/main/skills/chemical-compound-retrieval into .opencode/skills/chemical-compound-retrieval/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "chemical-compound-retrieval", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
chemical-compound-retrievalToolUniverse workflow — Chemical Compound Retrieval. An agent skill from lamm-mit/scienceclaw.
Chemical Compound Retrieval is an agent skill from lamm-mit/scienceclaw. ToolUniverse workflow — Chemical Compound Retrieval
Its SKILL.md is about 2.4k tokens, which your agent loads only when the skill is triggered. The skill folder holds 4 other files, including scripts (for example `scripts/run.py`).
The licence is Apache-2.0.
4 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit ab9aba1. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships 2 files in scripts/ (Python), which the agent can run.
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Chemical Compound Retrieval loads about 2.4k tokens when it runs. Until then it costs about 20 tokens; SKILL.md has 573 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.
The full file from lamm-mit/scienceclaw at commit ab9aba1, republished under its Apache-2.0 licence (© lamm-mit). 573 words, ~2,358 tokens.
.claude/skills/chemical-compound-retrieval/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.Retrieve comprehensive chemical compound data with proper disambiguation and cross-database validation.
IMPORTANT: Always use English compound names and search terms in tool calls, even if the user writes in another language (e.g., translate "阿司匹林" to "aspirin"). Only try original-language terms as a fallback if English returns no results. Respond in the user's language.
Phase 0: Clarify (if needed)
↓
Phase 1: Disambiguate Compound Identity
↓
Phase 2: Retrieve Data (Internal)
↓
Phase 3: Report Compound ProfileAsk the user ONLY if:
Skip clarification for:
from tooluniverse import ToolUniverse
tu = ToolUniverse()
tu.load_tools()
# Strategy depends on input type
if user_provided_cid:
cid = user_provided_cid
elif user_provided_smiles:
result = tu.tools.PubChem_get_CID_by_SMILES(smiles=smiles)
cid = result["data"]["cid"]
elif user_provided_name:
result = tu.tools.PubChem_get_CID_by_compound_name(compound_name=name)
cid = result["data"]["cid"]Always establish compound identity across both databases:
# PubChem → ChEMBL cross-reference
chembl_result = tu.tools.ChEMBL_search_compounds(query=compound_name, limit=5)
if chembl_result["data"]:
chembl_id = chembl_result["data"][0]["molecule_chembl_id"]For generic names (e.g., "vitamin", "steroid", "acid"):
Identity Resolution Checklist:
Retrieve all data silently. Do NOT narrate the search process.
# Basic properties
props = tu.tools.PubChem_get_compound_properties_by_CID(cid=cid)
# Bioactivity summary
bio = tu.tools.PubChem_get_bioactivity_summary_by_CID(cid=cid)
# Drug label (if approved drug)
drug = tu.tools.PubChem_get_drug_label_info_by_CID(cid=cid)
# Structure image
image = tu.tools.PubChem_get_compound_2D_image_by_CID(cid=cid)if chembl_id:
# Detailed bioactivity
activity = tu.tools.ChEMBL_get_bioactivity_by_chemblid(chembl_id=chembl_id)
# Protein targets
targets = tu.tools.ChEMBL_get_target_by_chemblid(chembl_id=chembl_id)
# Assay data
assays = tu.tools.ChEMBL_get_assays_by_chemblid(chembl_id=chembl_id)# Patents (for drugs)
patents = tu.tools.PubChem_get_associated_patents_by_CID(cid=cid)
# Similar compounds (for SAR)
similar = tu.tools.PubChem_search_compounds_by_similarity(cid=cid, threshold=85)| Primary | Fallback | Notes |
|---|---|---|
| PubChem_get_CID_by_compound_name | ChEMBL_search_compounds → get SMILES → PubChem_get_CID_by_SMILES | Name lookup failed |
| ChEMBL_get_bioactivity | PubChem_get_bioactivity_summary | ChEMBL ID unavailable |
| PubChem_get_drug_label_info | Note "Drug label unavailable" | Not an approved drug |
Present results as a Compound Profile Report. Hide all search process details.
# Compound Profile: [Compound Name]
## Identity
| Property | Value |
|----------|-------|
| **PubChem CID** | [cid] |
| **ChEMBL ID** | [chembl_id or "N/A"] |
| **IUPAC Name** | [full name] |
| **Common Names** | [synonyms] |
## Chemical Properties
### Molecular Descriptors
| Property | Value | Drug-Likeness |
|----------|-------|---------------|
| **Formula** | C₉H₈O₄ | - |
| **Molecular Weight** | 180.16 g/mol | ✓ (<500) |
| **LogP** | 1.19 | ✓ (-2 to 5) |
| **H-Bond Donors** | 1 | ✓ (<5) |
| **H-Bond Acceptors** | 4 | ✓ (<10) |
| **Polar Surface Area** | 63.6 Ų | ✓ (<140) |
| **Rotatable Bonds** | 3 | ✓ (<10) |
### Structural Representation
- **SMILES**: `CC(=O)Oc1ccccc1C(=O)O`
- **InChI**: `InChI=1S/C9H8O4/...`
[2D structure image if available]
## Bioactivity Profile
### Summary
- **Active in**: [X] assays out of [Y] tested
- **Primary Targets**: [list top targets]
- **Mechanism**: [if known]
### Key Target Interactions (from ChEMBL)
| Target | Activity Type | Value | Units |
|--------|--------------|-------|-------|
| [Target 1] | IC50 | [value] | nM |
| [Target 2] | Ki | [value] | nM |
## Drug Information (if applicable)
### Clinical Status
| Property | Value |
|----------|-------|
| **Approval Status** | [Approved/Investigational/N/A] |
| **Drug Class** | [therapeutic class] |
| **Indication** | [approved uses] |
| **Route** | [oral/IV/topical/etc.] |
### Safety
- **Black Box Warning**: [Yes/No]
- **Major Interactions**: [if any]
## Related Compounds (if retrieved)
Top 5 structurally similar compounds:
| CID | Name | Similarity | Key Difference |
|-----|------|------------|----------------|
| [cid] | [name] | 95% | [note] |
## Data Sources
- PubChem: [CID link]
- ChEMBL: [ChEMBL ID link]
- Retrieved: [date]Apply to data completeness assessment:
| Tier | Symbol | Criteria |
|---|---|---|
| Complete | ●●● | All core properties + bioactivity + drug info |
| Substantial | ●●○ | Core properties + bioactivity OR drug info |
| Basic | ●○○ | Core properties only |
| Minimal | ○○○ | CID/name only, limited data |
Include in report header:
**Data Completeness**: ●●● Complete (properties, bioactivity, drug data)Every compound profile MUST include these sections (even if "unavailable"):
User: "Tell me about metformin" → Full compound profile with drug information emphasis
User: "Verify this SMILES: CC(=O)Oc1ccccc1C(=O)O" → Disambiguation-focused profile, confirm identity
User: "Find compounds similar to ibuprofen" → Similarity search + comparative property table
User: "What proteins does gefitinib target?" → ChEMBL bioactivity emphasis with target list
| Error | Response |
|---|---|
| "Compound not found" | Try synonyms, verify spelling, offer SMILES search |
| "No ChEMBL ID" | Note in Identity section, continue with PubChem data |
| "No bioactivity data" | Include section with "No bioactivity screening data available" |
| "API timeout" | Retry once, note unavailable data with "(retrieval failed)" |
PubChem (Chemical Database)
| Tool | Purpose |
|---|---|
PubChem_get_CID_by_compound_name | Name → CID |
PubChem_get_CID_by_SMILES | Structure → CID |
PubChem_get_compound_properties_by_CID | Molecular properties |
PubChem_get_compound_2D_image_by_CID | Structure visualization |
PubChem_get_bioactivity_summary_by_CID | Activity overview |
PubChem_get_drug_label_info_by_CID | FDA drug labels |
PubChem_get_associated_patents_by_CID | IP information |
PubChem_search_compounds_by_similarity | Find analogs |
PubChem_search_compounds_by_substructure | Substructure search |
ChEMBL (Bioactivity Database)
| Tool | Purpose |
|---|---|
ChEMBL_search_compounds | Name/structure search |
ChEMBL_get_compound_by_chemblid | Compound details |
ChEMBL_get_bioactivity_by_chemblid | Activity data |
ChEMBL_get_target_by_chemblid | Protein targets |
ChEMBL_search_targets | Target search |
ChEMBL_get_assays_by_chemblid | Assay metadata |
© lamm-mit, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 2 other files (scripts) in skills/chemical-compound-retrieval of lamm-mit/scienceclaw.
Open the folder on GitHubat commit ab9aba1
Chemical Compound Retrieval next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Chemical Compound Retrieval this skilllamm-mit/scienceclaw | 246 | — | ~2.4k | Automated safety check: Pass | Apache-2.0 | |
| Tooluniverse Chemical Compound Retrievalwu-yc/LabClaw | 1.1k | 2 repos | ~2.3k | Automated safety check: Pass | None | |
| Iterative Retrievalaffaan-m/ECC | 277k | 7 repos | ~1.6k | Automated safety check: Pass | MIT | |
| Tooluniverse Chemical Safetywu-yc/LabClaw | 1.1k | 2 repos | ~7.5k | Automated safety check: Pass | None | |
| Tooluniverse Sequence Retrievalwu-yc/LabClaw | 1.1k | 2 repos | ~2.7k | Automated safety check: Pass | None | |
| Tooluniverse Expression Data Retrievalwu-yc/LabClaw | 1.1k | 2 repos | ~2.6k | Automated safety check: Pass | None |
wu-yc/LabClaw
Retrieves chemical compound information from PubChem and ChEMBL with disambiguation, cross-referencing, and quality assessment.
affaan-m/ECC
Pattern for progressively refining context retrieval to solve the subagent context problem.
wu-yc/LabClaw
Comprehensive chemical safety and toxicology assessment integrating ADMET-AI predictions, CTD toxicogenomics, FDA label safety data, DrugBank safety profiles, and STITCH chemical-protein interactions.
wu-yc/LabClaw
Retrieves biological sequences (DNA, RNA, protein) from NCBI and ENA with gene disambiguation, accession type handling, and comprehensive sequence profiles.
wu-yc/LabClaw
Retrieves gene expression and omics datasets from ArrayExpress and BioStudies with gene disambiguation, experiment quality assessment, and structured reports.
wu-yc/LabClaw
Retrieves protein structure data from RCSB PDB, PDBe, and AlphaFold with protein disambiguation, quality assessment, and comprehensive structural profiles.
lamm-mit/scienceclaw
Query FRED (Federal Reserve Economic Data) API for 800,000+ economic time series from 100+ sources.
lamm-mit/scienceclaw
Generates comprehensive drug research reports with compound disambiguation, evidence grading, and mandatory completeness sections.
lamm-mit/scienceclaw
Query and download public cancer imaging data from NCI Imaging Data Commons using idc-index.
lamm-mit/scienceclaw
Cloud-based quantum chemistry platform with Python API. An agent skill from lamm-mit/scienceclaw.
lamm-mit/scienceclaw
Create professional infographics using Nano Banana Pro AI with smart iterative refinement.
lamm-mit/scienceclaw
Generate comprehensive disease research reports using 100+ ToolUniverse tools.
ToolUniverse workflow — Chemical Compound Retrieval. An agent skill from lamm-mit/scienceclaw. Chemical Compound Retrieval is an agent skill from lamm-mit/scienceclaw.
Run `npx skills add lamm-mit/scienceclaw --skill chemical-compound-retrieval -a claude-code`. Or copy the skill folder (skills/chemical-compound-retrieval in lamm-mit/scienceclaw) into .claude/skills/chemical-compound-retrieval in your project. Claude Code loads it when a task matches its description.
Run `npx skills add lamm-mit/scienceclaw --skill chemical-compound-retrieval -a codex`. Or copy the skill folder (skills/chemical-compound-retrieval in lamm-mit/scienceclaw) into .agents/skills/chemical-compound-retrieval in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add lamm-mit/scienceclaw --skill chemical-compound-retrieval -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/chemical-compound-retrieval, .gemini/skills/chemical-compound-retrieval, .github/skills/chemical-compound-retrieval and .opencode/skills/chemical-compound-retrieval in your project.
Going by SKILL.md and its folder, Chemical Compound Retrieval needs Python for the scripts in its folder. Our summary lists: Python 3.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Chemical Compound Retrieval is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.4k tokens (SKILL.md is roughly 9.4k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Chemical Compound Retrieval: Tooluniverse Chemical Compound Retrieval (wu-yc/LabClaw, 1.1k stars), Iterative Retrieval (affaan-m/ECC, 277k stars), Tooluniverse Chemical Safety (wu-yc/LabClaw, 1.1k stars) and Tooluniverse Sequence Retrieval (wu-yc/LabClaw, 1.1k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
lamm-mit (a GitHub user) maintains it in lamm-mit/scienceclaw, which has 246 GitHub stars. The repository holds 86 skills in this directory. The repository was last updated on August 21, 2026.
Source: lamm-mit/scienceclaw on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.