Expand description
The body of a tool-call REQUEST frame on a bound route.
The daemon splices route frames without reading their bodies, so this
shape is a contract between consumers (the MCP gateway, model runners)
and provider modules, not something the daemon enforces. Before this
type existed every consumer carried its own struct and every provider its
own reader, and the fields drifted: the gateway sent progress_token,
a model runner sent only name and arguments, and a provider that
needed the caller’s tool-call id had no field to read it from.
Decoding is deliberately tolerant of unknown members: a provider must
never refuse a call because a newer consumer added a key it does not
know. Omitted optionals decode as None; None optionals are omitted on
the wire, so a body carrying neither optional serializes exactly as the
two-field shape older consumers already send — this type is drop-in for
them without a wire change.
Structs§
- Tool
Call Request - A tool invocation as carried on a route
REQUESTframe.