Expand description
§MCP Tools
Tools implementation using turbomcp macros and vault manager integration. Designed for LLM vault management with holistic workflows.
§Overview
This crate provides the main MCP (Model Context Protocol) tool implementations that enable AI agents to interact with Obsidian vaults. Tools are organized by domain and include file operations, graph analysis, search, validation, and more.
§Core Tool Categories
§File Tools
file_tools::FileTools - Direct file operations:
- Read file content
- Write/create files
- Delete files
- List vault files and directories
- Get file metadata
§Graph Tools
graph_tools::GraphTools - Link analysis and relationships:
- Build vault link graph
- Find backlinks to a note
- Discover related notes
- Detect orphaned notes
- Analyze vault health
- Find broken links
§Search Tools
search_tools::SearchTools - Full-text search capabilities:
- Search vault content
- Search file names
- Advanced query syntax
- Result ranking and filtering
§Analysis Tools
analysis_tools::AnalysisTools - Vault analysis:
- Compute vault statistics
- Generate health reports
- Identify improvement areas
- Create recommendations
§Batch Tools
batch_tools::BatchTools - Atomic operations:
- Execute multi-file operations
- Atomic transactions
- Conflict detection
- Result tracking
§Metadata Tools
metadata_tools::MetadataTools - Note metadata:
- Read frontmatter
- Parse tags
- Extract headers
- Get file properties
§Validation Tools
validation_tools::ValidationTools - Content validation:
- Validate frontmatter format
- Check link validity
- Verify content structure
- Report issues
§Export Tools
export_tools::ExportTools - Data export:
- Export health reports
- Export vault statistics
- Export analysis results
- Support JSON and CSV formats
§Relationship Tools
relationship_tools::RelationshipTools - Note relationships:
- Find note connections
- Build relationship maps
- Analyze link patterns
§Template Tools
templates::TemplateEngine - Template management:
- Define templates
- Render templates
- Template validation
§Vault Lifecycle
vault_lifecycle::VaultLifecycleTools - Vault management:
- Initialize vaults
- Backup operations
- Migration utilities
§Key Types
VaultStats- Vault statistics dataHealthInfo- Vault health metricsBrokenLinkInfo- Broken link informationSearchResultInfo- Search result detailsSearchQuery- Search query specificationValidationReportInfo- Validation issue reportTemplateDefinition- Template specification
§Utilities
§Output Formatting
output_formatter::ResponseFormatter - Format tool responses:
- JSON output
- Plain text output
- Table formatting
- Customizable formatting
§Response Utilities
response_utils - Helper functions for response formatting
§Search Engine
search_engine::SearchEngine - Tantivy-based full-text search:
- Index vault content
- Execute search queries
- Rank results
§Integration with Vault Manager
All tools integrate with turbovault_vault::VaultManager for:
- File access and modification
- Error handling and validation
- Thread-safe operations
- Atomic transactions
§Example Usage
use turbovault_core::Result;
#[tokio::main]
async fn main() -> Result<()> {
// Initialize tools (typically done by MCP server)
// let tools = initialize_tools(&vault_path).await?;
// Tools are typically called by the MCP server framework
// Example: FileTools::read_file(path).await?
Ok(())
}§Error Handling
All tools return turbovault_core::Result<T>:
- File not found
- Permission denied
- Parse errors
- Invalid input
- Vault errors
See turbovault_core::error for error types.
Re-exports§
pub use analysis_tools::AnalysisTools;pub use analysis_tools::VaultStats;pub use batch_tools::BatchTools;pub use export_tools::ExportTools;pub use file_tools::FileTools;pub use graph_tools::BrokenLinkInfo;pub use graph_tools::GraphTools;pub use graph_tools::HealthInfo;pub use metadata_tools::MetadataTools;pub use output_formatter::OutputFormat;pub use output_formatter::ResponseFormatter;pub use relationship_tools::RelationshipTools;pub use search_engine::SearchEngine;pub use search_engine::SearchQuery;pub use search_engine::SearchResultInfo;pub use search_tools::SearchTools;pub use templates::TemplateDefinition;pub use templates::TemplateEngine;pub use templates::TemplateFieldType;pub use validation_tools::ValidationReportInfo;pub use validation_tools::ValidationTools;pub use vault_lifecycle::VaultLifecycleTools;
Modules§
- analysis_
tools - Vault analysis tools for statistics and relationship analysis
- batch_
tools - Batch operation tools for coordinated multi-file operations
- export_
tools - Export tools for vault analysis data
- file_
tools - File operation tools for the Obsidian MCP server
- graph_
tools - Graph operations and link analysis tools
- metadata_
tools - Metadata query tools for finding and extracting file metadata
- output_
formatter - Output formatting for different transport types
- relationship_
tools - Relationship analysis tools for link strength, suggestions, and centrality
- response_
utils - Response utilities for Phase 2 LLMX enhancements
- search_
engine - Full-text search engine powered by tantivy
- search_
tools - Search and relationship discovery tools
- templates
- Template system for LLM-managed vault notes
- validation_
tools - Content validation tools
- vault_
lifecycle - Vault lifecycle management tools
Structs§
- Batch
Result - Result of batch execution
- Block
- A block in vault content (Obsidian block reference with ^id)
- Callout
- A callout block in vault content
- Composite
Validator - Composite validator that runs multiple validators
- Content
Validator - Validates file content structure
- Counter
- A lock-free counter metric (monotonically increasing)
- File
Metadata - File metadata
- Frontmatter
- YAML frontmatter
- Frontmatter
Validator - Validates frontmatter structure and required fields
- Heading
- A heading in vault content
- Histogram
- A histogram for tracking value distributions
- Line
Index - Pre-computed line starts for O(log n) line/column lookup.
- Link
- A link in vault content
- Link
Validator - Validates link syntax and format
- List
Item - A list item with optional checkbox and nested content.
- Metrics
Context - Global metrics context registry (rarely used)
- Multi
Vault Manager - Multi-vault manager coordinating multiple vaults
- Server
Config - Global server configuration
- Source
Position - Position in source text (line, column, byte offset)
- Tag
- A tag in vault content
- Task
Item - A task item in vault content
- Validation
Issue - A validation issue found in content
- Validation
Report - Result of validating content
- Vault
Config - Configuration for a single vault
- Vault
File - A complete vault file with parsed content
- Vault
Info - Information about a registered vault
Enums§
- Batch
Operation - Individual batch operation to execute
- Callout
Type - Type of callout block
- Config
Profile - Profile selector for pre-configured deployments
- Content
Block - A parsed content block in a markdown document.
- Error
- The core error type for all Obsidian operations.
- Inline
Element - An inline element within a block.
- Link
Type - Type of link in Obsidian content
- Severity
- Severity level for validation issues
- Table
Alignment - Table column alignment.
Traits§
- Validator
- Trait for content validators
Type Aliases§
- Result
- Convenient Result type alias