askill
setup-tooluniverse

setup-tooluniverseSafety 92Repository

Install and configure ToolUniverse with MCP integration for any AI coding client (Cursor, Claude Desktop, Windsurf, VS Code, Codex, Gemini CLI, Trae, Cline, Antigravity, OpenCode, etc.). Covers uv/uvx setup, MCP configuration, API key walkthrough, skill installation, and upgrading. Use when setting up ToolUniverse, configuring MCP servers, troubleshooting installation issues, upgrading versions, or when user mentions installing ToolUniverse or setting up scientific tools.

1k stars
20.6k downloads
Updated 2/24/2026

Package Files

Loading files...
SKILL.md

Setup ToolUniverse

Guide the user step-by-step through setting up ToolUniverse with MCP (Model Context Protocol) integration.

Agent Behavior

Be friendly, conversational, and interactive. This is a setup wizard, not a reference manual.

  • Detect the user's language from their first message. If they write in Chinese, Japanese, Spanish, etc., respond in that language throughout the entire setup. All explanations, questions, and celebrations should be in their language. Only keep commands, code blocks, URLs, and env variable names in English (those are technical and must stay as-is).
  • Go one step at a time. Don't dump all steps at once.
  • Ask before proceeding to the next step. Confirm the previous step worked.
  • Use the AskQuestion tool for structured choices when available (client selection, research areas, etc.).
  • Explain briefly what each step does and why, in plain language.
  • When something goes wrong, be reassuring and help troubleshoot before moving on.
  • Celebrate small wins -- when uv installs successfully, when the MCP server appears, when the first tool call works.

Internal Notes (do not show to user)

⚠️ ToolUniverse has 1200+ tools which will cause context window overflow if all exposed directly. The default tooluniverse command already enables compact mode automatically.

Compact mode exposes only 5 core tools (list_tools, grep_tools, get_tool_info, execute_tool, find_tools) while keeping all 1200+ tools accessible via execute_tool.

Step 0: Welcome & Discovery

Start by welcoming the user and asking two questions to tailor the setup:

Question 1: Which app are you using?

Use AskQuestion if available:

  • Cursor
  • Claude Desktop
  • VS Code / Copilot
  • Windsurf
  • Claude Code
  • Gemini CLI
  • Codex (OpenAI)
  • Cline
  • Trae
  • Antigravity
  • OpenCode
  • Other

Question 2: How will you use ToolUniverse?

  • MCP server (use scientific tools through chat) -- this is the default for most users
  • Python coding (write scripts that import tooluniverse) -- also needs pip install

For MCP-only users, only uv is needed. uvx automatically installs and runs ToolUniverse.

For coding use, also ask about Python version (python3 --version, needs >=3.10, <3.14).

Installation Workflow

Step 1: Make sure uv is installed

First, check if the user already has uv (a fast Python package manager). Run this for them:

which uv || echo "uv not installed"

If it's already installed, let them know and move on. If not, explain that uv is a fast package manager that makes MCP setup simple, then install it:

curl -LsSf https://astral.sh/uv/install.sh | sh

Confirm it worked before moving to the next step.

Step 2: Add ToolUniverse to your MCP config

Now we'll add ToolUniverse to your app's MCP configuration. Based on the client the user chose in Step 0, help them find and edit the right config file. All clients use the same server config -- only the file location differs.

MCP Server Configuration (same for all clients)

Default method: Using uvx (Recommended)

{
  "mcpServers": {
    "tooluniverse": {
      "command": "uvx",
      "args": ["tooluniverse"],
      "env": {
        "PYTHONIOENCODING": "utf-8"
      }
    }
  }
}

uvx tooluniverse automatically installs and runs ToolUniverse with compact mode enabled by default (the tooluniverse entry point enables --compact-mode automatically). No separate pip install step required.

Alternative: Using a pre-installed command (if user already has ToolUniverse installed via pip)

{
  "mcpServers": {
    "tooluniverse": {
      "command": "tooluniverse",
      "args": [],
      "env": {
        "PYTHONIOENCODING": "utf-8"
      }
    }
  }
}

Config File Locations by Client

