Reading a protocol specification rather than a client library

An hour with a specification, against a week of inferring behaviour from a library’s source.

the questions the specification answered directly:

  what a server must respond to a request it does not
    understand
  whether a client may call a tool it did not see in
    the tool list
  what happens to an in-flight request when the
    connection drops
  whether resource URIs are opaque or structured

none of these are in the library's documentation, and
three of them are decisions the server has to make.

A client library encodes one interpretation of a specification and the parts it does not exercise are invisible in it. Writing a server means answering the questions a client never asks, which is a different reading — and the specification is forty pages against a library of four thousand lines.