Registered in name order, not the order the caller happened to pass.
The 2026-07-28 revision requires list results to be deterministic so a client
can keep an upstream prompt cache stable across reconnects. Iterating the
caller's array is already stable within a process, but only incidentally —
it inherits whatever order a module index produced. Sorting states the
guarantee instead of relying on it. The caller's array is not mutated.
The spec permits a list to vary by the authorization on the request, but not
per connection. Ours varies by neither: withToolAuth wraps the handler, not
the metadata.
Registered in name order, not the order the caller happened to pass.
The 2026-07-28 revision requires list results to be deterministic so a client can keep an upstream prompt cache stable across reconnects. Iterating the caller's array is already stable within a process, but only incidentally — it inherits whatever order a module index produced. Sorting states the guarantee instead of relying on it. The caller's array is not mutated.
The spec permits a list to vary by the authorization on the request, but not per connection. Ours varies by neither:
withToolAuthwraps the handler, not the metadata.