CLI Tools Reference#
ToolUniverse provides several command-line tools for tool discovery, execution, server management, and data management.
tu — ToolUniverse CLI#
The primary command-line interface for discovering, inspecting, running, and testing scientific tools.
Usage:
tu [--verbose | --quiet] COMMAND [OPTIONS]
Commands:
Command |
Description |
|---|---|
|
List available tools (filter with |
|
Search tools by text or regex ( |
|
Natural-language tool search ( |
|
Show tool details (parameters, description, examples) |
|
Execute a tool (pass args as |
|
Test a tool with example inputs and report pass/fail |
|
Show ToolUniverse status (version, tool count, config) |
|
Rebuild the static tool registry after adding built-in tools |
|
Start the MCP stdio server (identical to |
Examples:
# Browse and discover tools
tu list
tu list --categories uniprot
tu grep protein --field description
tu find "protein structure analysis" --limit 5
# Inspect and run a tool
tu info UniProt_get_entry_by_accession
tu run UniProt_get_entry_by_accession accession=P12345
tu run UniProt_get_entry_by_accession '{"accession": "P12345"}'
# Test and validate
tu test Dryad_search_datasets
tu test MyAPI_search '{"q": "test"}'
# Status and maintenance
tu status
tu build
MCP Server Commands#
tooluniverse-smcp#
Start the Scientific Model Context Protocol (SMCP) server with HTTP/SSE transport.
Usage:
tooluniverse-smcp [OPTIONS]
Common Options:
Option |
Default |
Description |
|---|---|---|
|
0.0.0.0 |
Server host address |
|
7000 |
Server port |
|
False |
Enable compact tool names (40% shorter) |
|
all |
Load specific tool categories only |
|
False |
Enable output processing hooks |
|
None |
Load profile configuration (preset/workspace) |
Examples:
# Start server with all tools (default: 0.0.0.0:7000)
tooluniverse-smcp
# Start with compact mode (recommended for AI assistants)
tooluniverse-smcp --compact-mode
# Start with specific categories only
tooluniverse-smcp --categories uniprot ChEMBL opentarget
# Start with custom port
tooluniverse-smcp --port 3001
# Load workspace configuration
tooluniverse-smcp --load "community/proteomics-toolkit"
See also: MCP Support for detailed MCP integration guide
tooluniverse-smcp-stdio#
Start SMCP server with STDIO transport for desktop AI applications (Claude Desktop, Cursor, etc.).
Usage:
tooluniverse-smcp-stdio [OPTIONS]
Common Options: Same as tooluniverse-smcp except transport-related options.
Examples:
# Claude Desktop configuration (in claude_desktop_config.json)
{
"mcpServers": {
"tooluniverse": {
"command": "tooluniverse-smcp-stdio",
"args": ["--compact-mode"]
}
}
}
See also: Claude Desktop
tooluniverse-mcp#
Alias for tooluniverse-smcp-server — starts the MCP HTTP server.
Usage:
tooluniverse-mcp [OPTIONS]
This command is identical to tooluniverse-smcp-server and provided for compatibility with MCP-first workflows.
tooluniverse-smcp-server#
Starts the HTTP/SSE server (same function as tooluniverse-mcp).
Usage:
tooluniverse-smcp-server [OPTIONS]
Unlike tooluniverse-smcp (which supports --transport stdio), this command always uses HTTP transport.
tooluniverse-http-api#
Start HTTP API server for ToolUniverse class methods.
Usage:
tooluniverse-http-api [OPTIONS]
Options:
Option |
Default |
Description |
|---|---|---|
|
127.0.0.1 |
Server host address |
|
8080 |
Server port |
|
1 |
Number of worker processes |
See also: HTTP API - Remote Access
Diagnostic Tools#
tooluniverse-doctor#
Health check tool that diagnoses ToolUniverse installation and tool availability.
Usage:
tooluniverse-doctor
What it checks:
ToolUniverse installation and imports
Tool loading status (how many tool configs registered, and which failed)
Which optional dependency groups (extras) are not installed
Important
Loaded is not the same as runnable. Loading a tool registers its JSON
config; it does not install the tool’s dependencies. Tools backed by an
optional extra ([ml], [visualization], [bioinformatics], …)
are counted as loaded on a base pip install tooluniverse and only fail
when you actually run them. tooluniverse-doctor reports both numbers so
a partial install is not mistaken for a complete one.
Example Output:
Checking ToolUniverse health...
Total tools: 2599
Config loaded: 2599
Failed to load: 0
7 optional dependency group(s) not installed:
[ml] - up to 11 tool(s) may not run
Missing: admet-ai, sentence-transformers
Fix: pip install 'tooluniverse[ml]'
[bioinformatics] - up to 14 tool(s) may not run
Missing: biopython, freesasa
Fix: pip install 'tooluniverse[bioinformatics]'
Note: tool counts above are an upper bound - a few tools use these
packages only as an enhancement and still work without them.
When nothing failed to load and every extra is installed, the report ends with
All tools loaded and every optional dependency group is installed!.
tu status shows the same missing-extras summary in short form, and
tu status --json exposes it as a missing_extras field for scripting.
Use cases:
After fresh installation to verify setup
Debugging tool loading issues
Before important analyses to ensure all needed tools are available
Identifying missing optional dependencies
Data Management Tools#
tu-datastore#
Manage local searchable datastores for building custom tool collections with semantic search.
Usage:
tu-datastore COMMAND [OPTIONS]
Commands:
build#
Build or extend a collection from JSON documents.
Usage:
tu-datastore build --collection NAME --docs-json PATH [OPTIONS]
Options:
Option |
Description |
|---|---|
|
Collection name (required) |
|
Path to JSON file with documents (required) |
|
Optional path to SQLite database (default: ~/.tooluniverse/embeddings/<name>.db) |
|
Embedding provider: openai, azure, huggingface, local |
|
Embedding model name |
|
Rebuild FAISS index if exists |
Example:
tu-datastore build \
--collection my_research \
--docs-json ./documents.json \
--provider openai \
--model text-embedding-3-small
quickbuild#
Build a collection from a folder of text files (.txt/.md).
Usage:
tu-datastore quickbuild --name NAME --from-folder PATH [OPTIONS]
Example:
tu-datastore quickbuild \
--name my_notes \
--from-folder ~/Documents/research/ \
--provider openai \
--model text-embedding-3-small
search#
Query an existing collection.
Usage:
tu-datastore search --collection NAME --query TEXT [OPTIONS]
Options:
Option |
Description |
|---|---|
|
Collection name (required) |
|
Search query text (required) |
|
Search method: keyword, embedding, hybrid (default: hybrid) |
|
Number of results to return (default: 10) |
|
Hybrid mix weight (default: 0.5) |
Example:
tu-datastore search \
--collection my_research \
--query "protein folding mechanisms" \
--method hybrid \
--top-k 5
sync-hf#
Upload/download datastore artifacts to/from Hugging Face.
Upload Usage:
tu-datastore sync-hf upload --collection NAME [OPTIONS]
Upload Options:
Option |
Description |
|---|---|
|
Collection name (required) |
|
HF dataset repo ID (default: <username>/<collection>) |
|
Make dataset private (default: True) |
|
Path(s) to tool JSON file(s) to include |
Download Usage:
tu-datastore sync-hf download --repo REPO --collection NAME [OPTIONS]
Example:
# Upload to Hugging Face
tu-datastore sync-hf upload \
--collection my_research \
--repo myusername/my-research-tools \
--private
# Download from Hugging Face
tu-datastore sync-hf download \
--repo myusername/my-research-tools \
--collection my_research \
--include-tools
add-tool#
Register a tool JSON in ~/.tooluniverse/data/user_tools for auto-loading.
Usage:
tu-datastore add-tool PATH [OPTIONS]
Options:
Option |
Description |
|---|---|
|
Path to tool JSON file (required) |
|
Custom filename (default: source filename) |
|
Overwrite if file exists |
Example:
tu-datastore add-tool ./my_custom_tool.json --name custom_tool.json
Use case: Create custom tools that will be automatically loaded by ToolUniverse without modifying the installation.
Expert Feedback Tools#
tooluniverse-expert-feedback#
Start the human expert feedback MCP server for validation workflows.
Usage:
tooluniverse-expert-feedback
This starts an MCP server that provides tools for collecting human expert feedback on scientific analyses.
See also: Remote tools documentation
tooluniverse-expert-feedback-web#
Start the web interface for human expert feedback system.
Usage:
tooluniverse-expert-feedback-web
Opens a web interface where human experts can review and validate scientific tool outputs.
Utility Commands#
generate-mcp-tools#
Generate MCP tool configurations from ToolUniverse tool definitions.
Usage:
generate-mcp-tools [OPTIONS]
This tool helps convert ToolUniverse tool specifications into MCP-compatible format for custom integrations.
Note
This is an advanced tool for developers extending ToolUniverse. Most users should use the built-in MCP servers instead.
Environment Variables#
CLI tools respect these environment variables:
Embedding Configuration (for tu-datastore):
EMBED_PROVIDER- Embedding provider (openai, azure, huggingface, local)EMBED_MODEL- Embedding model nameOPENAI_API_KEY- OpenAI API key (if using OpenAI embeddings)HF_TOKEN- Hugging Face token (if using HF embeddings)
See also: Environment Variables Reference for complete reference
Troubleshooting#
Server won’t start#
Problem: Server fails to start or exits immediately.
Solutions:
Check if port is already in use:
lsof -i :7000 # Check if port 7000 is busyRun health check:
tooluniverse-doctorTry different port:
tooluniverse-smcp --port 8001
Tools not loading#
Problem: tooluniverse-doctor shows tools that failed to load, or
optional dependency groups that are not installed.
Solution: Install missing dependencies:
# Install all optional dependencies
pip install 'tooluniverse[all]'
# Or just the group the doctor named
pip install 'tooluniverse[ml]'
# Or follow the specific installation instructions from doctor output
Note
[all] covers dev, docs, graph, visualization, space, embedding, ml,
bioinformatics. It does not include singlecell, smolagents,
client, or build — install those by name, e.g.
pip install 'tooluniverse[singlecell]'.
Command not found#
Problem: CLI commands are not recognized.
Solution: Ensure ToolUniverse is installed correctly:
pip install --upgrade tooluniverse
# Verify installation
python -c "from tooluniverse import ToolUniverse; print('OK')"
See Also#
Python Guide - Installation and Python API guide
MCP Support - MCP integration guide
Troubleshooting Tutorial - Troubleshooting guide
Environment Variables Reference - Environment variables reference
API Keys and Authentication - API keys configuration