ToolUniverse plugin

A Claude Code plugin and MCP server: over 1000 scientific tools for biology, chemistry and medicine, data-check commands and routing skills

  • 1,764 ★ on the repository
  • Last commit
  • Apache-2.0
Plugin

Broad access

Why this level

  • The server starts through uvx and runs package code, and the analysis scripts call Python and R on your files
  • The session-start hook deletes tooluniverse-* skill folders from the Claude home directory if they remain from an old install
  • Requests with gene, drug and sample names go to outside data providers, and keys are saved to a .env file
All reasons and checks

mims-harvard/tooluniverse

Install

In your terminal, with SkillFoxx CLI

npx skillfoxx add plugins/tooluniverse

Detects the agents on your machine, shows the access level and pins the version.

Other ways to install

Access and checks

How we review

Broad accessThe tool can change data, run commands or handle secrets.

  • The server starts through uvx and runs package code, and the analysis scripts call Python and R on your files
  • The session-start hook deletes tooluniverse-* skill folders from the Claude home directory if they remain from an old install
  • Requests with gene, drug and sample names go to outside data providers, and keys are saved to a .env file

This is third-party code. Review the repository files before installing.

What it does

ToolUniverse is a project from Marinka Zitnik's lab at Harvard that gives an agent over 1000 scientific tools: databases, interfaces and packages for genetics, chemistry, medicine and data analysis. Through the MCP server the agent gets four entry points: search for a tool by topic, list, describe and run. Requests go to outside providers such as UniProt, PubMed, openFDA, ChEMBL and ClinicalTrials.gov, while the server itself runs on your computer. The Claude Code plugin connects this server through uvx and adds a router skill. When count tables, VCF, FASTA or h5ad files sit nearby, the router identifies the type of analysis and hands the task to a specialist skill: differential expression, pathway enrichment, statistical modeling, variants, phylogenetics, single cells. If an executed Jupyter notebook is next to the data, its results are read first. Separate commands fix the working order: mapping identifiers across databases, checking a claim against three independent sources, comparing several items, a literature sweep over PubMed, Europe PMC and Semantic Scholar, a self-review of the work and key setup. The researcher agent runs such an investigation in a separate context and returns one summary. For scripts there is the `tu` command line tool and a Python package.

Who it is for. For bioinformaticians, medical and chemistry researchers and analysts who want to search scientific databases and work through data straight from Claude Code.

Good fit when

  • You need to take a gene name, find its identifiers in UniProt, Ensembl, NCBI and ChEMBL and put them in one table
  • You have a count table and a sample description and need differential expression along a ready analysis route
  • Before publishing you must check a claim against three independent databases and see where sources disagree
  • You need a quick literature overview of a topic with duplicates removed and a reading order
  • The agent should find the right scientific tool among a thousand without loading them all into context

Not a fit when

  • You have an Apple Silicon Mac on macOS 13 or older: the vector search tools need macOS 14
  • You need local models or plotting without extra groups: the base install covers only tools built on database interfaces
  • You cannot send gene names, drug names and sample identifiers to outside data providers: database requests go over the network
  • You only need PubMed and ClinicalTrials.gov search in a single binary; BioMCP in the catalog covers that

Example request

Find the EGFR gene identifiers in UniProt, Ensembl and ChEMBL, then list the known drug resistance mutations and cross-check them against at least three databases

Limitations

The plugin needs uv: it starts the server through uvx, without it the tools do not appear, and a reminder is printed at session start. The package needs Python 3.10 or newer, and system pip on a recent Mac refuses to install the package because of environment protection, so the author recommends uv.

The base install covers the tools built on database interfaces. Local models, cheminformatics and plotting need extra groups, for example `tooluniverse[all]`; the pdf, singlecell, smolagents, client and build groups are not in it. The `tooluniverse-doctor` command shows which groups are missing.

Many tools work without keys, but some databases want their own key, for example OncoKB for academic users. Keys are kept in a `.env` file in `~/.tooluniverse` or in the project folder.

The copy in the Claude Desktop extensions directory is outdated and fails to start; the author offers other install routes in the project description.

At session start the plugin once deletes the tooluniverse-*, create-tooluniverse-skill and setup-tooluniverse folders from `~/.claude/skills` if they remain from an earlier install.

How to disable. Disable or remove the tooluniverse plugin through the /plugin menu in Claude Code and restart it. If you added the server to the MCP configuration by hand, delete the tooluniverse entry. Keys stay in `.env` in `~/.tooluniverse` or in the project folder: delete the file yourself.

FAQ

What do the four MCP server tools do?

They are `find_tools`, `list_tools`, `get_tool_info` and `execute_tool`: search by topic, a listing, a description and a run of the chosen tool. This mode cuts context use: instead of a thousand descriptions the agent holds four and loads the rest on demand.

