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:
tools- MCP tool implementations for vault operations- Re-exports from
turbovault_core- Core types and models - Re-exports from
turbovault_tools- Tool framework and utilities
§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 supportwebsocket- WebSocket supporttcp- TCP socket supportunix- Unix domain socket supportfull- All transports combined
§Documentation
See the main modules for detailed API documentation:
tools- Tool implementationsturbovault_core- Core types and error handling (see https://docs.rs/turbovault-core)turbovault_tools- MCP tools framework (see https://docs.rs/turbovault-tools)turbovault_vault- Vault operations (see https://docs.rs/turbovault-vault)turbovault_parser- Markdown parsing (see https://docs.rs/turbovault-parser)turbovault_graph- Graph analysis (see https://docs.rs/turbovault-graph)turbovault_batch- Batch operations (see https://docs.rs/turbovault-batch)
Re-exports§
pub use tools::ObsidianMcpServer;
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
- tools
- MCP tool implementations for Obsidian vault
- validation_
tools - Content validation tools
- vault_
lifecycle - Vault lifecycle management tools
Structs§
- Analysis
Tools - Analysis tools context
- Batch
Result - Result of batch execution
- Batch
Tools - Batch operation tools
- Block
- A block in vault content
- Broken
Link Info - Simplified broken link for JSON serialization
- 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)
- Export
Tools - Export tools for vault analysis and reporting
- File
Metadata - File metadata
- File
Tools - File tools context
- Frontmatter
- YAML frontmatter
- Frontmatter
Validator - Validates frontmatter structure and required fields
- Graph
Tools - Graph tools context
- Heading
- A heading in vault content
- Health
Info - Simplified health report for JSON serialization
- Histogram
- A histogram for tracking value distributions
- Link
- A link in vault content
- Link
Validator - Validates link syntax and format
- Metadata
Tools - Metadata tools for querying and extracting file metadata
- Metrics
Context - Global metrics context registry (rarely used)
- Multi
Vault Manager - Multi-vault manager coordinating multiple vaults
- Relationship
Tools - Relationship analysis tools
- Response
Formatter - Formatter for converting responses to different formats
- Search
Engine - Search engine for vault discovery (powered by tantivy)
- Search
Query - Advanced search builder for LLMs
- Search
Result Info - Search result metadata for LLM consumption
- Search
Tools - Search tools context
- 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
- Template
Definition - Complete template definition
- Template
Engine - Template engine for vault
- Validation
Issue - A validation issue found in content
- Validation
Report - Result of validating content
- Validation
Report Info - Simplified validation report for JSON serialization
- Validation
Tools - Validation tools context
- Vault
Config - Configuration for a single vault
- Vault
File - A complete vault file with parsed content
- Vault
Info - Information about a registered vault
- Vault
Lifecycle Tools - Vault lifecycle operations
- Vault
Stats - Statistics response structure
Enums§
- Batch
Operation - Individual batch operation to execute
- Config
Profile - Profile selector for pre-configured deployments
- Error
- The core error type for all Obsidian operations.
- Link
Type - Type of link in Obsidian content
- Output
Format - Output format preference for HTTP/WebSocket/TCP transports
- Severity
- Severity level for validation issues
- Template
Field Type - Field types for template parameters
Traits§
- Validator
- Trait for content validators
Type Aliases§
- Result
- Convenient Result type alias