Crate turbovault_tools

Crate turbovault_tools 

Source
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

§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§

BatchResult
Result of batch execution
Block
A block in vault content (Obsidian block reference with ^id)
Callout
A callout block in vault content
CompositeValidator
Composite validator that runs multiple validators
ContentValidator
Validates file content structure
Counter
A lock-free counter metric (monotonically increasing)
FileMetadata
File metadata
Frontmatter
YAML frontmatter
FrontmatterValidator
Validates frontmatter structure and required fields
Heading
A heading in vault content
Histogram
A histogram for tracking value distributions
LineIndex
Pre-computed line starts for O(log n) line/column lookup.
Link
A link in vault content
LinkValidator
Validates link syntax and format
ListItem
A list item with optional checkbox and nested content.
MetricsContext
Global metrics context registry (rarely used)
MultiVaultManager
Multi-vault manager coordinating multiple vaults
ServerConfig
Global server configuration
SourcePosition
Position in source text (line, column, byte offset)
Tag
A tag in vault content
TaskItem
A task item in vault content
ValidationIssue
A validation issue found in content
ValidationReport
Result of validating content
VaultConfig
Configuration for a single vault
VaultFile
A complete vault file with parsed content
VaultInfo
Information about a registered vault

Enums§

BatchOperation
Individual batch operation to execute
CalloutType
Type of callout block
ConfigProfile
Profile selector for pre-configured deployments
ContentBlock
A parsed content block in a markdown document.
Error
The core error type for all Obsidian operations.
InlineElement
An inline element within a block.
LinkType
Type of link in Obsidian content
Severity
Severity level for validation issues
TableAlignment
Table column alignment.

Traits§

Validator
Trait for content validators

Type Aliases§

Result
Convenient Result type alias