The contract a host implements to tell a BeamMCP.Server which tools exist.
The server holds no catalog of its own. It advertises what all/0 returns and accepts a
tools/call only for a tool all/0 names, so one implementation governs both — a tool
advertised by tools/list and refused by tools/call is the defect this behaviour exists
to make impossible.
Summary
Callbacks
@callback all() :: [BeamMCP.ToolSpec.t()]