pub struct AiMcpConfig {
pub tools: BTreeMap<String, AiMcpTool>,
pub resources: BTreeMap<String, AiMcpResource>,
pub prompts: BTreeMap<String, AiMcpPrompt>,
pub sessions: Option<AiMcpSessions>,
pub path: Option<String>,
}Expand description
MCP gateway config (DW-087 ai.mcp): the tool table, session
policy, and reserved path. Tools are configured with upstream
references; the gateway proxies tool calls to upstream HTTP
endpoints (POST JSON body, get JSON response). The gateway is a
router, not a tool executor.
Fields§
§tools: BTreeMap<String, AiMcpTool>The tool table, keyed by tool name. Each tool names an upstream that carries the transport and a path on that upstream. Tool names must be non-empty and unique (validation rejects duplicates and empty names).
resources: BTreeMap<String, AiMcpResource>AI-11 (#200): Static resources exposed via resources/list
and resources/read. Each resource has a URI, a name, a
description, and an optional MIME type. The resource content
is served inline (no upstream proxy).
prompts: BTreeMap<String, AiMcpPrompt>AI-11 (#200): Static prompt templates exposed via
prompts/list and prompts/get. Each prompt has a name, a
description, and a template body with optional arguments.
sessions: Option<AiMcpSessions>Session policy. Absent (the default): the built-in defaults (TTL 3600s, max 1000 concurrent sessions).
path: Option<String>The reserved HTTP path for the MCP JSON-RPC endpoint. Default
/mcp. Must start with / if specified. The path is reserved
like /healthz, /readyz, /metrics — it shadows any
configured route and is handled before route resolution.
Trait Implementations§
Source§impl Clone for AiMcpConfig
impl Clone for AiMcpConfig
Source§fn clone(&self) -> AiMcpConfig
fn clone(&self) -> AiMcpConfig
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for AiMcpConfig
impl Debug for AiMcpConfig
Source§impl<'de> Deserialize<'de> for AiMcpConfig
impl<'de> Deserialize<'de> for AiMcpConfig
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>,
Source§impl JsonSchema for AiMcpConfig
impl JsonSchema for AiMcpConfig
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 PartialEq for AiMcpConfig
impl PartialEq for AiMcpConfig
Source§impl Serialize for AiMcpConfig
impl Serialize for AiMcpConfig
impl StructuralPartialEq for AiMcpConfig
Auto Trait Implementations§
impl Freeze for AiMcpConfig
impl RefUnwindSafe for AiMcpConfig
impl Send for AiMcpConfig
impl Sync for AiMcpConfig
impl Unpin for AiMcpConfig
impl UnwindSafe for AiMcpConfig
Blanket Implementations§
§impl<T> AnyExt for T
impl<T> AnyExt for T
§fn downcast_ref<T>(this: &Self) -> Option<&T>where
T: Any,
fn downcast_ref<T>(this: &Self) -> Option<&T>where
T: Any,
T behind reference§fn downcast_mut<T>(this: &mut Self) -> Option<&mut T>where
T: Any,
fn downcast_mut<T>(this: &mut Self) -> Option<&mut T>where
T: Any,
T behind mutable reference§fn downcast_rc<T>(this: Rc<Self>) -> Result<Rc<T>, Rc<Self>>where
T: Any,
fn downcast_rc<T>(this: Rc<Self>) -> Result<Rc<T>, Rc<Self>>where
T: Any,
T behind Rc pointer§fn downcast_arc<T>(this: Arc<Self>) -> Result<Arc<T>, Arc<Self>>where
T: Any,
fn downcast_arc<T>(this: Arc<Self>) -> Result<Arc<T>, Arc<Self>>where
T: Any,
T behind Arc pointer§fn downcast_box<T>(this: Box<Self>) -> Result<Box<T>, Box<Self>>where
T: Any,
fn downcast_box<T>(this: Box<Self>) -> Result<Box<T>, Box<Self>>where
T: Any,
T behind Box pointer§fn downcast_move<T>(this: Self) -> Option<T>
fn downcast_move<T>(this: Self) -> Option<T>
Self to T,
useful only in generic context as a workaround for specializationSource§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,
§impl<T, X> CoerceTo<T> for Xwhere
T: CoerceFrom<X> + ?Sized,
impl<T, X> CoerceTo<T> for Xwhere
T: CoerceFrom<X> + ?Sized,
fn coerce_rc_to(self: Rc<X>) -> Rc<T>
fn coerce_box_to(self: Box<X>) -> Box<T>
fn coerce_ref_to(&self) -> &T
fn coerce_mut_to(&mut self) -> &mut T
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§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