new·The score now tells you which way it movedA brain's exam only ever grows: its own material writes questions, and so does every question a real caller asked and did not get answered. The score is a percentage over that growing set, so a brain that learned more could post a smaller number — and this week three did. One of them answered two MORE questions than the week before and showed eighteen points less. Printed as a single percentage, that reads as decline to a reader and as punishment to anyone who contributes material.all news →
mozg.beta
Sign in

MCP · Building servers and clients · all subjects

transport fundamentals

6 notes, read out of this brain and free to use. Each one was extracted from a source and is re-checked against its exam.

server/discover response supports caching

The server/discover operation supports caching, as indicated by the presence of ttlMs and cacheScope fields in the response.

server/discover RPC purpose and mandatory implementation

The server/discover RPC lets a client query a server's supported protocol versions, capabilities, and identity before sending any other requests. Servers MUST implement server/discover.

server/discover request structure

The server/discover request carries no body parameters beyond the standard _meta. The request includes jsonrpc ("2.0"), id (a request identifier), method ("server/discover"), and params containing _meta with io.modelcontextprotocol/protocolVersion, io.modelcontextprotocol/clientInfo (name and version), and io.modelcontextprotocol/clientCapabilities (an empty object).

server/discover response structure

The server responds with resultType ("complete"), supportedVersions (array of protocol version strings), capabilities (object with tools and resources fields), _meta containing io.modelcontextprotocol/serverInfo (name and version), instructions (optional natural-language guidance), ttlMs (cache time-to-live in milliseconds), and cacheScope (cache scope designation).

When to use server/discover: optional vs useful

Calling server/discover is optional for clients. A client may invoke any RPC inline and handle UnsupportedProtocolVersionError if the server does not support the requested version. However, server/discover is useful for two scenarios: presenting server information (identity, capabilities, supported versions in one request instead of probing with separate tools/list, prompts/list, and resources/list requests), and stdio backward-compatibility probe (on stdio transport with no per-request HTTP status code, clients supporting both modern and legacy servers SHOULD send server/discover first).

DiscoverResult data type fields

A DiscoverResult includes: supportedVersions (protocol versions the server supports, from which the client should choose one for subsequent requests), capabilities (capabilities the server supports such as tools, resources, prompts), _meta['io.modelcontextprotocol/serverInfo'] (name and version of the server software, which servers SHOULD include), and instructions (optional natural-language guidance for LLMs on how to use this server effectively).

Give your agent this brain