# ToolUniverse MCP server

> Give AI assistants access to thousands of scientific tools, databases and literature sources for life science and research work.

- Listing: https://mcp.tc/i/tooluniverse
- Connect: this is a local (stdio) server; install it on your machine (see Install). The listing link is a page, not an MCP endpoint.
- Type: local (stdio)
- Auth: optional (works without sign-in)
- Category: [AI & Machine Learning](https://mcp.tc/c/ai-ml)
- Vendor: mims-harvard
- Homepage: <https://aiscientist.tools>
- Repository: <https://github.com/mims-harvard/ToolUniverse>
- Package: pypi `tooluniverse`

## About

ToolUniverse is a catalog of scientific tools for AI scientist workflows, covering machine learning models, datasets, APIs and scientific packages. It supports literature search across PubMed, Semantic Scholar, ArXiv, BioRxiv and Europe PMC, plus life science databases for genes, diseases, proteins and drugs. A compact mode reduces the large tool set to a few discovery tools to save context.

It runs locally over stdio from the PyPI package tooluniverse, started with uvx. It needs Python 3.10 or newer. No API key is required to start. Optional keys (NCBI, Semantic Scholar, BioGRID, DisGeNET, OMIM, OncoKB, OpenAI, Anthropic, Gemini, HuggingFace) raise rate limits or enable extra features.

## What it can do

- Search literature across PubMed, Semantic Scholar, ArXiv, BioRxiv and Europe PMC
- Query gene, disease, protein interaction and oncology databases
- Discover tools through a compact mode with a few core discovery tools
- Run long tasks asynchronously with progress tracking
- Chain tools into sequential or parallel workflows
- Cache results locally for repeat queries and offline use

## Example prompts

- "Find recent PubMed papers on KRAS inhibitors in lung cancer"
- "Which genes are associated with Marfan syndrome according to DisGeNET?"
- "List protein interaction partners of TP53 from BioGRID"
- "Search ArXiv and BioRxiv for preprints on protein structure prediction"

## Install

### Claude Code

1. Run this in a terminal, in your project folder:

```bash
claude mcp add --transport stdio tooluniverse --env "OPENAI_API_KEY=<YOUR_OPENAI_API_KEY>" --env "ANTHROPIC_API_KEY=<YOUR_ANTHROPIC_API_KEY>" --env "GEMINI_API_KEY=<YOUR_GEMINI_API_KEY>" --env "OPENROUTER_API_KEY=<YOUR_OPENROUTER_API_KEY>" --env "AZURE_OPENAI_API_KEY=<YOUR_AZURE_OPENAI_API_KEY>" --env "HF_TOKEN=<YOUR_HF_TOKEN>" --env "NCBI_API_KEY=<YOUR_NCBI_API_KEY>" --env "SEMANTIC_SCHOLAR_API_KEY=<YOUR_SEMANTIC_SCHOLAR_API_KEY>" -- uvx tooluniverse
```

2. Start Claude Code and type `/mcp`. **tooluniverse** should show as connected.

Add `--scope user` to make it available in every project. Replace the placeholders with your own values.

### Claude Desktop

1. Open **Settings → Developer → Edit Config**. It opens `claude_desktop_config.json`. Add:

`claude_desktop_config.json`:

```json
{
  "mcpServers": {
    "tooluniverse": {
      "command": "uvx",
      "args": [
        "tooluniverse"
      ],
      "env": {
        "OPENAI_API_KEY": "<YOUR_OPENAI_API_KEY>",
        "ANTHROPIC_API_KEY": "<YOUR_ANTHROPIC_API_KEY>",
        "GEMINI_API_KEY": "<YOUR_GEMINI_API_KEY>",
        "OPENROUTER_API_KEY": "<YOUR_OPENROUTER_API_KEY>",
        "AZURE_OPENAI_API_KEY": "<YOUR_AZURE_OPENAI_API_KEY>",
        "HF_TOKEN": "<YOUR_HF_TOKEN>",
        "NCBI_API_KEY": "<YOUR_NCBI_API_KEY>",
        "SEMANTIC_SCHOLAR_API_KEY": "<YOUR_SEMANTIC_SCHOLAR_API_KEY>"
      }
    }
  }
}
```

2. Save the file and restart Claude Desktop. Replace the placeholders with your own values.

Needs uv (Python) on your computer. The file lives in `~/Library/Application Support/Claude/` on macOS and `%APPDATA%\Claude\` on Windows.

### Cursor

[Add to Cursor](<https://cursor.com/install-mcp?name=tooluniverse&config=eyJjb21tYW5kIjoidXZ4IiwiYXJncyI6WyJ0b29sdW5pdmVyc2UiXSwiZW52Ijp7Ik9QRU5BSV9BUElfS0VZIjoiPFlPVVJfT1BFTkFJX0FQSV9LRVk%2BIiwiQU5USFJPUElDX0FQSV9LRVkiOiI8WU9VUl9BTlRIUk9QSUNfQVBJX0tFWT4iLCJHRU1JTklfQVBJX0tFWSI6IjxZT1VSX0dFTUlOSV9BUElfS0VZPiIsIk9QRU5ST1VURVJfQVBJX0tFWSI6IjxZT1VSX09QRU5ST1VURVJfQVBJX0tFWT4iLCJBWlVSRV9PUEVOQUlfQVBJX0tFWSI6IjxZT1VSX0FaVVJFX09QRU5BSV9BUElfS0VZPiIsIkhGX1RPS0VOIjoiPFlPVVJfSEZfVE9LRU4%2BIiwiTkNCSV9BUElfS0VZIjoiPFlPVVJfTkNCSV9BUElfS0VZPiIsIlNFTUFOVElDX1NDSE9MQVJfQVBJX0tFWSI6IjxZT1VSX1NFTUFOVElDX1NDSE9MQVJfQVBJX0tFWT4ifX0%3D>) (opens Cursor)

Or add it by hand to `~/.cursor/mcp.json` (all projects) or `.cursor/mcp.json` (this project):

`mcp.json`:

```json
{
  "mcpServers": {
    "tooluniverse": {
      "command": "uvx",
      "args": [
        "tooluniverse"
      ],
      "env": {
        "OPENAI_API_KEY": "<YOUR_OPENAI_API_KEY>",
        "ANTHROPIC_API_KEY": "<YOUR_ANTHROPIC_API_KEY>",
        "GEMINI_API_KEY": "<YOUR_GEMINI_API_KEY>",
        "OPENROUTER_API_KEY": "<YOUR_OPENROUTER_API_KEY>",
        "AZURE_OPENAI_API_KEY": "<YOUR_AZURE_OPENAI_API_KEY>",
        "HF_TOKEN": "<YOUR_HF_TOKEN>",
        "NCBI_API_KEY": "<YOUR_NCBI_API_KEY>",
        "SEMANTIC_SCHOLAR_API_KEY": "<YOUR_SEMANTIC_SCHOLAR_API_KEY>"
      }
    }
  }
}
```

Needs uv (Python) on your computer. Replace the placeholders with your own values.

### VS Code

Add it to `.vscode/mcp.json`. VS Code asks for the secret the first time and stores it securely:

`.vscode/mcp.json`:

```json
{
  "servers": {
    "tooluniverse": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "tooluniverse"
      ],
      "env": {
        "OPENAI_API_KEY": "${input:openai-api-key}",
        "ANTHROPIC_API_KEY": "${input:anthropic-api-key}",
        "GEMINI_API_KEY": "${input:gemini-api-key}",
        "OPENROUTER_API_KEY": "${input:openrouter-api-key}",
        "AZURE_OPENAI_API_KEY": "${input:azure-openai-api-key}",
        "HF_TOKEN": "${input:hf-token}",
        "NCBI_API_KEY": "${input:ncbi-api-key}",
        "SEMANTIC_SCHOLAR_API_KEY": "${input:semantic-scholar-api-key}"
      }
    }
  },
  "inputs": [
    {
      "type": "promptString",
      "id": "openai-api-key",
      "description": "OPENAI_API_KEY",
      "password": true
    },
    {
      "type": "promptString",
      "id": "anthropic-api-key",
      "description": "ANTHROPIC_API_KEY",
      "password": true
    },
    {
      "type": "promptString",
      "id": "gemini-api-key",
      "description": "GEMINI_API_KEY",
      "password": true
    },
    {
      "type": "promptString",
      "id": "openrouter-api-key",
      "description": "OPENROUTER_API_KEY",
      "password": true
    },
    {
      "type": "promptString",
      "id": "azure-openai-api-key",
      "description": "AZURE_OPENAI_API_KEY",
      "password": true
    },
    {
      "type": "promptString",
      "id": "hf-token",
      "description": "HF_TOKEN",
      "password": true
    },
    {
      "type": "promptString",
      "id": "ncbi-api-key",
      "description": "NCBI_API_KEY",
      "password": true
    },
    {
      "type": "promptString",
      "id": "semantic-scholar-api-key",
      "description": "SEMANTIC_SCHOLAR_API_KEY",
      "password": true
    }
  ]
}
```

Needs uv (Python) on your computer.

### Devin Desktop

1. Add it to `~/.config/devin/mcp_config.json` (macOS and Linux) or `%APPDATA%\devin\mcp_config.json` (Windows):

`mcp_config.json`:

```json
{
  "mcpServers": {
    "tooluniverse": {
      "command": "uvx",
      "args": [
        "tooluniverse"
      ],
      "env": {
        "OPENAI_API_KEY": "<YOUR_OPENAI_API_KEY>",
        "ANTHROPIC_API_KEY": "<YOUR_ANTHROPIC_API_KEY>",
        "GEMINI_API_KEY": "<YOUR_GEMINI_API_KEY>",
        "OPENROUTER_API_KEY": "<YOUR_OPENROUTER_API_KEY>",
        "AZURE_OPENAI_API_KEY": "<YOUR_AZURE_OPENAI_API_KEY>",
        "HF_TOKEN": "<YOUR_HF_TOKEN>",
        "NCBI_API_KEY": "<YOUR_NCBI_API_KEY>",
        "SEMANTIC_SCHOLAR_API_KEY": "<YOUR_SEMANTIC_SCHOLAR_API_KEY>"
      }
    }
  }
}
```

2. Refresh the MCP server list in Cascade. Replace the placeholders with your own values.

Devin Desktop is the new name for Windsurf.

### Codex

```bash
codex mcp add tooluniverse --env "OPENAI_API_KEY=<YOUR_OPENAI_API_KEY>" --env "ANTHROPIC_API_KEY=<YOUR_ANTHROPIC_API_KEY>" --env "GEMINI_API_KEY=<YOUR_GEMINI_API_KEY>" --env "OPENROUTER_API_KEY=<YOUR_OPENROUTER_API_KEY>" --env "AZURE_OPENAI_API_KEY=<YOUR_AZURE_OPENAI_API_KEY>" --env "HF_TOKEN=<YOUR_HF_TOKEN>" --env "NCBI_API_KEY=<YOUR_NCBI_API_KEY>" --env "SEMANTIC_SCHOLAR_API_KEY=<YOUR_SEMANTIC_SCHOLAR_API_KEY>" -- uvx tooluniverse
```

Or edit `~/.codex/config.toml` directly:

`config.toml`:

```toml
[mcp_servers.tooluniverse]
command = "uvx"
args = ["tooluniverse"]
env = { OPENAI_API_KEY = "<YOUR_OPENAI_API_KEY>", ANTHROPIC_API_KEY = "<YOUR_ANTHROPIC_API_KEY>", GEMINI_API_KEY = "<YOUR_GEMINI_API_KEY>", OPENROUTER_API_KEY = "<YOUR_OPENROUTER_API_KEY>", AZURE_OPENAI_API_KEY = "<YOUR_AZURE_OPENAI_API_KEY>", HF_TOKEN = "<YOUR_HF_TOKEN>", NCBI_API_KEY = "<YOUR_NCBI_API_KEY>", SEMANTIC_SCHOLAR_API_KEY = "<YOUR_SEMANTIC_SCHOLAR_API_KEY>" }
```

Needs uv (Python) on your computer. Replace the placeholders with your own values.

### Gemini CLI

```bash
gemini mcp add -e "OPENAI_API_KEY=<YOUR_OPENAI_API_KEY>" -e "ANTHROPIC_API_KEY=<YOUR_ANTHROPIC_API_KEY>" -e "GEMINI_API_KEY=<YOUR_GEMINI_API_KEY>" -e "OPENROUTER_API_KEY=<YOUR_OPENROUTER_API_KEY>" -e "AZURE_OPENAI_API_KEY=<YOUR_AZURE_OPENAI_API_KEY>" -e "HF_TOKEN=<YOUR_HF_TOKEN>" -e "NCBI_API_KEY=<YOUR_NCBI_API_KEY>" -e "SEMANTIC_SCHOLAR_API_KEY=<YOUR_SEMANTIC_SCHOLAR_API_KEY>" tooluniverse uvx tooluniverse
```

This adds it to the current project. Add `-s user` to use it everywhere.

### Any client

Most clients that start local servers accept this shape:

```json
{
  "mcpServers": {
    "tooluniverse": {
      "command": "uvx",
      "args": [
        "tooluniverse"
      ],
      "env": {
        "OPENAI_API_KEY": "<YOUR_OPENAI_API_KEY>",
        "ANTHROPIC_API_KEY": "<YOUR_ANTHROPIC_API_KEY>",
        "GEMINI_API_KEY": "<YOUR_GEMINI_API_KEY>",
        "OPENROUTER_API_KEY": "<YOUR_OPENROUTER_API_KEY>",
        "AZURE_OPENAI_API_KEY": "<YOUR_AZURE_OPENAI_API_KEY>",
        "HF_TOKEN": "<YOUR_HF_TOKEN>",
        "NCBI_API_KEY": "<YOUR_NCBI_API_KEY>",
        "SEMANTIC_SCHOLAR_API_KEY": "<YOUR_SEMANTIC_SCHOLAR_API_KEY>"
      }
    }
  }
}
```

Zed puts servers under `context_servers` in its settings, with the same `command`, `args` and `env` fields.

Needs uv (Python) on your computer. Replace the placeholders with your own values.

## Recent changes

- 2026-10-06 21:23 UTC: Tracking started: version 1.5.6. Source: automatic check.

More on the History tab, with descriptions before and after for the newest entries: https://mcp.tc/i/tooluniverse#history (Atom feed: https://mcp.tc/i/tooluniverse/history.xml). It records what mcp.tc's anonymous checks saw, every 3 hours where the tool list can be read without sign-in; it is not a security review.

## Details

- Server version: 1.5.6
- Last checked: 2026-10-06
- Listed: 2026-10-06
- Updated: 2026-10-07

---
Source: https://mcp.tc/i/tooluniverse (mcp.tc is an independent directory, not affiliated with this server's publisher). Corrections: https://mcp.tc/report
