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
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
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 |
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 |
Install dependencies for a task.
uv run python -m toolmaker install <TASK_PATH> --name <NAME>Create tool with self-correction loop.
uv run python -m toolmaker create <TASK_PATH> --name <NAME> --installed <INSTALLED_NAME># 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| 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 |