A tool without an owner is just a function looking for trouble.
1. Motivation
A global registry makes short demos look convenient until two applications registermath-tools, one application deletes another’s revision, or a server silently opens the wrong database.
HeavenBase makes the workspace explicit instead:
2. Create a Workspace-Owned Toolkit
Createmath_tools.py:
quickstart/math-tools:1.
3. Load and Serve from Another Process
The serving process opens the same workspace explicitly:math_tools.py because the workspace retains the captured Capsules. The process still needs the same HeavenBase home, workspace registration, and artifact store; persistence is workspace-scoped, not ambient or magically cross-machine.
The server listens at http://127.0.0.1:7001/mcp by default. Use one transport per process:
4. Inspect and Serve with the CLI
Every Toolkit command accepts the owning workspace:5. Start the HTTP server without a serving script:
5. Connect a Client
Keep the server running, then configure one client for its Streamable HTTP URL.- Claude Code
- Codex
- VS Code
Add and verify the server:Start a new session and run
/mcp to inspect the discovered tools.hb mcp mcp-json quickstart.math-tools --workspace math-demo and adapt only the client-specific wrapper key.
6. Try It Out
Ask the connected agent:multiply and add from their signatures and docstrings, calls them, and should return 3085.
Summary
- Concrete Toolkits and their referenced Capsules belong to an explicit workspace.
- Registration may outlive the source file, but loading still requires the same workspace authority.
- Python and CLI operations use the same workspace-owned rows.
- Workspace-bound tools are trusted executable code, not inert data.

