Shanghua Gao 2128ff571b Retry the publish verification before calling it a mismatch (#605)
The sha256 round-trip check added in #604 downloads the asset back
immediately after --clobber replaces it. Release assets are served
through a CDN, so for a short window that URL can still return the
previous bytes, and a single check would fail a publish that actually
worked.

That failure mode is worse than it looks: a red publish job invites
someone to re-run it or upload the bundle by hand, which is the manual
step this workflow exists to remove.

Retries up to six times with increasing backoff, breaking as soon as the
bytes match, so the normal case still costs one request. A genuine
mismatch still fails the job, now saying it survived retries.

This step has never executed -- the publish job was skipped on the only
run so far, because the published bundle already matched -- so the bug
was latent rather than observed. The retry loop and its three outcomes
(immediate match, delayed match, persistent mismatch) were exercised in
isolation, including confirming that 'set -e' does not abort the loop on
a non-matching comparison.
2026-09-17 04:15:15 -04:00
2026-09-17 03:24:55 +00:00
2026-02-15 19:38:46 -05:00
2026-09-17 03:24:55 +00:00
2026-09-17 03:24:55 +00:00
2026-02-08 15:18:43 -05:00
2026-09-16 17:33:58 -04:00
2026-02-08 15:18:43 -05:00
2026-09-16 17:33:58 -04:00

ToolUniverse Logo ToolUniverse: Democratizing AI scientists

Documentation Paper PyPI version MCP Registry Website Slack WeChat LinkedIn X PyPI Downloads

Install

Important

Claude Desktop extension showing "Failed — Server disconnected"? The copy of ToolUniverse in Claude Desktop's built-in Extensions directory is an old build that cannot start. Remove it, then use either option below — both install a working version. Details and status: #585

AI agent (recommended) — open your AI agent and run:

Read https://aiscientist.tools/setup.md and set up ToolUniverse for me.

The agent will walk you through MCP configuration, API keys, skill installation, and validation.

or set up manually

Add to your MCP config file:

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

--refresh checks PyPI for the newest release on every launch. Drop it ("args": ["tooluniverse"]) to start faster from uv's cache — then upgrade with uv cache clean tooluniverse.

Install agent skills:

npx skills add mims-harvard/ToolUniverse

Claude Code users — one line, no config file:

claude plugin marketplace add mims-harvard/ToolUniverse
claude plugin install tooluniverse@tooluniverse

Python developers — install the SDK. Install uv first and do not use system pip: on a current Mac, pip install tooluniverse fails with externally-managed-environment (PEP 668) and python3 -m venv can fail at ensurepip. uv manages its own Python and avoids both.

curl -LsSf https://astral.sh/uv/install.sh | sh   # if you don't have uv
uv venv --python 3.12 && source .venv/bin/activate
uv pip install tooluniverse

The base install covers the API and database tools. Local ML, cheminformatics, and plotting tools need extras — uv pip install 'tooluniverse[all]', or a single group such as [ml], [visualization], [bioinformatics]. Note [all] excludes pdf, singlecell, smolagents, client, and build, which install by name. Run tooluniverse-doctor to see which groups are missing.

tu CLI — discover, inspect, run, and test tools from the terminal. Python SDK — programmatic access for building AI scientist systems.

Building AI Scientists with ToolUniverse

Click to watch the demo (YouTube) (Bilibili)

What is ToolUniverse?

ToolUniverse is an ecosystem for creating AI scientist systems from any large language model. Powered by the AI-Tool Interaction Protocol, it standardizes how LLMs identify and call tools, integrating more than 1000 machine learning models, datasets, APIs, and scientific packages for data analysis, knowledge retrieval, and experimental design.

Key features:

  • AI-Tool Interaction Protocol: Standardized interface governing how AI scientists issue tool requests and receive results
  • Universal AI Model Support: Works with Claude, GPT, Gemini, Qwen, Deepseek, and open models
  • MCP Integration: Native Model Context Protocol server with configurable transport and tool selection
  • Async Operations: Long-running tasks (protein docking, molecular simulations) with progress tracking and parallel execution
  • Tool Composition: Chain tools for sequential or parallel execution in self-directed workflows
  • Compact Mode: Reduces 1000+ tools to 4-5 core discovery tools, saving ~99% context window
  • CLI (tu): Discover, inspect, run, and test tools directly from the terminal — 9 subcommands for interactive and scripted workflows
  • Agent Skills: 68 pre-built research workflows for drug discovery, precision oncology, rare disease diagnosis, pharmacovigilance, and more
  • Literature Search: Unified search across PubMed, Semantic Scholar, ArXiv, BioRxiv, Europe PMC, and more
  • Two-Tier Result Caching: In-memory LRU + SQLite persistence with per-tool fingerprinting for 10x speedup, offline support, and reproducibility
  • Continuous Expansion: Register new tools locally or remotely without additional configuration

AI Scientists Powered by ToolUniverse

Building your project with ToolUniverse? Submit via GitHub Pull Request or contact us.

TxAgent: AI Agent for Therapeutic Reasoning [Project] [Paper] [PyPI] [GitHub] [HuggingFace]

TxAgent leverages ToolUniverse's scientific tool ecosystem to solve complex therapeutic reasoning tasks.


Medea: An Omics AI Agent for Therapeutic Discovery [Project] [Paper] [GitHub]

Medea integrates ToolUniverse tools for multi-omics analysis to identify therapeutic targets and predict drug responses across cancer, autoimmune, and other diseases.

Documentation

Full documentation: zitniklab.hms.harvard.edu/ToolUniverse

Community

Shanghua Gao, the lead creator of this project, is currently on the job market.

Slack · GitHub Issues · Shanghua Gao · Marinka Zitnik

Leaders: Shanghua Gao · Marinka Zitnik

Contributors: Shanghua Gao · Richard Zhu · Pengwei Sui · Zhenglun Kong · Sufian Aldogom · Yepeng Huang · Ayush Noori · Reza Shamji · Krishna Parvataneni · Theodoros Tsiligkaridis · Marinka Zitnik

Citation

@article{gao2025democratizingaiscientistsusing,
      title={Democratizing AI scientists using ToolUniverse}, 
      author={Shanghua Gao and Richard Zhu and Pengwei Sui and Zhenglun Kong and Sufian Aldogom and Yepeng Huang and Ayush Noori and Reza Shamji and Krishna Parvataneni and Theodoros Tsiligkaridis and Marinka Zitnik},
      year={2025},
      eprint={2509.23426},
      archivePrefix={arXiv},
      primaryClass={cs.AI},
      url={https://arxiv.org/abs/2509.23426}, 
}
S
Description
Retrieve DNA/RNA/protein sequences from NCBI and ENA with disambiguation. Quality hierarchy: RefSeq (NM_/NP_) > RefSeq predicted (XM_/XP_) > GenBank…
Readme Apache-2.0 70 MiB
Languages
Python 99.9%
Shell 0.1%