#[non_exhaustive]pub struct McpToolContext {
pub auth: AuthContext,
pub request: RequestMetadata,
/* private fields */
}Expand description
Context for MCP tool execution.
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.auth: AuthContext§request: RequestMetadataImplementations§
Source§impl McpToolContext
impl McpToolContext
Sourcepub fn new(db_pool: PgPool, auth: AuthContext, request: RequestMetadata) -> Self
pub fn new(db_pool: PgPool, auth: AuthContext, request: RequestMetadata) -> Self
Create a new MCP tool context.
Sourcepub fn with_dispatch(
db_pool: PgPool,
auth: AuthContext,
request: RequestMetadata,
job_dispatch: Option<Arc<dyn JobDispatch>>,
workflow_dispatch: Option<Arc<dyn WorkflowDispatch>>,
) -> Self
pub fn with_dispatch( db_pool: PgPool, auth: AuthContext, request: RequestMetadata, job_dispatch: Option<Arc<dyn JobDispatch>>, workflow_dispatch: Option<Arc<dyn WorkflowDispatch>>, ) -> Self
Create a context with dispatch capabilities.
Sourcepub fn with_env(
db_pool: PgPool,
auth: AuthContext,
request: RequestMetadata,
job_dispatch: Option<Arc<dyn JobDispatch>>,
workflow_dispatch: Option<Arc<dyn WorkflowDispatch>>,
env_provider: Arc<dyn EnvProvider>,
) -> Self
pub fn with_env( db_pool: PgPool, auth: AuthContext, request: RequestMetadata, job_dispatch: Option<Arc<dyn JobDispatch>>, workflow_dispatch: Option<Arc<dyn WorkflowDispatch>>, env_provider: Arc<dyn EnvProvider>, ) -> Self
Create a context with a custom environment provider.
Sourcepub fn with_http_client(self, client: CircuitBreakerClient) -> Self
pub fn with_http_client(self, client: CircuitBreakerClient) -> Self
Set the HTTP client. Called by the runtime to inject the shared client.
Sourcepub fn set_kv(&mut self, kv: Arc<dyn KvHandle>)
pub fn set_kv(&mut self, kv: Arc<dyn KvHandle>)
Attach a KV store handle. Called by the runtime before handing the context to the handler.
pub fn db(&self) -> ForgeDb
Sourcepub async fn conn(&self) -> Result<ForgeConn<'static>>
pub async fn conn(&self) -> Result<ForgeConn<'static>>
Acquire a connection compatible with sqlx compile-time checked macros.
Sourcepub fn http(&self) -> HttpClient
pub fn http(&self) -> HttpClient
Get the HTTP client for external requests.
Sourcepub fn raw_http(&self) -> &Client
pub fn raw_http(&self) -> &Client
Get the raw reqwest client, bypassing circuit breaker execution.
Sourcepub fn set_http_timeout(&mut self, timeout: Option<Duration>)
pub fn set_http_timeout(&mut self, timeout: Option<Duration>)
Set the default timeout for outbound HTTP requests.
Sourcepub fn user_id(&self) -> Result<Uuid>
pub fn user_id(&self) -> Result<Uuid>
Get the authenticated user’s UUID. Returns 401 if not authenticated.
Sourcepub async fn dispatch_job<T: Serialize>(
&self,
job_type: &str,
args: T,
) -> Result<Uuid>
pub async fn dispatch_job<T: Serialize>( &self, job_type: &str, args: T, ) -> Result<Uuid>
Dispatch a background job.
Sourcepub async fn dispatch<J: ForgeJob>(&self, args: J::Args) -> Result<Uuid>
pub async fn dispatch<J: ForgeJob>(&self, args: J::Args) -> Result<Uuid>
Type-safe dispatch: resolves the job name from the type’s ForgeJob
impl and serializes the args at the call site.
Sourcepub async fn cancel_job(
&self,
job_id: Uuid,
reason: Option<String>,
) -> Result<bool>
pub async fn cancel_job( &self, job_id: Uuid, reason: Option<String>, ) -> Result<bool>
Request cancellation for a job.
Trait Implementations§
Source§impl EnvAccess for McpToolContext
impl EnvAccess for McpToolContext
fn env_provider(&self) -> &dyn EnvProvider
fn env(&self, key: &str) -> Option<String>
fn env_or(&self, key: &str, default: &str) -> String
fn env_require(&self, key: &str) -> Result<String>
fn env_parse<T: FromStr>(&self, key: &str) -> Result<T>
Source§fn env_parse_or<T: FromStr>(&self, key: &str, default: T) -> Result<T>
fn env_parse_or<T: FromStr>(&self, key: &str, default: T) -> Result<T>
fn env_contains(&self, key: &str) -> bool
Auto Trait Implementations§
impl Freeze for McpToolContext
impl !RefUnwindSafe for McpToolContext
impl Send for McpToolContext
impl Sync for McpToolContext
impl Unpin for McpToolContext
impl UnsafeUnpin for McpToolContext
impl !UnwindSafe for McpToolContext
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
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 more