pub struct ClientPluginCustomization {Show 13 fields
pub id: String,
pub uri: Uri,
pub name: String,
pub icons: Option<Vec<Icon>>,
pub range: Option<TextRange>,
pub meta: Option<JsonObject>,
pub client_id: Option<String>,
pub load: Option<CustomizationLoadState>,
pub children: Option<Vec<ChildCustomization>>,
pub enablement: Option<Vec<CustomizationEnablement>>,
pub version: Option<String>,
pub nonce: Option<String>,
pub child_enablement: Option<HashMap<String, Vec<CustomizationEnablement>>>,
}Expand description
A {@link PluginCustomization} as published by a client. Extends the
server-facing shape with an opaque nonce so the host can detect when
the client’s view of a plugin has changed and re-parse only as needed.
Clients SHOULD include a nonce. Server-side fields like
{@link ContainerCustomizationBase.children | children} and
{@link ContainerCustomizationBase.load | load} are typically left
absent on publication and populated by the host when the resolved
plugin appears in {@link SessionState.customizations}.
Fields§
§id: StringSession-unique opaque identifier. Used by every action that targets a specific customization. Minted by whoever publishes the customization (typically the agent host).
uri: UriSource URI for this customization. A plugin URL, a file URI, or a directory URI.
For declarations that live inside a larger file — e.g. an MCP
server declared inline in a plugins.json manifest — uri points
to the containing file and {@link CustomizationBase.range | range}
narrows it to the declaration’s span.
name: StringHuman-readable name.
icons: Option<Vec<Icon>>Icons for UI display.
range: Option<TextRange>Optional span within {@link CustomizationBase.uri | uri} when this
customization is a subset of a larger file (for example, one entry
in an inline mcpServers block of a plugins.json manifest).
Absent when the customization covers the whole resource.
meta: Option<JsonObject>Additional provider-specific metadata for this customization.
Mirrors the MCP _meta convention. Optional and opaque to the
protocol; producers and consumers agree on its contents
out-of-band.
client_id: Option<String>clientId of the client that contributed this container. Absent for
server-originated entries.
load: Option<CustomizationLoadState>Host-reported load state. Absent means the host has not yet reported a load state for this container.
children: Option<Vec<ChildCustomization>>Children discovered inside this container.
Absent means the host has not parsed this container yet. An empty array means the host parsed the container and it contributes nothing.
enablement: Option<Vec<CustomizationEnablement>>Explicit enablement decisions. See {@link McpServerCustomization.enablement}.
version: Option<String>Version of the plugin, sourced from the
Open Plugins manifest’s optional
version field (semver, e.g. "1.2.0"). Absent when the manifest
declares no version — the field is optional there — or the source
has no version concept. Provenance / display only: the host neither
parses nor enforces it.
nonce: Option<String>Opaque version token used by the host to detect changes.
child_enablement: Option<HashMap<String, Vec<CustomizationEnablement>>>Explicit enablement decisions for children this plugin contributes,
keyed by child name (for MCP servers, the server name as it appears in
the bundled .mcp.json).
Bundled children are discovered by the host rather than published by the
client, so the client cannot attach enablement to them directly. This
carries the client’s global decision for each one; the host applies it
under the child’s durable key.
Trait Implementations§
Source§impl Clone for ClientPluginCustomization
impl Clone for ClientPluginCustomization
Source§fn clone(&self) -> ClientPluginCustomization
fn clone(&self) -> ClientPluginCustomization
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more