pub struct ResourceTemplate {
pub annotations: Option<Annotations>,
pub description: Option<String>,
pub icons: Vec<Icon>,
pub meta: Option<Map<String, Value>>,
pub mime_type: Option<String>,
pub name: String,
pub title: Option<String>,
pub uri_template: String,
}Expand description
A template description for resources available on the server.
JSON schema
{
"description": "A template description for resources available on the server.",
"type": "object",
"required": [
"name",
"uriTemplate"
],
"properties": {
"_meta": {
"description": "See [General fields: _meta](https://modelcontextprotocol.io/specification/2025-11-25/basic/index#meta) for notes on _meta usage.",
"type": "object",
"additionalProperties": {}
},
"annotations": {
"description": "Optional annotations for the client.",
"$ref": "#/$defs/Annotations"
},
"description": {
"description": "A description of what this template is for.\n\nThis can be used by clients to improve the LLM's understanding of available resources. It can be thought of like a \"hint\" to the model.",
"type": "string"
},
"icons": {
"description": "Optional set of sized icons that the client can display in a user interface.\n\nClients that support rendering icons MUST support at least the following MIME types:\n- image/png - PNG images (safe, universal compatibility)\n- image/jpeg (and image/jpg) - JPEG images (safe, universal compatibility)\n\nClients that support rendering icons SHOULD also support:\n- image/svg+xml - SVG images (scalable but requires security precautions)\n- image/webp - WebP images (modern, efficient format)",
"type": "array",
"items": {
"$ref": "#/$defs/Icon"
}
},
"mimeType": {
"description": "The MIME type for all resources that match this template. This should only be included if all resources matching this template have the same type.",
"type": "string"
},
"name": {
"description": "Intended for programmatic or logical use, but used as a display name in past specs or fallback (if title isn't present).",
"type": "string"
},
"title": {
"description": "Intended for UI and end-user contexts — optimized to be human-readable and easily understood,\neven by those unfamiliar with domain-specific terminology.\n\nIf not provided, the name should be used for display (except for Tool,\nwhere annotations.title should be given precedence over using name,\nif present).",
"type": "string"
},
"uriTemplate": {
"description": "A URI template (according to RFC 6570) that can be used to construct resource URIs.",
"type": "string",
"format": "uri-template"
}
}
}Fields§
§annotations: Option<Annotations>Optional annotations for the client.
description: Option<String>A description of what this template is for. This can be used by clients to improve the LLM’s understanding of available resources. It can be thought of like a “hint” to the model.
icons: Vec<Icon>Optional set of sized icons that the client can display in a user interface. Clients that support rendering icons MUST support at least the following MIME types: - image/png - PNG images (safe, universal compatibility) - image/jpeg (and image/jpg) - JPEG images (safe, universal compatibility) Clients that support rendering icons SHOULD also support: - image/svg+xml - SVG images (scalable but requires security precautions) - image/webp - WebP images (modern, efficient format)
meta: Option<Map<String, Value>>See General fields: _meta for notes on _meta usage.
mime_type: Option<String>The MIME type for all resources that match this template. This should only be included if all resources matching this template have the same type.
name: StringIntended for programmatic or logical use, but used as a display name in past specs or fallback (if title isn’t present).
title: Option<String>Intended for UI and end-user contexts — optimized to be human-readable and easily understood, even by those unfamiliar with domain-specific terminology. If not provided, the name should be used for display (except for Tool, where annotations.title should be given precedence over using name, if present).
uri_template: StringA URI template (according to RFC 6570) that can be used to construct resource URIs.
Trait Implementations§
Source§impl Clone for ResourceTemplate
impl Clone for ResourceTemplate
Source§fn clone(&self) -> ResourceTemplate
fn clone(&self) -> ResourceTemplate
1.0.0§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for ResourceTemplate
impl Debug for ResourceTemplate
Source§impl<'de> Deserialize<'de> for ResourceTemplate
impl<'de> Deserialize<'de> for ResourceTemplate
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>,
Auto Trait Implementations§
impl Freeze for ResourceTemplate
impl RefUnwindSafe for ResourceTemplate
impl Send for ResourceTemplate
impl Sync for ResourceTemplate
impl Unpin for ResourceTemplate
impl UnwindSafe for ResourceTemplate
Blanket Implementations§
§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§unsafe fn clone_to_uninit(&self, dest: *mut u8)
unsafe fn clone_to_uninit(&self, dest: *mut u8)
clone_to_uninit)