zagens_runtime_adapters/mcp/
types.rs1use serde::{Deserialize, Serialize};
2
3#[derive(Debug, Clone, Deserialize, Serialize)]
7pub struct McpTool {
8 pub name: String,
9 #[serde(default)]
10 pub description: Option<String>,
11 #[serde(rename = "inputSchema", default)]
12 pub input_schema: serde_json::Value,
13}
14
15#[derive(Debug, Clone, Deserialize, Serialize)]
17pub struct McpResource {
18 pub uri: String,
19 pub name: String,
20 #[serde(default)]
21 pub description: Option<String>,
22 #[serde(rename = "mimeType", default)]
23 pub mime_type: Option<String>,
24}
25
26#[derive(Debug, Clone, Deserialize, Serialize)]
28pub struct McpResourceTemplate {
29 #[serde(rename = "uriTemplate")]
30 pub uri_template: String,
31 pub name: String,
32 #[serde(default)]
33 pub description: Option<String>,
34 #[serde(rename = "mimeType", default)]
35 pub mime_type: Option<String>,
36}
37
38#[derive(Debug, Clone, Deserialize, Serialize)]
40pub struct McpPrompt {
41 pub name: String,
42 #[serde(default)]
43 pub description: Option<String>,
44 #[serde(default)]
45 pub arguments: Vec<McpPromptArgument>,
46}
47
48#[derive(Debug, Clone, Deserialize, Serialize)]
50pub struct McpPromptArgument {
51 pub name: String,
52 #[serde(default)]
53 pub description: Option<String>,
54 #[serde(default)]
55 pub required: bool,
56}
57
58#[derive(Debug, Clone, Copy, PartialEq, Eq)]
62pub enum ConnectionState {
63 Connecting,
64 Ready,
65 Disconnected,
66}