Discovery
Runs when an operator connects a server and whenever they press Re-discover. Never inside a conversation — it is two round trips, and a customer is waiting.1
initialize
Handshake. The platform stores your protocol version and
serverInfo.2
tools/list
Each tool is validated (name, description, schema) and stored.
3
Reconciled
New tools are added disabled. Tools you no longer offer are deleted.
Descriptions and schemas are refreshed.
The two gates
A tool is callable only when both are true:Operator enabled it
Per tool, in the ops console. This is the incident switch: one misbehaving
tool goes off in seconds without touching your server.
Customer enabled the capability
Connected tools on the assistant. Their workspace, their choice.
Inside a turn
1
Resolved once
The platform reads the enabled tools from its cache — one lookup per turn,
no network.
2
Declared to the model
Your tools are offered alongside the built-ins, namespaced, with
finish_turn always last.3
Called
tools/call with your bare tool name and the model’s arguments.4
Fed back
The result is appended to the conversation and the model continues — often
calling another tool before it replies.

