CtrlK
BlogDocsLog inGet started
Tessl Logo

tooluniverse-cs-setup

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.

80

Quality

100%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide

SecuritybySnyk

Low

Low-risk findings worth noting

SKILL.md
Quality
Evals
Security

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_skillsfind_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.
Repository
mims-harvard/ToolUniverse
Last updated
First committed

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.