Obsidian库解析服务

一个无需运行Obsidian即可深度解析库内容(如wikilinks、frontmatter、反向链接图)的MCP服务器,支持WASM绑定和文档库管理。

  • by DROOdotFOO
  • TypeScript
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 Hydepwns/vault-tree

使用说明

拱顶树

一个MCP服务器,让Claude Code在不运行黑曜石的情况下深入了解黑曜石库——维基链接、frontmatter、反向链接图。

组件

  • 拱顶树核心:用于vault解析的Rust库
  • 拱顶树mcp:独立MCP服务器(stdio)
  • 拱顶树是:用于浏览器/插件的WASM绑定
  • lib组织者:具有CLI和全文搜索功能的文档库管理器
  • 插件:带有嵌入式WASM和MCP服务器的黑曜石插件

快速开始

独立二进制

cargo build --release -p vault-tree-mcp
cp ./target/release/vault-tree-mcp ~/.local/bin/

添加到您的Claude Code MCP配置中:

{
  "mcpServers": {
    "vault-tree": {
      "command": "vault-tree-mcp"
    }
  }
}

黑曜石插件

构建WASM模块:

cd crates/wasm && wasm-pack build --target web --out-dir ../../plugin/wasm

构建插件:

cd plugin && npm install && npm run build

复制 plugin/ 内容到 .obsidian/plugins/vault-tree/ 并在黑曜石设置中启用。

该插件在端口22365(Claude Code CLI的WebSocket)和22366(Claude Desktop的HTTP)上运行MCP服务器。

工具

知识提供者

从自由和开源软件知识库中查找外部信息:

提供者 类型 数据
wikipedia 百科全书 文章、摘要
dbpedia 结构化数据 维基百科作为链接数据
wikidata 知识图 实体、关系、QID
github 代码 repo、用户、星号(令牌可选)
sourceforge 代码 项目,下载
npm 包 Node.js包,版本
crates.io 软件包 铁锈板条箱,下载
stackoverflow 问答 问题、答案、标签
reddit 社交 帖子、子版块、分数
openlibrary 书籍 作者、作品、ISBN
arxiv 学术论文、作者、摘要
musicbrainz 音乐 艺术家、专辑、曲目
wikiart 艺术 艺术家、绘画
defillama DeFi/加密 协议、TVL、链
shodan 安全 IP、端口、漏洞(需要API密钥)

环境变量:

  • GITHUB_TOKEN -GitHub PAT适用于更高的速率限制(5000/hr vs 60/hr)
  • SHODAN_API_KEY -Shodan提供商需要
{
  "name": "knowledge_lookup",
  "arguments": {
    "query": "Functional programming",
    "provider": "wikipedia"
  }
}

AI链接建议

使用本地(Ollama)或云(OpenAI/OpenRouter)LLM建议内部链接:

{
  "name": "suggest_links",
  "arguments": {
    "file_path": "path/to/note.md",
    "apply": true
  }
}

批处理

处理整个文件夹:

{
  "name": "batch_suggest_links",
  "arguments": {
    "folder_path": "Writing",
    "apply": true
  }
}

笔记生成

通过知识查找创建笔记:

{
  "name": "create_note",
  "arguments": {
    "query": "Uniswap",
    "provider": "defillama"
  }
}

拱形树

生成vault的带注释树:

{
  "vault_path": "/path/to/vault",
  "depth": 3
}

输出设计为令牌高效:

Writing/
|-- building-droo-foo.md  [elixir,phoenix] 2025-01-18 <-3 ->7
|-- the-agalma.md         [philosophy] 2025-11-14 <-1 ->2
`-- drafts/
    `-- obsidian-plugin.md  [draft] <-0 ->0

3 notes, 2 directories

标签和日期来自frontmatter。 <-N 是传入的反向链接, ->N 是传出链接。

vault_search

正则表达式搜索所有markdown文件:

{
  "vault_path": "/path/to/vault",
  "pattern": "TODO",
  "case_insensitive": true,
  "max_results": 50
}

库工具

管理文档库(PDF、EPUB、DJVU、MOBI):

工具 说明
lib_init 使用git跟踪初始化新库
lib_scan 扫描目录中的文档
lib_duplicates 通过BLAKE3哈希查找重复文件
lib_classify 从文件名获取主题建议
lib_ingest 使用自动分类将文件添加到库中
lib_search 搜索库元数据
lib_pdf_search PDF/EPUB内容全文搜索(Tantivy)
lib_status 显示库统计信息
secrets_scan 检测敏感文件(密钥、凭据)

lib组织者CLI

lib-organizer init ~/library              # Create library
lib-organizer scan -d ~/Downloads         # Find documents
lib-organizer ingest -l ~/library *.pdf   # Add to library
lib-organizer search -l ~/library "rust"  # Search metadata
lib-organizer search -l ~/library --fulltext "ownership"  # Full-text search
lib-organizer secrets ~/projects --strict # Scan for secrets
lib-organizer completions zsh             # Generate shell completions

插件命令

  • 将vault树复制到剪贴板
  • 在光标处插入vault树 (作为代码块)
  • 在模态中显示vault树

建筑

cargo build --release    # all Rust crates
cargo test               # run tests

# WASM
cd crates/wasm && wasm-pack build --target web --out-dir ../../plugin/wasm

# Plugin
cd plugin && npm run build

测试MCP服务器

# Initialize
echo '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{}}' | ./target/release/vault-tree-mcp

# List tools
echo '{"jsonrpc":"2.0","id":2,"method":"tools/list","params":{}}' | ./target/release/vault-tree-mcp

# Generate tree
echo '{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"vault_tree","arguments":{"vault_path":"/path/to/vault"}}}' | ./target/release/vault-tree-mcp

结构

vault-tree/
├── Cargo.toml              # Workspace root
├── crates/
│   ├── core/               # Vault parsing library
│   ├── mcp/                # MCP server
│   ├── lib-organizer/      # Document library + CLI
│   │   └── src/
│   │       ├── cli.rs      # Binary entry point
│   │       ├── scanner.rs  # File discovery
│   │       ├── classifier.rs
│   │       ├── organizer.rs
│   │       ├── search/     # Tantivy full-text search
│   │       └── secrets.rs
│   └── wasm/               # WASM bindings
├── plugin/                 # Obsidian plugin
└── README.md

许可证

麻省理工学院