Compare commits
2
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0f20c2709a | ||
|
|
1f0c27ea70 |
@@ -1,8 +1,8 @@
|
||||
---
|
||||
lineage_type: import
|
||||
upstream_source: https://github.com/mims-harvard/ToolUniverse/blob/e2520a96/skills/setup-tooluniverse/SKILL.md
|
||||
upstream_sha: e2520a96
|
||||
imported_at: 2026-06-26
|
||||
upstream_source: https://github.com/mims-harvard/ToolUniverse/blob/089eb8e6/skills/setup-tooluniverse/SKILL.md
|
||||
upstream_sha: 089eb8e6
|
||||
imported_at: 2026-07-25
|
||||
prompt_class: catalogue
|
||||
upstream_changes: accepted
|
||||
name: setup-tooluniverse
|
||||
@@ -68,7 +68,7 @@ Make sure Step 2 is done, then try:
|
||||
uvx --from tooluniverse tu status # How many tools?
|
||||
uvx --from tooluniverse tu find 'drug safety' # Search by topic
|
||||
uvx --from tooluniverse tu info FAERS_count_death_related_by_drug # See params
|
||||
uvx --from tooluniverse tu run FAERS_count_death_related_by_drug '{"drug_name": "metformin"}'
|
||||
uvx --from tooluniverse tu run FAERS_count_death_related_by_drug '{"medicinalproduct": "metformin"}'
|
||||
```
|
||||
|
||||
First run takes ~30s (downloads package), then instant. **Shortcut**: `uv tool install tooluniverse` → then just use `tu` directly.
|
||||
@@ -84,7 +84,7 @@ First run takes ~30s (downloads package), then instant. **Shortcut**: `uv tool i
|
||||
| `tu info` | Show tool parameters and schema | `tu info PubMed_search_articles` |
|
||||
| `tu run` | Execute a tool | `tu run PubMed_search_articles '{"query": "CRISPR"}'` |
|
||||
| `tu test` | Test a tool with its example inputs | `tu test UniProt_get_entry_by_accession` |
|
||||
| `tu build` | Generate typed Python wrappers for Coding API | `tu build --output ./my_tools` |
|
||||
| `tu build` | Generate typed Python wrappers for Coding API (also regenerates the internal lazy-load registry in place — unaffected by `--output`) | `tu build --output ./my_tools` |
|
||||
| `tu serve` | Start MCP stdio server (same as `uvx tooluniverse`) | `tu serve` |
|
||||
|
||||
**Output flags** (most commands except `build`/`serve`): `--json` (pretty) or `--raw` (compact, pipe-friendly).
|
||||
@@ -93,12 +93,30 @@ Continue to **Step 3** (API Keys).
|
||||
|
||||
## SDK Setup
|
||||
|
||||
Make sure Step 2 is done. For detailed patterns, invoke the `tooluniverse-sdk` skill.
|
||||
> **Install `uv` first (Step 2). Do not use system `pip`.** On a current Mac
|
||||
> (Homebrew Python 3.13/3.14) `pip install tooluniverse` stops with
|
||||
> `error: externally-managed-environment` (PEP 668), and `python3 -m venv` can
|
||||
> fail at `ensurepip`. `uv` avoids both because it downloads and manages its own
|
||||
> Python.
|
||||
|
||||
```bash
|
||||
uv venv --python 3.12 # own Python + virtualenv, ignores system pip
|
||||
source .venv/bin/activate # Windows: .venv\Scripts\activate
|
||||
uv pip install tooluniverse
|
||||
```
|
||||
|
||||
`uv pip install` needs an active virtualenv — run `uv venv` first, or use
|
||||
`uv tool install tooluniverse` if you only want the `tu` command.
|
||||
|
||||
For detailed patterns, invoke the `tooluniverse-sdk` skill.
|
||||
|
||||
**Optional extras**: the base install covers API/database tools. Local ML,
|
||||
cheminformatics, and plotting tools need extras — `uv pip install
|
||||
'tooluniverse[ml]'`, `[visualization]`, `[bioinformatics]`, or `[all]`.
|
||||
Run `tooluniverse-doctor` to see which groups you are missing.
|
||||
Note `[all]` does **not** include `singlecell`, `smolagents`, `client`, or
|
||||
`build`; install those separately.
|
||||
|
||||
### Coding API — 3 calling patterns
|
||||
|
||||
**Pattern 1: Direct import** (typed, with autocomplete):
|
||||
@@ -130,9 +148,33 @@ Continue to **Step 3** (API Keys).
|
||||
|
||||
## MCP Setup (Chat Mode)
|
||||
|
||||
Make sure Step 2 is done (`uv --version` works).
|
||||
**Offer the two low-effort paths first.** Editing JSON by hand is the fallback,
|
||||
not the recommendation — a mistyped comma is the single most common setup
|
||||
failure. Only walk through the manual path if neither option below fits.
|
||||
|
||||
### Add ToolUniverse to your app's config
|
||||
**Path A — let an AI agent do it.** If the user already has any agent (Claude,
|
||||
Cursor, Copilot, Gemini, Codex...), they can paste this into it:
|
||||
|
||||
```
|
||||
Read https://aiscientist.tools/setup.md and set up ToolUniverse for me.
|
||||
```
|
||||
|
||||
The agent handles config, keys, skills, and validation. No terminal, no JSON.
|
||||
|
||||
**Path B — Claude Code users: one-liner, no config file at all.**
|
||||
|
||||
```bash
|
||||
claude plugin marketplace add mims-harvard/ToolUniverse
|
||||
claude plugin install tooluniverse@tooluniverse
|
||||
```
|
||||
|
||||
Installs MCP server + 115 skills + slash commands in one step. Then see the
|
||||
`tooluniverse-claude-code-plugin` skill's "Recommended: turn on auto-update"
|
||||
step so future releases apply without manual `claude plugin update`.
|
||||
|
||||
### Manual config (fallback)
|
||||
|
||||
Make sure Step 2 is done (`uv --version` works).
|
||||
|
||||
**Config file help** (if user seems unfamiliar): Config files are plain text that store settings — like a preference list for the app. You don't need to understand the format; just paste exactly what's shown below. Most apps have a Settings button that opens the file for you (see table). If the file is empty, paste the entire block. If it already has content, the agent should help merge it.
|
||||
|
||||
@@ -149,14 +191,23 @@ Make sure Step 2 is done (`uv --version` works).
|
||||
}
|
||||
```
|
||||
|
||||
**Config file locations:**
|
||||
|
||||
> **Claude Code users**: skip manual MCP config — use the plugin instead. Invoke the `tooluniverse-claude-code-plugin` skill or run:
|
||||
> **Paste safely.** Copy the block whole — do not retype it. If the file already
|
||||
> has an `mcpServers` block, add only the `"tooluniverse": { ... }` entry inside
|
||||
> it and put a comma after the previous entry. If the file was empty, paste the
|
||||
> whole block. Then validate before restarting the app:
|
||||
> ```bash
|
||||
> claude plugin marketplace add mims-harvard/ToolUniverse
|
||||
> claude plugin install tooluniverse@tooluniverse
|
||||
> python3 -m json.tool < "<path-to-config>" > /dev/null && echo "JSON OK"
|
||||
> ```
|
||||
> This installs MCP server + 115 skills + slash commands in one step.
|
||||
> A trailing comma after the last entry, or a missing one between entries, is
|
||||
> the usual cause of "MCP server won't start".
|
||||
|
||||
**`args` — `["tooluniverse"]` vs `["--refresh", "tooluniverse"]`**: plain is the
|
||||
default and starts fast from `uv`'s cache, but can stay on a cached older
|
||||
release until you run `uv cache clean tooluniverse`. Adding `--refresh` checks
|
||||
PyPI for the newest version on every launch — always current, a few seconds
|
||||
slower to start. Use plain unless the user specifically wants auto-updates.
|
||||
|
||||
**Config file locations:**
|
||||
|
||||
| Client | File | How to Access |
|
||||
|--------|------|---------------|
|
||||
@@ -302,7 +353,7 @@ Skills activate automatically based on user's question. Try: "Research the drug
|
||||
> tu info PubMed_search_articles # Check parameters
|
||||
> tu run PubMed_search_articles '{"query": "CRISPR cancer", "max_results": 3}'
|
||||
> tu run UniProt_get_entry_by_accession '{"accession": "P12345"}'
|
||||
> tu run FAERS_count_death_related_by_drug '{"drug_name": "metformin"}'
|
||||
> tu run FAERS_count_death_related_by_drug '{"medicinalproduct": "metformin"}'
|
||||
> ```
|
||||
|
||||
## Write Agent Memory
|
||||
@@ -352,14 +403,26 @@ NVIDIA_API_KEY=your_shared_key
|
||||
|
||||
| Issue | Fix |
|
||||
|-------|-----|
|
||||
| `error: externally-managed-environment` (PEP 668) | System `pip` refuses to install. Use `uv` — `uv venv --python 3.12 && source .venv/bin/activate && uv pip install tooluniverse`. Never `sudo pip` or `--break-system-packages`. |
|
||||
| `python3 -m venv` fails at `ensurepip` | Homebrew Python (3.13/3.14) is missing a working `ensurepip`. Use `uv venv --python 3.12` — `uv` supplies its own Python. |
|
||||
| `uv pip install` → "No virtual environment found" | Run `uv venv` first, or use `uv tool install tooluniverse` for just the `tu` command. |
|
||||
| `requires-python >= 3.10` | `uv python install 3.12` |
|
||||
| `uvx: command not found` | Run install script from Step 2, restart terminal |
|
||||
| Context window overflow | Verify using `uvx tooluniverse` (compact mode is default) |
|
||||
| `ModuleNotFoundError` | `uv pip install tooluniverse[all]` |
|
||||
| MCP server won't start | Test: `uvx tooluniverse` in terminal. Check JSON syntax. |
|
||||
| `ModuleNotFoundError` at tool runtime | An optional extra is missing. Run `tooluniverse-doctor` to see which group, then `uv pip install 'tooluniverse[ml]'` (or `[visualization]`, `[bioinformatics]`, `[all]`). |
|
||||
| Tools listed but fail when run | Normal for extras-backed tools — `tu status` counts loaded configs, not installed dependencies. `tooluniverse-doctor` reports which groups are missing. |
|
||||
| MCP server won't start | Test: `uvx tooluniverse` in terminal. Validate config with `python3 -m json.tool < <config>`. |
|
||||
| API key 401/403 | Check key in `env` block, restart app, verify key name |
|
||||
| Upgrade needed | `uv cache clean tooluniverse` then restart app |
|
||||
|
||||
**Health check**: `tooluniverse-doctor` reports tools that failed to load *and*
|
||||
which optional dependency groups are not installed. Use it first whenever a tool
|
||||
errors unexpectedly.
|
||||
|
||||
**`[all]` is not everything**: it covers `dev, docs, graph, visualization,
|
||||
space, embedding, ml, bioinformatics`. `singlecell`, `smolagents`, `client`,
|
||||
and `build` must be installed by name.
|
||||
|
||||
Still stuck? [GitHub issues](https://github.com/mims-harvard/ToolUniverse/issues) or email [Shanghua Gao](mailto:[email protected]).
|
||||
|
||||
## Quick Reference
|
||||
|
||||
+23
-3
@@ -1,8 +1,8 @@
|
||||
---
|
||||
lineage_type: import
|
||||
upstream_source: https://github.com/mims-harvard/ToolUniverse/blob/e2520a96/skills/tooluniverse-admet-prediction/SKILL.md
|
||||
upstream_sha: e2520a96
|
||||
imported_at: 2026-06-26
|
||||
upstream_source: https://github.com/mims-harvard/ToolUniverse/blob/089eb8e6/skills/tooluniverse-admet-prediction/SKILL.md
|
||||
upstream_sha: 089eb8e6
|
||||
imported_at: 2026-07-25
|
||||
prompt_class: unknown
|
||||
upstream_changes: accepted
|
||||
name: tooluniverse-admet-prediction
|
||||
@@ -33,6 +33,26 @@ Comprehensive pharmacokinetic and toxicity profiling integrating AI-based ADMET
|
||||
|
||||
**Input**: Drug name (e.g., "ibuprofen") OR SMILES string (e.g., "CC(C)Cc1ccc(cc1)C(C)C(=O)O")
|
||||
|
||||
## Before You Run
|
||||
|
||||
ADMETAI tools run a local model, so they need the `ml` extra:
|
||||
|
||||
```bash
|
||||
uv pip install 'tooluniverse[ml]'
|
||||
```
|
||||
|
||||
Without it the tools still appear in `tu list` (the config loads) but fail at
|
||||
call time with `ADMETModel requires 'admet-ai' package`. Run
|
||||
`tooluniverse-doctor` to confirm which optional groups are installed.
|
||||
|
||||
**Expected console noise — not errors.** The first ADMETAI call loads PyTorch
|
||||
and prints warnings such as missing-GPU / `Trainer` messages from
|
||||
PyTorch Lightning, and `TypedStorage is deprecated` from PyTorch. These are
|
||||
emitted by the underlying libraries during normal CPU inference. Predictions
|
||||
are unaffected — do not report them to the user as failures and do not retry
|
||||
the call because of them. Only treat output as a failure if the tool returns an
|
||||
`error` field or no predictions.
|
||||
|
||||
---
|
||||
|
||||
## COMPUTE, DON'T DESCRIBE
|
||||
|
||||
Reference in New Issue
Block a user