initialize is gated by a capability the server
advertised. Clients check supports(...) before calling — failures surface
client-side as CapabilityMissing (-32003) before any I/O.
retrieve is the workhorse: a single call can drive query transform, hybrid
recall, rerank, MMR diversification, recency weighting, metadata filtering, and
citation assembly — whatever the engine advertises.Naming conventions
- Method names are
<verb>or<verb>/<sub>—retrieve,index/add. - The
notifications/prefix is reserved for protocol notifications (noid). - The
x-<vendor>/<name>space is for vendor extensions.
Always-available methods
Four methods need no capability and (except where noted) work at any time:initialize / info
Handshake and stateless identity.
info and ping answer even before
initialize.ping
Liveness and round-trip timing; echoes a nonce.
shutdown
Graceful close; EOF on stdin is equivalent.
notifications/cancel
Abandon an in-flight request; best-effort, no response.