objectiveai_sdk/mcp/tool/
call.rs1use indexmap::IndexMap;
4use schemars::JsonSchema;
5use serde::{Deserialize, Serialize};
6
7#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
9#[schemars(rename = "mcp.tool.TaskMetadata")]
10pub struct TaskMetadata {
11 #[serde(skip_serializing_if = "Option::is_none")]
13 #[schemars(extend("omitempty" = true))]
14 pub ttl: Option<f64>,
15}
16
17#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
19#[schemars(rename = "mcp.tool.CallToolRequestParams")]
20pub struct CallToolRequestParams {
21 pub name: String,
23 #[serde(skip_serializing_if = "Option::is_none")]
25 #[schemars(extend("omitempty" = true))]
26 pub arguments: Option<IndexMap<String, serde_json::Value>>,
27 #[serde(skip_serializing_if = "Option::is_none")]
29 #[schemars(extend("omitempty" = true))]
30 pub _meta: Option<IndexMap<String, serde_json::Value>>,
31 #[serde(skip_serializing_if = "Option::is_none")]
33 #[schemars(extend("omitempty" = true))]
34 pub task: Option<TaskMetadata>,
35}
36
37#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
39#[schemars(rename = "mcp.tool.CallToolResult")]
40pub struct CallToolResult {
41 #[serde(default)]
43 pub content: Vec<super::ContentBlock>,
44 #[serde(skip_serializing_if = "Option::is_none")]
46 #[schemars(extend("omitempty" = true))]
47 #[serde(rename = "structuredContent")]
48 pub structured_content: Option<IndexMap<String, serde_json::Value>>,
49 #[serde(skip_serializing_if = "Option::is_none")]
51 #[schemars(extend("omitempty" = true))]
52 #[serde(rename = "isError")]
53 pub is_error: Option<bool>,
54 #[serde(skip_serializing_if = "Option::is_none")]
56 #[schemars(extend("omitempty" = true))]
57 pub _meta: Option<IndexMap<String, serde_json::Value>>,
58}