turbomcp_protocol/types/
roots.rs1use serde::{Deserialize, Serialize};
7
8use super::core::Uri;
9
10#[derive(Debug, Clone, Serialize, Deserialize)]
12pub struct Root {
13 pub uri: Uri,
15 #[serde(skip_serializing_if = "Option::is_none")]
17 pub name: Option<String>,
18}
19
20#[derive(Debug, Clone, Serialize, Deserialize, Default)]
23pub struct ListRootsRequest {
24 #[serde(rename = "_meta", skip_serializing_if = "Option::is_none")]
26 pub _meta: Option<serde_json::Value>,
27}
28
29#[derive(Debug, Clone, Serialize, Deserialize)]
31pub struct ListRootsResult {
32 pub roots: Vec<Root>,
34 #[serde(skip_serializing_if = "Option::is_none")]
36 pub _meta: Option<serde_json::Value>,
37}
38
39#[derive(Debug, Clone, Serialize, Deserialize)]
41pub struct RootsListChangedNotification;