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