# ToolDefinition

- **Package:** LibTmuxMCP
- **Language:** Swift
- **Kind:** struct
- **Source:** https://github.com/libtmux/libtmux-swift/blob/254f8b2be7eb60cacc3ffcb3ea8e456784f582df/Sources/LibTmuxMCP/ToolCatalog.swift#L223
- **Page:** https://libtmux.org/en/swift/latest/mcp/reference/tooldefinition/

One MCP tool as a client sees it: what to call it, and what it is for.

The prose fields are the model's only basis for choosing between tools, so
they carry the distinction rather than restating the name — see
``summary`` and the guidance after it.

## Members

- `name` (property): What the client names in a ``ToolCall``.
- `title` (property): A short human label, shown by clients that render one.
- `summary` (property): What the tool answers, for a model choosing between them. First line of the description, and the only part some clients show.
- `detail` (property): When to reach for this one rather than a neighbour, and what the result means. Empty for tools whose summary says everything.
- `arguments` (property)
- `outputSchema` (property): What the tool answers with, when that shape is guaranteed. Declared only where it is: MCP requires `structuredContent` to conform to this, so a schema the server may break is worse than none at all.
- `toolset` (property)
- `processReach` (property)
- `tmuxEffects` (property)
- `outputClasses` (property)
- `mayExposeSecrets` (property)
- `mayReturnUntrustedContent` (property)
- `explicitAnnotations` (property)
- `inputSinks` (property)
- `nestedAuthority` (property)
- `amplifiesFutureInput` (property)