ClientConfig File (macOS)How to Access
Cursor~/.cursor/mcp.jsonSettings → MCP → Add new global MCP server
Claude Desktop~/Library/Application Support/Claude/claude_desktop_config.jsonSettings → Developer → Edit Config
Claude Code~/.claude.json (user) or .mcp.json (project)claude mcp add CLI or edit directly
Windsurf~/.codeium/windsurf/mcp_config.jsonClick MCP hammer icon → Configure
VS Code (Copilot).vscode/mcp.json (workspace) or user profile mcp.jsonCmd Palette → "MCP: Add Server" (see different format below)
Clinecline_mcp_settings.json (in VS Code extension globalStorage)Cline panel → MCP Servers → Configure
Codex (OpenAI)~/.codex/config.tomlCreate/edit manually (TOML format, see below)
Gemini CLI~/.gemini/settings.json (user) or .gemini/settings.json (project)gemini mcp add CLI or edit directly
Antigravitymcp_config.json"..." dropdown → Manage MCP Servers → View raw config
Trae.trae/mcp.json (project) or global via Trae UICtrl+U → AI Management → MCP → Configure Manually
OpenCode~/.config/opencode/opencode.json or opencode.json (project)Edit directly

Windows/Linux paths differ -- check your client's documentation for the exact location.

Most clients use the same JSON mcpServers format shown above. Exceptions: VS Code uses "servers" key, Codex uses TOML, and OpenCode uses a "mcp" key -- see below for their specific formats.

Clients with Different Config Formats

VS Code (Copilot) -- uses "servers" key (not "mcpServers") and requires "type" field. Add to .vscode/mcp.json:

{
  "servers": {
    "tooluniverse": {
      "type": "stdio",
      "command": "uvx",
      "args": ["tooluniverse"],
      "env": { "PYTHONIOENCODING": "utf-8" }
    }
  }
}

Codex (TOML format) -- add to ~/.codex/config.toml:

[mcp_servers.tooluniverse]
command = "uvx"
args = ["tooluniverse"]
env = { "PYTHONIOENCODING" = "utf-8" }

OpenCode -- uses mcp key with type and command as array in opencode.json:

{
  "mcp": {
    "tooluniverse": {
      "type": "local",
      "command": ["uvx", "tooluniverse"],
      "enabled": true,
      "environment": { "PYTHONIOENCODING": "utf-8" }
    }
  }
}

Step 3 (Only if user chose coding use): Install Python package

Skip this if the user only needs MCP. For coding use, install into their Python environment:

pip install tooluniverse

Then verify together:

from tooluniverse import ToolUniverse
tu = ToolUniverse()
print(f"ToolUniverse version: {tu.__version__}")

Let them know this is separate from the MCP server -- uvx installs into uv's cache, while pip install puts it in their Python environment for importing.

Step 4: Set up API Keys

Many tools work without API keys, but some unlock powerful features. Before diving into keys, ask the user about their research interests to recommend only what's relevant.

Read API_KEYS_REFERENCE.md for detailed per-key info (what it does, step-by-step registration, which tools need it).

How to guide API key setup

  1. Ask the user what research areas they're interested in. Use AskQuestion if available with options like:

    • Literature search & publications
    • Drug discovery & pharmacology
    • Protein structure & interactions
    • Genomics & disease associations
    • Rare diseases & clinical
    • Enzymology & biochemistry
    • Patent search
    • AI-powered analysis (needs LLM key)
    • All of the above
    • Not sure yet / skip for now
  2. Map their answer to recommended keys using the tiers below. Don't overwhelm -- suggest 2-4 keys to start.

  3. Walk through each key one at a time:

    • Explain in plain language what it unlocks (e.g., "This lets you search PubMed faster")
    • Give them the registration link
    • Wait for them to sign up and get the key
    • Help them add it to their config file
    • Move to the next key
  4. After all keys are added, restart the app and test one key with a real tool call.

  5. Let them know they can always come back to add more keys later.

Tier 1: Core Scientific Keys (Recommended for most users)

KeyServiceWhat It UnlocksFree?Registration
NCBI_API_KEYNCBI/PubMedPubMed literature search (raises rate limit 3->10 req/s)Yeshttps://account.ncbi.nlm.nih.gov/settings/
NVIDIA_API_KEYNVIDIA NIM16 tools: AlphaFold2 structure prediction, molecular docking, genomicsYeshttps://build.nvidia.com
BIOGRID_API_KEYBioGRIDProtein-protein interaction queriesYeshttps://webservice.thebiogrid.org/
DISGENET_API_KEYDisGeNET5 gene-disease association toolsYes (academic)https://disgenet.com/academic-apply

