# `ExMCP.Server.Tools.Builder.Tool`
[🔗](https://github.com/azmaveth/ex_mcp/blob/v1.0.0/lib/ex_mcp/server/tools/builder.ex#L16)

Runtime representation of a tool definition.

# `param`

```elixir
@type param() :: %{
  name: atom(),
  type: atom() | {atom(), any()},
  required: boolean(),
  default: any(),
  schema: map() | nil
}
```

# `t`

```elixir
@type t() :: %ExMCP.Server.Tools.Builder.Tool{
  annotations: map(),
  description: String.t(),
  handler: function(),
  input_schema: map() | nil,
  name: String.t(),
  output_schema: map() | nil,
  params: [param()],
  title: String.t() | nil
}
```

---

*Consult [api-reference.md](api-reference.md) for complete listing*
