Skip to main content

Connection

Struct Connection 

Source
pub struct Connection { /* private fields */ }
Expand description

A configured server, connected on demand.

Implementations§

Source§

impl Connection

Source

pub fn new( entry: ServerEntry, cwd: PathBuf, agent_dir: PathBuf, on_tools: ToolsListener, readable_resources: Arc<dyn Fn(&str) -> bool + Send + Sync>, provider_token: Option<ProviderToken>, ) -> Arc<Connection> ⓘ

A connection for entry, not yet connected, with OAuth credentials kept in agent_dir. Its callbacks:

  • on_tools: learns of tool and resource changes
  • readable_resources: tells whether the resource tools reach a server
  • provider_token: reads the token of servers with auth.provider
Source

pub fn oauth_url(&self) -> Option<&str>

The server URL when the server signs in with OAuth.

Source

pub async fn sign_in(&self, prompt: &SignInPrompt) -> Result<(), AuthError>

Signs in to an OAuth server. The caller reconnects afterwards.

Source

pub async fn remove_credentials(&self) -> Result<bool, McpError>

Removes the server’s stored OAuth credentials. Returns whether any were stored.

Source

pub async fn sign_out(&self)

Disconnects after the stored credentials were removed.

Source

pub async fn signed_in_elsewhere(&self) -> bool

Whether the server needs a sign-in and its stored credentials changed since it came to, as when another process signed in.

Source

pub fn name(&self) -> &str

The server’s name.

Source

pub fn entry(&self) -> &ServerEntry

The configured entry.

Source

pub fn timeout(&self) -> Duration

The per-request timeout.

Source

pub fn snapshot(&self) -> Snapshot

What it knows of its server.

Source

pub fn state(&self) -> State

Where it stands.

Source

pub fn readable_resources(&self) -> bool

Whether read_mcp_resource reaches this server.

Source

pub async fn client(self: &Arc<Self>) -> Result<McpClient, McpError>

The connected client, connecting when needed.

Source

pub async fn call_tool( self: &Arc<Self>, name: &str, args: Value, options: RequestOptions, ) -> Result<Value, McpError>

Calls one of the server’s tools. Not retried, since it may have run.

Source

pub async fn read_resource( self: &Arc<Self>, uri: &str, options: RequestOptions, ) -> Result<Value, McpError>

Reads a resource.

Source

pub async fn resources_page( self: &Arc<Self>, kind: ResourceKind, cursor: Option<String>, options: RequestOptions, ) -> Result<(Vec<Value>, Option<String>), McpError>

One page of resources or resource templates, with no templates for servers without the method.

Source

pub async fn all_resources( self: &Arc<Self>, kind: ResourceKind, options: RequestOptions, ) -> Result<Vec<Value>, McpError>

Every resource or resource template, with no templates for servers without the method.

Source

pub async fn reconnect(self: &Arc<Self>) -> Result<(), McpError>

Connects again.

Source

pub async fn close(&self)

Shuts the connection down for good. A refresh in flight is awaited: the server may already have rotated the refresh token.

Auto Trait Implementations§

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<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> Same for T

Source§

type Output = T

Should always be Self
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<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