Tier 2: Specialized Scientific Keys (Based on research needs)

KeyServiceWhat It UnlocksFree?Registration
OMIM_API_KEYOMIM4 Mendelian/rare disease toolsYeshttps://omim.org/api
ONCOKB_API_TOKENOncoKBPrecision oncology annotationsYes (academic)https://www.oncokb.org/apiAccess
UMLS_API_KEYUMLS/NLM5 medical terminology & concept mapping toolsYeshttps://uts.nlm.nih.gov/uts/
USPTO_API_KEYUSPTO6 patent search & analysis toolsYeshttps://account.uspto.gov/api-manager/
SEMANTIC_SCHOLAR_API_KEYSemantic ScholarLiterature search (raises rate limit 1->100 req/s)Yeshttps://www.semanticscholar.org/product/api
FDA_API_KEYopenFDADrug/food/device adverse event queries (raises limit 240->1000 req/min)Yeshttps://open.fda.gov/apis/authentication/
BRENDA_EMAIL + BRENDA_PASSWORDBRENDA3 enzyme database tools (both email and password required)Yeshttps://brenda-enzymes.org/register.php
MOUSER_API_KEYMouser Electronics4 electronic component search tools (ICs, resistors, capacitors, etc.)Yeshttps://www.mouser.com/api-search/
DIGIKEY_CLIENT_ID + DIGIKEY_CLIENT_SECRETDigi-Key Electronics4 component search tools with parametric search (both ID and secret required)Yeshttps://developer.digikey.com/

Tier 3: LLM Provider Keys (For agentic tool features)

At least one LLM key is needed for agentic features. The system tries providers in order: Azure OpenAI -> OpenRouter -> Gemini.

KeyServiceWhat It UnlocksFree Tier?Registration
GEMINI_API_KEYGoogle GeminiAgentic tools via Gemini (good free tier)Yeshttps://aistudio.google.com/apikey
OPENROUTER_API_KEYOpenRouterAgentic tools via 100+ LLM modelsPay-per-usehttps://openrouter.ai/
OPENAI_API_KEYOpenAIEmbedding features, LLM-based tool findingPay-per-usehttps://platform.openai.com/
AZURE_OPENAI_API_KEYAzure OpenAIAgentic tools via Azure (enterprise)Pay-per-useAzure Portal
ANTHROPIC_API_KEYAnthropic ClaudeClaude-based featuresPay-per-usehttps://console.anthropic.com/
HF_TOKENHuggingFaceModel/dataset access, HF Inference APIYeshttps://huggingface.co/settings/tokens

Adding Keys to Configuration

Best approach: Add to the env block in your MCP config file (the same file from Step 2). This way keys are passed directly to the MCP server:

"env": {
  "PYTHONIOENCODING": "utf-8",
  "NCBI_API_KEY": "your_key_here",
  "NVIDIA_API_KEY": "your_key_here"
}

Alternative: Create a .env file in your project directory with KEY=value pairs.

After adding keys: Restart the app for changes to take effect.

Verify keys work

Test each configured key with a real tool call:

  • NCBI_API_KEY -> execute_tool("PubMed_search_articles", {"query": "CRISPR", "max_results": 1})
  • NVIDIA_API_KEY -> execute_tool("NvidiaNIM_alphafold2_predict", {"sequence": "MKTVRQERLKS"})
  • BIOGRID_API_KEY -> execute_tool("BioGRID_get_interactions", {"geneList": "TP53", "taxId": 9606})
  • MOUSER_API_KEY -> execute_tool("Mouser_search_by_part_number", {"part_number": "STM32F103C8T6"})
  • DIGIKEY_CLIENT_ID + DIGIKEY_CLIENT_SECRET -> execute_tool("DigiKey_search_by_keyword", {"keywords": "STM32"})

Step 5: Test it together

Time to see it in action! Ask the user to restart their app, then try a real tool call together:

  1. Restart the app (Cursor/Claude Desktop/etc.) so the new MCP config is picked up
  2. Check the MCP server appears in the server list
  3. Run a test call -- suggest something relevant to their research interests:
    • General: grep_tools with keyword "protein" or list_tools
    • Literature: execute_tool("PubMed_search_articles", {"query": "CRISPR", "max_results": 1})
    • Drug discovery: execute_tool("ChEMBL_search_compound", {"query": "aspirin"})

