turbomcp_protocol/types/
requests.rs1use serde::{Deserialize, Serialize};
7
8use super::{
9 completion::CompleteRequestParams,
10 elicitation::ElicitRequestParams,
11 initialization::{InitializeRequest, InitializedNotification},
12 logging::{LoggingNotification, SetLevelRequest},
13 ping::PingParams,
14 prompts::{GetPromptRequest, ListPromptsRequest},
15 resources::{
16 ListResourceTemplatesRequest, ListResourcesRequest, ReadResourceRequest,
17 ResourceUpdatedNotification, SubscribeRequest, UnsubscribeRequest,
18 },
19 roots::{ListRootsRequest, RootsListChangedNotification},
20 sampling::CreateMessageRequest,
21 tools::{CallToolRequest, ListToolsRequest},
22};
23
24#[derive(Debug, Clone, Serialize, Deserialize)]
26#[serde(tag = "method")]
27pub enum ClientRequest {
28 #[serde(rename = "initialize")]
30 Initialize(InitializeRequest),
31
32 #[serde(rename = "tools/list")]
34 ListTools(ListToolsRequest),
35
36 #[serde(rename = "tools/call")]
38 CallTool(CallToolRequest),
39
40 #[serde(rename = "prompts/list")]
42 ListPrompts(ListPromptsRequest),
43
44 #[serde(rename = "prompts/get")]
46 GetPrompt(GetPromptRequest),
47
48 #[serde(rename = "resources/list")]
50 ListResources(ListResourcesRequest),
51
52 #[serde(rename = "resources/templates/list")]
54 ListResourceTemplates(ListResourceTemplatesRequest),
55
56 #[serde(rename = "resources/read")]
58 ReadResource(ReadResourceRequest),
59
60 #[serde(rename = "resources/subscribe")]
62 Subscribe(SubscribeRequest),
63
64 #[serde(rename = "resources/unsubscribe")]
66 Unsubscribe(UnsubscribeRequest),
67
68 #[serde(rename = "logging/setLevel")]
70 SetLevel(SetLevelRequest),
71
72 #[serde(rename = "completion/complete")]
74 Complete(CompleteRequestParams),
75
76 #[serde(rename = "ping")]
78 Ping(PingParams),
79}
80
81#[derive(Debug, Clone, Serialize, Deserialize)]
83#[serde(tag = "method")]
84pub enum ServerRequest {
85 #[serde(rename = "ping")]
87 Ping(PingParams),
88
89 #[serde(rename = "sampling/createMessage")]
91 CreateMessage(CreateMessageRequest),
92
93 #[serde(rename = "roots/list")]
95 ListRoots(ListRootsRequest),
96
97 #[serde(rename = "elicitation/create")]
99 ElicitationCreate(ElicitRequestParams),
100}
101
102#[derive(Debug, Clone, Serialize, Deserialize)]
104#[serde(tag = "method")]
105pub enum ClientNotification {
106 #[serde(rename = "notifications/initialized")]
108 Initialized(InitializedNotification),
109
110 #[serde(rename = "notifications/roots/list_changed")]
112 RootsListChanged(RootsListChangedNotification),
113}
114
115#[derive(Debug, Clone, Serialize, Deserialize)]
117#[serde(tag = "method")]
118pub enum ServerNotification {
119 #[serde(rename = "notifications/message")]
121 Message(LoggingNotification),
122
123 #[serde(rename = "notifications/resources/updated")]
125 ResourceUpdated(ResourceUpdatedNotification),
126
127 #[serde(rename = "notifications/resources/list_changed")]
129 ResourceListChanged,
130
131 #[serde(rename = "notifications/cancelled")]
133 Cancelled(CancelledNotification),
134
135 #[serde(rename = "notifications/prompts/list_changed")]
137 PromptsListChanged,
138
139 #[serde(rename = "notifications/tools/list_changed")]
141 ToolsListChanged,
142
143 #[serde(rename = "notifications/roots/list_changed")]
145 RootsListChanged,
146}
147
148#[derive(Debug, Clone, Serialize, Deserialize)]
150pub struct CancelledNotification {
151 #[serde(rename = "requestId")]
153 pub request_id: super::core::RequestId,
154 pub reason: Option<String>,
156}