Skip to main content

gproxy_protocol/openai/generate_content/responses/items/actions/
mcp.rs

1use serde::{Deserialize, Serialize};
2use serde_json::Value;
3
4use crate::openai::common::Rest;
5
6#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, gproxy_protocol_macros::WireBuilder)]
7#[cfg_attr(not(feature = "exhaustive"), non_exhaustive)]
8pub struct McpToolDescription {
9    // OpenAI documents an MCP tool input schema as unknown.
10    pub input_schema: Value,
11    pub name: String,
12    /// `upstream_docs/openai/docs/Responses.md`,
13    /// `McpListTools.tools[].annotations`: optional unknown or null.
14    #[serde(skip_serializing_if = "Option::is_none")]
15    pub annotations: Option<Value>,
16    #[serde(skip_serializing_if = "Option::is_none")]
17    pub description: Option<String>,
18    #[serde(default, flatten)]
19    pub rest: Rest,
20}