ToolUniverse
Overview
ToolUniverse is a unified ecosystem that enables AI agents to function as research scientists by providing standardized access to 600+ scientific resources. Use this skill to discover, execute, and compose scientific tools across multiple research domains including bioinformatics, cheminformatics, genomics, structural biology, proteomics, and drug discovery.
Key Capabilities:
- Access 600+ scientific tools, models, datasets, and APIs
- Discover tools using natural language, semantic search, or keywords
- Execute tools through standardized AI-Tool Interaction Protocol
- Compose multi-step workflows for complex research problems
- Integration with Claude Desktop/Code via Model Context Protocol (MCP)
When to Use This Skill
Use this skill when:
- Searching for scientific tools by function or domain (e.g., "find protein structure prediction tools")
- Executing computational biology workflows (e.g., disease target identification, drug discovery, genomics analysis)
- Accessing scientific databases (OpenTargets, PubChem, UniProt, PDB, ChEMBL, KEGG, etc.)
- Composing multi-step research pipelines (e.g., target discovery → structure prediction → virtual screening)
- Working with bioinformatics, cheminformatics, or structural biology tasks
- Analyzing gene expression, protein sequences, molecular structures, or clinical data
- Performing literature searches, pathway enrichment, or variant annotation
- Building automated scientific research workflows
Quick Start
Basic Setup
from tooluniverse import ToolUniverse
# Initialize and load tools
tu = ToolUniverse()
tu.load_tools() # Loads 600+ scientific tools
# Discover tools
tools = tu.run({
"name": "Tool_Finder_Keyword",
"arguments": {
"description": "disease target associations",
"limit": 10
}
})
# Execute a tool
result = tu.run({
"name": "OpenTargets_get_associated_targets_by_disease_efoId",
"arguments": {"efoId": "EFO_0000537"} # Hypertension
})
Model Context Protocol (MCP)
For Claude Desktop/Code integration:
tooluniverse-smcp
Core Workflows
1. Tool Discovery
Find relevant tools for your research task:
Three discovery methods:
Tool_Finder - Embedding-based semantic search (requires GPU)
Tool_Finder_LLM - LLM-based semantic search (no GPU required)
Tool_Finder_Keyword - Fast keyword search
Example:
# Search by natural language description
tools = tu.run({
"name": "Tool_Finder_LLM",
"arguments": {
"description": "Find tools for RNA sequencing differential expression analysis",
"limit": 10
}
})
# Review available tools
for tool in tools:
print(f"{tool['name']}: {tool['description']}")
See references/tool-discovery.md for:
- Detailed discovery methods and search strategies
- Domain-specific keyword suggestions
- Best practices for finding tools
2. Tool Execution
Execute individual tools through the standardized interface:
Example:
# Execute disease-target lookup
targets = tu.run({
"name": "OpenTargets_get_associated_targets_by_disease_efoId",
"arguments": {"efoId": "EFO_0000616"} # Breast cancer
})
# Get protein structure
structure = tu.run({
"name": "AlphaFold_get_structure",
"arguments": {"uniprot_id": "P12345"}
})
# Calculate molecular properties
properties = tu.run({
"name": "RDKit_calculate_descriptors",
"arguments": {"smiles": "CCO"} # Ethanol
})
See references/tool-execution.md for:
- Real-world execution examples across domains
- Tool parameter handling and validation
- Result processing and error handling
- Best practices for production use
3. Tool Composition and Workflows
Compose multiple tools for complex research workflows:
Drug Discovery Example:
# 1. Find disease targets
targets = tu.run({
"name": "OpenTargets_get_associated_targets_by_disease_efoId",
"arguments": {"efoId": "EFO_0000616"}
})
# 2. Get protein structures
structures = []
for target in targets[:5]:
structure = tu.run({
"name": "AlphaFold_get_structure",
"arguments": {"uniprot_id": target['uniprot_id']}
})
structures.append(structure)
# 3. Screen compounds
hits = []
for structure in structures:
compounds = tu.run({
"name": "ZINC_virtual_screening",
"arguments": {
"structure": structure,
"library": "lead-like",
"top_n": 100
}
})
hits.extend(compounds)
# 4. Evaluate drug-likeness
drug_candidates = []
for compound in hits:
props = tu.run({
"name": "RDKit_calculate_drug_properties",
"arguments": {"smiles": compound['smiles']}
})
if props['lipinski_pass']:
drug_candidates.append(compound)
See references/tool-composition.md for:
- Complete workflow examples (drug discovery, genomics, clinical)
- Sequential and parallel tool composition patterns
- Output processing hooks
- Workflow best practices
Scientific Domains
ToolUniverse supports 600+ tools across major scientific domains:
Bioinformatics:
- Sequence analysis, alignment, BLAST
- Gene expression (RNA-seq, DESeq2)
- Pathway enrichment (KEGG, Reactome, GO)
- Variant annotation (VEP, ClinVar)
Cheminformatics:
- Molecular descriptors and fingerprints
- Drug discovery and virtual screening
- ADMET prediction and drug-likeness
- Chemical databases (PubChem, ChEMBL, ZINC)
Structural Biology:
- Protein structure prediction (AlphaFold)
- Structure retrieval (PDB)
- Binding site detection
- Protein-protein interactions
Proteomics:
- Mass spectrometry analysis
- Protein databases (UniProt, STRING)
- Post-translational modifications
Genomics:
- Genome assembly and annotation
- Copy number variation
- Clinical genomics workflows
Medical/Clinical:
- Disease databases (OpenTargets, OMIM)
- Clinical trials and FDA data
- Variant classification
See references/domains.md for:
- Complete domain categorization
- Tool examples by discipline
- Cross-domain applications
- Search strategies by domain
Reference Documentation
This skill includes comprehensive reference files that provide detailed information for specific aspects:
references/installation.md - Installation, setup, MCP configuration, platform integration
references/tool-discovery.md - Discovery methods, search strategies, listing tools
references/tool-execution.md - Execution patterns, real-world examples, error handling
references/tool-composition.md - Workflow composition, complex pipelines, parallel execution
references/domains.md - Tool categorization by domain, use case examples
references/api_reference.md - Python API documentation, hooks, protocols
Workflow: When helping with specific tasks, reference the appropriate file for detailed instructions. For example, if searching for tools, consult references/tool-discovery.md for search strategies.
Example Scripts
Two executable example scripts demonstrate common use cases:
scripts/example_tool_search.py - Demonstrates all three discovery methods:
- Keyword-based search
- LLM-based search
- Domain-specific searches
- Getting detailed tool information
scripts/example_workflow.py - Complete workflow examples:
- Drug discovery pipeline (disease → targets → structures → screening → candidates)
- Genomics analysis (expression data → differential analysis → pathways)
Run examples to understand typical usage patterns and workflow composition.
Best Practices
Tool Discovery:
- Start with broad searches, then refine based on results
- Use
Tool_Finder_Keyword for fast searches with known terms
- Use
Tool_Finder_LLM for complex semantic queries
- Set appropriate
limit parameter (default: 10)
Tool Execution:
- Always verify tool parameters before execution
- Implement error handling for production workflows
- Validate input data formats (SMILES, UniProt IDs, gene symbols)
- Check result types and structures
Workflow Composition:
- Test each step individually before composing full workflows
- Implement checkpointing for long workflows
- Consider rate limits for remote APIs
- Use parallel execution when tools are independent
Integration:
- Initialize ToolUniverse once and reuse the instance
- Call
load_tools() once at startup
- Cache frequently used tool information
- Enable logging for debugging
Key Terminology
- Tool: A scientific resource (model, dataset, API, package) accessible through ToolUniverse
- Tool Discovery: Finding relevant tools using search methods (Finder, LLM, Keyword)
- Tool Execution: Running a tool with specific arguments via
tu.run()
- Tool Composition: Chaining multiple tools for multi-step workflows
- MCP: Model Context Protocol for integration with Claude Desktop/Code
- AI-Tool Interaction Protocol: Standardized interface for LLM-tool communication
Resources
1---2name: tooluniverse3description: Use this skill when working with scientific research tools and workflows across bioinformatics, cheminformatics, genomics, structural biology, proteomics, and drug discovery. This skill provides access to 600+ scientific tools including machine learning models, datasets, APIs, and analysis packages. Use when searching for scientific tools, executing computational biology workflows, composing multi-step research pipelines, accessing databases like OpenTargets/PubChem/UniProt/PDB/ChEMBL, performing tool discovery for research tasks, or integrating scientific computational resources into LLM workflows.4---5
6# ToolUniverse
7
8## Overview
9
10ToolUniverse is a unified ecosystem that enables AI agents to function as research scientists by providing standardized access to 600+ scientific resources. Use this skill to discover, execute, and compose scientific tools across multiple research domains including bioinformatics, cheminformatics, genomics, structural biology, proteomics, and drug discovery.
11
12**Key Capabilities:**
13- Access 600+ scientific tools, models, datasets, and APIs
14- Discover tools using natural language, semantic search, or keywords
15- Execute tools through standardized AI-Tool Interaction Protocol
16- Compose multi-step workflows for complex research problems
17- Integration with Claude Desktop/Code via Model Context Protocol (MCP)
18
19## When to Use This Skill
20
21Use this skill when:
22- Searching for scientific tools by function or domain (e.g., "find protein structure prediction tools")
23- Executing computational biology workflows (e.g., disease target identification, drug discovery, genomics analysis)
24- Accessing scientific databases (OpenTargets, PubChem, UniProt, PDB, ChEMBL, KEGG, etc.)
25- Composing multi-step research pipelines (e.g., target discovery → structure prediction → virtual screening)
26- Working with bioinformatics, cheminformatics, or structural biology tasks
27- Analyzing gene expression, protein sequences, molecular structures, or clinical data
28- Performing literature searches, pathway enrichment, or variant annotation
29- Building automated scientific research workflows
30
31## Quick Start
32
33### Basic Setup
34```python
35from tooluniverse import ToolUniverse
36
37# Initialize and load tools
38tu = ToolUniverse()
39tu.load_tools() # Loads 600+ scientific tools
40
41# Discover tools
42tools = tu.run({
43 "name": "Tool_Finder_Keyword",
44 "arguments": {
45 "description": "disease target associations",
46 "limit": 10
47 }
48})
49
50# Execute a tool
51result = tu.run({
52 "name": "OpenTargets_get_associated_targets_by_disease_efoId",
53 "arguments": {"efoId": "EFO_0000537"} # Hypertension
54})
55```
56
57### Model Context Protocol (MCP)
58For Claude Desktop/Code integration:
59```bash
60tooluniverse-smcp
61```
62
63## Core Workflows
64
65### 1. Tool Discovery
66
67Find relevant tools for your research task:
68
69**Three discovery methods:**
70- `Tool_Finder` - Embedding-based semantic search (requires GPU)
71- `Tool_Finder_LLM` - LLM-based semantic search (no GPU required)
72- `Tool_Finder_Keyword` - Fast keyword search
73
74**Example:**
75```python
76# Search by natural language description
77tools = tu.run({
78 "name": "Tool_Finder_LLM",
79 "arguments": {
80 "description": "Find tools for RNA sequencing differential expression analysis",
81 "limit": 10
82 }
83})
84
85# Review available tools
86for tool in tools:
87 print(f"{tool['name']}: {tool['description']}")
88```
89
90**See `references/tool-discovery.md` for:**
91- Detailed discovery methods and search strategies
92- Domain-specific keyword suggestions
93- Best practices for finding tools
94
95### 2. Tool Execution
96
97Execute individual tools through the standardized interface:
98
99**Example:**
100```python
101# Execute disease-target lookup
102targets = tu.run({
103 "name": "OpenTargets_get_associated_targets_by_disease_efoId",
104 "arguments": {"efoId": "EFO_0000616"} # Breast cancer
105})
106
107# Get protein structure
108structure = tu.run({
109 "name": "AlphaFold_get_structure",
110 "arguments": {"uniprot_id": "P12345"}
111})
112
113# Calculate molecular properties
114properties = tu.run({
115 "name": "RDKit_calculate_descriptors",
116 "arguments": {"smiles": "CCO"} # Ethanol
117})
118```
119
120**See `references/tool-execution.md` for:**
121- Real-world execution examples across domains
122- Tool parameter handling and validation
123- Result processing and error handling
124- Best practices for production use
125
126### 3. Tool Composition and Workflows
127
128Compose multiple tools for complex research workflows:
129
130**Drug Discovery Example:**
131```python
132# 1. Find disease targets
133targets = tu.run({
134 "name": "OpenTargets_get_associated_targets_by_disease_efoId",
135 "arguments": {"efoId": "EFO_0000616"}
136})
137
138# 2. Get protein structures
139structures = []
140for target in targets[:5]:
141 structure = tu.run({
142 "name": "AlphaFold_get_structure",
143 "arguments": {"uniprot_id": target['uniprot_id']}
144 })
145 structures.append(structure)
146
147# 3. Screen compounds
148hits = []
149for structure in structures:
150 compounds = tu.run({
151 "name": "ZINC_virtual_screening",
152 "arguments": {
153 "structure": structure,
154 "library": "lead-like",
155 "top_n": 100
156 }
157 })
158 hits.extend(compounds)
159
160# 4. Evaluate drug-likeness
161drug_candidates = []
162for compound in hits:
163 props = tu.run({
164 "name": "RDKit_calculate_drug_properties",
165 "arguments": {"smiles": compound['smiles']}
166 })
167 if props['lipinski_pass']:
168 drug_candidates.append(compound)
169```
170
171**See `references/tool-composition.md` for:**
172- Complete workflow examples (drug discovery, genomics, clinical)
173- Sequential and parallel tool composition patterns
174- Output processing hooks
175- Workflow best practices
176
177## Scientific Domains
178
179ToolUniverse supports 600+ tools across major scientific domains:
180
181**Bioinformatics:**
182- Sequence analysis, alignment, BLAST
183- Gene expression (RNA-seq, DESeq2)
184- Pathway enrichment (KEGG, Reactome, GO)
185- Variant annotation (VEP, ClinVar)
186
187**Cheminformatics:**
188- Molecular descriptors and fingerprints
189- Drug discovery and virtual screening
190- ADMET prediction and drug-likeness
191- Chemical databases (PubChem, ChEMBL, ZINC)
192
193**Structural Biology:**
194- Protein structure prediction (AlphaFold)
195- Structure retrieval (PDB)
196- Binding site detection
197- Protein-protein interactions
198
199**Proteomics:**
200- Mass spectrometry analysis
201- Protein databases (UniProt, STRING)
202- Post-translational modifications
203
204**Genomics:**
205- Genome assembly and annotation
206- Copy number variation
207- Clinical genomics workflows
208
209**Medical/Clinical:**
210- Disease databases (OpenTargets, OMIM)
211- Clinical trials and FDA data
212- Variant classification
213
214**See `references/domains.md` for:**
215- Complete domain categorization
216- Tool examples by discipline
217- Cross-domain applications
218- Search strategies by domain
219
220## Reference Documentation
221
222This skill includes comprehensive reference files that provide detailed information for specific aspects:
223
224- **`references/installation.md`** - Installation, setup, MCP configuration, platform integration
225- **`references/tool-discovery.md`** - Discovery methods, search strategies, listing tools
226- **`references/tool-execution.md`** - Execution patterns, real-world examples, error handling
227- **`references/tool-composition.md`** - Workflow composition, complex pipelines, parallel execution
228- **`references/domains.md`** - Tool categorization by domain, use case examples
229- **`references/api_reference.md`** - Python API documentation, hooks, protocols
230
231**Workflow:** When helping with specific tasks, reference the appropriate file for detailed instructions. For example, if searching for tools, consult `references/tool-discovery.md` for search strategies.
232
233## Example Scripts
234
235Two executable example scripts demonstrate common use cases:
236
237**`scripts/example_tool_search.py`** - Demonstrates all three discovery methods:
238- Keyword-based search
239- LLM-based search
240- Domain-specific searches
241- Getting detailed tool information
242
243**`scripts/example_workflow.py`** - Complete workflow examples:
244- Drug discovery pipeline (disease → targets → structures → screening → candidates)
245- Genomics analysis (expression data → differential analysis → pathways)
246
247Run examples to understand typical usage patterns and workflow composition.
248
249## Best Practices
250
2511. **Tool Discovery:**
252 - Start with broad searches, then refine based on results
253 - Use `Tool_Finder_Keyword` for fast searches with known terms
254 - Use `Tool_Finder_LLM` for complex semantic queries
255 - Set appropriate `limit` parameter (default: 10)
256
2572. **Tool Execution:**
258 - Always verify tool parameters before execution
259 - Implement error handling for production workflows
260 - Validate input data formats (SMILES, UniProt IDs, gene symbols)
261 - Check result types and structures
262
2633. **Workflow Composition:**
264 - Test each step individually before composing full workflows
265 - Implement checkpointing for long workflows
266 - Consider rate limits for remote APIs
267 - Use parallel execution when tools are independent
268
2694. **Integration:**
270 - Initialize ToolUniverse once and reuse the instance
271 - Call `load_tools()` once at startup
272 - Cache frequently used tool information
273 - Enable logging for debugging
274
275## Key Terminology
276
277- **Tool**: A scientific resource (model, dataset, API, package) accessible through ToolUniverse
278- **Tool Discovery**: Finding relevant tools using search methods (Finder, LLM, Keyword)
279- **Tool Execution**: Running a tool with specific arguments via `tu.run()`
280- **Tool Composition**: Chaining multiple tools for multi-step workflows
281- **MCP**: Model Context Protocol for integration with Claude Desktop/Code
282- **AI-Tool Interaction Protocol**: Standardized interface for LLM-tool communication
283
284## Resources
285
286- **Official Website**: https://aiscientist.tools
287- **GitHub**: https://github.com/mims-harvard/ToolUniverse
288- **Documentation**: https://zitniklab.hms.harvard.edu/ToolUniverse/
289- **Installation**: `uv uv pip install tooluniverse`
290- **MCP Server**: `tooluniverse-smcp`