hanzo-mcp
A Model Context Protocol server. It gives an MCP client — Claude Desktop, an editor, an agent — filesystem, shell, search and agent tools over one connection.
Install
pip install hanzo-mcp
Run
hanzo-mcp # stdio, the transport clients speak
hanzo-mcp --transport sse --host 127.0.0.1 --port 8888
hanzo-mcp --install # write the config into Claude Desktop
Point it at what it may touch, and nothing else:
hanzo-mcp --allow-path ~/work/project --project-dir ~/work/project
--allow-path may be repeated. Every filesystem tool refuses a path outside the
set, and .. and ~ are refused before resolution.
Flags
| flag | what it does |
|---|---|
--transport {stdio,sse} |
how the client connects; stdio by default |
--allow-path PATH |
grant access to a path; repeatable |
--project-dir DIR |
the project root, also granted |
--enable-agent |
let the server delegate to sub-agents |
--agent-model, --agent-api-key, --agent-base-url |
which model the agent tool calls |
--disable-write-tools |
read-only: no write, edit or shell mutation |
--disable-search-tools |
drop the search family |
--command-timeout, --search-timeout, --find-timeout, --ast-timeout |
per-family limits, in seconds |
--shell, --force-shell, --all-shells |
which shell the shell tools use |
--log-level LEVEL |
server logging |
hanzo-mcp --help prints the whole set; --version prints the build.
Tools
The server registers what the installed hanzo-tools-* packages provide — each
one publishes a TOOLS list under the hanzo.tools entry point, and the server
loads every package it finds. hanzo-tools-fs, hanzo-tools-shell and
hanzo-tools-core come with this package; install another and its tools appear
on the next start.
pip install hanzo-tools-git hanzo-tools-sql
In a client
Claude Desktop, claude_desktop_config.json — or hanzo-mcp --install, which
writes it for you:
{
"mcpServers": {
"hanzo": {
"command": "hanzo-mcp",
"args": ["--allow-path", "/Users/you/work"]
}
}
}
Embedding it
from hanzo_mcp.server import HanzoMCPServer
server = HanzoMCPServer(name="hanzo", allowed_paths=["/Users/you/work"])
server.run(transport="stdio")
run blocks, and takes the transport. The rest of what the CLI accepts —
allowed_paths, project_dir, enable_agent_tool, disable_write_tools,
disable_search_tools, the timeouts — are constructor keywords.
Development
uv sync
uv run pytest tests/ -v
License
Apache-2.0.
Metadata
Release files for hanzo-mcp 0.15.20
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| hanzo_mcp-0.15.20.tar.gz | 278.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| hanzo_mcp-0.15.20-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 492.2 kB
Release files / hanzo_mcp-0.15.20.tar.gz
| Download URL | hanzo_mcp-0.15.20.tar.gz |
|---|---|
| Size | 278.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
086fbbe8f63fcab44b663a7cd41d75361a214211e0d67062c4dd071428140443
|
|
BLAKE2b-256 checksum How to use checksums |
8e37c89be96fd61dcad8019e61e1a701032144b1d63385ab9ddc8c99148409b3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.9
|
Release files / hanzo_mcp-0.15.20-py3-none-any.whl
| Download URL | hanzo_mcp-0.15.20-py3-none-any.whl |
|---|---|
| Size | 213.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
c737b1508f62aa259a6b1670fa2d620797d5c509e03cbaf3b1cecb560bfe5a74
|
|
BLAKE2b-256 checksum How to use checksums |
26031792f9c00533c6d2532f40825d2206ad7955aa12bd9923dac4a437e28c25
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.9
|