# `MingaAgent.MCP.Tool`
[🔗](https://github.com/jsmestad/minga/blob/main/lib/minga_agent/mcp/tool.ex#L1)

MCP tool metadata with both the original server name and Minga-safe name.

MCP servers may expose names that are not safe for LLM provider tool-name
restrictions. Native provider requests use `safe_name`; MCP calls use the
original `name` captured in the tool callback.

# `t`

```elixir
@type t() :: %MingaAgent.MCP.Tool{
  description: String.t(),
  input_schema: map(),
  name: String.t(),
  safe_name: String.t(),
  server_name: String.t()
}
```

Tool advertised by an MCP server.

# `from_list`

```elixir
@spec from_list(String.t(), [map()]) :: [t()]
```

Builds tool structs from a MCP `tools/list` result.

# `safe_name`

```elixir
@spec safe_name(String.t(), String.t()) :: String.t()
```

Returns the safe provider-facing name for a MCP tool.

---

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