turbomcp_protocol/types/
requests.rs1use serde::{Deserialize, Serialize};
7
8use super::{
9 completion::CompleteRequestParams,
10 elicitation::ElicitRequestParams,
11 initialization::{InitializeRequest, InitializedNotification},
12 logging::{LoggingNotification, ProgressNotification, 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/progress")]
112 Progress(ProgressNotification),
113
114 #[serde(rename = "notifications/roots/list_changed")]
116 RootsListChanged(RootsListChangedNotification),
117}
118
119#[derive(Debug, Clone, Serialize, Deserialize)]
121#[serde(tag = "method")]
122pub enum ServerNotification {
123 #[serde(rename = "notifications/message")]
125 Message(LoggingNotification),
126
127 #[serde(rename = "notifications/resources/updated")]
129 ResourceUpdated(ResourceUpdatedNotification),
130
131 #[serde(rename = "notifications/resources/list_changed")]
133 ResourceListChanged,
134
135 #[serde(rename = "notifications/progress")]
137 Progress(ProgressNotification),
138
139 #[serde(rename = "notifications/cancelled")]
141 Cancelled(CancelledNotification),
142
143 #[serde(rename = "notifications/prompts/list_changed")]
145 PromptsListChanged,
146
147 #[serde(rename = "notifications/tools/list_changed")]
149 ToolsListChanged,
150
151 #[serde(rename = "notifications/roots/list_changed")]
153 RootsListChanged,
154}
155
156#[derive(Debug, Clone, Serialize, Deserialize)]
158pub struct CancelledNotification {
159 #[serde(rename = "requestId")]
161 pub request_id: super::core::RequestId,
162 pub reason: Option<String>,
164}