Put llm and kai_decide on the default hanzo-mcp surface

Every mode disables a registered tool it does not list, and llm was
listed nowhere but HEAVY_TOOLS, written when it pulled a 100 MB client.
It is an HTTP call to api.hanzo.ai now, so llm and kai_decide join the
essential set every personality carries, and the llm package maps to the
two tools it ships.

hanzo-mcp 0.15.19, on hanzo-tools 0.3.8 and hanzo-tools-llm 0.2.1.

Co-authored-by: Hanzo Dev <[email protected]>
This commit is contained in:
zooqueen
2026-10-04 13:55:32 -07:00
co-authored by Hanzo Dev
parent 034e1a6caf
commit 5c0cc67e39
7 changed files with 13 additions and 7 deletions
@@ -86,6 +86,7 @@ _PREFIX_TO_CATEGORY: dict[str, ToolCategory] = {
"curl": ToolCategory.net,
"wget": ToolCategory.net,
"llm": ToolCategory.llm,
"kai_decide": ToolCategory.llm,
"consensus": ToolCategory.llm,
"api": ToolCategory.api,
"hanzo": ToolCategory.api,
@@ -178,6 +178,7 @@ def register_all_tools(
# LLM tools
resolved_enabled_tools["llm"] = is_tool_enabled("llm", True)
resolved_enabled_tools["kai_decide"] = is_tool_enabled("kai_decide", True)
resolved_enabled_tools["consensus"] = is_tool_enabled("consensus", True)
# Vector tools (usually disabled by default unless config provided)
@@ -52,7 +52,7 @@ PACKAGE_TOOL_PREFIXES: dict[str, list[str]] = {
"agent": ["agent", "zen", "review"],
"jupyter": ["jupyter"],
"editor": ["neovim_edit", "neovim_command", "neovim_session"],
"llm": ["llm", "consensus"],
"llm": ["llm", "kai_decide"],
"vector": ["index", "vector_index", "vector_search"],
"config": ["config", "mode", "workspace"],
"mcp_tools": ["mcp"],
@@ -32,7 +32,6 @@ ESSENTIAL_SYSTEM_TOOLS: Set[str] = {
# Heavy tools that are disabled by default (opt-in)
# These require large dependencies like llm
HEAVY_TOOLS: Set[str] = {
"llm", # Requires llm (~100MB+ deps)
"consensus", # Requires llm
}
@@ -116,6 +116,11 @@ ESSENTIAL_TOOLS = [
"critic",
# Agent spawning
"agent",
# Models through Hanzo: completions Enso routes, the catalog with prices,
# feedback (llm); typed questions to Kai (kai_decide). Both are HTTP calls
# to api.hanzo.ai, with nothing heavy to install.
"llm",
"kai_decide",
# Hanzo cloud — one tool projecting every service from the OpenAPI registry.
# It is an axis like the rest: the single seam to the platform, and the tool
# the per-service cloud tools are retired in favour of. A mode omitting it
@@ -131,7 +136,6 @@ ESSENTIAL_TOOLS = [
# Heavy tools (require large dependencies like llm)
# These are opt-in only, not included by default
HEAVY_TOOLS = [
"llm",
"consensus",
]
@@ -77,7 +77,8 @@ class ToolListTool(BaseTool):
("vector", "Semantic search (search/index/stats/clear)"),
],
"ai": [
("llm", "LLM interface (query/consensus/list/models/enable/disable)"),
("llm", "Models through Hanzo: query (Enso routes), models (with prices), feedback"),
("kai_decide", "Typed questions to Kai, Hanzo's decision model"),
("agent", "AI agents (run/start/call/stop/list with A2A support)"),
("swarm", "Parallel agent execution across multiple files"),
(
+3 -3
View File
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
[project]
name = "hanzo-mcp"
version = "0.15.18"
version = "0.15.19"
description = "The Zen of Hanzo MCP: One server to rule them all. The ultimate MCP that orchestrates all others."
readme = "README.md"
requires-python = ">=3.12"
@@ -30,7 +30,7 @@ dependencies = [
"hanzo-async>=0.1.3",
"uvloop>=0.22.1; sys_platform != 'win32'",
# Hanzo tool infrastructure (all tools)
"hanzo-tools>=0.3.6", # 0.3.6 carries capture(): downscaled inline, full-res on disk
"hanzo-tools>=0.3.8", # 0.3.8 carries extra request headers (Enso's bounds) and DEFAULT_ACTION
"hanzo-tools-fs>=0.3.4", # 0.3.4 returns image files as native MCP ImageContent
"hanzo-tools-shell>=0.6.5", # 0.6.5 pairs with hanzo-tools>=0.3.0 (ToolError)
"hanzo-tools-core>=0.3.1", # 0.3.1 is the EMPTY shim — no longer shadows canonical hanzo-tools.core
@@ -43,7 +43,7 @@ dependencies = [
# 0.2.1 fixes ConfigTool passing permission_manager positionally into BaseTool.__init__
"hanzo-tools-config>=0.2.1",
"hanzo-tools-refactor>=0.1.0",
"hanzo-tools-llm>=0.1.0",
"hanzo-tools-llm>=0.2.1", # 0.2.1 is llm over api.hanzo.ai (Enso) and kai_decide
"hanzo-tools-code>=0.1.0",
"hanzo-tools-vcs>=0.1.0",
"hanzo-tools-net>=0.1.0",