项目简介

TurboVault是一个基于Model Context Protocol (MCP) 构建的生产级服务器,旨在将Obsidian笔记库转换为一个由AI驱动的智能知识管理系统。它通过提供丰富的功能工具,赋能LLM客户端(如Claude)对您的笔记进行深度交互,实现如阅读、写入、搜索、分析、管理等操作,并且性能卓越。

主要功能点

  • 笔记管理与操作: 提供读取、写入、编辑、删除、移动笔记等基本文件操作,并支持原子性批处理操作,确保数据一致性。
  • 知识图谱分析: 能够分析笔记间的链接关系,发现反向链接、前向链接、相关笔记、中心节点笔记、孤立节点和循环引用,帮助用户理解知识结构和健康状况。
  • 智能搜索与推荐: 实现基于BM25排名的全文搜索和高级搜索,并提供AI驱动的内容相似度推荐,帮助用户快速发现和关联信息。
  • Prompt模板与内容生成: 支持定义和使用Prompt模板,允许LLM根据预定义结构生成新笔记,确保内容一致性。
  • 多库管理: 支持同时管理多个Obsidian笔记库,并能动态切换上下文。
  • 健康状态诊断与导出: 提供笔记库的快速健康检查和全面健康分析报告,并支持JSON/CSV格式导出,以便进行外部分析和存档。
  • Obsidian Flavored Markdown (OFM) 支持: 完全理解Obsidian特有的Markdown语法,包括Wikilinks、嵌入、标签、任务、Callouts、Frontmatter等。

安装步骤

  1. 确保您的系统已安装 Rust 1.90.0 或更高版本。
  2. 通过Cargo命令行工具安装TurboVault:
    • 标准安装 (仅支持STDIO传输,适合Claude桌面版):
      cargo install turbovault
    • 带HTTP服务器支持的安装:
      cargo install turbovault --features http
    • 包含所有传输协议(HTTP, WebSocket, TCP, Unix sockets)的完整安装:
      cargo install turbovault --features full
  3. 安装成功后,二进制文件通常位于 '~/.cargo/bin/turbovault'。

服务器配置(MCP客户端使用)

MCP客户端(例如Claude Desktop)需要配置TurboVault服务器的启动命令和参数才能建立连接。请根据您的需求选择以下配置方式:

方案一:静态配置单个笔记库 (推荐用于单个笔记库)

这种方式在服务器启动时即指定要管理的笔记库路径。 您需要在MCP客户端(例如Claude Desktop)的配置文件 '~/.config/claude/claude_desktop_config.json' 中添加如下 'mcpServers' 配置。请将 '/path/to/turbovault' 替换为实际的TurboVault可执行文件路径,将 '/path/to/your/vault' 替换为您的Obsidian笔记库路径。

{
  "mcpServers": {
    "turbovault": {
      "command": "/path/to/turbovault",
      "args": ["--vault", "/path/to/your/vault", "--profile", "production"]
    }
  }
}
  • 'mcpServers': 这是客户端配置MCP服务器的根对象。
  • 'turbovault': 这是您为TurboVault服务器定义的名称,客户端将用此名称引用它。
  • 'command': 指定TurboVault服务器可执行文件的完整路径。
  • 'args': 指定启动服务器时要传递的命令行参数。
    • '--vault /path/to/your/vault': 用于指定Obsidian笔记库的绝对路径。
    • '--profile production': 指定服务器以生产模式运行,优化性能和日志记录。

方案二:运行时动态添加多个笔记库 (推荐用于多个笔记库)

这种方式服务器启动时不需要指定笔记库,后续通过MCP客户端调用工具动态添加。 您需要在MCP客户端(例如Claude Desktop)的配置文件 '~/.config/claude/claude_desktop_config.json' 中添加如下 'mcpServers' 配置。请将 '/path/to/turbovault' 替换为实际的TurboVault可执行文件路径。

{
  "mcpServers": {
    "turbovault": {
      "command": "/path/to/turbovault",
      "args": ["--profile", "production"]
    }
  }
}
  • 'mcpServers': 这是客户端配置MCP服务器的根对象。
  • 'turbovault': 这是您为TurboVault服务器定义的名称,客户端将用此名称引用它。
  • 'command': 指定TurboVault服务器可执行文件的完整路径。
  • 'args': 指定启动服务器时要传递的命令行参数。
    • '--profile production': 指定服务器以生产模式运行,优化性能和日志记录。

启动客户端后,您可以通过自然语言(或直接调用 'add_vault' 工具)让LLM添加笔记库,例如:

您: "请添加我的笔记库,名称为 '个人笔记',路径在 ~/Documents/Obsidian。"
Claude: [调用 add_vault("个人笔记", "~/Documents/Obsidian")]

基本使用方法

MCP客户端连接成功后,LLM即可通过调用TurboVault提供的工具与您的笔记库进行交互。

例如:

  1. 搜索笔记:
    您: "请查找关于异步Rust的所有笔记,并展示它们之间的关联。"
    Claude: [调用 search("async Rust")] -> [调用 recommend_related()] -> [调用 get_related_notes()]
  2. 获取笔记库健康状况:
    您: "我的笔记库健康状况如何?有什么需要修复的问题吗?"
    Claude: [调用 quick_health_check()] -> [调用 full_health_analysis()] -> [调用 get_broken_links()]
  3. 创建结构化笔记:
    您: "请为TurboVault的发布创建一个项目笔记,并包含状态跟踪。"
    Claude: [调用 list_templates()] -> [调用 create_from_template("project", "/path/to/new_project_note.md", {"title": "TurboVault发布", "status": "进行中"})]

这些操作将通过JSON-RPC协议在MCP客户端和TurboVault服务器之间进行通信。

信息

分类

生产力应用