context_server: Add missing types for MCP spec to protocol 2024-11-05 (#21498)
This commit syncs missing types for the mcp spec 2024-11-05. Release Notes: - N/A
This commit is contained in:
parent
d8732adfb2
commit
0ee99c6d9c
2 changed files with 79 additions and 5 deletions
|
@ -164,7 +164,7 @@ impl SlashCommand for ContextServerSlashCommand {
|
||||||
.messages
|
.messages
|
||||||
.into_iter()
|
.into_iter()
|
||||||
.filter_map(|msg| match msg.content {
|
.filter_map(|msg| match msg.content {
|
||||||
context_server::types::MessageContent::Text { text } => Some(text),
|
context_server::types::MessageContent::Text { text, .. } => Some(text),
|
||||||
_ => None,
|
_ => None,
|
||||||
})
|
})
|
||||||
.collect::<Vec<String>>()
|
.collect::<Vec<String>>()
|
||||||
|
|
|
@ -167,11 +167,18 @@ pub struct InitializeResponse {
|
||||||
#[derive(Debug, Deserialize)]
|
#[derive(Debug, Deserialize)]
|
||||||
#[serde(rename_all = "camelCase")]
|
#[serde(rename_all = "camelCase")]
|
||||||
pub struct ResourcesReadResponse {
|
pub struct ResourcesReadResponse {
|
||||||
pub contents: Vec<ResourceContents>,
|
pub contents: Vec<ResourceContentsType>,
|
||||||
#[serde(rename = "_meta", skip_serializing_if = "Option::is_none")]
|
#[serde(rename = "_meta", skip_serializing_if = "Option::is_none")]
|
||||||
pub meta: Option<HashMap<String, serde_json::Value>>,
|
pub meta: Option<HashMap<String, serde_json::Value>>,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[derive(Debug, Deserialize)]
|
||||||
|
#[serde(untagged)]
|
||||||
|
pub enum ResourceContentsType {
|
||||||
|
Text(TextResourceContents),
|
||||||
|
Blob(BlobResourceContents),
|
||||||
|
}
|
||||||
|
|
||||||
#[derive(Debug, Deserialize)]
|
#[derive(Debug, Deserialize)]
|
||||||
#[serde(rename_all = "camelCase")]
|
#[serde(rename_all = "camelCase")]
|
||||||
pub struct ResourcesListResponse {
|
pub struct ResourcesListResponse {
|
||||||
|
@ -181,6 +188,7 @@ pub struct ResourcesListResponse {
|
||||||
#[serde(rename = "_meta", skip_serializing_if = "Option::is_none")]
|
#[serde(rename = "_meta", skip_serializing_if = "Option::is_none")]
|
||||||
pub meta: Option<HashMap<String, serde_json::Value>>,
|
pub meta: Option<HashMap<String, serde_json::Value>>,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug, Serialize, Deserialize)]
|
#[derive(Debug, Serialize, Deserialize)]
|
||||||
#[serde(rename_all = "camelCase")]
|
#[serde(rename_all = "camelCase")]
|
||||||
pub struct SamplingMessage {
|
pub struct SamplingMessage {
|
||||||
|
@ -188,6 +196,35 @@ pub struct SamplingMessage {
|
||||||
pub content: MessageContent,
|
pub content: MessageContent,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[derive(Debug, Serialize)]
|
||||||
|
#[serde(rename_all = "camelCase")]
|
||||||
|
pub struct CreateMessageRequest {
|
||||||
|
pub messages: Vec<SamplingMessage>,
|
||||||
|
#[serde(skip_serializing_if = "Option::is_none")]
|
||||||
|
pub model_preferences: Option<ModelPreferences>,
|
||||||
|
#[serde(skip_serializing_if = "Option::is_none")]
|
||||||
|
pub system_prompt: Option<String>,
|
||||||
|
#[serde(skip_serializing_if = "Option::is_none")]
|
||||||
|
pub include_context: Option<String>,
|
||||||
|
#[serde(skip_serializing_if = "Option::is_none")]
|
||||||
|
pub temperature: Option<f64>,
|
||||||
|
pub max_tokens: u32,
|
||||||
|
#[serde(skip_serializing_if = "Option::is_none")]
|
||||||
|
pub stop_sequences: Option<Vec<String>>,
|
||||||
|
#[serde(skip_serializing_if = "Option::is_none")]
|
||||||
|
pub metadata: Option<serde_json::Value>,
|
||||||
|
}
|
||||||
|
|
||||||
|
#[derive(Debug, Deserialize)]
|
||||||
|
#[serde(rename_all = "camelCase")]
|
||||||
|
pub struct CreateMessageResult {
|
||||||
|
pub role: Role,
|
||||||
|
pub content: MessageContent,
|
||||||
|
pub model: String,
|
||||||
|
#[serde(skip_serializing_if = "Option::is_none")]
|
||||||
|
pub stop_reason: Option<String>,
|
||||||
|
}
|
||||||
|
|
||||||
#[derive(Debug, Serialize, Deserialize)]
|
#[derive(Debug, Serialize, Deserialize)]
|
||||||
#[serde(rename_all = "camelCase")]
|
#[serde(rename_all = "camelCase")]
|
||||||
pub struct PromptMessage {
|
pub struct PromptMessage {
|
||||||
|
@ -206,11 +243,33 @@ pub enum Role {
|
||||||
#[serde(tag = "type")]
|
#[serde(tag = "type")]
|
||||||
pub enum MessageContent {
|
pub enum MessageContent {
|
||||||
#[serde(rename = "text")]
|
#[serde(rename = "text")]
|
||||||
Text { text: String },
|
Text {
|
||||||
|
text: String,
|
||||||
|
#[serde(skip_serializing_if = "Option::is_none")]
|
||||||
|
annotations: Option<MessageAnnotations>,
|
||||||
|
},
|
||||||
#[serde(rename = "image")]
|
#[serde(rename = "image")]
|
||||||
Image { data: String, mime_type: String },
|
Image {
|
||||||
|
data: String,
|
||||||
|
mime_type: String,
|
||||||
|
#[serde(skip_serializing_if = "Option::is_none")]
|
||||||
|
annotations: Option<MessageAnnotations>,
|
||||||
|
},
|
||||||
#[serde(rename = "resource")]
|
#[serde(rename = "resource")]
|
||||||
Resource { resource: ResourceContents },
|
Resource {
|
||||||
|
resource: ResourceContents,
|
||||||
|
#[serde(skip_serializing_if = "Option::is_none")]
|
||||||
|
annotations: Option<MessageAnnotations>,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
#[derive(Debug, Serialize, Deserialize)]
|
||||||
|
#[serde(rename_all = "camelCase")]
|
||||||
|
pub struct MessageAnnotations {
|
||||||
|
#[serde(skip_serializing_if = "Option::is_none")]
|
||||||
|
pub audience: Option<Vec<Role>>,
|
||||||
|
#[serde(skip_serializing_if = "Option::is_none")]
|
||||||
|
pub priority: Option<f64>,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug, Deserialize)]
|
#[derive(Debug, Deserialize)]
|
||||||
|
@ -460,6 +519,11 @@ pub enum ClientNotification {
|
||||||
Initialized,
|
Initialized,
|
||||||
Progress(ProgressParams),
|
Progress(ProgressParams),
|
||||||
RootsListChanged,
|
RootsListChanged,
|
||||||
|
Cancelled {
|
||||||
|
request_id: String,
|
||||||
|
#[serde(skip_serializing_if = "Option::is_none")]
|
||||||
|
reason: Option<String>,
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug, Serialize, Deserialize)]
|
#[derive(Debug, Serialize, Deserialize)]
|
||||||
|
@ -532,6 +596,16 @@ pub struct ListToolsResponse {
|
||||||
pub meta: Option<HashMap<String, serde_json::Value>>,
|
pub meta: Option<HashMap<String, serde_json::Value>>,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[derive(Debug, Deserialize)]
|
||||||
|
#[serde(rename_all = "camelCase")]
|
||||||
|
pub struct ListResourceTemplatesResponse {
|
||||||
|
pub resource_templates: Vec<ResourceTemplate>,
|
||||||
|
#[serde(skip_serializing_if = "Option::is_none")]
|
||||||
|
pub next_cursor: Option<String>,
|
||||||
|
#[serde(rename = "_meta", skip_serializing_if = "Option::is_none")]
|
||||||
|
pub meta: Option<HashMap<String, serde_json::Value>>,
|
||||||
|
}
|
||||||
|
|
||||||
#[derive(Debug, Deserialize)]
|
#[derive(Debug, Deserialize)]
|
||||||
#[serde(rename_all = "camelCase")]
|
#[serde(rename_all = "camelCase")]
|
||||||
pub struct ListRootsResponse {
|
pub struct ListRootsResponse {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue