Skip to main content

ClientRpcMcp

Struct ClientRpcMcp 

Source
pub struct ClientRpcMcp<'a> { /* private fields */ }
Expand description

mcp.* RPCs.

Implementations§

Source§

impl<'a> ClientRpcMcp<'a>

Source

pub fn config(&self) -> ClientRpcMcpConfig<'a>

mcp.config.* sub-namespace.

Source

pub fn installations(&self) -> ClientRpcMcpInstallations<'a>

mcp.installations.* sub-namespace.

Source

pub async fn discover( &self, params: McpDiscoverRequest, ) -> Result<McpDiscoverResult, Error>

Discovers MCP servers from user, workspace, plugin, and builtin sources.

Wire method: mcp.discover.

§Parameters
  • params - Optional working directory used as context for MCP server discovery.
§Returns

MCP servers discovered from user, workspace, plugin, and built-in sources.

Experimental. This API is part of an experimental wire-protocol surface and may change or be removed in future SDK or CLI releases. Pin both the SDK and CLI versions if your code depends on it.

Source

pub async fn plan_install( &self, params: McpPlanInstallRequest, ) -> Result<McpPlanInstallResult, Error>

Requests a side-effect-free MCP install plan from a catalog candidate handle or a caller-supplied card. This host-implemented server method is available through SDK/TUI hosts; standalone and C-ABI runtimes whose host does not implement server-method dispatch return JSON-RPC MethodNotFound. A runtime with planning available returns a normalised plan and opaque single-use plan handle; a runtime without it returns the typed planning-unavailable result. A completed plan reports resource identity, provenance, eligible transport choices, the user-scope target, required typed values and secret placeholders, the policy result, the configuration changes installing would make, and whether a reload would be needed. Planning never writes configuration, stores a secret, or reloads MCP servers, so abandoning a plan needs no call and leaves nothing behind.

Wire method: mcp.planInstall.

§Parameters
  • params - A side-effect-free request for an MCP install plan. Computing a plan never writes configuration, stores a secret, or reloads MCP servers.
§Returns

Outcome of an mcp.planInstall call: either a normalised plan, or one typed refusal. Nothing is written in either case.

Experimental. This API is part of an experimental wire-protocol surface and may change or be removed in future SDK or CLI releases. Pin both the SDK and CLI versions if your code depends on it.

Source

pub async fn plan_install_with_options( &self, params: McpPlanInstallOptions, ) -> Result<McpPlanInstallResult, Error>

Requests a side-effect-free MCP install plan from a catalog candidate handle or a caller-supplied card. This host-implemented server method is available through SDK/TUI hosts; standalone and C-ABI runtimes whose host does not implement server-method dispatch return JSON-RPC MethodNotFound. A runtime with planning available returns a normalised plan and opaque single-use plan handle; a runtime without it returns the typed planning-unavailable result. A completed plan reports resource identity, provenance, eligible transport choices, the user-scope target, required typed values and secret placeholders, the policy result, the configuration changes installing would make, and whether a reload would be needed. Planning never writes configuration, stores a secret, or reloads MCP servers, so abandoning a plan needs no call and leaves nothing behind.

Wire method: mcp.planInstall.

§Parameters
  • params - A side-effect-free request for an MCP install plan. Computing a plan never writes configuration, stores a secret, or reloads MCP servers.
§Returns

Outcome of an mcp.planInstall call: either a normalised plan, or one typed refusal. Nothing is written in either case.

Experimental. This API is part of an experimental wire-protocol surface and may change or be removed in future SDK or CLI releases. Pin both the SDK and CLI versions if your code depends on it.

Accepts McpPlanInstallOptions, including inputs added after McpPlanInstallRequest.

Source

pub async fn prepare_install( &self, params: McpPrepareInstallRequest, ) -> Result<McpInstallationManagementResult, Error>

Consumes a bound catalogue plan and retains one exact fully resolved personal remote MCP operation requiring no supplied values or configured secrets. Returns its runtime operation ID and original expiry before any confirmation, activation, writer initialisation or installation effect. Register the original connection, operation and selected-session binding before calling applyInstall. Missing lower owned admission is unavailable, never a raw-config fallback.

Wire method: mcp.prepareInstall.

§Parameters
  • params - Side-effect-free preparation of one original bound remote MCP choice.
§Returns

Management result with contract receipt, or a typed request/negotiation refusal.

Experimental. This API is part of an experimental wire-protocol surface and may change or be removed in future SDK or CLI releases. Pin both the SDK and CLI versions if your code depends on it.

Source

pub async fn apply_install( &self, params: McpApplyInstallRequest, ) -> Result<McpInstallationResult, Error>

Consumes a retained prepared MCP operation once, revalidates its original authority, requests explicit human consent through installations.confirm on the original connection, then revalidates source and applies the sealed transaction. An uncertain result requires original-operation inspection or recovery, never replay.

Wire method: mcp.applyInstall.

§Parameters
  • params - Applies exactly one previously prepared operation on its original connection.
§Returns

An installation result together with the exact honoured contract, or a negotiation refusal.

Experimental. This API is part of an experimental wire-protocol surface and may change or be removed in future SDK or CLI releases. Pin both the SDK and CLI versions if your code depends on it.

Source

pub async fn plan_uninstall( &self, params: McpPlanUninstallRequest, ) -> Result<McpInstallationManagementResult, Error>

Prepares a read-only removal plan for an exact owned receipt under the selected existing session. Returns the original operation ID before confirmation; neither planning nor abandonment changes configuration or shared OAuth credentials.

Wire method: mcp.planUninstall.

§Parameters
  • params - Read-only preparation of one owned removal under fresh selected-session authority.
§Returns

Management result with contract receipt, or a typed request/negotiation refusal.

Experimental. This API is part of an experimental wire-protocol surface and may change or be removed in future SDK or CLI releases. Pin both the SDK and CLI versions if your code depends on it.

Source

pub async fn apply_uninstall( &self, params: McpApplyUninstallRequest, ) -> Result<McpInstallationResult, Error>

Consumes the original owned-removal plan once and requests fresh exact human confirmation on its original connection. Drift is refused; unrelated manual configuration and shared OAuth credentials are preserved.

Wire method: mcp.applyUninstall.

§Parameters
  • params - One-use application of the exact retained removal plan.
§Returns

An installation result together with the exact honoured contract, or a negotiation refusal.

Experimental. This API is part of an experimental wire-protocol surface and may change or be removed in future SDK or CLI releases. Pin both the SDK and CLI versions if your code depends on it.

Trait Implementations§

Source§

impl<'a> Clone for ClientRpcMcp<'a>

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<'a> Copy for ClientRpcMcp<'a>

Auto Trait Implementations§

§

impl<'a> !RefUnwindSafe for ClientRpcMcp<'a>

§

impl<'a> !UnwindSafe for ClientRpcMcp<'a>

§

impl<'a> Freeze for ClientRpcMcp<'a>

§

impl<'a> Send for ClientRpcMcp<'a>

§

impl<'a> Sync for ClientRpcMcp<'a>

§

impl<'a> Unpin for ClientRpcMcp<'a>

§

impl<'a> UnsafeUnpin for ClientRpcMcp<'a>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> DynClone for T
where T: Clone,

Source§

fn __clone_box(&self, _: Private) -> *mut ()

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self> ⓘ

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self> ⓘ

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘ
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more