pub enum ToolProfile {
Minimal,
Standard,
Power,
Custom(Vec<String>),
}Expand description
Controls which MCP tools are exposed to agents.
Three built-in tiers reduce tool-list overwhelm for new users while letting power users keep everything.
When NO profile is pinned (no config key, no env var), the server
advertises only the lazy core set (CORE_TOOL_NAMES) and the
effective profile falls back to Power — which acts as a pure call-gate
(“everything reachable via ctx_call”), not as an advertisement list.
Pinning a profile makes the advertised set explicit and authoritative
(#358), which costs schema tokens: standard advertises its 16 full
schemas, power the whole registry (#575).
Variants§
Implementations§
Source§impl ToolProfile
impl ToolProfile
pub fn parse(s: &str) -> Option<Self>
pub fn as_str(&self) -> &str
pub fn description(&self) -> &str
Sourcepub fn without_tool(&self, tool_name: &str) -> Self
pub fn without_tool(&self, tool_name: &str) -> Self
Returns a profile that behaves identically except tool_name reports as
disabled. Used to align rules-injection with the effective tool visibility
for native-editor clients that hide specific tools (#1008).
pub fn is_tool_enabled(&self, tool_name: &str) -> bool
pub fn tool_count(&self) -> usize
pub fn tool_names(&self) -> Vec<&str>
Sourcepub fn from_config(cfg: &Config) -> Self
pub fn from_config(cfg: &Config) -> Self
Resolves the active tool profile from environment, then config.
Priority: LEAN_CTX_TOOL_PROFILE env > config tool_profile > config tools.enabled > default.
Existing installs default to power (backward compat).
New installs set standard during setup.
Trait Implementations§
Source§impl Clone for ToolProfile
impl Clone for ToolProfile
Source§fn clone(&self) -> ToolProfile
fn clone(&self) -> ToolProfile
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for ToolProfile
impl Debug for ToolProfile
Source§impl Display for ToolProfile
impl Display for ToolProfile
impl Eq for ToolProfile
Source§impl PartialEq for ToolProfile
impl PartialEq for ToolProfile
impl StructuralPartialEq for ToolProfile
Auto Trait Implementations§
impl Freeze for ToolProfile
impl RefUnwindSafe for ToolProfile
impl Send for ToolProfile
impl Sync for ToolProfile
impl Unpin for ToolProfile
impl UnsafeUnpin for ToolProfile
impl UnwindSafe for ToolProfile
Blanket Implementations§
Source§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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.impl<A, B, T> HttpServerConnExec<A, B> for Twhere
B: Body,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§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 moreSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
Source§impl<T> ToCompactString for Twhere
T: Display,
impl<T> ToCompactString for Twhere
T: Display,
Source§fn try_to_compact_string(&self) -> Result<CompactString, ToCompactStringError>
fn try_to_compact_string(&self) -> Result<CompactString, ToCompactStringError>
ToCompactString::to_compact_string() Read moreSource§fn to_compact_string(&self) -> CompactString
fn to_compact_string(&self) -> CompactString
CompactString. Read more