Tool
An action a model can call through its host: a name, a description, a typed
input and a result. magus serves its tools over MCP (client, buzz,
status, console, config and diff), and each one is a read of the
workspace model or a run of the CLI magus already has, so a tool call and the
command a person types get the same answer.
The magusfile's tools key and magus describe tool name something else: the
toolchain binaries a spell drives (go, node), with the versions magus
probed.
Elsewhere
In Anthropic's tool use a tool is declared to the model by name, description and an
input_schema in JSON Schema; your code runs a client tool, and Anthropic runs a server
tool such as web search. MCP servers list tools with tools/list and run one with
tools/call, beside two other primitives, resources and prompts. Mastra builds one with
createTool({ id, description, inputSchema, outputSchema, execute }) and attaches it to an
agent. The shape is the same in all of them, and magus keeps it; what magus adds is that
its tools answer deterministically from the workspace model.
Example
magus describe mcp-tool lists the tools the daemon serves to an agent host.
magus describe mcp-tool
Used in
In the docs:
- The build-tool comparison
- tool calls
- tool calls
- Tool versions (observed)
- A known leak: a multi-line tool probe lands whole in the key
- Tool identity
In the code (magus refs <name> lists every site):
spells.Tool(Go)mcp.Tool(Go)