systemprompt_models/a2a/
mcp_extension.rs1use 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}