Discovery modes
| Mode | tools/list advertises |
Best for |
|---|---|---|
lazy |
toolport_status, toolport_search_tools, toolport_call_tool, toolport_fetch_result |
Capable models; constant context regardless of server count |
grouped |
The 4 meta-tools plus one help_<server> per server |
Weaker or local models (e.g. a 7B) |
full |
toolport_status, toolport_fetch_result and the scoped catalog (server__tool) |
Debugging, or small setups where full schemas are affordable |
Lazy#
The model searches with toolport_search_tools, then calls with toolport_call_tool. Context stays the same size no matter how many servers you connect.
Grouped#
Instead of inventing a search query, the model picks a server by name. help_stripe with the query refund returns stripe__create_refund, ready to call with toolport_call_tool.
Context cost is roughly 4 plus the number of servers, so grouped fits a handful of tool-heavy servers, like Stripe's 587 tools behind one help_stripe. It is not worth it for many tiny servers.
Grouped mode adds no new execution surface. Every call still goes through toolport_call_tool, with the same approval, destructive-call gate, scope checks and result shaping as lazy and full.
Full#
Every tool in scope is exposed directly. Useful for clients that already have native tool search, such as Claude Code and Codex.
Semantic search (optional)#
Lazy search ranks tools lexically by default. To blend in embeddings for paraphrased queries, point it at any /v1/embeddings endpoint (LM Studio, Ollama or a cloud provider):
TOOLPORT_SEMANTIC=on
TOOLPORT_EMBED_ENDPOINT=<your-endpoint>/v1/embeddings
TOOLPORT_EMBED_MODEL=<model>TOOLPORT_EMBED_KEY and TOOLPORT_EMBED_BLEND are optional.
Code mode#
Code mode (toolport_run_script) is on by default; a Settings kill switch turns it off, and TOOLPORT_CODE_MODE=1 force-enables it. Each in-script tool call still respects profile scope and human approval. Scripts get a 60-second wall-clock budget, at most four run at once, and each worker has a 512 MiB allocation budget.
Code mode is not a security boundary. Rely on profile scope and approvals, not on the script sandbox.