Skip to main content

ResponseCachingMiddleware

Struct ResponseCachingMiddleware 

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

Response caching middleware for MCP servers.

Caches responses for list and call operations with configurable TTL. Uses an LRU eviction strategy when the cache is full.

Implementations§

Source§

impl ResponseCachingMiddleware

Source

pub fn new() -> Self

Creates a new response caching middleware with default settings.

Source

pub fn max_entries(self, max: usize) -> Self

Sets the maximum number of cache entries.

Source

pub fn max_size_bytes(self, max: usize) -> Self

Sets the maximum cache size in bytes.

Source

pub fn max_item_size(self, max: usize) -> Self

Sets the maximum size per cache item in bytes.

Source

pub fn list_ttl_secs(self, secs: u64) -> Self

Sets the TTL for list operations (tools/list, resources/list, prompts/list).

Source

pub fn call_ttl_secs(self, secs: u64) -> Self

Sets the TTL for call/get/read operations.

Source

pub fn disable_tools_list(self) -> Self

Disables caching for tools/list.

Source

pub fn disable_resources_list(self) -> Self

Disables caching for resources/list.

Source

pub fn disable_prompts_list(self) -> Self

Disables caching for prompts/list.

Source

pub fn disable_tools_call(self) -> Self

Disables caching for tools/call.

Source

pub fn disable_resources_read(self) -> Self

Disables caching for resources/read.

Source

pub fn disable_prompts_get(self) -> Self

Disables caching for prompts/get.

Source

pub fn include_tools(self, tools: Vec<String>) -> Self

Sets the list of tools to include in caching (empty = all).

Source

pub fn exclude_tools(self, tools: Vec<String>) -> Self

Sets the list of tools to exclude from caching.

Source

pub fn stats(&self) -> CacheStats

Returns current cache statistics.

Source

pub fn clear(&self)

Clears the entire cache.

Source

pub fn invalidate(&self, method: &str, params: Option<&Value>)

Invalidates a specific cache entry by method and params.

Trait Implementations§

Source§

impl Debug for ResponseCachingMiddleware

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for ResponseCachingMiddleware

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl Middleware for ResponseCachingMiddleware

Source§

fn on_request( &self, _ctx: &McpContext, request: &JsonRpcRequest, ) -> McpResult<MiddlewareDecision>

Invoked before routing the request. Read more
Source§

fn on_response( &self, _ctx: &McpContext, request: &JsonRpcRequest, response: Value, ) -> McpResult<Value>

Invoked after a successful handler result is produced. Read more
Source§

fn on_error( &self, _ctx: &McpContext, _request: &JsonRpcRequest, error: McpError, ) -> McpError

Invoked when a handler or middleware returns an error. Read more

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: NoopSpan) -> Self

Instruments this future with a span (no-op when disabled).
Source§

fn in_current_span(self) -> Self

Instruments this future with the current span (no-op when disabled).
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> 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 = Infallible

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

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

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