If it works, celebrate and move to Step 6. If something goes wrong, check the Common Issues section below.

Step 6: Install ToolUniverse Skills (Highly Recommended)

Strongly recommend this step. Skills are pre-built research workflows that teach the AI how to conduct comprehensive scientific research -- they turn basic tool calls into expert-level investigations.

Explain to the user: "ToolUniverse comes with 19 research skills that act like expert guides. For example, the drug-research skill knows exactly which tools to call, in what order, to build a complete drug profile. Without skills, you'd need to figure out which of the 1200+ tools to use yourself."

Available Skills

SkillWhat It Does
tooluniverseGeneral strategies for using 1200+ tools effectively
tooluniverse-drug-researchComprehensive drug profiling (identity, pharmacology, safety, ADMET)
tooluniverse-target-researchDrug target intelligence (structure, interactions, druggability)
tooluniverse-disease-researchSystematic disease analysis across 10 research dimensions
tooluniverse-literature-deep-researchThorough literature reviews with evidence grading
tooluniverse-drug-repurposingFind new therapeutic uses for existing drugs
tooluniverse-precision-oncologyMutation-based treatment recommendations for cancer
tooluniverse-rare-disease-diagnosisPhenotype-to-diagnosis for suspected rare diseases
tooluniverse-pharmacovigilanceDrug safety signal analysis from FDA adverse event data
tooluniverse-infectious-diseaseRapid pathogen characterization & drug repurposing
tooluniverse-protein-structure-retrievalProtein 3D structure retrieval & quality assessment
tooluniverse-sequence-retrievalDNA/RNA/protein sequence retrieval from NCBI/ENA
tooluniverse-chemical-compound-retrievalChemical compound data from PubChem/ChEMBL
tooluniverse-expression-data-retrievalGene expression & omics datasets
tooluniverse-variant-interpretationGenetic variant clinical interpretation
tooluniverse-protein-therapeutic-designAI-guided protein therapeutic design
tooluniverse-binder-discoverySmall molecule binder discovery via virtual screening
tooluniverse-sdkBuild research pipelines with the Python SDK
setup-tooluniverseThis setup guide

How to Install Skills

Skills are in the skills/ folder of the ToolUniverse GitHub repo: https://github.com/mims-harvard/ToolUniverse/tree/main/skills

First, help the user download the skills:

# Clone just the skills folder from GitHub
git clone --depth 1 --filter=blob:none --sparse https://github.com/mims-harvard/ToolUniverse.git /tmp/tu-skills
cd /tmp/tu-skills && git sparse-checkout set skills

Then install based on their client:

Cursor -- copy to .cursor/skills/ (auto-discovered):

