#[non_exhaustive]pub struct Implementation {
pub name: String,
pub title: Option<String>,
pub version: String,
pub website_url: Option<String>,
pub description: Option<String>,
pub icons: Option<Vec<IconInfo>>,
}Expand description
Implementation information.
§Backward Compatibility
This struct is #[non_exhaustive]. Use the constructor and fluent
methods to remain forward-compatible:
use pmcp::types::protocol::Implementation;
let info = Implementation::new("my-server", "1.0.0")
.with_title("My Server")
.with_description("A great server");Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Non-exhaustive structs could have additional fields added in future. Therefore, non-exhaustive structs cannot be constructed in external crates using the traditional
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.name: StringImplementation name (e.g., “mcp-sdk-rust”)
title: Option<String>Optional human-readable title (MCP 2025-11-25)
version: StringImplementation version
website_url: Option<String>Optional website URL (MCP 2025-11-25)
description: Option<String>Optional description (MCP 2025-11-25)
icons: Option<Vec<IconInfo>>Optional icons (MCP 2025-11-25)
Implementations§
Source§impl Implementation
impl Implementation
Sourcepub fn new(name: impl Into<String>, version: impl Into<String>) -> Self
pub fn new(name: impl Into<String>, version: impl Into<String>) -> Self
Create an Implementation with just name and version.
The optional 2025-11-25 fields (title, website_url, description, icons)
default to None.
Sourcepub fn with_title(self, title: impl Into<String>) -> Self
pub fn with_title(self, title: impl Into<String>) -> Self
Set a human-readable title (MCP 2025-11-25).
Sourcepub fn with_website_url(self, url: impl Into<String>) -> Self
pub fn with_website_url(self, url: impl Into<String>) -> Self
Set the website URL (MCP 2025-11-25).
Sourcepub fn with_description(self, description: impl Into<String>) -> Self
pub fn with_description(self, description: impl Into<String>) -> Self
Set a human-readable description (MCP 2025-11-25).
Sourcepub fn with_icons(self, icons: Vec<IconInfo>) -> Self
pub fn with_icons(self, icons: Vec<IconInfo>) -> Self
Set icons for the implementation (MCP 2025-11-25).
Trait Implementations§
Source§impl Clone for Implementation
impl Clone for Implementation
Source§fn clone(&self) -> Implementation
fn clone(&self) -> Implementation
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for Implementation
impl Debug for Implementation
Source§impl Default for Implementation
impl Default for Implementation
Source§fn default() -> Implementation
fn default() -> Implementation
Returns the “default value” for a type. Read more
Source§impl<'de> Deserialize<'de> for Implementation
impl<'de> Deserialize<'de> for Implementation
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations§
impl Freeze for Implementation
impl RefUnwindSafe for Implementation
impl Send for Implementation
impl Sync for Implementation
impl Unpin for Implementation
impl UnsafeUnpin for Implementation
impl UnwindSafe for Implementation
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more