For agents, on top of README.md, which they read first.
rmcptypes stay out of the public API.CommandServer,ServerIdentity,CommandTooland the error types are this crate's own; a consumer that has touse rmcp::…means something is missing here.- The enum must be internally tagged (
#[serde(tag = "…")]). Reflection reads the tag'sconstfrom each variant's schema and refuses an enum without one (ReflectError::UntaggedVariant) rather than guessing a name. - A handler's
Errand a call with bad arguments are tool results withis_error, not protocol errors, so the model sees the message and can correct the call. Only an unknown tool name is a protocol error. - The
rmcppin is thedeizel/rust-sdkfork; the reason is beside the pin in../Cargo.toml.