pub struct ClientObjectiveaiMcpPluginEntry {
pub owner: String,
pub name: String,
pub version: String,
pub executable: bool,
pub mcp_servers: Option<Vec<ClientObjectiveaiMcpPluginMcpServer>>,
}Expand description
Plugin reference inside ClientObjectiveaiMcp::plugins.
owner/name/versionidentify the plugin (same shape asClientObjectiveaiMcpEntry).executablecontrols whether this plugin contributes a tool to the agent’s surface (true, default) or is loaded purely for its declared MCP servers (false). The API’sX-OBJECTIVEAI-TOOLS-ALLOWEDconstruction honors this: onlyexecutable = trueplugin entries contribute theirnameto the allow-list.mcp_serversselects which of the plugin’s manifest-declaredfilesystem::plugins::Manifest::mcp_serversentries should be exposed to the agent, byname.None⇒ none of them.
Fields§
§owner: String§name: String§version: String§executable: booltrue: spawn the plugin binary and surface its tools the
usual way. false: don’t run the plugin; only consume its
declared MCP servers (mcp_servers below). Defaults to
true so existing declarations keep their current behavior.
mcp_servers: Option<Vec<ClientObjectiveaiMcpPluginMcpServer>>Subset of the plugin’s manifest mcp_servers to expose, each
referenced by name plus an optional arguments map. None
⇒ none. Names that aren’t present in the plugin’s manifest are
rejected when the API asks the CLI to begin them; declarations
themselves don’t validate the referent (the plugin may not be
installed at declaration time).
Implementations§
Source§impl ClientObjectiveaiMcpPluginEntry
impl ClientObjectiveaiMcpPluginEntry
Sourcepub fn validate(&self) -> Result<(), String>
pub fn validate(&self) -> Result<(), String>
owner, name, and version must all be non-empty; each
mcp_servers[i] must validate (see
ClientObjectiveaiMcpPluginMcpServer::validate); and within
one plugin entry, mcp_servers must contain no duplicate
name values (matches the uniqueness rule the plugin manifest
itself enforces at
crate::filesystem::plugins::Manifest::validate).
Sourcepub fn tool_name(&self) -> String
pub fn tool_name(&self) -> String
LLM-visible tool name. See materialize_tool_name.
Trait Implementations§
Source§impl<'arbitrary> Arbitrary<'arbitrary> for ClientObjectiveaiMcpPluginEntry
impl<'arbitrary> Arbitrary<'arbitrary> for ClientObjectiveaiMcpPluginEntry
Source§fn arbitrary(u: &mut Unstructured<'arbitrary>) -> Result<Self>
fn arbitrary(u: &mut Unstructured<'arbitrary>) -> Result<Self>
Self from the given unstructured data. Read moreSource§fn arbitrary_take_rest(u: Unstructured<'arbitrary>) -> Result<Self>
fn arbitrary_take_rest(u: Unstructured<'arbitrary>) -> Result<Self>
Self from the entirety of the given
unstructured data. Read moreSource§fn size_hint(depth: usize) -> (usize, Option<usize>)
fn size_hint(depth: usize) -> (usize, Option<usize>)
Unstructured this type
needs to construct itself. Read moreSource§fn try_size_hint(
depth: usize,
) -> Result<(usize, Option<usize>), MaxRecursionReached>
fn try_size_hint( depth: usize, ) -> Result<(usize, Option<usize>), MaxRecursionReached>
Unstructured this type
needs to construct itself. Read moreSource§impl Clone for ClientObjectiveaiMcpPluginEntry
impl Clone for ClientObjectiveaiMcpPluginEntry
Source§fn clone(&self) -> ClientObjectiveaiMcpPluginEntry
fn clone(&self) -> ClientObjectiveaiMcpPluginEntry
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl<'de> Deserialize<'de> for ClientObjectiveaiMcpPluginEntry
impl<'de> Deserialize<'de> for ClientObjectiveaiMcpPluginEntry
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
impl Eq for ClientObjectiveaiMcpPluginEntry
Source§impl JsonSchema for ClientObjectiveaiMcpPluginEntry
impl JsonSchema for ClientObjectiveaiMcpPluginEntry
Source§fn schema_id() -> Cow<'static, str>
fn schema_id() -> Cow<'static, str>
Source§fn json_schema(generator: &mut SchemaGenerator) -> Schema
fn json_schema(generator: &mut SchemaGenerator) -> Schema
Source§fn inline_schema() -> bool
fn inline_schema() -> bool
$ref keyword. Read moreSource§impl Ord for ClientObjectiveaiMcpPluginEntry
impl Ord for ClientObjectiveaiMcpPluginEntry
Source§fn cmp(&self, other: &ClientObjectiveaiMcpPluginEntry) -> Ordering
fn cmp(&self, other: &ClientObjectiveaiMcpPluginEntry) -> Ordering
1.21.0 (const: unstable) · Source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
Source§impl PartialEq for ClientObjectiveaiMcpPluginEntry
impl PartialEq for ClientObjectiveaiMcpPluginEntry
Source§fn eq(&self, other: &ClientObjectiveaiMcpPluginEntry) -> bool
fn eq(&self, other: &ClientObjectiveaiMcpPluginEntry) -> bool
self and other values to be equal, and is used by ==.Source§impl PartialOrd for ClientObjectiveaiMcpPluginEntry
impl PartialOrd for ClientObjectiveaiMcpPluginEntry
impl StructuralPartialEq for ClientObjectiveaiMcpPluginEntry
Auto Trait Implementations§
impl Freeze for ClientObjectiveaiMcpPluginEntry
impl RefUnwindSafe for ClientObjectiveaiMcpPluginEntry
impl Send for ClientObjectiveaiMcpPluginEntry
impl Sync for ClientObjectiveaiMcpPluginEntry
impl Unpin for ClientObjectiveaiMcpPluginEntry
impl UnsafeUnpin for ClientObjectiveaiMcpPluginEntry
impl UnwindSafe for ClientObjectiveaiMcpPluginEntry
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Comparable<K> for Q
impl<Q, K> Comparable<K> for Q
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more