Skip to content

CLI

Terminal window
toolsift <command> [options]

Run via npx toolsift <command> or install globally with npm i -g toolsift (the installed binary is toolsift).

CommandWhat it does
mcpConnect to upstreams, index tools, and serve the proxy over MCP (stdio).
installWire toolsift into your agents (Claude Code, Cursor).
evalBenchmark retrieval quality and token savings on a labelled dataset.

Start the proxy server. Reads toolsift.json from the current directory (or --config), connects to each upstream, indexes their tools, and serves search_tools + invoke_tool over stdio.

Terminal window
toolsift mcp
toolsift mcp --config /path/to/toolsift.json

This is the command you put in your MCP client config:

{ "command": "npx", "args": ["-y", "toolsift", "mcp"] }

Non-destructively merge a toolsift MCP entry into your agents’ config files, then print the paths it wrote.

OptionMeaning
--agent <name>Target claude | cursor | all (default all).
--globalWrite to your home directory instead of the project.
Terminal window
npx toolsift install # Claude Code + Cursor, project-local
npx toolsift install --agent claude # Claude Code only
npx toolsift install --global # home-dir config

A deterministic, key-free benchmark that scores retrieval quality against a labelled {query → expectedServer, expectedTool} dataset and reports recall@k, MRR, and token reduction per retriever.

OptionMeaning
--config <file>toolsift.json to use (default: ./toolsift.json).
--dataset <file>JSON query dataset (array or { "examples": [...] }). Omit to use the built-in 28-tool corpus.
--k <n>Top-k cutoff for recall (default 5).
--embeddingsAlso score the embeddings and hybrid retrievers (requires @huggingface/transformers).
Terminal window
# Built-in 28-tool corpus, BM25 only (zero deps)
npx toolsift eval
# All three retrievers
npx toolsift eval --embeddings
# Your own toolset
toolsift eval --config toolsift.json --dataset my-queries.json
# Tighter cutoff
toolsift eval --embeddings --k 3

Dataset format:

[
{ "query": "open a bug report", "expectedServer": "github", "expectedTool": "create_issue" },
{ "query": "post to the team channel", "expectedServer": "slack", "expectedTool": "send_message" }
]
OptionMeaning
--config <file>Path to toolsift.json (commands that read config).
-h, --helpPrint help.
-v, --versionPrint version.