Where do my requests go?

The call arguments are sent to the data provider behind the tool: a protein name goes to UniProt, a drug name to openFDA. The server runs on your machine, and the project collects no telemetry, analytics or conversation data. Keys go only to the service they belong to.

How does the cross-validate command differ from an ordinary question?

It makes the agent check a claim against at least three independent databases and show agreement for each source. An ordinary question can be settled with one answer, while here disagreements are visible at once.

When should I use the researcher agent and when the research command?

The research command runs the investigation in your chat: every step is visible and you can interrupt and refine. The researcher agent works in a separate context and returns one summary. It suits cases where intermediate calls should not clutter the main conversation.

How do I handle many genes or compounds at once?

For five or more calls in a loop the author recommends the Python package over `tu run` in a shell loop: the tool registry loads once, and each call does not spend time on startup.

Does the project work with models other than Claude?

The author names compatibility with Claude, GPT, Gemini, Qwen, Deepseek and open models. The ready plugin with commands and the agent is built for Claude Code; for other setups you connect the MCP server or the Python package.

Discussion

No questions or reviews yet.

Plugins
Official

Anthropic's official plugin marketplace for biology and medicine: PubMed, BioRender, Synapse, ChEMBL, ClinicalTrials.gov and data analysis skills

PluginExtended access632Repository stars

MCP server that connects Claude Code and Codex to an open R or Python session in RStudio and Positron, where your data lives

MCP serverBroad access359Repository stars
Editors’ pick

A Google DeepMind skill collection for science tasks: access to biology and chemistry databases, literature search and structural biology

SkillExtended access3.4KRepository stars

BioMCP

biomcp

One binary and a single command grammar for 70 biomedical sources: PubMed, ClinVar, ClinicalTrials.gov, OncoKB. MCP mode starts with the serve command

MCP serverMinimal access668Repository stars

Connects a Zotero library to Claude and other agents: search papers, annotate, cite, and search by meaning

MCP serverExtended access5.6KRepository stars

An MCP server for searching and downloading academic papers from arXiv, PubMed, bioRxiv, Semantic Scholar and other open sources

MCP serverExtended access2.9KRepository stars

Comparison with similar tools

Entries that share the main search query, and how they differ.

EntryOfficialAuthenticationRepository starsMain difference
ToolUniverse (this entry)nonot required1,764
BioMCPnonot required668one binary with a single command grammar for 70 biomedical sources, MCP mode starts with the serve command
Life Sciences: Anthropic's marketplace for Claude Codeyes632Anthropic's marketplace with 21 plugins for biology and medicine, each connected separately
OmopHub MCPyesAPI keya medical code reference for your agent

README in short

The project description opens with the install routes: tell an agent to read the setup page, add the server to the MCP configuration, install the Claude Code plugin with a pair of commands or use the Python package. It then lists the features: an exchange protocol between model and tools, the MCP server, async tasks, tool composition, a compact mode, a command line tool, a set of ready research skills, unified literature search and a two-level result cache. The repository holds documentation, tests, BixBench and LAB-Bench reproduction runs, example projects built on ToolUniverse, a privacy policy and a link to the arXiv paper.

README badge

Original SKILL.md

---
name: tooluniverse
description: "ToolUniverse plugin router. STEP 1 BEFORE ANY ANALYSIS: if the data folder contains `*_executed.ipynb`, run `tu run read_executed_notebook ...` to extract its cell outputs and apply EVERY filter/sample-exclusion the notebook used. STEP 2 routing: pick a sub-skill name from the exact list (tooluniverse-rnaseq-deseq2, tooluniverse-gene-enrichment, tooluniverse-statistical-modeling, tooluniverse-image-analysis, tooluniverse-epigenomics, tooluniverse-sequence-analysis, tooluniverse-variant-analysis, tooluniverse-phylogenetics, tooluniverse-single-cell, tooluniverse-crispr-screen-analysis, tooluniverse-proteomics-analysis)."
when_to_use: "Activate when the user provides data files to analyze, asks about differential expression, runs statistical tests on clinical data, performs variant analysis, does pathway enrichment, builds phylogenetic trees, or asks any scientific research question."
paths: "*.csv,*.xlsx,*.tsv,*.vcf,*.fa,*.fasta,*.faa,*.h5ad,*.rds,*.bam"
---

# ToolUniverse Router

## FIRST ACTION: Route to a Specialized Skill

**BEFORE doing anything else** scan the routing table below and invoke the matching skill. The specialized skill contains critical domain conventions that you will get wrong without loading.

Report a problem

Foxx AIToolUniverse
Foxx AI

I am Foxx AI and I have already vetted this tool. Ask about install, setup or anything else, and I will keep it simple.