# Tools Module The tools module implements the tool system used by agents for executing actions such as calculations, memory search, file reading, and sub-model queries. Each tool implements the `BaseTool` ABC and is registered via `@ToolRegistry.register("name")`. The `ToolExecutor` dispatches tool calls with JSON argument parsing, latency tracking, and event bus integration. ## Abstract Base Class ### BaseTool ::: openjarvis.tools._stubs.BaseTool options: show_source: true members_order: source ### ToolSpec ::: openjarvis.tools._stubs.ToolSpec options: show_source: true members_order: source ### ToolExecutor ::: openjarvis.tools._stubs.ToolExecutor options: show_source: true members_order: source ### build_tool_descriptions ::: openjarvis.tools._stubs.build_tool_descriptions options: show_source: true --- ## Built-in Tools ### CalculatorTool ::: openjarvis.tools.calculator.CalculatorTool options: show_source: true members_order: source ### safe_eval ::: openjarvis.tools.calculator.safe_eval options: show_source: true ### ThinkTool ::: openjarvis.tools.think.ThinkTool options: show_source: true members_order: source ### RetrievalTool ::: openjarvis.tools.retrieval.RetrievalTool options: show_source: true members_order: source ### LLMTool ::: openjarvis.tools.llm_tool.LLMTool options: show_source: true members_order: source ### FileReadTool ::: openjarvis.tools.file_read.FileReadTool options: show_source: true members_order: source --- ## Storage Tools Tools that expose memory storage operations for use by agents via the tool system. These wrap the memory backend methods as `BaseTool` implementations. ### MemoryStoreTool ::: openjarvis.tools.storage_tools.MemoryStoreTool options: show_source: true members_order: source ### MemoryRetrieveTool ::: openjarvis.tools.storage_tools.MemoryRetrieveTool options: show_source: true members_order: source ### MemorySearchTool ::: openjarvis.tools.storage_tools.MemorySearchTool options: show_source: true members_order: source ### MemoryIndexTool ::: openjarvis.tools.storage_tools.MemoryIndexTool options: show_source: true members_order: source --- ## MCP Adapter Integration with the Model Context Protocol (MCP). The MCP adapter exposes OpenJarvis tools as MCP-compatible resources and allows consuming external MCP tool providers. Supports MCP protocol version 2025-11-25. ### MCPToolAdapter ::: openjarvis.tools.mcp_adapter.MCPToolAdapter options: show_source: true members_order: source ### MCPToolProvider ::: openjarvis.tools.mcp_adapter.MCPToolProvider options: show_source: true members_order: source