Skip to main content

McpTool

Trait McpTool 

Source
pub trait McpTool: Send + Sync {
    // Required methods
    fn name(&self) -> &'static str;
    fn tool_def(&self) -> Tool;
    fn handle(
        &self,
        args: &Map<String, Value>,
        ctx: &ToolContext,
    ) -> Result<ToolOutput, ErrorData>;
}
Expand description

Trait for a self-contained MCP tool. Each tool provides its own schema definition and handler, eliminating the possibility of schema/handler drift.

This trait is the plugin interface for LcpTools: any implementation can be registered at runtime via ToolRegistry::register(). Future plugin system will load implementations from shared libraries or subprocess bridges.

Handlers are synchronous because all existing tool handlers are sync. The async boundary (cache locks, session reads) is handled by the dispatch layer before calling handle.

Required Methods§

Source

fn name(&self) -> &'static str

Tool name as registered in the MCP protocol (e.g. “ctx_tree”).

Source

fn tool_def(&self) -> Tool

MCP tool definition including JSON schema. This replaces the corresponding entry in granular_tool_defs().

Source

fn handle( &self, args: &Map<String, Value>, ctx: &ToolContext, ) -> Result<ToolOutput, ErrorData>

Execute the tool. Args are the raw JSON-RPC arguments. ctx provides access to resolved paths and project state.

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§

Source§

impl McpTool for CtxAgentTool

Source§

impl McpTool for CtxAnalyzeTool

Source§

impl McpTool for CtxArchitectureTool

Source§

impl McpTool for CtxArtifactsTool

Source§

impl McpTool for CtxBenchmarkTool

Source§

impl McpTool for CtxCacheTool

Source§

impl McpTool for CtxCallTool

Source§

impl McpTool for CtxCallgraphTool

Source§

impl McpTool for CtxCompileTool

Source§

impl McpTool for CtxCompressTool

Source§

impl McpTool for CtxCompressMemoryTool

Source§

impl McpTool for CtxContextTool

Source§

impl McpTool for CtxControlTool

Source§

impl McpTool for CtxCostTool

Source§

impl McpTool for CtxDedupTool

Source§

impl McpTool for CtxDeltaTool

Source§

impl McpTool for CtxDiscoverTool

Source§

impl McpTool for CtxDiscoverToolsTool

Source§

impl McpTool for CtxEditTool

Source§

impl McpTool for CtxExecuteTool

Source§

impl McpTool for CtxExpandTool

Source§

impl McpTool for CtxFeedbackTool

Source§

impl McpTool for CtxFillTool

Source§

impl McpTool for CtxGainTool

Source§

impl McpTool for CtxGraphTool

Source§

impl McpTool for CtxHandoffTool

Source§

impl McpTool for CtxHeatmapTool

Source§

impl McpTool for CtxImpactTool

Source§

impl McpTool for CtxIndexTool

Source§

impl McpTool for CtxIntentTool

Source§

impl McpTool for CtxKnowledgeTool

Source§

impl McpTool for CtxLedgerTool

Source§

impl McpTool for CtxLoadToolsTool

Source§

impl McpTool for CtxMetricsTool

Source§

impl McpTool for CtxMultiReadTool

Source§

impl McpTool for CtxOutlineTool

Source§

impl McpTool for CtxOverviewTool

Source§

impl McpTool for CtxPackTool

Source§

impl McpTool for CtxPlanTool

Source§

impl McpTool for CtxPrefetchTool

Source§

impl McpTool for CtxPreloadTool

Source§

impl McpTool for CtxProofTool

Source§

impl McpTool for CtxProviderTool

Source§

impl McpTool for CtxRadarTool

Source§

impl McpTool for CtxReadTool

Source§

impl McpTool for CtxRefactorTool

Source§

impl McpTool for CtxResponseTool

Source§

impl McpTool for CtxRetrieveTool

Source§

impl McpTool for CtxReviewTool

Source§

impl McpTool for CtxRoutesTool

Source§

impl McpTool for CtxSearchTool

Source§

impl McpTool for CtxSemanticSearchTool

Source§

impl McpTool for CtxSessionTool

Source§

impl McpTool for CtxShareTool

Source§

impl McpTool for CtxShellTool

Source§

impl McpTool for CtxSmartReadTool

Source§

impl McpTool for CtxSmellsTool

Source§

impl McpTool for CtxSymbolTool

Source§

impl McpTool for CtxTaskTool

Source§

impl McpTool for CtxTreeTool

Source§

impl McpTool for CtxVerifyTool

Source§

impl McpTool for CtxWorkflowTool