rust_mcp_sdk/mcp_traits/details.rs
1use rust_mcp_schema::{ClientCapabilities, Implementation, ResultMetaObject, ServerCapabilities};
2
3/// Server identity, capabilities and instructions for an MCP server.
4///
5/// The 2026-07-28 protocol has no `initialize` handshake: these details are
6/// advertised via `server/discover` (capabilities, instructions, supportedVersions)
7/// and the server identity is stamped on responses via
8/// `_meta["io.modelcontextprotocol/serverInfo"]`.
9pub struct ServerDetails {
10 pub server_info: Implementation,
11 pub capabilities: ServerCapabilities,
12 pub instructions: Option<String>,
13 pub meta: Option<ResultMetaObject>,
14}
15
16/// Client identity and capabilities for an MCP client.
17///
18/// The 2026-07-28 protocol has no `initialize` handshake: these details are declared
19/// on every request via `_meta` (`RequestMetaObject`) — see
20/// `io.modelcontextprotocol/clientInfo` and `io.modelcontextprotocol/clientCapabilities`.
21#[derive(Clone)]
22pub struct ClientDetails {
23 pub client_info: Implementation,
24 pub capabilities: ClientCapabilities,
25}