An MCP server with thirteen tools
It gives a model a shell, a filesystem, a code index, git, HTTP, and your project's own context, over stdio or streamable HTTP. Point any MCP client at it and the tools show up.
Open source, MIT. Same tool names and schemas in TypeScript, Python, and Rust — one surface, three runtimes.
A catalog of 260 collapsed into 13
A tool list is a prompt. Two hundred entries crowd out the work, and a model picks badly among near-duplicates. So each tool here is one noun with a set of verbs: you call fs with read, or exec with run, and the schema tells the model what the verb needs.
Seven nouns, always on
fs for bytes and paths. exec for processes. code for symbols. git for history. fetch for HTTP. workspace for the project you are in. ui for components. Six more — think, memory, plan, tasks, mode, and the Hanzo platform itself — are there when you want them.
Nothing runs that you did not enable
Community tools shell out to binaries someone else wrote, so they are off until you name them: hanzo-mcp serve --enable-community-cryptuon. Drop tools you do not want with --disable-tools. The default surface is the thirteen and nothing else.
The same surface everywhere
npm, PyPI, and a Rust crate carry the identical tool names and action schemas, so an agent written against one runtime moves to another without relearning its tools.
What each one does
Every tool takes an action and the arguments that action needs. These are the verbs.
fs
read, write, stat, list, mkdir, rm, mv, apply_patch, search_text. Bytes and paths, including the patch verb an agent needs to edit a file it did not write whole.
exec
run, background, ps, kill, logs. A command that outlives the call goes to background and you read it back through logs, so a dev server does not hold the turn open.
code
parse, search, transform, summarize. Search by symbol rather than by string, so renaming a function finds the callers and not the comments that mention it.
git and fetch
git does status, diff, log, commit, branch, stash. fetch does get, post, put, delete, download — the ordinary HTTP verbs, plus the one that writes the body to a file.
workspace, think, memory
workspace answers info, config, env, dependencies about the project you are actually in. think records structured reasoning. memory persists past the session.
ui, plan, tasks, mode, hanzo
ui lists, searches, fetches and installs components. plan and tasks hold the work. mode switches presets. hanzo reaches IAM, KMS, PaaS, and Commerce.
One config block
Use the --package= form. Without it npx resolves "serve" as a separate package and runs an unrelated static-file server instead — on every platform.
// .mcp.json — add Hanzo MCP to any MCP client
{
"mcpServers": {
"hanzo": {
"command": "npx",
"args": ["-y", "--package=@hanzo/mcp", "hanzo-mcp", "serve"]
}
}
}
// Or install it and run the server yourself:
// npm install -g @hanzo/mcp && hanzo-mcp serve
// hanzo-mcp list-tools
// hanzo-mcp install-desktopAdd it to your client
One block in .mcp.json, or install the binary and run hanzo-mcp serve yourself.
Up to 5% of compute goes back to open source
Every deployment is SBOM-verified. Contributors to the open source projects powering this product earn a share of compute revenue — transparent, on-chain, and customizable by the community.