Files
python-sdk/docs/tools/index.md
T
zeekay 2a8255df59 docs: improve DX with navigation and cross-references
- Update docs/mcp/tools/ placeholders with quick refs and links
- Create docs/ref/tools/index.md with full package table
- Create docs/ref/agent/index.md with topic links
- Create docs/ref/mcp/index.md with tool categories
- Create docs/tools/index.md as main entry point
- Add consistent cross-references between sections
2026-01-05 17:45:00 -08:00

3.4 KiB

Tools Overview

Complete documentation for all hanzo-tools-* packages.

Installation

# All tools (recommended)
pip install hanzo-mcp[tools-all]

# Core development tools
pip install hanzo-mcp[tools-dev]

# Individual packages
pip install hanzo-tools-shell hanzo-tools-browser

Tool Categories

Core Infrastructure

Package Tools Description
Core Base classes Foundation for tool development
Config 2 Configuration and mode management

File & Code Operations

Package Tools Description
Filesystem 7 read, write, edit, tree, find, search, ast
LSP 1 Language server protocol (definition, references, hover)
Refactor 1 Code refactoring (rename, extract, inline)

Shell & Execution

Package Tools Description
Shell 12 cmd, ps, zsh, bash, fish, dash, npx, uvx, open, curl, jq, wget
Computer 1 Mac automation via pyautogui

AI & Agents

Package Tools Description
Agent 3 Multi-agent orchestration (agent, iching, review)
LLM 2 Unified LLM interface (llm, consensus)
Reasoning 2 Structured thinking (think, critic)

Data & Memory

Package Tools Description
Memory 9 Persistent memory and knowledge bases
Database 8 SQL and graph database operations
Vector 3 Semantic search with embeddings

Specialized

Package Tools Description
Browser 1 Playwright automation (70+ actions)
Jupyter 1 Notebook read/edit/execute
Editor 3 Neovim integration
Todo 1 Task management
MCP 4 MCP server management

Quick Reference

Most Used Tools

# File operations
read(file_path="/path/to/file")
write(file_path="/path/to/file", content="...")
edit(file_path="/path/to/file", old_string="old", new_string="new")

# Command execution
cmd("ls -la")
cmd(["npm install", "npm build"], parallel=True)

# Search
search(pattern="TODO", path=".")
ast(pattern="def test_", path="/tests")

# Reasoning
think(thought="Analyzing the problem...")
critic(analysis="Code review findings...")

# Browser
browser(action="navigate", url="https://example.com")
browser(action="click", selector="button")

Tool Discovery

from importlib.metadata import entry_points

# Discover all available tools
for ep in entry_points(group="hanzo.tools"):
    tools = ep.load()
    print(f"{ep.name}: {[t.name for t in tools]}")

Architecture

All tools follow a consistent pattern:

from hanzo_tools.core import BaseTool, ToolContext

class MyTool(BaseTool):
    name = "my_tool"
    
    @property
    def description(self) -> str:
        return "Tool description"
    
    async def call(self, ctx: ToolContext, **params) -> str:
        # Implementation
        return result

See Also