mkdir -p .cursor/skills && cp -r /tmp/tu-skills/skills/* .cursor/skills/

Windsurf -- Cascade supports SKILL.md files the same way:

mkdir -p .windsurf/skills && cp -r /tmp/tu-skills/skills/* .windsurf/skills/

Codex (OpenAI) -- uses .agents/skills/ directory (auto-discovered):

mkdir -p .agents/skills && cp -r /tmp/tu-skills/skills/* .agents/skills/

Gemini CLI -- uses .gemini/skills/ directory (auto-discovered):

mkdir -p .gemini/skills && cp -r /tmp/tu-skills/skills/* .gemini/skills/

Claude Code -- uses .claude/skills/ directory (auto-discovered):

mkdir -p .claude/skills && cp -r /tmp/tu-skills/skills/* .claude/skills/

OpenCode -- uses .opencode/skills/ directory (auto-discovered):

mkdir -p .opencode/skills && cp -r /tmp/tu-skills/skills/* .opencode/skills/

Trae -- supports skills via .trae/skills/:

mkdir -p .trae/skills && cp -r /tmp/tu-skills/skills/* .trae/skills/

Cline / VS Code / Qwen -- copy skills into the project and reference as needed:

mkdir -p .skills && cp -r /tmp/tu-skills/skills/* .skills/

Clean up after copying:

rm -rf /tmp/tu-skills

How to Use Skills

Explain to the user:

  • Skills activate automatically when the AI detects a relevant request
  • The user can also trigger them explicitly, e.g., "Research the drug aspirin" will activate the drug-research skill
  • Skills guide the AI through multi-step research workflows, calling the right tools in the right order
  • The output is typically a comprehensive research report with evidence grading and source citations

Suggest a skill to try based on their research interests from Step 4. For example:

  • "Try asking: 'Research the drug metformin' -- the drug-research skill will generate a full drug profile"
  • "Try asking: 'What does the literature say about CRISPR in cancer?' -- the literature-deep-research skill will do a thorough review"

Common Issues & Solutions

Issue 1: Python Version Incompatibility

Symptom: requires-python = ">=3.10" error. Fix: brew install python@3.12 then python3.12 -m pip install tooluniverse

Issue 2: uvx or uv Not Found

Symptom: uvx: command not found. Fix: curl -LsSf https://astral.sh/uv/install.sh | sh then restart shell (source ~/.zshrc)

Issue 3: Context Window Overflow

Symptom: MCP server loads but Cursor/Claude becomes slow or errors

Solution: Enable compact mode (should already be set):

  • Verify --compact-mode is in args
  • Restart application
  • Check you're using stdio command, not HTTP server

Issue 4: Import Errors for Specific Tools

Symptom: Some tools fail with ModuleNotFoundError

Solution: Install optional dependencies: pip install tooluniverse[all] (or specific extras like [singlecell], [ml,embedding], [visualization])

Issue 5: MCP Server Won't Start

Symptom: No tooluniverse server appears in Cursor/Claude

Diagnostic steps:

  1. Test command directly:
    uvx tooluniverse
    # Should start without errors (Ctrl+C to exit)
    
  2. Check JSON syntax in mcp.json (no trailing commas, proper quotes)
  3. View Cursor logs: ~/Library/Application Support/Cursor/logs/ (macOS)
  4. Verify file permissions on mcp.json

Issue 6: API Key Errors (401/403)

Symptom: Tool returns "unauthorized", "forbidden", or "invalid API key"

Common causes and fixes:

  • Key not set: Check it's in the env block of mcp.json (or .env file) and app was restarted
  • Wrong key name: Double-check the exact env variable name (e.g., ONCOKB_API_TOKEN not ONCOKB_API_KEY)
  • Key expired or revoked: Log into the service and regenerate the key
  • Copy-paste error: Make sure there are no extra spaces or newlines in the key value
  • Free tier limits: Some services (DisGeNET, OMIM) require account approval before the key works

Issue 7: Upgrading ToolUniverse

Symptom: User wants a newer version, or tools are missing/outdated

uvx caches packages and may serve an older version. To upgrade:

# Clear the cached version and get the latest
uv cache clean tooluniverse

Then restart the MCP client. uvx will download the latest version on next start.

To pin a specific version:

"args": ["tooluniverse==1.0.18"]

For pip users:

pip install --upgrade tooluniverse

Still stuck?

If you run into an issue that can't be resolved with the steps above, encourage the user to open a GitHub issue at https://github.com/mims-harvard/ToolUniverse/issues or reach out to Shanghua Gao, the creator of ToolUniverse.

What's Next?

After setup is complete, suggest the user try one of these to get started:

  • "Research the drug metformin" -- triggers the drug-research skill for a full drug profile
  • "What are the known targets of imatinib?" -- triggers target-research
  • "What does the literature say about CRISPR in sickle cell disease?" -- triggers literature-deep-research
  • "Find protein structures for human EGFR" -- triggers protein-structure-retrieval

Point them to the tooluniverse general skill for tips on getting the most out of 1200+ tools, and remind them they can always come back to add more API keys or skills later.

Quick Reference

Install

Download ZIP
Requires askill CLI v1.0+

AI Quality Score

88/100Analyzed 2/23/2026

High-quality setup wizard skill with excellent actionability. Provides comprehensive step-by-step guidance for installing ToolUniverse across 11+ AI coding clients with different config formats. Includes detailed API key reference tables, language detection for multilingual support, and helpful warnings about context limits. Located in dedicated skills folder with proper tags. Minor扣分 for project-specific path but content is broadly applicable. Bonus rules applied: has clear trigger section, structured steps, tags, skills folder location, and high-density technical reference.

92
88
85
95
92

Metadata

Licenseunknown
Version-
Updated2/24/2026
Publishermims-harvard

Tags

apici-cddatabasegithubgithub-actionsllmsecuritytesting