知识管理服务器

Obsidian Rust MCP是一个高性能的知识管理服务器,用于Obsidian知识库的管理,支持文件树索引、智能搜索、笔记管理和标签系统等功能。

  • by Fromsko
  • Rust
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 Fromsko/obsidian-rust-mcp

使用说明

黑曜石锈MCP

中文文档

用Rust构建的用于黑曜石知识库管理的高性能MCP(模型上下文协议)服务器。

特性

  • 📂 文件树索引 -获取完整的保险库结构和标签概述
  • 🔍 智能搜索 -通过标签、确切名称或模糊关键字匹配查询笔记
  • 📝 笔记管理 -通过自动生成正面内容来读取、写入和删除笔记
  • 🔄 添加或覆盖 -为现有文件选择附加模式(默认)或覆盖模式
  • 📁 子目录支持 -在嵌套目录中组织笔记(例如。, projects/easytier, journal/2026-03)
  • 🛡️ 输入验证 -目录白名单、文件名净化、路径遍历保护
  • 🏷️ 标签系统 -用标签和别名组织笔记
  • ⚡ 高性能 -采用Rust构建,速度和可靠性高

安装

cargo build --release

迁移(v0.3中断更改)

MCP表面暴露 仅 help 和 executeCommand.删除了传统的扁平工具:

旧工具 v0.3替换
write_note_tips executeCommand → obsidian.guide
query_note executeCommand → obsidian.search
write_note executeCommand → obsidian.write
read_note executeCommand → obsidian.read
note_index_tree executeCommand → obsidian.index
delete_note executeCommand → obsidian.delete

用法(CLI模型--v0.3)

MCP服务器公开 只有两个工具 要保存客户端令牌,请执行以下操作:

工具 目的
help 命令手册(简短目录或详细用法)
executeCommand 运行已注册 obsidian.* 命令

典型流程: help → obsidian.guide → obsidian.search → obsidian.write

help

{}
{ "topic": "obsidian.write", "detail": true }

executeCommand

{
  "command": "obsidian.search",
  "args": { "tags": ["docker"], "keyword": "nginx" }
}
{
  "command": "obsidian.write",
  "args": {
    "directory": "tech",
    "filename": "nginx-guide",
    "tags": ["nginx"],
    "aliases": ["Nginx Guide"],
    "status": "active",
    "content": "markdown body",
    "append": true
  }
}

已注册的命令(obsidian.*)

命令 描述
obsidian.guide 保险库写作指南(首次写作前致电)
obsidian.search 按标签/关键字/确切名称搜索(include_index 可选)
obsidian.write 创建或附加注释(append 默认 true)
obsidian.read 按路径阅读笔记(高级)
obsidian.index 完整文件树+标签统计(高级)
obsidian.delete 删除注释(参见 help 随着 detail)

看 docs/arch.md 对于建筑和 docs/todo.md 路线图。

配置

选项1:环境变量(推荐)

设置 OBSIDIAN_VAULT_ROOT 指向黑曜石保险库的环境变量:

# Linux/macOS
export OBSIDIAN_VAULT_ROOT="/path/to/your/vault"

# Windows (cmd)
set OBSIDIAN_VAULT_ROOT=D:\notes\Fromsko

# Windows (PowerShell)
$env:OBSIDIAN_VAULT_ROOT="D:\notes\Fromsko"

选项2:硬编码路径

编辑 VAULT_ROOT 恒常 src/config.rs:

pub const VAULT_ROOT: &str = r"D:\notes\Fromsko";

选项3:MCP客户端配置(建议用于MCP客户端)

直接在MCP客户端配置中配置保管库路径:

{
  "fromsko-note": {
    "command": "/path/to/obsidian-mcp",
    "disabled": false,
    "env": {
      "OBSIDIAN_VAULT_ROOT": "/path/to/your/vault"
    }
  }
}

替换 /path/to/obsidian-mcp 使用编译二进制文件的实际路径,以及 /path/to/your/vault 与你的黑曜石拱顶路径。

备注:当将此MCP服务器与Claude Desktop、Cursor或其他MCP兼容工具等客户端一起使用时,这是推荐的方法。

配置

变量 描述
OBSIDIAN_VAULT_ROOT Vault根目录(默认 .)
OBSIDIAN_CONFIG JSON配置文件的路径
OBSIDIAN_VALID_DIRS 逗号分隔的顶级目录白名单
OBSIDIAN_VAULT_BACKEND local 或 cloud
OBSIDIAN_CLOUD_URL 云API基础URL(写入/删除时同步)

看 docs/obsidian-mcp.example.json 和 docs/STRUCTURE.md.

有效目录

默认顶级目录(通过配置覆盖):

注释可以组织在以下顶级目录中(支持任何深度的嵌套子目录):

  • tech -技术说明
  • ai -AI/ML相关说明
  • projects -项目文件
  • methods -方法和流程
  • career -职业发展
  • ideas -想法和头脑风暴
  • cheatsheet -快速参考指南
  • journal -日报

项目结构

看 docs/STRUCTURE.md 完整布局。摘要:

src/
  config/       # AppConfig (env + JSON)
  validation/   # Path/directory rules
  vault/        # LocalVault + CloudVault
  note/         # frontmatter, index, semantic search
  service/      # ObsidianService
  command/      # registry, help, dispatch
  mcp/          # MCP: help + executeCommand
docs/
  arch.md, STRUCTURE.md, write-note-tips.md
tests/
  service_integration.rs, mcp_stdio.rs, registry.rs

测试

cargo test   # unit + integration + MCP stdio

截图

代理集成

注释示例

许可证

麻省理工学院-见 许可证 文件以获取详细信息。