Skip to main content

Crate turbovault

Crate turbovault 

Source
Expand description

§TurboVault Server

Main server implementation and CLI for the Model Context Protocol (MCP) Obsidian vault manager.

TurboVault provides a production-grade MCP server that transforms Obsidian vaults into intelligent knowledge systems for AI agents. It offers advanced editing, search, graph analysis, and batch operations.

§Features

  • MCP Server Framework: Full Model Context Protocol implementation
  • Vault Management: File operations, watching, and atomic transactions
  • Advanced Search: Full-text search with Tantivy
  • Graph Analysis: Link relationships, backlinks, and health analysis
  • Batch Operations: Atomic multi-file operations with rollback
  • Multiple Transports: Stdio (default), HTTP, WebSocket, TCP, Unix sockets
  • Export & Reporting: JSON/CSV export for analysis results

§Architecture

The crate is organized into several modules:

§Quick Start

use turbovault_core::ServerConfig;
use turbovault_vault::VaultManager;

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    // Initialize vault configuration
    let config = ServerConfig::default();
     
    // Create vault manager
    let _manager = VaultManager::new(config)?;
     
    Ok(())
}

§Transport Features

By default, the server uses stdio transport (suitable for Claude Desktop). Optional transports can be enabled via Cargo features:

  • stdio - Standard input/output (always included)
  • http - HTTP server support
  • websocket - WebSocket support
  • tcp - TCP socket support
  • unix - Unix domain socket support
  • full - All transports combined

§Documentation

See the main modules for detailed API documentation:

Re-exports§

pub use tools::ObsidianMcpServer;

Modules§

analysis_tools
Vault analysis tools for statistics and relationship analysis
audit_tools
Audit trail tools for querying operation history and managing rollbacks
batch_tools
Batch operation tools for coordinated multi-file operations
diff_tools
Note diff tools for comparing vault notes
duplicate_tools
Duplicate and near-duplicate note detection
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
quality_tools
Content quality evaluation tools
relationship_tools
Relationship analysis tools for link strength, suggestions, and centrality
resources
Static resource documentation embedded directly in code. These resources are served via MCP resources and tool endpoints.
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
similarity_engine
TF-IDF cosine similarity engine for semantic note search
sql_engine
Re-export of turbovault_sql types for convenience.
templates
Template system for LLM-managed vault notes
tools
MCP tool implementations for Obsidian vault
validation_tools
Content validation tools
vault_lifecycle
Vault lifecycle management tools

Structs§

AnalysisTools
Analysis tools context
AuditTools
Audit tools for querying and managing the operation audit trail
BatchResult
Result of batch execution
BatchTools
Batch operation tools
Block
A block in vault content (Obsidian block reference with ^id)
BrokenLinkInfo
Simplified broken link for JSON serialization
Callout
A callout block in vault content
CompareResult
Detailed comparison of two notes
CompositeValidator
Composite validator that runs multiple validators
ContentValidator
Validates file content structure
Counter
A lock-free counter metric (monotonically increasing)
DiffResult
Result of comparing two notes
DiffSummary
Summary statistics for a diff
DiffTools
Diff tools for comparing notes
DuplicateGroup
A group of near-duplicate notes
DuplicateTools
Duplicate detection tools
ExportTools
Export tools for vault analysis and reporting
FileMetadata
File metadata
FileTools
File tools context
Frontmatter
YAML frontmatter
FrontmatterSqlEngine
SQL-based frontmatter query engine backed by GlueSQL.
FrontmatterValidator
Validates frontmatter structure and required fields
GraphTools
Graph tools context
Heading
A heading in vault content
HealthInfo
Simplified health report for JSON serialization
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.
MetadataTools
Metadata tools for querying and extracting file metadata
MetricsContext
Global metrics context registry (rarely used)
MultiVaultManager
Multi-vault manager coordinating multiple vaults
NoteInfo
Lightweight note metadata (no content read)
QualityScore
Composite quality score for a single note
QualityTools
Quality evaluation tools
RelationshipTools
Relationship analysis tools
ResponseFormatter
Formatter for converting responses to different formats
SearchEngine
Search engine for vault discovery (powered by tantivy)
SearchQuery
Advanced search builder for LLMs
SearchResultInfo
Search result metadata for LLM consumption
SearchTools
Search tools context
ServerConfig
Global server configuration
SimilarityEngine
TF-IDF cosine similarity engine
SimilarityResult
Similarity search result
SourcePosition
Position in source text (line, column, byte offset)
Tag
A tag in vault content
TaskItem
A task item in vault content
TemplateDefinition
Complete template definition
TemplateEngine
Template engine for vault
ValidationIssue
A validation issue found in content
ValidationReport
Result of validating content
ValidationReportInfo
Simplified validation report for JSON serialization
ValidationTools
Validation tools context
VaultConfig
Configuration for a single vault
VaultFile
A complete vault file with parsed content
VaultInfo
Information about a registered vault
VaultLifecycleTools
Vault lifecycle operations
VaultQualityReport
Vault-wide quality report
VaultStats
Statistics response structure

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
OutputFormat
Output format preference for HTTP/WebSocket/TCP transports
Severity
Severity level for validation issues
TableAlignment
Table column alignment.
TemplateFieldType
Field types for template parameters
WriteMode
Write mode for write_file operations

Traits§

Validator
Trait for content validators

Functions§

obsidian_uri
Generate an Obsidian URI for a note

Type Aliases§

Result
Convenient Result type alias