---
title: Tool
order: 2
description: "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, each a read of the workspace model or a run of the CLI it already has."
tags: [glossary, agents]
---

# 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.

```sh
magus describe mcp-tool
```

## Used in

<!-- BEGIN GLOSSARY USAGE (generated by glossary-usage-generate from the knowledge graph; edit the generator, not this list) -->

In the docs:

- [The build-tool comparison](../benchmarks.md#the-build-tool-comparison)
- [tool calls](../benchmarks/2026-09-10/anthropic/claude-opus-5.md#tool-calls)
- [tool calls](../benchmarks/2026-09-10/anthropic/claude-sonnet-5.md#tool-calls)
- [Tool versions (observed)](../benchmarks/build-tools.md#tool-versions-observed)
- [A known leak: a multi-line tool probe lands whole in the key](../concepts/cache/output-refs.md#a-known-leak-a-multi-line-tool-probe-lands-whole-in-the-key)
- [Tool identity](../concepts/cache/tool-identity.md#tool-identity)

In the code (`magus refs <name>` lists every site):

- `spells.Tool` (Go)
- `mcp.Tool` (Go)

<!-- END GLOSSARY USAGE -->

## See also

- [Agent](agent.md)
- [Harness](harness.md)
- [Daemon](daemon.md)
