Skip to main content

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}