mcp_core_rs/protocol/
capabilities.rs

1use serde::{Deserialize, Serialize};
2
3#[derive(Debug, Serialize, Deserialize, Clone, PartialEq)]
4pub struct ServerCapabilities {
5    #[serde(skip_serializing_if = "Option::is_none")]
6    pub prompts: Option<PromptsCapability>,
7    #[serde(skip_serializing_if = "Option::is_none")]
8    pub resources: Option<ResourcesCapability>,
9    #[serde(skip_serializing_if = "Option::is_none")]
10    pub tools: Option<ToolsCapability>,
11    // Add other capabilities as needed
12}
13
14#[derive(Debug, Serialize, Deserialize, Clone, PartialEq)]
15#[serde(rename_all = "camelCase")]
16pub struct PromptsCapability {
17    pub list_changed: Option<bool>,
18}
19
20#[derive(Debug, Serialize, Deserialize, Clone, PartialEq)]
21#[serde(rename_all = "camelCase")]
22pub struct ResourcesCapability {
23    pub subscribe: Option<bool>,
24    pub list_changed: Option<bool>,
25}
26
27#[derive(Debug, Serialize, Deserialize, Clone, PartialEq)]
28#[serde(rename_all = "camelCase")]
29pub struct ToolsCapability {
30    pub list_changed: Option<bool>,
31}