turbovault/
lib.rs

1//! # TurboVault Server
2//!
3//! Main server implementation and CLI for the Model Context Protocol (MCP) Obsidian vault manager.
4//!
5//! TurboVault provides a production-grade MCP server that transforms Obsidian vaults into intelligent
6//! knowledge systems for AI agents. It offers advanced editing, search, graph analysis, and batch operations.
7//!
8//! ## Features
9//!
10//! - **MCP Server Framework**: Full Model Context Protocol implementation
11//! - **Vault Management**: File operations, watching, and atomic transactions
12//! - **Advanced Search**: Full-text search with Tantivy
13//! - **Graph Analysis**: Link relationships, backlinks, and health analysis
14//! - **Batch Operations**: Atomic multi-file operations with rollback
15//! - **Multiple Transports**: Stdio (default), HTTP, WebSocket, TCP, Unix sockets
16//! - **Export & Reporting**: JSON/CSV export for analysis results
17//!
18//! ## Architecture
19//!
20//! The crate is organized into several modules:
21//!
22//! - [`tools`] - MCP tool implementations for vault operations
23//! - Re-exports from [`turbovault_core`] - Core types and models
24//! - Re-exports from [`turbovault_tools`] - Tool framework and utilities
25//!
26//! ## Quick Start
27//!
28//! ```no_run
29//! use turbovault_core::ServerConfig;
30//! use turbovault_vault::VaultManager;
31//!
32//! #[tokio::main]
33//! async fn main() -> Result<(), Box<dyn std::error::Error>> {
34//!     // Initialize vault configuration
35//!     let config = ServerConfig::default();
36//!     
37//!     // Create vault manager
38//!     let _manager = VaultManager::new(config)?;
39//!     
40//!     Ok(())
41//! }
42//! ```
43//!
44//! ## Transport Features
45//!
46//! By default, the server uses stdio transport (suitable for Claude Desktop).
47//! Optional transports can be enabled via Cargo features:
48//!
49//! - `stdio` - Standard input/output (always included)
50//! - `http` - HTTP server support
51//! - `websocket` - WebSocket support
52//! - `tcp` - TCP socket support
53//! - `unix` - Unix domain socket support
54//! - `full` - All transports combined
55//!
56//! ## Documentation
57//!
58//! See the main modules for detailed API documentation:
59//! - [`tools`] - Tool implementations
60//! - `turbovault_core` - Core types and error handling (see <https://docs.rs/turbovault-core>)
61//! - `turbovault_tools` - MCP tools framework (see <https://docs.rs/turbovault-tools>)
62//! - `turbovault_vault` - Vault operations (see <https://docs.rs/turbovault-vault>)
63//! - `turbovault_parser` - Markdown parsing (see <https://docs.rs/turbovault-parser>)
64//! - `turbovault_graph` - Graph analysis (see <https://docs.rs/turbovault-graph>)
65//! - `turbovault_batch` - Batch operations (see <https://docs.rs/turbovault-batch>)
66
67pub mod tools;
68
69pub use turbovault_core::prelude::*;
70pub use turbovault_tools::*;
71pub use tools::ObsidianMcpServer;