Skip to content

Latest commit

 

History

History
134 lines (96 loc) · 3.86 KB

File metadata and controls

134 lines (96 loc) · 3.86 KB

CLI Reference

Commands

toolmaker discover

Analyze repository and generate task specifications.

uv run python -m toolmaker discover <GITHUB_URL> [OPTIONS]
Option Type Default Description
--output, -o Path tasks/ Output directory for task.yaml files
--max-notebooks, -n int 5 Limit notebooks to process
--interactive, -i bool true Prompt for confirmation
--min-confidence float 0.5 Minimum confidence threshold for auto-saving

Exit codes: 0 success, 1 no notebooks found, 2 parse error


toolmaker auto

Full pipeline: discover → install → create → validate → wrap.

uv run python -m toolmaker auto <GITHUB_URL> --name <TOOL_NAME> [OPTIONS]
Option Type Default Description
--name str required Tool name (slug format)
--output-mcp flag false Generate MCP server
--output-tooluniverse flag false Generate ToolUniverse wrapper
--output-dir Path tool_output/ Output directory
--notebooks list[str] auto Specific notebooks to process
--yes flag false Skip confirmation prompts

Exit codes: 0 success, 1 discovery failed, 2 validation failed, 3 wrapping failed


toolmaker wrap

Wrap existing validated tool as MCP server.

uv run python -m toolmaker wrap <TOOL_DIR> --output <OUTPUT_PATH> [OPTIONS]
Option Type Default Description
--output Path required Output MCP server path
--server-name str auto MCP server name

toolmaker tooluniverse

Generate ToolUniverse wrapper from validated tool.

uv run python -m toolmaker tooluniverse <TOOL_DIR> [OPTIONS]
Option Type Default Description
--output Path auto Output tool class path
--config-output Path auto Output config JSON path

toolmaker install (existing)

Install dependencies for a task.

uv run python -m toolmaker install <TASK_PATH> --name <NAME>

toolmaker create (existing)

Create tool with self-correction loop.

uv run python -m toolmaker create <TASK_PATH> --name <NAME> --installed <INSTALLED_NAME>

Examples

# Full pipeline with MCP + ToolUniverse output
uv run python -m toolmaker auto \
  https://github.com/scverse/scanpy \
  --name scanpy_preprocess \
  --notebooks "docs/tutorials/basics/clustering.ipynb" \
  --output-mcp \
  --output-tooluniverse

# Discovery only (review before proceeding)
uv run python -m toolmaker discover \
  https://github.com/scverse/scanpy \
  --output tasks/

# Wrap existing tool
uv run python -m toolmaker wrap \
  tool_output/tools/my_tool \
  --output my_tool_mcp.py

# Traditional flow then wrap
uv run python -m toolmaker install benchmark/tasks/my_task --name my_tool_installed
uv run python -m toolmaker create benchmark/tasks/my_task --name my_tool --installed my_tool_installed
uv run python -m toolmaker wrap tool_output/tools/my_tool --output my_tool_mcp.py

Environment Variables

Variable Description Example
TOOLMAKER_LLM_BACKEND Backend type ollama, vllm, openai_compatible, litellm
TOOLMAKER_MODEL Model name qwen2.5-coder:7b
OLLAMA_BASE_URL Ollama server URL http://localhost:11434
VLLM_BASE_URL vLLM server URL http://localhost:8000/v1
OPENAI_API_BASE OpenAI-compatible API URL http://localhost:8080/v1
OPENAI_API_KEY API key (for compatible APIs) sk-... or dummy
LOCAL_LLM_ENDPOINT LiteLLM API base URL http://localhost:8000/v1
TOOLMAKER_DEBUG Enable verbose logging 1
CUDA_VISIBLE_DEVICES GPU selection 0