Skip to main content

systemprompt_models/a2a/
mcp_extension.rs

1use crate::ai::tools::McpTool;
2use serde::{Deserialize, Serialize};
3
4#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
5#[serde(rename_all = "camelCase")]
6pub struct McpServerMetadata {
7    pub name: String,
8    pub endpoint: String,
9    pub auth: String,
10    pub status: String,
11    #[serde(skip_serializing_if = "Option::is_none")]
12    pub version: Option<String>,
13    #[serde(skip_serializing_if = "Option::is_none")]
14    pub tools: Option<Vec<McpTool>>,
15}
16
17#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
18#[serde(rename_all = "camelCase")]
19pub struct McpToolsParams {
20    #[serde(default)]
21    pub supported_protocols: Vec<String>,
22    #[serde(default)]
23    pub servers: Vec<McpServerMetadata>,
24}
25
26#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
27#[serde(rename_all = "camelCase")]
28pub struct MessageMetadata {
29    #[serde(skip_serializing_if = "Option::is_none")]
30    pub timestamp: Option<String>,
31    #[serde(skip_serializing_if = "Option::is_none")]
32    pub source: Option<String>,
33}