tooluniverse-cs-setup

v2026.09.24

Install or update ToolUniverse in Claude Science — create the conda env, install the tooluniverse pip package, and (re)build the tooluniverse-research skill by fetching the current workflow library from GitHub. Use for first-time setup, upgrading the ToolUniverse version, refreshing the bundled workflows after an upstream release, or reinstalling on a new machine.

GitHub
Install command
npx skhub add mims-harvard/tooluniverse-cs-setup
Markdown
SKILL.md

Set up ToolUniverse for Claude Science

The upstream ToolUniverse ships a Claude Code plugin (MCP server + uvx + slash commands). Claude Science loads capabilities differently, so this skill installs the equivalent natively: the tooluniverse pip package supplies the 2500+ tools, and the workflow library is packaged into a single dynamically-loaded skill, tooluniverse-research. No uv, no MCP server, no plugin marketplace.

Loading this skill defines tu_build_research_bundle() in the kernel (run cells in the tooluniverse conda env).

Full install / update — four steps

1. Create the conda env (skip if it already exists):

manage_environments(mode="create", name="tooluniverse", python_version="3.11", packages=["pip"])

2. Install (or upgrade) the tools — the pip package is the tool layer:

manage_packages(mode="install", environment="tooluniverse", packages=["tooluniverse"], use_pip=True)

Pin a version for reproducibility with ["tooluniverse==1.3.0"].

3. Stage the workflow bundle — fetch the current repo and rebuild the file tree (run in a python cell, env tooluniverse):

res = tu_build_research_bundle(staging="./tu_staging")
res  # {out_dir, n_workflows, n_files, dropped, files_head}

This downloads the repo tarball, parses every tooluniverse-* workflow (dropping the plugin/installer entries), and writes ./tu_staging/out/ = SKILL.md, kernel.py, index.json, workflows/*.md.

4. Publish the skill — push the staged tree into the catalog (run in the repl tool; host.skills.* lives there, not in python):

import os
SKILL = "tooluniverse-research"
out = os.path.abspath("./tu_staging/out")
if any(s["name"] == SKILL for s in host.skills.list()):
    host.skills.delete(SKILL)                       # clean rebuild
for root, _d, fs in os.walk(out):
    for f in fs:
        p = os.path.join(root, f)
        rel = os.path.relpath(p, out)
        host.skills.edit(SKILL, rel, open(p, encoding="utf-8").read())
print(host.skills.publish(SKILL, overwrite=True))

(host.skills.publish refuses if kernel.py fails the sidecar gate — the edit result carries the verdict.)

Verify

skill("tooluniverse-research")                      # loads router + injects helpers
tu = get_tu()
tu.run({"name": "PubChem_get_CID_by_compound_name", "arguments": {"name": "metformin"}})
# -> {'status': 'success', 'data': {'IdentifierList': {'CID': [4091]}}}

Notes

  • Sandbox cache: ToolUniverse defaults its cache to ~/.tooluniverse, which is read-only here; get_tu() redirects it to the workspace via TOOLUNIVERSE_CACHE_DIR. Nothing to configure.
  • API keys (optional): most tools work without them. For NCBI / OncoKB / NVIDIA etc., add keys under Customize → Credentials, then expose them in the tooluniverse env.
  • What is NOT ported: the plugin's slash commands (/tooluniverse:research) and MCP server — replaced by natural-language routing (search_skills → find_tu_workflow). The two *-plugin installer docs are dropped as non-research entries.
  • Updating: rerun steps 2–4. Step 2 upgrades the tools; steps 3–4 refresh the workflow library from the latest GitHub state.
Discovery
Tags

No tags published for this skill.

Version
Latest version metadata

Version

v2026.09.24

Published

Sep 24, 2026

Category

Uncategorized

License

Apache-2.0

Source path

skills/tooluniverse-cs-setup

Default branch

main

Latest commit

7888372

Tree SHA

0149c19